{"title":"PHRpdGxlPktpYSBuZXVmcyAyMDI1LCAyMDI2ICZhbXA7IDIwMjcgw6AgUXXDqWJlYywgcHLDqHMgZGUgTMOpdmlzIGV0IERvbm5hY29uYSB8IEZvcmNlIMOJbGVjdHJpcXVlPC90aXRsZT4=","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"CgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycpewoJCQkJCQkJCQlzYSgnZGF0YS1vdC1pZ25vcmUnLCB0cnVlKTsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7CgkJCQkJCQkJfSBlbHNlIGlmKGN1cnJlbnRDb25zZW50ID09IG51bGwgfHwgY3VycmVudENvbnNlbnQuaW5kZXhPZih1cmxDYXRBcnJba2V5XSkgPT0gLTEpewoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L3BsYWluJyk7CgkJCQkJCQkJCXNhKCdjbGFzcycsICdvcHRhbm9uLWNhdGVnb3J5LScgKyB1cmxDYXRBcnJba2V5XSk7CgkJCQkJCQkJfQoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJc2Eobiwgdik7CgkJCX0KCQkJcmV0dXJuIHM7CgkJfQoJCWZ1bmN0aW9uIGdldENvbnNlbnQoKXsKCQkJbGV0IG5hbWUgPSAnZDJjX2Nvb2tpZV9jb25zZW50JyArICc9JzsKCQkJbGV0IGNhID0gKCcnK2RvY3VtZW50LmNvb2tpZSkuc3BsaXQoJzsnKTsKCQkJZm9yKGxldCBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7CgkJCQlsZXQgYyA9IGNhW2ldOwoJCQkJYyA9IGMudHJpbSgpOwoJCQkJaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7CgkJCQkJdHJ5ewoJCQkJCQljID0gZGVjb2RlVVJJQ29tcG9uZW50KCBjICk7CgkJCQkJfSBjYXRjaCggZSApCgkJCQkJewoJCQkJCQljb25zb2xlLmxvZyggZSApOwoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgkJCQkJcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoJfSkoZG9jdW1lbnQpOwoKCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKCS8vIExpc3RlbiBmb3IgY2hhbmdlcyB0byB0aGUgRE9NCgkJbGV0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CgkJCW11dGF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG11dGF0aW9uKSB7CgkJCQlpZiAobXV0YXRpb24uYWRkZWROb2RlcyAmJiBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCA+IDApIHsKCQkJCQkvLyBDaGVjayBpZiBvdXIgc2NyaXB0IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBET00KCQkJCQlmb3IgKGxldCBpID0gMDsgaSA8IG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoOyBpKyspIHsKCQkJCQkJbGV0IG5vZGUgPSBtdXRhdGlvbi5hZGRlZE5vZGVzW2ldOwoJCQkJCQlpZiAobm9kZS5ub2RlVHlwZSA9PT0gMSAmJiBub2RlLnRhZ05hbWUgPT09ICdTQ1JJUFQnICYmIG5vZGUuc3JjICYmIG5vZGUuc3JjLmluY2x1ZGVzKCdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJykgJiYgdHlwZW9mIE9uZVRydXN0ICE9PSAndW5kZWZpbmVkJykgewoJCQkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpewoJCQkJCQkJCXRyeXtEaWdpdGFsSW50ZXJ2aWV3LkxhdW5jaGVyLmVuYWJsZUxhdW5jaFBvaW50cygpO31jYXRjaChlKXt9CgkJCQkJCQl9LCAxMDAwKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSk7CgkJfSk7CgkJLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSBkb2N1bWVudCB3aXRoIHRoZSBjb25maWd1cmVkIHBhcmFtZXRlcnMKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuaGVhZCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7Cgl9KTsKCi8vZGF0YS1zY29kZXJlZj0iUVBRLTIxMzU1NTU1MjY2MjI1IgooZnVuY3Rpb24oKXt2YXIgbGFzdFdpZHRoPTA7dmFyIGZpcnN0UnVuPTE7dmFyIHRpbWVvdXQ9ZmFsc2U7dHJ5e2Z1bmN0aW9uIGhpZGVtZShlbCl7aWYodHlwZW9mIGVsLmNsYXNzTGlzdD09PSd1bmRlZmluZWQnKXJldHVybjtlbC5jbGFzc0xpc3QuYWRkKCdoaWRlbWUnKTt9CmZ1bmN0aW9uIHNob3dtZShlbCl7aWYodHlwZW9mIGVsLmNsYXNzTGlzdD09PSd1bmRlZmluZWQnKXJldHVybjtlbC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRlbWUnKTt9CnZhciByZXNwb25zaXZlU2l0ZT1mdW5jdGlvbihldmVudCl7dmFyIHN3PXdpbmRvdy5zY3JlZW4ud2lkdGg\/d2luZG93LnNjcmVlbi53aWR0aDp3aW5kb3cub3V0ZXJXaWR0aDt2YXIgb3c9d2luZG93Lm91dGVyV2lkdGgsaXc9d2luZG93LmlubmVyV2lkdGg7dmFyIGJ3PW93PD0zNjAmJml3Pm93P2l3Om93O3ZhciB3aWR0aD1idz5zdz9idzpzdztpZih3aWR0aDw9MzYwKXt3aWR0aD05NjA7fQp2YXIgdmVyc2lvbj0od2lkdGg8OTYwKT8nbW9iaWxlJzonZGVza3RvcCc7dmFyIGVscz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdib2R5ID4gKicpO3ZhciBpZnJhbWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vYmlsZVNpdGUnKTtpZihsYXN0V2lkdGg9PXdpZHRoKXtyZXR1cm4gZmFsc2U7fQpmb3IoaSBpbiBlbHMpe2lmKCFlbHMuaGFzT3duUHJvcGVydHkoaSkpe2NvbnRpbnVlO30Kc3dpdGNoKHZlcnNpb24pe2Nhc2UnbW9iaWxlJzppZihlbHNbaV09PT1pZnJhbWUpe3Nob3dtZShlbHNbaV0pO31lbHNlIGlmKGlmcmFtZSl7aGlkZW1lKGVsc1tpXSk7fQppZihpZnJhbWUpe2lmKGlmcmFtZS5zcmM9PSdhYm91dDpibGFuaycpe2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ3NyYycsaWZyYW1lLmRhdGFzZXRbJ2ltZ3NyYyddKTt9CmlmcmFtZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxbJ3RvcDowJywnZGlzcGxheTpibG9jaycsJ2xlZnQ6MCcsJ3dpZHRoOmNhbGMoMTAwdncgLSAoMTAwdncgLSAxMDAlKSknLCdoZWlnaHQ6MTAwJScsJ2JvdHRvbTowJywncmlnaHQ6MCcsJ3Bvc2l0aW9uOmFic29sdXRlJyxdLmpvaW4oJzsnKSk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCdvcHRhbm9uLWNhdGVnb3J5LUMwMDAxJyk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnZGF0YS1vdC1pZ25vcmUnLHRydWUpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtY29va2llY29uc2VudCcsJ2lnbm9yZScpO30KYnJlYWs7Y2FzZSdkZXNrdG9wJzppZihlbHNbaV09PT1pZnJhbWUpaGlkZW1lKGVsc1tpXSk7ZWxzZSBzaG93bWUoZWxzW2ldKTtpZihpZnJhbWUpe2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxbJ2Rpc3BsYXk6IG5vbmUnLCcnXS5qb2luKCc7JykpO30KYnJlYWs7fX0KaWYodmVyc2lvbj09J2Rlc2t0b3AnKXtpZihsYXN0V2lkdGg9PXdpZHRoKXJldHVybjtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodHlwZW9mIGpRdWVyeSE9PSd1bmRlZmluZWQnKWpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoJ3Jlc2l6ZScpO30sNTAwKTt9Cmxhc3RXaWR0aD13aWR0aDt9CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRpbWVvdXQpO3RpbWVvdXQ9c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwyMDApfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtzLnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvY3NzJyk7cy5pbm5lckhUTUw9Jy5oaWRlbWUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gI21vYmlsZVNpdGUgeyBkaXNwbGF5OiBub25lOyB9Jztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO3ZhciB0Z3Q9J2h0dHBzOi8vd3d3LmZvcmNlZWxlY3RyaXF1ZS5jb20vZW1iZWRlci9wcm9jZXNzL2ZyP25mcj0xJy5yZXBsYWNlKC8lMkYvaWcsJy8nKTt0Z3QrPSgodGd0LmluZGV4T2YoJz8nKT09PS0xKT8nPyc6YCZgKSsnbmZyPTEmd3N3aWR0aD0nK3dpbmRvdy5zY3JlZW4ud2lkdGg7bGV0IHVybFBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHRndCk7bGV0IGNvdW50PTA7aWYodXJsUGFyYW1zIT09J3VuZGVmaW5lZCcmJnVybFBhcmFtcy5oYXMoJ25mcicpKXtjb3VudD11cmxQYXJhbXMuZ2V0QWxsKCduZnInKS5sZW5ndGg7fQppZihjb3VudDwzKXtpLnNldEF0dHJpYnV0ZSgnZGF0YS1pbWdzcmMnLHRndCk7aS5zZXRBdHRyaWJ1dGUoJ3NyYycsJ2Fib3V0OmJsYW5rJyk7aS5zZXRBdHRyaWJ1dGUoJ2lkJywnbW9iaWxlU2l0ZScpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7fQpyZXNwb25zaXZlU2l0ZSgpO30pO3NldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMTAwMCk7fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpO319KSgpOwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKLy9kYXRhLXNjb2RlcmVmPSJRUFEtMjEzNTU1NTUyNjYyMjUiCihmdW5jdGlvbigpe3ZhciBsYXN0V2lkdGg9MDt2YXIgZmlyc3RSdW49MTt2YXIgdGltZW91dD1mYWxzZTt0cnl7ZnVuY3Rpb24gaGlkZW1lKGVsKXtpZih0eXBlb2YgZWwuY2xhc3NMaXN0PT09J3VuZGVmaW5lZCcpcmV0dXJuO2VsLmNsYXNzTGlzdC5hZGQoJ2hpZGVtZScpO30KZnVuY3Rpb24gc2hvd21lKGVsKXtpZih0eXBlb2YgZWwuY2xhc3NMaXN0PT09J3VuZGVmaW5lZCcpcmV0dXJuO2VsLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGVtZScpO30KdmFyIHJlc3BvbnNpdmVTaXRlPWZ1bmN0aW9uKGV2ZW50KXt2YXIgc3c9d2luZG93LnNjcmVlbi53aWR0aD93aW5kb3cuc2NyZWVuLndpZHRoOndpbmRvdy5vdXRlcldpZHRoO3ZhciBvdz13aW5kb3cub3V0ZXJXaWR0aCxpdz13aW5kb3cuaW5uZXJXaWR0aDt2YXIgYnc9b3c8PTM2MCYmaXc+b3c\/aXc6b3c7dmFyIHdpZHRoPWJ3PnN3P2J3OnN3O2lmKHdpZHRoPD0zNjApe3dpZHRoPTk2MDt9CnZhciB2ZXJzaW9uPSh3aWR0aDw5NjApPydtb2JpbGUnOidkZXNrdG9wJzt2YXIgZWxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2JvZHkgPiAqJyk7dmFyIGlmcmFtZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9iaWxlU2l0ZScpO2lmKGxhc3RXaWR0aD09d2lkdGgpe3JldHVybiBmYWxzZTt9CmZvcihpIGluIGVscyl7aWYoIWVscy5oYXNPd25Qcm9wZXJ0eShpKSl7Y29udGludWU7fQpzd2l0Y2godmVyc2lvbil7Y2FzZSdtb2JpbGUnOmlmKGVsc1tpXT09PWlmcmFtZSl7c2hvd21lKGVsc1tpXSk7fWVsc2UgaWYoaWZyYW1lKXtoaWRlbWUoZWxzW2ldKTt9CmlmKGlmcmFtZSl7aWYoaWZyYW1lLnNyYz09J2Fib3V0OmJsYW5rJyl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3JjJyxpZnJhbWUuZGF0YXNldFsnaW1nc3JjJ10pO30KaWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLFsndG9wOjAnLCdkaXNwbGF5OmJsb2NrJywnbGVmdDowJywnd2lkdGg6Y2FsYygxMDB2dyAtICgxMDB2dyAtIDEwMCUpKScsJ2hlaWdodDoxMDAlJywnYm90dG9tOjAnLCdyaWdodDowJywncG9zaXRpb246YWJzb2x1dGUnLF0uam9pbignOycpKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDEnKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLW90LWlnbm9yZScsdHJ1ZSk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnZGF0YS1jb29raWVjb25zZW50JywnaWdub3JlJyk7fQpicmVhaztjYXNlJ2Rlc2t0b3AnOmlmKGVsc1tpXT09PWlmcmFtZSloaWRlbWUoZWxzW2ldKTtlbHNlIHNob3dtZShlbHNbaV0pO2lmKGlmcmFtZSl7aWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLFsnZGlzcGxheTogbm9uZScsJyddLmpvaW4oJzsnKSk7fQpicmVhazt9fQppZih2ZXJzaW9uPT0nZGVza3RvcCcpe2lmKGxhc3RXaWR0aD09d2lkdGgpcmV0dXJuO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT09J3VuZGVmaW5lZCcpalF1ZXJ5KHdpbmRvdykudHJpZ2dlcigncmVzaXplJyk7fSw1MDApO30KbGFzdFdpZHRoPXdpZHRoO30Kd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGltZW91dCk7dGltZW91dD1zZXRUaW1lb3V0KHJlc3BvbnNpdmVTaXRlLDIwMCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO3Muc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9jc3MnKTtzLmlubmVySFRNTD0nLmhpZGVtZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSAjbW9iaWxlU2l0ZSB7IGRpc3BsYXk6IG5vbmU7IH0nO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7dmFyIHRndD0naHR0cHM6Ly93d3cuZm9yY2VlbGVjdHJpcXVlLmNvbS9lbWJlZGVyL3Byb2Nlc3MvZnI\/bmZyPTEnLnJlcGxhY2UoLyUyRi9pZywnLycpO3RndCs9KCh0Z3QuaW5kZXhPZignPycpPT09LTEpPyc\/JzpgJmApKyduZnI9MSZ3c3dpZHRoPScrd2luZG93LnNjcmVlbi53aWR0aDtsZXQgdXJsUGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXModGd0KTtsZXQgY291bnQ9MDtpZih1cmxQYXJhbXMhPT0ndW5kZWZpbmVkJyYmdXJsUGFyYW1zLmhhcygnbmZyJykpe2NvdW50PXVybFBhcmFtcy5nZXRBbGwoJ25mcicpLmxlbmd0aDt9CmlmKGNvdW50PDMpe2kuc2V0QXR0cmlidXRlKCdkYXRhLWltZ3NyYycsdGd0KTtpLnNldEF0dHJpYnV0ZSgnc3JjJywnYWJvdXQ6YmxhbmsnKTtpLnNldEF0dHJpYnV0ZSgnaWQnLCdtb2JpbGVTaXRlJyk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt9CnJlc3BvbnNpdmVTaXRlKCk7fSk7c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwxMDAwKTt9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSk7fX0pKCk7CgoJKChkKSA9PiB7CgkJY29uc3QgY2UgPSBkLmNyZWF0ZUVsZW1lbnQ7CgkJbGV0IHVybENhdEFyciA9IHsKCQkJJ2NsYXJpdm95LmNvbScgOiAnQzAwMDInLAoJCQknZGVhbGVyLWxlYWRzLmNhJyA6ICdDMDAwMycsCgkJCSdyb2Fkc3Rlci5jb20vcm9hZHN0ZXInIDogJ0MwMDAyJywvL0RXUC0xMjI4MQoJCQknZnpsbmsuY29tL3NpZ25hbHMuanMnIDogJ0MwMDAyJywvL0RXUC0xMjI4OQoJCQknbGl2ZWNoYXRpbmMuY29tL3RyYWNraW5nLmpzJyA6ICdDMDAwMycsLy9EV1AtMTIzMDMKCQkJJ3RoZWxpdmVjaGF0c29mdHdhcmUuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIyOTcKCQkJJ2NhbmFkYS5kaWdpdGFsLWludGVydmlldy5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMAoJCQknc2RrLmF1dG92ZXJpZnkuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzMDEKCQkJJ2FuYWx5dGljcy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMzA5CgkJCSdocy1zY3JpcHRzLmNvbScgOiAnQzAwMDQnLC8vRFdQLTEyMzIwCgkJCSdtYXJrZXRpbmdhdXRvbWF0aW9uLnNlcnZpY2VzJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjIKCQkJJ2xlYWRmb3guY28nIDogJ0MwMDA0JywKCQkJJ3N0YXRpYy51cHRyYWNzLmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzU0CiAJCQknYmF0LmJpbmcuY29tJyA6ICdDMDAwMicsLy9EV1AtMTIzNTQKCQkJJ2d0YWcvanMnIDogJ0MwMDAyJywKCQkJJ3NkLmpzJyA6ICdDMDAwMScsCgkJCSdzZGEuanMnIDogJ0MwMDAxJywKCQkJCgkJfTsKCQlsZXQgdXJsQ2F0UmVnZXggPSAnKCcgKyBPYmplY3Qua2V5cyh1cmxDYXRBcnIpLmpvaW4oJ3wnKS5yZXBsYWNlKC9bKz8uXS9nLCAnXCQmJykgKyAnKSc7CgkJbGV0IGN1cnJlbnRDb25zZW50ID0gZ2V0Q29uc2VudCgpOwoJCXdpbmRvdy5zY3JpcHRVcmxBcnIgPSBbXTsKCQlkLmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiguLi5hcmdzKSB7CgkJCWNvbnN0IHMgPSBjZS5iaW5kKGQpKC4uLmFyZ3MpLCBzYSA9IHMuc2V0QXR0cmlidXRlLmJpbmQocyk7CgkJCXMuc2V0QXR0cmlidXRlID0gZnVuY3Rpb24obiwgdikgewoJCQkJaWYobiA9PT0gJ3NyYycgJiYgd2luZG93LnNjcmlwdFVybEFyci5pbmRleE9mKHYudG9TdHJpbmcoKSkgPT0gLTEpIHsKCQkJCQlpZigobmV3IFJlZ0V4cCh1cmxDYXRSZWdleCkpLnRlc3QodikpewoJCQkJCQlmb3Ioa2V5IGluIHVybENhdEFycil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCQkJCQkJCWlmICgobmV3IFJlZ0V4cChrZXkpKS50ZXN0KHYpKSB7CgkJCQkJCQkJd2luZG93LnNjcmlwdFVybEFyci5wdXNoKHYudG9TdHJpbmcoKSk7CgkJCQkJCQkJaWYoa2V5ID09ICdndGFnL2pzJyB8fCBrZXkgPT0gJ2JhdC5iaW5nLmNvbScgfHwga2V5ID09ICdzZC5qcycgfHwga2V5ID09ICdzZGEuanMnKXsKCQkJCQkJCQkJc2EoJ2RhdGEtb3QtaWdub3JlJywgdHJ1ZSk7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpOwoJCQkJCQkJCX0gZWxzZSBpZihjdXJyZW50Q29uc2VudCA9PSBudWxsIHx8IGN1cnJlbnRDb25zZW50LmluZGV4T2YodXJsQ2F0QXJyW2tleV0pID09IC0xKXsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9wbGFpbicpOwoJCQkJCQkJCQlzYSgnY2xhc3MnLCAnb3B0YW5vbi1jYXRlZ29yeS0nICsgdXJsQ2F0QXJyW2tleV0pOwoJCQkJCQkJCX0KCQkJCQkJCQlicmVhazsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXNhKG4sIHYpOwoJCQl9CgkJCXJldHVybiBzOwoJCX0KCQlmdW5jdGlvbiBnZXRDb25zZW50KCl7CgkJCWxldCBuYW1lID0gJ2QyY19jb29raWVfY29uc2VudCcgKyAnPSc7CgkJCWxldCBjYSA9ICgnJytkb2N1bWVudC5jb29raWUpLnNwbGl0KCc7Jyk7CgkJCWZvcihsZXQgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykgewoJCQkJbGV0IGMgPSBjYVtpXTsKCQkJCWMgPSBjLnRyaW0oKTsKCQkJCWlmIChjLmluZGV4T2YobmFtZSkgPT0gMCkgewoJCQkJCXRyeXsKCQkJCQkJYyA9IGRlY29kZVVSSUNvbXBvbmVudCggYyApOwoJCQkJCX0gY2F0Y2goIGUgKQoJCQkJCXsKCQkJCQkJY29uc29sZS5sb2coIGUgKTsKCQkJCQkJcmV0dXJuIG51bGw7CgkJCQkJfQoJCQkJCXJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpOwoJCQkJfQoJCQl9CgkJCXJldHVybiBudWxsOwoJCX0KCX0pKGRvY3VtZW50KTsKCglkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CgkvLyBMaXN0ZW4gZm9yIGNoYW5nZXMgdG8gdGhlIERPTQoJCWxldCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewoJCQltdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXRhdGlvbikgewoJCQkJaWYgKG11dGF0aW9uLmFkZGVkTm9kZXMgJiYgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGggPiAwKSB7CgkJCQkJLy8gQ2hlY2sgaWYgb3VyIHNjcmlwdCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRE9NCgkJCQkJZm9yIChsZXQgaSA9IDA7IGkgPCBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aDsgaSsrKSB7CgkJCQkJCWxldCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1tpXTsKCQkJCQkJaWYgKG5vZGUubm9kZVR5cGUgPT09IDEgJiYgbm9kZS50YWdOYW1lID09PSAnU0NSSVBUJyAmJiBub2RlLnNyYyAmJiBub2RlLnNyYy5pbmNsdWRlcygnY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScpICYmIHR5cGVvZiBPbmVUcnVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsKCQkJCQkJCQl0cnl7RGlnaXRhbEludGVydmlldy5MYXVuY2hlci5lbmFibGVMYXVuY2hQb2ludHMoKTt9Y2F0Y2goZSl7fQoJCQkJCQkJfSwgMTAwMCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0pOwoJCX0pOwoJCS8vIFN0YXJ0IG9ic2VydmluZyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgY29uZmlndXJlZCBwYXJhbWV0ZXJzCgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmhlYWQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJfSk7CgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iWlpaLTQxNTU2NDgiCnZhciBjdXJyZW50U2l0ZUlEPTExNDc7dmFyIGQyY19nYUFjY291bnRzPXsiYWxsIjpbXSwiaW50ZXJuYWwiOltdfTt2YXIgZDJjX2F3Y0lkPSdBVy00MTA4Nzg0ODAnO3ZhciBkMmNfYXdjTGFiZWw9J01XdWFDT1hMNnZnQkVKQ0U5c01CJzt2YXIgbGVnYWN5X2dhPWZhbHNlO3dpbmRvdy5kYXRhTGF5ZXI9d2luZG93LmRhdGFMYXllcnx8W107ZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fQpndGFnKCdqcycsbmV3IERhdGUoKSk7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goJ0ctWjVROFo1QzdLRicpO2QyY19nYUFjY291bnRzLmFsbC5wdXNoKCdHLUpLUlNWQ0VLODYnKTtpZihkMmNfYXdjSWQpe2QyY19nYUFjY291bnRzLmFsbC5wdXNoKGQyY19hd2NJZCk7fQooZDJjX2dhQWNjb3VudHMuYWxsfHxbXSkubWFwKGZ1bmN0aW9uKGlkKXtndGFnKCdjb25maWcnLGlkLHsnc2VuZF9wYWdlX3ZpZXcnOmZhbHNlLCdsaW5rZXInOnsnZG9tYWlucyc6SlNPTi5wYXJzZShhdG9iKCJXMTA9IikpLCdjb29raWVfZG9tYWluJzond3d3LmZvcmNlZWxlY3RyaXF1ZS5jb20nfX0pO30pOwovKl1dPiovCgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iRkxULTE1NjY0NTg4OTk2NDUzNDExNTM4NiIKdmFyIGRvY1JlYWR5QXJyPVtdO3ZhciBwYWdlPSJORVdDQVJTIjt2YXIgZmJDaGF0UmVmPXt9O3ZhciBkZXBsb3ltZW50VHlwZT0nbGl2ZSc7dmFyIGN1cnJlbnRTaXRlSUQ9MTE0Nzt2YXIgY3VycmVudERlYWxlcklEPTMyODk7dmFyIGdhVHlwZT0nZ3RhZyc7dmFyIGFsbENhbXBhaWducz1bWyJmb3JjZWVsZWN0cmlxdWUuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJUb3V0ZXMiLCIxMTIwOCJdLFsiZm9yY2VlbGVjdHJpcXVlLmNvbSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiT2NjYXNpb24iLCIxMTIwOSJdLFsiZm9yY2VlbGVjdHJpcXVlLmNvbSIsIlNFTSIsIkFnZW5jeSIsIjExMjEwIl0sWyJmb3JjZWVsZWN0cmlxdWUuY29tIiwiVHJhZGVyIiwiUmV0YXJnZXRpbmciLCIxMTIxMyJdLFsiZm9yY2VlbGVjdHJpcXVlLmNvbSIsIkJpbmciLCJCaW5nIiwiMTEyMTYiXSxbImZvcmNlZWxlY3RyaXF1ZS5jb20iLCJDb3VycmllbHMtcmVsYW5jZSIsIk5ldWZzIiwiMTEyMzYiXSxbIkZvcmNlZWxlY3RyaXF1ZS5jb20iLCJHb29nbGUiLCJZb3V0dWJlLWVsZWN0cmlxdWUiLCIxMTMwMyJdLFsiRm9yY2VlbGVjdHJpcXVlLmNvbSIsIkZhY2Vib29rIiwiTGVhZGFkcy1uZXVmLWV2IiwiMTE0NzQiXSxbIkZvcmNlZWxlY3RyaXF1ZS5jb20iLCJHb29nbGUiLCJOZXVmIiwiMTE2OTciXSxbIkZvcmNlZWxlY3RyaXF1ZS5jb20iLCJHb29nbGUiLCJPY2Nhc2lvbiIsIjExODE4Il0sWyJGb3JjZWVsZWN0cmlxdWUuY29tIiwiRmFjZWJvb2siLCJNZXNzZW5nZXIiLCIxMjU2OCJdLFsiRm9yY2VlbGVjdHJpcXVlLmNvbSIsIkZhY2Vib29rIiwiTGVhZGFkcy11c2VkLWNhdGFsb2ciLCIxMjc0NSJdLFsiRm9yY2VlbGVjdHJpcXVlLmNvbSIsIkdvb2dsZSIsIlNtYXJ0LW5ldWYiLCIxMjc3MCJdXQp2YXIgcmV0YXJnZXRpbmdDYW1wYWlnbnM9W10KdmFyIEFJQ3VycmVudENvbmZpZ0lEPTA7dmFyIEFJSURQZXJOZXdDYXJzRnJlbmNoPW5ldyBBcnJheSgpO3ZhciBBSUlEUGVyTmV3Q2Fyc0VuZ2xpc2g9bmV3IEFycmF5KCk7ZnVuY3Rpb24gcGFyc2VRdWVyeShzdHIpe2lmKHN0ci5sZW5ndGg8MSlyZXR1cm57fQp2YXIgdmFycz17fSx2O3ZhciBxcz1zdHIuc3BsaXQoJyYnKTtmb3IodmFyIGk9MDtpPHFzLmxlbmd0aDtpKyspe3Y9ZXhwbG9kZShxc1tpXSwnPScsMSk7dmFyc1t2WzBdXT12WzFdO30KcmV0dXJuIHZhcnM7fQpmdW5jdGlvbiBkZWNvZGVTdHJpbmcoc3RyaW5nLHRpbWVzKXtpZih0aW1lcz09IiJ8fHRpbWVzPT0idW5kZWZpbmVkIil7dGltZXM9MTt9CmZvcihpPTA7aTx0aW1lcztpKyspe3N0cmluZz1kZWNvZGVVUklDb21wb25lbnQoc3RyaW5nKTt9CnJldHVybiBzdHJpbmc7fQpmdW5jdGlvbiBkZWNvZGVIVE1MKGVuY29kZWQpe2lmKHR5cGVvZiBlbmNvZGVkIT09J3N0cmluZycpcmV0dXJuIGVuY29kZWQ7dmFyIGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7ZWwuaW5uZXJIVE1MPWVuY29kZWQ7cmV0dXJuIGVsLnZhbHVlO30KZnVuY3Rpb24gZXhwbG9kZShzdHIsc2VwYXJhdG9yLGxpbWl0KXtzdHI9c3RyLnNwbGl0KHNlcGFyYXRvcik7aWYoc3RyLmxlbmd0aDw9bGltaXQpcmV0dXJuIHN0cjt2YXIgcmV0PXN0ci5zcGxpY2UoMCxsaW1pdCk7cmV0LnB1c2goc3RyLmpvaW4oc2VwYXJhdG9yKSk7cmV0dXJuIHJldDt9CmZ1bmN0aW9uIGdldFVybFZhcnMoKXt2YXIgcXM9KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLnN1YnN0cmluZygxKTtyZXR1cm4gcGFyc2VRdWVyeShxcyk7fQpmdW5jdGlvbiBnZXRDb29raWUoY19uYW1lKXtyZXR1cm4gQ29va2llcy5nZXQoY19uYW1lKTt9CmZ1bmN0aW9uIGdldENvb2tpZShjX25hbWUpe3ZhciBjX3ZhbHVlPWRvY3VtZW50LmNvb2tpZTt2YXIgY19zdGFydD1jX3ZhbHVlLmluZGV4T2YoIiAiK2NfbmFtZSsiPSIpO2lmKGNfc3RhcnQ9PS0xKXtjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZihjX25hbWUrIj0iKTt9CmlmKGNfc3RhcnQ9PS0xKXtjX3ZhbHVlPW51bGw7fWVsc2V7Y19zdGFydD1jX3ZhbHVlLmluZGV4T2YoIj0iLGNfc3RhcnQpKzE7dmFyIGNfZW5kPWNfdmFsdWUuaW5kZXhPZigiOyIsY19zdGFydCk7aWYoY19lbmQ9PS0xKXtjX2VuZD1jX3ZhbHVlLmxlbmd0aDt9CmNfdmFsdWU9dW5lc2NhcGUoY192YWx1ZS5zdWJzdHJpbmcoY19zdGFydCxjX2VuZCkpO30KcmV0dXJuIGNfdmFsdWU7fQpmdW5jdGlvbiBzZXRDb29raWUoY19uYW1lLHZhbHVlLGV4ZGF5cyl7aXNDb29raWVBbGxvd2VkKGNfbmFtZSxmdW5jdGlvbihhbGxvd2VkKXtpZighYWxsb3dlZCl7cmV0dXJuIENvb2tpZXMuc2V0KGNfbmFtZSx2YWx1ZSxleGRheXMsJy8nKTtsb2dDb29raWUoY19uYW1lLHZhbHVlLGV4ZGF5cyk7cmV0dXJuO30KdmFyIGV4ZGF0ZT1uZXcgRGF0ZSgpO2V4ZGF0ZS5zZXREYXRlKGV4ZGF0ZS5nZXREYXRlKCkrZXhkYXlzKTt2YXIgY192YWx1ZT1lc2NhcGUodmFsdWUpKygoZXhkYXlzPT1udWxsKT8iIjoiOyBleHBpcmVzPSIrZXhkYXRlLnRvVVRDU3RyaW5nKCkpKyI7IHBhdGg9LyI7ZG9jdW1lbnQuY29va2llPWNfbmFtZSsiPSIrY192YWx1ZTt9KTt9CmZ1bmN0aW9uIGxvZ0Nvb2tpZShuYW1lLHZhbHVlLGV4cGlyZXMsdHJpZXMpe2lmKHR5cGVvZiB0cmllcz09PSd1bmRlZmluZWQnKXt0cmllcz01O30KaWYodHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI9PT0ndW5kZWZpbmVkJyl7aWYodHJpZXMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsb2dDb29raWUobmFtZSx2YWx1ZSxleHBpcmVzLHRyaWVzLTEpO30sMTAwMCk7fX1lbHNle3dpbmRvdy5Db29raWVMb2dnZXIubG9nKG5hbWUsdmFsdWUsZXhwaXJlcyk7fX0KZnVuY3Rpb24gaXNDb29raWVBbGxvd2VkKG5hbWUsY2FsbGJhY2ssdHJpZXMpe2lmKHR5cGVvZiB3aW5kb3cuQ29va2llQ29uc2VudD09PSd1bmRlZmluZWQnKXtpZih0eXBlb2YgdHJpZXM9PT0ndW5kZWZpbmVkJyl7dHJpZXM9NTt9CmlmKHRyaWVzKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aXNDb29raWVBbGxvd2VkKG5hbWUsY2FsbGJhY2ssdHJpZXMtMSk7fSwxMDAwKTt9fWVsc2V7d2luZG93LkNvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkKG5hbWUsY2FsbGJhY2spO319CmZ1bmN0aW9uIGdhUGFnZVZpZXcocHApeyhkMmNfZ2FBY2NvdW50cy5hbGx8fFtdKS5tYXAoZnVuY3Rpb24oaWQpe2xldCBkPXtwYWdlX3BhdGg6cHB9O2lmKGRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQScpe2NvbnNvbGUubG9nKCdndGFnJywnY29uZmlnJyxpZCxkKQpyZXR1cm47fQpndGFnKCdjb25maWcnLGlkLGQpO30pO307ZnVuY3Rpb24gZ2E0UGFnZVZpZXcocHApe2lmKGRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQScpe3JldHVybjt9Cmd0YWcoJ3NldCcseydwYWdlX3BhdGgnOnBwfSk7Z3RhZygnZXZlbnQnLCdwYWdlX3ZpZXcnLHsnc2VuZF90byc6J0ctSktSU1ZDRUs4Nid9KTt9CmZ1bmN0aW9uIGdldEdhQ2xpZW50SWQoKXtyZXR1cm4oKCh0eXBlb2Ygd2luZG93LmdhPT09J29iamVjdCcmJndpbmRvdy5nYSE9PW51bGwpfHx0eXBlb2Ygd2luZG93LmdhPT09J2Z1bmN0aW9uJykmJnR5cGVvZiBnYVsnZ2V0QWxsJ109PT0nZnVuY3Rpb24nKT9nYS5nZXRBbGwoKVswXS5nZXQoJ2NsaWVudElkJyk6Jyc7fQpmdW5jdGlvbiBnYVRyYWNrKGFhLGMsYSxsLHYpe2xldCBhYz1bXTtjb25zdCBjcz1kZXBsb3ltZW50VHlwZSE9J2xpdmUnfHwnVVMnIT0nQ0EnO2NvbnN0IGNoPShvLGQpPT50eXBlb2YgbyE9PSd1bmRlZmluZWQnP286ZDthYT1jaChhYSwnJyk7Yz1jaChjLCcnKTthPWNoKGEsJycpO2w9Y2gobCwnJyk7dj1jaCh2LDEpO2lmKGFhPT0naW50ZXJuYWwnKXthYz1kMmNfZ2FBY2NvdW50cy5pbnRlcm5hbDt9ZWxzZSBpZihhYS5sZW5ndGgmJi9eKGJ8Y3xkKVwuX3RyYWNrRXZlbnQvLnRlc3QoYWEpJiZ0eXBlb2YgZDJjX2dhQWNjb3VudHNbYWFbMF1dIT0ndW5kZWZpbmVkJyl7YWMucHVzaChkMmNfZ2FBY2NvdW50c1thYVswXV0pO30KaWYoYWMubGVuZ3RoKXthYy5tYXAoKGlkKT0+e2NvbnN0IGQ9e3NlbmRfdG86aWQsZXZlbnRfYWN0aW9uOmEsZXZlbnRfY2F0ZWdvcnk6YyxldmVudF9sYWJlbDpsLHZhbHVlOnZ9O2lmKGNzKXtjb25zb2xlLmxvZyhgR0FUUkFDSy1HVEFHLVNFTkQtVE9bJHtpZH1dOmAsJ2V2ZW50JyxhLGQpO3JldHVybjt9Cmd0YWcoJ2V2ZW50JyxhLGQpO30pO31lbHNle2NvbnN0IGQ9e2V2ZW50X2FjdGlvbjphLGV2ZW50X2NhdGVnb3J5OmMsZXZlbnRfbGFiZWw6bCx2YWx1ZTp2fTtpZihjcyl7Y29uc29sZS5sb2coJ0dBVFJBQ0stR1RBRy1OTy1TRU5ELVRPOicsJ2V2ZW50JyxhLGQpO31lbHNle2d0YWcoJ2V2ZW50JyxhLGQpO319fTtmdW5jdGlvbiBvbkNvbmZpcm1TdWJtaXQoZXZlbnQpe3JldHVybiB0cnVlO30KZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZShjX25hbWUsdmFsdWUpe3ZhciBleGRheXM9bnVsbDt2YXIgY192YWx1ZT1lc2NhcGUodmFsdWUpKyI7ZXhwaXJlcz0wO3BhdGg9LyI7ZG9jdW1lbnQuY29va2llPWNfbmFtZSsiPSIrY192YWx1ZTtsb2dDb29raWUoY19uYW1lKTt9CmZ1bmN0aW9uIGluaXRMQ0kocGFyYW1zLG4pe2lmKG4+MjApcmV0dXJuIG47dmFyIG49KG4pP246MDtpZih0eXBlb2YgTENfQVBJPT0ndW5kZWZpbmVkJ3x8dHlwZW9mIExDX0ludml0ZT09J3VuZGVmaW5lZCcpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbml0TENJKHBhcmFtcywrK24pO30sNTAwKTtyZXR1cm47fQppZih0eXBlb2YgTENfQVBJIT0ndW5kZWZpbmVkJyYmdHlwZW9mIExDX0ludml0ZSE9J3VuZGVmaW5lZCcmJnBhcmFtcyl7cmV0dXJuIExDX0FQSS5zZXRfY3VzdG9tX3ZhcmlhYmxlcyhwYXJhbXMpO319CmZ1bmN0aW9uIHNhbml0aXplUmVmZXJlcihyZWZlcmVyKXtyZXR1cm4gcmVmZXJlci5yZXBsYWNlKC9bJyJgKCk8PlxbXF17fXwhXS9nLCcnKTt9CmZ1bmN0aW9uIGdldFJlZmVycmVyVmFyRnVuY3Rpb24ocmVmZXJlcil7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoJyc9PXJlZmVyZXIpcmVmZXJlcj1kb2N1bWVudC5yZWZlcnJlcjtyZWZlcmVyPXNhbml0aXplUmVmZXJlcihyZWZlcmVyKTt2YXIgcXMscXNpbmRleD1yZWZlcmVyLmluZGV4T2YoJz8nKSsxO2lmKHFzaW5kZXg+MCl7dmFyIHFzPXJlZmVyZXIuc2xpY2UocXNpbmRleCk7cmV0dXJuIHBhcnNlUXVlcnkocXMpO30KcmV0dXJue319fQp2YXIgZ2V0UmVmZXJlclZhcnM9Z2V0UmVmZXJyZXJWYXJGdW5jdGlvbignJyk7dmFyIHV0bV9sYW5kaW5nX2Nvb2tpZT0oZ2V0Q29va2llKCd1dG1fbGFuZGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fbGFuZGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9sYW5kaW5nJyk6JycpO2lmKHV0bV9sYW5kaW5nX2Nvb2tpZS5sZW5ndGg9PTApe3NldENvb2tpZSgndXRtX2xhbmRpbmcnLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7fQppZihkZXBsb3ltZW50VHlwZT09J2xpdmUnKXt2YXIgZ2VuZXJhdGVHVUlEPWZ1bmN0aW9uKCl7dmFyIFM0PWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoweDEwMDAwKS50b1N0cmluZygxNik7fTtyZXR1cm4oUzQoKStTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpKyItIisKUzQoKStTNCgpK1M0KCkpO30KdmFyIHVybFZhcnM9Z2V0VXJsVmFycygpO3ZhciByZWZlcmVyVmFycz1nZXRSZWZlcmVyVmFycygpO3ZhciByZWZlcmVyPScnO3ZhciByYXdSZWZlcnJlcj1yZWZlcmVyO3JlZmVyZXI9KHJlZmVyZXIubGVuZ3RoPDE\/MDpyZWZlcmVyKTtpZignJz09cmF3UmVmZXJyZXIpcmF3UmVmZXJyZXI9ZG9jdW1lbnQucmVmZXJyZXI7dmFyIGl0ZW1UeXBlPSdjYXInO2l0ZW1UeXBlPShpdGVtVHlwZS5sZW5ndGg8MT8wOml0ZW1UeXBlKTtpZihpc05hTihyZWZlcmVyKSl7cmVmZXJlcj1yZWZlcmVyLnJlcGxhY2UoL1wvL2csInwiKS5yZXBsYWNlKC9cPy9nLCJfXyIpLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2VBbGwoJyUwQScsJycpLnJlcGxhY2VBbGwoJyUwOScsJycpLnJlcGxhY2VBbGwoJyUwQicsJycpLnJlcGxhY2VBbGwoJyUwMCcsJycpLnJlcGxhY2VBbGwoJyUwRCcsJycpO30KdmFyIG1ha2U9IiI7aWYobWFrZS5sZW5ndGg9PTApbWFrZT0iMCI7dmFyIG1vZGVsPSIiO2lmKG1vZGVsLmxlbmd0aD09MCltb2RlbD0iMCI7dmFyIHllYXI9IiI7aWYoeWVhci5sZW5ndGg9PTApeWVhcj0iMCI7dmFyIGlzbW9iaWxlPSIiO2lmKGlzbW9iaWxlLmxlbmd0aD09MClpc21vYmlsZT0iMCI7dmFyIG9yaWdTb3VyY2U9IiI7dmFyIG9yaWdDYW1wYWlnbj0iIjt2YXIgb3JpZ0tleXdvcmQ9IiI7aWYodXJsVmFyc1sicmVsYW5jZUlEIl0hPXVuZGVmaW5lZCkKc2V0Q29va2llKCdyZWxhbmNlSUQnLHVybFZhcnNbInJlbGFuY2VJRCJdLDE4MCk7dmFyIHNvdXJjZT0oZ2V0Q29va2llKCd1dG1fc291cmNlJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2UnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlJyk6JycpO3ZhciBzb3VyY2VDb29raWU9c291cmNlO3ZhciBzb3VyY2VVUkw9IiI7aWYoInV0bV9zb3VyY2UiaW4gdXJsVmFycyl7aWYoc291cmNlLmxlbmd0aD09MClzb3VyY2U9dXJsVmFyc1sndXRtX3NvdXJjZSddO3NvdXJjZVVSTD11cmxWYXJzWyd1dG1fc291cmNlJ107fQp2YXIgY2FtcGFpZ249KGdldENvb2tpZSgndXRtX2NhbXBhaWduJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpOicnKTtpZihjYW1wYWlnbi50b0xvd2VyQ2FzZSgpPT0nZWNvbGUtZXR1ZGlhbnQnKXtjYW1wYWlnbj0nJztzZXRDb29raWUoJ3V0bV9jYW1wYWlnbicsIiIsMSk7fQp2YXIgY2FtcGFpZ25Db29raWU9Y2FtcGFpZ247dmFyIGNhbXBhaWduVVJMPSIiO2lmKCJ1dG1fY2FtcGFpZ24iaW4gdXJsVmFycyl7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO2NhbXBhaWduVVJMPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO30KdmFyIG1lZGl1bT0oZ2V0Q29va2llKCd1dG1fbWVkaXVtJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9tZWRpdW0nKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fbWVkaXVtJyk6JycpO3ZhciBtZWRpdW1Db29raWU9bWVkaXVtO3ZhciBtZWRpdW1VUkw9IiI7aWYoInV0bV9tZWRpdW0iaW4gdXJsVmFycyl7aWYobWVkaXVtLmxlbmd0aD09MCltZWRpdW09dXJsVmFyc1sndXRtX21lZGl1bSddO21lZGl1bVVSTD11cmxWYXJzWyd1dG1fbWVkaXVtJ107fQp2YXIgY29va2llSW5DYW1wYWlnbnM9ZmFsc2U7dmFyIHVybEluQ2FtcGFpZ25zPWZhbHNlO3ZhciBoYXNHb29nbGVPcmdhbmljPWZhbHNlO2Zvcih2YXIgaT0wO2k8YWxsQ2FtcGFpZ25zLmxlbmd0aDtpKyspe2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VVUkwudG9Mb3dlckNhc2UoKSYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpdXJsSW5DYW1wYWlnbnM9dHJ1ZTtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlQ29va2llLnRvTG93ZXJDYXNlKCkmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpKWNvb2tpZUluQ2FtcGFpZ25zPXRydWU7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PSdnb29nbGUnJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09J29yZ2FuaXF1ZScpaGFzR29vZ2xlT3JnYW5pYz10cnVlO30KaWYoc291cmNlVVJMPT0iIiYmY2FtcGFpZ25VUkw9PSIiJiZzb3VyY2U9PSIiJiZjYW1wYWlnbj09IiImJmhhc0dvb2dsZU9yZ2FuaWMpe3NvdXJjZVVSTD0iR29vZ2xlIjtjYW1wYWlnblVSTD0iT3JnYW5pcXVlIjt1cmxJbkNhbXBhaWducz10cnVlO30KaWYoY29va2llSW5DYW1wYWlnbnM9PWZhbHNlJiZ1cmxJbkNhbXBhaWducz09dHJ1ZSl7c291cmNlPXNvdXJjZVVSTDtjYW1wYWlnbj1jYW1wYWlnblVSTDtzb3VyY2VDb29raWU9c291cmNlVVJMO2NhbXBhaWduQ29va2llPWNhbXBhaWduVVJMO30KaWYoc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nJiZzb3VyY2VVUkwudG9Mb3dlckNhc2UoKT09J2dvb2dsZScmJnVybEluQ2FtcGFpZ25zKXtzb3VyY2U9c291cmNlVVJMO2NhbXBhaWduPWNhbXBhaWduVVJMO30KdmFyIGN1cnJlbnRTaXRlSUQ9MTE0NztpZigoY3VycmVudFNpdGVJRD09NTkyfHxjdXJyZW50U2l0ZUlEPT00Mzd8fGN1cnJlbnRTaXRlSUQ9PTU3OXx8Y3VycmVudFNpdGVJRD09NTg1KSYmc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nKXtzb3VyY2VDb29raWU9J0dvb2dsZSc7c291cmNlPSdHb29nbGUnO2NhbXBhaWduQ29va2llPSdOZXVmJztjYW1wYWlnbj0nTmV1Zic7fQppZihjYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pYyd8fGNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCk9PSdvcmdhbmlxdWUnKXtzb3VyY2VDb29raWU9Jyc7Y2FtcGFpZ25Db29raWU9Jyc7bWVkaXVtQ29va2llPScnO30KaWYoc291cmNlLmxlbmd0aD4wJiYoc291cmNlQ29va2llLmxlbmd0aD09MHx8c291cmNlQ29va2llPT1zb3VyY2UpKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoY2FtcGFpZ24ubGVuZ3RoPjAmJihjYW1wYWlnbkNvb2tpZS5sZW5ndGg9PTB8fGNhbXBhaWduQ29va2llPT1jYW1wYWlnbikpc2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7aWYobWVkaXVtLmxlbmd0aD4wJiYobWVkaXVtQ29va2llLmxlbmd0aD09MHx8bWVkaXVtQ29va2llPT1tZWRpdW0pKXNldENvb2tpZSgndXRtX21lZGl1bScsbWVkaXVtLDE4MCk7dmFyIGtleXdvcmQ9KGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fa2V5d29yZCcpOicnKTtpZigia3ciaW4gdXJsVmFycyl7a2V5d29yZD1kZWNvZGVTdHJpbmcodXJsVmFyc1sna3cnXSwzKTt9CmlmKGtleXdvcmQubGVuZ3RoPjApc2V0Q29va2llKCd1dG1fa2V5d29yZCcsa2V5d29yZCwxODApO3ZhciBpc1JldGFyZ2V0aW5nPWZhbHNlO2Zvcih2YXIgaT0wO2k8cmV0YXJnZXRpbmdDYW1wYWlnbnMubGVuZ3RoO2krKyl7aWYocmV0YXJnZXRpbmdDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlVVJMLnRvTG93ZXJDYXNlKCkmJnJldGFyZ2V0aW5nQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpaXNSZXRhcmdldGluZz10cnVlO30KaWYoaXNSZXRhcmdldGluZyl7dmFyIHNvdXJjZVJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKTonJyk7dmFyIGNhbXBhaWduUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpOicnKTtpZihzb3VyY2UhPXNvdXJjZVVSTHx8Y2FtcGFpZ24hPWNhbXBhaWduVVJMKXtpZihzb3VyY2VVUkwubGVuZ3RoPjAmJnNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnLHNvdXJjZVVSTCwxODApO2lmKGNhbXBhaWduVVJMLmxlbmd0aD4wJiZjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycsY2FtcGFpZ25VUkwsMTgwKTt9CnNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlVVJMLDE4MCk7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduVVJMLDE4MCk7fQp2YXIgc291cmNlUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpOicnKTt2YXIgY2FtcGFpZ25SZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyk6JycpO2lmKHNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycsc291cmNlUmV0YXJnZXRpbmcsMTgwKTtpZihjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyxjYW1wYWlnblJldGFyZ2V0aW5nLDE4MCk7aWYoIXNvdXJjZSl7aWYocmF3UmVmZXJyZXIhPScnKXt2YXIgc2VsZkhvc3Q9KGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpLm1hdGNoKC9eW0Etel0rOlwvXC8oW15cL10rKVwvPy4qLyk7aWYoc2VsZkhvc3Qpe3NlbGZIb3N0PXNlbGZIb3N0WzFdfQp2YXIgaG9zdD0ocmF3UmVmZXJyZXIudG9TdHJpbmcoKSkubWF0Y2goL15bQS16XSs6XC9cLyhbXlwvXSspXC8\/LiovKTtpZihob3N0KXtob3N0PWhvc3RbMV19ZWxzZXtob3N0PXNlbGZIb3N0O30KaWYoaG9zdCE9c2VsZkhvc3Qpe2hvc3Q9aG9zdC5zcGxpdCgnLicpO2lmKGhvc3QubGVuZ3RoPjIpe3NvdXJjZT1ob3N0WzFdO30KaWYoaG9zdC5sZW5ndGg9PTIpe3NvdXJjZT1ob3N0WzBdO30KaWYoc291cmNlKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoIWNhbXBhaWduKXtjYW1wYWlnbj0nb3JnYW5pYyc7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7fX19fQppZihzb3VyY2UubGVuZ3RoPT0wKXNvdXJjZT0iMCI7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPSIwIjtpZihzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg9PTApc291cmNlUmV0YXJnZXRpbmc9IjAiO2lmKGNhbXBhaWduUmV0YXJnZXRpbmcubGVuZ3RoPT0wKWNhbXBhaWduUmV0YXJnZXRpbmc9IjAiO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXtpZihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZScpPT0ndW5kZWZpbmVkJyl7aWYodXJsVmFyc1sidXRtX2NhbXBhaWduIl0hPXVuZGVmaW5lZCYmKGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nLHVybFZhcnNbInV0bV9jYW1wYWlnbiJdLDE4MCk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQmJihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyx1cmxWYXJzWyJ1dG1fc291cmNlIl0sMTgwKTt9CnNldENvb2tpZSgnRGlzcGxheVNvdXJjZScsdXJsVmFyc1siRGlzcGxheVNvdXJjZSJdLDE4MCk7fQp2YXIgc2V0R2NsaWRDb29raWU9dHJ1ZTtpZih1cmxWYXJzWyJ1dG1fc291cmNlIl0hPXVuZGVmaW5lZCl7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nU0VNJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nVHJhZGVyJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nR29vZ2xlLW5lcmRtYXJrZXRpbmcnKXtzZXRHY2xpZENvb2tpZT1mYWxzZTt9fQppZih1cmxWYXJzWyJnY2xpZCJdIT11bmRlZmluZWQmJnNldEdjbGlkQ29va2llKXtzZXRDb29raWUoJ2djbGlkJyx1cmxWYXJzWyJnY2xpZCJdLDE4MCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKGV2ZW50KXtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nKXtzYXZlR0NMSUQ9ZnVuY3Rpb24oKXtpZigndW5kZWZpbmVkJz09dHlwZW9mIHdpbmRvdy5qUXVlcnkpe3JldHVybjt9CiQucG9zdCgiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL2djbGlkLnJlc3QuYXBpLnBocCIse3Nlc3Npb25pZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQsZ2NsaWQ6dXJsVmFyc1snZ2NsaWQnXX0pO307dHJ5e2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrKHNhdmVHQ0xJRCk7fWNhdGNoKGVycm9yKXtjb25zb2xlLmxvZyhlcnJvcik7fX19KTt9CndpbmRvdy5hY3RpdmVQYWdlPXBhZ2U7dmFyIHVpZD0oZ2V0Q29va2llKCd1aWQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndWlkJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndWlkJyk6Z2VuZXJhdGVHVUlEKCkpO3NldENvb2tpZSgndWlkJyx1aWQsMTgwKTt2YXIgZGVhbGVyaWQ9MzI4OTt2YXIgc2l0ZWlkPTExNDc7d2luZG93LmFjdGl2ZVNpdGVJRD1zaXRlaWQ7d2luZG93LmFjdGl2ZURlYWxlcklEPWRlYWxlcmlkO3ZhciBjYXJpZD0nJztpZihjYXJpZC5sZW5ndGg9PTApY2FyaWQ9IjAiO2Z1bmN0aW9uIHRhZ0J1aWxkKGludGVybmFscyl7cmV0dXJuJzwnKyhpbnRlcm5hbHMuam9pbignICcpKSsnIC8+Jzt9CnZhciBjYWNoZUNsZWFyZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTkpO3ZhciBhZGRUa0ltZz1mdW5jdGlvbihzcmMpe3N3aXRjaChkb2N1bWVudC5yZWFkeVN0YXRlKXtjYXNlImxvYWRpbmciOmRvY3VtZW50LndyaXRlKHRhZ0J1aWxkKFsnaW1nJywnc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7IicsJ3NyYz0iJytzcmMrJyInLCdhbHQ9IiInXSkpO2JyZWFrO2Nhc2UiaW50ZXJhY3RpdmUiOmNhc2UiY29tcGxldGUiOmRlZmF1bHQ6dHJ5e3ZhciBpbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aW1nLnN0eWxlLmNzc1RleHQ9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JztpbWcuc2V0QXR0cmlidXRlKCdzcmMnLHNyYyk7aW1nLnNldEF0dHJpYnV0ZSgnYWx0JywnVHJhY2tpbmcgcGl4ZWwnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiRXJyb3IgdGt3aWRnZXQ6ICIrZXgubWVzc2FnZSk7fQpicmVhazt9fTtjYW1wYWlnbj1jYW1wYWlnbi5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlKCclMEEnLCcnKS5yZXBsYWNlKCclMDknLCcnKS5yZXBsYWNlKCclMEInLCcnKS5yZXBsYWNlKCclMDAnLCcnKS5yZXBsYWNlKCclMEQnLCcnKTtzb3VyY2U9c291cmNlLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2UoJyUwQScsJycpLnJlcGxhY2UoJyUwOScsJycpLnJlcGxhY2UoJyUwQicsJycpLnJlcGxhY2UoJyUwMCcsJycpLnJlcGxhY2UoJyUwRCcsJycpO3ZhciB0a3NyYz0nL3Byb3h5X3NhdWIvd2Vic2l0ZUhpdHMvJysKZGVhbGVyaWQrIi8iK3NpdGVpZCsiLyIrY2FyaWQrIi8iK2VzY2FwZSh1aWQpKyIvIitwYWdlKyIvIitlc2NhcGUoc291cmNlKSsiLyIrZXNjYXBlKGNhbXBhaWduKSsiLyIrZXNjYXBlKG1ha2UpKyIvIitlc2NhcGUobW9kZWwpKyIvIit5ZWFyKyIvIisKaXNtb2JpbGUrIi8iK2VuY29kZVVSSUNvbXBvbmVudChyZWZlcmVyKSsiLyIrZXNjYXBlKGl0ZW1UeXBlKSsiLyIrZXNjYXBlKHNvdXJjZVJldGFyZ2V0aW5nKSsiLyIrZXNjYXBlKGNhbXBhaWduUmV0YXJnZXRpbmcpKyIvIitjYWNoZUNsZWFyZXIrJy5naWYnO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZz09J3VuZGVmaW5lZCd8fCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSlhZGRUa0ltZyh0a3NyYyk7dmFyIGtleXdvcmRzPSIiO2lmKCJwImluIHJlZmVyZXJWYXJzJiZyZWZlcmVyLmluZGV4T2YoInlhaG9vIik+LTEpe2tleXdvcmRzPXJlZmVyZXJWYXJzWydwJ107fQppZigicSJpbiByZWZlcmVyVmFycyYmKHJlZmVyZXIuaW5kZXhPZigiZ29vZ2xlIik+LTF8fHJlZmVyZXIuaW5kZXhPZigiYmluZyIpPi0xKSl7a2V5d29yZHM9cmVmZXJlclZhcnNbJ3EnXTt9CnZhciB1TGFuZz0oZ2V0Q29va2llKCdsYW5nJyk9PSdlbicpPydlbic6J2ZyJzt3aW5kb3cuZmJDaGF0UmVmPXtyOidzaXRlJyxjOmNhbXBhaWduLHM6c291cmNlfTt2YXIgY3VzdG9tX3ZhcmlhYmxlcz1be25hbWU6J2xhbmd1YWdlJyx2YWx1ZTp1TGFuZ30se25hbWU6J3V0bV9jYW1wYWlnbicsdmFsdWU6Y2FtcGFpZ259LHtuYW1lOid1dG1fc291cmNlJyx2YWx1ZTpzb3VyY2V9LHtuYW1lOidwYWdlJyx2YWx1ZTpwYWdlfSx7bmFtZTondWlkJyx2YWx1ZTp1aWR9LHtuYW1lOidjYXJpZCcsdmFsdWU6Y2FyaWR9LHtuYW1lOidtYWtlJyx2YWx1ZTptYWtlfSx7bmFtZTonbW9kZWwnLHZhbHVlOm1vZGVsfSx7bmFtZToneWVhcicsdmFsdWU6eWVhcn0se25hbWU6J2lzTW9iaWxlU2l0ZScsdmFsdWU6aXNtb2JpbGV9XTt3aW5kb3cuY1ZhcmlhYmxlcz1jdXN0b21fdmFyaWFibGVzO3dpbmRvdy5yZWxhbmNlSGFuZGxlckZuYz1mdW5jdGlvbigpe3ZhciByZWxhbmNlSUQ9KGdldENvb2tpZSgncmVsYW5jZUlEJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3JlbGFuY2VJRCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3JlbGFuY2VJRCcpOjApO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50IT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChyZWxhbmNlSUQsJ3JlbGFuY2VJRCcpO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwnZGlzcGxheVNvdXJjZScpO2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwndXRtX2NhbXBhaWduJyk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fc291cmNlIl0sJ3V0bV9zb3VyY2UnKTt9fQplbHNlCnNldFRpbWVvdXQod2luZG93LnJlbGFuY2VIYW5kbGVyRm5jLDEwMDApO307dmFyIGluaXRGPWZ1bmN0aW9uKCl7aW5pdExDSShjdXN0b21fdmFyaWFibGVzKTt3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmMoKTt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsaW5pdEYpO2Vsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGluaXRGLGZhbHNlKTt2YXIgYWljdXJyZW50cGFnZT0nbmV3Y2Fycy5odG1sJztpZihBSUN1cnJlbnRDb25maWdJRD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KEFJQ3VycmVudENvbmZpZ0lELCdBSUNvbmZpZycpO30KaWYoQUlJRFBlck5ld0NhcnNGcmVuY2gubGVuZ3RoPjAmJmFpY3VycmVudHBhZ2U9PSduZXdjYXJkZXRhaWwuaHRtbCcmJmdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKSE9bnVsbCl7dmFyIGxhc3RuZXd2ZWhpY2xlPWdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKTt2YXIgbGFzdG5ld3ZlaGljbGVzcGxpdD1sYXN0bmV3dmVoaWNsZS5zcGxpdCgnfHx8Jyk7dmFyIGFpbmV3Y2FyaWQ9MDtpZih0eXBlb2YgQUlJRFBlck5ld0NhcnNGcmVuY2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dIT09J3VuZGVmaW5lZCcpYWluZXdjYXJpZD1BSUlEUGVyTmV3Q2Fyc0ZyZW5jaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYodHlwZW9mIEFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV0hPT0ndW5kZWZpbmVkJylhaW5ld2NhcmlkPUFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYoYWluZXdjYXJpZD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGFpbmV3Y2FyaWQsJ0FJQ29uZmlnTmV3Q2FyJyk7fX19CnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZm49ZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT0ndW5kZWZpbmVkJyl7cmV0dXJuIGpRdWVyeS5yZWFkeSgpO30Kc2V0VGltZW91dChmbiwxMDApO30KZm4oKTt9LDEwMDApOwovKl1dPiovCgoJLyo8IVtDREFUQVsqLwoJdmFyIHBhcmFtcyA9IGdldFVybFZhcnMoKTsKCS8vc2V0IHBhcmFtIHZhbHVlIGludG8gc2Vzc2lvbiBzdG9yYWdlCglpZiAodHlwZW9mIHNlc3Npb25TdG9yYWdlICE9PSAndW5kZWZpbmVkJykgewoKCQlpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoJ2gnKSl7CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2gnLHBhcmFtcy5oKTsKCQl9CgoJCWlmKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnbScpKXsKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbScscGFyYW1zLm0pOwoJCX0KCgkJdmFyIGggPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdoJyk7CgkJdmFyIG0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtJyk7CgoJCS8vcmVhZCBzZXNzaW9uIGFuZCByZW1vdmUgaGVhZGVyICYgbWVudSBpZiBvcHRpb25zIGhhdmUgYmVlbiBzZXQKCQlpZihoID09PSAnbm8nKXsKCQkJLy9zdHVmZiB0byByZW1vdmUgdGhhdCBpcyBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIGhlYWRlcgoJCQl2YXIgaGVhZGVycyA9IFsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItaW5mbycpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1mb290ZXInKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sYW5ndWFnZUJhcicpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1sb2dvJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9iaWxlLWhlYWRlciA+ICo6bm90KC5idXJnZXItbWVudS1jb250YWluZXIpJykKCQkJXTsKCgkJCWZvcih2YXIgZWxlbSBvZiBoZWFkZXJzKXsKCQkJCS8vcmVtb3ZlIG5vZGUgbGlzdCBxdWVyaWVzCgkJCQlpZiAoTm9kZUxpc3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZWxlbSkpIHsKCQkJCQlmb3IodmFyIF9lbGVtIG9mIGVsZW0pewoJCQkJCQlpZiAoX2VsZW0gIT09IG51bGwpIHsKCQkJCQkJCV9lbGVtLnJlbW92ZSgpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJZWxzZSBpZiAoZWxlbSAhPT0gbnVsbCl7CgkJCQkJZWxlbS5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy9tZW51CgkJaWYobSA9PT0gJ25vJyl7CgkJCXZhciBtZW51cyA9IFsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItbWVudScpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmJ1cmdlci1tZW51LWNvbnRhaW5lcicpLAoJCQldOwoJCQlmb3IodmFyIGVsZW0gb2YgbWVudXMpewoJCQkJaWYoZWxlbSAhPT0gbnVsbCl7CgkJCQkJZWxlbS5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy9zaW5jZSBubyBoZWFkZXIgb3IgbWVudSwgcmVtb3ZlIGV2ZXJ5dGhpbmcKCQlpZiAobSA9PT0gJ25vJyAmJiBoID09PSAnbm8nKSB7CgkJCXZhciBoZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubW9iaWxlLWhlYWRlcicpOwoJCQlpZihoZWFkZXIgIT09IG51bGwpewoJCQkJaGVhZGVyLnJlbW92ZSgpOwoJCQl9CgkJfQoKCX0KCS8qXV0+Ki8K","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgkJCQkJLyo8IVtDREFUQVsqLwoJCQkJCXZhciBib3hCbG9ja3MgPSB7InN1diI6eyJmYnhfc3V2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MjU0MjUsImNvbnNvIjo3LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IlNvdWwiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MjgwMjUsImNvbnNvIjo2Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IlNlbHRvcyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjoyODQyNSwiY29uc28iOjYuNzk5OTk5OTk5OTk5OTk5ODIyMzY0MzE2MDU5OTc0OTUzNTMyMjE4OTMzMTA1NDY4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiU2VsdG9zIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjMzMDc1LCJjb25zbyI6Ny4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IlNwb3J0YWdlIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjM0Njc1LCJjb25zbyI6NywiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJTcG9ydGFnZSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfNiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NiwicG9zaXRpb24iOjYsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo0MTMyNSwiY29uc28iOjguNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJTb3JlbnRvIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl83Ijp7InZpc2libGUiOnRydWUsImlkIjo3LCJwb3NpdGlvbiI6NywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjUzMzI1LCJjb25zbyI6MTAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiVGVsbHVyaWRlIiwic3BlY2lhbE9yZGVyIjowfX0sImNhciI6eyJmYnhfY2FyXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MjYxMjUsImNvbnNvIjo1Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6Iks0Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2Nhcl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjI2NDI1LCJjb25zbyI6NiwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJLNCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jYXJfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjoyNjkyNSwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiSzQgSGF0Y2hiYWNrIiwic3BlY2lhbE9yZGVyIjowfX0sImh5YnJpZCI6eyJmYnhfaHlicmlkXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6MzMwMjUsImNvbnNvIjo0LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiTmlybyBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6MzMwNzUsImNvbnNvIjo0LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiTmlybyBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMsInBvc2l0aW9uIjozLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDExNzUsImNvbnNvIjo2LjI5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IlNwb3J0YWdlIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjo0Mzg3NSwiY29uc28iOjYuNTk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJTcG9ydGFnZSBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDYwMjUsImNvbnNvIjo2LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IlNvcmVudG8gSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF82Ijp7InZpc2libGUiOnRydWUsImlkIjo2LCJwb3NpdGlvbiI6NiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ3OTc1LCJjb25zbyI6Ni45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IlNvcmVudG8gSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF83Ijp7InZpc2libGUiOnRydWUsImlkIjo3LCJwb3NpdGlvbiI6NywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ4OTI1LCJjb25zbyI6Ny41OTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6Im1pbml2YW4iLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJDYXJuaXZhbCBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NTA3NzUsImNvbnNvIjo3LjUsImNhckNhdGVnb3J5IjoibWluaXZhbiIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IkNhcm5pdmFsIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH19LCJwaGV2Ijp7ImZieF9waGV2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxNiwicHJpY2UiOjM5MDI1LCJjb25zbyI6NC45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6Ik5pcm8gUGx1Zy1JbiBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjozOTA3NSwiY29uc28iOjQuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJOaXJvIFBsdWctSW4gSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3BoZXZfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjE2LCJwcmljZSI6NDg3NzUsImNvbnNvIjo2LjQwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiU3BvcnRhZ2UgUGx1Zy1JbiBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjo0OTk3NSwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiU3BvcnRhZ2UgUGx1Zy1JbiBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjo1MTAyNSwiY29uc28iOjYuMjk5OTk5OTk5OTk5OTk5ODIyMzY0MzE2MDU5OTc0OTUzNTMyMjE4OTMzMTA1NDY4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiU29yZW50byBQbHVnLUluIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9waGV2XzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxNiwicHJpY2UiOjUyOTc1LCJjb25zbyI6Ni45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IlNvcmVudG8gUGx1Zy1JbiBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9fSwiZWxlY3RyaWMiOnsiZmJ4X2VsZWN0cmljXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo0LCJwcmljZSI6NDEzNzUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IkVWNCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY18yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjQ1ODc1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJFVjUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjQsInByaWNlIjo0NzgyNSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiTmlybyBFViIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY180Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjQ3ODI1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJOaXJvIEVWIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjozLCJmdWVsIjo0LCJwcmljZSI6NTEzNzUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJraWEiLCJjYXJNb2RlbCI6IkVWNiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY182Ijp7InZpc2libGUiOnRydWUsImlkIjo2LCJwb3NpdGlvbiI6NiwiZHJpdmV0cmFpbiI6MywiZnVlbCI6NCwicHJpY2UiOjYyMzc1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJFVjkiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfNyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NywicG9zaXRpb24iOjcsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjQsInByaWNlIjo2MjM3NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiRVY5Iiwic3BlY2lhbE9yZGVyIjowfX0sIm1pbml2YW4iOnsiZmJ4X21pbml2YW5fMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo0Mjg3NSwiY29uc28iOjguODAwMDAwMDAwMDAwMDAwNzEwNTQyNzM1NzYwMTAwMTg1ODcxMTI0MjY3NTc4MTI1LCJjYXJDYXRlZ29yeSI6Im1pbml2YW4iLCJjYXJNYWtlIjoia2lhIiwiY2FyTW9kZWwiOiJDYXJuaXZhbCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9taW5pdmFuXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NDQ4MjUsImNvbnNvIjo5LjMwMDAwMDAwMDAwMDAwMDcxMDU0MjczNTc2MDEwMDE4NTg3MTEyNDI2NzU3ODEyNSwiY2FyQ2F0ZWdvcnkiOiJtaW5pdmFuIiwiY2FyTWFrZSI6ImtpYSIsImNhck1vZGVsIjoiQ2Fybml2YWwiLCJzcGVjaWFsT3JkZXIiOjB9fX07CgkJCQkJLyotLSovCgkJCQkJdmFyIGJveFBvc2l0aW9ucyA9IHsiZmJ4X3N1dl8xIjoxLCJmYnhfY2FyXzEiOjEsImZieF9jYXJfMiI6MiwiZmJ4X2Nhcl8zIjozLCJmYnhfc3V2XzIiOjIsImZieF9zdXZfMyI6MywiZmJ4X2h5YnJpZF8xIjoxLCJmYnhfaHlicmlkXzIiOjIsImZieF9zdXZfNCI6NCwiZmJ4X3N1dl81Ijo1LCJmYnhfcGhldl8xIjoxLCJmYnhfcGhldl8yIjoyLCJmYnhfaHlicmlkXzMiOjMsImZieF9zdXZfNiI6NiwiZmJ4X2VsZWN0cmljXzEiOjEsImZieF9taW5pdmFuXzEiOjEsImZieF9oeWJyaWRfNCI6NCwiZmJ4X21pbml2YW5fMiI6MiwiZmJ4X2VsZWN0cmljXzIiOjIsImZieF9oeWJyaWRfNSI6NSwiZmJ4X2VsZWN0cmljXzMiOjMsImZieF9lbGVjdHJpY180Ijo0LCJmYnhfaHlicmlkXzYiOjYsImZieF9waGV2XzMiOjMsImZieF9oeWJyaWRfNyI6NywiZmJ4X3BoZXZfNCI6NCwiZmJ4X2h5YnJpZF84Ijo4LCJmYnhfcGhldl81Ijo1LCJmYnhfZWxlY3RyaWNfNSI6NSwiZmJ4X3BoZXZfNiI6NiwiZmJ4X3N1dl83Ijo3LCJmYnhfZWxlY3RyaWNfNiI6NiwiZmJ4X2VsZWN0cmljXzciOjd9OwoJCQkJCS8qKiBGaWx0ZXIgSlMgaW4gbmV3Y2Fycy5qcyAqKi8KCQkJCQkvKl1dPiovCgkJCQkKCgkJCQl2YXIgTGVhZENvbmZpZ3MgPSAodHlwZW9mIExlYWRDb25maWdzICE9ICd1bmRlZmluZWQnKSA\/IExlYWRDb25maWdzIDoge307CgoJCQkJbGV0IGFjdGl2ZUxhbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlc2l0ZWxhbmd1YWdlJykgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlc2l0ZWxhbmd1YWdlJykudmFsdWUgOiAnRlJFTkNIJzsKCgkJCQlMZWFkQ29uZmlncy5EZWFsZXJBcHBvaW50bWVudCA9IHsKCgkJCQkJdGl0bGU6IChhY3RpdmVMYW5nID09ICdFTkdMSVNIJyA\/ICdSZXF1ZXN0IGFuIGFwcG9pbnRtZW50JyA6ICdQcmVuZHJlIFJlbmRlei12b3VzJyksCgkJCQkJY2xvc2VPblN1Ym1pdCA6IHRydWUsCgkJCQkJbmFtZSA6ICdEZWFsZXJBcHBvaW50bWVudCcsCgoJCQkJCW9uQmVmb3JlT3BlbjogZnVuY3Rpb24obGVhZENvbmYpewogICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS50cmlnZ2VyKCdkZWFsZXJBcHBvaW50bWVudC5zdGFydCcpOwoKCQkJCQkJY29uc3QgdGltZVR4dEVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkVGltZScpOwoJCQkJCQljb25zdCB0aW1lSW5wdXQgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCdbbmFtZT0iZGF0ZSJdJyk7CgkJCQkJCWNvbnN0IHBpY2tlciA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5kYXRlcGlja2VyJyk7CgkJCQkJCWNvbnN0IHBob25lRWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCdbbmFtZT0icGhvbmVudW0iXScpOwoJCQkJCQljb25zdCBob3Vyc0Jsb2NrID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLmhvdXJzTGlzdCcpOwoJCQkJCQlsZXQgZGF5Tm9kZXMgPSBBcnJheS5mcm9tKGhvdXJzQmxvY2suY2hpbGRyZW4pOwoJCQkJCQlsZXQgZGF0ZUZvcm1hdCA9ICBhY3RpdmVMYW5nID09ICdFTkdMSVNIJyA\/ICdGIGogWSwgSDppJyA6ICdqIEYgWSwgSDppJzsKCgoJCQkJCQljb25zdCBzZXRTZWxlY3RlZCA9IChzZWxlY3RlZERhdGVzLCBkYXRlU3RyLCBpbnN0YW5jZSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRseVNlbGVjdGVkRGF0ZSA9IHNlbGVjdGVkRGF0ZXNbMF0gfHwgbmV3IERhdGUoKTsvL2Rvbid0IHBsYXkgd2l0aCB0aGlzIG9yIG1pZ2h0IGFmZmVjdCBkYXRlL3RpbWUgc2VsZWN0aW9uCgkJCQkJCQlsZXQgZGF5TnVtID0gY3VycmVudGx5U2VsZWN0ZWREYXRlLmdldERheSgpOwoKCQkJCQkJCWRheU51bSA9IGRheU51bSA9PSAwID8gNyA6IGRheU51bTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF5TWluVGltZSA9IGRheU5vZGVzW2RheU51bSAtIDFdLmRhdGFzZXQubWluaG91ciB8fCAnMDk6MDAnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRheU1heFRpbWUgPSBkYXlOb2Rlc1tkYXlOdW0gLSAxXS5kYXRhc2V0Lm1heGhvdXIgfHwgJzE3OjAwJzsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21pblRpbWUgbWFuYWdlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pZiBkYXRlIGlzIHRvZGF5LCBtaW5UaW1lIG5lZWRzIHRvIGJlIGEgbWluaW11bSBvZiAxaG91ciBsYXRlciBmcm9tIGN1cnJlbnQgdGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2VsZWN0ZWREYXRlc1swXSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjY2VwdGVkRXhjZXB0aW9uID0gNTsvL21pbnV0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZWxlY3RlZERhdGVzWzBdLnRvRGF0ZVN0cmluZygpID09IG5vdy50b0RhdGVTdHJpbmcoKSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaW5Ib3VyID0gbm93LmdldEhvdXJzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaW5NaW51dGUgPSBub3cuZ2V0TWludXRlcygpICsgNjA7Ly9hZGQgMSBob3VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSA+PSA2MCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5Ib3VyICs9IE1hdGguZmxvb3IobWluTWludXRlIC8gNjApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTWludXRlID0gbWluTWludXRlICUgNjA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihtaW5NaW51dGUgJSAxNSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tYWtlIGl0IHNvIHRoYXQgbWludXRlcyBhcmUgZWl0aGVyIHJvdW5kZWQgdG8gbmV4dCAxNW1pbiBpbmNyZW1lbnQgb3IgdG8gdGhlIHByZXZpb3VzIG9uZSBpZiB3aXRoaW4gYWNjZXB0ZWRFeGNlcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihtaW5NaW51dGUgJSAxNSA8PSBhY2NlcHRlZEV4Y2VwdGlvbil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbk1pbnV0ZSA9IG1pbk1pbnV0ZSAtIChtaW5NaW51dGUgJSAxNSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoKG1pbk1pbnV0ZSAlIDE1ID4gYWNjZXB0ZWRFeGNlcHRpb24pKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTWludXRlID0gbWluTWludXRlICsgKDE1IC0gKG1pbk1pbnV0ZSAlIDE1KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9kbyBub3RoaW5nLCBhbHJlYWR5IGF0IGluY3JlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbkhvdXIgPj0gMjQpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9ubyBtb3JlIGF2YWlsYWJsZSB0aW1lIHRvZGF5LCBzZXQgdG8gbmV4dCBkYXkgYXQgMDk6MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLnNldERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc3RhbmNlLnNldCgnbWluVGltZScsIGRheU1pblRpbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU1pblRpbWUgPSBTdHJpbmcobWluSG91cikucGFkU3RhcnQoMiwnMCcpICsgJzonICsgU3RyaW5nKG1pbk1pbnV0ZSkucGFkU3RhcnQoMiwnMCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWF4VGltZSBtYW5hZ2VtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsYXN0IGFwcG9pbnRtZW50IHRpbWUgbWFuYWdlbWVudCAoMTVtaW4gYmVmb3JlIGNsb3NpbmcgdGltZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBbY2xvc2luZ0hvdXJzLCBjbG9zaW5nTWludXRlc10gPSBkYXlNYXhUaW1lLnNwbGl0KCc6JykubWFwKE51bWJlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF5RGF0ZSA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlEYXRlLnNldEhvdXJzKGNsb3NpbmdIb3VycywgY2xvc2luZ01pbnV0ZXMsIDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5RGF0ZS5zZXRNaW51dGVzKGRheURhdGUuZ2V0TWludXRlcygpIC0gMTUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9mb3JtYXQgdGhlIG5ldyB0aW1lIGJhY2sgaW50byAnSEg6bW0nIGZvcm1hdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdHVhbENsb3NpbmdIb3VycyA9IGRheURhdGUuZ2V0SG91cnMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsQ2xvc2luZ01pbnV0ZXMgPSBkYXlEYXRlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlNYXhUaW1lID0gYWN0dWFsQ2xvc2luZ0hvdXJzICsgJzonICsgYWN0dWFsQ2xvc2luZ01pbnV0ZXM7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zZXQgc3RhcnQvZW5kIHRpbWUgZm9yIHRoYXQgZGF5CgkJCQkJCQlpbnN0YW5jZS5zZXQoJ21pblRpbWUnLCBkYXlNaW5UaW1lKTsKCQkJCQkJCWluc3RhbmNlLnNldCgnbWF4VGltZScsIGRheU1heFRpbWUpOwoKCQkJCQkJCS8vU2V0IGN1cnJlbnQgZGF0ZSBpbml0aWFsbHkKCQkJCQkJCXRpbWVUeHRFbC50ZXh0Q29udGVudCA9ICFzZWxlY3RlZERhdGVzLmxlbmd0aAoJCQkJCQkJCQkJCQkgID8gaW5zdGFuY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksIChhY3RpdmVMYW5nID09ICdFTkdMSVNIJyA\/ICdGIGogWSwgMTI6MDAnIDogJ2ogRiBZLCAxMjowMCcpKQoJCQkJCQkJCQkJCQkgIDogZGF0ZVN0cjsKCgkJCQkJCQkvL2dldCB0aGUgZGF0ZSBpbiBlbmdsaXNoIGFuZCBmcmVuY2ggZm9yIHRoZSBsb2NhbCBzdG9yYWdlCgkJCQkJCQl0aW1lVHh0RWwuZGF0YXNldC5lbiA9IGluc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCdGIGogWSwgMTI6MDAnLCBmbGF0cGlja3IubDEwbnMuZW4pOwoJCQkJCQkJdGltZVR4dEVsLmRhdGFzZXQuZnIgPSBpbnN0YW5jZS5mb3JtYXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwnaiBGIFksIDEyOjAwJywgZmxhdHBpY2tyLmwxMG5zLmZyKTsKCgkJCQkJCQl0aW1lSW5wdXQudmFsdWUgPSB0aW1lVHh0RWwudGV4dENvbnRlbnQ7CgoJCQkJCQkJaW5zdGFuY2UuaG91ckVsZW1lbnQuYmx1cigpOwoJCQkJCQl9OwoKCQkJCQkJbGV0IGNsb3NlZERheXMgPSBbXTsKCQkJCQkJZGF5Tm9kZXMuZm9yRWFjaCgoZSxpKSA9PiB7CgkJCQkJCQlpZigoZS5kYXRhc2V0LmNsb3NlZCB8fCAnMCcpID09ICcxJykgY2xvc2VkRGF5cy5wdXNoKGkpCgkJCQkJCX0pOwoKCQkJCQkJLy9BZGQgZnJlbmNoIGxvY2FsaXphdGlvbiB3aGVuIG5lZWRlZAoJCQkJCQlpZihhY3RpdmVMYW5nID09ICdGUkVOQ0gnKXsKCQkJCQkJCWZsYXRwaWNrci5sb2NhbGl6ZShmbGF0cGlja3IubDEwbnMuZnIpOwoJCQkJCQl9CgoKCgkJCQkJCWNvbnN0IGZwID0gZmxhdHBpY2tyKHBpY2tlciwgewoJCQkJCQkJaW5saW5lOnRydWUsCgkJCQkJCQllbmFibGVUaW1lOiB0cnVlLAoJCQkJCQkJbWluRGF0ZTogJ3RvZGF5JywvL2JhY2sgZnJvbSBuZXcgRGF0ZSgpLmZwX2luY3IoMSkgYnV0IGFsc28gYWRkZWQgdGltZSB2YWxpZGF0aW9uIGZvciBtaW5UaW1lCgkJCQkJCQltaW5UaW1lOiAiMDk6MDAiLAoJCQkJCQkJbWF4VGltZTogIjE3OjAwIiwKCQkJCQkJCWRhdGVGb3JtYXQ6IGRhdGVGb3JtYXQsLy8iRCwgaiBGIFksIEg6aSIsCgkJCQkJCQltaW51dGVJbmNyZW1lbnQ6MTUsCgkJCQkJCQl0aW1lXzI0aHI6dHJ1ZSwKCQkJCQkJCW9uQ2hhbmdlOiBzZXRTZWxlY3RlZCwKCQkJCQkJCW9uUmVhZHk6IHNldFNlbGVjdGVkLAoJCQkJCQkJZGlzYWJsZTogWwoJCQkJCQkJCWZ1bmN0aW9uKGRhdGUpewoJCQkJCQkJCQlsZXQgZGF5TnVtID0gZGF0ZS5nZXREYXkoKSA9PSAwID8gNyA6IGRhdGUuZ2V0RGF5KCk7CgkJCQkJCQkJCXJldHVybiBjbG9zZWREYXlzLmluY2x1ZGVzKGRheU51bSAtIDEpOwoJCQkJCQkJCX0KCQkJCQkJCV0sCgkJCQkJCQlsb2NhbGU6IHsKCQkJCQkJCQlmaXJzdERheU9mV2VlazogMSAvLyBzdGFydCB3ZWVrIG9uIE1vbmRheQoJCQkJCQkJfQoKCQkJCQkJfSk7CgoJCQkJCX0sCgoJCQkJCW9uQmVmb3JlU3VibWl0IDogKGxlYWRDb25mKSA9PiB7CgkJCQkJCWNvbnN0IHRpbWVUeHRFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZFRpbWUnKTsKCQkJCQkJZW1haWxIYW5kbGVyLmRlYWxlckFwcG9pbnRtZW50RGF0YSA9IHsKCQkJCQkJCWRhdGUgOiB0aW1lVHh0RWwudGV4dENvbnRlbnQKCQkJCQkJfTsKCQkJCQl9LAoKCQkJCQlvbkFmdGVyU3VibWl0IDogKGxlYWRDb25mKSA9PiB7CgoJCQkJCQljb25zdCB0aW1lVHh0RWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWRUaW1lJyk7CgoJCQkJCQljb25zdCBjYiA9IHRyYWNrU3RlcCA9PiB7CgkJCQkJCQl0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZnIgPSB0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZnIucmVwbGFjZSgneyRBUFBPSU5UX0RBVEV9JywgdGltZVR4dEVsLmRhdGFzZXQuZnIpOwoJCQkJCQkJdHJhY2tTdGVwLmRhdGFzZXQuY29tcGxfdHh0X2VuID0gdHJhY2tTdGVwLmRhdGFzZXQuY29tcGxfdHh0X2VuLnJlcGxhY2UoJ3skQVBQT0lOVF9EQVRFfScsIHRpbWVUeHRFbC5kYXRhc2V0LmVuKTsKCQkJCQkJfTsKCgkJCQkJCWxldCBjb21wbGV0ZUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCd0cmFja3N0ZXAuY29tcGxldGUnLHsKCQkJCQkJCWRldGFpbDp7CgkJCQkJCQkJc3RlcElkIDogJ0RlYWxlckFwcG9pbnRtZW50JywKCQkJCQkJCQlvbkNvbXBsZXRlIDogY2IKCQkJCQkJCX0KCQkJCQkJfSk7CgoJCQkJCQlkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGNvbXBsZXRlRXZlbnQpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkudHJpZ2dlcignZGVhbGVyQXBwb2ludG1lbnQuZW5kJyk7CgkJCQkJfQoKCQkJCX0KCgkJCQovKiogL2pzL3NrZWxldG9uLmJlZm9yZS5qcyAqKi8KdmFyIF9fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTM6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3NrZWxldG9uYmVmb3JlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNzo1NyI7InVzZSBzdHJpY3QiO19fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjMtMDYtMDEgMTI6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtsZXQgJGpzY29tcCRudWxsaXNoJHRtcDA7d2luZG93LmdTcGVlZENvbm49cGFyc2VJbnQoTWF0aC5mbG9vcigoRGF0ZS5ub3coKS0obnVsbCE9KCRqc2NvbXAkbnVsbGlzaCR0bXAwPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/JGpzY29tcCRudWxsaXNoJHRtcDA6MCkpLzFFMykpO2xldCAkanNjb21wJG51bGxpc2gkdG1wMTtjb25zb2xlLmxvZygiR1NQRUVELUJFRk9SRToiKyhEYXRlLm5vdygpLShudWxsIT0oJGpzY29tcCRudWxsaXNoJHRtcDE9d2luZG93LmdUZXN0U3BlZWRDb25uKT8kanNjb21wJG51bGxpc2gkdG1wMTowKSkvMUUzKTsKLyoqIC9qcy9qcXVlcnkuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5anNfY19vbj0iMjAyNS0wNS0yMyAxNzowNTo0OSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5anNfY19vbj0iMjAyNC0wMy0yNSAxMjozMTozMyI7InVzZSBzdHJpY3QiOwohZnVuY3Rpb24obixkYSl7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9bi5kb2N1bWVudD9kYShuLCEwKTpmdW5jdGlvbih3YSl7aWYoIXdhLmRvY3VtZW50KXRocm93IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGRhKHdhKX06ZGEobil9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKG4sZGEpe2Z1bmN0aW9uIHdhKGEsYixjKXt2YXIgZSxmLGc9KGM9Y3x8TCkuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoZy50ZXh0PWEsYilmb3IoZSBpbiBMYykoZj1iW2VdfHxiLmdldEF0dHJpYnV0ZSYmYi5nZXRBdHRyaWJ1dGUoZSkpJiZnLnNldEF0dHJpYnV0ZShlLGYpO2MuaGVhZC5hcHBlbmRDaGlsZChnKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpfWZ1bmN0aW9uIFUoYSl7cmV0dXJuIG51bGw9PWE\/YSsKIiI6Im9iamVjdCI9PXR5cGVvZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYT9NYltrYy5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9ZnVuY3Rpb24gZWIoYSl7dmFyIGI9ISFhJiYibGVuZ3RoImluIGEmJmEubGVuZ3RoLGM9VShhKTtyZXR1cm4hTShhKSYmIWtiKGEpJiYoImFycmF5Ij09PWN8fDA9PT1ifHwibnVtYmVyIj09dHlwZW9mIGImJjA8YiYmYi0xIGluIGEpfWZ1bmN0aW9uIFgoYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGJhKGEsYil7cmV0dXJuIGI\/Ilx4MDAiPT09YT8iXHVmZmZkIjphLnNsaWNlKDAsLTEpKyJcXCIrYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIithfWZ1bmN0aW9uIGphKGEsYixjKXtyZXR1cm4gTShiKT9kLmdyZXAoYSxmdW5jdGlvbihlLGYpe3JldHVybiEhYi5jYWxsKGUsZixlKSE9PWN9KTpiLm5vZGVUeXBlP2QuZ3JlcChhLApmdW5jdGlvbihlKXtyZXR1cm4gZT09PWIhPT1jfSk6InN0cmluZyIhPXR5cGVvZiBiP2QuZ3JlcChhLGZ1bmN0aW9uKGUpe3JldHVybi0xPE5hLmNhbGwoYixlKSE9PWN9KTpkLmZpbHRlcihiLGEsYyl9ZnVuY3Rpb24gbGIoYSxiKXtmb3IoOyhhPWFbYl0pJiYxIT09YS5ub2RlVHlwZTspO3JldHVybiBhfWZ1bmN0aW9uIFlhKGEpe3JldHVybiBhfWZ1bmN0aW9uIFphKGEpe3Rocm93IGE7fWZ1bmN0aW9uIG1iKGEsYixjLGUpe3ZhciBmO3RyeXthJiZNKGY9YS5wcm9taXNlKT9mLmNhbGwoYSkuZG9uZShiKS5mYWlsKGMpOmEmJk0oZj1hLnRoZW4pP2YuY2FsbChhLGIsYyk6Yi5hcHBseSh2b2lkIDAsW2FdLnNsaWNlKGUpKX1jYXRjaChnKXtjLmFwcGx5KHZvaWQgMCxbZ10pfX1mdW5jdGlvbiBPYSgpe0wucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsT2EpO24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsT2EpO2QucmVhZHkoKX1mdW5jdGlvbiBOYihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9CmZ1bmN0aW9uIEJhKGEpe3JldHVybiBhLnJlcGxhY2UoTWMsIm1zLSIpLnJlcGxhY2UoTmMsTmIpfWZ1bmN0aW9uIEphKCl7dGhpcy5leHBhbmRvPWQuZXhwYW5kbytKYS51aWQrK31mdW5jdGlvbiBPYihhLGIsYyl7dmFyIGUsZjtpZih2b2lkIDA9PT1jJiYxPT09YS5ub2RlVHlwZSlpZihlPSJkYXRhLSIrYi5yZXBsYWNlKE9jLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2YoYz1hLmdldEF0dHJpYnV0ZShlKSkpe3RyeXtjPSJ0cnVlIj09PShmPWMpfHwiZmFsc2UiIT09ZiYmKCJudWxsIj09PWY\/bnVsbDpmPT09K2YrIiI\/K2Y6UGMudGVzdChmKT9KU09OLnBhcnNlKGYpOmYpfWNhdGNoKGcpe314YS5zZXQoYSxiLGMpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9ZnVuY3Rpb24gUGIoYSxiLGMsZSl7dmFyIGYsZyxoPTIwLG09ZT9mdW5jdGlvbigpe3JldHVybiBlLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBkLmNzcyhhLGIsIiIpfSxsPW0oKSx0PWMmJmNbM118fAooZC5jc3NOdW1iZXJbYl0\/IiI6InB4Iiksdz1hLm5vZGVUeXBlJiYoZC5jc3NOdW1iZXJbYl18fCJweCIhPT10JiYrbCkmJnliLmV4ZWMoZC5jc3MoYSxiKSk7aWYodyYmd1szXSE9PXQpe2wvPTI7dD10fHx3WzNdO2Zvcih3PStsfHwxO2gtLTspZC5zdHlsZShhLGIsdyt0KSwwPj0oMS1nKSooMS0oZz1tKCkvbHx8LjUpKSYmKGg9MCksdy89Zzt3Kj0yO2Quc3R5bGUoYSxiLHcrdCk7Yz1jfHxbXX1yZXR1cm4gYyYmKHc9K3d8fCtsfHwwLGY9Y1sxXT93KyhjWzFdKzEpKmNbMl06K2NbMl0sZSYmKGUudW5pdD10LGUuc3RhcnQ9dyxlLmVuZD1mKSksZn1mdW5jdGlvbiAkYShhLGIpe2Zvcih2YXIgYyxlLGYsZyxoLG0sbCx0PVtdLHc9MCxyPWEubGVuZ3RoO3c8cjt3KyspKGU9YVt3XSkuc3R5bGUmJihjPWUuc3R5bGUuZGlzcGxheSxiPygibm9uZSI9PT1jJiYodFt3XT1HLmdldChlLCJkaXNwbGF5Iil8fG51bGwsdFt3XXx8KGUuc3R5bGUuZGlzcGxheT0iIikpLCIiPT09ZS5zdHlsZS5kaXNwbGF5JiYKUWIoZSkmJih0W3ddPShsPWg9Zz12b2lkIDAsaD0oZj1lKS5vd25lckRvY3VtZW50LG09Zi5ub2RlTmFtZSwobD1sY1ttXSl8fChnPWguYm9keS5hcHBlbmRDaGlsZChoLmNyZWF0ZUVsZW1lbnQobSkpLGw9ZC5jc3MoZywiZGlzcGxheSIpLGcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnKSwibm9uZSI9PT1sJiYobD0iYmxvY2siKSxsY1ttXT1sKSkpKToibm9uZSIhPT1jJiYodFt3XT0ibm9uZSIsRy5zZXQoZSwiZGlzcGxheSIsYykpKTtmb3Iodz0wO3c8cjt3KyspbnVsbCE9dFt3XSYmKGFbd10uc3R5bGUuZGlzcGxheT10W3ddKTtyZXR1cm4gYX1mdW5jdGlvbiBzYShhLGIpe3ZhciBjO3JldHVybiBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBhLnF1ZXJ5U2VsZWN0b3JBbGw\/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6W10sdm9pZCAwPT09Ynx8YiYmClgoYSxiKT9kLm1lcmdlKFthXSxjKTpjfWZ1bmN0aW9uIG5iKGEsYil7Zm9yKHZhciBjPTAsZT1hLmxlbmd0aDtjPGU7YysrKUcuc2V0KGFbY10sImdsb2JhbEV2YWwiLCFifHxHLmdldChiW2NdLCJnbG9iYWxFdmFsIikpfWZ1bmN0aW9uIFJiKGEsYixjLGUsZil7Zm9yKHZhciBnLGgsbSxsLHQ9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdz1bXSxyPTAsej1hLmxlbmd0aDtyPHo7cisrKWlmKChnPWFbcl0pfHwwPT09ZylpZigib2JqZWN0Ij09PVUoZykpZC5tZXJnZSh3LGcubm9kZVR5cGU\/W2ddOmcpO2Vsc2UgaWYoUWMudGVzdChnKSl7aD1ofHx0LmFwcGVuZENoaWxkKGIuY3JlYXRlRWxlbWVudCgiZGl2IikpO209KG1jLmV4ZWMoZyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCk7bT1DYVttXXx8Q2EuX2RlZmF1bHQ7aC5pbm5lckhUTUw9bVsxXStkLmh0bWxQcmVmaWx0ZXIoZykrbVsyXTtmb3IobT1tWzBdO20tLTspaD1oLmxhc3RDaGlsZDtkLm1lcmdlKHcsaC5jaGlsZE5vZGVzKTsKKGg9dC5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHcucHVzaChiLmNyZWF0ZVRleHROb2RlKGcpKTt0LnRleHRDb250ZW50PSIiO2ZvcihyPTA7Zz13W3IrK107KWlmKGUmJi0xPGQuaW5BcnJheShnLGUpKWYmJmYucHVzaChnKTtlbHNlIGlmKGw9b2IoZyksaD1zYSh0LmFwcGVuZENoaWxkKGcpLCJzY3JpcHQiKSxsJiZuYihoKSxjKWZvcihtPTA7Zz1oW20rK107KW5jLnRlc3QoZy50eXBlfHwiIikmJmMucHVzaChnKTtyZXR1cm4gdH1mdW5jdGlvbiBhYigpe3JldHVybiEwfWZ1bmN0aW9uIGJiKCl7cmV0dXJuITF9ZnVuY3Rpb24gZmIoYSxiLGMsZSxmLGcpe3ZhciBoLG07aWYoIm9iamVjdCI9PXR5cGVvZiBiKXtmb3IobSBpbiJzdHJpbmciIT10eXBlb2YgYyYmKGU9ZXx8YyxjPXZvaWQgMCksYilmYihhLG0sYyxlLGJbbV0sZyk7cmV0dXJuIGF9aWYobnVsbD09ZSYmbnVsbD09Zj8oZj1jLGU9Yz12b2lkIDApOm51bGw9PWYmJigic3RyaW5nIj09dHlwZW9mIGM\/KGY9CmUsZT12b2lkIDApOihmPWUsZT1jLGM9dm9pZCAwKSksITE9PT1mKWY9YmI7ZWxzZSBpZighZilyZXR1cm4gYTtyZXR1cm4gMT09PWcmJihoPWYsKGY9ZnVuY3Rpb24obCl7cmV0dXJuIGQoKS5vZmYobCksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWguZ3VpZHx8KGguZ3VpZD1kLmd1aWQrKykpLGEuZWFjaChmdW5jdGlvbigpe2QuZXZlbnQuYWRkKHRoaXMsYixmLGUsYyl9KX1mdW5jdGlvbiBwYihhLGIsYyl7Yz8oRy5zZXQoYSxiLCExKSxkLmV2ZW50LmFkZChhLGIse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciBmLGc9Ry5nZXQodGhpcyxiKTtpZigxJmUuaXNUcmlnZ2VyJiZ0aGlzW2JdKWlmKGcpKGQuZXZlbnQuc3BlY2lhbFtiXXx8e30pLmRlbGVnYXRlVHlwZSYmZS5zdG9wUHJvcGFnYXRpb24oKTtlbHNle2lmKGc9eWEuY2FsbChhcmd1bWVudHMpLEcuc2V0KHRoaXMsYixnKSx0aGlzW2JdKCksZj1HLmdldCh0aGlzLGIpLEcuc2V0KHRoaXMsYiwKITEpLGchPT1mKXJldHVybiBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKSxmfWVsc2UgZyYmKEcuc2V0KHRoaXMsYixkLmV2ZW50LnRyaWdnZXIoZ1swXSxnLnNsaWNlKDEpLHRoaXMpKSxlLnN0b3BQcm9wYWdhdGlvbigpLGUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIpfX0pKTp2b2lkIDA9PT1HLmdldChhLGIpJiZkLmV2ZW50LmFkZChhLGIsYWIpfWZ1bmN0aW9uIFNiKGEsYil7cmV0dXJuIFgoYSwidGFibGUiKSYmWCgxMSE9PWIubm9kZVR5cGU\/YjpiLmZpcnN0Q2hpbGQsInRyIikmJmQoYSkuY2hpbGRyZW4oInRib2R5IilbMF18fGF9ZnVuY3Rpb24gcWIoYSl7cmV0dXJuIGEudHlwZT0obnVsbCE9PWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpKyIvIithLnR5cGUsYX1mdW5jdGlvbiAkYihhKXtyZXR1cm4idHJ1ZS8iPT09KGEudHlwZXx8IiIpLnNsaWNlKDAsNSk\/YS50eXBlPWEudHlwZS5zbGljZSg1KTphLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLAphfWZ1bmN0aW9uIGdiKGEsYil7dmFyIGMsZSxmLGcsaDtpZigxPT09Yi5ub2RlVHlwZSl7aWYoRy5oYXNEYXRhKGEpJiYoaD1HLmdldChhKS5ldmVudHMpKWZvcihlIGluIEcucmVtb3ZlKGIsImhhbmRsZSBldmVudHMiKSxoKXt2YXIgbT0wO2ZvcihjPWhbZV0ubGVuZ3RoO208YzttKyspZC5ldmVudC5hZGQoYixlLGhbZV1bbV0pfXhhLmhhc0RhdGEoYSkmJihmPXhhLmFjY2VzcyhhKSxnPWQuZXh0ZW5kKHt9LGYpLHhhLnNldChiLGcpKX19ZnVuY3Rpb24gY2IoYSxiLGMsZSl7Yj1vYyhiKTt2YXIgZixnLGgsbT0wLGw9YS5sZW5ndGgsdD1sLTEsdz1iWzBdLHI9TSh3KTtpZihyfHwxPGwmJiJzdHJpbmciPT10eXBlb2YgdyYmIU4uY2hlY2tDbG9uZSYmUmMudGVzdCh3KSlyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKEQpe3ZhciBGPWEuZXEoRCk7ciYmKGJbMF09dy5jYWxsKHRoaXMsRCxGLmh0bWwoKSkpO2NiKEYsYixjLGUpfSk7aWYobCYmKGc9KGY9UmIoYixhWzBdLm93bmVyRG9jdW1lbnQsCiExLGEsZSkpLmZpcnN0Q2hpbGQsMT09PWYuY2hpbGROb2Rlcy5sZW5ndGgmJihmPWcpLGd8fGUpKXtmb3IoaD0oZz1kLm1hcChzYShmLCJzY3JpcHQiKSxxYikpLmxlbmd0aDttPGw7bSsrKXt2YXIgej1mO20hPT10JiYoej1kLmNsb25lKHosITAsITApLGgmJmQubWVyZ2UoZyxzYSh6LCJzY3JpcHQiKSkpO2MuY2FsbChhW21dLHosbSl9aWYoaClmb3IoZj1nW2cubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsZC5tYXAoZywkYiksbT0wO208aDttKyspej1nW21dLG5jLnRlc3Qoei50eXBlfHwiIikmJiFHLmFjY2Vzcyh6LCJnbG9iYWxFdmFsIikmJmQuY29udGFpbnMoZix6KSYmKHouc3JjJiYibW9kdWxlIiE9PSh6LnR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpP2QuX2V2YWxVcmwmJiF6Lm5vTW9kdWxlJiZkLl9ldmFsVXJsKHouc3JjLHtub25jZTp6Lm5vbmNlfHx6LmdldEF0dHJpYnV0ZSgibm9uY2UiKX0sZik6d2Eoei50ZXh0Q29udGVudC5yZXBsYWNlKFNjLCIiKSx6LGYpKX1yZXR1cm4gYX0KZnVuY3Rpb24gVGIoYSxiLGMpe2Zvcih2YXIgZT1iP2QuZmlsdGVyKGIsYSk6YSxmPTA7bnVsbCE9KGI9ZVtmXSk7ZisrKWN8fDEhPT1iLm5vZGVUeXBlfHxkLmNsZWFuRGF0YShzYShiKSksYi5wYXJlbnROb2RlJiYoYyYmb2IoYikmJm5iKHNhKGIsInNjcmlwdCIpKSxiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYikpO3JldHVybiBhfWZ1bmN0aW9uIEthKGEsYixjKXt2YXIgZSxmLGcsaCxtPWFjLnRlc3QoYiksbD1hLnN0eWxlO3JldHVybihjPWN8fFViKGEpKSYmKGg9Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdLG0mJmgmJihoPWgucmVwbGFjZSh6YiwiJDEiKXx8dm9pZCAwKSwiIiE9PWh8fG9iKGEpfHwoaD1kLnN0eWxlKGEsYikpLCFOLnBpeGVsQm94U3R5bGVzKCkmJmJjLnRlc3QoaCkmJlRjLnRlc3QoYikmJihlPWwud2lkdGgsZj1sLm1pbldpZHRoLGc9bC5tYXhXaWR0aCxsLm1pbldpZHRoPWwubWF4V2lkdGg9bC53aWR0aD1oLGg9Yy53aWR0aCxsLndpZHRoPWUsbC5taW5XaWR0aD0KZixsLm1heFdpZHRoPWcpKSx2b2lkIDAhPT1oP2grIiI6aH1mdW5jdGlvbiBWYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtpZighYSgpKXJldHVybih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZGVsZXRlIHRoaXMuZ2V0fX19ZnVuY3Rpb24gQWIoYSl7dmFyIGI7aWYoIShiPWQuY3NzUHJvcHNbYV18fHBjW2FdKSl7aWYoIShhIGluIHFjKSl7YTp7Yj1hO2Zvcih2YXIgYz1iWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKSxlPXJjLmxlbmd0aDtlLS07KWlmKChiPXJjW2VdK2MpaW4gcWMpYnJlYWsgYTtiPXZvaWQgMH1hPXBjW2FdPWJ8fGF9Yj1hfXJldHVybiBifWZ1bmN0aW9uIFdiKGEsYixjKXtyZXR1cm4oYT15Yi5leGVjKGIpKT9NYXRoLm1heCgwLGFbMl0tKGN8fDApKSsoYVszXXx8InB4Iik6Yn1mdW5jdGlvbiByYihhLGIsYyxlLGYsZyl7dmFyIGg9IndpZHRoIj09PWI\/MTowLG09MCxsPTAsdD0wO2lmKGM9PT0oZT8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwOwpmb3IoOzQ+aDtoKz0yKSJtYXJnaW4iPT09YyYmKHQrPWQuY3NzKGEsYytQYVtoXSwhMCxmKSksZT8oImNvbnRlbnQiPT09YyYmKGwtPWQuY3NzKGEsInBhZGRpbmciK1BhW2hdLCEwLGYpKSwibWFyZ2luIiE9PWMmJihsLT1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZikpKToobCs9ZC5jc3MoYSwicGFkZGluZyIrUGFbaF0sITAsZiksInBhZGRpbmciIT09Yz9sKz1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZik6bSs9ZC5jc3MoYSwiYm9yZGVyIitQYVtoXSsiV2lkdGgiLCEwLGYpKTtyZXR1cm4hZSYmMDw9ZyYmKGwrPU1hdGgubWF4KDAsTWF0aC5jZWlsKGFbIm9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSldLWctbC1tLS41KSl8fDApLGwrdH1mdW5jdGlvbiBCYihhLGIsYyl7dmFyIGU9VWIoYSksZj0oIU4uYm94U2l6aW5nUmVsaWFibGUoKXx8YykmJiJib3JkZXItYm94Ij09PWQuY3NzKGEsImJveFNpemluZyIsITEsZSksZz0KZixoPUthKGEsYixlKSxtPSJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpO2lmKGJjLnRlc3QoaCkpe2lmKCFjKXJldHVybiBoO2g9ImF1dG8ifXJldHVybighTi5ib3hTaXppbmdSZWxpYWJsZSgpJiZmfHwhTi5yZWxpYWJsZVRyRGltZW5zaW9ucygpJiZYKGEsInRyIil8fCJhdXRvIj09PWh8fCFwYXJzZUZsb2F0KGgpJiYiaW5saW5lIj09PWQuY3NzKGEsImRpc3BsYXkiLCExLGUpKSYmYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmKGY9ImJvcmRlci1ib3giPT09ZC5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSwoZz1tIGluIGEpJiYoaD1hW21dKSksKGg9cGFyc2VGbG9hdChoKXx8MCkrcmIoYSxiLGN8fChmPyJib3JkZXIiOiJjb250ZW50IiksZyxlLGgpKyJweCJ9ZnVuY3Rpb24gemEoYSxiLGMsZSxmKXtyZXR1cm4gbmV3IHphLnByb3RvdHlwZS5pbml0KGEsYixjLGUsZil9ZnVuY3Rpb24gQ2IoKXtYYiYmKCExPT09TC5oaWRkZW4mJm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lPwpuLnJlcXVlc3RBbmltYXRpb25GcmFtZShDYik6bi5zZXRUaW1lb3V0KENiLGQuZnguaW50ZXJ2YWwpLGQuZngudGljaygpKX1mdW5jdGlvbiBEYigpe3JldHVybiBuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtzYj12b2lkIDB9KSxzYj1EYXRlLm5vdygpfWZ1bmN0aW9uIHRiKGEsYil7dmFyIGMsZT0wLGY9e2hlaWdodDphfTtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWZbIm1hcmdpbiIrKGM9UGFbZV0pXT1mWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZi5vcGFjaXR5PWYud2lkdGg9YSksZn1mdW5jdGlvbiB1KGEsYixjKXtmb3IodmFyIGUsZj0oeC50d2VlbmVyc1tiXXx8W10pLmNvbmNhdCh4LnR3ZWVuZXJzWyIqIl0pLGc9MCxoPWYubGVuZ3RoO2c8aDtnKyspaWYoZT1mW2ddLmNhbGwoYyxiLGEpKXJldHVybiBlfWZ1bmN0aW9uIHgoYSxiLGMpe3ZhciBlLGY9MCxnPXgucHJlZmlsdGVycy5sZW5ndGgsaD1kLkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIG0uZWxlbX0pLAptPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTt2YXIgdD1zYnx8RGIoKTt0PU1hdGgubWF4KDAsbC5zdGFydFRpbWUrbC5kdXJhdGlvbi10KTtmb3IodmFyIHc9MS0odC9sLmR1cmF0aW9ufHwwKSxyPTAsej1sLnR3ZWVucy5sZW5ndGg7cjx6O3IrKylsLnR3ZWVuc1tyXS5ydW4odyk7cmV0dXJuIGgubm90aWZ5V2l0aChhLFtsLHcsdF0pLDE+dyYmej90Oih6fHxoLm5vdGlmeVdpdGgoYSxbbCwxLDBdKSxoLnJlc29sdmVXaXRoKGEsW2xdKSwhMSl9LGw9aC5wcm9taXNlKHtlbGVtOmEscHJvcHM6ZC5leHRlbmQoe30sYiksb3B0czpkLmV4dGVuZCghMCx7c3BlY2lhbEVhc2luZzp7fSxlYXNpbmc6ZC5lYXNpbmcuX2RlZmF1bHR9LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTpzYnx8RGIoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbih0LHcpe3Q9ZC5Ud2VlbihhLGwub3B0cyx0LHcsbC5vcHRzLnNwZWNpYWxFYXNpbmdbdF18fApsLm9wdHMuZWFzaW5nKTtyZXR1cm4gbC50d2VlbnMucHVzaCh0KSx0fSxzdG9wOmZ1bmN0aW9uKHQpe3ZhciB3PTAscj10P2wudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7dzxyO3crKylsLnR3ZWVuc1t3XS5ydW4oMSk7cmV0dXJuIHQ\/KGgubm90aWZ5V2l0aChhLFtsLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbbCx0XSkpOmgucmVqZWN0V2l0aChhLFtsLHRdKSx0aGlzfX0pO2M9bC5wcm9wczshZnVuY3Rpb24odCx3KXt2YXIgcix6LEQsRixPO2ZvcihyIGluIHQpaWYoRD13W3o9QmEocildLEY9dFtyXSxBcnJheS5pc0FycmF5KEYpJiYoRD1GWzFdLEY9dFtyXT1GWzBdKSxyIT09eiYmKHRbel09RixkZWxldGUgdFtyXSksKE89ZC5jc3NIb29rc1t6XSkmJiJleHBhbmQiaW4gTylmb3IociBpbiBGPU8uZXhwYW5kKEYpLGRlbGV0ZSB0W3pdLEYpciBpbiB0fHwodFtyXT1GW3JdLHdbcl09RCk7ZWxzZSB3W3pdPUR9KGMsbC5vcHRzLnNwZWNpYWxFYXNpbmcpOwpmb3IoO2Y8ZztmKyspaWYoYj14LnByZWZpbHRlcnNbZl0uY2FsbChsLGEsYyxsLm9wdHMpKXJldHVybiBNKGIuc3RvcCkmJihkLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9Yi5zdG9wLmJpbmQoYikpLGI7cmV0dXJuIGQubWFwKGMsdSxsKSxNKGwub3B0cy5zdGFydCkmJmwub3B0cy5zdGFydC5jYWxsKGEsbCksbC5wcm9ncmVzcyhsLm9wdHMucHJvZ3Jlc3MpLmRvbmUobC5vcHRzLmRvbmUsbC5vcHRzLmNvbXBsZXRlKS5mYWlsKGwub3B0cy5mYWlsKS5hbHdheXMobC5vcHRzLmFsd2F5cyksZC5meC50aW1lcihkLmV4dGVuZChtLHtlbGVtOmEsYW5pbTpsLHF1ZXVlOmwub3B0cy5xdWV1ZX0pKSxsfWZ1bmN0aW9uIEMoYSl7cmV0dXJuKGEubWF0Y2goTGEpfHxbXSkuam9pbigiICIpfWZ1bmN0aW9uIEgoYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24gUChhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT8KYToic3RyaW5nIj09dHlwZW9mIGEmJmEubWF0Y2goTGEpfHxbXX1mdW5jdGlvbiBlYShhLGIsYyxlKXt2YXIgZjtpZihBcnJheS5pc0FycmF5KGIpKWQuZWFjaChiLGZ1bmN0aW9uKGcsaCl7Y3x8VWMudGVzdChhKT9lKGEsaCk6ZWEoYSsiWyIrKCJvYmplY3QiPT10eXBlb2YgaCYmbnVsbCE9aD9nOiIiKSsiXSIsaCxjLGUpfSk7ZWxzZSBpZihjfHwib2JqZWN0IiE9PVUoYikpZShhLGIpO2Vsc2UgZm9yKGYgaW4gYillYShhKyJbIitmKyJdIixiW2ZdLGMsZSl9ZnVuY3Rpb24gUWEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7InN0cmluZyIhPXR5cGVvZiBiJiYoYz1iLGI9IioiKTt2YXIgZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKExhKXx8W107aWYoTShjKSlmb3IoO2I9ZltlKytdOykiKyI9PT1iWzBdPyhiPWIuc2xpY2UoMSl8fCIqIiwoYVtiXT1hW2JdfHxbXSkudW5zaGlmdChjKSk6KGFbYl09YVtiXXx8W10pLnB1c2goYyl9fWZ1bmN0aW9uIEViKGEsYixjLGUpe2Z1bmN0aW9uIGYobSl7dmFyIGw7CnJldHVybiBnW21dPSEwLGQuZWFjaChhW21dfHxbXSxmdW5jdGlvbih0LHcpe3Q9dyhiLGMsZSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0fHxofHxnW3RdP2g\/IShsPXQpOnZvaWQgMDooYi5kYXRhVHlwZXMudW5zaGlmdCh0KSxmKHQpLCExKX0pLGx9dmFyIGc9e30saD1hPT09Y2M7cmV0dXJuIGYoYi5kYXRhVHlwZXNbMF0pfHwhZ1siKiJdJiZmKCIqIil9ZnVuY3Rpb24gaGIoYSxiKXt2YXIgYyxlLGY9ZC5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihjIGluIGIpdm9pZCAwIT09YltjXSYmKChmW2NdP2E6ZXx8KGU9e30pKVtjXT1iW2NdKTtyZXR1cm4gZSYmZC5leHRlbmQoITAsYSxlKSxhfXZhciBvYT1bXSxzYz1PYmplY3QuZ2V0UHJvdG90eXBlT2YseWE9b2Euc2xpY2Usb2M9b2EuZmxhdD9mdW5jdGlvbihhKXtyZXR1cm4gb2EuZmxhdC5jYWxsKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gb2EuY29uY2F0LmFwcGx5KFtdLGEpfSx1Yj1vYS5wdXNoLE5hPW9hLmluZGV4T2YsCk1iPXt9LGtjPU1iLnRvU3RyaW5nLEZiPU1iLmhhc093blByb3BlcnR5LHRjPUZiLnRvU3RyaW5nLFZjPXRjLmNhbGwoT2JqZWN0KSxOPXt9LE09ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGEmJiJudW1iZXIiIT10eXBlb2YgYS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuaXRlbX0sa2I9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PT1hLndpbmRvd30sTD1uLmRvY3VtZW50LExjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH0sV2M9L0hUTUwkL2ksZD1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgZC5mbi5pbml0KGEsYil9O2QuZm49ZC5wcm90b3R5cGU9e2pxdWVyeToiMy43LjAiLGNvbnN0cnVjdG9yOmQsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiB5YS5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE\/eWEuY2FsbCh0aGlzKTowPmE\/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdfSwKcHVzaFN0YWNrOmZ1bmN0aW9uKGEpe2E9ZC5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksYSk7cmV0dXJuIGEucHJldk9iamVjdD10aGlzLGF9LGVhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZWFjaCh0aGlzLGEpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeWEuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmdyZXAodGhpcyxmdW5jdGlvbihhLGIpe3JldHVybihiKzEpJTJ9KSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmdyZXAodGhpcyxmdW5jdGlvbihhLGIpe3JldHVybiBiJQoyfSkpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aDthPSthKygwPmE\/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9YSYmYTxiP1t0aGlzW2FdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1Yixzb3J0Om9hLnNvcnQsc3BsaWNlOm9hLnNwbGljZX07ZC5leHRlbmQ9ZC5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEsbT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7ImJvb2xlYW4iPT10eXBlb2YgZyYmKGw9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKTsib2JqZWN0Ij09dHlwZW9mIGd8fE0oZyl8fChnPXt9KTtmb3IoaD09PW0mJihnPXRoaXMsaC0tKTtoPG07aCsrKWlmKG51bGwhPShhPWFyZ3VtZW50c1toXSkpZm9yKGIgaW4gYSl7dmFyIHQ9YVtiXTsiX19wcm90b19fIiE9PWImJmchPT10JiYobCYmdCYmKGQuaXNQbGFpbk9iamVjdCh0KXx8CihlPUFycmF5LmlzQXJyYXkodCkpKT8oYz1nW2JdLGY9ZSYmIUFycmF5LmlzQXJyYXkoYyk\/W106ZXx8ZC5pc1BsYWluT2JqZWN0KGMpP2M6e30sZT0hMSxnW2JdPWQuZXh0ZW5kKGwsZix0KSk6dm9pZCAwIT09dCYmKGdbYl09dCkpfXJldHVybiBnfTtkLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoIjMuNy4wIitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGEpe3Rocm93IEVycm9yKGEpO30sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYixjO3JldHVybiEoIWF8fCJbb2JqZWN0IE9iamVjdF0iIT09a2MuY2FsbChhKSkmJighKGI9c2MoYSkpfHwiZnVuY3Rpb24iPT10eXBlb2YoYz1GYi5jYWxsKGIsImNvbnN0cnVjdG9yIikmJmIuY29uc3RydWN0b3IpJiZ0Yy5jYWxsKGMpPT09VmMpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhKXJldHVybiExO3JldHVybiEwfSwKZ2xvYmFsRXZhbDpmdW5jdGlvbihhLGIsYyl7d2EoYSx7bm9uY2U6YiYmYi5ub25jZX0sYyl9LGVhY2g6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPTA7aWYoZWIoYSkpZm9yKGM9YS5sZW5ndGg7ZTxjJiYhMSE9PWIuY2FsbChhW2VdLGUsYVtlXSk7ZSsrKTtlbHNlIGZvcihlIGluIGEpaWYoITE9PT1iLmNhbGwoYVtlXSxlLGFbZV0pKWJyZWFrO3JldHVybiBhfSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZT0wO2lmKGI9YS5ub2RlVHlwZSl7aWYoMT09PWJ8fDk9PT1ifHwxMT09PWIpcmV0dXJuIGEudGV4dENvbnRlbnQ7aWYoMz09PWJ8fDQ9PT1iKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIGZvcig7Yj1hW2UrK107KWMrPWQudGV4dChiKTtyZXR1cm4gY30sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7Yj1ifHxbXTtyZXR1cm4gbnVsbCE9YSYmKGViKE9iamVjdChhKSk\/ZC5tZXJnZShiLCJzdHJpbmciPT10eXBlb2YgYT9bYV06YSk6dWIuY2FsbChiLGEpKSxifSxpbkFycmF5OmZ1bmN0aW9uKGEsCmIsYyl7cmV0dXJuIG51bGw9PWI\/LTE6TmEuY2FsbChiLGEsYyl9LGlzWE1MRG9jOmZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hV2MudGVzdChhJiZhLm5hbWVzcGFjZVVSSXx8YiYmYi5ub2RlTmFtZXx8IkhUTUwiKX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9K2IubGVuZ3RoLGU9MCxmPWEubGVuZ3RoO2U8YztlKyspYVtmKytdPWJbZV07cmV0dXJuIGEubGVuZ3RoPWYsYX0sZ3JlcDpmdW5jdGlvbihhLGIsYyl7dmFyIGU9W10sZj0wLGc9YS5sZW5ndGg7Zm9yKGM9IWM7ZjxnO2YrKykhYihhW2ZdLGYpIT09YyYmZS5wdXNoKGFbZl0pO3JldHVybiBlfSxtYXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZz0wLGg9W107aWYoZWIoYSkpZm9yKGU9YS5sZW5ndGg7ZzxlO2crKyludWxsIT0oZj1iKGFbZ10sZyxjKSkmJmgucHVzaChmKTtlbHNlIGZvcihnIGluIGEpbnVsbCE9KGY9YihhW2ddLGcsYykpJiYKaC5wdXNoKGYpO3JldHVybiBvYyhoKX0sZ3VpZDoxLHN1cHBvcnQ6Tn0pOyJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihkLmZuW1N5bWJvbC5pdGVyYXRvcl09b2FbU3ltYm9sLml0ZXJhdG9yXSk7ZC5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe01iWyJbb2JqZWN0ICIrYisiXSJdPWIudG9Mb3dlckNhc2UoKX0pO3ZhciBYYz1vYS5wb3AsWWM9b2Euc29ydCxaYz1vYS5zcGxpY2UsemI9UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSt8KCg\/Ol58W15cXFxcXSkoPzpcXFxcLikqKVtcXHgyMFxcdFxcclxcblxcZl0rJCIsImciKTtkLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7Yj1iJiZiLnBhcmVudE5vZGU7cmV0dXJuIGE9PT1ifHwhKCFifHwxIT09Yi5ub2RlVHlwZXx8IShhLmNvbnRhaW5zP2EuY29udGFpbnMoYik6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmCjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikpKX07dmFyICRjPS8oW1wwLVx4MWZceDdmXXxeLT9cZCl8Xi0kfFteXHg4MC1cdUZGRkZcdy1dL2c7ZC5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbihhKXtyZXR1cm4oYSsiIikucmVwbGFjZSgkYyxiYSl9O3ZhciBSYT1MOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGEoayxwLHEsdil7dmFyIHksRSxBLEksQj1wJiZwLm93bmVyRG9jdW1lbnQsSj1wP3Aubm9kZVR5cGU6OTtpZihxPXF8fFtdLCJzdHJpbmciIT10eXBlb2Yga3x8IWt8fDEhPT1KJiY5IT09SiYmMTEhPT1KKXJldHVybiBxO2lmKCF2JiYodChwKSxwPXB8fFosdmEpKXtpZigxMSE9PUomJihJPWFkLmV4ZWMoaykpKWlmKHk9SVsxXSlpZig5PT09Sil7aWYoIShFPXAuZ2V0RWxlbWVudEJ5SWQoeSkpKXJldHVybiBxO2lmKEUuaWQ9PT15KXJldHVybiB0YS5jYWxsKHEsRSkscX1lbHNle2lmKEImJihFPUIuZ2V0RWxlbWVudEJ5SWQoeSkpJiZhLmNvbnRhaW5zKHAsRSkmJkUuaWQ9PT0KeSlyZXR1cm4gdGEuY2FsbChxLEUpLHF9ZWxzZXtpZihJWzJdKXJldHVybiB0YS5hcHBseShxLHAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoaykpLHE7aWYoKHk9SVszXSkmJnAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gdGEuYXBwbHkocSxwLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoeSkpLHF9aWYoIShZW2srIiAiXXx8a2EmJmthLnRlc3QoaykpKXtpZih5PWssQj1wLDE9PT1KJiYodmIudGVzdChrKXx8SGEudGVzdChrKSkpeyhCPWRjLnRlc3QoaykmJmwocC5wYXJlbnROb2RlKXx8cCk9PXAmJk4uc2NvcGV8fCgoQT1wLmdldEF0dHJpYnV0ZSgiaWQiKSk\/QT1kLmVzY2FwZVNlbGVjdG9yKEEpOnAuc2V0QXR0cmlidXRlKCJpZCIsQT1XKSk7Zm9yKEo9KHk9cihrKSkubGVuZ3RoO0otLTspeVtKXT0oQT8iIyIrQToiOnNjb3BlIikrIiAiK3ooeVtKXSk7eT15LmpvaW4oIiwiKX10cnl7cmV0dXJuIHRhLmFwcGx5KHEsQi5xdWVyeVNlbGVjdG9yQWxsKHkpKSxxfWNhdGNoKFIpe1koaywKITApfWZpbmFsbHl7QT09PVcmJnAucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIFNhKGsucmVwbGFjZSh6YiwiJDEiKSxwLHEsdil9ZnVuY3Rpb24gYigpe3ZhciBrPVtdO3JldHVybiBmdW5jdGlvbiB5KHEsdil7cmV0dXJuIGsucHVzaChxKyIgIik+Sy5jYWNoZUxlbmd0aCYmZGVsZXRlIHlbay5zaGlmdCgpXSx5W3ErIiAiXT12fX1mdW5jdGlvbiBjKGspe3JldHVybiBrW1ddPSEwLGt9ZnVuY3Rpb24gZShrKXt2YXIgcD1aLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7dHJ5e3JldHVybiEhayhwKX1jYXRjaChxKXtyZXR1cm4hMX1maW5hbGx5e3AucGFyZW50Tm9kZSYmcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHApfX1mdW5jdGlvbiBmKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gWChwLCJpbnB1dCIpJiZwLnR5cGU9PT1rfX1mdW5jdGlvbiBnKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4oWChwLCJpbnB1dCIpfHxYKHAsImJ1dHRvbiIpKSYmcC50eXBlPT09Cmt9fWZ1bmN0aW9uIGgoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiJmb3JtImluIHA\/cC5wYXJlbnROb2RlJiYhMT09PXAuZGlzYWJsZWQ\/ImxhYmVsImluIHA\/ImxhYmVsImluIHAucGFyZW50Tm9kZT9wLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT1rOnAuZGlzYWJsZWQ9PT1rOnAuaXNEaXNhYmxlZD09PWt8fHAuaXNEaXNhYmxlZCE9PSFrJiZiZChwKT09PWs6cC5kaXNhYmxlZD09PWs6ImxhYmVsImluIHAmJnAuZGlzYWJsZWQ9PT1rfX1mdW5jdGlvbiBtKGspe3JldHVybiBjKGZ1bmN0aW9uKHApe3JldHVybiBwPStwLGMoZnVuY3Rpb24ocSx2KXtmb3IodmFyIHksRT1rKFtdLHEubGVuZ3RoLHApLEE9RS5sZW5ndGg7QS0tOylxW3k9RVtBXV0mJihxW3ldPSEodlt5XT1xW3ldKSl9KX0pfWZ1bmN0aW9uIGwoayl7cmV0dXJuIGsmJiJ1bmRlZmluZWQiIT10eXBlb2Ygay5nZXRFbGVtZW50c0J5VGFnTmFtZSYma31mdW5jdGlvbiB0KGspe3ZhciBwO2s9az9rLm93bmVyRG9jdW1lbnR8fAprOlJhO3JldHVybiBrIT1aJiY5PT09ay5ub2RlVHlwZSYmay5kb2N1bWVudEVsZW1lbnQmJihyYT0oWj1rKS5kb2N1bWVudEVsZW1lbnQsdmE9IWQuaXNYTUxEb2MoWiksTWE9cmEubWF0Y2hlc3x8cmEud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxyYS5tc01hdGNoZXNTZWxlY3RvcixSYSE9WiYmKHA9Wi5kZWZhdWx0VmlldykmJnAudG9wIT09cCYmcC5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGNkKSxOLmdldEJ5SWQ9ZShmdW5jdGlvbihxKXtyZXR1cm4gcmEuYXBwZW5kQ2hpbGQocSkuaWQ9ZC5leHBhbmRvLCFaLmdldEVsZW1lbnRzQnlOYW1lfHwhWi5nZXRFbGVtZW50c0J5TmFtZShkLmV4cGFuZG8pLmxlbmd0aH0pLE4uZGlzY29ubmVjdGVkTWF0Y2g9ZShmdW5jdGlvbihxKXtyZXR1cm4gTWEuY2FsbChxLCIqIil9KSxOLnNjb3BlPWUoZnVuY3Rpb24oKXtyZXR1cm4gWi5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUiKX0pLE4uY3NzSGFzPWUoZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFoucXVlcnlTZWxlY3RvcigiOmhhcygqLDpqcWZha2UpIiksCiExfWNhdGNoKHEpe3JldHVybiEwfX0pLE4uZ2V0QnlJZD8oSy5maWx0ZXIuSUQ9ZnVuY3Rpb24ocSl7dmFyIHY9cS5yZXBsYWNlKFRhLFVhKTtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHkuZ2V0QXR0cmlidXRlKCJpZCIpPT09dn19LEsuZmluZC5JRD1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50QnlJZCYmdmEpcmV0dXJuKHE9di5nZXRFbGVtZW50QnlJZChxKSk\/W3FdOltdfSk6KEsuZmlsdGVyLklEPWZ1bmN0aW9uKHEpe3ZhciB2PXEucmVwbGFjZShUYSxVYSk7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybih5PSJ1bmRlZmluZWQiIT10eXBlb2YgeS5nZXRBdHRyaWJ1dGVOb2RlJiZ5LmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09dn19LEsuZmluZC5JRD1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50QnlJZCYmdmEpe3ZhciB5LEU9di5nZXRFbGVtZW50QnlJZChxKTtpZihFKXtpZigoeT0KRS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXEpcmV0dXJuW0VdO3ZhciBBPXYuZ2V0RWxlbWVudHNCeU5hbWUocSk7Zm9yKHY9MDtFPUFbdisrXTspaWYoKHk9RS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXEpcmV0dXJuW0VdfXJldHVybltdfX0pLEsuZmluZC5UQUc9ZnVuY3Rpb24ocSx2KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHYuZ2V0RWxlbWVudHNCeVRhZ05hbWU\/di5nZXRFbGVtZW50c0J5VGFnTmFtZShxKTp2LnF1ZXJ5U2VsZWN0b3JBbGwocSl9LEsuZmluZC5DTEFTUz1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZ2YSlyZXR1cm4gdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHEpfSxrYT1bXSxlKGZ1bmN0aW9uKHEpe3ZhciB2O3JhLmFwcGVuZENoaWxkKHEpLmlubmVySFRNTD0iPGEgaWQ9JyIrVysiJyBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgaWQ9JyIrClcrIi1cclxcJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IjtxLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fGthLnB1c2goIlxcW1tcXHgyMFxcdFxcclxcblxcZl0qKD86dmFsdWV8Y2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQpIik7cS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrVysiLV0iKS5sZW5ndGh8fGthLnB1c2goIn49Iik7cS5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrVysiKyoiKS5sZW5ndGh8fGthLnB1c2goIi4jLitbK35dIik7cS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8a2EucHVzaCgiOmNoZWNrZWQiKTsodj1aLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgidHlwZSIsCiJoaWRkZW4iKTtxLmFwcGVuZENoaWxkKHYpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKTtyYS5hcHBlbmRDaGlsZChxKS5kaXNhYmxlZD0hMDsyIT09cS5xdWVyeVNlbGVjdG9yQWxsKCI6ZGlzYWJsZWQiKS5sZW5ndGgmJmthLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIik7KHY9Wi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCIiKTtxLmFwcGVuZENoaWxkKHYpO3EucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9JyddIikubGVuZ3RofHxrYS5wdXNoKCJcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKm5hbWVbXFx4MjBcXHRcXHJcXG5cXGZdKj1bXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicnfFwiXCIpIil9KSxOLmNzc0hhc3x8a2EucHVzaCgiOmhhcyIpLGthPWthLmxlbmd0aCYmbmV3IFJlZ0V4cChrYS5qb2luKCJ8IikpLGxhPWZ1bmN0aW9uKHEsdil7aWYocT09PXYpcmV0dXJuIGliPSEwLDA7dmFyIHk9IXEuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIXYuY29tcGFyZURvY3VtZW50UG9zaXRpb247CnJldHVybiB5fHwoMSYoeT0ocS5vd25lckRvY3VtZW50fHxxKT09KHYub3duZXJEb2N1bWVudHx8dik\/cS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih2KToxKXx8IU4uc29ydERldGFjaGVkJiZ2LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHEpPT09eT9xPT09Wnx8cS5vd25lckRvY3VtZW50PT1SYSYmYS5jb250YWlucyhSYSxxKT8tMTp2PT09Wnx8di5vd25lckRvY3VtZW50PT1SYSYmYS5jb250YWlucyhSYSx2KT8xOmhhP05hLmNhbGwoaGEscSktTmEuY2FsbChoYSx2KTowOjQmeT8tMToxKX0pLFp9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiByKGsscCl7dmFyIHEsdix5LEUsQSxJO2lmKEE9VmFbaysiICJdKXJldHVybiBwPzA6QS5zbGljZSgwKTtBPWs7dmFyIEI9W107Zm9yKEk9Sy5wcmVGaWx0ZXI7QTspe2ZvcihFIGluIHEmJiEodj1tYS5leGVjKEEpKXx8KHYmJihBPUEuc2xpY2UodlswXS5sZW5ndGgpfHxBKSxCLnB1c2goeT1bXSkpLHE9ITEsKHY9SGEuZXhlYyhBKSkmJihxPQp2LnNoaWZ0KCkseS5wdXNoKHt2YWx1ZTpxLHR5cGU6dlswXS5yZXBsYWNlKHpiLCIgIil9KSxBPUEuc2xpY2UocS5sZW5ndGgpKSxLLmZpbHRlcikhKHY9WWJbRV0uZXhlYyhBKSl8fElbRV0mJiEodj1JW0VdKHYpKXx8KHE9di5zaGlmdCgpLHkucHVzaCh7dmFsdWU6cSx0eXBlOkUsbWF0Y2hlczp2fSksQT1BLnNsaWNlKHEubGVuZ3RoKSk7aWYoIXEpYnJlYWt9cmV0dXJuIHA\/QS5sZW5ndGg6QT9hLmVycm9yKGspOlZhKGssQikuc2xpY2UoMCl9ZnVuY3Rpb24geihrKXtmb3IodmFyIHA9MCxxPWsubGVuZ3RoLHY9IiI7cDxxO3ArKyl2Kz1rW3BdLnZhbHVlO3JldHVybiB2fWZ1bmN0aW9uIEQoayxwLHEpe3ZhciB2PXAuZGlyLHk9cC5uZXh0LEU9eXx8dixBPXEmJiJwYXJlbnROb2RlIj09PUUsST1EYSsrO3JldHVybiBwLmZpcnN0P2Z1bmN0aW9uKEIsSixSKXtmb3IoO0I9Qlt2XTspaWYoMT09PUIubm9kZVR5cGV8fEEpcmV0dXJuIGsoQixKLFIpO3JldHVybiExfTpmdW5jdGlvbihCLApKLFIpe3ZhciBULFYsaWE9W2ZhLEldO2lmKFIpZm9yKDtCPUJbdl07KXtpZigoMT09PUIubm9kZVR5cGV8fEEpJiZrKEIsSixSKSlyZXR1cm4hMH1lbHNlIGZvcig7Qj1CW3ZdOylpZigxPT09Qi5ub2RlVHlwZXx8QSlpZihWPUJbV118fChCW1ddPXt9KSx5JiZYKEIseSkpQj1CW3ZdfHxCO2Vsc2V7aWYoKFQ9VltFXSkmJlRbMF09PT1mYSYmVFsxXT09PUkpcmV0dXJuIGlhWzJdPVRbMl07aWYoKFZbRV09aWEpWzJdPWsoQixKLFIpKXJldHVybiEwfXJldHVybiExfX1mdW5jdGlvbiBGKGspe3JldHVybiAxPGsubGVuZ3RoP2Z1bmN0aW9uKHAscSx2KXtmb3IodmFyIHk9ay5sZW5ndGg7eS0tOylpZigha1t5XShwLHEsdikpcmV0dXJuITE7cmV0dXJuITB9OmtbMF19ZnVuY3Rpb24gTyhrLHAscSx2LHkpe2Zvcih2YXIgRSxBPVtdLEk9MCxCPWsubGVuZ3RoLEo9bnVsbCE9cDtJPEI7SSsrKShFPWtbSV0pJiYocSYmIXEoRSx2LHkpfHwoQS5wdXNoKEUpLEomJnAucHVzaChJKSkpO3JldHVybiBBfQpmdW5jdGlvbiBhYShrLHAscSx2LHksRSl7cmV0dXJuIHYmJiF2W1ddJiYodj1hYSh2KSkseSYmIXlbV10mJih5PWFhKHksRSkpLGMoZnVuY3Rpb24oQSxJLEIsSil7dmFyIFIsVCxWPVtdLGlhPVtdLHBhPUkubGVuZ3RoLG5hO2lmKCEobmE9QSkpe25hPXB8fCIqIjtmb3IodmFyIEVhPUIubm9kZVR5cGU\/W0JdOkIsY2E9W10sQWE9MCxXYT1FYS5sZW5ndGg7QWE8V2E7QWErKylhKG5hLEVhW0FhXSxjYSk7bmE9Y2F9bmE9IWt8fCFBJiZwP25hOk8obmEsVixrLEIsSik7aWYocT9xKG5hLFQ9eXx8KEE\/azpwYXx8dik\/W106SSxCLEopOlQ9bmEsdil7dmFyIEZhPU8oVCxpYSk7dihGYSxbXSxCLEopO2ZvcihCPUZhLmxlbmd0aDtCLS07KShSPUZhW0JdKSYmKFRbaWFbQl1dPSEobmFbaWFbQl1dPVIpKX1pZihBKXtpZih5fHxrKXtpZih5KXtGYT1bXTtmb3IoQj1ULmxlbmd0aDtCLS07KShSPVRbQl0pJiZGYS5wdXNoKG5hW0JdPVIpO3kobnVsbCxUPVtdLEZhLEopfWZvcihCPVQubGVuZ3RoO0ItLTspKFI9ClRbQl0pJiYtMTwoRmE9eT9OYS5jYWxsKEEsUik6VltCXSkmJihBW0ZhXT0hKElbRmFdPVIpKX19ZWxzZSBUPU8oVD09PUk\/VC5zcGxpY2UocGEsVC5sZW5ndGgpOlQpLHk\/eShudWxsLEksVCxKKTp0YS5hcHBseShJLFQpfSl9ZnVuY3Rpb24gR2Eoayl7Zm9yKHZhciBwLHEsdj1rLmxlbmd0aCx5PUsucmVsYXRpdmVba1swXS50eXBlXSxFPXl8fEsucmVsYXRpdmVbIiAiXSxBPXk\/MTowLEk9RChmdW5jdGlvbihSKXtyZXR1cm4gUj09PXB9LEUsITApLEI9RChmdW5jdGlvbihSKXtyZXR1cm4tMTxOYS5jYWxsKHAsUil9LEUsITApLEo9W2Z1bmN0aW9uKFIsVCxWKXtSPSF5JiYoVnx8VCE9Uyl8fCgocD1UKS5ub2RlVHlwZT9JKFIsVCxWKTpCKFIsVCxWKSk7cmV0dXJuIHA9bnVsbCxSfV07QTx2O0ErKylpZihFPUsucmVsYXRpdmVba1tBXS50eXBlXSlKPVtEKEYoSiksRSldO2Vsc2V7aWYoKEU9Sy5maWx0ZXJba1tBXS50eXBlXS5hcHBseShudWxsLGtbQV0ubWF0Y2hlcykpW1ddKXtmb3IocT0KKytBO3E8diYmIUsucmVsYXRpdmVba1txXS50eXBlXTtxKyspO3JldHVybiBhYSgxPEEmJkYoSiksMTxBJiZ6KGsuc2xpY2UoMCxBLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09a1tBLTJdLnR5cGU\/IioiOiIifSkpLnJlcGxhY2UoemIsIiQxIiksRSxBPHEmJkdhKGsuc2xpY2UoQSxxKSkscTx2JiZHYShrPWsuc2xpY2UocSkpLHE8diYmeihrKSl9Si5wdXNoKEUpfXJldHVybiBGKEopfWZ1bmN0aW9uIHFhKGsscCl7dmFyIHEsdix5LEUsQT1bXSxJPVtdLEI9dWFbaysiICJdO2lmKCFCKXtwfHwocD1yKGspKTtmb3IocT1wLmxlbmd0aDtxLS07KShCPUdhKHBbcV0pKVtXXT9BLnB1c2goQik6SS5wdXNoKEIpOyhCPXVhKGssKHY9MDxBLmxlbmd0aCx5PTA8SS5sZW5ndGgsRT1mdW5jdGlvbihKLFIsVCxWLGlhKXt2YXIgcGEsbmEsRWE9MCxjYT0iMCIsQWE9SiYmW10sV2E9W10sRmE9Uyx1Yz1KfHx5JiZLLmZpbmQuVEFHKCIqIixpYSksdmM9ZmErPW51bGw9PUZhPzE6TWF0aC5yYW5kb20oKXx8Ci4xLGRkPXVjLmxlbmd0aDtmb3IoaWEmJihTPVI9PVp8fFJ8fGlhKTtjYSE9PWRkJiZudWxsIT0ocGE9dWNbY2FdKTtjYSsrKXtpZih5JiZwYSl7dmFyIGVjPTA7Zm9yKFJ8fHBhLm93bmVyRG9jdW1lbnQ9PVp8fCh0KHBhKSxUPSF2YSk7bmE9SVtlYysrXTspaWYobmEocGEsUnx8WixUKSl7dGEuY2FsbChWLHBhKTticmVha31pYSYmKGZhPXZjKX12JiYoKHBhPSFuYSYmcGEpJiZFYS0tLEomJkFhLnB1c2gocGEpKX1pZihFYSs9Y2EsdiYmY2EhPT1FYSl7Zm9yKGVjPTA7bmE9QVtlYysrXTspbmEoQWEsV2EsUixUKTtpZihKKXtpZigwPEVhKWZvcig7Y2EtLTspQWFbY2FdfHxXYVtjYV18fChXYVtjYV09WGMuY2FsbChWKSk7V2E9TyhXYSl9dGEuYXBwbHkoVixXYSk7aWEmJiFKJiYwPFdhLmxlbmd0aCYmMTxFYStBLmxlbmd0aCYmZC51bmlxdWVTb3J0KFYpfXJldHVybiBpYSYmKGZhPXZjLFM9RmEpLEFhfSx2P2MoRSk6RSkpKS5zZWxlY3Rvcj1rfXJldHVybiBCfWZ1bmN0aW9uIFNhKGssCnAscSx2KXt2YXIgeSxFLEEsSSxCLEo9ImZ1bmN0aW9uIj09dHlwZW9mIGsmJmssUj0hdiYmcihrPUouc2VsZWN0b3J8fGspO2lmKHE9cXx8W10sMT09PVIubGVuZ3RoKXtpZigyPChFPVJbMF09UlswXS5zbGljZSgwKSkubGVuZ3RoJiYiSUQiPT09KEE9RVswXSkudHlwZSYmOT09PXAubm9kZVR5cGUmJnZhJiZLLnJlbGF0aXZlW0VbMV0udHlwZV0pe2lmKCEocD0oSy5maW5kLklEKEEubWF0Y2hlc1swXS5yZXBsYWNlKFRhLFVhKSxwKXx8W10pWzBdKSlyZXR1cm4gcTtKJiYocD1wLnBhcmVudE5vZGUpO2s9ay5zbGljZShFLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1mb3IoeT1ZYi5uZWVkc0NvbnRleHQudGVzdChrKT8wOkUubGVuZ3RoO3ktLSYmKEE9RVt5XSwhSy5yZWxhdGl2ZVtJPUEudHlwZV0pOylpZigoQj1LLmZpbmRbSV0pJiYodj1CKEEubWF0Y2hlc1swXS5yZXBsYWNlKFRhLFVhKSxkYy50ZXN0KEVbMF0udHlwZSkmJmwocC5wYXJlbnROb2RlKXx8cCkpKXtpZihFLnNwbGljZSh5LAoxKSwhKGs9di5sZW5ndGgmJnooRSkpKXJldHVybiB0YS5hcHBseShxLHYpLHE7YnJlYWt9fXJldHVybihKfHxxYShrLFIpKSh2LHAsIXZhLHEsIXB8fGRjLnRlc3QoaykmJmwocC5wYXJlbnROb2RlKXx8cCkscX12YXIgUSxLLFMsaGEsaWIsWixyYSx2YSxrYSxNYSx0YT11YixXPWQuZXhwYW5kbyxmYT0wLERhPTAsZGI9YigpLFZhPWIoKSx1YT1iKCksWT1iKCksbGE9ZnVuY3Rpb24oayxwKXtyZXR1cm4gaz09PXAmJihpYj0hMCksMH0sSWE9UmVnRXhwKCJbXFx4MjBcXHRcXHJcXG5cXGZdKyIsImciKSxtYT1SZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdKixbXFx4MjBcXHRcXHJcXG5cXGZdKiIpLEhhPVJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0qKFs+K35dfFtcXHgyMFxcdFxcclxcblxcZl0pW1xceDIwXFx0XFxyXFxuXFxmXSoiKSx2Yj1SZWdFeHAoIltcXHgyMFxcdFxcclxcblxcZl18PiIpLGZjPVJlZ0V4cCgiOigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXxcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpbXFx4MjBcXHRcXHJcXG5cXGZdKihbKl4kfCF+XT89KVtcXHgyMFxcdFxcclxcblxcZl0qKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSl8KVtcXHgyMFxcdFxcclxcblxcZl0qXFxdKSopfC4qKVxcKXwpIiksCmVkPVJlZ0V4cCgiXig\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrJCIpLFliPXtJRDpSZWdFeHAoIl4jKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSIpLENMQVNTOlJlZ0V4cCgiXlxcLigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykiKSxUQUc6UmVnRXhwKCJeKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrfFsqXSkiKSxBVFRSOlJlZ0V4cCgiXlxcW1tcXHgyMFxcdFxcclxcblxcZl0qKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OltcXHgyMFxcdFxcclxcblxcZl0qKFsqXiR8IX5dPz0pW1xceDIwXFx0XFxyXFxuXFxmXSooPzonKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKXwpW1xceDIwXFx0XFxyXFxuXFxmXSpcXF0iKSwKUFNFVURPOlJlZ0V4cCgiXjooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86XFwoKCgnKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg\/OlxcXFwufFteXFxcXCgpW1xcXV18XFxbW1xceDIwXFx0XFxyXFxuXFxmXSooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86W1xceDIwXFx0XFxyXFxuXFxmXSooWypeJHwhfl0\/PSlbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwifCgoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykpfClbXFx4MjBcXHRcXHJcXG5cXGZdKlxcXSkqKXwuKilcXCl8KSIpLApDSElMRDpSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg\/OlxcKFtcXHgyMFxcdFxcclxcblxcZl0qKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpW1xceDIwXFx0XFxyXFxuXFxmXSooPzooWystXXwpW1xceDIwXFx0XFxyXFxuXFxmXSooXFxkKyl8KSlbXFx4MjBcXHRcXHJcXG5cXGZdKlxcKXwpIiwiaSIpLGJvb2w6UmVnRXhwKCJeKD86Y2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQpJCIsImkiKSxuZWVkc0NvbnRleHQ6UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSpbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg\/OlxcKFtcXHgyMFxcdFxcclxcblxcZl0qKCg\/Oi1cXGQpP1xcZCopW1xceDIwXFx0XFxyXFxuXFxmXSpcXCl8KSg\/PVteLV18JCkiLAoiaSIpfSxmZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGdkPS9eaFxkJC9pLGFkPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sZGM9L1srfl0vLFRhPVJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcKFteXFxyXFxuXFxmXSkiLCJnIiksVWE9ZnVuY3Rpb24oayxwKXtrPSIweCIray5zbGljZSgxKS02NTUzNjtyZXR1cm4gcHx8KDA+az9TdHJpbmcuZnJvbUNoYXJDb2RlKGsrNjU1MzYpOlN0cmluZy5mcm9tQ2hhckNvZGUoaz4+MTB8NTUyOTYsMTAyMyZrfDU2MzIwKSl9LGNkPWZ1bmN0aW9uKCl7dCgpfSxiZD1EKGZ1bmN0aW9uKGspe3JldHVybiEwPT09ay5kaXNhYmxlZCYmWChrLCJmaWVsZHNldCIpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e3RhLmFwcGx5KG9hPXlhLmNhbGwoUmEuY2hpbGROb2RlcyksUmEuY2hpbGROb2Rlcyksb2FbUmEuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGspe3RhPQp7YXBwbHk6ZnVuY3Rpb24ocCxxKXt1Yi5hcHBseShwLHlhLmNhbGwocSkpfSxjYWxsOmZ1bmN0aW9uKHApe3ViLmFwcGx5KHAseWEuY2FsbChhcmd1bWVudHMsMSkpfX19Zm9yKFEgaW4gYS5tYXRjaGVzPWZ1bmN0aW9uKGsscCl7cmV0dXJuIGEoayxudWxsLG51bGwscCl9LGEubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGsscCl7aWYodChrKSwhKCF2YXx8WVtwKyIgIl18fGthJiZrYS50ZXN0KHApKSl0cnl7dmFyIHE9TWEuY2FsbChrLHApO2lmKHF8fE4uZGlzY29ubmVjdGVkTWF0Y2h8fGsuZG9jdW1lbnQmJjExIT09ay5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gcX1jYXRjaCh2KXtZKHAsITApfXJldHVybiAwPGEocCxaLG51bGwsW2tdKS5sZW5ndGh9LGEuY29udGFpbnM9ZnVuY3Rpb24oayxwKXtyZXR1cm4oay5vd25lckRvY3VtZW50fHxrKSE9WiYmdChrKSxkLmNvbnRhaW5zKGsscCl9LGEuYXR0cj1mdW5jdGlvbihrLHApeyhrLm93bmVyRG9jdW1lbnR8fGspIT1aJiZ0KGspOwp2YXIgcT1LLmF0dHJIYW5kbGVbcC50b0xvd2VyQ2FzZSgpXTtxPXEmJkZiLmNhbGwoSy5hdHRySGFuZGxlLHAudG9Mb3dlckNhc2UoKSk\/cShrLHAsIXZhKTp2b2lkIDA7cmV0dXJuIHZvaWQgMCE9PXE\/cTprLmdldEF0dHJpYnV0ZShwKX0sYS5lcnJvcj1mdW5jdGlvbihrKXt0aHJvdyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitrKTt9LGQudW5pcXVlU29ydD1mdW5jdGlvbihrKXt2YXIgcCxxPVtdLHY9MCx5PTA7aWYoaWI9IU4uc29ydFN0YWJsZSxoYT0hTi5zb3J0U3RhYmxlJiZ5YS5jYWxsKGssMCksWWMuY2FsbChrLGxhKSxpYil7Zm9yKDtwPWtbeSsrXTspcD09PWtbeV0mJih2PXEucHVzaCh5KSk7Zm9yKDt2LS07KVpjLmNhbGwoayxxW3ZdLDEpfXJldHVybiBoYT1udWxsLGt9LGQuZm4udW5pcXVlU29ydD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLnVuaXF1ZVNvcnQoeWEuYXBwbHkodGhpcykpKX0sKEs9ZC5leHByPQp7Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmMsbWF0Y2g6WWIsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGspe3JldHVybiBrWzFdPWtbMV0ucmVwbGFjZShUYSxVYSksa1szXT0oa1szXXx8a1s0XXx8a1s1XXx8IiIpLnJlcGxhY2UoVGEsVWEpLCJ+PSI9PT1rWzJdJiYoa1szXT0iICIra1szXSsiICIpLGsuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oayl7cmV0dXJuIGtbMV09a1sxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09a1sxXS5zbGljZSgwLDMpPyhrWzNdfHxhLmVycm9yKGtbMF0pLGtbNF09KyhrWzRdP2tbNV0rKGtbNl18fDEpOjIqKCJldmVuIj09PWtbM118fCJvZGQiPT09a1szXSkpLGtbNV09Cisoa1s3XStrWzhdfHwib2RkIj09PWtbM10pKTprWzNdJiZhLmVycm9yKGtbMF0pLGt9LFBTRVVETzpmdW5jdGlvbihrKXt2YXIgcCxxPSFrWzZdJiZrWzJdO3JldHVybiBZYi5DSElMRC50ZXN0KGtbMF0pP251bGw6KGtbM10\/a1syXT1rWzRdfHxrWzVdfHwiIjpxJiZmYy50ZXN0KHEpJiYocD1yKHEsITApKSYmKHA9cS5pbmRleE9mKCIpIixxLmxlbmd0aC1wKS1xLmxlbmd0aCkmJihrWzBdPWtbMF0uc2xpY2UoMCxwKSxrWzJdPXEuc2xpY2UoMCxwKSksay5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGspe3ZhciBwPWsucmVwbGFjZShUYSxVYSkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1rP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKHEpe3JldHVybiBYKHEscCl9fSxDTEFTUzpmdW5jdGlvbihrKXt2YXIgcD1kYltrKyIgIl07cmV0dXJuIHB8fChwPW5ldyBSZWdFeHAoIihefFtcXHgyMFxcdFxcclxcblxcZl0pIitrKyIoW1xceDIwXFx0XFxyXFxuXFxmXXwkKSIpLApkYihrLGZ1bmN0aW9uKHEpe3JldHVybiBwLnRlc3QoInN0cmluZyI9PXR5cGVvZiBxLmNsYXNzTmFtZSYmcS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgcS5nZXRBdHRyaWJ1dGUmJnEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KSl9LEFUVFI6ZnVuY3Rpb24oayxwLHEpe3JldHVybiBmdW5jdGlvbih2KXt2PWEuYXR0cih2LGspO3JldHVybiBudWxsPT12PyIhPSI9PT1wOiFwfHwodis9IiIsIj0iPT09cD92PT09cToiIT0iPT09cD92IT09cToiXj0iPT09cD9xJiYwPT09di5pbmRleE9mKHEpOiIqPSI9PT1wP3EmJi0xPHYuaW5kZXhPZihxKToiJD0iPT09cD9xJiZ2LnNsaWNlKC1xLmxlbmd0aCk9PT1xOiJ+PSI9PT1wPy0xPCgiICIrdi5yZXBsYWNlKElhLCIgIikrIiAiKS5pbmRleE9mKHEpOiJ8PSI9PT1wJiYodj09PXF8fHYuc2xpY2UoMCxxLmxlbmd0aCsxKT09PXErIi0iKSl9fSxDSElMRDpmdW5jdGlvbihrLHAscSx2LHkpe3ZhciBFPSJudGgiIT09ay5zbGljZSgwLAozKSxBPSJsYXN0IiE9PWsuc2xpY2UoLTQpLEk9Im9mLXR5cGUiPT09cDtyZXR1cm4gMT09PXYmJjA9PT15P2Z1bmN0aW9uKEIpe3JldHVybiEhQi5wYXJlbnROb2RlfTpmdW5jdGlvbihCLEosUil7dmFyIFQsVixpYTtKPUUhPT1BPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyI7dmFyIHBhPUIucGFyZW50Tm9kZSxuYT1JJiZCLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksRWE9IVImJiFJLGNhPSExO2lmKHBhKXtpZihFKXtmb3IoO0o7KXtmb3IoVj1CO1Y9VltKXTspaWYoST9YKFYsbmEpOjE9PT1WLm5vZGVUeXBlKXJldHVybiExO3ZhciBBYT1KPSJvbmx5Ij09PWsmJiFBYSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihBYT1bQT9wYS5maXJzdENoaWxkOnBhLmxhc3RDaGlsZF0sQSYmRWEpZm9yKGNhPShpYT0oVD0oUj1wYVtXXXx8KHBhW1ddPXt9KSlba118fFtdKVswXT09PWZhJiZUWzFdKSYmVFsyXSxWPWlhJiZwYS5jaGlsZE5vZGVzW2lhXTtWPSsraWEmJlYmJlZbSl18fAooY2E9aWE9MCl8fEFhLnBvcCgpOyl7aWYoMT09PVYubm9kZVR5cGUmJisrY2EmJlY9PT1CKXtSW2tdPVtmYSxpYSxjYV07YnJlYWt9fWVsc2UgaWYoRWEmJihjYT1pYT0oVD0oQltXXXx8KEJbV109e30pKVtrXXx8W10pWzBdPT09ZmEmJlRbMV0pLCExPT09Y2EpZm9yKDsoVj0rK2lhJiZWJiZWW0pdfHwoY2E9aWE9MCl8fEFhLnBvcCgpKSYmKChJPyFYKFYsbmEpOjEhPT1WLm5vZGVUeXBlKXx8ISsrY2F8fChFYSYmKChSPVZbV118fChWW1ddPXt9KSlba109W2ZhLGNhXSksViE9PUIpKTspO3JldHVybihjYS09eSk9PT12fHwwPT1jYSV2JiYwPD1jYS92fX19LFBTRVVETzpmdW5jdGlvbihrLHApe3ZhciBxLHY9Sy5wc2V1ZG9zW2tdfHxLLnNldEZpbHRlcnNbay50b0xvd2VyQ2FzZSgpXXx8YS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2spO3JldHVybiB2W1ddP3YocCk6MTx2Lmxlbmd0aD8ocT1bayxrLCIiLHBdLEsuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShrLnRvTG93ZXJDYXNlKCkpPwpjKGZ1bmN0aW9uKHksRSl7Zm9yKHZhciBBLEk9dih5LHApLEI9SS5sZW5ndGg7Qi0tOyl5W0E9TmEuY2FsbCh5LElbQl0pXT0hKEVbQV09SVtCXSl9KTpmdW5jdGlvbih5KXtyZXR1cm4gdih5LDAscSl9KTp2fX0scHNldWRvczp7bm90OmMoZnVuY3Rpb24oayl7dmFyIHA9W10scT1bXSx2PXFhKGsucmVwbGFjZSh6YiwiJDEiKSk7cmV0dXJuIHZbV10\/YyhmdW5jdGlvbih5LEUsQSxJKXt2YXIgQjtBPXYoeSxudWxsLEksW10pO2ZvcihJPXkubGVuZ3RoO0ktLTspKEI9QVtJXSkmJih5W0ldPSEoRVtJXT1CKSl9KTpmdW5jdGlvbih5LEUsQSl7cmV0dXJuIHBbMF09eSx2KHAsbnVsbCxBLHEpLHBbMF09bnVsbCwhcS5wb3AoKX19KSxoYXM6YyhmdW5jdGlvbihrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuIDA8YShrLHApLmxlbmd0aH19KSxjb250YWluczpjKGZ1bmN0aW9uKGspe3JldHVybiBrPWsucmVwbGFjZShUYSxVYSksZnVuY3Rpb24ocCl7cmV0dXJuLTE8KHAudGV4dENvbnRlbnR8fApkLnRleHQocCkpLmluZGV4T2Yoayl9fSksbGFuZzpjKGZ1bmN0aW9uKGspe3JldHVybiBlZC50ZXN0KGt8fCIiKXx8YS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIitrKSxrPWsucmVwbGFjZShUYSxVYSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihwKXt2YXIgcTtkbyBpZihxPXZhP3AubGFuZzpwLmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8cC5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4ocT1xLnRvTG93ZXJDYXNlKCkpPT09a3x8MD09PXEuaW5kZXhPZihrKyItIik7d2hpbGUoKHA9cC5wYXJlbnROb2RlKSYmMT09PXAubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihrKXt2YXIgcD1uLmxvY2F0aW9uJiZuLmxvY2F0aW9uLmhhc2g7cmV0dXJuIHAmJnAuc2xpY2UoMSk9PT1rLmlkfSxyb290OmZ1bmN0aW9uKGspe3JldHVybiBrPT09cmF9LGZvY3VzOmZ1bmN0aW9uKGspe2E6e3RyeXt2YXIgcD1aLmFjdGl2ZUVsZW1lbnQ7YnJlYWsgYX1jYXRjaChxKXt9cD0Kdm9pZCAwfXJldHVybiBrPT09cCYmWi5oYXNGb2N1cygpJiYhIShrLnR5cGV8fGsuaHJlZnx8fmsudGFiSW5kZXgpfSxlbmFibGVkOmgoITEpLGRpc2FibGVkOmgoITApLGNoZWNrZWQ6ZnVuY3Rpb24oayl7cmV0dXJuIFgoaywiaW5wdXQiKSYmISFrLmNoZWNrZWR8fFgoaywib3B0aW9uIikmJiEhay5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oayl7cmV0dXJuIGsucGFyZW50Tm9kZSYmay5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1rLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihrKXtmb3Ioaz1rLmZpcnN0Q2hpbGQ7aztrPWsubmV4dFNpYmxpbmcpaWYoNj5rLm5vZGVUeXBlKXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oayl7cmV0dXJuIUsucHNldWRvcy5lbXB0eShrKX0saGVhZGVyOmZ1bmN0aW9uKGspe3JldHVybiBnZC50ZXN0KGsubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihrKXtyZXR1cm4gZmQudGVzdChrLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGspe3JldHVybiBYKGssCiJpbnB1dCIpJiYiYnV0dG9uIj09PWsudHlwZXx8WChrLCJidXR0b24iKX0sdGV4dDpmdW5jdGlvbihrKXt2YXIgcDtyZXR1cm4gWChrLCJpbnB1dCIpJiYidGV4dCI9PT1rLnR5cGUmJihudWxsPT0ocD1rLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09cC50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6bShmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bShmdW5jdGlvbihrLHApe3JldHVybltwLTFdfSksZXE6bShmdW5jdGlvbihrLHAscSl7cmV0dXJuWzA+cT9xK3A6cV19KSxldmVuOm0oZnVuY3Rpb24oayxwKXtmb3IodmFyIHE9MDtxPHA7cSs9MilrLnB1c2gocSk7cmV0dXJuIGt9KSxvZGQ6bShmdW5jdGlvbihrLHApe2Zvcih2YXIgcT0xO3E8cDtxKz0yKWsucHVzaChxKTtyZXR1cm4ga30pLGx0Om0oZnVuY3Rpb24oayxwLHEpe2ZvcihwPTA+cT9xK3A6cDxxP3A6cTswPD0tLXA7KWsucHVzaChwKTtyZXR1cm4ga30pLGd0Om0oZnVuY3Rpb24oayxwLHEpe2ZvcihxPTA+cT8KcStwOnE7KytxPHA7KWsucHVzaChxKTtyZXR1cm4ga30pfX0pLnBzZXVkb3MubnRoPUsucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pSy5wc2V1ZG9zW1FdPWYoUSk7Zm9yKFEgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlLLnBzZXVkb3NbUV09ZyhRKTt3LnByb3RvdHlwZT1LLmZpbHRlcnM9Sy5wc2V1ZG9zO0suc2V0RmlsdGVycz1uZXcgdztOLnNvcnRTdGFibGU9Vy5zcGxpdCgiIikuc29ydChsYSkuam9pbigiIik9PT1XO3QoKTtOLnNvcnREZXRhY2hlZD1lKGZ1bmN0aW9uKGspe3JldHVybiAxJmsuY29tcGFyZURvY3VtZW50UG9zaXRpb24oWi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pO2QuZmluZD1hO2QuZXhwclsiOiJdPWQuZXhwci5wc2V1ZG9zO2QudW5pcXVlPWQudW5pcXVlU29ydDthLmNvbXBpbGU9cWE7YS5zZWxlY3Q9U2E7YS5zZXREb2N1bWVudD10O2EuZXNjYXBlPWQuZXNjYXBlU2VsZWN0b3I7CmEuZ2V0VGV4dD1kLnRleHQ7YS5pc1hNTD1kLmlzWE1MRG9jO2Euc2VsZWN0b3JzPWQuZXhwcjthLnN1cHBvcnQ9ZC5zdXBwb3J0O2EudW5pcXVlU29ydD1kLnVuaXF1ZVNvcnR9KCk7dmFyIHdiPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGU9W10sZj12b2lkIDAhPT1jOyhhPWFbYl0pJiY5IT09YS5ub2RlVHlwZTspaWYoMT09PWEubm9kZVR5cGUpe2lmKGYmJmQoYSkuaXMoYykpYnJlYWs7ZS5wdXNoKGEpfXJldHVybiBlfSx3Yz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGluZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY30seGM9ZC5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx5Yz0vXjwoW2Etel1bXlwvXDA+Olx4MjBcdFxyXG5cZl0qKVtceDIwXHRcclxuXGZdKlwvPz4oPzo8XC9cMT58KSQvaTtkLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGU9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYKMT09PWUubm9kZVR5cGU\/ZC5maW5kLm1hdGNoZXNTZWxlY3RvcihlLGEpP1tlXTpbXTpkLmZpbmQubWF0Y2hlcyhhLGQuZ3JlcChiLGZ1bmN0aW9uKGYpe3JldHVybiAxPT09Zi5ub2RlVHlwZX0pKX07ZC5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmxlbmd0aCxlPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybiB0aGlzLnB1c2hTdGFjayhkKGEpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7YjxjO2IrKylpZihkLmNvbnRhaW5zKGVbYl0sdGhpcykpcmV0dXJuITB9KSk7dmFyIGY9dGhpcy5wdXNoU3RhY2soW10pO2ZvcihiPTA7YjxjO2IrKylkLmZpbmQoYSxlW2JdLGYpO3JldHVybiAxPGM\/ZC51bmlxdWVTb3J0KGYpOmZ9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soamEodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGphKHRoaXMsYXx8W10sITApKX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISFqYSh0aGlzLAoic3RyaW5nIj09dHlwZW9mIGEmJnhjLnRlc3QoYSk\/ZChhKTphfHxbXSwhMSkubGVuZ3RofX0pO3ZhciBoZD0vXig\/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSspKSQvOyhkLmZuLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYz1jfHxpZCwic3RyaW5nIj09dHlwZW9mIGEpe2lmKCEoZT0iPCI9PT1hWzBdJiYiPiI9PT1hW2EubGVuZ3RoLTFdJiYzPD1hLmxlbmd0aD9bbnVsbCxhLG51bGxdOmhkLmV4ZWMoYSkpfHwhZVsxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk\/KGJ8fGMpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGVbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIGQ\/YlswXTpiLGQubWVyZ2UodGhpcyxkLnBhcnNlSFRNTChlWzFdLGImJmIubm9kZVR5cGU\/Yi5vd25lckRvY3VtZW50fHxiOkwsITApKSx5Yy50ZXN0KGVbMV0pJiZkLmlzUGxhaW5PYmplY3QoYikpZm9yKGUgaW4gYilNKHRoaXNbZV0pP3RoaXNbZV0oYltlXSk6CnRoaXMuYXR0cihlLGJbZV0pO3JldHVybiB0aGlzfXJldHVybihmPUwuZ2V0RWxlbWVudEJ5SWQoZVsyXSkpJiYodGhpc1swXT1mLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU\/KHRoaXNbMF09YSx0aGlzLmxlbmd0aD0xLHRoaXMpOk0oYSk\/dm9pZCAwIT09Yy5yZWFkeT9jLnJlYWR5KGEpOmEoZCk6ZC5tYWtlQXJyYXkoYSx0aGlzKX0pLnByb3RvdHlwZT1kLmZuO3ZhciBpZD1kKEwpLGpkPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLGtkPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2QuZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9ZChhLHRoaXMpLGM9Yi5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxjO2UrKylpZihkLmNvbnRhaW5zKHRoaXMsYltlXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe3ZhciBjLGU9MCxmPXRoaXMubGVuZ3RoLApnPVtdLGg9InN0cmluZyIhPXR5cGVvZiBhJiZkKGEpO2lmKCF4Yy50ZXN0KGEpKWZvcig7ZTxmO2UrKylmb3IoYz10aGlzW2VdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKDExPmMubm9kZVR5cGUmJihoPy0xPGguaW5kZXgoYyk6MT09PWMubm9kZVR5cGUmJmQuZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2cucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soMTxnLmxlbmd0aD9kLnVuaXF1ZVNvcnQoZyk6Zyl9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9OYS5jYWxsKGQoYSksdGhpc1swXSk6TmEuY2FsbCh0aGlzLGEuanF1ZXJ5P2FbMF06YSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC51bmlxdWVTb3J0KGQubWVyZ2UodGhpcy5nZXQoKSxkKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PQphP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtkLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLnBhcmVudE5vZGUpJiYxMSE9PWEubm9kZVR5cGU\/YTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHdiKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBsYihhLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGEpe3JldHVybiBsYihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHdiKGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYiwKYyl7cmV0dXJuIHdiKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiB3YygoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIHdjKGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hLmNvbnRlbnREb2N1bWVudCYmc2MoYS5jb250ZW50RG9jdW1lbnQpP2EuY29udGVudERvY3VtZW50OihYKGEsInRlbXBsYXRlIikmJihhPWEuY29udGVudHx8YSksZC5tZXJnZShbXSxhLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjLGUpe3ZhciBmPWQubWFwKHRoaXMsYixjKTtyZXR1cm4iVW50aWwiIT09YS5zbGljZSgtNSkmJihlPWMpLGUmJiJzdHJpbmciPT10eXBlb2YgZSYmKGY9ZC5maWx0ZXIoZSxmKSksMTx0aGlzLmxlbmd0aCYmKGtkW2FdfHxkLnVuaXF1ZVNvcnQoZiksamQudGVzdChhKSYmZi5yZXZlcnNlKCkpLAp0aGlzLnB1c2hTdGFjayhmKX19KTt2YXIgTGE9L1teXHgyMFx0XHJcblxmXSsvZztkLkNhbGxiYWNrcz1mdW5jdGlvbihhKXt2YXIgYixjO2E9InN0cmluZyI9PXR5cGVvZiBhPyhiPWEsYz17fSxkLmVhY2goYi5tYXRjaChMYSl8fFtdLGZ1bmN0aW9uKHosRCl7Y1tEXT0hMH0pLGMpOmQuZXh0ZW5kKHt9LGEpO3ZhciBlLGYsZyxoLG09W10sbD1bXSx0PS0xLHc9ZnVuY3Rpb24oKXtoPWh8fGEub25jZTtmb3IoZz1lPSEwO2wubGVuZ3RoO3Q9LTEpZm9yKGY9bC5zaGlmdCgpOysrdDxtLmxlbmd0aDspITE9PT1tW3RdLmFwcGx5KGZbMF0sZlsxXSkmJmEuc3RvcE9uRmFsc2UmJih0PW0ubGVuZ3RoLGY9ITEpO2EubWVtb3J5fHwoZj0hMSk7ZT0hMTtoJiYobT1mP1tdOiIiKX0scj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIG0mJihmJiYhZSYmKHQ9bS5sZW5ndGgtMSxsLnB1c2goZikpLGZ1bmN0aW9uIEYoRCl7ZC5lYWNoKEQsZnVuY3Rpb24oTyxhYSl7TShhYSk\/YS51bmlxdWUmJnIuaGFzKGFhKXx8Cm0ucHVzaChhYSk6YWEmJmFhLmxlbmd0aCYmInN0cmluZyIhPT1VKGFhKSYmRihhYSl9KX0oYXJndW1lbnRzKSxmJiYhZSYmdygpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbih6LEQpe2Zvcih2YXIgRjstMTwoRj1kLmluQXJyYXkoRCxtLEYpKTspbS5zcGxpY2UoRiwxKSxGPD10JiZ0LS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oeil7cmV0dXJuIHo\/LTE8ZC5pbkFycmF5KHosbSk6MDxtLmxlbmd0aH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbSYmKG09W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gaD1sPVtdLG09Zj0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFtfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGg9bD1bXSxmfHxlfHwobT1mPSIiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWh9LGZpcmVXaXRoOmZ1bmN0aW9uKHosRCl7cmV0dXJuIGh8fChEPVt6LChEPUR8fApbXSkuc2xpY2U\/RC5zbGljZSgpOkRdLGwucHVzaChEKSxlfHx3KCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gci5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWd9fTtyZXR1cm4gcn07ZC5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGEpe3ZhciBiPVtbIm5vdGlmeSIsInByb2dyZXNzIixkLkNhbGxiYWNrcygibWVtb3J5IiksZC5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDAsInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwxLCJyZWplY3RlZCJdXSxjPSJwZW5kaW5nIixlPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBjfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gZi5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLAp0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGcpe3JldHVybiBlLnRoZW4obnVsbCxnKX0scGlwZTpmdW5jdGlvbigpe3ZhciBnPWFyZ3VtZW50cztyZXR1cm4gZC5EZWZlcnJlZChmdW5jdGlvbihoKXtkLmVhY2goYixmdW5jdGlvbihtLGwpe3ZhciB0PU0oZ1tsWzRdXSkmJmdbbFs0XV07ZltsWzFdXShmdW5jdGlvbigpe3ZhciB3PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3cmJk0ody5wcm9taXNlKT93LnByb21pc2UoKS5wcm9ncmVzcyhoLm5vdGlmeSkuZG9uZShoLnJlc29sdmUpLmZhaWwoaC5yZWplY3QpOmhbbFswXSsiV2l0aCJdKHRoaXMsdD9bd106YXJndW1lbnRzKX0pfSk7Zz1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKGcsaCxtKXtmdW5jdGlvbiBsKHcscix6LEQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBGPXRoaXMsTz1hcmd1bWVudHMsYWE9ZnVuY3Rpb24oKXt2YXIgcWE7aWYoISh3PHQpKXtpZigocWE9ei5hcHBseShGLE8pKT09PXIucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpOwp2YXIgU2E9cWEmJigib2JqZWN0Ij09dHlwZW9mIHFhfHwiZnVuY3Rpb24iPT10eXBlb2YgcWEpJiZxYS50aGVuO00oU2EpP0Q\/U2EuY2FsbChxYSxsKHQscixZYSxEKSxsKHQscixaYSxEKSk6KHQrKyxTYS5jYWxsKHFhLGwodCxyLFlhLEQpLGwodCxyLFphLEQpLGwodCxyLFlhLHIubm90aWZ5V2l0aCkpKTooeiE9PVlhJiYoRj12b2lkIDAsTz1bcWFdKSwoRHx8ci5yZXNvbHZlV2l0aCkoRixPKSl9fSxHYT1EP2FhOmZ1bmN0aW9uKCl7dHJ5e2FhKCl9Y2F0Y2gocWEpe2QuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayYmZC5EZWZlcnJlZC5leGNlcHRpb25Ib29rKHFhLEdhLmVycm9yKSx0PD13KzEmJih6IT09WmEmJihGPXZvaWQgMCxPPVtxYV0pLHIucmVqZWN0V2l0aChGLE8pKX19O3c\/R2EoKTooZC5EZWZlcnJlZC5nZXRFcnJvckhvb2s\/R2EuZXJyb3I9ZC5EZWZlcnJlZC5nZXRFcnJvckhvb2soKTpkLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKEdhLmVycm9yPWQuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLApuLnNldFRpbWVvdXQoR2EpKX19dmFyIHQ9MDtyZXR1cm4gZC5EZWZlcnJlZChmdW5jdGlvbih3KXtiWzBdWzNdLmFkZChsKDAsdyxNKG0pP206WWEsdy5ub3RpZnlXaXRoKSk7YlsxXVszXS5hZGQobCgwLHcsTShnKT9nOllhKSk7YlsyXVszXS5hZGQobCgwLHcsTShoKT9oOlphKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZyl7cmV0dXJuIG51bGwhPWc\/ZC5leHRlbmQoZyxlKTplfX0sZj17fTtyZXR1cm4gZC5lYWNoKGIsZnVuY3Rpb24oZyxoKXt2YXIgbT1oWzJdLGw9aFs1XTtlW2hbMV1dPW0uYWRkO2wmJm0uYWRkKGZ1bmN0aW9uKCl7Yz1sfSxiWzMtZ11bMl0uZGlzYWJsZSxiWzMtZ11bM10uZGlzYWJsZSxiWzBdWzJdLmxvY2ssYlswXVszXS5sb2NrKTttLmFkZChoWzNdLmZpcmUpO2ZbaFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZltoWzBdKyJXaXRoIl0odGhpcz09PWY\/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfTtmW2hbMF0rIldpdGgiXT1tLmZpcmVXaXRofSksCmUucHJvbWlzZShmKSxhJiZhLmNhbGwoZixmKSxmfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPWFyZ3VtZW50cy5sZW5ndGgsYz1iLGU9QXJyYXkoYyksZj15YS5jYWxsKGFyZ3VtZW50cyksZz1kLkRlZmVycmVkKCksaD1mdW5jdGlvbihtKXtyZXR1cm4gZnVuY3Rpb24obCl7ZVttXT10aGlzO2ZbbV09MTxhcmd1bWVudHMubGVuZ3RoP3lhLmNhbGwoYXJndW1lbnRzKTpsOy0tYnx8Zy5yZXNvbHZlV2l0aChlLGYpfX07aWYoMT49YiYmKG1iKGEsZy5kb25lKGgoYykpLnJlc29sdmUsZy5yZWplY3QsIWIpLCJwZW5kaW5nIj09PWcuc3RhdGUoKXx8TShmW2NdJiZmW2NdLnRoZW4pKSlyZXR1cm4gZy50aGVuKCk7Zm9yKDtjLS07KW1iKGZbY10saChjKSxnLnJlamVjdCk7cmV0dXJuIGcucHJvbWlzZSgpfX0pO3ZhciBsZD0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztkLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oYSxiKXtuLmNvbnNvbGUmJgpuLmNvbnNvbGUud2FybiYmYSYmbGQudGVzdChhLm5hbWUpJiZuLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIithLm1lc3NhZ2UsYS5zdGFjayxiKX07ZC5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihhKXtuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhO30pfTt2YXIgZ2M9ZC5EZWZlcnJlZCgpO2QuZm4ucmVhZHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGdjLnRoZW4oYSlbImNhdGNoIl0oZnVuY3Rpb24oYil7ZC5yZWFkeUV4Y2VwdGlvbihiKX0pLHRoaXN9O2QuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGEpeyghMD09PWE\/LS1kLnJlYWR5V2FpdDpkLmlzUmVhZHkpfHwoZC5pc1JlYWR5PSEwKSE9PWEmJjA8LS1kLnJlYWR5V2FpdHx8Z2MucmVzb2x2ZVdpdGgoTCxbZF0pfX0pO2QucmVhZHkudGhlbj1nYy50aGVuOyJjb21wbGV0ZSI9PT1MLnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PUwucmVhZHlTdGF0ZSYmIUwuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsPwpuLnNldFRpbWVvdXQoZC5yZWFkeSk6KEwuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsT2EpLG4uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsT2EpKTt2YXIgWGE9ZnVuY3Rpb24oYSxiLGMsZSxmLGcsaCl7dmFyIG09MCxsPWEubGVuZ3RoLHQ9bnVsbD09YztpZigib2JqZWN0Ij09PVUoYykpZm9yKG0gaW4gZj0hMCxjKVhhKGEsYixtLGNbbV0sITAsZyxoKTtlbHNlIGlmKHZvaWQgMCE9PWUmJihmPSEwLE0oZSl8fChoPSEwKSx0JiYoaD8oYi5jYWxsKGEsZSksYj1udWxsKToodD1iLGI9ZnVuY3Rpb24odyxyLHope3JldHVybiB0LmNhbGwoZCh3KSx6KX0pKSxiKSlmb3IoO208bDttKyspYihhW21dLGMsaD9lOmUuY2FsbChhW21dLG0sYihhW21dLGMpKSk7cmV0dXJuIGY\/YTp0P2IuY2FsbChhKTpsP2IoYVswXSxjKTpnfSxNYz0vXi1tcy0vLE5jPS8tKFthLXpdKS9nLEdiPWZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZXx8OT09PWEubm9kZVR5cGV8fCErYS5ub2RlVHlwZX07CkphLnVpZD0xO0phLnByb3RvdHlwZT17Y2FjaGU6ZnVuY3Rpb24oYSl7dmFyIGI9YVt0aGlzLmV4cGFuZG9dO3JldHVybiBifHwoYj17fSxHYihhKSYmKGEubm9kZVR5cGU\/YVt0aGlzLmV4cGFuZG9dPWI6T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdGhpcy5leHBhbmRvLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pKSksYn0sc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZTthPXRoaXMuY2FjaGUoYSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKWFbQmEoYildPWM7ZWxzZSBmb3IoZSBpbiBiKWFbQmEoZSldPWJbZV07cmV0dXJuIGF9LGdldDpmdW5jdGlvbihhLGIpe3JldHVybiB2b2lkIDA9PT1iP3RoaXMuY2FjaGUoYSk6YVt0aGlzLmV4cGFuZG9dJiZhW3RoaXMuZXhwYW5kb11bQmEoYildfSxhY2Nlc3M6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB2b2lkIDA9PT1ifHxiJiYic3RyaW5nIj09dHlwZW9mIGImJnZvaWQgMD09PWM\/dGhpcy5nZXQoYSxiKToodGhpcy5zZXQoYSxiLGMpLHZvaWQgMCE9PQpjP2M6Yil9LHJlbW92ZTpmdW5jdGlvbihhLGIpe3ZhciBjPWFbdGhpcy5leHBhbmRvXTtpZih2b2lkIDAhPT1jKXtpZih2b2lkIDAhPT1iKXt2YXIgZT0oYj1BcnJheS5pc0FycmF5KGIpP2IubWFwKEJhKTooYj1CYShiKSlpbiBjP1tiXTpiLm1hdGNoKExhKXx8W10pLmxlbmd0aDtmb3IoO2UtLTspZGVsZXRlIGNbYltlXV19KHZvaWQgMD09PWJ8fGQuaXNFbXB0eU9iamVjdChjKSkmJihhLm5vZGVUeXBlP2FbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIGFbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKGEpe2E9YVt0aGlzLmV4cGFuZG9dO3JldHVybiB2b2lkIDAhPT1hJiYhZC5pc0VtcHR5T2JqZWN0KGEpfX07dmFyIEc9bmV3IEphLHhhPW5ldyBKYSxQYz0vXig\/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLE9jPS9bQS1aXS9nO2QuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB4YS5oYXNEYXRhKGEpfHxHLmhhc0RhdGEoYSl9LGRhdGE6ZnVuY3Rpb24oYSwKYixjKXtyZXR1cm4geGEuYWNjZXNzKGEsYixjKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe3hhLnJlbW92ZShhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEcuYWNjZXNzKGEsYixjKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtHLnJlbW92ZShhLGIpfX0pO2QuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGc9dGhpc1swXSxoPWcmJmcuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGY9eGEuZ2V0KGcpLDE9PT1nLm5vZGVUeXBlJiYhRy5nZXQoZywiaGFzRGF0YUF0dHJzIikpKXtmb3IoYz1oLmxlbmd0aDtjLS07KWhbY10mJjA9PT0oZT1oW2NdLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihlPUJhKGUuc2xpY2UoNSkpLE9iKGcsZSxmW2VdKSk7Ry5zZXQoZywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGZ9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe3hhLnNldCh0aGlzLAphKX0pOlhhKHRoaXMsZnVuY3Rpb24obSl7dmFyIGw7aWYoZyYmdm9pZCAwPT09bSlyZXR1cm4gdm9pZCAwIT09KGw9eGEuZ2V0KGcsYSkpP2w6dm9pZCAwIT09KGw9T2IoZyxhKSk\/bDp2b2lkIDA7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eGEuc2V0KHRoaXMsYSxtKX0pfSxudWxsLGIsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt4YS5yZW1vdmUodGhpcyxhKX0pfX0pO2QuZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGU7aWYoYSlyZXR1cm4gYj0oYnx8ImZ4IikrInF1ZXVlIixlPUcuZ2V0KGEsYiksYyYmKCFlfHxBcnJheS5pc0FycmF5KGMpP2U9Ry5hY2Nlc3MoYSxiLGQubWFrZUFycmF5KGMpKTplLnB1c2goYykpLGV8fFtdfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPWQucXVldWUoYSxiKSxlPWMubGVuZ3RoLGY9Yy5zaGlmdCgpLGc9ZC5fcXVldWVIb29rcyhhLApiKTsiaW5wcm9ncmVzcyI9PT1mJiYoZj1jLnNoaWZ0KCksZS0tKTtmJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBnLnN0b3AsZi5jYWxsKGEsZnVuY3Rpb24oKXtkLmRlcXVldWUoYSxiKX0sZykpOyFlJiZnJiZnLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gRy5nZXQoYSxjKXx8Ry5hY2Nlc3MoYSxjLHtlbXB0eTpkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXtHLnJlbW92ZShhLFtiKyJxdWV1ZSIsY10pfSl9KX19KTtkLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM\/ZC5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI\/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kLnF1ZXVlKHRoaXMsYSxiKTtkLl9xdWV1ZUhvb2tzKHRoaXMsCmEpOyJmeCI9PT1hJiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZkLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmRlcXVldWUodGhpcyxhKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGF8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT0xLGY9ZC5EZWZlcnJlZCgpLGc9dGhpcyxoPXRoaXMubGVuZ3RoLG09ZnVuY3Rpb24oKXstLWV8fGYucmVzb2x2ZVdpdGgoZyxbZ10pfTsic3RyaW5nIiE9dHlwZW9mIGEmJihiPWEsYT12b2lkIDApO2ZvcihhPWF8fCJmeCI7aC0tOykoYz1HLmdldChnW2hdLGErInF1ZXVlSG9va3MiKSkmJmMuZW1wdHkmJihlKyssYy5lbXB0eS5hZGQobSkpO3JldHVybiBtKCksZi5wcm9taXNlKGIpfX0pO3ZhciB6Yz0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0\/XGQrfCkvLnNvdXJjZSx5Yj1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrCnpjKyIpKFthLXolXSopJCIsImkiKSxQYT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLGpiPUwuZG9jdW1lbnRFbGVtZW50LG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKX0sbWQ9e2NvbXBvc2VkOiEwfTtqYi5nZXRSb290Tm9kZSYmKG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8YS5nZXRSb290Tm9kZShtZCk9PT1hLm93bmVyRG9jdW1lbnR9KTt2YXIgUWI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4ibm9uZSI9PT0oYT1ifHxhKS5zdHlsZS5kaXNwbGF5fHwiIj09PWEuc3R5bGUuZGlzcGxheSYmb2IoYSkmJiJub25lIj09PWQuY3NzKGEsImRpc3BsYXkiKX0sbGM9e307ZC5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gJGEodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gJGEodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhPwphP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe1FiKHRoaXMpP2QodGhpcykuc2hvdygpOmQodGhpcykuaGlkZSgpfSl9fSk7dmFyIFpiLEhiPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLG1jPS88KFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKS9pLG5jPS9eJHxebW9kdWxlJHxcLyg\/OmphdmF8ZWNtYSlzY3JpcHQvaSx4Yj1MLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChMLmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsoWmI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpO1piLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKTtaYi5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0Iik7eGIuYXBwZW5kQ2hpbGQoWmIpO04uY2hlY2tDbG9uZT14Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQ7eGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IjsKTi5ub0Nsb25lQ2hlY2tlZD0hIXhiLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZTt4Yi5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+IjtOLm9wdGlvbj0hIXhiLmxhc3RDaGlsZDt2YXIgQ2E9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtDYS50Ym9keT1DYS50Zm9vdD1DYS5jb2xncm91cD1DYS5jYXB0aW9uPUNhLnRoZWFkO0NhLnRoPUNhLnRkO04ub3B0aW9ufHwoQ2Eub3B0Z3JvdXA9Q2Eub3B0aW9uPVsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0pO3ZhciBRYz0vPHwmIz9cdys7LyxBYz0vXihbXi5dKikoPzpcLiguKyl8KS87CmQuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLG0sbCx0LHcscix6LEQ9Ry5nZXQoYSk7aWYoR2IoYSkpZm9yKGMuaGFuZGxlciYmKGM9KGc9YykuaGFuZGxlcixmPWcuc2VsZWN0b3IpLGYmJmQuZmluZC5tYXRjaGVzU2VsZWN0b3IoamIsZiksYy5ndWlkfHwoYy5ndWlkPWQuZ3VpZCsrKSwobD1ELmV2ZW50cyl8fChsPUQuZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCkpLChoPUQuaGFuZGxlKXx8KGg9RC5oYW5kbGU9ZnVuY3Rpb24oTyl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZkLmV2ZW50LnRyaWdnZXJlZCE9PU8udHlwZT9kLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9KSxEPShiPShifHwiIikubWF0Y2goTGEpfHxbIiJdKS5sZW5ndGg7RC0tOyl7dmFyIEY9ej0obT1BYy5leGVjKGJbRF0pfHxbXSlbMV07bT0obVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpO0YmJih3PWQuZXZlbnQuc3BlY2lhbFtGXXx8Cnt9LEY9KGY\/dy5kZWxlZ2F0ZVR5cGU6dy5iaW5kVHlwZSl8fEYsdz1kLmV2ZW50LnNwZWNpYWxbRl18fHt9LHQ9ZC5leHRlbmQoe3R5cGU6RixvcmlnVHlwZTp6LGRhdGE6ZSxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZixuZWVkc0NvbnRleHQ6ZiYmZC5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGYpLG5hbWVzcGFjZTptLmpvaW4oIi4iKX0sZyksKHI9bFtGXSl8fCgocj1sW0ZdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsdy5zZXR1cCYmITEhPT13LnNldHVwLmNhbGwoYSxlLG0saCl8fGEuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKEYsaCkpLHcuYWRkJiYody5hZGQuY2FsbChhLHQpLHQuaGFuZGxlci5ndWlkfHwodC5oYW5kbGVyLmd1aWQ9Yy5ndWlkKSksZj9yLnNwbGljZShyLmRlbGVnYXRlQ291bnQrKywwLHQpOnIucHVzaCh0KSxkLmV2ZW50Lmdsb2JhbFtGXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLG0sbCwKdCx3LHIseixEPUcuaGFzRGF0YShhKSYmRy5nZXQoYSk7aWYoRCYmKGw9RC5ldmVudHMpKXtmb3IodD0oYj0oYnx8IiIpLm1hdGNoKExhKXx8WyIiXSkubGVuZ3RoO3QtLTspaWYodz16PShtPUFjLmV4ZWMoYlt0XSl8fFtdKVsxXSxyPShtWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksdyl7dmFyIEY9ZC5ldmVudC5zcGVjaWFsW3ddfHx7fSxPPWxbdz0oZT9GLmRlbGVnYXRlVHlwZTpGLmJpbmRUeXBlKXx8d118fFtdO209bVsyXSYmbmV3IFJlZ0V4cCgiKF58XFwuKSIrci5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTtmb3IoaD1nPU8ubGVuZ3RoO2ctLTspe3ZhciBhYT1PW2ddOyFmJiZ6IT09YWEub3JpZ1R5cGV8fGMmJmMuZ3VpZCE9PWFhLmd1aWR8fG0mJiFtLnRlc3QoYWEubmFtZXNwYWNlKXx8ZSYmZSE9PWFhLnNlbGVjdG9yJiYoIioqIiE9PWV8fCFhYS5zZWxlY3Rvcil8fChPLnNwbGljZShnLDEpLGFhLnNlbGVjdG9yJiZPLmRlbGVnYXRlQ291bnQtLSxGLnJlbW92ZSYmCkYucmVtb3ZlLmNhbGwoYSxhYSkpfWgmJiFPLmxlbmd0aCYmKEYudGVhcmRvd24mJiExIT09Ri50ZWFyZG93bi5jYWxsKGEscixELmhhbmRsZSl8fGQucmVtb3ZlRXZlbnQoYSx3LEQuaGFuZGxlKSxkZWxldGUgbFt3XSl9ZWxzZSBmb3IodyBpbiBsKWQuZXZlbnQucmVtb3ZlKGEsdytiW3RdLGMsZSwhMCk7ZC5pc0VtcHR5T2JqZWN0KGwpJiZHLnJlbW92ZShhLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGg9ZC5ldmVudC5maXgoYSksbT0oRy5nZXQodGhpcywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2gudHlwZV18fFtdLGw9ZC5ldmVudC5zcGVjaWFsW2gudHlwZV18fHt9O2dbMF09aDtmb3IoYj0xO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspZ1tiXT1hcmd1bWVudHNbYl07aWYoaC5kZWxlZ2F0ZVRhcmdldD10aGlzLCFsLnByZURpc3BhdGNofHwhMSE9PWwucHJlRGlzcGF0Y2guY2FsbCh0aGlzLApoKSl7dmFyIHQ9ZC5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsaCxtKTtmb3IoYj0wOyhlPXRbYisrXSkmJiFoLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZvcihoLmN1cnJlbnRUYXJnZXQ9ZS5lbGVtLG09MDsoZj1lLmhhbmRsZXJzW20rK10pJiYhaC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpOyloLnJuYW1lc3BhY2UmJiExIT09Zi5uYW1lc3BhY2UmJiFoLnJuYW1lc3BhY2UudGVzdChmLm5hbWVzcGFjZSl8fChoLmhhbmRsZU9iaj1mLGguZGF0YT1mLmRhdGEsdm9pZCAwIT09KGM9KChkLmV2ZW50LnNwZWNpYWxbZi5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGYuaGFuZGxlcikuYXBwbHkoZS5lbGVtLGcpKSYmITE9PT0oaC5yZXN1bHQ9YykmJihoLnByZXZlbnREZWZhdWx0KCksaC5zdG9wUHJvcGFnYXRpb24oKSkpO3JldHVybiBsLnBvc3REaXNwYXRjaCYmbC5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGgpLGgucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oYSxiKXt2YXIgYywKZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsbT1hLnRhcmdldDtpZihoJiZtLm5vZGVUeXBlJiYhKCJjbGljayI9PT1hLnR5cGUmJjE8PWEuYnV0dG9uKSlmb3IoO20hPT10aGlzO209bS5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1tLm5vZGVUeXBlJiYoImNsaWNrIiE9PWEudHlwZXx8ITAhPT1tLmRpc2FibGVkKSl7dmFyIGw9W10sdD17fTtmb3IoYz0wO2M8aDtjKyspdm9pZCAwPT09dFtmPShlPWJbY10pLnNlbGVjdG9yKyIgIl0mJih0W2ZdPWUubmVlZHNDb250ZXh0Py0xPGQoZix0aGlzKS5pbmRleChtKTpkLmZpbmQoZix0aGlzLG51bGwsW21dKS5sZW5ndGgpLHRbZl0mJmwucHVzaChlKTtsLmxlbmd0aCYmZy5wdXNoKHtlbGVtOm0saGFuZGxlcnM6bH0pfXJldHVybiBtPXRoaXMsaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOm0saGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGFkZFByb3A6ZnVuY3Rpb24oYSxiKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZC5FdmVudC5wcm90b3R5cGUsCmEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpNKGIpP2Z1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiBiKHRoaXMub3JpZ2luYWxFdmVudCl9OmZ1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiB0aGlzLm9yaWdpbmFsRXZlbnRbYV19LHNldDpmdW5jdGlvbihjKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9fSl9LGZpeDpmdW5jdGlvbihhKXtyZXR1cm4gYVtkLmV4cGFuZG9dP2E6bmV3IGQuRXZlbnQoYSl9LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxjbGljazp7c2V0dXA6ZnVuY3Rpb24oYSl7YT10aGlzfHxhO3JldHVybiBIYi50ZXN0KGEudHlwZSkmJmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmcGIoYSwiY2xpY2siLCEwKSwhMX0sdHJpZ2dlcjpmdW5jdGlvbihhKXthPXRoaXN8fGE7cmV0dXJuIEhiLnRlc3QoYS50eXBlKSYmCmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmcGIoYSwiY2xpY2siKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7YT1hLnRhcmdldDtyZXR1cm4gSGIudGVzdChhLnR5cGUpJiZhLmNsaWNrJiZYKGEsImlucHV0IikmJkcuZ2V0KGEsImNsaWNrIil8fFgoYSwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX19O2QucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyl9O2QuRXZlbnQ9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBkLkV2ZW50KSlyZXR1cm4gbmV3IGQuRXZlbnQoYSxiKTthJiZhLnR5cGU\/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHwKdm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiYhMT09PWEucmV0dXJuVmFsdWU\/YWI6YmIsdGhpcy50YXJnZXQ9YS50YXJnZXQmJjM9PT1hLnRhcmdldC5ub2RlVHlwZT9hLnRhcmdldC5wYXJlbnROb2RlOmEudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1hLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWEucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWE7YiYmZC5leHRlbmQodGhpcyxiKTt0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKTt0aGlzW2QuZXhwYW5kb109ITB9O2QuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpkLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpiYixpc1Byb3BhZ2F0aW9uU3RvcHBlZDpiYixpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpiYixpc1NpbXVsYXRlZDohMSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1hYjsKYSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEucHJldmVudERlZmF1bHQoKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWI7YSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEuc3RvcFByb3BhZ2F0aW9uKCl9LHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPWFiO2EmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO3RoaXMuc3RvcFByb3BhZ2F0aW9uKCl9fTtkLmVhY2goe2FsdEtleTohMCxidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsY2hhbmdlZFRvdWNoZXM6ITAsY3RybEtleTohMCxkZXRhaWw6ITAsZXZlbnRQaGFzZTohMCxtZXRhS2V5OiEwLHBhZ2VYOiEwLHBhZ2VZOiEwLHNoaWZ0S2V5OiEwLHZpZXc6ITAsImNoYXIiOiEwLGNvZGU6ITAsCmNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxkLmV2ZW50LmFkZFByb3ApO2QuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGUpe2lmKEwuZG9jdW1lbnRNb2RlKXt2YXIgZj1HLmdldCh0aGlzLCJoYW5kbGUiKSxnPWQuZXZlbnQuZml4KGUpO2cudHlwZT0iZm9jdXNpbiI9PT1lLnR5cGU\/ImZvY3VzIjoiYmx1ciI7Zy5pc1NpbXVsYXRlZD0hMDtmKGUpO2cudGFyZ2V0PT09Zy5jdXJyZW50VGFyZ2V0JiZmKGcpfWVsc2UgZC5ldmVudC5zaW11bGF0ZShiLGUudGFyZ2V0LGQuZXZlbnQuZml4KGUpKX1kLmV2ZW50LnNwZWNpYWxbYV09CntzZXR1cDpmdW5jdGlvbigpe3ZhciBlO2lmKHBiKHRoaXMsYSwhMCksIUwuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPUcuZ2V0KHRoaXMsYikpfHx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYixjKTtHLnNldCh0aGlzLGIsKGV8fDApKzEpfSx0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHBiKHRoaXMsYSksITB9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGU7aWYoIUwuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPUcuZ2V0KHRoaXMsYiktMSk\/Ry5zZXQodGhpcyxiLGUpOih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKSxHLnJlbW92ZSh0aGlzLGIpKX0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIEcuZ2V0KGUudGFyZ2V0LGEpfSxkZWxlZ2F0ZVR5cGU6Yn07ZC5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxmPUwuZG9jdW1lbnRNb2RlP3RoaXM6ZSxnPUcuZ2V0KGYsYik7Z3x8CihMLmRvY3VtZW50TW9kZT90aGlzLmFkZEV2ZW50TGlzdGVuZXIoYixjKTplLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSk7Ry5zZXQoZixiLChnfHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsZj1MLmRvY3VtZW50TW9kZT90aGlzOmUsZz1HLmdldChmLGIpLTE7Zz9HLnNldChmLGIsZyk6KEwuZG9jdW1lbnRNb2RlP3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpOmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLEcucmVtb3ZlKGYsYikpfX19KTtkLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToicG9pbnRlcm91dCJ9LGZ1bmN0aW9uKGEsYil7ZC5ldmVudC5zcGVjaWFsW2FdPXtkZWxlZ2F0ZVR5cGU6YixiaW5kVHlwZTpiLGhhbmRsZTpmdW5jdGlvbihjKXt2YXIgZSxmPQpjLnJlbGF0ZWRUYXJnZXQsZz1jLmhhbmRsZU9iajtyZXR1cm4gZiYmKGY9PT10aGlzfHxkLmNvbnRhaW5zKHRoaXMsZikpfHwoYy50eXBlPWcub3JpZ1R5cGUsZT1nLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGMudHlwZT1iKSxlfX19KTtkLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIGZiKHRoaXMsYSxiLGMsZSl9LG9uZTpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gZmIodGhpcyxhLGIsYyxlLDEpfSxvZmY6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoYSYmYS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmopcmV0dXJuIGU9YS5oYW5kbGVPYmosZChhLmRlbGVnYXRlVGFyZ2V0KS5vZmYoZS5uYW1lc3BhY2U\/ZS5vcmlnVHlwZSsiLiIrZS5uYW1lc3BhY2U6ZS5vcmlnVHlwZSxlLnNlbGVjdG9yLGUuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGEpe2ZvcihmIGluIGEpdGhpcy5vZmYoZixiLGFbZl0pO3JldHVybiB0aGlzfXJldHVybiExIT09CmImJiJmdW5jdGlvbiIhPXR5cGVvZiBifHwoYz1iLGI9dm9pZCAwKSwhMT09PWMmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfX0pO3ZhciBuZD0vPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxSYz0vY2hlY2tlZFxzKig\/OltePV18PVxzKi5jaGVja2VkLikvaSxTYz0vXlxzKjwhXFtDREFUQVxbfFxdXF0+XHMqJC9nO2QuZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9YS5jbG9uZU5vZGUoITApLG09b2IoYSk7aWYoIShOLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxkLmlzWE1MRG9jKGEpKSl7dmFyIGw9c2EoaCksdD0wO2ZvcihlPShmPXNhKGEpKS5sZW5ndGg7dDxlO3QrKyl7dmFyIHc9Zlt0XSxyPWxbdF07dm9pZCAwOyJpbnB1dCI9PT0oZz1yLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZIYi50ZXN0KHcudHlwZSk\/CnIuY2hlY2tlZD13LmNoZWNrZWQ6ImlucHV0IiE9PWcmJiJ0ZXh0YXJlYSIhPT1nfHwoci5kZWZhdWx0VmFsdWU9dy5kZWZhdWx0VmFsdWUpfX1pZihiKWlmKGMpZm9yKGY9Znx8c2EoYSksbD1sfHxzYShoKSx0PTAsZT1mLmxlbmd0aDt0PGU7dCsrKWdiKGZbdF0sbFt0XSk7ZWxzZSBnYihhLGgpO3JldHVybiAwPChsPXNhKGgsInNjcmlwdCIpKS5sZW5ndGgmJm5iKGwsIW0mJnNhKGEsInNjcmlwdCIpKSxofSxjbGVhbkRhdGE6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZSxmPWQuZXZlbnQuc3BlY2lhbCxnPTA7dm9pZCAwIT09KGM9YVtnXSk7ZysrKWlmKEdiKGMpKXtpZihiPWNbRy5leHBhbmRvXSl7aWYoYi5ldmVudHMpZm9yKGUgaW4gYi5ldmVudHMpZltlXT9kLmV2ZW50LnJlbW92ZShjLGUpOmQucmVtb3ZlRXZlbnQoYyxlLGIuaGFuZGxlKTtjW0cuZXhwYW5kb109dm9pZCAwfWNbeGEuZXhwYW5kb10mJihjW3hhLmV4cGFuZG9dPXZvaWQgMCl9fX0pO2QuZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIFRiKHRoaXMsCmEsITApfSxyZW1vdmU6ZnVuY3Rpb24oYSl7cmV0dXJuIFRiKHRoaXMsYSl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIHZvaWQgMD09PWI\/ZC50ZXh0KHRoaXMpOnRoaXMuZW1wdHkoKS5lYWNoKGZ1bmN0aW9uKCl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fCh0aGlzLnRleHRDb250ZW50PWIpfSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHxTYih0aGlzLGEpLmFwcGVuZENoaWxkKGEpfSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PQp0aGlzLm5vZGVUeXBlKXt2YXIgYj1TYih0aGlzLGEpO2IuaW5zZXJ0QmVmb3JlKGEsYi5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MDtudWxsIT0oYT10aGlzW2JdKTtiKyspMT09PWEubm9kZVR5cGUmJihkLmNsZWFuRGF0YShzYShhLCExKSksYS50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbCE9YSYmYSxiPW51bGw9PWI\/YTpiLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2xvbmUodGhpcywKYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXNbMF18fHt9LGU9MCxmPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWImJjE9PT1jLm5vZGVUeXBlKXJldHVybiBjLmlubmVySFRNTDtpZigic3RyaW5nIj09dHlwZW9mIGImJiFuZC50ZXN0KGIpJiYhQ2FbKG1jLmV4ZWMoYil8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXtiPWQuaHRtbFByZWZpbHRlcihiKTt0cnl7Zm9yKDtlPGY7ZSsrKTE9PT0oYz10aGlzW2VdfHx7fSkubm9kZVR5cGUmJihkLmNsZWFuRGF0YShzYShjLCExKSksYy5pbm5lckhUTUw9Yik7Yz0wfWNhdGNoKGcpe319YyYmdGhpcy5lbXB0eSgpLmFwcGVuZChiKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihiKXt2YXIgYz10aGlzLnBhcmVudE5vZGU7MD5kLmluQXJyYXkodGhpcyxhKSYmCihkLmNsZWFuRGF0YShzYSh0aGlzKSksYyYmYy5yZXBsYWNlQ2hpbGQoYix0aGlzKSl9LGEpfX0pO2QuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjKXtmb3IodmFyIGU9W10sZj1kKGMpLGc9Zi5sZW5ndGgtMSxoPTA7aDw9ZztoKyspYz1oPT09Zz90aGlzOnRoaXMuY2xvbmUoITApLGQoZltoXSlbYl0oYyksdWIuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIGJjPW5ldyBSZWdFeHAoIl4oIit6YysiKSg\/IXB4KVthLXolXSskIiwiaSIpLGFjPS9eLS0vLFViPWZ1bmN0aW9uKGEpe3ZhciBiPWEub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gYiYmYi5vcGVuZXJ8fChiPW4pLGIuZ2V0Q29tcHV0ZWRTdHlsZShhKX0sQmM9ZnVuY3Rpb24oYSwKYixjKXt2YXIgZSxmPXt9O2ZvcihlIGluIGIpZltlXT1hLnN0eWxlW2VdLGEuc3R5bGVbZV09YltlXTtmb3IoZSBpbiBjPWMuY2FsbChhKSxiKWEuc3R5bGVbZV09ZltlXTtyZXR1cm4gY30sVGM9bmV3IFJlZ0V4cChQYS5qb2luKCJ8IiksImkiKTshZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYobCl7bS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowIjtsLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDttYXJnaW46YXV0bztib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjYwJTt0b3A6MSUiO2piLmFwcGVuZENoaWxkKG0pLmFwcGVuZENoaWxkKGwpO3ZhciB0PW4uZ2V0Q29tcHV0ZWRTdHlsZShsKTtiPSIxJSIhPT10LnRvcDtoPTEyPT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KHQubWFyZ2luTGVmdCkpOwpsLnN0eWxlLnJpZ2h0PSI2MCUiO2Y9MzY9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC5yaWdodCkpO2M9MzY9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC53aWR0aCkpO2wuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtlPTEyPT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KGwub2Zmc2V0V2lkdGgvMykpO2piLnJlbW92ZUNoaWxkKG0pO2w9bnVsbH19dmFyIGIsYyxlLGYsZyxoLG09TC5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUwuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsTi5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsZC5leHRlbmQoTix7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGN9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSwKZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBhKCksYn0scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxofSxzY3JvbGxib3hTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxlfSxyZWxpYWJsZVRyRGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciB0LHcscix6O3JldHVybiBudWxsPT1nJiYodD1MLmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksdz1MLmNyZWF0ZUVsZW1lbnQoInRyIikscj1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGUiLHcuc3R5bGUuY3NzVGV4dD0iYm9yZGVyOjFweCBzb2xpZCIsdy5zdHlsZS5oZWlnaHQ9IjFweCIsci5zdHlsZS5oZWlnaHQ9IjlweCIsci5zdHlsZS5kaXNwbGF5PSJibG9jayIsamIuYXBwZW5kQ2hpbGQodCkuYXBwZW5kQ2hpbGQodykuYXBwZW5kQ2hpbGQociksej1uLmdldENvbXB1dGVkU3R5bGUodyksCmc9cGFyc2VJbnQoei5oZWlnaHQsMTApK3BhcnNlSW50KHouYm9yZGVyVG9wV2lkdGgsMTApK3BhcnNlSW50KHouYm9yZGVyQm90dG9tV2lkdGgsMTApPT09dy5vZmZzZXRIZWlnaHQsamIucmVtb3ZlQ2hpbGQodCkpLGd9fSkpfSgpO3ZhciByYz1bIldlYmtpdCIsIk1veiIsIm1zIl0scWM9TC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSxwYz17fSxvZD0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8scGQ9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LENjPXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifTtkLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpcmV0dXJuIGE9S2EoYSwib3BhY2l0eSIpLCIiPT09YT8iMSI6YX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlU2xpY2U6ITAsY29sdW1uQ291bnQ6ITAsCmZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxncmlkQXJlYTohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsc2NhbGU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGEsYixjLGUpe2lmKGEmJjMhPT1hLm5vZGVUeXBlJiY4IT09YS5ub2RlVHlwZSYmYS5zdHlsZSl7dmFyIGYsZyxoLG09QmEoYiksbD1hYy50ZXN0KGIpLHQ9YS5zdHlsZTtpZihsfHwoYj1BYihtKSksaD1kLmNzc0hvb2tzW2JdfHxkLmNzc0hvb2tzW21dLHZvaWQgMD09PWMpcmV0dXJuIGgmJgoiZ2V0ImluIGgmJnZvaWQgMCE9PShmPWguZ2V0KGEsITEsZSkpP2Y6dFtiXTsic3RyaW5nIj09PShnPXR5cGVvZiBjKSYmKGY9eWIuZXhlYyhjKSkmJmZbMV0mJihjPVBiKGEsYixmKSxnPSJudW1iZXIiKTtudWxsIT1jJiZjPT1jJiYoIm51bWJlciIhPT1nfHxsfHwoYys9ZiYmZlszXXx8KGQuY3NzTnVtYmVyW21dPyIiOiJweCIpKSxOLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fCh0W2JdPSJpbmhlcml0IiksaCYmInNldCJpbiBoJiZ2b2lkIDA9PT0oYz1oLnNldChhLGMsZSkpfHwobD90LnNldFByb3BlcnR5KGIsYyk6dFtiXT1jKSl9fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZyxoLG09QmEoYik7cmV0dXJuIGFjLnRlc3QoYil8fChiPUFiKG0pKSwoaD1kLmNzc0hvb2tzW2JdfHxkLmNzc0hvb2tzW21dKSYmImdldCJpbiBoJiYoZj1oLmdldChhLCEwLGMpKSx2b2lkIDA9PT1mJiYoZj1LYShhLGIsZSkpLCJub3JtYWwiPT09CmYmJmIgaW4gQ2MmJihmPUNjW2JdKSwiIj09PWN8fGM\/KGc9cGFyc2VGbG9hdChmKSwhMD09PWN8fGlzRmluaXRlKGcpP2d8fDA6Zik6Zn19KTtkLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGMsZSxmKXtpZihlKXJldHVybiFvZC50ZXN0KGQuY3NzKGMsImRpc3BsYXkiKSl8fGMuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJmMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg\/QmIoYyxiLGYpOkJjKGMscGQsZnVuY3Rpb24oKXtyZXR1cm4gQmIoYyxiLGYpfSl9LHNldDpmdW5jdGlvbihjLGUsZil7dmFyIGcsaD1VYihjKSxtPSFOLnNjcm9sbGJveFNpemUoKSYmImFic29sdXRlIj09PWgucG9zaXRpb24sbD0obXx8ZikmJiJib3JkZXItYm94Ij09PWQuY3NzKGMsImJveFNpemluZyIsITEsaCk7Zj1mP3JiKGMsYixmLGwsaCk6MDtyZXR1cm4gbCYmbSYmKGYtPU1hdGguY2VpbChjWyJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKSsKYi5zbGljZSgxKV0tcGFyc2VGbG9hdChoW2JdKS1yYihjLGIsImJvcmRlciIsITEsaCktLjUpKSxmJiYoZz15Yi5leGVjKGUpKSYmInB4IiE9PShnWzNdfHwicHgiKSYmKGMuc3R5bGVbYl09ZSxlPWQuY3NzKGMsYikpLFdiKDAsZSxmKX19fSk7ZC5jc3NIb29rcy5tYXJnaW5MZWZ0PVZiKE4ucmVsaWFibGVNYXJnaW5MZWZ0LGZ1bmN0aW9uKGEsYil7aWYoYilyZXR1cm4ocGFyc2VGbG9hdChLYShhLCJtYXJnaW5MZWZ0IikpfHxhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtQmMoYSx7bWFyZ2luTGVmdDowfSxmdW5jdGlvbigpe3JldHVybiBhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnR9KSkrInB4In0pO2QuZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7dmFyIGU9MCxmPXt9O2ZvcihjPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+CmU7ZSsrKWZbYStQYVtlXStiXT1jW2VdfHxjW2UtMl18fGNbMF07cmV0dXJuIGZ9fTsibWFyZ2luIiE9PWEmJihkLmNzc0hvb2tzW2ErYl0uc2V0PVdiKX0pO2QuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihjLGUsZil7dmFyIGcsaD17fSxtPTA7aWYoQXJyYXkuaXNBcnJheShlKSl7Zj1VYihjKTtmb3IoZz1lLmxlbmd0aDttPGc7bSsrKWhbZVttXV09ZC5jc3MoYyxlW21dLCExLGYpO3JldHVybiBofXJldHVybiB2b2lkIDAhPT1mP2Quc3R5bGUoYyxlLGYpOmQuY3NzKGMsZSl9LGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfX0pOygoZC5Ud2Vlbj16YSkucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp6YSxpbml0OmZ1bmN0aW9uKGEsYixjLGUsZixnKXt0aGlzLmVsZW09YTt0aGlzLnByb3A9Yzt0aGlzLmVhc2luZz1mfHxkLmVhc2luZy5fZGVmYXVsdDt0aGlzLm9wdGlvbnM9Yjt0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCk7dGhpcy5lbmQ9CmU7dGhpcy51bml0PWd8fChkLmNzc051bWJlcltjXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGE9emEucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGEmJmEuZ2V0P2EuZ2V0KHRoaXMpOnphLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihhKXt2YXIgYixjPXphLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24\/dGhpcy5wb3M9Yj1kLmVhc2luZ1t0aGlzLmVhc2luZ10oYSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qYSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz1iPWEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ\/Yy5zZXQodGhpcyk6emEucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPQp6YS5wcm90b3R5cGU7KHphLnByb3BIb29rcz17X2RlZmF1bHQ6e2dldDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gMSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbCE9YS5lbGVtW2EucHJvcF0mJm51bGw9PWEuZWxlbS5zdHlsZVthLnByb3BdP2EuZWxlbVthLnByb3BdOihiPWQuY3NzKGEuZWxlbSxhLnByb3AsIiIpKSYmImF1dG8iIT09Yj9iOjB9LHNldDpmdW5jdGlvbihhKXtkLmZ4LnN0ZXBbYS5wcm9wXT9kLmZ4LnN0ZXBbYS5wcm9wXShhKToxIT09YS5lbGVtLm5vZGVUeXBlfHwhZC5jc3NIb29rc1thLnByb3BdJiZudWxsPT1hLmVsZW0uc3R5bGVbQWIoYS5wcm9wKV0\/YS5lbGVtW2EucHJvcF09YS5ub3c6ZC5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0pLnNjcm9sbFRvcD16YS5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fTtkLmVhc2luZz0Ke2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifTtkLmZ4PXphLnByb3RvdHlwZS5pbml0O2QuZnguc3RlcD17fTt2YXIgc2IsWGIscWQ9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLHJkPS9xdWV1ZUhvb2tzJC87ZC5BbmltYXRpb249ZC5leHRlbmQoeCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNyZWF0ZVR3ZWVuKGEsYik7cmV0dXJuIFBiKGMuZWxlbSxhLHliLmV4ZWMoYiksYyksY31dfSx0d2VlbmVyOmZ1bmN0aW9uKGEsYil7TShhKT8oYj1hLGE9WyIqIl0pOmE9YS5tYXRjaChMYSk7Zm9yKHZhciBjLGU9MCxmPWEubGVuZ3RoO2U8ZjtlKyspYz1hW2VdLHgudHdlZW5lcnNbY109eC50d2VlbmVyc1tjXXx8W10seC50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGgsCm0sbCx0LHc9IndpZHRoImluIGJ8fCJoZWlnaHQiaW4gYixyPXRoaXMsej17fSxEPWEuc3R5bGUsRj1hLm5vZGVUeXBlJiZRYihhKSxPPUcuZ2V0KGEsImZ4c2hvdyIpO2ZvcihlIGluIGMucXVldWV8fChudWxsPT0oaD1kLl9xdWV1ZUhvb2tzKGEsImZ4IikpLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLG09aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fG0oKX0pLGgudW5xdWV1ZWQrKyxyLmFsd2F5cyhmdW5jdGlvbigpe3IuYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tO2QucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksYilpZihmPWJbZV0scWQudGVzdChmKSl7aWYoZGVsZXRlIGJbZV0sZz1nfHwidG9nZ2xlIj09PWYsZj09PShGPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1mfHwhT3x8dm9pZCAwPT09T1tlXSljb250aW51ZTtGPSEwfXpbZV09TyYmT1tlXXx8ZC5zdHlsZShhLGUpfWlmKChiPSFkLmlzRW1wdHlPYmplY3QoYikpfHwKIWQuaXNFbXB0eU9iamVjdCh6KSlmb3IoZSBpbiB3JiYxPT09YS5ub2RlVHlwZSYmKGMub3ZlcmZsb3c9W0Qub3ZlcmZsb3csRC5vdmVyZmxvd1gsRC5vdmVyZmxvd1ldLG51bGw9PShsPU8mJk8uZGlzcGxheSkmJihsPUcuZ2V0KGEsImRpc3BsYXkiKSksIm5vbmUiPT09KHQ9ZC5jc3MoYSwiZGlzcGxheSIpKSYmKGw\/dD1sOigkYShbYV0sITApLGw9YS5zdHlsZS5kaXNwbGF5fHxsLHQ9ZC5jc3MoYSwiZGlzcGxheSIpLCRhKFthXSkpKSwoImlubGluZSI9PT10fHwiaW5saW5lLWJsb2NrIj09PXQmJm51bGwhPWwpJiYibm9uZSI9PT1kLmNzcyhhLCJmbG9hdCIpJiYoYnx8KHIuZG9uZShmdW5jdGlvbigpe0QuZGlzcGxheT1sfSksbnVsbD09bCYmKHQ9RC5kaXNwbGF5LGw9Im5vbmUiPT09dD8iIjp0KSksRC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKEQub3ZlcmZsb3c9ImhpZGRlbiIsci5hbHdheXMoZnVuY3Rpb24oKXtELm92ZXJmbG93PWMub3ZlcmZsb3dbMF07CkQub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV07RC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKSxiPSExLHopYnx8KE8\/ImhpZGRlbiJpbiBPJiYoRj1PLmhpZGRlbik6Tz1HLmFjY2VzcyhhLCJmeHNob3ciLHtkaXNwbGF5Omx9KSxnJiYoTy5oaWRkZW49IUYpLEYmJiRhKFthXSwhMCksci5kb25lKGZ1bmN0aW9uKCl7Zm9yKGUgaW4gRnx8JGEoW2FdKSxHLnJlbW92ZShhLCJmeHNob3ciKSx6KWQuc3R5bGUoYSxlLHpbZV0pfSkpLGI9dShGP09bZV06MCxlLHIpLGUgaW4gT3x8KE9bZV09Yi5zdGFydCxGJiYoYi5lbmQ9Yi5zdGFydCxiLnN0YXJ0PTApKX1dLHByZWZpbHRlcjpmdW5jdGlvbihhLGIpe2I\/eC5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6eC5wcmVmaWx0ZXJzLnB1c2goYSl9fSk7ZC5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGU9YSYmIm9iamVjdCI9PXR5cGVvZiBhP2QuZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8TShhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiYKYnx8YiYmIU0oYikmJmJ9O3JldHVybiBkLmZ4Lm9mZj9lLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiBlLmR1cmF0aW9uJiYoZS5kdXJhdGlvbiBpbiBkLmZ4LnNwZWVkcz9lLmR1cmF0aW9uPWQuZnguc3BlZWRzW2UuZHVyYXRpb25dOmUuZHVyYXRpb249ZC5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPWUucXVldWUmJiEwIT09ZS5xdWV1ZXx8KGUucXVldWU9ImZ4IiksZS5vbGQ9ZS5jb21wbGV0ZSxlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7TShlLm9sZCkmJmUub2xkLmNhbGwodGhpcyk7ZS5xdWV1ZSYmZC5kZXF1ZXVlKHRoaXMsZS5xdWV1ZSl9LGV9O2QuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIHRoaXMuZmlsdGVyKFFiKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxlKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZj1kLmlzRW1wdHlPYmplY3QoYSksZz1kLnNwZWVkKGIsYyxlKTsKYj1mdW5jdGlvbigpe3ZhciBoPXgodGhpcyxkLmV4dGVuZCh7fSxhKSxnKTsoZnx8Ry5nZXQodGhpcywiZmluaXNoIikpJiZoLnN0b3AoITApfTtyZXR1cm4gYi5maW5pc2g9YixmfHwhMT09PWcucXVldWU\/dGhpcy5lYWNoKGIpOnRoaXMucXVldWUoZy5xdWV1ZSxiKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGU9ZnVuY3Rpb24oZil7dmFyIGc9Zi5zdG9wO2RlbGV0ZSBmLnN0b3A7ZyhjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmdGhpcy5xdWV1ZShhfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZj0hMCxnPW51bGwhPWEmJmErInF1ZXVlSG9va3MiLGg9ZC50aW1lcnMsbT1HLmdldCh0aGlzKTtpZihnKW1bZ10mJm1bZ10uc3RvcCYmZShtW2ddKTtlbHNlIGZvcihnIGluIG0pbVtnXSYmbVtnXS5zdG9wJiZyZC50ZXN0KGcpJiZlKG1bZ10pO2ZvcihnPWgubGVuZ3RoO2ctLTspaFtnXS5lbGVtIT09dGhpc3x8bnVsbCE9CmEmJmhbZ10ucXVldWUhPT1hfHwoaFtnXS5hbmltLnN0b3AoYyksZj0hMSxoLnNwbGljZShnLDEpKTshZiYmY3x8ZC5kZXF1ZXVlKHRoaXMsYSl9KX0sZmluaXNoOmZ1bmN0aW9uKGEpe3JldHVybiExIT09YSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Ry5nZXQodGhpcyksYz1iW2ErInF1ZXVlIl0sZT1iW2ErInF1ZXVlSG9va3MiXSxmPWQudGltZXJzLGc9Yz9jLmxlbmd0aDowO2IuZmluaXNoPSEwO2QucXVldWUodGhpcyxhLFtdKTtlJiZlLnN0b3AmJmUuc3RvcC5jYWxsKHRoaXMsITApO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtPT09dGhpcyYmZltlXS5xdWV1ZT09PWEmJihmW2VdLmFuaW0uc3RvcCghMCksZi5zcGxpY2UoZSwxKSk7Zm9yKGU9MDtlPGc7ZSsrKWNbZV0mJmNbZV0uZmluaXNoJiZjW2VdLmZpbmlzaC5jYWxsKHRoaXMpO2RlbGV0ZSBiLmZpbmlzaH0pfX0pO2QuZWFjaChbInRvZ2dsZSIsInNob3ciLCJoaWRlIl0sZnVuY3Rpb24oYSwKYil7dmFyIGM9ZC5mbltiXTtkLmZuW2JdPWZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUodGIoYiwhMCksZSxmLGcpfX0pO2QuZWFjaCh7c2xpZGVEb3duOnRiKCJzaG93Iiksc2xpZGVVcDp0YigiaGlkZSIpLHNsaWRlVG9nZ2xlOnRiKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjLGUsZil7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGMsZSxmKX19KTtkLnRpbWVycz1bXTtkLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPTAsYz1kLnRpbWVycztmb3Ioc2I9RGF0ZS5ub3coKTtiPGMubGVuZ3RoO2IrKykoYT1jW2JdKSgpfHxjW2JdIT09YXx8Yy5zcGxpY2UoYi0tLDEpO2MubGVuZ3RofHxkLmZ4LnN0b3AoKTsKc2I9dm9pZCAwfTtkLmZ4LnRpbWVyPWZ1bmN0aW9uKGEpe2QudGltZXJzLnB1c2goYSk7ZC5meC5zdGFydCgpfTtkLmZ4LmludGVydmFsPTEzO2QuZnguc3RhcnQ9ZnVuY3Rpb24oKXtYYnx8KFhiPSEwLENiKCkpfTtkLmZ4LnN0b3A9ZnVuY3Rpb24oKXtYYj1udWxsfTtkLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfTtkLmZuLmRlbGF5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9ZC5meCYmZC5meC5zcGVlZHNbYV18fGEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihjLGUpe3ZhciBmPW4uc2V0VGltZW91dChjLGEpO2Uuc3RvcD1mdW5jdGlvbigpe24uY2xlYXJUaW1lb3V0KGYpfX0pfTt2YXIgSWI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHNkPUwuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5kQ2hpbGQoTC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7SWIudHlwZT0iY2hlY2tib3giO04uY2hlY2tPbj0iIiE9PUliLnZhbHVlO04ub3B0U2VsZWN0ZWQ9CnNkLnNlbGVjdGVkOyhJYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0IjtJYi50eXBlPSJyYWRpbyI7Ti5yYWRpb1ZhbHVlPSJ0Ij09PUliLnZhbHVlO3ZhciBKYj1kLmV4cHIuYXR0ckhhbmRsZTtkLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGQuYXR0cixhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KTtkLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnPWEubm9kZVR5cGU7aWYoMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuZ2V0QXR0cmlidXRlP2QucHJvcChhLGIsYyk6KDE9PT1nJiZkLmlzWE1MRG9jKGEpfHwoZj1kLmF0dHJIb29rc1tiLnRvTG93ZXJDYXNlKCldfHwoZC5leHByLm1hdGNoLmJvb2wudGVzdChiKT90ZDp2b2lkIDApKSwKdm9pZCAwIT09Yz9udWxsPT09Yz92b2lkIGQucmVtb3ZlQXR0cihhLGIpOmYmJiJzZXQiaW4gZiYmdm9pZCAwIT09KGU9Zi5zZXQoYSxjLGIpKT9lOihhLnNldEF0dHJpYnV0ZShiLGMrIiIpLGMpOmYmJiJnZXQiaW4gZiYmbnVsbCE9PShlPWYuZ2V0KGEsYikpP2U6bnVsbD09KGU9ZC5maW5kLmF0dHIoYSxiKSk\/dm9pZCAwOmUpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFOLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZYKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGM9MCxlPWImJmIubWF0Y2goTGEpO2lmKGUmJjE9PT1hLm5vZGVUeXBlKWZvcig7Yj1lW2MrK107KWEucmVtb3ZlQXR0cmlidXRlKGIpfX0pO3ZhciB0ZD17c2V0OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4hMT09PWI\/ZC5yZW1vdmVBdHRyKGEsCmMpOmEuc2V0QXR0cmlidXRlKGMsYyksY319O2QuZWFjaChkLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPUpiW2JdfHxkLmZpbmQuYXR0cjtKYltiXT1mdW5jdGlvbihlLGYsZyl7dmFyIGgsbSxsPWYudG9Mb3dlckNhc2UoKTtyZXR1cm4gZ3x8KG09SmJbbF0sSmJbbF09aCxoPW51bGwhPWMoZSxmLGcpP2w6bnVsbCxKYltsXT1tKSxofX0pO3ZhciB1ZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLHZkPS9eKD86YXxhcmVhKSQvaTtkLmZuLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGQucHJvcCxhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZC5wcm9wRml4W2FdfHxhXX0pfX0pO2QuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGc9YS5ub2RlVHlwZTsKaWYoMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gMT09PWcmJmQuaXNYTUxEb2MoYSl8fChiPWQucHJvcEZpeFtiXXx8YixmPWQucHJvcEhvb2tzW2JdKSx2b2lkIDAhPT1jP2YmJiJzZXQiaW4gZiYmdm9pZCAwIT09KGU9Zi5zZXQoYSxjLGIpKT9lOmFbYl09YzpmJiYiZ2V0ImluIGYmJm51bGwhPT0oZT1mLmdldChhLGIpKT9lOmFbYl19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihhKXt2YXIgYj1kLmZpbmQuYXR0cihhLCJ0YWJpbmRleCIpO3JldHVybiBiP3BhcnNlSW50KGIsMTApOnVkLnRlc3QoYS5ub2RlTmFtZSl8fHZkLnRlc3QoYS5ub2RlTmFtZSkmJmEuaHJlZj8wOi0xfX19LHByb3BGaXg6eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifX0pO04ub3B0U2VsZWN0ZWR8fChkLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGEpe2E9YS5wYXJlbnROb2RlO3JldHVybiBhJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LApudWxsfSxzZXQ6ZnVuY3Rpb24oYSl7YT1hLnBhcmVudE5vZGU7YSYmKGEuc2VsZWN0ZWRJbmRleCxhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KTtkLmVhY2goInRhYkluZGV4IHJlYWRPbmx5IG1heExlbmd0aCBjZWxsU3BhY2luZyBjZWxsUGFkZGluZyByb3dTcGFuIGNvbFNwYW4gdXNlTWFwIGZyYW1lQm9yZGVyIGNvbnRlbnRFZGl0YWJsZSIuc3BsaXQoIiAiKSxmdW5jdGlvbigpe2QucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KTtkLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoO3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihtKXtkKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLG0sSCh0aGlzKSkpfSk6KGI9UChhKSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKGU9SCh0aGlzKSxjPTE9PT10aGlzLm5vZGVUeXBlJiYiICIrQyhlKSsiICIpe2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspZj0KYltnXSwwPmMuaW5kZXhPZigiICIrZisiICIpJiYoYys9ZisiICIpO2g9QyhjKTtlIT09aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19KTp0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnLGg7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKG0pe2QodGhpcykucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsbSxIKHRoaXMpKSl9KTphcmd1bWVudHMubGVuZ3RoPyhiPVAoYSkpLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24oKXtpZihlPUgodGhpcyksYz0xPT09dGhpcy5ub2RlVHlwZSYmIiAiK0MoZSkrIiAiKXtmb3IoZz0wO2c8Yi5sZW5ndGg7ZysrKWZvcihmPWJbZ107LTE8Yy5pbmRleE9mKCIgIitmKyIgIik7KWM9Yy5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9QyhjKTtlIT09aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19KTp0aGlzOnRoaXMuYXR0cigiY2xhc3MiLCIiKX0sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYywKZSxmLGcsaD10eXBlb2YgYSxtPSJzdHJpbmciPT09aHx8QXJyYXkuaXNBcnJheShhKTtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24obCl7ZCh0aGlzKS50b2dnbGVDbGFzcyhhLmNhbGwodGhpcyxsLEgodGhpcyksYiksYil9KToiYm9vbGVhbiI9PXR5cGVvZiBiJiZtP2I\/dGhpcy5hZGRDbGFzcyhhKTp0aGlzLnJlbW92ZUNsYXNzKGEpOihjPVAoYSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYobSlmb3IoZz1kKHRoaXMpLGY9MDtmPGMubGVuZ3RoO2YrKyllPWNbZl0sZy5oYXNDbGFzcyhlKT9nLnJlbW92ZUNsYXNzKGUpOmcuYWRkQ2xhc3MoZSk7ZWxzZSB2b2lkIDAhPT1hJiYiYm9vbGVhbiIhPT1ofHwoKGU9SCh0aGlzKSkmJkcuc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLGUpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGV8fCExPT09YT8iIjpHLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLApjPTA7Zm9yKGE9IiAiK2ErIiAiO2I9dGhpc1tjKytdOylpZigxPT09Yi5ub2RlVHlwZSYmLTE8KCIgIitDKEgoYikpKyIgIikuaW5kZXhPZihhKSlyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgd2Q9L1xyL2c7ZC5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGUsZj10aGlzWzBdO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPU0oYSksdGhpcy5lYWNoKGZ1bmN0aW9uKGcpe3ZhciBoOzE9PT10aGlzLm5vZGVUeXBlJiYobnVsbD09KGg9ZT9hLmNhbGwodGhpcyxnLGQodGhpcykudmFsKCkpOmEpP2g9IiI6Im51bWJlciI9PXR5cGVvZiBoP2grPSIiOkFycmF5LmlzQXJyYXkoaCkmJihoPWQubWFwKGgsZnVuY3Rpb24obSl7cmV0dXJuIG51bGw9PW0\/IiI6bSsiIn0pKSwoYj1kLnZhbEhvb2tzW3RoaXMudHlwZV18fGQudmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxoLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT0KaCkpfSkpOmY\/KGI9ZC52YWxIb29rc1tmLnR5cGVdfHxkLnZhbEhvb2tzW2Yubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGYsInZhbHVlIikpP2M6InN0cmluZyI9PXR5cGVvZihjPWYudmFsdWUpP2MucmVwbGFjZSh3ZCwiIik6bnVsbD09Yz8iIjpjOnZvaWQgMH19KTtkLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWQuZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI\/YjpDKGQudGV4dChhKSl9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXt2YXIgYixjLGU9YS5vcHRpb25zLGY9YS5zZWxlY3RlZEluZGV4LGc9InNlbGVjdC1vbmUiPT09YS50eXBlLGg9Zz9udWxsOltdLG09Zz9mKzE6ZS5sZW5ndGg7Zm9yKGM9MD5mP206Zz9mOjA7YzxtO2MrKylpZighKCEoYj1lW2NdKS5zZWxlY3RlZCYmYyE9PWZ8fGIuZGlzYWJsZWR8fGIucGFyZW50Tm9kZS5kaXNhYmxlZCYmWChiLnBhcmVudE5vZGUsCiJvcHRncm91cCIpKSl7aWYoYT1kKGIpLnZhbCgpLGcpcmV0dXJuIGE7aC5wdXNoKGEpfXJldHVybiBofSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY9YS5vcHRpb25zO2I9ZC5tYWtlQXJyYXkoYik7Zm9yKHZhciBnPWYubGVuZ3RoO2ctLTspKChlPWZbZ10pLnNlbGVjdGVkPS0xPGQuaW5BcnJheShkLnZhbEhvb2tzLm9wdGlvbi5nZXQoZSksYikpJiYoYz0hMCk7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGJ9fX19KTtkLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtkLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtpZihBcnJheS5pc0FycmF5KGIpKXJldHVybiBhLmNoZWNrZWQ9LTE8ZC5pbkFycmF5KGQoYSkudmFsKCksYil9fTtOLmNoZWNrT258fChkLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIEtiPW4ubG9jYXRpb24sCkRjPURhdGUubm93KCksaGM9L1w\/LztkLnBhcnNlWE1MPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7dHJ5e3ZhciBjPShuZXcgbi5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhhLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gYj1jJiZjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLGMmJiFifHxkLmVycm9yKCJJbnZhbGlkIFhNTDogIisoYj9kLm1hcChiLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmEpKSxjfTt2YXIgRWM9L14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLEZjPWZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9O2QuZXh0ZW5kKGQuZXZlbnQse3RyaWdnZXI6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZyxoLG0sbCx0LHc9W2N8fExdLHI9RmIuY2FsbChhLCJ0eXBlIik\/YS50eXBlOmEsej1GYi5jYWxsKGEsCiJuYW1lc3BhY2UiKT9hLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGY9dD1nPWM9Y3x8TCwzIT09Yy5ub2RlVHlwZSYmOCE9PWMubm9kZVR5cGUmJiFFYy50ZXN0KHIrZC5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ci5pbmRleE9mKCIuIikmJihyPSh6PXIuc3BsaXQoIi4iKSkuc2hpZnQoKSx6LnNvcnQoKSksaD0wPnIuaW5kZXhPZigiOiIpJiYib24iK3IsKGE9YVtkLmV4cGFuZG9dP2E6bmV3IGQuRXZlbnQociwib2JqZWN0Ij09dHlwZW9mIGEmJmEpKS5pc1RyaWdnZXI9ZT8yOjMsYS5uYW1lc3BhY2U9ei5qb2luKCIuIiksYS5ybmFtZXNwYWNlPWEubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3ouam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxhLnJlc3VsdD12b2lkIDAsYS50YXJnZXR8fChhLnRhcmdldD1jKSxiPW51bGw9PWI\/W2FdOmQubWFrZUFycmF5KGIsW2FdKSxsPWQuZXZlbnQuc3BlY2lhbFtyXXx8e30sZXx8IWwudHJpZ2dlcnx8ITEhPT0KbC50cmlnZ2VyLmFwcGx5KGMsYikpKXtpZighZSYmIWwubm9CdWJibGUmJiFrYihjKSl7dmFyIEQ9bC5kZWxlZ2F0ZVR5cGV8fHI7Zm9yKEVjLnRlc3QoRCtyKXx8KGY9Zi5wYXJlbnROb2RlKTtmO2Y9Zi5wYXJlbnROb2RlKXcucHVzaChmKSxnPWY7Zz09PShjLm93bmVyRG9jdW1lbnR8fEwpJiZ3LnB1c2goZy5kZWZhdWx0Vmlld3x8Zy5wYXJlbnRXaW5kb3d8fG4pfWZvcih6PTA7KGY9d1t6KytdKSYmIWEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspdD1mLGEudHlwZT0xPHo\/RDpsLmJpbmRUeXBlfHxyLChtPShHLmdldChmLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbYS50eXBlXSYmRy5nZXQoZiwiaGFuZGxlIikpJiZtLmFwcGx5KGYsYiksKG09aCYmZltoXSkmJm0uYXBwbHkmJkdiKGYpJiYoYS5yZXN1bHQ9bS5hcHBseShmLGIpLCExPT09YS5yZXN1bHQmJmEucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGEudHlwZT1yLGV8fGEuaXNEZWZhdWx0UHJldmVudGVkKCl8fApsLl9kZWZhdWx0JiYhMSE9PWwuX2RlZmF1bHQuYXBwbHkody5wb3AoKSxiKXx8IUdiKGMpfHxoJiZNKGNbcl0pJiYha2IoYykmJigoZz1jW2hdKSYmKGNbaF09bnVsbCksZC5ldmVudC50cmlnZ2VyZWQ9cixhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJnQuYWRkRXZlbnRMaXN0ZW5lcihyLEZjKSxjW3JdKCksYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIocixGYyksZC5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGcmJihjW2hdPWcpKSxhLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGEsYixjKXthPWQuZXh0ZW5kKG5ldyBkLkV2ZW50LGMse3R5cGU6YSxpc1NpbXVsYXRlZDohMH0pO2QuZXZlbnQudHJpZ2dlcihhLG51bGwsYil9fSk7ZC5mbi5leHRlbmQoe3RyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPQp0aGlzWzBdO2lmKGMpcmV0dXJuIGQuZXZlbnQudHJpZ2dlcihhLGIsYywhMCl9fSk7dmFyIFVjPS9cW1xdJC8sR2M9L1xyP1xuL2cseGQ9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLHlkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtkLnBhcmFtPWZ1bmN0aW9uKGEsYil7dmFyIGMsZT1bXSxmPWZ1bmN0aW9uKGcsaCl7aD1NKGgpP2goKTpoO2VbZS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChnKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG51bGw9PWg\/IiI6aCl9O2lmKG51bGw9PWEpcmV0dXJuIiI7aWYoQXJyYXkuaXNBcnJheShhKXx8YS5qcXVlcnkmJiFkLmlzUGxhaW5PYmplY3QoYSkpZC5lYWNoKGEsZnVuY3Rpb24oKXtmKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSllYShjLGFbY10sYixmKTtyZXR1cm4gZS5qb2luKCImIil9O2QuZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSwKc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1kLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9kLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFkKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmeWQudGVzdCh0aGlzLm5vZGVOYW1lKSYmIXhkLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFIYi50ZXN0KGEpKX0pLm1hcChmdW5jdGlvbihhLGIpe2E9ZCh0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09YT9udWxsOkFycmF5LmlzQXJyYXkoYSk\/ZC5tYXAoYSxmdW5jdGlvbihjKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKEdjLCJcclxuIil9fSk6e25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShHYywiXHJcbiIpfX0pLmdldCgpfX0pO3ZhciB6ZD0vJTIwL2csQWQ9LyMuKiQvLEJkPS8oWz8mXSlfPVteJl0qLyxDZD0vXiguKj8pOlsgXHRdKihbXlxyXG5dKikkL2dtLApEZD0vXig\/OkdFVHxIRUFEKSQvLEVkPS9eXC9cLy8sSGM9e30sY2M9e30sSWM9IiovIi5jb25jYXQoIioiKSxpYz1MLmNyZWF0ZUVsZW1lbnQoImEiKTtpYy5ocmVmPUtiLmhyZWY7ZC5leHRlbmQoe2FjdGl2ZTowLGxhc3RNb2RpZmllZDp7fSxldGFnOnt9LGFqYXhTZXR0aW5nczp7dXJsOktiLmhyZWYsdHlwZToiR0VUIixpc0xvY2FsOi9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLnRlc3QoS2IucHJvdG9jb2wpLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SWMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLApodG1sOi9cYmh0bWwvLGpzb246L1xianNvblxiL30scmVzcG9uc2VGaWVsZHM6e3htbDoicmVzcG9uc2VYTUwiLHRleHQ6InJlc3BvbnNlVGV4dCIsanNvbjoicmVzcG9uc2VKU09OIn0sY29udmVydGVyczp7IiogdGV4dCI6U3RyaW5nLCJ0ZXh0IGh0bWwiOiEwLCJ0ZXh0IGpzb24iOkpTT04ucGFyc2UsInRleHQgeG1sIjpkLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9oYihoYihhLGQuYWpheFNldHRpbmdzKSxiKTpoYihkLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpRYShIYyksYWpheFRyYW5zcG9ydDpRYShjYyksYWpheDpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoUyxoYSxpYixaKXt2YXIgcmEsdmEsa2EsTWEsdGEsVz1oYTtLfHwoSz0hMCxtJiZuLmNsZWFyVGltZW91dChtKSxlPXZvaWQgMCxnPVp8fCIiLFEucmVhZHlTdGF0ZT0wPFM\/NDowLHJhPTIwMDw9UyYmMzAwPlN8fAozMDQ9PT1TLGliJiYoTWE9ZnVuY3Rpb24oZmEsRGEsZGIpe2Zvcih2YXIgVmEsdWEsWSxsYSxJYT1mYS5jb250ZW50cyxtYT1mYS5kYXRhVHlwZXM7IioiPT09bWFbMF07KW1hLnNoaWZ0KCksdm9pZCAwPT09VmEmJihWYT1mYS5taW1lVHlwZXx8RGEuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihWYSlmb3IodWEgaW4gSWEpaWYoSWFbdWFdJiZJYVt1YV0udGVzdChWYSkpe21hLnVuc2hpZnQodWEpO2JyZWFrfWlmKG1hWzBdaW4gZGIpWT1tYVswXTtlbHNle2Zvcih1YSBpbiBkYil7aWYoIW1hWzBdfHxmYS5jb252ZXJ0ZXJzW3VhKyIgIittYVswXV0pe1k9dWE7YnJlYWt9bGF8fChsYT11YSl9WT1ZfHxsYX1pZihZKXJldHVybiBZIT09bWFbMF0mJm1hLnVuc2hpZnQoWSksZGJbWV19KHIsUSxpYikpLCFyYSYmLTE8ZC5pbkFycmF5KCJzY3JpcHQiLHIuZGF0YVR5cGVzKSYmMD5kLmluQXJyYXkoImpzb24iLHIuZGF0YVR5cGVzKSYmKHIuY29udmVydGVyc1sidGV4dCBzY3JpcHQiXT0KZnVuY3Rpb24oKXt9KSxNYT1mdW5jdGlvbihmYSxEYSxkYixWYSl7dmFyIHVhLFksbGEsSWEsbWEsSGE9e30sdmI9ZmEuZGF0YVR5cGVzLnNsaWNlKCk7aWYodmJbMV0pZm9yKGxhIGluIGZhLmNvbnZlcnRlcnMpSGFbbGEudG9Mb3dlckNhc2UoKV09ZmEuY29udmVydGVyc1tsYV07Zm9yKFk9dmIuc2hpZnQoKTtZOylpZihmYS5yZXNwb25zZUZpZWxkc1tZXSYmKGRiW2ZhLnJlc3BvbnNlRmllbGRzW1ldXT1EYSksIW1hJiZWYSYmZmEuZGF0YUZpbHRlciYmKERhPWZhLmRhdGFGaWx0ZXIoRGEsZmEuZGF0YVR5cGUpKSxtYT1ZLFk9dmIuc2hpZnQoKSlpZigiKiI9PT1ZKVk9bWE7ZWxzZSBpZigiKiIhPT1tYSYmbWEhPT1ZKXtpZighKGxhPUhhW21hKyIgIitZXXx8SGFbIiogIitZXSkpZm9yKHVhIGluIEhhKWlmKChJYT11YS5zcGxpdCgiICIpKVsxXT09PVkmJihsYT1IYVttYSsiICIrSWFbMF1dfHxIYVsiKiAiK0lhWzBdXSkpeyEwPT09bGE\/bGE9SGFbdWFdOiEwIT09SGFbdWFdJiYoWT0KSWFbMF0sdmIudW5zaGlmdChJYVsxXSkpO2JyZWFrfWlmKCEwIT09bGEpaWYobGEmJmZhWyJ0aHJvd3MiXSlEYT1sYShEYSk7ZWxzZSB0cnl7RGE9bGEoRGEpfWNhdGNoKGZjKXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjpsYT9mYzoiTm8gY29udmVyc2lvbiBmcm9tICIrbWErIiB0byAiK1l9fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6RGF9fShyLE1hLFEscmEpLHJhPyhyLmlmTW9kaWZpZWQmJigodGE9US5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpKSYmKGQubGFzdE1vZGlmaWVkW2ZdPXRhKSwodGE9US5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKGQuZXRhZ1tmXT10YSkpLDIwND09PVN8fCJIRUFEIj09PXIudHlwZT9XPSJub2NvbnRlbnQiOjMwND09PVM\/Vz0ibm90bW9kaWZpZWQiOihXPU1hLnN0YXRlLHZhPU1hLmRhdGEscmE9IShrYT1NYS5lcnJvcikpKTooa2E9VywhUyYmV3x8KFc9ImVycm9yIiwwPlMmJihTPTApKSksUS5zdGF0dXM9ClMsUS5zdGF0dXNUZXh0PShoYXx8VykrIiIscmE\/Ri5yZXNvbHZlV2l0aCh6LFt2YSxXLFFdKTpGLnJlamVjdFdpdGgoeixbUSxXLGthXSksUS5zdGF0dXNDb2RlKGFhKSxhYT12b2lkIDAsbCYmRC50cmlnZ2VyKHJhPyJhamF4U3VjY2VzcyI6ImFqYXhFcnJvciIsW1EscixyYT92YTprYV0pLE8uZmlyZVdpdGgoeixbUSxXXSksbCYmKEQudHJpZ2dlcigiYWpheENvbXBsZXRlIixbUSxyXSksLS1kLmFjdGl2ZXx8ZC5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpKSl9Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKTtiPWJ8fHt9O3ZhciBlLGYsZyxoLG0sbCx0LHcscj1kLmFqYXhTZXR1cCh7fSxiKSx6PXIuY29udGV4dHx8cixEPXIuY29udGV4dCYmKHoubm9kZVR5cGV8fHouanF1ZXJ5KT9kKHopOmQuZXZlbnQsRj1kLkRlZmVycmVkKCksTz1kLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxhYT1yLnN0YXR1c0NvZGV8fHt9LEdhPXt9LHFhPXt9LFNhPSJjYW5jZWxlZCIsUT0Ke3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihTKXt2YXIgaGE7aWYoSyl7aWYoIWgpZm9yKGg9e307aGE9Q2QuZXhlYyhnKTspaFtoYVsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KGhbaGFbMV0udG9Mb3dlckNhc2UoKSsiICJdfHxbXSkuY29uY2F0KGhhWzJdKTtoYT1oW1MudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT1oYT9udWxsOmhhLmpvaW4oIiwgIil9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBLP2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihTLGhhKXtyZXR1cm4gbnVsbD09SyYmKFM9cWFbUy50b0xvd2VyQ2FzZSgpXT1xYVtTLnRvTG93ZXJDYXNlKCldfHxTLEdhW1NdPWhhKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKFMpe3JldHVybiBudWxsPT1LJiYoci5taW1lVHlwZT1TKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKFMpe3ZhciBoYTtpZihTKWlmKEspUS5hbHdheXMoU1tRLnN0YXR1c10pOwplbHNlIGZvcihoYSBpbiBTKWFhW2hhXT1bYWFbaGFdLFNbaGFdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oUyl7Uz1TfHxTYTtyZXR1cm4gZSYmZS5hYm9ydChTKSxjKDAsUyksdGhpc319O2lmKEYucHJvbWlzZShRKSxyLnVybD0oKGF8fHIudXJsfHxLYi5ocmVmKSsiIikucmVwbGFjZShFZCxLYi5wcm90b2NvbCsiLy8iKSxyLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ci5tZXRob2R8fHIudHlwZSxyLmRhdGFUeXBlcz0oci5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKExhKXx8WyIiXSxudWxsPT1yLmNyb3NzRG9tYWluKXthPUwuY3JlYXRlRWxlbWVudCgiYSIpO3RyeXthLmhyZWY9ci51cmwsYS5ocmVmPWEuaHJlZixyLmNyb3NzRG9tYWluPWljLnByb3RvY29sKyIvLyIraWMuaG9zdCE9YS5wcm90b2NvbCsiLy8iK2EuaG9zdH1jYXRjaChTKXtyLmNyb3NzRG9tYWluPSEwfX1pZihyLmRhdGEmJnIucHJvY2Vzc0RhdGEmJiJzdHJpbmciIT10eXBlb2Ygci5kYXRhJiYKKHIuZGF0YT1kLnBhcmFtKHIuZGF0YSxyLnRyYWRpdGlvbmFsKSksRWIoSGMscixiLFEpLEspcmV0dXJuIFE7Zm9yKHQgaW4obD1kLmV2ZW50JiZyLmdsb2JhbCkmJjA9PWQuYWN0aXZlKysmJmQuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksci50eXBlPXIudHlwZS50b1VwcGVyQ2FzZSgpLHIuaGFzQ29udGVudD0hRGQudGVzdChyLnR5cGUpLGY9ci51cmwucmVwbGFjZShBZCwiIiksci5oYXNDb250ZW50P3IuZGF0YSYmci5wcm9jZXNzRGF0YSYmMD09PShyLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJihyLmRhdGE9ci5kYXRhLnJlcGxhY2UoemQsIisiKSk6KHc9ci51cmwuc2xpY2UoZi5sZW5ndGgpLHIuZGF0YSYmKHIucHJvY2Vzc0RhdGF8fCJzdHJpbmciPT10eXBlb2Ygci5kYXRhKSYmKGYrPShoYy50ZXN0KGYpPyImIjoiPyIpK3IuZGF0YSxkZWxldGUgci5kYXRhKSwhMT09PXIuY2FjaGUmJihmPWYucmVwbGFjZShCZCwKIiQxIiksdz0oaGMudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0RjKysgK3cpLHIudXJsPWYrdyksci5pZk1vZGlmaWVkJiYoZC5sYXN0TW9kaWZpZWRbZl0mJlEuc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLGQubGFzdE1vZGlmaWVkW2ZdKSxkLmV0YWdbZl0mJlEuc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIsZC5ldGFnW2ZdKSksKHIuZGF0YSYmci5oYXNDb250ZW50JiYhMSE9PXIuY29udGVudFR5cGV8fGIuY29udGVudFR5cGUpJiZRLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsci5jb250ZW50VHlwZSksUS5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLHIuZGF0YVR5cGVzWzBdJiZyLmFjY2VwdHNbci5kYXRhVHlwZXNbMF1dP3IuYWNjZXB0c1tyLmRhdGFUeXBlc1swXV0rKCIqIiE9PXIuZGF0YVR5cGVzWzBdPyIsICIrSWMrIjsgcT0wLjAxIjoiIik6ci5hY2NlcHRzWyIqIl0pLHIuaGVhZGVycylRLnNldFJlcXVlc3RIZWFkZXIodCxyLmhlYWRlcnNbdF0pOwppZihyLmJlZm9yZVNlbmQmJighMT09PXIuYmVmb3JlU2VuZC5jYWxsKHosUSxyKXx8SykpcmV0dXJuIFEuYWJvcnQoKTtpZihTYT0iYWJvcnQiLE8uYWRkKHIuY29tcGxldGUpLFEuZG9uZShyLnN1Y2Nlc3MpLFEuZmFpbChyLmVycm9yKSxlPUViKGNjLHIsYixRKSl7aWYoUS5yZWFkeVN0YXRlPTEsbCYmRC50cmlnZ2VyKCJhamF4U2VuZCIsW1Escl0pLEspcmV0dXJuIFE7ci5hc3luYyYmMDxyLnRpbWVvdXQmJihtPW4uc2V0VGltZW91dChmdW5jdGlvbigpe1EuYWJvcnQoInRpbWVvdXQiKX0sci50aW1lb3V0KSk7dHJ5e3ZhciBLPSExO2Uuc2VuZChHYSxjKX1jYXRjaChTKXtpZihLKXRocm93IFM7YygtMSxTKX19ZWxzZSBjKC0xLCJObyBUcmFuc3BvcnQiKTtyZXR1cm4gUX0sZ2V0SlNPTjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuZ2V0KGEsYixjLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3JldHVybiBkLmdldChhLHZvaWQgMCxiLCJzY3JpcHQiKX19KTtkLmVhY2goWyJnZXQiLAoicG9zdCJdLGZ1bmN0aW9uKGEsYil7ZFtiXT1mdW5jdGlvbihjLGUsZixnKXtyZXR1cm4gTShlKSYmKGc9Z3x8ZixmPWUsZT12b2lkIDApLGQuYWpheChkLmV4dGVuZCh7dXJsOmMsdHlwZTpiLGRhdGFUeXBlOmcsZGF0YTplLHN1Y2Nlc3M6Zn0sZC5pc1BsYWluT2JqZWN0KGMpJiZjKSl9fSk7ZC5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhLmhlYWRlcnMpImNvbnRlbnQtdHlwZSI9PT1iLnRvTG93ZXJDYXNlKCkmJihhLmNvbnRlbnRUeXBlPWEuaGVhZGVyc1tiXXx8IiIpfSk7ZC5fZXZhbFVybD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbigpe319LGRhdGFGaWx0ZXI6ZnVuY3Rpb24oZSl7ZC5nbG9iYWxFdmFsKGUsYixjKX19KX07ZC5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7dmFyIGI7CnJldHVybiB0aGlzWzBdJiYoTShhKSYmKGE9YS5jYWxsKHRoaXNbMF0pKSxiPWQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBjPXRoaXM7Yy5maXJzdEVsZW1lbnRDaGlsZDspYz1jLmZpcnN0RWxlbWVudENoaWxkO3JldHVybiBjfSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2QodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPWQodGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg\/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9TShhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMpe2QodGhpcykud3JhcEFsbChiP2EuY2FsbCh0aGlzLApjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucGFyZW50KGEpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtkKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pO2QuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4hZC5leHByLnBzZXVkb3MudmlzaWJsZShhKX07ZC5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hIShhLm9mZnNldFdpZHRofHxhLm9mZnNldEhlaWdodHx8YS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9O2QuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IG4uWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYSl7fX07dmFyIEZkPXswOjIwMCwxMjIzOjIwNH0sTGI9ZC5hamF4U2V0dGluZ3MueGhyKCk7Ti5jb3JzPSEhTGImJiJ3aXRoQ3JlZGVudGlhbHMiaW4gTGI7Ti5hamF4PUxiPSEhTGI7ZC5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe3ZhciBiLApjO2lmKE4uY29yc3x8TGImJiFhLmNyb3NzRG9tYWluKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsZil7dmFyIGcsaD1hLnhocigpO2lmKGgub3BlbihhLnR5cGUsYS51cmwsYS5hc3luYyxhLnVzZXJuYW1lLGEucGFzc3dvcmQpLGEueGhyRmllbGRzKWZvcihnIGluIGEueGhyRmllbGRzKWhbZ109YS54aHJGaWVsZHNbZ107Zm9yKGcgaW4gYS5taW1lVHlwZSYmaC5vdmVycmlkZU1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUoYS5taW1lVHlwZSksYS5jcm9zc0RvbWFpbnx8ZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdfHwoZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdPSJYTUxIdHRwUmVxdWVzdCIpLGUpaC5zZXRSZXF1ZXN0SGVhZGVyKGcsZVtnXSk7Yj1mdW5jdGlvbihtKXtyZXR1cm4gZnVuY3Rpb24oKXtiJiYoYj1jPWgub25sb2FkPWgub25lcnJvcj1oLm9uYWJvcnQ9aC5vbnRpbWVvdXQ9aC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCwiYWJvcnQiPT09bT9oLmFib3J0KCk6ImVycm9yIj09PW0\/CiJudW1iZXIiIT10eXBlb2YgaC5zdGF0dXM\/ZigwLCJlcnJvciIpOmYoaC5zdGF0dXMsaC5zdGF0dXNUZXh0KTpmKEZkW2guc3RhdHVzXXx8aC5zdGF0dXMsaC5zdGF0dXNUZXh0LCJ0ZXh0IiE9PShoLnJlc3BvbnNlVHlwZXx8InRleHQiKXx8InN0cmluZyIhPXR5cGVvZiBoLnJlc3BvbnNlVGV4dD97YmluYXJ5OmgucmVzcG9uc2V9Ont0ZXh0OmgucmVzcG9uc2VUZXh0fSxoLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fTtoLm9ubG9hZD1iKCk7Yz1oLm9uZXJyb3I9aC5vbnRpbWVvdXQ9YigiZXJyb3IiKTt2b2lkIDAhPT1oLm9uYWJvcnQ\/aC5vbmFib3J0PWM6aC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09aC5yZWFkeVN0YXRlJiZuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiJiZjKCl9KX07Yj1iKCJhYm9ydCIpO3RyeXtoLnNlbmQoYS5oYXNDb250ZW50JiZhLmRhdGF8fG51bGwpfWNhdGNoKG0pe2lmKGIpdGhyb3cgbTt9fSxhYm9ydDpmdW5jdGlvbigpe2ImJgpiKCl9fX0pO2QuYWpheFByZWZpbHRlcihmdW5jdGlvbihhKXthLmNyb3NzRG9tYWluJiYoYS5jb250ZW50cy5zY3JpcHQ9ITEpfSk7ZC5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9cYig\/OmphdmF8ZWNtYSlzY3JpcHRcYi99LGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZ2xvYmFsRXZhbChhKSxhfX19KTtkLmFqYXhQcmVmaWx0ZXIoInNjcmlwdCIsZnVuY3Rpb24oYSl7dm9pZCAwPT09YS5jYWNoZSYmKGEuY2FjaGU9ITEpO2EuY3Jvc3NEb21haW4mJihhLnR5cGU9IkdFVCIpfSk7ZC5hamF4VHJhbnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZhciBiLGM7aWYoYS5jcm9zc0RvbWFpbnx8YS5zY3JpcHRBdHRycylyZXR1cm57c2VuZDpmdW5jdGlvbihlLApmKXtiPWQoIjxzY3JpcHQ+IikuYXR0cihhLnNjcmlwdEF0dHJzfHx7fSkucHJvcCh7Y2hhcnNldDphLnNjcmlwdENoYXJzZXQsc3JjOmEudXJsfSkub24oImxvYWQgZXJyb3IiLGM9ZnVuY3Rpb24oZyl7Yi5yZW1vdmUoKTtjPW51bGw7ZyYmZigiZXJyb3IiPT09Zy50eXBlPzQwNDoyMDAsZy50eXBlKX0pO0wuaGVhZC5hcHBlbmRDaGlsZChiWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKCl9fX0pO3ZhciBKYyxLYz1bXSxqYz0vKD0pXD8oPz0mfCQpfFw\/XD8vO2QuYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT1LYy5wb3AoKXx8ZC5leHBhbmRvKyJfIitEYysrO3JldHVybiB0aGlzW2FdPSEwLGF9fSk7ZC5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9ITEhPT1hLmpzb25wJiYoamMudGVzdChhLnVybCk\/InVybCI6InN0cmluZyI9PXR5cGVvZiBhLmRhdGEmJjA9PT0oYS5jb250ZW50VHlwZXx8CiIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmamMudGVzdChhLmRhdGEpJiYiZGF0YSIpO2lmKGh8fCJqc29ucCI9PT1hLmRhdGFUeXBlc1swXSlyZXR1cm4gZT1hLmpzb25wQ2FsbGJhY2s9TShhLmpzb25wQ2FsbGJhY2spP2EuanNvbnBDYWxsYmFjaygpOmEuanNvbnBDYWxsYmFjayxoP2FbaF09YVtoXS5yZXBsYWNlKGpjLCIkMSIrZSk6ITEhPT1hLmpzb25wJiYoYS51cmwrPShoYy50ZXN0KGEudXJsKT8iJiI6Ij8iKSthLmpzb25wKyI9IitlKSxhLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8ZC5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxhLmRhdGFUeXBlc1swXT0ianNvbiIsZj1uW2VdLG5bZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sYy5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP2QobikucmVtb3ZlUHJvcChlKTpuW2VdPWY7YVtlXSYmKGEuanNvbnBDYWxsYmFjaz1iLmpzb25wQ2FsbGJhY2ssCktjLnB1c2goZSkpO2cmJk0oZikmJmYoZ1swXSk7Zz1mPXZvaWQgMH0pLCJzY3JpcHQifSk7Ti5jcmVhdGVIVE1MRG9jdW1lbnQ9KChKYz1MLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikuYm9keSkuaW5uZXJIVE1MPSI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPiIsMj09PUpjLmNoaWxkTm9kZXMubGVuZ3RoKTtkLnBhcnNlSFRNTD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhP1tdOigiYm9vbGVhbiI9PXR5cGVvZiBiJiYoYz1iLGI9ITEpLGJ8fChOLmNyZWF0ZUhUTUxEb2N1bWVudD8oKGU9KGI9TC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpKS5jcmVhdGVFbGVtZW50KCJiYXNlIikpLmhyZWY9TC5sb2NhdGlvbi5ocmVmLGIuaGVhZC5hcHBlbmRDaGlsZChlKSk6Yj1MKSxnPSFjJiZbXSwoZj15Yy5leGVjKGEpKT9bYi5jcmVhdGVFbGVtZW50KGZbMV0pXTooZj1SYihbYV0sYixnKSxnJiZnLmxlbmd0aCYmZChnKS5yZW1vdmUoKSwKZC5tZXJnZShbXSxmLmNoaWxkTm9kZXMpKSk7dmFyIGUsZixnfTtkLmZuLmxvYWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZyxoPXRoaXMsbT1hLmluZGV4T2YoIiAiKTtyZXR1cm4tMTxtJiYoZT1DKGEuc2xpY2UobSkpLGE9YS5zbGljZSgwLG0pKSxNKGIpPyhjPWIsYj12b2lkIDApOmImJiJvYmplY3QiPT10eXBlb2YgYiYmKGY9IlBPU1QiKSwwPGgubGVuZ3RoJiZkLmFqYXgoe3VybDphLHR5cGU6Znx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Yn0pLmRvbmUoZnVuY3Rpb24obCl7Zz1hcmd1bWVudHM7aC5odG1sKGU\/ZCgiPGRpdj4iKS5hcHBlbmQoZC5wYXJzZUhUTUwobCkpLmZpbmQoZSk6bCl9KS5hbHdheXMoYyYmZnVuY3Rpb24obCx0KXtoLmVhY2goZnVuY3Rpb24oKXtjLmFwcGx5KHRoaXMsZ3x8W2wucmVzcG9uc2VUZXh0LHQsbF0pfSl9KSx0aGlzfTtkLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gZC5ncmVwKGQudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09CmIuZWxlbX0pLmxlbmd0aH07ZC5vZmZzZXQ9e3NldE9mZnNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9ZC5jc3MoYSwicG9zaXRpb24iKSxtPWQoYSksbD17fTsic3RhdGljIj09PWgmJihhLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpO3ZhciB0PW0ub2Zmc2V0KCksdz1kLmNzcyhhLCJ0b3AiKSxyPWQuY3NzKGEsImxlZnQiKTsoImFic29sdXRlIj09PWh8fCJmaXhlZCI9PT1oKSYmLTE8KHcrcikuaW5kZXhPZigiYXV0byIpPyhnPShlPW0ucG9zaXRpb24oKSkudG9wLGY9ZS5sZWZ0KTooZz1wYXJzZUZsb2F0KHcpfHwwLGY9cGFyc2VGbG9hdChyKXx8MCk7TShiKSYmKGI9Yi5jYWxsKGEsYyxkLmV4dGVuZCh7fSx0KSkpO251bGwhPWIudG9wJiYobC50b3A9Yi50b3AtdC50b3ArZyk7bnVsbCE9Yi5sZWZ0JiYobC5sZWZ0PWIubGVmdC10LmxlZnQrZik7InVzaW5nImluIGI\/Yi51c2luZy5jYWxsKGEsbCk6bS5jc3MobCl9fTtkLmZuLmV4dGVuZCh7b2Zmc2V0OmZ1bmN0aW9uKGEpe2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PQphP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGYpe2Qub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsZil9KTt2YXIgYixjLGU9dGhpc1swXTtyZXR1cm4gZT9lLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhiPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz1lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDpiLnRvcCtjLnBhZ2VZT2Zmc2V0LGxlZnQ6Yi5sZWZ0K2MucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYj10aGlzWzBdLGM9e3RvcDowLGxlZnQ6MH07aWYoImZpeGVkIj09PWQuY3NzKGIsInBvc2l0aW9uIikpdmFyIGU9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle2U9dGhpcy5vZmZzZXQoKTt2YXIgZj1iLm93bmVyRG9jdW1lbnQ7Zm9yKGE9Yi5vZmZzZXRQYXJlbnR8fGYuZG9jdW1lbnRFbGVtZW50O2EmJihhPT09Zi5ib2R5fHxhPT09Zi5kb2N1bWVudEVsZW1lbnQpJiYKInN0YXRpYyI9PT1kLmNzcyhhLCJwb3NpdGlvbiIpOylhPWEucGFyZW50Tm9kZTthJiZhIT09YiYmMT09PWEubm9kZVR5cGUmJigoYz1kKGEpLm9mZnNldCgpKS50b3ArPWQuY3NzKGEsImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1kLmNzcyhhLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSl9cmV0dXJue3RvcDplLnRvcC1jLnRvcC1kLmNzcyhiLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmUubGVmdC1jLmxlZnQtZC5jc3MoYiwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudDthJiYic3RhdGljIj09PWQuY3NzKGEsInBvc2l0aW9uIik7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF8fGpifSl9fSk7ZC5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9InBhZ2VZT2Zmc2V0Ij09PQpiO2QuZm5bYV09ZnVuY3Rpb24oZSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oZixnLGgpe3ZhciBtO2lmKGtiKGYpP209Zjo5PT09Zi5ub2RlVHlwZSYmKG09Zi5kZWZhdWx0Vmlldyksdm9pZCAwPT09aClyZXR1cm4gbT9tW2JdOmZbZ107bT9tLnNjcm9sbFRvKGM\/bS5wYWdlWE9mZnNldDpoLGM\/aDptLnBhZ2VZT2Zmc2V0KTpmW2ddPWh9LGEsZSxhcmd1bWVudHMubGVuZ3RoKX19KTtkLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2JdPVZiKE4ucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihjLGUpe2lmKGUpcmV0dXJuIGU9S2EoYyxiKSxiYy50ZXN0KGUpP2QoYykucG9zaXRpb24oKVtiXSsicHgiOmV9KX0pO2QuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OmIsIiI6Im91dGVyIithfSxmdW5jdGlvbihjLGUpe2QuZm5bZV09ZnVuY3Rpb24oZiwKZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGYpLG09Y3x8KCEwPT09Znx8ITA9PT1nPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihsLHQsdyl7dmFyIHI7cmV0dXJuIGtiKGwpPzA9PT1lLmluZGV4T2YoIm91dGVyIik\/bFsiaW5uZXIiK2FdOmwuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1sLm5vZGVUeXBlPyhyPWwuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGwuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGwuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT13P2QuY3NzKGwsdCxtKTpkLnN0eWxlKGwsdCx3LG0pfSxiLGg\/Zjp2b2lkIDAsaCl9fSl9KTtkLmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsCmIpe2QuZm5bYl09ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMub24oYixjKX19KTtkLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiB0aGlzLm9uKGIsYSxjLGUpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg\/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO2QuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSwKZnVuY3Rpb24oYSxiKXtkLmZuW2JdPWZ1bmN0aW9uKGMsZSl7cmV0dXJuIDA8YXJndW1lbnRzLmxlbmd0aD90aGlzLm9uKGIsbnVsbCxjLGUpOnRoaXMudHJpZ2dlcihiKX19KTt2YXIgR2Q9L15bXHNcdUZFRkZceEEwXSt8KFteXHNcdUZFRkZceEEwXSlbXHNcdUZFRkZceEEwXSskL2c7ZC5wcm94eT1mdW5jdGlvbihhLGIpe3ZhciBjLGUsZjtpZigic3RyaW5nIj09dHlwZW9mIGImJihjPWFbYl0sYj1hLGE9YyksTShhKSlyZXR1cm4gZT15YS5jYWxsKGFyZ3VtZW50cywyKSwoZj1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsZS5jb25jYXQoeWEuY2FsbChhcmd1bWVudHMpKSl9KS5ndWlkPWEuZ3VpZD1hLmd1aWR8fGQuZ3VpZCsrLGZ9O2QuaG9sZFJlYWR5PWZ1bmN0aW9uKGEpe2E\/ZC5yZWFkeVdhaXQrKzpkLnJlYWR5KCEwKX07ZC5pc0FycmF5PUFycmF5LmlzQXJyYXk7ZC5wYXJzZUpTT049SlNPTi5wYXJzZTtkLm5vZGVOYW1lPVg7ZC5pc0Z1bmN0aW9uPU07ZC5pc1dpbmRvdz0Ka2I7ZC5jYW1lbENhc2U9QmE7ZC50eXBlPVU7ZC5ub3c9RGF0ZS5ub3c7ZC5pc051bWVyaWM9ZnVuY3Rpb24oYSl7dmFyIGI9ZC50eXBlKGEpO3JldHVybigibnVtYmVyIj09PWJ8fCJzdHJpbmciPT09YikmJiFpc05hTihhLXBhcnNlRmxvYXQoYSkpfTtkLnRyaW09ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE\/IiI6KGErIiIpLnJlcGxhY2UoR2QsIiQxIil9OyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQmJmRlZmluZSgianF1ZXJ5IixbXSxmdW5jdGlvbigpe3JldHVybiBkfSk7dmFyIEhkPW4ualF1ZXJ5LElkPW4uJDtyZXR1cm4gZC5ub0NvbmZsaWN0PWZ1bmN0aW9uKGEpe3JldHVybiBuLiQ9PT1kJiYobi4kPUlkKSxhJiZuLmpRdWVyeT09PWQmJihuLmpRdWVyeT1IZCksZH0sInVuZGVmaW5lZCI9PXR5cGVvZiBkYSYmKG4ualF1ZXJ5PW4uJD1kKSxkfSk7dmFyIG1hdGNoZWQsYnJvd3NlcjsKalF1ZXJ5LnVhTWF0Y2g9ZnVuY3Rpb24obil7bj1uLnRvTG93ZXJDYXNlKCk7bj0vKGNocm9tZSlbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKG9wZXJhKSg\/Oi4qdmVyc2lvbnwpWyBcL10oW1x3Ll0rKS8uZXhlYyhuKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhlYyhuKXx8MD5uLmluZGV4T2YoImNvbXBhdGlibGUiKSYmLyhtb3ppbGxhKSg\/Oi4qPyBydjooW1x3Ll0rKXwpLy5leGVjKG4pfHxbXTtyZXR1cm57YnJvd3NlcjpuWzFdfHwiIix2ZXJzaW9uOm5bMl18fCIwIn19O21hdGNoZWQ9alF1ZXJ5LnVhTWF0Y2gobmF2aWdhdG9yLnVzZXJBZ2VudCk7YnJvd3Nlcj17fTttYXRjaGVkLmJyb3dzZXImJihicm93c2VyW21hdGNoZWQuYnJvd3Nlcl09ITAsYnJvd3Nlci52ZXJzaW9uPW1hdGNoZWQudmVyc2lvbik7YnJvd3Nlci5jaHJvbWU\/YnJvd3Nlci53ZWJraXQ9ITA6YnJvd3Nlci53ZWJraXQmJihicm93c2VyLnNhZmFyaT0hMCk7CmpRdWVyeS5icm93c2VyPWJyb3dzZXI7CihmdW5jdGlvbihuKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbihkYSl7cmV0dXJuIG4oZGEsd2luZG93KX0pOiJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9bihyZXF1aXJlKCJqcXVlcnkiKSx3aW5kb3cpOm4oalF1ZXJ5LHdpbmRvdyl9KShmdW5jdGlvbihuLGRhKXtmdW5jdGlvbiB3YSh1KXthOnt2YXIgeD0vXihcZCspXC4oXGQrKVwuKFxkKykvLEM9eC5leGVjKG4uZm4uanF1ZXJ5KXx8W107eD14LmV4ZWModSl8fFtdO2Zvcih1PTE7Mz49dTt1Kyspe2lmKCtDW3VdPit4W3VdKXtDPTE7YnJlYWsgYX1pZigrQ1t1XTwreFt1XSl7Qz0tMTticmVhayBhfX1DPTB9cmV0dXJuIDA8PUN9ZnVuY3Rpb24gVSh1LHgpe3ZhciBDPWRhLmNvbnNvbGU7IW4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKHUpfHxuLm1pZ3JhdGVEZWR1cGxpY2F0ZVdhcm5pbmdzJiZtYlt4XXx8CihtYlt4XT0hMCxuLm1pZ3JhdGVXYXJuaW5ncy5wdXNoKHgrIiBbIit1KyJdIiksQyYmQy53YXJuJiYhbi5taWdyYXRlTXV0ZSYmKEMud2FybigiSlFNSUdSQVRFOiAiK3gpLG4ubWlncmF0ZVRyYWNlJiZDLnRyYWNlJiZDLnRyYWNlKCkpKX1mdW5jdGlvbiBlYih1LHgsQyxILFApe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LHgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1UoSCxQKTtyZXR1cm4gQ30sc2V0OmZ1bmN0aW9uKGVhKXtVKEgsUCk7Qz1lYX19KX1mdW5jdGlvbiBYKHUseCxDLEgsUCl7dmFyIGVhLFFhPXVbeF07dVt4XT1mdW5jdGlvbigpe1AmJlUoSCxQKTtlYT1uLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZChIKT9DOlFhfHxuLm5vb3A7cmV0dXJuIGVhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gYmEodSx4LEMsSCxQKXtpZighUCl0aHJvdyBFcnJvcigiTm8gd2FybmluZyBtZXNzYWdlIHByb3ZpZGVkIik7cmV0dXJuIFgodSwKeCxDLEgsUCl9ZnVuY3Rpb24gamEodSx4LEMsSCl7cmV0dXJuIFgodSx4LEMsSCl9ZnVuY3Rpb24gbGIodSl7cmV0dXJuIHUucmVwbGFjZSgvLShbYS16XSkvZyxmdW5jdGlvbih4LEMpe3JldHVybiBDLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBZYSh1KXtyZXR1cm4gcGIudGVzdCh1KSYmU2IudGVzdCh1WzBdLnRvVXBwZXJDYXNlKCkrdS5zbGljZSgxKSl9bi5taWdyYXRlVmVyc2lvbj0iMy40LjEiO3ZhciBaYT1PYmplY3QuY3JlYXRlKG51bGwpO24ubWlncmF0ZURpc2FibGVQYXRjaGVzPWZ1bmN0aW9uKCl7dmFyIHU7Zm9yKHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKVphW2FyZ3VtZW50c1t1XV09ITB9O24ubWlncmF0ZUVuYWJsZVBhdGNoZXM9ZnVuY3Rpb24oKXt2YXIgdTtmb3IodT0wO3U8YXJndW1lbnRzLmxlbmd0aDt1KyspZGVsZXRlIFphW2FyZ3VtZW50c1t1XV19O24ubWlncmF0ZUlzUGF0Y2hFbmFibGVkPWZ1bmN0aW9uKHUpe3JldHVybiFaYVt1XX07ZGEuY29uc29sZSYmCmRhLmNvbnNvbGUubG9nJiYobiYmd2EoIjMuMC4wIikmJiF3YSgiNS4wLjAiKXx8ZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogalF1ZXJ5IDMueC00LnggUkVRVUlSRUQiKSxuLm1pZ3JhdGVXYXJuaW5ncyYmZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogTWlncmF0ZSBwbHVnaW4gbG9hZGVkIG11bHRpcGxlIHRpbWVzIiksZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogTWlncmF0ZSBpcyBpbnN0YWxsZWQiKyhuLm1pZ3JhdGVNdXRlPyIiOiIgd2l0aCBsb2dnaW5nIGFjdGl2ZSIpKyIsIHZlcnNpb24gIituLm1pZ3JhdGVWZXJzaW9uKSk7dmFyIG1iPXt9O24ubWlncmF0ZURlZHVwbGljYXRlV2FybmluZ3M9ITA7bi5taWdyYXRlV2FybmluZ3M9W107dm9pZCAwPT09bi5taWdyYXRlVHJhY2UmJihuLm1pZ3JhdGVUcmFjZT0hMCk7bi5taWdyYXRlUmVzZXQ9ZnVuY3Rpb24oKXttYj17fTtuLm1pZ3JhdGVXYXJuaW5ncy5sZW5ndGg9MH07IkJhY2tDb21wYXQiPT09ZGEuZG9jdW1lbnQuY29tcGF0TW9kZSYmClUoInF1aXJrcyIsImpRdWVyeSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFF1aXJrcyBNb2RlIik7dmFyIE9hLE5iPXt9LEJhPW4uZm4uaW5pdCxKYT1uLmZpbmQsT2I9L1xbKFxzKlstXHddK1xzKikoW358XiQqXT89KVxzKihbLVx3I10qPyNbLVx3I10qKVxzKlxdLyxQYj0vXFsoXHMqWy1cd10rXHMqKShbfnxeJCpdPz0pXHMqKFstXHcjXSo\/I1stXHcjXSopXHMqXF0vZywkYT0vXltcc1x1RkVGRlx4QTBdK3woW15cc1x1RkVGRlx4QTBdKVtcc1x1RkVGRlx4QTBdKyQvZztqYShuLmZuLCJpbml0IixmdW5jdGlvbih1KXt2YXIgeD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO24ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKCJzZWxlY3Rvci1lbXB0eS1pZCIpJiYic3RyaW5nIj09PXR5cGVvZiB1JiYiIyI9PT11JiYoVSgic2VsZWN0b3ItZW1wdHktaWQiLCJqUXVlcnkoICcjJyApIGlzIG5vdCBhIHZhbGlkIHNlbGVjdG9yIikseFswXT1bXSk7cmV0dXJuIEJhLmFwcGx5KHRoaXMsCngpfSwic2VsZWN0b3ItZW1wdHktaWQiKTtuLmZuLmluaXQucHJvdG90eXBlPW4uZm47amEobiwiZmluZCIsZnVuY3Rpb24odSl7dmFyIHg9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZigic3RyaW5nIj09PXR5cGVvZiB1JiZPYi50ZXN0KHUpKXRyeXtkYS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHUpfWNhdGNoKEMpe3U9dS5yZXBsYWNlKFBiLGZ1bmN0aW9uKEgsUCxlYSxRYSl7cmV0dXJuIlsiK1ArZWErJyInK1FhKyciXSd9KTt0cnl7ZGEuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1KSxVKCJzZWxlY3Rvci1oYXNoIiwiQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggJyMnIG11c3QgYmUgcXVvdGVkOiAiK3hbMF0pLHhbMF09dX1jYXRjaChIKXtVKCJzZWxlY3Rvci1oYXNoIiwiQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggJyMnIHdhcyBub3QgZml4ZWQ6ICIreFswXSl9fXJldHVybiBKYS5hcHBseSh0aGlzLHgpfSwic2VsZWN0b3ItaGFzaCIpO2ZvcihPYSBpbiBKYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSmEsCk9hKSYmKG4uZmluZFtPYV09SmFbT2FdKTtiYShuLmZuLCJzaXplIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sInNpemUiLCJqUXVlcnkuZm4uc2l6ZSgpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ7IHVzZSB0aGUgLmxlbmd0aCBwcm9wZXJ0eSIpO2JhKG4sInBhcnNlSlNPTiIsZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZS5hcHBseShudWxsLGFyZ3VtZW50cyl9LCJwYXJzZUpTT04iLCJqUXVlcnkucGFyc2VKU09OIGlzIGRlcHJlY2F0ZWQ7IHVzZSBKU09OLnBhcnNlIik7YmEobiwiaG9sZFJlYWR5IixuLmhvbGRSZWFkeSwiaG9sZFJlYWR5IiwialF1ZXJ5LmhvbGRSZWFkeSBpcyBkZXByZWNhdGVkIik7YmEobiwidW5pcXVlIixuLnVuaXF1ZVNvcnQsInVuaXF1ZSIsImpRdWVyeS51bmlxdWUgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS51bmlxdWVTb3J0Iik7ZWIobi5leHByLCJmaWx0ZXJzIixuLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByLmZpbHRlcnMgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKTsKZWIobi5leHByLCI6IixuLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByWyc6J10gaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKTt3YSgiMy4xLjEiKSYmYmEobiwidHJpbSIsZnVuY3Rpb24odSl7cmV0dXJuIG51bGw9PXU\/IiI6KHUrIiIpLnJlcGxhY2UoJGEsIiQxIil9LCJ0cmltIiwialF1ZXJ5LnRyaW0gaXMgZGVwcmVjYXRlZDsgdXNlIFN0cmluZy5wcm90b3R5cGUudHJpbSIpO3dhKCIzLjIuMCIpJiYoYmEobiwibm9kZU5hbWUiLGZ1bmN0aW9uKHUseCl7cmV0dXJuIHUubm9kZU5hbWUmJnUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXgudG9Mb3dlckNhc2UoKX0sIm5vZGVOYW1lIiwialF1ZXJ5Lm5vZGVOYW1lIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc0FycmF5IixBcnJheS5pc0FycmF5LCJpc0FycmF5IiwialF1ZXJ5LmlzQXJyYXkgaXMgZGVwcmVjYXRlZDsgdXNlIEFycmF5LmlzQXJyYXkiKSk7d2EoIjMuMy4wIikmJgooYmEobiwiaXNOdW1lcmljIixmdW5jdGlvbih1KXt2YXIgeD10eXBlb2YgdTtyZXR1cm4oIm51bWJlciI9PT14fHwic3RyaW5nIj09PXgpJiYhaXNOYU4odS1wYXJzZUZsb2F0KHUpKX0sImlzTnVtZXJpYyIsImpRdWVyeS5pc051bWVyaWMoKSBpcyBkZXByZWNhdGVkIiksbi5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbih1LHgpe05iWyJbb2JqZWN0ICIreCsiXSJdPXgudG9Mb3dlckNhc2UoKX0pLGJhKG4sInR5cGUiLGZ1bmN0aW9uKHUpe3JldHVybiBudWxsPT11P3UrIiI6Im9iamVjdCI9PT10eXBlb2YgdXx8ImZ1bmN0aW9uIj09PXR5cGVvZiB1P05iW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh1KV18fCJvYmplY3QiOnR5cGVvZiB1fSwidHlwZSIsImpRdWVyeS50eXBlIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc0Z1bmN0aW9uIixmdW5jdGlvbih1KXtyZXR1cm4iZnVuY3Rpb24iPT09CnR5cGVvZiB1fSwiaXNGdW5jdGlvbiIsImpRdWVyeS5pc0Z1bmN0aW9uKCkgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzV2luZG93IixmdW5jdGlvbih1KXtyZXR1cm4gbnVsbCE9dSYmdT09PXUud2luZG93fSwiaXNXaW5kb3ciLCJqUXVlcnkuaXNXaW5kb3coKSBpcyBkZXByZWNhdGVkIikpO2lmKG4uYWpheCl7dmFyIHNhPW4uYWpheCxuYj0vKD0pXD8oPz0mfCQpfFw\/XD8vO2phKG4sImFqYXgiLGZ1bmN0aW9uKCl7dmFyIHU9c2EuYXBwbHkodGhpcyxhcmd1bWVudHMpO3UucHJvbWlzZSYmKGJhKHUsInN1Y2Nlc3MiLHUuZG9uZSwianFYSFItbWV0aG9kcyIsImpRWEhSLnN1Y2Nlc3MgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpLGJhKHUsImVycm9yIix1LmZhaWwsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5lcnJvciBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIiksYmEodSwiY29tcGxldGUiLHUuYWx3YXlzLCJqcVhIUi1tZXRob2RzIiwialFYSFIuY29tcGxldGUgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpKTsKcmV0dXJuIHV9LCJqcVhIUi1tZXRob2RzIik7d2EoIjQuMC4wIil8fG4uYWpheFByZWZpbHRlcigiK2pzb24iLGZ1bmN0aW9uKHUpeyExIT09dS5qc29ucCYmKG5iLnRlc3QodS51cmwpfHwic3RyaW5nIj09PXR5cGVvZiB1LmRhdGEmJjA9PT0odS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZuYi50ZXN0KHUuZGF0YSkpJiZVKCJqc29ucC1wcm9tb3Rpb24iLCJKU09OLXRvLUpTT05QIGF1dG8tcHJvbW90aW9uIGlzIGRlcHJlY2F0ZWQiKX0pfXZhciBSYj1uLmZuLnJlbW92ZUF0dHIsYWI9bi5mbi50b2dnbGVDbGFzcyxiYj0vXFMrL2c7amEobi5mbiwicmVtb3ZlQXR0ciIsZnVuY3Rpb24odSl7dmFyIHg9dGhpcyxDPSExO24uZWFjaCh1Lm1hdGNoKGJiKSxmdW5jdGlvbihILFApe24uZXhwci5tYXRjaC5ib29sLnRlc3QoUCkmJnguZWFjaChmdW5jdGlvbigpe2lmKCExIT09bih0aGlzKS5wcm9wKFApKXJldHVybiBDPQohMCwhMX0pO0MmJihVKCJyZW1vdmVBdHRyLWJvb2wiLCJqUXVlcnkuZm4ucmVtb3ZlQXR0ciBubyBsb25nZXIgc2V0cyBib29sZWFuIHByb3BlcnRpZXM6ICIrUCkseC5wcm9wKFAsITEpKX0pO3JldHVybiBSYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJyZW1vdmVBdHRyLWJvb2wiKTtqYShuLmZuLCJ0b2dnbGVDbGFzcyIsZnVuY3Rpb24odSl7aWYodm9pZCAwIT09dSYmImJvb2xlYW4iIT09dHlwZW9mIHUpcmV0dXJuIGFiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtVKCJ0b2dnbGVDbGFzcy1ib29sIiwialF1ZXJ5LmZuLnRvZ2dsZUNsYXNzKCBib29sZWFuICkgaXMgZGVwcmVjYXRlZCIpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgeD10aGlzLmdldEF0dHJpYnV0ZSYmdGhpcy5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiO3gmJm4uZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix4KTt0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIix4fHwKITE9PT11PyIiOm4uZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKX0pfSwidG9nZ2xlQ2xhc3MtYm9vbCIpO3ZhciBmYj0hMSxwYj0vXlthLXpdLyxTYj0vXig\/OkJvcmRlcig\/OlRvcHxSaWdodHxCb3R0b218TGVmdCk\/KD86V2lkdGh8KXwoPzpNYXJnaW58UGFkZGluZyk\/KD86VG9wfFJpZ2h0fEJvdHRvbXxMZWZ0KT98KD86TWlufE1heCk\/KD86V2lkdGh8SGVpZ2h0KSkkLztuLnN3YXAmJm4uZWFjaChbImhlaWdodCIsIndpZHRoIiwicmVsaWFibGVNYXJnaW5SaWdodCJdLGZ1bmN0aW9uKHUseCl7dmFyIEM9bi5jc3NIb29rc1t4XSYmbi5jc3NIb29rc1t4XS5nZXQ7QyYmKG4uY3NzSG9va3NbeF0uZ2V0PWZ1bmN0aW9uKCl7ZmI9ITA7dmFyIEg9Qy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZmI9ITE7cmV0dXJuIEh9KX0pO2phKG4sInN3YXAiLGZ1bmN0aW9uKHUseCxDLEgpe3ZhciBQLGVhPXt9O2ZifHxVKCJzd2FwIiwialF1ZXJ5LnN3YXAoKSBpcyB1bmRvY3VtZW50ZWQgYW5kIGRlcHJlY2F0ZWQiKTsKZm9yKFAgaW4geCllYVtQXT11LnN0eWxlW1BdLHUuc3R5bGVbUF09eFtQXTtDPUMuYXBwbHkodSxIfHxbXSk7Zm9yKFAgaW4geCl1LnN0eWxlW1BdPWVhW1BdO3JldHVybiBDfSwic3dhcCIpO3dhKCIzLjQuMCIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eSYmKG4uY3NzUHJvcHM9bmV3IFByb3h5KG4uY3NzUHJvcHN8fHt9LHtzZXQ6ZnVuY3Rpb24oKXtVKCJjc3NQcm9wcyIsImpRdWVyeS5jc3NQcm9wcyBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3Quc2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSk7aWYod2EoIjQuMC4wIikpe3ZhciBxYj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLApncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfTtuLmNzc051bWJlcj0idW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eT9uZXcgUHJveHkocWIse2dldDpmdW5jdGlvbigpe1UoImNzcy1udW1iZXIiLCJqUXVlcnkuY3NzTnVtYmVyIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5nZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxzZXQ6ZnVuY3Rpb24oKXtVKCJjc3MtbnVtYmVyIiwialF1ZXJ5LmNzc051bWJlciBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3Quc2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTpxYn1lbHNlIHFiPW4uY3NzTnVtYmVyO3ZhciAkYj1uLmZuLmNzcztqYShuLmZuLCJjc3MiLGZ1bmN0aW9uKHUseCl7dmFyIEM9dGhpcztpZih1JiYib2JqZWN0Ij09PXR5cGVvZiB1JiYhQXJyYXkuaXNBcnJheSh1KSlyZXR1cm4gbi5lYWNoKHUsZnVuY3Rpb24oUCwKZWEpe24uZm4uY3NzLmNhbGwoQyxQLGVhKX0pLHRoaXM7aWYoIm51bWJlciI9PT10eXBlb2YgeCl7dmFyIEg9bGIodSk7WWEoSCl8fHFiW0hdfHxVKCJjc3MtbnVtYmVyIiwnTnVtYmVyLXR5cGVkIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBmb3IgalF1ZXJ5LmZuLmNzcyggIicrdSsnIiwgdmFsdWUgKScpfXJldHVybiAkYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJjc3MtbnVtYmVyIik7dmFyIGdiPW4uZGF0YTtqYShuLCJkYXRhIixmdW5jdGlvbih1LHgsQyl7dmFyIEg7aWYoeCYmIm9iamVjdCI9PT10eXBlb2YgeCYmMj09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBQPW4uaGFzRGF0YSh1KSYmZ2IuY2FsbCh0aGlzLHUpLGVhPXt9O2ZvcihIIGluIHgpSCE9PWxiKEgpPyhVKCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK0gpLFBbSF09eFtIXSk6ZWFbSF09eFtIXTtnYi5jYWxsKHRoaXMsdSxlYSk7cmV0dXJuIHh9cmV0dXJuIHgmJgoic3RyaW5nIj09PXR5cGVvZiB4JiZ4IT09bGIoeCkmJihQPW4uaGFzRGF0YSh1KSYmZ2IuY2FsbCh0aGlzLHUpKSYmeCBpbiBQPyhVKCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK3gpLDI8YXJndW1lbnRzLmxlbmd0aCYmKFBbeF09QyksUFt4XSk6Z2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwiZGF0YS1jYW1lbENhc2UiKTtpZihuLmZ4KXt2YXIgY2I9bi5Ud2Vlbi5wcm90b3R5cGUucnVuLFRiPWZ1bmN0aW9uKHUpe3JldHVybiB1fTtqYShuLlR3ZWVuLnByb3RvdHlwZSwicnVuIixmdW5jdGlvbigpezE8bi5lYXNpbmdbdGhpcy5lYXNpbmddLmxlbmd0aCYmKFUoImVhc2luZy1vbmUtYXJnIiwiJ2pRdWVyeS5lYXNpbmcuIit0aGlzLmVhc2luZy50b1N0cmluZygpKyInIHNob3VsZCB1c2Ugb25seSBvbmUgYXJndW1lbnQiKSxuLmVhc2luZ1t0aGlzLmVhc2luZ109VGIpO2NiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sCiJlYXNpbmctb25lLWFyZyIpO3ZhciBLYT1uLmZ4LmludGVydmFsO2RhLnJlcXVlc3RBbmltYXRpb25GcmFtZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZngsImludGVydmFsIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7ZGEuZG9jdW1lbnQuaGlkZGVufHxVKCJmeC1pbnRlcnZhbCIsImpRdWVyeS5meC5pbnRlcnZhbCBpcyBkZXByZWNhdGVkIik7cmV0dXJuIG4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKCJmeC1pbnRlcnZhbCIpP3ZvaWQgMD09PUthPzEzOkthOkthfSxzZXQ6ZnVuY3Rpb24odSl7VSgiZngtaW50ZXJ2YWwiLCJqUXVlcnkuZnguaW50ZXJ2YWwgaXMgZGVwcmVjYXRlZCIpO0thPXV9fSl9dmFyIFZiPW4uZm4ubG9hZCxBYj1uLmV2ZW50LmFkZCxXYj1uLmV2ZW50LmZpeDtuLmV2ZW50LnByb3BzPVtdO24uZXZlbnQuZml4SG9va3M9e307ZWIobi5ldmVudC5wcm9wcywiY29uY2F0IixuLmV2ZW50LnByb3BzLmNvbmNhdCwiZXZlbnQtb2xkLXBhdGNoIiwKImpRdWVyeS5ldmVudC5wcm9wcy5jb25jYXQoKSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIik7amEobi5ldmVudCwiZml4IixmdW5jdGlvbih1KXt2YXIgeD11LnR5cGUsQz10aGlzLmZpeEhvb2tzW3hdLEg9bi5ldmVudC5wcm9wcztpZihILmxlbmd0aClmb3IoVSgiZXZlbnQtb2xkLXBhdGNoIiwialF1ZXJ5LmV2ZW50LnByb3BzIGFyZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkOiAiK0guam9pbigpKTtILmxlbmd0aDspbi5ldmVudC5hZGRQcm9wKEgucG9wKCkpO2lmKEMmJiFDLl9taWdyYXRlZF8mJihDLl9taWdyYXRlZF89ITAsVSgiZXZlbnQtb2xkLXBhdGNoIiwialF1ZXJ5LmV2ZW50LmZpeEhvb2tzIGFyZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkOiAiK3gpLChIPUMucHJvcHMpJiZILmxlbmd0aCkpZm9yKDtILmxlbmd0aDspbi5ldmVudC5hZGRQcm9wKEgucG9wKCkpO3g9V2IuY2FsbCh0aGlzLHUpO3JldHVybiBDJiZDLmZpbHRlcj9DLmZpbHRlcih4LHUpOnh9LCJldmVudC1vbGQtcGF0Y2giKTsKamEobi5ldmVudCwiYWRkIixmdW5jdGlvbih1LHgpe3U9PT1kYSYmImxvYWQiPT09eCYmImNvbXBsZXRlIj09PWRhLmRvY3VtZW50LnJlYWR5U3RhdGUmJlUoImxvYWQtYWZ0ZXItZXZlbnQiLCJqUXVlcnkod2luZG93KS5vbignbG9hZCcuLi4pIGNhbGxlZCBhZnRlciBsb2FkIGV2ZW50IG9jY3VycmVkIik7cmV0dXJuIEFiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImxvYWQtYWZ0ZXItZXZlbnQiKTtuLmVhY2goWyJsb2FkIiwidW5sb2FkIiwiZXJyb3IiXSxmdW5jdGlvbih1LHgpe2phKG4uZm4seCxmdW5jdGlvbigpe3ZhciBDPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtpZigibG9hZCI9PT14JiYic3RyaW5nIj09PXR5cGVvZiBDWzBdKXJldHVybiBWYi5hcHBseSh0aGlzLEMpO1UoInNob3J0aGFuZC1yZW1vdmVkLXYzIiwialF1ZXJ5LmZuLiIreCsiKCkgaXMgZGVwcmVjYXRlZCIpO0Muc3BsaWNlKDAsMCx4KTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLm9uLmFwcGx5KHRoaXMsCkMpO3RoaXMudHJpZ2dlckhhbmRsZXIuYXBwbHkodGhpcyxDKTtyZXR1cm4gdGhpc30sInNob3J0aGFuZC1yZW1vdmVkLXYzIil9KTtuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCByZXNpemUgc2Nyb2xsIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24odSx4KXtiYShuLmZuLHgsZnVuY3Rpb24oQyxIKXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24oeCxudWxsLEMsSCk6dGhpcy50cmlnZ2VyKHgpfSwic2hvcnRoYW5kLWRlcHJlY2F0ZWQtdjMiLCJqUXVlcnkuZm4uIit4KyIoKSBldmVudCBzaG9ydGhhbmQgaXMgZGVwcmVjYXRlZCIpfSk7bihmdW5jdGlvbigpe24oZGEuZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfSk7Cm4uZXZlbnQuc3BlY2lhbC5yZWFkeT17c2V0dXA6ZnVuY3Rpb24oKXt0aGlzPT09ZGEuZG9jdW1lbnQmJlUoInJlYWR5LWV2ZW50IiwiJ3JlYWR5JyBldmVudCBpcyBkZXByZWNhdGVkIil9fTtiYShuLmZuLCJiaW5kIixmdW5jdGlvbih1LHgsQyl7cmV0dXJuIHRoaXMub24odSxudWxsLHgsQyl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi5iaW5kKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sInVuYmluZCIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdGhpcy5vZmYodSxudWxsLHgpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4udW5iaW5kKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sImRlbGVnYXRlIixmdW5jdGlvbih1LHgsQyxIKXtyZXR1cm4gdGhpcy5vbih4LHUsQyxIKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmRlbGVnYXRlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sInVuZGVsZWdhdGUiLGZ1bmN0aW9uKHUseCxDKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg\/CnRoaXMub2ZmKHUsIioqIik6dGhpcy5vZmYoeCx1fHwiKioiLEMpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4udW5kZWxlZ2F0ZSgpIGlzIGRlcHJlY2F0ZWQiKTtiYShuLmZuLCJob3ZlciIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdGhpcy5vbigibW91c2VlbnRlciIsdSkub24oIm1vdXNlbGVhdmUiLHh8fHUpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uaG92ZXIoKSBpcyBkZXByZWNhdGVkIik7dmFyIHJiPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKVtePl0qKVwvPi9naSxCYj1mdW5jdGlvbih1KXt2YXIgeD1kYS5kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3guYm9keS5pbm5lckhUTUw9dTtyZXR1cm4geC5ib2R5JiZ4LmJvZHkuaW5uZXJIVE1MfTtuLlVOU0FGRV9yZXN0b3JlTGVnYWN5SHRtbFByZWZpbHRlcj1mdW5jdGlvbigpe24ubWlncmF0ZUVuYWJsZVBhdGNoZXMoInNlbGYtY2xvc2VkLXRhZ3MiKX07CmphKG4sImh0bWxQcmVmaWx0ZXIiLGZ1bmN0aW9uKHUpe3ZhciB4PXUucmVwbGFjZShyYiwiPCQxPjwvJDI+Iik7eCE9PXUmJkJiKHUpIT09QmIoeCkmJlUoInNlbGYtY2xvc2VkLXRhZ3MiLCJIVE1MIHRhZ3MgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgYW5kIGNsb3NlZDogIit1KTtyZXR1cm4gdS5yZXBsYWNlKHJiLCI8JDE+PC8kMj4iKX0sInNlbGYtY2xvc2VkLXRhZ3MiKTtuLm1pZ3JhdGVEaXNhYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpO3ZhciB6YT1uLmZuLm9mZnNldDtqYShuLmZuLCJvZmZzZXQiLGZ1bmN0aW9uKCl7dmFyIHU9dGhpc1swXTtyZXR1cm4hdXx8dS5ub2RlVHlwZSYmdS5nZXRCb3VuZGluZ0NsaWVudFJlY3Q\/emEuYXBwbHkodGhpcyxhcmd1bWVudHMpOihVKCJvZmZzZXQtdmFsaWQtZWxlbSIsImpRdWVyeS5mbi5vZmZzZXQoKSByZXF1aXJlcyBhIHZhbGlkIERPTSBlbGVtZW50IiksYXJndW1lbnRzLmxlbmd0aD90aGlzOnZvaWQgMCl9LCJvZmZzZXQtdmFsaWQtZWxlbSIpOwppZihuLmFqYXgpe3ZhciBDYj1uLnBhcmFtO2phKG4sInBhcmFtIixmdW5jdGlvbih1LHgpe3ZhciBDPW4uYWpheFNldHRpbmdzJiZuLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDt2b2lkIDA9PT14JiZDJiYoVSgicGFyYW0tYWpheC10cmFkaXRpb25hbCIsImpRdWVyeS5wYXJhbSgpIG5vIGxvbmdlciB1c2VzIGpRdWVyeS5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwiKSx4PUMpO3JldHVybiBDYi5jYWxsKHRoaXMsdSx4KX0sInBhcmFtLWFqYXgtdHJhZGl0aW9uYWwiKX1iYShuLmZuLCJhbmRTZWxmIixuLmZuLmFkZEJhY2ssImFuZFNlbGYiLCJqUXVlcnkuZm4uYW5kU2VsZigpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQsIHVzZSBqUXVlcnkuZm4uYWRkQmFjaygpIik7aWYobi5EZWZlcnJlZCl7dmFyIERiPW4uRGVmZXJyZWQsdGI9W1sicmVzb2x2ZSIsImRvbmUiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLApbInJlamVjdCIsImZhaWwiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKSxuLkNhbGxiYWNrcygibWVtb3J5IildXTtqYShuLCJEZWZlcnJlZCIsZnVuY3Rpb24odSl7ZnVuY3Rpb24geCgpe3ZhciBQPWFyZ3VtZW50cztyZXR1cm4gbi5EZWZlcnJlZChmdW5jdGlvbihlYSl7bi5lYWNoKHRiLGZ1bmN0aW9uKFFhLEViKXt2YXIgaGI9ImZ1bmN0aW9uIj09PXR5cGVvZiBQW1FhXSYmUFtRYV07Q1tFYlsxXV0oZnVuY3Rpb24oKXt2YXIgb2E9aGImJmhiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihvYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBvYS5wcm9taXNlKW9hLnByb21pc2UoKS5kb25lKGVhLnJlc29sdmUpLmZhaWwoZWEucmVqZWN0KS5wcm9ncmVzcyhlYS5ub3RpZnkpO2Vsc2UgZWFbRWJbMF0rIldpdGgiXSh0aGlzPT09SD9lYS5wcm9taXNlKCk6CnRoaXMsaGI\/W29hXTphcmd1bWVudHMpfSl9KTtQPW51bGx9KS5wcm9taXNlKCl9dmFyIEM9RGIoKSxIPUMucHJvbWlzZSgpO2JhKEMsInBpcGUiLHgsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKEgsInBpcGUiLHgsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpO3UmJnUuY2FsbChDLEMpO3JldHVybiBDfSwiZGVmZXJyZWQtcGlwZSIpO24uRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1EYi5leGNlcHRpb25Ib29rfXJldHVybiBufSk7Ci8qKiAvanMvanF1ZXJ5LmNvb2tpZS5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnljb29raWVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjI4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnljb29raWVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjA5IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjMtMDktMDYgMTQ6MzA6MDYiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGgsbCxyKXtmdW5jdGlvbiB0KGIpe3JldHVybiBifWZ1bmN0aW9uIHUoYil7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKG0sIiAiKSl9Y2F0Y2goYyl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodW5lc2NhcGUoYikucmVwbGFjZShtLCIgIikpfWNhdGNoKGEpe3JldHVybiBjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coYS5tZXNzYWdlKSxifX19ZnVuY3Rpb24gbihiLGMsYSxlLGssZil7InVuZGVmaW5lZCI9PT10eXBlb2YgZiYmKGY9NSk7InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj9mJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bihiLGMsYSxlLGssZi0xKX0sMUUzKTp3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhiLGMsYSxlLGspfXZhciBtPS9cKy9nLGc9aC5jb29raWU9ZnVuY3Rpb24oYixjLGEpe2lmKGMhPT1yKXJldHVybiBDb29raWVzLmlzQ29va2llQWxsb3dlZChiLGZ1bmN0aW9uKGQpe2RlYnVnKCJDb29raWU6ICIsCmIsZCk7YT1oLmV4dGVuZCh7fSxnLmRlZmF1bHRzLGEpO2lmKCFkKXJldHVybiBDb29raWVzLnJlbW92ZShiLGEucGF0aCxhLmRvbWFpbiksITE7bnVsbD09PWMmJihhLmV4cGlyZXM9LTEpOyJudW1iZXIiPT09dHlwZW9mIGEuZXhwaXJlc0luTWludXRlcyYmKGEuZXhwaXJlcz1hLmV4cGlyZXNJbk1pbnV0ZXMvMTQ0MCk7aWYoIm51bWJlciI9PT10eXBlb2YgYS5leHBpcmVzKXtkPWEuZXhwaXJlczt2YXIgcD1hLmV4cGlyZXM9bmV3IERhdGU7cC5zZXRUaW1lKCtwKzg2NEU1KmQpfWQ9bmV3IERhdGU7ZC5zZXRGdWxsWWVhcihkLmdldEZ1bGxZZWFyKCkrMSk7YS5leHBpcmVzPmQmJihhLmV4cGlyZXM9ZCk7Yz1nLmpzb24\/SlNPTi5zdHJpbmdpZnkoYyk6U3RyaW5nKGMpO24oYixjLGEuZXhwaXJlcyxhLnBhdGgsYS5kb21haW4pO3JldHVybiBsLmNvb2tpZT1bZW5jb2RlVVJJQ29tcG9uZW50KGIpLCI9IixnLnJhdz9jOmVuY29kZVVSSUNvbXBvbmVudChjKSxhLmV4cGlyZXM\/IjsgZXhwaXJlcz0iKwphLmV4cGlyZXMudG9VVENTdHJpbmcoKToiIixhLnBhdGg\/IjsgcGF0aD0iK2EucGF0aDoiIixhLmRvbWFpbj8iOyBkb21haW49IithLmRvbWFpbjoiIixhLnNlY3VyZT8iOyBzZWN1cmUiOiIiXS5qb2luKCIiKX0pO2Zvcih2YXIgZT1nLnJhdz90OnUsaz1sLmNvb2tpZS5zcGxpdCgiOyAiKSxmPTAsdj1rLmxlbmd0aDtmPHY7ZisrKXt2YXIgcT1rW2ZdLnNwbGl0KCI9Iik7aWYoZShxLnNoaWZ0KCkpPT09YilyZXR1cm4gZT1lKHEuam9pbigiPSIpKSxnLmpzb24\/SlNPTi5wYXJzZShlKTplfXJldHVybiBudWxsfTtnLmRlZmF1bHRzPXt9O2gucmVtb3ZlQ29va2llPWZ1bmN0aW9uKGIsYyl7cmV0dXJuIG51bGwhPT1oLmNvb2tpZShiKT8oaC5jb29raWUoYixudWxsLGMpLCEwKTohMX19KShqUXVlcnksZG9jdW1lbnQpOwovKiogL2pzL3ZhbmlsbGFqcy9jb29raWVzLmNvbnNlbnQuanMgKiovCnZhciBfX19kMmNfY29va2llc2NvbnNlbnRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjEzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19jb29raWVzY29uc2VudGpzX2Nfb249IjIwMjUtMDEtMjIgMTA6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7d2luZG93LkNvb2tpZUNvbnNlbnQ9e0NBVEVHT1JZSURfRVNTRU5USUFMOjIsX2NtcEludGVydmFsSUQ6bnVsbCxfY3VycmVudFZlbmRvcjpudWxsLF9jb29raWVzOm51bGwsX2NhdGVnb3JpZXM6bnVsbCxfcmVnaXN0ZXJlZFJlcXVlc3RzOltdLGluaXQ6ZnVuY3Rpb24oKXtDb29raWVDb25zZW50Ll9sb2FkSlNPTihudWxsKTtDb29raWVDb25zZW50Ll9jbXBJbnRlcnZhbElEPXNldEludGVydmFsKGZ1bmN0aW9uKCl7Q29va2llQ29uc2VudC5saXN0ZW5Gb3JPbmVUcnVzdCgpfSwxRTMpO3ZhciBiPUNvb2tpZUNvbnNlbnQuZ2V0Q29uc2VudCgpO2xldCBhPW51bGw9PWJ8fC0xPGIuaW5kZXhPZigiQzAwMDIiKT8iZ3JhbnRlZCI6ImRlbmllZCI7Yj1udWxsPT1ifHwtMTxiLmluZGV4T2YoIkMwMDA0Iik\/ImdyYW50ZWQiOiJkZW5pZWQiO2d0YWcoImNvbnNlbnQiLCJkZWZhdWx0Iix7YWRfc3RvcmFnZTpiLGFuYWx5dGljc19zdG9yYWdlOmF9KTsidW5kZWZpbmVkIiE9PQp0eXBlb2YgZmJxJiZmYnEoImNvbnNlbnQiLCJyZXZva2UiKX0sbGlzdGVuRm9yT25lVHJ1c3Q6ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBPbmVUcnVzdCl7Y29uc29sZS5sb2coIkNvb2tpZUNvbnNlbnQubGlzdGVuRm9yT25lVHJ1c3QoKSIpO0Nvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3I9Ik9uZVRydXN0IjtjbGVhckludGVydmFsKENvb2tpZUNvbnNlbnQuX2NtcEludGVydmFsSUQpO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNvbmV0cnVzdC1jbG9zZS1idG4tY29udGFpbmVyIC5vbmV0cnVzdC1jbG9zZS1idG4taGFuZGxlciIpO2ImJmIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2xldCBhPXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxjPWxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIikuc2xpY2UoLTIpLmpvaW4oIi4iKTtkb2N1bWVudC5jb29raWU9Ik9wdGFub25BbGVydEJveENsb3NlZD07IFBhdGg9LzsgRXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDtkb21haW49IisKYSsiOyI7ZG9jdW1lbnQuY29va2llPSJPcHRhbm9uQWxlcnRCb3hDbG9zZWQ9OyBQYXRoPS87IEV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7ZG9tYWluPSIrYysiOyJ9LDFFMyl9KTtPbmVUcnVzdC5PbkNvbnNlbnRDaGFuZ2VkKGZ1bmN0aW9uKGEpe2lmKGEmJmEuZGV0YWlsKXt2YXIgYz1Db29raWVDb25zZW50Ll9nZXRDb25zZW50Q29va2llKCk7Q29va2llQ29uc2VudC5fdXBkYXRlQ29uc2VudENvb2tpZShKU09OLnN0cmluZ2lmeShhLmRldGFpbCkpOy0xPGEuZGV0YWlsLmluZGV4T2YoIkMwMDA0Iik\/Z3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FkX3N0b3JhZ2U6ImdyYW50ZWQifSk6Z3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FkX3N0b3JhZ2U6ImRlbmllZCJ9KTstMTxhLmRldGFpbC5pbmRleE9mKCJDMDAwMiIpP2d0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthbmFseXRpY3Nfc3RvcmFnZToiZ3JhbnRlZCJ9KTpndGFnKCJjb25zZW50IiwidXBkYXRlIiwKe2FuYWx5dGljc19zdG9yYWdlOiJkZW5pZWQifSk7InVuZGVmaW5lZCIhPT10eXBlb2YgZmJxJiYoLTE8YS5kZXRhaWwuaW5kZXhPZigiQzAwMDQiKT9mYnEoImNvbnNlbnQiLCJncmFudCIpOmZicSgiY29uc2VudCIsInJldm9rZSIpKTsxPT1hLmRldGFpbC5sZW5ndGgmJiJDMDAwMSI9PWEuZGV0YWlsWzBdJiYobnVsbD09Y3x8MTxjLmxlbmd0aCkmJmQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXMoITApO2lmKC0xPGEuZGV0YWlsLmluZGV4T2YoIkMwMDAyIikpe2M9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIpO2M9bnVsbCE9Yz9KU09OLnBhcnNlKGF0b2IoYykpOnt9O2Zvcih2YXIgZCBpbiBjKUNvb2tpZXMuc2V0KGNbZF0ua2V5LGNbZF0udmFsdWUsY1tkXS5leHBpcmVzLGNbZF0ucGF0aCxjW2RdLmRvbWFpbil9c2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZDJjX2NvbnNlbnRfY2hhbmdlZCIsCntjYXRlZ29yaWVzOmEuZGV0YWlsfSkpfX0pfX0sX3VwZGF0ZUNvbnNlbnRDb29raWU6ZnVuY3Rpb24oYil7Q29va2llcy5zZXQoImQyY19jb29raWVfY29uc2VudCIsYiwzNjUsIi8iKX0sX2dldENvbnNlbnRDb29raWU6ZnVuY3Rpb24oKXtpZighQ29va2llcy5oYXMoImQyY19jb29raWVfY29uc2VudCIpKXJldHVybiBudWxsO2xldCBiPUNvb2tpZXMuZ2V0KCJkMmNfY29va2llX2NvbnNlbnQiKTtyZXR1cm4gSlNPTi5wYXJzZShiKX0sZ2V0Q29uc2VudDpmdW5jdGlvbigpe2xldCBiPSgiIitkb2N1bWVudC5jb29raWUpLnNwbGl0KCI7Iik7Zm9yKGxldCBhPTA7YTxiLmxlbmd0aDthKyspe2xldCBjPWJbYV07Yz1jLnRyaW0oKTtpZigwPT1jLmluZGV4T2YoImQyY19jb29raWVfY29uc2VudD0iKSl7dHJ5e2M9ZGVjb2RlVVJJQ29tcG9uZW50KGMpfWNhdGNoKGQpe2NvbnNvbGUubG9nKGQpO2JyZWFrfXJldHVybiBjLnN1YnN0cmluZygxOSxjLmxlbmd0aCl9fXJldHVybiBudWxsfSwKaXNDb29raWVBbGxvd2VkOmZ1bmN0aW9uKGIsYSl7aWYoWyJkMmNfY29va2llX2NvbnNlbnQiLCJDU1JGRE9NQUlOQ0hFQ0tfMSJdLmluY2x1ZGVzKGIpKWEoITApO2Vsc2UgaWYobnVsbD09PUNvb2tpZUNvbnNlbnQuX2Nvb2tpZXN8fG51bGw9PT1Db29raWVDb25zZW50Ll9jYXRlZ29yaWVzKUNvb2tpZUNvbnNlbnQuX3JlZ2lzdGVySlNPTkxvYWRlZEV2ZW50KGZ1bmN0aW9uKCl7Q29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQoYixhKX0pO2Vsc2UgaWYoQ29va2llQ29uc2VudC5fY29va2llcy5oYXNPd25Qcm9wZXJ0eShiKSl7dmFyIGM9Q29va2llQ29uc2VudC5fY29va2llc1tiXSxkPUNvb2tpZUNvbnNlbnQuX2dldFZlbmRvckNhdGVnb3J5KGMpLGU9Q29va2llQ29uc2VudC5fZ2V0Q29uc2VudENvb2tpZSgpOyJmdW5jdGlvbiI9PT10eXBlb2YgZGVidWcmJmRlYnVnKHtuYW1lOmIsY2F0ZWdvcnk6Yyx2ZW5kb3I6ZCxjb25zZW50OmV9KTtudWxsPT09ZXx8bnVsbD09PWQ\/CmEoITEpOiJvYmplY3QiPT09dHlwZW9mIGQ\/KGM9MDxkLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4tMTxlLmluZGV4T2YoZil9KS5sZW5ndGgsYShjKSk6YSgtMTxlLmluZGV4T2YoZCkpfWVsc2UgYSghMSl9LF9sb2FkSlNPTjpmdW5jdGlvbihiKXtmZXRjaCgiL2pzL2pzb24vY2F0ZWdvcml6ZWRfY29va2llcy5qc29uIikudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe0Nvb2tpZUNvbnNlbnQuX2Nvb2tpZXM9YS5jb29raWVzO0Nvb2tpZUNvbnNlbnQuX2NhdGVnb3JpZXM9YS5jYXRlZ29yaWVzO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYil0cnl7YigpfWNhdGNoKGMpe30wPENvb2tpZUNvbnNlbnQuX3JlZ2lzdGVyZWRSZXF1ZXN0cy5sZW5ndGgmJkNvb2tpZUNvbnNlbnQuX3JlZ2lzdGVyZWRSZXF1ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKGMpe3RyeXtjKCl9Y2F0Y2goZCl7fX0pfSl9LF9yZWdpc3RlckpTT05Mb2FkZWRFdmVudDpmdW5jdGlvbihiKXtpZigiZnVuY3Rpb24iPT09CnR5cGVvZiBiKWlmKG51bGwhPT1Db29raWVDb25zZW50Ll9jb29raWVzKXRyeXtiKCl9Y2F0Y2goYSl7fWVsc2UgQ29va2llQ29uc2VudC5fcmVnaXN0ZXJlZFJlcXVlc3RzLnB1c2goYil9LF9nZXRWZW5kb3JDYXRlZ29yeTpmdW5jdGlvbihiKXtpZihudWxsPT09Q29va2llQ29uc2VudC5fY3VycmVudFZlbmRvcil7bGV0IGM9W107T2JqZWN0LnZhbHVlcyhDb29raWVDb25zZW50Ll9jYXRlZ29yaWVzKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2QuaGFzT3duUHJvcGVydHkoYikmJmMucHVzaChkW2JdKX0pO3JldHVybiBjfWxldCBhPUNvb2tpZUNvbnNlbnQuX2NhdGVnb3JpZXNbQ29va2llQ29uc2VudC5fY3VycmVudFZlbmRvcl07cmV0dXJuIGEmJmEuaGFzT3duUHJvcGVydHkoYik\/YVtiXTpudWxsfX07d2luZG93LkNvb2tpZUNvbnNlbnQuaW5pdCgpfSkoKTsKLyoqIC9qcy92YW5pbGxhanMvY29udGVudExvYWRlci5qcyAqKi8KdmFyIF9fX2QyY19jb250ZW50TG9hZGVyanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxMzoyOSI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXtjPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpcmV0dXJuO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7ZD1lWzBdO2Q9IWEmJmQgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZVtmXTtpZighKGcgaW4gZCkpcmV0dXJuO2Q9ZFtnXX1lPWVbZS5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9kW2VdOm51bGw7Yj1iKGMpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZSk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIrZSksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShkLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgYz1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChjLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhkKTtpZighZC5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZDt2YXIgZT1kLnZhbHVlfWNhdGNoKGYpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oZiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8sZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmNvbnN0IGNvbnRlbnRCbG9ja3M9KCk9Pntjb25zdCBhPWI9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3ZhciBjPWIuZGF0YXNldCxkLGU9bnVsbD09KGQ9Yi5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJibG9jay1kYXRhIl0nKSk\/dm9pZCAwOmQudmFsdWU7ZD0iRlJFTkNIIj09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbHVlPyJmciI6ImVuIjtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZGF0YTplfHwie30ifSk7Yz15aWVsZCh5aWVsZCBmZXRjaChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGQpfS9hamF4L2dldFNrZWxldG9uQ29udGVudGAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyIsY2hhcnNldDoiVVRGLTgifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoYyl9KSkuanNvbigpOwppZigidW5kZWZpbmVkIiE9dHlwZW9mIGMuc3RhdHVzJiYic3VjY2VzcyI9PWMuc3RhdHVzKWlmKGM9Yy5jb250ZW50LDE+Yy5sZW5ndGgpYi5yZXBsYWNlV2l0aCgiIik7ZWxzZXtjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGMpLmNoaWxkcmVuWzBdO3ZhciBmO2U9bnVsbD09KGY9Yi5kYXRhc2V0KT92b2lkIDA6Zi5jYWxsYmFjaztiLnBhcmVudEVsZW1lbnQuZGF0YXNldC5sb2FkZWQ9IjEiO2IucmVwbGFjZVdpdGgoYyk7ZSYmImZ1bmN0aW9uIj09PXR5cGVvZiBoYW5kbGVyc1tlXSYmaGFuZGxlcnNbZV0oYykuaW5pdCgpfX0pO2hhbmRsZXJzPXtwYXltZW50Q2FsY0Jsb2NrOmI9Pntjb25zdCBjPWIuY2xvc2VzdCgiLmRpdkNhclNpbmdsZUlubmVyQm94Iik7cmV0dXJue2luaXQ6KCk9PnskKGIpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGQ9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTsKJCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpkLGdyYXZpdHk6ImVhc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGUpe319KTtiLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKGQpe2Quc3RvcFByb3BhZ2F0aW9uKCk7aWYoYi5kYXRhc2V0LnRvb2x0aXBDcmVhdGVkKXJldHVybiExO2IuZGF0YXNldC50b29sdGlwQ3JlYXRlZD0iMSI7JChkLmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcigiLmNhci1maW5hbmNlLWluZm8iKSkuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Indlc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmxpcEluIn0pfSk7Yi5xdWVyeVNlbGVjdG9yKCIuY2FyLWZpbmFuY2UtaW5mbyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7aWYoIWMpcmV0dXJuITE7ZD1jLnF1ZXJ5U2VsZWN0b3IoIi5kaXZDYXJUaXRsZUNvbnRhaW5lciBhIikuaHJlZjsKd2luZG93Lm9wZW4oZCwiX3NlbGYiKX0pfX19fTtyZXR1cm57c2V0QmxvY2tPYnNlcnZlcjooKT0+e2NvbnN0IGI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGQ9PntkLmZvckVhY2goZT0+e2UuaXNJbnRlcnNlY3RpbmcmJihlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxiLnVub2JzZXJ2ZShlLnRhcmdldCksY29uc29sZS5sb2coInNrZWxldG9uIG9ic2VydmVkICIrZS50YXJnZXQpLGEoZS50YXJnZXQpKX0pfSx7dGhyZXNob2xkOi4xfSksYz1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb250ZW50LXNrZWxldG9uIikuZm9yRWFjaChkPT57Yi5vYnNlcnZlKGQpOyJza2VsZXRvbiI9PT1jLmdldCgiZGVidWciKSYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbnRlbnQtc2tlbGV0b24iKS5mb3JFYWNoKGU9PmUuY2xhc3NMaXN0LmFkZCgiZGVidWciKSl9KX0saGFuZGxlcnN9fTsKZG9jUmVhZHlBcnIucHVzaCgoKT0+eyJmdW5jdGlvbiI9PT10eXBlb2YgY29udGVudEJsb2NrcyYmY29udGVudEJsb2NrcygpLnNldEJsb2NrT2JzZXJ2ZXIoKX0pOwovKiogL2pzL3ZhbmlsbGFqcy9jb29raWVzLmpzICoqLwp2YXIgX19fZDJjX2Nvb2tpZXNqc19jX29uPSIyMDI2LTAxLTEyIDEwOjEzOjI1IjsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbChhLGMsYixoLGQsZixlKXt2YXIgZz0iIjtpZihiKXtsZXQgaz1uZXcgRGF0ZTtrLnNldEZ1bGxZZWFyKGsuZ2V0RnVsbFllYXIoKSsxKTtzd2l0Y2goYi5jb25zdHJ1Y3Rvcil7Y2FzZSBOdW1iZXI6MzY1PGImJihiPTM2NSk7Zz1uZXcgRGF0ZTtnLnNldERhdGUoZy5nZXREYXRlKCkrYik7Zz1JbmZpbml0eT09PWI\/IjsgZXhwaXJlcz1GcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVCI6IjsgZXhwaXJlcz0iK2cudG9VVENTdHJpbmcoKTticmVhaztjYXNlIFN0cmluZzpuZXcgRGF0ZShiKT5rJiYoYj1rLnRvVVRDU3RyaW5nKCkpO2c9IjsgZXhwaXJlcz0iK2I7YnJlYWs7Y2FzZSBEYXRlOmI+ayYmKGI9ayksZz0iOyBleHBpcmVzPSIrYi50b1VUQ1N0cmluZygpfX0idW5kZWZpbmVkIj09PXR5cGVvZiBmJiYoZj0iaHR0cHM6Ij09PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCk7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChhKSsKIj0iK2VuY29kZVVSSUNvbXBvbmVudChjKStnKyhkPyI7IGRvbWFpbj0iK2Q6IiIpKyhoPyI7IHBhdGg9IitoOiIiKSsoZj8iOyBzZWN1cmUiOiIiKSsoZSYmIm5vX3Jlc3RyaWN0aW9uIiE9PWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpPyJsYXgiPT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl8fDE9PT1NYXRoLmNlaWwoZSl8fCEwPT09ZT8iOyBzYW1lc2l0ZT1sYXgiOiJub25lIj09PWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpfHwwPmU\/Ijsgc2FtZXNpdGU9bm9uZSI6Ijsgc2FtZXNpdGU9c3RyaWN0IjoiIil9ZnVuY3Rpb24gbShhLGMpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGF8fG51bGw9PT1hKXJldHVybi0xO3N3aXRjaChhLmNvbnN0cnVjdG9yKXtjYXNlIE51bWJlcjppZigibnVtYmVyIj09PWMpdmFyIGI9ODY0MDAqYTtlbHNlIGI9bmV3IERhdGUsYi5zZXREYXRlKGIuZ2V0RGF0ZSgpK2EpLGI9SW5maW5pdHk9PT1hPyJGcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVCI6CmIudG9VVENTdHJpbmcoKTticmVhaztjYXNlIFN0cmluZzoic3RyaW5nIj09PWM\/Yj1hOihiPW5ldyBEYXRlLGI9KChuZXcgRGF0ZShhKSkuZ2V0VGltZSgpLWIuZ2V0VGltZSgpKS8xRTMpO2JyZWFrO2Nhc2UgRGF0ZToic3RyaW5nIj09PWM\/Yj1hLnRvVVRDU3RyaW5nKCk6KGI9bmV3IERhdGUsYj0oYS5nZXRUaW1lKCktYi5nZXRUaW1lKCkpLzFFMyl9Im51bWJlciI9PT1jJiYoYj1NYXRoLnJvdW5kKGIpKTtyZXR1cm4gYn12YXIgbj0vW1wtXC5cK1wqXS9nLHA9L14oPzpleHBpcmVzfG1heFwtYWdlfHBhdGh8ZG9tYWlufHNlY3VyZXxzYW1lc2l0ZXxodHRwb25seSkkL2kscT0idXRtX2NhbXBhaWduIHV0bV9rZXl3b3JkIHV0bV9sYW5kaW5nIHV0bV9sYW5kaW5nX2Zvb3RlciB1dG1fbWVkaXVtIHV0bV9zb3VyY2UgdXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIHV0bV9zb3VyY2VfcmV0YXJnZXRpbmcgRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduIERpc3BsYXlTb3VyY2VVVE1Tb3VyY2UiLnNwbGl0KCIgIik7CndpbmRvdy5Db29raWVzPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGE\/ZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKG5ldyBSZWdFeHAoIig\/Oig\/Ol58Lio7KVxccyoiK2VuY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKG4sIlxcJCYiKSsiXFxzKlxcPVxccyooW147XSopLiokKXxeLiokIiksIiQxIikpfHxudWxsOm51bGx9LHNldDpmdW5jdGlvbihhLGMsYixoLGQsZixlKXtyZXR1cm4hYXx8cC50ZXN0KGEpPyExOkNvb2tpZXMuaXNDb29raWVBbGxvd2VkKGEsZnVuY3Rpb24oZyl7ZD1kP2Q6IiI7Zj1udWxsPT1mPyEwOmY7ZT1udWxsPT1lPyJOb25lIjplO0Nvb2tpZXMubG9nKGEsYyxiLGgsZCk7aWYoIWcpcmV0dXJuLTE8cS5pbmRleE9mKGEpJiZudWxsPT1Db29raWVzLmdldCgiZDJjX2Nvb2tpZV9jb25zZW50IikmJihnPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19jb25zZW50X3dhaXQiKSxnPW51bGwhPWc\/SlNPTi5wYXJzZShhdG9iKGcpKToKe30sZ1thXT17a2V5OmEsdmFsdWU6YyxleHBpcmVzOmIscGF0aDpoLGRvbWFpbjpkfSx1dG1Db29raWVzU3RvcmFnZUpTT049SlNPTi5zdHJpbmdpZnkoZyksc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIsYnRvYSh1dG1Db29raWVzU3RvcmFnZUpTT04pKSksQ29va2llcy5yZW1vdmUoYSxoLGQsZixlKSwhMTtkb2N1bWVudC5jb29raWU9bChhLGMsYixoLGQsZixlKTtyZXR1cm4hMH0pfSxyZW1vdmU6ZnVuY3Rpb24oYSxjLGIsaCxkKXtpZighdGhpcy5oYXMoYSkpcmV0dXJuITE7ZG9jdW1lbnQuY29va2llPWwoYSwiIiwiVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGMsYixoLGQpO3JldHVybiEwfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fHAudGVzdChhKT8hMToobmV3IFJlZ0V4cCgiKD86Xnw7XFxzKikiK2VuY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKG4sIlxcJCYiKSsiXFxzKlxcPSIpKS50ZXN0KGRvY3VtZW50LmNvb2tpZSl9LAprZXlzOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPWRvY3VtZW50LmNvb2tpZS5yZXBsYWNlKC8oKD86Xnxccyo7KVtePV0rKSg\/PTt8JCl8XlxzKnxccyooPzo9W147XSopPyg\/OlwxfCQpL2csIiIpLnNwbGl0KC9ccyooPzo9W147XSopPztccyovKSxjPWEubGVuZ3RoLGI9MDtiPGM7YisrKWFbYl09ZGVjb2RlVVJJQ29tcG9uZW50KGFbYl0pO3JldHVybiBhfSxjbGVhcjpmdW5jdGlvbihhLGMsYixoKXtmb3IodmFyIGQ9dGhpcy5rZXlzKCksZj1kLmxlbmd0aCxlPTA7ZTxmO2UrKyl0aGlzLnJlbW92ZUl0ZW0oZFtlXSxhLGMsYixoKX0sbG9nOmZ1bmN0aW9uKGEsYyxiLGgsZCxmKXsidW5kZWZpbmVkIj09PXR5cGVvZiBmJiYoZj01KTsidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyP2YmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtDb29raWVzLmxvZyhhLGMsYixoLGQsZi0xKX0sMUUzKTp3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhhLGMsYixoLGQpfSxpc0Nvb2tpZUFsbG93ZWQ6ZnVuY3Rpb24oYSwKYyl7cmV0dXJuInVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnR8fCJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZD9jKCEwKTp3aW5kb3cuQ29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQoYSxjKX19O3dpbmRvdy5Db29raWVMb2dnZXI9e19zdGFjazpbXSxpbml0OmZ1bmN0aW9uKCl7bGV0IGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYWxlclByb3ZpbmNlQ29kZSIpO2EmJiJRQyI9PW5ldyBTdHJpbmcoYS52YWx1ZSkmJjE9PU1hdGguZmxvb3IoMypNYXRoLnJhbmRvbSgpKSYmZmV0Y2goIi9wcm94eV9yZDJjL2QyY2FwaS9sb2cvY29va2llcy9hY3RpdmUiKS50aGVuKGZ1bmN0aW9uKGMpe3JldHVybiBjLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYyl7ImFjdGl2ZSI9PT1jLnN0YXR1cyYmQ29va2llTG9nZ2VyLndhaXRTdGFjaygpfSl9LGxvZzpmdW5jdGlvbihhLGMsYixoLGQpe2lmKCJsaXZlIj09PQp3aW5kb3cuZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKSl7ZGVidWcoIkxvZ2dpbmcgY29va2llOiIse25hbWU6YSx2YWx1ZTpjfHwiIixkdXJhdGlvbjptKGIsIm51bWJlciIpLHBhdGg6aCxkb21haW46ZH0pO3ZhciBmLGUsZz0idW5kZWZpbmVkIiE9dHlwZW9mIGN1cnJlbnRTaXRlSUQ\/Y3VycmVudFNpdGVJRDpudWxsIT0oZT1udWxsPT0oZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIikpP3ZvaWQgMDpmLnZhbHVlKT9lOiIiO3RoaXMuX3N0YWNrLnB1c2goe25hbWU6YSxkdXJhdGlvbjptKGIsIm51bWJlciIpLHBhdGg6aHx8Ii8iLGRvbWFpbjpkfHx3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsdXJpOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxzaXRlaWQ6Zyx2YWx1ZTpidG9hKGMpfSl9fSxfc2VuZFN0YWNrOmZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMuX3N0YWNrLmxlbmd0aCl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvb2tpZUxvZ1Rva2VuIik\/CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb29raWVMb2dUb2tlbiIpLnZhbHVlOm51bGw7aWYoYSl7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBjdXJyZW50U2l0ZUlEP2N1cnJlbnRTaXRlSUQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXRlSUQiKS52YWx1ZToiIjsobmV3IFdvcmtlcigiL2pzL3ZhbmlsbGFqcy9jb29raWVXb3JrZXIuanMiKSkucG9zdE1lc3NhZ2Uoe3Rva2VuOmEsc2l0ZUlEOmMsc3RhY2s6Q29va2llTG9nZ2VyLl9zdGFja30pO0Nvb2tpZUxvZ2dlci5fc3RhY2s9W119ZWxzZSBkZWJ1ZygiTm8gY29va2llIGxvZyB0b2tlbiBmb3VuZC4iKX19LHdhaXRTdGFjazpmdW5jdGlvbigpeyJsaXZlIj09PXdpbmRvdy5kZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpJiYoc2V0VGltZW91dChmdW5jdGlvbigpe0Nvb2tpZUxvZ2dlci5fc2VuZFN0YWNrKCl9LDFFNCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsCmZ1bmN0aW9uKCl7Q29va2llTG9nZ2VyLl9zZW5kU3RhY2soKX0pKX19O3dpbmRvdy5Db29raWVMb2dnZXIuaW5pdCgpfSkoKTsKLyoqIC9qcy9qcXVlcnkuYmFzZTY0LmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzU6NDgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyMy0wMS0xMiAxMTozNTo1OCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ1OjM5IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjEtMTItMTUgMTI6NDM6MzQiOyJ1c2Ugc3RyaWN0IjsKalF1ZXJ5LmJhc2U2ND1mdW5jdGlvbihrKXtmdW5jdGlvbiBlKGEsYyl7YT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuaW5kZXhPZihhLmNoYXJBdChjKSk7aWYoLTE9PT1hKXRocm93IkNhbm5vdCBkZWNvZGUgYmFzZTY0IjtyZXR1cm4gYX1mdW5jdGlvbiBoKGEsYyl7YT1hLmNoYXJDb2RlQXQoYyk7aWYoMjU1PGEpdGhyb3ciSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUiO3JldHVybiBhfXJldHVybntkZWNvZGU6ZnVuY3Rpb24oYSl7dmFyIGM9MCxiLGY9YS5sZW5ndGgsZD1bXTthPVN0cmluZyhhKTtpZigwPT09ZilyZXR1cm4gYTtpZigwIT09ZiU0KXRocm93IkNhbm5vdCBkZWNvZGUgYmFzZTY0IjsiPSI9PT1hLmNoYXJBdChmLTEpJiYoYz0xLCI9Ij09PWEuY2hhckF0KGYtMikmJihjPTIpLGYtPTQpO2ZvcihiPTA7YjxmO2IrPTQpe3ZhciBnPWUoYSxiKTw8MTh8ZShhLGIrMSk8PAoxMnxlKGEsYisyKTw8NnxlKGEsYiszKTtkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShnPj4xNixnPj44JjI1NSxnJjI1NSkpfXN3aXRjaChjKXtjYXNlIDE6Zz1lKGEsYik8PDE4fGUoYSxiKzEpPDwxMnxlKGEsYisyKTw8NjtkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShnPj4xNixnPj44JjI1NSkpO2JyZWFrO2Nhc2UgMjpnPWUoYSxiKTw8MTh8ZShhLGIrMSk8PDEyLGQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGc+PjE2KSl9cmV0dXJuIGQuam9pbigiIil9LGVuY29kZTpmdW5jdGlvbihhKXtpZigxIT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyJTeW50YXhFcnJvcjogZXhhY3RseSBvbmUgYXJndW1lbnQgcmVxdWlyZWQiO2E9U3RyaW5nKGEpO3ZhciBjLGI9W10sZj1hLmxlbmd0aC1hLmxlbmd0aCUzO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gYTtmb3IoYz0wO2M8ZjtjKz0zKXt2YXIgZD1oKGEsYyk8PDE2fGgoYSxjKzEpPDw4fGgoYSxjKzIpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PgoxOCkpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjEyJjYzKSk7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+NiY2MykpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQmNjMpKX1zd2l0Y2goYS5sZW5ndGgtZil7Y2FzZSAxOmQ9aChhLGMpPDwxNjtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xOCkrIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xMiY2MykrIj09Iik7YnJlYWs7Y2FzZSAyOmQ9CmgoYSxjKTw8MTZ8aChhLGMrMSk8PDgsYi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTgpKyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTImNjMpKyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+NiY2MykrIj0iKX1yZXR1cm4gYi5qb2luKCIiKX0sVkVSU0lPTjoiMS4wIn19KGpRdWVyeSk7Ci8qKiAvanMvanF1ZXJ5LmRhcmt0b29sdGlwLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWRhcmt0b29sdGlwanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTo0OCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5ZGFya3Rvb2x0aXBqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjA3IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihiKXtmdW5jdGlvbiBlKGEsYyl7dGhpcy5iZWFyZXI9YTt0aGlzLm9wdGlvbnM9Yzt0aGlzLmhpZGVFdmVudDt0aGlzLmhpZGluZz0hMTt0aGlzLm1vdXNlT3Zlck1vZGU9ImhvdmVyIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ8fCJtb3VzZW92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im9ubW91c2VvdmVyIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ9ZS5wcm90b3R5cGU9e3Nob3c6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMub3B0aW9ucy5tb2RhbCYmdGhpcy5tb2RhbExheWVyLmNzcygiZGlzcGxheSIsImJsb2NrIik7dGhpcy50b29sdGlwLmNzcygiZGlzcGxheSIsImJsb2NrIik7YS5tb3VzZU92ZXJNb2RlJiYodGhpcy50b29sdGlwLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuaGlkZUV2ZW50KTthLmhpZGluZz0hMX0pLHRoaXMudG9vbHRpcC5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuaGlkZUV2ZW50KTsKYS5oaWRlKCk7YS5oaWRpbmc9ITF9KSl9LGhpZGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2EuaGlkaW5nfHwoYS5oaWRpbmc9ITAsdGhpcy5oaWRlRXZlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe2EuaGlkaW5nPSExO2EudG9vbHRpcC5oaWRlKCl9KSxhLm9wdGlvbnMubW9kYWwmJihhLmhpZGluZz0hMSxhLm1vZGFsTGF5ZXIuaGlkZSgpKSx0aGlzLm9wdGlvbnMub25DbG9zZSgpKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy50b29sdGlwLmlzKCI6dmlzaWJsZSIpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSxhZGRBbmltYXRpb246ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5vcHRpb25zLmFuaW1hdGlvbil7Y2FzZSAiZmFkZUluIjp0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImFuaW1hdGVkIik7dGhpcy50b29sdGlwLmFkZENsYXNzKCJmYWRlSW4iKTticmVhaztjYXNlICJmbGlwSW4iOnRoaXMudG9vbHRpcC5hZGRDbGFzcygiYW5pbWF0ZWQiKSx0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImZsaXBJbiIpfX0sCnNldENvbnRlbnQ6ZnVuY3Rpb24oKXtiKHRoaXMuYmVhcmVyKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKTtpZih0aGlzLm9wdGlvbnMuY29udGVudCl0aGlzLmNvbnRlbnQ9dGhpcy5vcHRpb25zLmNvbnRlbnQ7ZWxzZSBpZih0aGlzLmJlYXJlci5hdHRyKCJkYXRhLXRvb2x0aXAiKSl0aGlzLmNvbnRlbnQ9dGhpcy5iZWFyZXIuYXR0cigiZGF0YS10b29sdGlwIik7ZWxzZSByZXR1cm47aWYoIiMiPT10aGlzLmNvbnRlbnQuY2hhckF0KDApKXtpZih0aGlzLm9wdGlvbnMuZGVsZXRlX2NvbnRlbnQpe3ZhciBhPWIodGhpcy5jb250ZW50KS5odG1sKCk7Yih0aGlzLmNvbnRlbnQpLmh0bWwoIiIpO3RoaXMuY29udGVudD1hO2RlbGV0ZSBhfWVsc2UgYih0aGlzLmNvbnRlbnQpLmhpZGUoKSx0aGlzLmNvbnRlbnQ9Yih0aGlzLmNvbnRlbnQpLmh0bWwoKTt0aGlzLmNvbnRlbnRUeXBlPSJodG1sIn1lbHNlIHRoaXMuY29udGVudFR5cGU9InRleHQiO2E9IiIhPXRoaXMuYmVhcmVyLmF0dHIoImlkIikmJgoidW5kZWZpbmVkIiE9dGhpcy5iZWFyZXIuYXR0cigiaWQiKT8iaWQ9J2Rhcmt0b29sdGlwLSIrdGhpcy5iZWFyZXIuYXR0cigiaWQiKSsiJyI6ImlkPSdkYXJrdG9vbHRpcC0iKyhEYXRlLm5vdygpK01hdGguZmxvb3IoMUU0Kk1hdGgucmFuZG9tKCkpKSsiJyI7MD09PWIoIklOUy5kYXJrdG9vbHRpcC1tb2RhbC1sYXllciIpLmxlbmd0aCYmKHRoaXMubW9kYWxMYXllcj1iKCI8aW5zIGNsYXNzPSdkYXJrdG9vbHRpcC1tb2RhbC1sYXllcic+PC9pbnM+IikpO3RoaXMudG9vbHRpcD1iKCI8aW5zICIrYSsiIGNsYXNzID0gJ2RhcmstdG9vbHRpcCAiK3RoaXMub3B0aW9ucy50aGVtZSsiICIrdGhpcy5vcHRpb25zLnNpemUrIiAiK3RoaXMub3B0aW9ucy5ncmF2aXR5KyInPjxkaXY+Iit0aGlzLmNvbnRlbnQrIjwvZGl2PjxkaXYgY2xhc3MgPSAndGlwJz48L2Rpdj48L2lucz4iKTt0aGlzLnRpcD10aGlzLnRvb2x0aXAuZmluZCgiLnRpcCIpO2IoImJvZHkiKS5hcHBlbmQodGhpcy5tb2RhbExheWVyKTsKYigiYm9keSIpLmFwcGVuZCh0aGlzLnRvb2x0aXApOyJodG1sIj09dGhpcy5jb250ZW50VHlwZSYmdGhpcy50b29sdGlwLmNzcygibWF4LXdpZHRoIiwibm9uZSIpO3RoaXMudG9vbHRpcC5jc3MoIm9wYWNpdHkiLHRoaXMub3B0aW9ucy5vcGFjaXR5KTt0aGlzLmFkZEFuaW1hdGlvbigpO3RoaXMub3B0aW9ucy5jb25maXJtJiZ0aGlzLmFkZENvbmZpcm0oKX0sc2V0UG9zaXRpb25zOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5iZWFyZXIub2Zmc2V0KCkubGVmdCxjPXRoaXMuYmVhcmVyLm9mZnNldCgpLnRvcDtzd2l0Y2godGhpcy5vcHRpb25zLmdyYXZpdHkpe2Nhc2UgInNvdXRoIjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkvMi10aGlzLnRvb2x0aXAub3V0ZXJXaWR0aCgpLzI7Yys9LXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLXRoaXMudGlwLm91dGVySGVpZ2h0KCkvMjticmVhaztjYXNlICJ3ZXN0IjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkrdGhpcy50aXAub3V0ZXJXaWR0aCgpLwoyO2MrPXRoaXMuYmVhcmVyLm91dGVySGVpZ2h0KCkvMi10aGlzLnRvb2x0aXAub3V0ZXJIZWlnaHQoKS8yO2JyZWFrO2Nhc2UgIm5vcnRoIjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkvMi10aGlzLnRvb2x0aXAub3V0ZXJXaWR0aCgpLzI7Yys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKSt0aGlzLnRpcC5vdXRlckhlaWdodCgpLzI7YnJlYWs7Y2FzZSAiZWFzdCI6YSs9LXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCktdGhpcy50aXAub3V0ZXJXaWR0aCgpLzIsYys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKS8yLXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLzJ9dGhpcy5vcHRpb25zLmF1dG9MZWZ0JiZ0aGlzLnRvb2x0aXAuY3NzKCJsZWZ0IixhKTt0aGlzLm9wdGlvbnMuYXV0b1RvcCYmdGhpcy50b29sdGlwLmNzcygidG9wIixjKX0sc2V0RXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxjPWEub3B0aW9ucy5ob3ZlckRlbGF5LGY7aWYoYS5tb3VzZU92ZXJNb2RlKXRoaXMuYmVhcmVyLm9uKCJtb3VzZWVudGVyIiwKZnVuY3Rpb24oKXtmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnNldFBvc2l0aW9ucygpO2Euc2hvdygpfSxjKX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChmKTthLmhpZGUoKX0pO2Vsc2UgaWYoImNsaWNrIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ8fCJvbmNsaWsiPT10aGlzLm9wdGlvbnMudHJpZ2dlcil0aGlzLnRvb2x0aXAub24oImNsaWNrIixmdW5jdGlvbihkKXtkLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5iZWFyZXIub24oImNsaWNrIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7YS5zZXRQb3NpdGlvbnMoKTthLnRvZ2dsZSgpO2Quc3RvcFByb3BhZ2F0aW9uKCl9KSxiKCJodG1sIikub24oImNsaWNrIixmdW5jdGlvbigpe2EuaGlkZSgpfSl9LGFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5zZXRDb250ZW50KCk7dGhpcy5jb250ZW50JiZ0aGlzLnNldEV2ZW50cygpfSxhZGRDb25maXJtOmZ1bmN0aW9uKCl7dGhpcy50b29sdGlwLmFwcGVuZCgiPHVsIGNsYXNzID0gJ2NvbmZpcm0nPjxsaSBjbGFzcyA9ICdkYXJrdG9vbHRpcC15ZXMnPiIrCnRoaXMub3B0aW9ucy55ZXMrIjwvbGk+PGxpIGNsYXNzID0gJ2Rhcmt0b29sdGlwLW5vJz4iK3RoaXMub3B0aW9ucy5ubysiPC9saT48L3VsPiIpO3RoaXMuc2V0Q29uZmlybUV2ZW50cygpfSxzZXRDb25maXJtRXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnRvb2x0aXAuZmluZCgibGkuZGFya3Rvb2x0aXAteWVzIikub24oImNsaWNrIixmdW5jdGlvbihjKXthLm9uWWVzKCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0pO3RoaXMudG9vbHRpcC5maW5kKCJsaS5kYXJrdG9vbHRpcC1ubyIpLm9uKCJjbGljayIsZnVuY3Rpb24oYyl7YS5vbk5vKCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0pfSxmaW5hbE1lc3NhZ2U6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuZmluYWxNZXNzYWdlKXt2YXIgYT10aGlzO2EudG9vbHRpcC5maW5kKCJkaXY6Zmlyc3QiKS5odG1sKHRoaXMub3B0aW9ucy5maW5hbE1lc3NhZ2UpO2EudG9vbHRpcC5maW5kKCJ1bCIpLnJlbW92ZSgpO2Euc2V0UG9zaXRpb25zKCk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmhpZGUoKTthLnNldENvbnRlbnQoKX0sYS5vcHRpb25zLmZpbmFsTWVzc2FnZUR1cmF0aW9uKX1lbHNlIHRoaXMuaGlkZSgpfSxvblllczpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vblllcyh0aGlzLmJlYXJlcik7dGhpcy5maW5hbE1lc3NhZ2UoKX0sb25ObzpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vbk5vKHRoaXMuYmVhcmVyKTt0aGlzLmhpZGUoKX19O2IuZm4uZGFya1Rvb2x0aXA9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2E9Yi5leHRlbmQoe30sYi5mbi5kYXJrVG9vbHRpcC5kZWZhdWx0cyxhKTsobmV3IGUoYih0aGlzKSxhKSkuYWN0aXZhdGUoKX0pfTtiLmZuLmRhcmtUb29sdGlwLmRlZmF1bHRzPXthbmltYXRpb246Im5vbmUiLGNvbmZpcm06ITEsY29udGVudDoiIixmaW5hbE1lc3NhZ2U6IiIsZmluYWxNZXNzYWdlRHVyYXRpb246MUUzLGdyYXZpdHk6InNvdXRoIixob3ZlckRlbGF5OjAsbW9kYWw6ITEsCm5vOiJObyIsb25ObzpmdW5jdGlvbigpe30sb25ZZXM6ZnVuY3Rpb24oKXt9LG9wYWNpdHk6Ljksc2l6ZToibWVkaXVtIix0aGVtZToiZGFyayIsdHJpZ2dlcjoiaG92ZXIiLHllczoiWWVzIixhdXRvVG9wOiEwLGF1dG9MZWZ0OiEwLG9uQ2xvc2U6ZnVuY3Rpb24oKXt9fX0pKGpRdWVyeSk7Ci8qKiAvanMvanF1ZXJ5LnZhbGlkaXR5Lm1pbi5qcyAqKi8KKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYixjLGUpe3ZhciBmPShiLnJlZHVjdGlvbnx8YikuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGk9W107cmV0dXJuIDE+Yi5sZW5ndGg\/KGNvbnNvbGUubG9nKCJDb3VsZCBub3QgdmFsaWRhdGUgZWxlbWVudCIsYiksYik6KGYuZWFjaChmdW5jdGlvbigpe2ModGhpcyk\/aS5wdXNoKHRoaXMpOmQodGhpcyxnKGUse2ZpZWxkOmgodGhpcyl9KSl9KSxiLnJlZHVjdGlvbj1hKGkpLGIpfWZ1bmN0aW9uIGMoKXthLnZhbGlkaXR5LmlzVmFsaWRhdGluZygpJiYoYS52YWxpZGl0eS5yZXBvcnQuZXJyb3JzKyssYS52YWxpZGl0eS5yZXBvcnQudmFsaWQ9ITEpfWZ1bmN0aW9uIGQoYixkKXtjKCksYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0mJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlJiZhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXS5yYWlzZShhKGIpLGQpfWZ1bmN0aW9uIGUoYixkKXtjKCksYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0mJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlQWdncmVnYXRlJiZhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXS5yYWlzZUFnZ3JlZ2F0ZShiLGQpfWZ1bmN0aW9uIGYoYSl7dmFyIGI9MDtyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9cGFyc2VGbG9hdCh0aGlzLnZhbHVlKTtiKz1pc05hTihhKT8wOmF9KSxifWZ1bmN0aW9uIGcoYSxiKXtmb3IodmFyIGMgaW4gYilhPWEucmVwbGFjZSgiI3siK2MrIn0iLGJbY10pO3JldHVybiBqKGEpfWZ1bmN0aW9uIGgoYil7dmFyIGM9YShiKSxkPWEudmFsaWRpdHkuc2V0dGluZ3MuZGVmYXVsdEZpZWxkTmFtZTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGMuYXR0cigidGl0bGUiKSYmYy5hdHRyKCJ0aXRsZSIpLmxlbmd0aClkPWMuYXR0cigidGl0bGUiKTtlbHNlIGlmKC9eKFtBLVowLTldW2Etel0qKSskLy50ZXN0KGIuaWQpKWQ9Yi5pZC5yZXBsYWNlKC8oW0EtWjAtOV0pW2Etel0qL2csIiAkJiIpO2Vsc2UgaWYoL15bYS16MC05X10qJC8udGVzdChiLmlkKSl7Zm9yKHZhciBlPWIuaWQuc3BsaXQoIl8iKSxmPTA7ZjxlLmxlbmd0aDsrK2YpZVtmXT1qKGVbZl0pO2Q9ZS5qb2luKCIgIil9cmV0dXJuIGR9ZnVuY3Rpb24gaihhKXtyZXR1cm4gYS5zdWJzdHJpbmc\/YS5zdWJzdHJpbmcoMCwxKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyaW5nKDEsYS5sZW5ndGgpOmF9YS52YWxpZGl0eT17c2V0dGluZ3M6YS5leHRlbmQoe291dHB1dE1vZGU6ImxhYmVsIixjc3NDbGFzczoiZXJyb3IiLHNjcm9sbFRvOiExLG1vZGFsRXJyb3JzQ2xpY2thYmxlOiEwLGRlZmF1bHRGaWVsZE5hbWU6IlRoaXMgZmllbGQiLGVsZW1lbnRTdXBwb3J0OiI6dGV4dCwgW3R5cGU9dGVsXSwgW3R5cGU9ZW1haWxdLCBbdHlwZT1kYXRlXSwgOnBhc3N3b3JkLCB0ZXh0YXJlYSwgc2VsZWN0LCA6cmFkaW8sIDpjaGVja2JveCIsYXJnVG9TdHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0RGF0ZT9hLmdldE1vbnRoKCkrMSsiLyIrYS5nZXREYXRlKCkrIi8iK2EuZ2V0RnVsbFllYXIoKTphfX0se30pLHBhdHRlcm5zOntpbnRlZ2VyOi9eXGQrJC8sZGF0ZTovXigoMD9cZCl8KDFbMDEyXSkpXC8oWzAxMl0\/XGR8MzB8MzEpXC9cZHsxLDR9JC8sZW1haWw6L14oKChbYS16XXxcZHxbISNcJCUmJ1wqXCtcLVwvPVw\/XF5fYHtcfH1+XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkrKFwuKFthLXpdfFxkfFshI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5dfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSspKil8KChceDIyKSgoKChceDIwfFx4MDkpKihceDBkXHgwYSkpPyhceDIwfFx4MDkpKyk\/KChbXHgwMS1ceDA4XHgwYlx4MGNceDBlLVx4MWZceDdmXXxceDIxfFtceDIzLVx4NWJdfFtceDVkLVx4N2VdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoXFwoW1x4MDEtXHgwOVx4MGJceDBjXHgwZC1ceDdmXXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKSkqKCgoXHgyMHxceDA5KSooXHgwZFx4MGEpKT8oXHgyMHxceDA5KSspPyhceDIyKSkpQCgoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4pKygoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLj8kL2ksdXNkOi9eXCQ\/KFxkezEsM30sPyhcZHszfSw\/KSpcZHszfShcLlxkezAsMn0pP3xcZHsxLDN9KFwuXGR7MCwyfSk\/fFwuXGR7MSwyfT8pJC8sdXJsOi9eKGh0dHBzP3xmdHApOlwvXC8oKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDopKkApPygoKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSkpfCgoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4pKygoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLj8pKDpcZCopPykoXC8oKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKSsoXC8oKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApKikqKT8pPyhcPygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApfFtcdUUwMDAtXHVGOEZGXXxcL3xcPykqKT8oXCMoKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKXxcL3xcPykqKT8kL2ksbnVtYmVyOi9eWystXT8oXGQrKFwuXGQqKT98XC5cZCspKFtFZV1cZCspPyQvLHppcDovXlxkezV9KC1cZHs0fSk\/JC8scGhvbmU6L15bMi05XVxkezJ9LVxkezN9LVxkezR9JC8sZ3VpZDovXihcez8oWzAtOWEtZkEtRl0pezh9LSgoWzAtOWEtZkEtRl0pezR9LSl7M30oWzAtOWEtZkEtRl0pezEyfVx9PykkLyx0aW1lMTI6L15bMDFdP1xkOlswLTVdXGQ\/XHM\/W2FBcFBdXC4\/W21NXVwuPyQvLHRpbWUyNDovXigyMHwyMXwyMnwyM3xbMDFdXGR8XGQpKChbOl1bMC01XVxkKXsxLDJ9KSQvLG5vbkh0bWw6L15bXjw+XSokL30sbWVzc2FnZXM6e2FyZWFjb2RlOiIje2ZpZWxkfSBhY2NlcHRzIG9ubHkgbG9jYWwgYXJlYSBjb2RlcyIscmVxdWlyZToiI3tmaWVsZH0gaXMgcmVxdWlyZWQuIixtYXRjaDoiI3tmaWVsZH0gaXMgaW4gYW4gaW52YWxpZCBmb3JtYXQuIixpbnRlZ2VyOiIje2ZpZWxkfSBtdXN0IGJlIGEgcG9zaXRpdmUsIHdob2xlIG51bWJlci4iLGRhdGU6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgZGF0ZS4iLGVtYWlsOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhbiBlbWFpbC4iLHVzZDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBVUyBEb2xsYXIgYW1vdW50LiIsdXJsOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIFVSTC4iLG51bWJlcjoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBudW1iZXIuIix6aXA6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgemlwY29kZSAjIyMjIyBvciAjIyMjIy0jIyMjLiIscGhvbmU6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgcGhvbmUgbnVtYmVyICMjIy0jIyMtIyMjIy4iLGd1aWQ6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgZ3VpZCBsaWtlIHszRjI1MDRFMC00Rjg5LTExRDMtOUEwQy0wMzA1RTgyQzMzMDF9LiIsdGltZTI0OiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIDI0IGhvdXIgdGltZTogMjM6MDAuIix0aW1lMTI6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgMTIgaG91ciB0aW1lOiAxMjowMCBBTS9QTSIsbGVzc1RoYW46IiN7ZmllbGR9IG11c3QgYmUgbGVzcyB0aGFuICN7bWF4fS4iLGxlc3NUaGFuT3JFcXVhbFRvOiIje2ZpZWxkfSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAje21heH0uIixncmVhdGVyVGhhbjoiI3tmaWVsZH0gbXVzdCBiZSBncmVhdGVyIHRoYW4gI3ttaW59LiIsZ3JlYXRlclRoYW5PckVxdWFsVG86IiN7ZmllbGR9IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICN7bWlufS4iLHJhbmdlOiIje2ZpZWxkfSBtdXN0IGJlIGJldHdlZW4gI3ttaW59IGFuZCAje21heH0uIix0b29Mb25nOiIje2ZpZWxkfSBjYW5ub3QgYmUgbG9uZ2VyIHRoYW4gI3ttYXh9IGNoYXJhY3RlcnMuIix0b29TaG9ydDoiI3tmaWVsZH0gY2Fubm90IGJlIHNob3J0ZXIgdGhhbiAje21pbn0gY2hhcmFjdGVycy4iLG5vbkh0bWw6IiN7ZmllbGR9IGNhbm5vdCBjb250YWluIEhUTUwgY2hhcmFjdGVycy4iLGFscGhhYmV0OiIje2ZpZWxkfSBjb250YWlucyBkaXNhbGxvd2VkIGNoYXJhY3RlcnMuIixtaW5DaGFyQ2xhc3M6IiN7ZmllbGR9IGNhbm5vdCBoYXZlIG1vcmUgdGhhbiAje21pbn0gI3tjaGFyQ2xhc3N9IGNoYXJhY3RlcnMuIixtYXhDaGFyQ2xhc3M6IiN7ZmllbGR9IGNhbm5vdCBoYXZlIGxlc3MgdGhhbiAje21pbn0gI3tjaGFyQ2xhc3N9IGNoYXJhY3RlcnMuIixlcXVhbDoiVmFsdWVzIGRvbid0IG1hdGNoLiIsZGlzdGluY3Q6IkEgdmFsdWUgd2FzIHJlcGVhdGVkLiIsc3VtOiJWYWx1ZXMgZG9uJ3QgYWRkIHRvICN7c3VtfS4iLHN1bU1heDoiVGhlIHN1bSBvZiB0aGUgdmFsdWVzIG11c3QgYmUgbGVzcyB0aGFuICN7bWF4fS4iLHN1bU1pbjoiVGhlIHN1bSBvZiB0aGUgdmFsdWVzIG11c3QgYmUgZ3JlYXRlciB0aGFuICN7bWlufS4iLHJhZGlvQ2hlY2tlZDoiVGhlIHNlbGVjdGVkIHZhbHVlIGlzIG5vdCB2YWxpZC4iLGdlbmVyaWM6IkludmFsaWQuIn0sY2hhckNsYXNzZXM6e2FscGhhYmV0aWNhbDovXHcvZyxudW1lcmljOi9cZC9nLGFscGhhbnVtZXJpYzovW0EtWmEtejAtOV0vZyxzeW1ib2w6L1teQS1aYS16MC05XS9nfSxvdXRwdXRzOnt9LHNldHVwOmZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLnNldHRpbmdzPWEuZXh0ZW5kKHRoaXMuc2V0dGluZ3MsYiksdGhpc30scmVwb3J0Om51bGwsaXNWYWxpZGF0aW5nOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnJlcG9ydH0sc3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0uc3RhcnQmJnRoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdLnN0YXJ0KCksdGhpcy5yZXBvcnQ9e2Vycm9yczowLHZhbGlkOiEwfX0sZW5kOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5yZXBvcnR8fHtlcnJvcnM6MCx2YWxpZDohMH07cmV0dXJuIHRoaXMucmVwb3J0PW51bGwsdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0mJnRoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdLmVuZCYmdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0uZW5kKGEpLGF9LGNsZWFyOmZ1bmN0aW9uKCl7dGhpcy5zdGFydCgpLHRoaXMuZW5kKCl9fSxhLmZuLmV4dGVuZCh7dmFsaWRpdHk6ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCJmb3JtIj09dGhpcy50YWdOYW1lLnRvTG93ZXJDYXNlKCkpe3ZhciBjPW51bGw7InN0cmluZyI9PXR5cGVvZiBiP2M9ZnVuY3Rpb24oKXthKGIpLnJlcXVpcmUoKX06aXNGdW5jdGlvbihiKSYmKGM9YiksYiYmYSh0aGlzKS5vbigic3VibWl0IixmdW5jdGlvbigpe3JldHVybiBhLnZhbGlkaXR5LnN0YXJ0KCksYygpLGEudmFsaWRpdHkuZW5kKCkudmFsaWR9KX19KX0scmVxdWlyZTpmdW5jdGlvbihjKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPWEoYikudmFsKCksZD10cmltKGMpLmxlbmd0aDtyZXR1cm4gZH0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5yZXF1aXJlKX0sbWF0Y2g6ZnVuY3Rpb24oYyxkKXtyZXR1cm4gZHx8KGQ9YS52YWxpZGl0eS5tZXNzYWdlcy5tYXRjaCwic3RyaW5nIj09dHlwZW9mIGMmJmEudmFsaWRpdHkubWVzc2FnZXNbY10mJihkPWEudmFsaWRpdHkubWVzc2FnZXNbY10pKSwic3RyaW5nIj09dHlwZW9mIGMmJihjPWEudmFsaWRpdHkucGF0dGVybnNbY10pLGIodGhpcyxpc0Z1bmN0aW9uKGMpP2Z1bmN0aW9uKGEpe3JldHVybiFhLnZhbHVlLmxlbmd0aHx8YyhhLnZhbHVlKX06ZnVuY3Rpb24oYSl7cmV0dXJuIGMuZ2xvYmFsJiYoYy5sYXN0SW5kZXg9MCksIWEudmFsdWUubGVuZ3RofHxjLnRlc3QoYS52YWx1ZSl9LGQpfSxyYW5nZTpmdW5jdGlvbihjLGUsZil7cmV0dXJuIGIodGhpcyxjLmdldFRpbWUmJmUuZ2V0VGltZT9mdW5jdGlvbihhKXt2YXIgYj1uZXcgRGF0ZShhLnZhbHVlKTtyZXR1cm4gYj49bmV3IERhdGUoYykmJmI8PW5ldyBEYXRlKGUpfTpjLnN1YnN0cmluZyYmZS5zdWJzdHJpbmcmJkJpZz9mdW5jdGlvbihhKXt2YXIgYj1uZXcgQmlnKGEudmFsdWUpO3JldHVybiBiLmdyZWF0ZXJUaGFuT3JFcXVhbFRvKG5ldyBCaWcoYykpJiZiLmxlc3NUaGFuT3JFcXVhbFRvKG5ldyBCaWcoZSkpfTpmdW5jdGlvbihhKXt2YXIgYj1wYXJzZUZsb2F0KGEudmFsdWUpO3JldHVybiBiPj1jJiZiPD1lfSxmfHxnKGEudmFsaWRpdHkubWVzc2FnZXMucmFuZ2Use21pbjphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGMpLG1heDphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGUpfSkpfSxncmVhdGVyVGhhbjpmdW5jdGlvbihjLGQpe3JldHVybiBiKHRoaXMsYy5nZXRUaW1lP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgRGF0ZShhLnZhbHVlKT5jfTpjLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgQmlnKGEudmFsdWUpLmdyZWF0ZXJUaGFuKG5ldyBCaWcoYykpfTpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnZhbHVlKT5jfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuZ3JlYXRlclRoYW4se21pbjphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGMpfSkpfSxncmVhdGVyVGhhbk9yRXF1YWxUbzpmdW5jdGlvbihjLGQpe3JldHVybiBiKHRoaXMsYy5nZXRUaW1lP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgRGF0ZShhLnZhbHVlKT49Y306Yy5zdWJzdHJpbmcmJkJpZz9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEJpZyhhLnZhbHVlKS5ncmVhdGVyVGhhbk9yRXF1YWxUbyhuZXcgQmlnKGMpKX06ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlRmxvYXQoYS52YWx1ZSk+PWN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5ncmVhdGVyVGhhbk9yRXF1YWxUbyx7bWluOmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyl9KSl9LGxlc3NUaGFuOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxjLmdldFRpbWU\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBEYXRlKGEudmFsdWUpPGN9OmMuc3Vic3RyaW5nJiZCaWc\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBCaWcoYS52YWx1ZSkubGVzc1RoYW4obmV3IEJpZyhjKSl9OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUZsb2F0KGEudmFsdWUpPGN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5sZXNzVGhhbix7bWF4OmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyl9KSl9LGxlc3NUaGFuT3JFcXVhbFRvOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxjLmdldFRpbWU\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBEYXRlKGEudmFsdWUpPD1jfTpjLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgQmlnKGEudmFsdWUpLmxlc3NUaGFuT3JFcXVhbFRvKG5ldyBCaWcoYykpfTpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnZhbHVlKTw9Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmxlc3NUaGFuT3JFcXVhbFRvLHttYXg6YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhjKX0pKX0sbWF4TGVuZ3RoOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gYS52YWx1ZS5sZW5ndGg8PWN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy50b29Mb25nLHttYXg6Y30pKX0sbWluTGVuZ3RoOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gYS52YWx1ZS5sZW5ndGg+PWN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy50b29TaG9ydCx7bWluOmN9KSl9LGFscGhhYmV0OmZ1bmN0aW9uKGMsZCl7dmFyIGU9W107cmV0dXJuIGIodGhpcyxmdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPGEudmFsdWUubGVuZ3RoOysrYilpZigtMT09Yy5pbmRleE9mKGEudmFsdWUuY2hhckF0KGIpKSlyZXR1cm4gZS5wdXNoKGEudmFsdWUuY2hhckF0KGIpKSwhMTtyZXR1cm4hMH0sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmFscGhhYmV0LHtjaGFyczplLmpvaW4oIiwgIil9KSl9LG1pbkNoYXJDbGFzczpmdW5jdGlvbihjLGQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjJiYoYz1jLnRvTG93ZXJDYXNlKCksYS52YWxpZGl0eS5jaGFyQ2xhc3Nlc1tjXSYmKGM9YS52YWxpZGl0eS5jaGFyQ2xhc3Nlc1tjXSkpLGIodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4oYS52YWx1ZS5tYXRjaChjKXx8W10pLmxlbmd0aD49ZH0sZXx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLm1pbkNoYXJDbGFzcyx7bWluOmQsY2hhckNsYXNzOmN9KSl9LG1heENoYXJDbGFzczpmdW5jdGlvbihjLGQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjJiYoYz1jLnRvTG93ZXJDYXNlKCksYS52YWxpZGl0eS5jaGFyQ2xhc3Nlc1tjXSYmKGM9YS52YWxpZGl0eS5jaGFyQ2xhc3Nlc1tjXSkpLGIodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4oYS52YWx1ZS5tYXRjaChjKXx8W10pLmxlbmd0aDw9ZH0sZXx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLm1heENoYXJDbGFzcyx7bWF4OmQsY2hhckNsYXNzOmN9KSl9LHBhc3N3b3JkOmZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHthbHBoYWJldDpudWxsLG1pbkxlbmd0aDowLG1heExlbmd0aDowLG1pblN5bWJvbDowLG1pbkFscGhhYmV0aWNhbDowLG1pbk51bWVyaWM6MCxtaW5BbHBoYU51bWVyaWM6MH0sYiksYi5hbHBoYWJldCYmdGhpcy5hbHBoYWJldChiLmFscGhhYmV0KSxiLm1pbkxlbmd0aCYmdGhpcy5taW5MZW5ndGgoYi5taW5MZW5ndGgpLGIubWF4TGVuZ3RoJiZ0aGlzLm1heExlbmd0aChiLm1heExlbmd0aCksYi5taW5TeW1ib2wmJnRoaXMubWluQ2hhckNsYXNzKCJzeW1ib2wiLGIubWluU3ltYm9sKSxiLm1pbkFscGhhYmV0aWNhbCYmdGhpcy5taW5DaGFyQ2xhc3MoImFscGhhYmV0aWNhbCIsYi5taW5BbHBoYWJldGljYWwpLGIubWluTnVtZXJpYyYmdGhpcy5taW5DaGFyQ2xhc3MoIm51bWVyaWMiLGIubWluTnVtZXJpYyksYi5taW5BbHBoYW51bWVyaWMmJnRoaXMubWluQ2hhckNsYXNzKCJhbHBoYW51bWVyaWMiLGIubWluQWxwaGFudW1lcmljKSx0aGlzfSxub25IdG1sOmZ1bmN0aW9uKGMpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIGEudmFsaWRpdHkucGF0dGVybnMubm9uSHRtbC50ZXN0KGIudmFsdWUpfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLm5vbkh0bWwpfSxlcXVhbDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGY9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGc9YS52YWxpZGl0eS5tZXNzYWdlcy5lcXVhbDtpZihkLmxlbmd0aCl7aXNGdW5jdGlvbihiKT8oZj1iLCJzdHJpbmciPT10eXBlb2YgYyYmKGc9YykpOiJzdHJpbmciPT10eXBlb2YgYiYmKGc9Yik7dmFyIGg9YS5tYXAoZCxmdW5jdGlvbihhKXtyZXR1cm4gZihhLnZhbHVlKX0pLGo9aFswXSxrPSEwO2Zvcih2YXIgbCBpbiBoKWhbbF0hPWomJihrPSExKTtrfHwoZShkLGcpLHRoaXMucmVkdWN0aW9uPWEoW10pKX1yZXR1cm4gdGhpc30sZGlzdGluY3Q6ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxmPWZ1bmN0aW9uKGEpe3JldHVybiBhfSxnPWEudmFsaWRpdHkubWVzc2FnZXMuZGlzdGluY3QsaD1bXSxpPSEwO2lmKGQubGVuZ3RoKXtpc0Z1bmN0aW9uKGIpPyhmPWIsInN0cmluZyI9PXR5cGVvZiBjJiYoZz1jKSk6InN0cmluZyI9PXR5cGVvZiBiJiYoZz1iKTtmb3IodmFyIGo9YS5tYXAoZCxmdW5jdGlvbihhKXtyZXR1cm4gZihhLnZhbHVlKX0pLGs9MDtrPGoubGVuZ3RoOysraylpZihqW2tdLmxlbmd0aCl7Zm9yKHZhciBsPTA7bDxoLmxlbmd0aDsrK2wpaFtsXT09altrXSYmKGk9ITEpO2gucHVzaChqW2tdKX1pfHwoZShkLGcpLHRoaXMucmVkdWN0aW9uPWEoW10pKX1yZXR1cm4gdGhpc30sc3VtOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7cmV0dXJuIGQubGVuZ3RoJiZiIT1mKGQpJiYoZShkLGN8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5zdW0se3N1bTpifSkpLHRoaXMucmVkdWN0aW9uPWEoW10pKSx0aGlzfSxzdW1NYXg6ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtyZXR1cm4gZC5sZW5ndGgmJmI8ZihkKSYmKGUoZCxjfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuc3VtTWF4LHttYXg6Yn0pKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSksdGhpc30sc3VtTWluOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7cmV0dXJuIGQubGVuZ3RoJiZiPGYoZCkmJihlKGQsY3x8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnN1bU1pbix7bWluOmJ9KSksdGhpcy5yZWR1Y3Rpb249YShbXSkpLHRoaXN9LHJhZGlvQ2hlY2tlZDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO2QuaXMoIjpyYWRpbyIpJiZkLmZpbmQoIjpjaGVja2VkIikudmFsKCkhPWImJmUoZCxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhZGlvQ2hlY2tlZCl9LHJhZGlvTm90Q2hlY2tlZDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO2QuaXMoIjpyYWRpbyIpJiZkLmZpbHRlcigiOmNoZWNrZWQiKS52YWwoKT09YiYmZShkLGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKX0sY2hlY2tib3hDaGVja2VkOmZ1bmN0aW9uKGIpe3ZhciBjPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO2MuaXMoIjpjaGVja2JveCIpJiYhYy5pcygiOmNoZWNrZWQiKSYmKGUoYyxifHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhZGlvQ2hlY2tlZCksYy5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIikpfSxhc3NlcnQ6ZnVuY3Rpb24oYyxkKXt2YXIgZj10aGlzLnJlZHVjdGlvbnx8dGhpcztpZihmLmxlbmd0aCl7aWYoaXNGdW5jdGlvbihjKSlyZXR1cm4gYih0aGlzLGMsZHx8YS52YWxpZGl0eS5tZXNzYWdlcy5nZW5lcmljKTtjfHwoZShmLGR8fGEudmFsaWRpdHkubWVzc2FnZXMuZ2VuZXJpYyksdGhpcy5yZWR1Y3Rpb249YShbXSkpfXJldHVybiB0aGlzfX0pLGEuZm4uZXh0ZW5kKHt2YWxpZEFsbG9yTm9uZTpmdW5jdGlvbigpe3ZhciBiPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGM9ITA7cmV0dXJuIGIuZWFjaChmdW5jdGlvbigpe2lmKCIiIT1hKHRoaXMpLnZhbCgpKXJldHVybiBiLmVhY2goZnVuY3Rpb24oKXsiIj09YSh0aGlzKS52YWwoKSYmKGM9ITEsZCh0aGlzLGcoIiIse2ZpZWxkOmgodGhpcyl9KSkpfSksITF9KSx0aGlzfSxyZXF1aXJlV2l0aFdhdGVybWFyazpmdW5jdGlvbihjKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPWZ1bmN0aW9uKGEpe3JldHVybiAwPGEudHJpbSgpLmxlbmd0aH0sZD1hKGIpLmF0dHIoImFsdCIpLGU9YShiKS52YWwoKS50cmltKCk7cmV0dXJuIGQ\/ZCE9ZSYmYyhlKTpjKGUpfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJlcXVpcmUpfSxyZXF1aXJlUG9zdGFsQ29kZTpmdW5jdGlvbihjKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPWEoYikudmFsKCkucmVwbGFjZSgvXHMvZywiIikucmVwbGFjZSgvW15BLXowLTldL2csIjAiKS50b1VwcGVyQ2FzZSgpO2lmKDA9PWMubGVuZ3RoKXJldHVybiEwO2lmKDU+Yy5sZW5ndGgpcmV0dXJuITE7aWYoWmlwUmVnZXg9YS52YWxpZGl0eS5wYXR0ZXJucy56aXAsbnVsbCE9Yy5tYXRjaChaaXBSZWdleCkpcmV0dXJuITA7cmV0dXJuIENhbmFkYVBvc3RSZWdleD0vW0FCQ0VHSEpLTE1OUFJTVFZXWFlaXVswLTldW0FCQ0VHSEpLTE1OUFJTVFZXWFlaXVswLTldW0FCQ0VHSEpLTE1OUFJTVFZXWFlaXVswLTldLyxudWxsIT1jLm1hdGNoKENhbmFkYVBvc3RSZWdleCkmJihhKGIpLnZhbChjLnN1YnN0cmluZygwLDMpKyIgIitjLnN1YnN0cmluZygzLDYpKSwhMCl9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmVxdWlyZSl9LHZhbGlkRW1haWxBZGRyZXNzOmZ1bmN0aW9uKGMpe3ZhciBkPXRoaXMsZT1bIi5jb20iLCIuY2EiLCIubmV0IiwiLmJpeiIsIi5xdWViZWMiLCIuY28iLCIuaW5mbyIsIi5tb2JpIiwiLm9yZyIsIi5pbmMiXTsxPT1hKCIjQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siKS5sZW5ndGgmJiIxIiE9YSgiI0FETUlOX0dFTkVSQUxfQkxPQ0tfRlJfRE9NQUlOX0NIRUNLIikudmFsKCkmJmUucHVzaCgiLmZyIik7dmFyIGY9Yih0aGlzLGZ1bmN0aW9uKGIpe3JldHVybiBydWxlPWEudmFsaWRpdHkucGF0dGVybnMuZW1haWwscnVsZS5nbG9iYWwmJihydWxlLmxhc3RJbmRleD0wKSwhYi52YWx1ZS5sZW5ndGh8fHJ1bGUudGVzdChiLnZhbHVlKX0sIiIpO3JldHVybiBmP2IodGhpcyxmdW5jdGlvbihiKXt2YXIgYz1hKGIpLnZhbCgpLnRvTG93ZXJDYXNlKCksZD0hMTtpZighYy5sZW5ndGgpcmV0dXJuITA7U3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aHx8KFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGg9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGgtYS5sZW5ndGg7cmV0dXJuIDA8PWImJnRoaXMubGFzdEluZGV4T2YoYSk9PT1ifSk7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspYy50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGVbZl0pJiYoZD0hMCk7aWYoITE9PWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXIpe3ZhciBnPSEwO3JldHVybiBlbWFpbEhhbmRsZXIudmFsaWRhdGVFbWFpbChjKS5kb25lKGZ1bmN0aW9uKGEpeyJpbnZhbGlkIj09PWEuc3RhdHVzJiYoZz0hMSl9KSxnfXJldHVybiEwfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLmVtYWlsKTpjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLmVtYWlsfSxyYWRpb09wdGlvbkNob3NlbjpmdW5jdGlvbihiKXt2YXIgYz0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxkPXt9O2Zvcih2YXIgZiBpbiBjLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLmF0dHIoIm5hbWUiKTsidW5kZWZpbmVkIj09dHlwZW9mIGRbYl0mJihkW2JdPVtdKSxkW2JdLnB1c2godGhpcyl9KSxkKTA9PWEoZFtmXSkuZmlsdGVyKCI6cmFkaW8iKS5maWx0ZXIoIjpjaGVja2VkIikubGVuZ3RoJiZlKGEoZFtmXSksYnx8YS52YWxpZGl0eS5tZXNzYWdlcy5yYWRpb0NoZWNrZWQpfSxvbmVPck1vcmVDaGVja2VkOmZ1bmN0aW9uKGIpe3ZhciBjPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO2MuZWFjaChmdW5jdGlvbigpe3ZhciBkPWMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuISFhKHRoaXMpLmlzKCJbdHlwZT1jaGVja2JveF06Y2hlY2tlZCIpfSkubGVuZ3RoOzA9PWQmJihjLnBhcmVudHMoInVsIikuZmlyc3QoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksZShjLGJ8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKSl9KX0sdmFsaWRhdGVNb2JpbGU6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGU9ITAsZj0iIixnPWEoZCkubGVuZ3RoLGg9WzQzOCw1MTQsMjYzLDQ1MCw1NzksODE5LDI0OSw3MDUsMjI2LDUxOSwyODksMzY1LDkwNSw0MTYsNDM3LDY0NywzNDMsNjEzLDcwOSw4NzMsNDE4LDU4MSw1MDYsOTAyXSxqPTA7ajw9ZztqKyspaWYoajxnKWYrPWEoYShkKVtqXSkudmFsKCk7ZWxzZXtpZihmPWYucmVwbGFjZSgvW14wLTldKy9naSwiIiksMD09PWYubGVuZ3RoKXJldHVybiBiKGQsKCk9PiEwLGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpOyIxIj09ZlswXSYmKGY9Zi5zdWJzdHJpbmcoMSkpO3ZhciBrPXBhcnNlSW50KGYuc3Vic3RyaW5nKDAsMykpO2EuYWpheCh7dXJsOiJodHRwczovL3Jlc3QuZDJjbWVkaWEuY2Evc2l0ZXMvc3ZjL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwIix0eXBlOiJHRVQiLGFzeW5jOiExLHRpbWVvdXQ6MmUzLGRhdGFUeXBlOiJqc29uIixkYXRhOntwaG9uZTpmLG1vYmlsZToxLGFyZWFjb2RlOiJDQSJ9fSkuZG9uZShmdW5jdGlvbihmKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGYuaXNPaykhMT09PWYucGhvbmVOdW1iZXJJc1ZhbGlkJiYoZT0hMSk7ZWxzZSBpZigidW5kZWZpbmVkIiE9dHlwZW9mIGguaW5kZXhPZiYmLTE9PWguaW5kZXhPZihrKSlyZXR1cm4hMTtyZXR1cm4gYihkLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpfSkuZmFpbChmdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgaC5pbmRleE9mJiYtMT09aC5pbmRleE9mKGspJiYoZT0hMSksYihkLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpfSl9fSx2YWxpZGF0ZVBob25lOmZ1bmN0aW9uKGMpe2Zvcih2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxlPSEwLGY9IiIsZz1hKGQpLmxlbmd0aCxoPVs0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiw1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLDYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMl0saj0wO2o8PWc7aisrKWlmKGo8ZylmKz1hKGEoZClbal0pLnZhbCgpO2Vsc2V7aWYoZj1mLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpLCJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiZ0aGlzLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYoZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PSEwKSwwPT09Zi5sZW5ndGgpcmV0dXJuIGIoZCwoKT0+ITAsY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSk7IjEiPT1mWzBdJiYoZj1mLnN1YnN0cmluZygxKSk7dmFyIGs9cGFyc2VJbnQoZi5zdWJzdHJpbmcoMCwzKSk7YS5hamF4KHt1cmw6Imh0dHBzOi8vcmVzdC5kMmNtZWRpYS5jYS9zaXRlcy9zdmMvdmFsaWRhdGVQaG9uZU51bWJlci5waHAiLHR5cGU6IkdFVCIsYXN5bmM6ITEsdGltZW91dDoyZTMsZGF0YVR5cGU6Impzb24iLGRhdGE6e3Bob25lOmYsYXJlYWNvZGU6IkNBIn19KS5kb25lKGZ1bmN0aW9uKGYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZi5pc09rKSExPT09Zi5waG9uZU51bWJlcklzVmFsaWQmJigidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlciYmZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5JiZlbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKyxlPSExKTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5pbmRleE9mJiYtMT09aC5pbmRleE9mKGspKXJldHVybiExO3JldHVybiBiKGQsZnVuY3Rpb24oKXtyZXR1cm4gZX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSl9KS5mYWlsKGZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBoLmluZGV4T2YmJi0xPT1oLmluZGV4T2YoaykmJigidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlciYmZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5JiZlbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKyxlPSExKSxiKGQsZnVuY3Rpb24oKXtyZXR1cm4gZX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSl9KX19fSl9KShqUXVlcnkpLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSl7cmV0dXJuIGEuYXR0cigiaWQiKS5sZW5ndGg\/YS5hdHRyKCJpZCIpOmEuYXR0cigibmFtZSIpfWEudmFsaWRpdHkub3V0cHV0cy5sYWJlbD17c3RhcnQ6ZnVuY3Rpb24oKXthKCJsYWJlbC4iK2EudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MpLnJlbW92ZSgpfSxlbmQ6ZnVuY3Rpb24oYil7IWIudmFsaWQmJmEudmFsaWRpdHkuc2V0dGluZ3Muc2Nyb2xsVG8mJihsb2NhdGlvbi5oYXNoPWEoImxhYmVsLiIrYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcysiOmVxKDApIikuYXR0cigiZm9yIikpfSxyYWlzZTpmdW5jdGlvbihjLGQpe3ZhciBlPSJsYWJlbC4iK2EudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MrIltmb3I9JyIrYihjKSsiJ10iO2EoZSkubGVuZ3RoP2EoZSkudGV4dChkKTphKCI8bGFiZWwvPiIpLmF0dHIoImZvciIsYihjKSkuYWRkQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykudGV4dChkKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yy5sZW5ndGgmJmNbMF0uc2VsZWN0KCl9KS5pbnNlcnRBZnRlcihjKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpLGZ1bmN0aW9uKGEpe2EudmFsaWRpdHkub3V0cHV0cy5tb2RhbD17c3RhcnQ6ZnVuY3Rpb24oKXthKCIudmFsaWRpdHktbW9kYWwtbXNnIikucmVtb3ZlKCl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YSgiLnZhbGlkaXR5LW1vZGFsLW1zZzplcSgwKSIpLmF0dHIoImlkIikpfSxyYWlzZTpmdW5jdGlvbihiLGMpe2lmKGIubGVuZ3RoKXt2YXIgZD1iLm9mZnNldCgpLGU9Yi5nZXQoMCksZj17bGVmdDpwYXJzZUludChkLmxlZnQrYi53aWR0aCgpKzQsMTApKyJweCIsdG9wOnBhcnNlSW50KGQudG9wLTEwLDEwKSsicHgifTthKCI8ZGl2Lz4iKS5hZGRDbGFzcygidmFsaWRpdHktbW9kYWwtbXNnIikuY3NzKGYpLnRleHQoYykub24oImNsaWNrIixhLnZhbGlkaXR5LnNldHRpbmdzLm1vZGFsRXJyb3JzQ2xpY2thYmxlP2Z1bmN0aW9uKCl7YSh0aGlzKS5yZW1vdmUoKX06bnVsbCkuYXBwZW5kVG8oImJvZHkiKX19LHJhaXNlQWdncmVnYXRlOmZ1bmN0aW9uKGIsYyl7Yi5sZW5ndGgmJnRoaXMucmFpc2UoYShiLmdldChiLmxlbmd0aC0xKSksYyl9fX0oalF1ZXJ5KSxmdW5jdGlvbihhKXt2YXIgYj1bXTthLnZhbGlkaXR5Lm91dHB1dHMuc3VtbWFyeT17c3RhcnQ6ZnVuY3Rpb24oKXthKCIudmFsaWRpdHktZXJyb25lb3VzIikucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGI9W119LGVuZDpmdW5jdGlvbigpe2lmKGEoIi52YWxpZGl0eS1zdW1tYXJ5LWNvbnRhaW5lciIpLmhpZGUoKS5maW5kKCJ1bCIpLmh0bWwoIiIpLGIubGVuZ3RoKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylhKCI8bGkvPiIpLnRleHQoYltjXSkuYXBwZW5kVG8oIi52YWxpZGl0eS1zdW1tYXJ5LWNvbnRhaW5lciB1bCIpO2EoIi52YWxpZGl0eS1zdW1tYXJ5LWNvbnRhaW5lciIpLnNob3coKSxhLnZhbGlkaXR5LnNldHRpbmdzLnNjcm9sbFRvJiYobG9jYXRpb24uaGFzaD1hKCIudmFsaWRpdHktZXJyb25lb3VzOmVxKDApIikuYXR0cigiaWQiKSl9fSxyYWlzZTpmdW5jdGlvbihhLGMpe2IucHVzaChjKTt2YXIgZD1hLmNsb3Nlc3QoImZvcm0iKS5oYXNDbGFzcygianF0cmFuc2Zvcm1kb25lIik7YS5wYXJlbnQoKS5pcygiZGl2IikmJmQ\/KGEucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKTphLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYSxiKXt0aGlzLnJhaXNlKGEsYil9LGNvbnRhaW5lcjpmdW5jdGlvbigpe2RvY3VtZW50LndyaXRlKCI8ZGl2IGNsYXNzPVwidmFsaWRpdHktc3VtbWFyeS1jb250YWluZXJcIj5UaGUgZm9ybSBkaWRuJ3Qgc3VibWl0IGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbihzKTo8dWw+PC91bD48L2Rpdj4iKX19fShqUXVlcnkpLGZ1bmN0aW9uKCl7dmFyIGE9ZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX07JC52YWxpZGl0eS5vdXRwdXRzLnF1aWNrbWFpbD17c3RhcnQ6ZnVuY3Rpb24oKXt9LGVuZDpmdW5jdGlvbigpe30scmFpc2U6ZnVuY3Rpb24oYSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhLldhdGVybWFyayYmInVuZGVmaW5lZCIhPWEuYXR0cigiYWx0Iikpe2EuV2F0ZXJtYXJrKGEuYXR0cigiYWx0IiksIiNGRkJBQkEiKTt2YXIgYj1mdW5jdGlvbigpe2EuV2F0ZXJtYXJrKGEuYXR0cigiYWx0IikpfX1lbHNle2EuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIiwiI2ZmN2U3OSIpO3ZhciBiPWZ1bmN0aW9uKCl7dG1wPXRtcD90bXA6InRyYW5zcGFyZW50IixhLmNzcygiYmFja2dyb3VuZC1jb2xvciIsdG1wKX19JChkb2N1bWVudCkub24oIm1vdXNlZG93biIsYil9LGNvbnRhaW5lcjpmdW5jdGlvbigpe319LCQudmFsaWRpdHkub3V0cHV0cy5wb3B1cD17c3RhcnQ6ZnVuY3Rpb24oKXskKGRvY3VtZW50KS5vZmYoInRvdWNoc3RhcnQgbW91c2Vkb3duIiwiLnZhbGlkaXR5LWVycm9uZW91cyIsYSl9LGVuZDpmdW5jdGlvbihiKXtyZXR1cm4gYi52YWxpZHx8JChkb2N1bWVudCkub24oInRvdWNoc3RhcnQgbW91c2Vkb3duIiwiLnZhbGlkaXR5LWVycm9uZW91cyIsYSksYn0scmFpc2U6ZnVuY3Rpb24oYSl7dmFyIGI9YS5jbG9zZXN0KCJmb3JtIikuaGFzQ2xhc3MoImpxdHJhbnNmb3JtZG9uZSIpO2EucGFyZW50KCkuaXMoImRpdiIpJiZiPyhhLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSxhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSk6YS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9LHJhaXNlQWdncmVnYXRlOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKGEpLGEuaXMoIjpyYWRpbyIpJiZhLmlzKCIuanFUcmFuc2Zvcm1IaWRkZW4iKSYmYS5wYXJlbnQoKS5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9fX0oKSxmdW5jdGlvbihhKXthLnZhbGlkaXR5Lm91dHB1dHMuY3NzT25seT17c3RhcnQ6ZnVuY3Rpb24oKXthKGEudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MpLnJlbW92ZUNsYXNzKGEudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MpfSxlbmQ6ZnVuY3Rpb24oYil7IWIudmFsaWQmJmEudmFsaWRpdHkuc2V0dGluZ3Muc2Nyb2xsVG8mJihsb2NhdGlvbi5oYXNoPWEoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcysiOmVxKDApIikuYXR0cigiaWQiKSl9LHJhaXNlOmZ1bmN0aW9uKGIpe2EoYikuYWRkQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcyl9LHJhaXNlQWdncmVnYXRlOmZ1bmN0aW9uKGIsYyl7Yi5sZW5ndGgmJnRoaXMucmFpc2UoYShiLmdldChiLmxlbmd0aC0xKSksYyl9fX0oalF1ZXJ5KTsKLyoqIC9qcy9tYWluLmpzICoqLwp2YXIgX19fZDJjX21haW5qc19jX29uPSIyMDI2LTAyLTI2IDA5OjMwOjA0IjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1jKXJldHVybiBhW2JdO2M9YVtjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmFbYl19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYSxiLGMsZCl7YiYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGEsYixjLGQpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGEsYixjLGQpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe2M9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlyZXR1cm47Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuc3BsaXQoIi4iKTthPTE9PT1lLmxlbmd0aDtkPWVbMF07ZD0hYSYmZCBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIGs9MDtrPGUubGVuZ3RoLTE7aysrKXt2YXIgaD1lW2tdO2lmKCEoaCBpbiBkKSlyZXR1cm47ZD1kW2hdfWU9ZVtlLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2RbZV06bnVsbDtiPWIoYyk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxlLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChlKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitlKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGQsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBjPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGMudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGQpO2lmKCFkLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxkO3ZhciBlPWQudmFsdWV9Y2F0Y2goayl7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhrKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gayhoKXtoLmRvbmU\/ZChoLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoaC52YWx1ZSkudGhlbihiLGMpLnRoZW4oayxlKX1rKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKalF1ZXJ5Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4galF1ZXJ5fTtqUXVlcnkuZXZlbnQuc3BlY2lhbC50b3VjaHN0YXJ0PXtzZXR1cDpmdW5jdGlvbihhLGIsYyl7Yi5pbmNsdWRlcygibm9QcmV2ZW50RGVmYXVsdCIpP3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYyx7cGFzc2l2ZTohMX0pOnRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYyx7cGFzc2l2ZTohMH0pfX07alF1ZXJ5LmV4cHIucHNldWRvcy5yZWFsbHlWaXNpYmxlPWZ1bmN0aW9uKGEpe3RyeXtpZihhPT1kb2N1bWVudC5ib2R5KXJldHVybiEwO3ZhciBiPWpRdWVyeShhKTtyZXR1cm4gYi5pcygiOnZpc2libGUiKSYmImhpZGRlbiIhPT1iLmNzcygidmlzaWJpbGl0eSIpJiYwPGIucGFyZW50KCI6cmVhbGx5VmlzaWJsZSIpLmxlbmd0aH1jYXRjaChjKXtyZXR1cm4gY29uc29sZS5sb2coYy5tZXNzYWdlLGMpLCExfX07CkFycmF5LnByb3RvdHlwZS5maW5kfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCJmaW5kIix7dmFsdWU6ZnVuY3Rpb24oYSxiKXtpZihudWxsPT10aGlzKXRocm93IFR5cGVFcnJvcignInRoaXMiIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTt2YXIgYz1PYmplY3QodGhpcyksZD1jLmxlbmd0aD4+PjA7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IFR5cGVFcnJvcigicHJlZGljYXRlIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Zvcih2YXIgZT0wO2U8ZDspe3ZhciBrPWNbZV07aWYoYS5jYWxsKGIsayxlLGMpKXJldHVybiBrO2UrK319LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOwp2YXIgaXNGdW5jdGlvbj1hPT4iZnVuY3Rpb24iPT09dHlwZW9mIGEsdHJpbT1hPT5hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKSxkZWJ1Zz1mdW5jdGlvbigpe2lmKGRlYnVnRW5hYmxlZCgpKXt2YXIgYT1jb25zb2xlLGI9YXJndW1lbnRzOyJmdW5jdGlvbiI9PXR5cGVvZiBhLmxvZyYmYS5sb2cuYXBwbHkoYSxiKX19LGRlYnVnRW5hYmxlZD1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmxvY2F0aW9uLmhvc3Q7dmFyIGI9ZG9jdW1lbnQuY29va2llLm1hdGNoKC90ZXN0aW5nPShbXjtdKykvaSk7Yj1udWxsPT1iPyExOmJbMV07cmV0dXJuIGJ8fC9eKGRlYWxlcnxkZW1vKXxkMmNtZWRpYVwuY2EkLy50ZXN0KGEpJiYib2ZmIiE9Yn0sZW5hYmxlRGVidWc9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgidGVzdGluZyIsIm9uIil9LGRpc2FibGVEZWJ1Zz1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJ0ZXN0aW5nIiwib2ZmIil9LEFsZXJ0QmFyPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc2VjdGlvbnMudG9Mb3dlckNhc2UoKSwKYz1hLmN1cnJlbnQudG9Mb3dlckNhc2UoKSxkPSQoIi5oZWFkZXItd3JhcHBlciIpLmxlbmd0aD8kKCIuaGVhZGVyLXdyYXBwZXIiKTokKCIjbWFpbkRpdiIpLGU9JCgiI2FsZXJ0TXNnQ29udGFpbmVyIiksaz0kKCJib2R5IiksaD0kKCIuQWRkZWRUb3BMaW5rRGl2Iiksbj1uZXcgRGF0ZTtuLnNldFRpbWUobi5nZXRUaW1lKCkrMzZFNSk7dmFyIHg9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgiYWxlcnRNZXNzYWdlQ2xvc2VkIiwxLG4sIi8iKTtlLmhpZGUoKTtkLmNzcyh7bWFyZ2luVG9wOjB9KTtrLmNzcygiYmFja2dyb3VuZC1wb3NpdGlvbi15IiwiIik7MDxoLmxlbmd0aCYmaC5jc3MoIm1hcmdpbi10b3AiLCIiKX07LTE8Yi5pbmRleE9mKGMpJiYhQ29va2llcy5nZXQoImFsZXJ0TWVzc2FnZUNsb3NlZCIpJiYoZS5jc3Moe2JhY2tncm91bmRDb2xvcjphLmNvbG9yfSksJCgiLmNsb3NlIixlKS5vbigiY2xpY2siLHgpLGQuY3NzKCJtYXJnaW4tdG9wIixlLmhlaWdodCgpKyJweCIpLAprLmNzcyh7ImJhY2tncm91bmQtcG9zaXRpb24teSI6ZS5oZWlnaHQoKSsicHgifSksMDxoLmxlbmd0aCYmaC5jc3MoIm1hcmdpbi10b3AiLGUuaGVpZ2h0KCkrInB4IiksZS5zaG93KCkpfTtmdW5jdGlvbiBMZWFkR2VuQURGKGEsYixjLGQsZSxrLGgsbil7aWYodHlwZW9mIGNhcnByb29mSGFuZGxlcilyZXR1cm4gY2FycHJvb2ZIYW5kbGVyLmxlYWRHZW4uYXBwbHkoY2FycHJvb2ZIYW5kbGVyLGFyZ3VtZW50cyl9CmZ1bmN0aW9uIHJ1bkltYWdlUG9wdXBGaXJld29ya3MoKXsidW5kZWZpbmVkIiE9dHlwZW9mIEZpcmV3b3JrVGltZXImJihpbWFnZUZpcmV3b3Jrcz0hMCxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiRkZGRkZGIiwyMDAsMjAwKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiRkYwMDAwIiwzODAsMjUwLDFFMyksRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIjAwZmYxMSIsOTAsMTcwLDJFMyksRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIjQ0Y2RmZiIsMzIwLDI1MCwzRTMsMCwuOCksc2V0VGltZW91dChmdW5jdGlvbigpe3J1bkltYWdlUG9wdXBGaXJld29ya3MoKX0sMUU0KSl9CmZ1bmN0aW9uIGhhbmRsZUFjdGlvbkNsaWNrKGEpe2E9YXx8d2luZG93LmV2ZW50O2E9YS5jdXJyZW50VGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dmFyIGI9d2luZG93LmxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKHdpbmRvdy5sb2NhdGlvbi5ocmVmLmxhc3RJbmRleE9mKCIvIikrMSksYz0idXNlZCI7dmFyIGQ9IiI7aWYoLTE9PXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi1pZCIpKXtkPWIucmVwbGFjZSgiLmh0bWwiLCIiKS5zcGxpdCgiLSIpO2lmKDM+ZC5sZW5ndGh8fC0xPGIuaW5kZXhPZigic2VhcmNoIil8fC0xPGIuaW5kZXhPZigiZmluZC0iKXx8LTE8Yi5pbmRleE9mKCJyZWNoZXJjaGUiKXx8LTE8Yi5pbmRleE9mKCJwcml4LSIpfHwtMTxiLmluZGV4T2YoInByaWNlLSIpfHwtMTxiLmluZGV4T2YoImVzc2Fpcy1yb3V0aWVyLSIpfHwtMTxiLmluZGV4T2YoInRlc3QtZHJpdmUtIil8fC0xPGIuaW5kZXhPZigidmVoaWN1bGUtZWNoYW5nZS0iKXx8LTE8Yi5pbmRleE9mKCJ0cmFkZS1pbi0iKXx8Ci0xPGIuaW5kZXhPZigicG5ldXMtcGllY2VzLSIpfHwtMTxiLmluZGV4T2YoImNhci1wYXJ0cy0iKXx8LTE8Yi5pbmRleE9mKCJyZW5kZXotdm91cy0iKXx8LTE8Yi5pbmRleE9mKCItYXBwb2ludG1lbnQiKXx8LTE8Yi5pbmRleE9mKCJjcmVkaXQiKXx8LTE8Yi5pbmRleE9mKCJmaW5hbmNlbWVudCIpfHwtMTxiLmluZGV4T2YoInByZS1hcHBybyIpfHwtMTxiLmluZGV4T2YoIm5ldy13ZXN0Iil8fC0xPGIuaW5kZXhPZigiY29uZmlkZW50aWFsaXRlIil8fC0xPGIuaW5kZXhPZigicHJpdmFjeS1wb2xpY3kiKXx8LTE8Yi5pbmRleE9mKCJ0ZXJtZXMtZXQtY29uZGl0aW9ucyIpfHwtMTxiLmluZGV4T2YoInRlcm1zLWFuZC1jb25kaXRpb25zIikpZD0iLmh0bWwiO2Vsc2V7dmFyIGU9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOyJ1bmRlZmluZWQiPT10eXBlb2YgZFsyXXx8ZSE9ZFsyXSYmZSsxIT1kWzJdfHwoYz0ibmV3Iik7ZD0iLyIrYn1kPWEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5yZXBsYWNlKCIuaHRtbCIsCmQpfWVsc2V7c3dpdGNoKGEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKSl7Y2FzZSAiVGVzdERyaXZlQWN0aW9uQm94IjpkPSQoIiN0ZXN0RHJpdmVGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIlByaWNlQWN0aW9uQm94IjpkPSQoIiNwcmljZVJlcXVlc3RGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIkV2YWxBY3Rpb25Cb3giOmQ9JCgiI2V2YWxDYXJGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIkZpbmFuY2VBY3Rpb25Cb3giOmQ9JCgiI0ZpbmFuY2VGb2xkZXIiKS52YWwoKStiO2JyZWFrO2RlZmF1bHQ6InVuZGVmaW5lZCIhPXR5cGVvZiAkKGEpLmF0dHIoImZvbGRlciIpP2Q9JChhKS5hdHRyKCJmb2xkZXIiKToidW5kZWZpbmVkIiE9dHlwZW9mICQoYSkuYXR0cigidGFyZ2V0dXJpIikmJihkPSQoYSkuYXR0cigidGFyZ2V0dXJpIikpfUNvb2tpZXMuc2V0KCJmcm9tZGV0YWlsc3BhZ2UiLCIxIixudWxsLCIvIil9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZudWxsIT0KZCYmMDxkLmxlbmd0aCl7Yj1kMmNtZWRpYS5odG1sRmlsZSghMSwhMCk7ZT1iLnNwbGl0KCItIik7dmFyIGs9IiIsaD0iIixuPSIiOzA8ZS5sZW5ndGgmJihrPWVbMF0pOzE8ZS5sZW5ndGgmJihoPWVbMV0pOzI8ZS5sZW5ndGgmJihuPWVbMl0pOzA8ay5sZW5ndGgmJjA8aC5sZW5ndGgmJjA8bi5sZW5ndGgmJiFpc05hTihuKSYmND09bi50b1N0cmluZygpLmxlbmd0aCYmLTE8ZC5pbmRleE9mKCIuaHRtIikmJihlPWEuZ2V0QXR0cmlidXRlKCJmb2xkZXIiKSxkPSJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9ZT9lOmQuc3Vic3RyaW5nKDAsZC5sYXN0SW5kZXhPZigiLyIpKzEpLGQ9ZC5yZXBsYWNlKCIuaHRtbCIsIi8iKStiKyIuaHRtbCIpOyQoYSkuaGFzQ2xhc3MoInRyYWRlaW5MaW5rIikmJigwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJ0cmFkZWludmFsdWVzIil8fDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpKT8Kc2hvd1RyYWRlSW5Qb3B1cChhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikpOigibmV3Ij09YyYmKGQ9ZC5yZXBsYWNlKCJvY2Nhc2lvbiIsIm5ldWYiKS5yZXBsYWNlKCJ1c2VkIiwibmV3IikpLHdpbmRvdy5sb2NhdGlvbi5ocmVmPWQpfX0KZnVuY3Rpb24gb3BlbkZpbmFuY2VNdWx0aXN0ZXBGb3JtT25DdXJyZW50UGFnZShhLGIsYyxkLGUsayxoKXthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtiPyQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKGIpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoJCgiLmJyYW5kZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYkKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVtYWtlIikudmFsKCkpO2M\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKGMpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKCQoIi5tb2RlbGVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmCiQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVtb2RlbCIpLnZhbCgpKTtkPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKGQpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoJCgiLnllYXJlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW15ZWFyIikudmFsKCkpO2U\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKGUpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCIiKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpKTsKaz8kKCIjdG9wY2FyaWRNdWx0aXN0ZXBGb3JtIikudmFsKGspOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIikmJiQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoIiIpO2gmJihoLnNlbmRUbyYmJCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9fRU1BSUwiKS52YWwoaC5zZW5kVG8pLGguc2VuZFRvQWRmJiYkKCIjRklOQU5DRV9GT1JNX1NFTkRUT0FERl9FTUFJTCIpLnZhbChoLnNlbmRUb0FkZiksaC5kZWFsZXJOYW1lJiYkKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiKS52YWwoaC5kZWFsZXJOYW1lKSk7YT0iZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIjskKCIjRmluYW5jZV9Gb3JtVHlwZSIpLmxlbmd0aCYmIm11bHRpc3RlcEluc3RhbnQiPT0kKCIjRmluYW5jZV9Gb3JtVHlwZSIpLnZhbCgpJiYkKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGE9ImZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiKTsKJCgiIyIrYSkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSl9ZnVuY3Rpb24gb3BlblNob3dyb29tQ29udGFjdFBvcHVwKGEsYixjLGQpe2EucHJldmVudERlZmF1bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2VtYWlsSGFuZGxlci5tYWtlPWI7JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKGIpO2VtYWlsSGFuZGxlci5tb2RlbD1jOyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoYyk7ZW1haWxIYW5kbGVyLnllYXI9ZDskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoZCk7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9dmFyIGQyY21lZGlhPWQyY21lZGlhfHx7fTsKZDJjbWVkaWEuc2Nyb2xsVG89ZnVuY3Rpb24oYSxiLGMpeyJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9MUUzKTsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPTApOyQoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6JChhKS5vZmZzZXQoKS50b3AtYn0sYyk7cmV0dXJuITF9OwpkMmNtZWRpYS51cmw9e19zYW5pdGl6ZTohMCxkZXNhbml0aXplOmZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpcmV0dXJuIGEucmVwbGFjZSgvXy9nLCItIik7aWYoIm9iamVjdCI9PT10eXBlb2YgYSl7Zm9yKHZhciBiIGluIGEpYVtiXT10aGlzLmRlc2FuaXRpemUoYVtiXSk7cmV0dXJuIGF9fSxnZW5lcmF0ZTpmdW5jdGlvbigpe3ZhciBhPSIiO3RoaXMuX3Nhbml0aXplJiYoYXJndW1lbnRzPXRoaXMuc2FuaXRpemUoYXJndW1lbnRzKSk7Zm9yKGk9MDtpPGFyZ3VtZW50cy5sZW5ndGgtMTtpKyspYSs9YXJndW1lbnRzW2ldKyItIjtyZXR1cm4gYSthcmd1bWVudHNbaV0rIi5odG1sIn0scGFyc2U6ZnVuY3Rpb24oKXt1cmw9ZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LlVSTCk7c3RyUGFyYW09dXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoIi8iKSk7b2JqUGFyYW09e21ha2U6bnVsbCxtb2RlbDpudWxsLHllYXI6bnVsbCxpZDpudWxsfTtmb3VuZD0hMTsKdmFyIGE7bnVsbCE9KGE9c3RyUGFyYW0ubWF0Y2goL15cLygyMFswLTldezJ9fDE5WzAtOV17Mn0pLShbXi1dKy1bXi1cLl0rKSguKlwuaHRtbCkvKSkmJihzdHJQYXJhbT0iLyIrYVsyXSsiLSIrYVsxXSthWzNdKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKC4qKS0oXGR7NH0pKC1pZChcZCopKT8uaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLG9ialBhcmFtLnllYXI9YVszXSxvYmpQYXJhbS5pZD1hWzVdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKC4qKS0oXGR7NH0pKC1jXGQqKT8uaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLG9ialBhcmFtLnllYXI9YVszXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLShcZHs0fSkuaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9CmFbMV0sb2JqUGFyYW0ueWVhcj1hWzJdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKFteLl0qKS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLGZvdW5kPSEwKTt0aGlzLl9zYW5pdGl6ZSYmKG9ialBhcmFtPXRoaXMuZGVzYW5pdGl6ZShvYmpQYXJhbSkpO3JldHVybiBvYmpQYXJhbX0sc2FuaXRpemU6ZnVuY3Rpb24oYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYSlyZXR1cm4gYS5yZXBsYWNlKC8tL2csIl8iKTtpZigib2JqZWN0Ij09PXR5cGVvZiBhKXtmb3IodmFyIGIgaW4gYSlhW2JdPXRoaXMuc2FuaXRpemUoYVtiXSk7cmV0dXJuIGF9fSxzYW5pdGl6ZVJlZmVyZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvWyciYCgpPD5cW1xde318IV0vZywKIiIpfX07ZDJjbWVkaWEuZ2V0SHR0cFRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ij09ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wmJiQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLmxlbmd0aCYmImxpdmUiPT0kKCIjdG9wZGVwbG95bWVudHR5cGUiKS52YWwoKT8iaHR0cHMiOiJodHRwIn07ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyPWZ1bmN0aW9uKGEpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYT8iIjphLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc2xpY2UoMSl9O2QyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkPWZ1bmN0aW9uKGEpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYT8iIjphLnNwbGl0KCIgIikucmVkdWNlKGZ1bmN0aW9uKGIsYyl7Yz1kMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXIoYyk7cmV0dXJuIGI\/YisiICIrYzpjfSwiIil9OwpkMmNtZWRpYS5zYWZlU3RyaW5nPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2IudGV4dENvbnRlbnQ9YTtyZXR1cm4gYi5pbm5lclRleHR9OwpkMmNtZWRpYS5odG1sRmlsZT1mdW5jdGlvbihhLGIpe3ZhciBjPXdpbmRvdy5sb2NhdGlvbi5zZWFyY2gubGVuZ3RoJiYtMTx3aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoInBhdGg9Iik\/d2luZG93LmxvY2F0aW9uLnNlYXJjaDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7Yz1jLnN1YnN0cmluZyhjLmxhc3RJbmRleE9mKCIvIikrMSk7Yz1kMmNtZWRpYS5zYWZlU3RyaW5nKGMpO3RyeXt2YXIgZD1kZWNvZGVVUklDb21wb25lbnQoYyl9Y2F0Y2goayl7dmFyIGU9eyIlQzAiOiImQWdyYXZlOyIsIiVDMSI6IiZBYWN1dGU7IiwiJUMyIjoiJkFjaXJjOyIsIiVDMyI6IiZBdGlsZGU7IiwiJUM0IjoiJkF1bWw7IiwiJUM1IjoiJkFyaW5nOyIsIiVDNiI6IiZBRWxpZzsiLCIlQzciOiImQ2NlZGlsOyIsIiVDOCI6IiZFZ3JhdmU7IiwiJUM5IjoiJkVhY3V0ZTsiLCIlQ0EiOiImRWNpcmM7IiwiJUNCIjoiJkV1bWw7IiwiJUNDIjoiJklncmF2ZTsiLCIlQ0QiOiImSWFjdXRlOyIsIiVDRSI6IiZJY2lyYzsiLAoiJUNGIjoiJkl1bWw7IiwiJUQwIjoiJkVUSDsiLCIlRDEiOiImTnRpbGRlOyIsIiVEMiI6IiZPZ3JhdmU7IiwiJUQzIjoiJk9hY3V0ZTsiLCIlRDQiOiImT2NpcmM7IiwiJUQ1IjoiJk90aWxkZTsiLCIlRDYiOiImT3VtbDsiLCIlRDgiOiImT3NsYXNoOyIsIiVEOSI6IiZVZ3JhdmU7IiwiJURBIjoiJlVhY3V0ZTsiLCIlREIiOiImVWNpcmM7IiwiJURDIjoiJlV1bWw7IiwiJUREIjoiJllhY3V0ZTsiLCIlREUiOiImVEhPUk47IiwiJURGIjoiJnN6bGlnOyIsIiVFMCI6IiZhZ3JhdmU7IiwiJUUxIjoiJmFhY3V0ZTsiLCIlRTIiOiImYWNpcmM7IiwiJUUzIjoiJmF0aWxkZTsiLCIlRTQiOiImYXVtbDsiLCIlRTUiOiImYXJpbmc7IiwiJUU2IjoiJmFlbGlnOyIsIiVFNyI6IiZjY2VkaWw7IiwiJUU4IjoiJmVncmF2ZTsiLCIlRTkiOiImZWFjdXRlOyIsIiVFQSI6IiZlY2lyYzsiLCIlRUIiOiImZXVtbDsiLCIlRUMiOiImaWdyYXZlOyIsIiVFRCI6IiZpYWN1dGU7IiwiJUVFIjoiJmljaXJjOyIsCiIlRUYiOiImaXVtbDsiLCIlRjAiOiImZXRoOyIsIiVGMSI6IiZudGlsZGU7IiwiJUYyIjoiJm9ncmF2ZTsiLCIlRjMiOiImb2FjdXRlOyIsIiVGNCI6IiZvY2lyYzsiLCIlRjUiOiImb3RpbGRlOyIsIiVGNiI6IiZvdW1sOyIsIiVGNyI6IiZkaXZpZGU7IiwiJUY4IjoiJm9zbGFzaDsiLCIlRjkiOiImdWdyYXZlOyIsIiVGQSI6IiZ1YWN1dGU7IiwiJUZCIjoiJnVjaXJjOyIsIiVGQyI6IiZ1dW1sOyIsIiVGRCI6IiZ5YWN1dGU7IiwiJUZFIjoiJnRob3JuOyIsIiVGRiI6IiZ5dW1sOyJ9O2Q9Yy5yZXBsYWNlKC8lWzAtOUEtRl17Mn0vaWcsZnVuY3Rpb24oaCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlW2hdKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoaCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO24udGV4dENvbnRlbnQ9ZVtoXTtyZXR1cm4gbi5pbm5lclRleHR9KX1kPWQuc3Vic3RyaW5nKDAsZC5pbmRleE9mKCIuaHRtIikpO2EmJihkPWQucmVwbGFjZSgvIC9nLAoiXyIpLnJlcGxhY2UoLycvZywiIikucmVwbGFjZSgiLmh0bWwiLCIiKSk7bnVsbCE9KGE9ZC5tYXRjaCgvXigxOVswLTldezJ9fDIwWzAtOV17Mn0pLShbXi1dKy1bXi1dKykoLiopJC8pKSYmKGQ9YVsyXSsiLSIrYVsxXSthWzNdLCJFTkdMSVNIIj09KCJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJFTkdMSVNIIjoiRlJFTkNIIikmJmImJihkPWFbMV0rIi0iK2FbMl0rYVszXSkpO3JldHVybiBkfTtkMmNtZWRpYS5pc0hvbWVwYWdlPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO3JldHVybiIvIj09YXx8Ii9lbmcvIj09YXx8Ii9mci8iPT1hfTtkMmNtZWRpYS5wYWdlRGVwYXJ0bWVudD1mdW5jdGlvbigpe3ZhciBhPSQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpO3JldHVybiJPVEhFUiI9PWEmJmQyY21lZGlhLmlzSG9tZXBhZ2UoKT8iSE9NRVBBR0UiOmF9Owp2YXIganNfZDJjX2dldF92YWw9anNfZDJjX2dldF92YWx8fGZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4oZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpP2VsLnZhbHVlOiIifWNhdGNoKGIpe3JldHVybiBjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlN5c3RlbSBmYWlsZWQgd2hpbGUgcmV0cmlldmluZyByZXBsYWNlbWVudCB2YWx1ZTogIitiLm1lc3NhZ2UsYiksYX19O1N0cmluZy5wcm90b3R5cGUubm9EMkNSZXBsYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVPZigpfTsKZDJjQkdDbGljaz1mdW5jdGlvbihhKXt2YXIgYj10aGlzOyQuZXh0ZW5kKGIsYSk7dGhpcy5zZXQ9ZnVuY3Rpb24oYyl7InVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0hMSk7dmFyIGQ9Yi5iZ0ltZ1VybCxlPWIuYmdJbWdQYXRoLGs9Yi5iZ0ltZ0ZpeGVkLGg9Yi5iZ0ltZ1Jlc3BvbnNpdmUsbj1iLm1ha2UseD1kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC8tL2csIiIpLHY9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKS50b0xvd2VyQ2FzZSgpOiJmcmVuY2giLGY9IiIsZz0hMTswIT1jJiYobj1jLnRvTG93ZXJDYXNlKCkpO3ZhciBtPWM9IiI7bj9lLmhhc093blByb3BlcnR5KG4pPyhjPWVbbl0sbT1rW25dK2hbbl0sZz0hMCk6ZS5oYXNPd25Qcm9wZXJ0eSgiYWxsIik\/KGM9ZS5hbGwsbT1rLmFsbCtoLmFsbCxnPSEwKTplLmhhc093blByb3BlcnR5KHYpJiYoYz1lW3ZdLG09a1t2XStoW3ZdKTplLmhhc093blByb3BlcnR5KHYpJiYKMD09ZyYmKGM9ZVt2XSxtPWtbdl0raFt2XSk7YyYmKGIuYmdJbWc9Yy5zcGxpdCgiLyIpLnBvcCgpLCQoImJvZHkiKS5hdHRyKCJzdHlsZSIsImJhY2tncm91bmQtaW1hZ2U6IHVybCgnIitjKyInKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsiK20pKTtmb3IodmFyIGwgaW4gZCl7aWYoLTEhPXguaW5kZXhPZihsLHgpKXtmPWRbbF07YnJlYWt9aWYobD09dil7Zj1kW2xdO2JyZWFrfX0wPT1mLmxlbmd0aCYmKGQuaGFzT3duUHJvcGVydHkobik\/Zj1kW25dOmQuaGFzT3duUHJvcGVydHkoImFsbCIpJiYoZj1kLmFsbCkpOzA8Zi5sZW5ndGgmJihkPSQod2luZG93KS53aWR0aCgpLzItJCgiLndyYXBwZXIiKS53aWR0aCgpLzIsZT0kKHdpbmRvdykud2lkdGgoKS8yKyQoIi53cmFwcGVyIikud2lkdGgoKS8yLCQoIiNiZ0NsaWNrMSIpLnJlbW92ZSgpLCQoIiNiZ0NsaWNrMiIpLnJlbW92ZSgpLCQoImJvZHkiKS5hcHBlbmQoIjxkaXYgaWQ9J2JnQ2xpY2sxJyBzdHlsZT0nei1pbmRleDoxMDA7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6IisKZCsicHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246Zml4ZWQ7bGVmdDowcHg7dG9wOjBweDsnPjwvZGl2PiIpLCQoImJvZHkiKS5hcHBlbmQoIjxkaXYgaWQ9J2JnQ2xpY2syJyBzdHlsZT0nei1pbmRleDoxMDA7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6IitkKyJweDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDtsZWZ0OiIrZSsicHg7dG9wOjBweDsnPjwvZGl2PiIpLCQoIiNiZ0NsaWNrMSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLnJlZGlyZWN0KGYpfSksJCgiI2JnQ2xpY2syIikub24oImNsaWNrIixmdW5jdGlvbigpe2IucmVkaXJlY3QoZil9KSl9O3RoaXMucmVzZXQ9ZnVuY3Rpb24oYyl7Yi5zZXQoKX07dGhpcy5yZWRpcmVjdD1mdW5jdGlvbihjKXsibGl2ZSI9PWIuZGVwbG95bWVudFR5cGUmJihnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkNsaXF1ZXMiLCJJbWFnZS1kZS1mb25kIixiLmJnSW1nLDEpLCJmdW5jdGlvbiI9PXR5cGVvZiBiLmQyY0V2ZW50JiZiLmQyY0V2ZW50LmNhbGwoYiwKYi5iZ0ltZykpO3dpbmRvdy5vcGVuKGMpfTskKHdpbmRvdykub24oInJlc2l6ZSIsYi5yZXNldCk7cmV0dXJuIHRoaXN9O3ZhciBpbmplY3RHb29nbGVNYXBzS2V5PWZ1bmN0aW9uKGEpe2xldCBiPW51bGw7cmV0dXJuIGZ1bmN0aW9uKGMpe2lmKGIpcmV0dXJuIGMoYik7YS5hamF4KCIvYWpheC9nZXRHb29nbGVNYXBzS2V5IikuZG9uZShmdW5jdGlvbihkKXtiPShkLmtleT9kLmtleToiIikucmVwbGFjZSgvW15BLXowLTlfLV0vZywiIik7YyhiKX0pfX0oalF1ZXJ5KTsKZnVuY3Rpb24gcmhzUHJvbW9JbWFnZShhKXt2YXIgYj10aGlzO2IuZGF0YT1hO3ZhciBjPVtdLGQ9LTE7YT13aW5kb3cubG9jYXRpb247YT1kZWNvZGVVUklDb21wb25lbnQoYS5wYXRobmFtZSthLnNlYXJjaCkudG9Mb3dlckNhc2UoKTtmb3Ioc2VhcmNoIGluIGIuZGF0YSlpZigiZGVmYXVsdCI9PXNlYXJjaHx8LTEhPWEuaW5kZXhPZihkZWNvZGVVUklDb21wb25lbnQoKHNlYXJjaCsiIikudG9Mb3dlckNhc2UoKSkpKWZvcihpPTA7aTxiLmRhdGFbc2VhcmNoXS5sZW5ndGg7aSsrKWMucHVzaChiLmRhdGFbc2VhcmNoXVtpXSk7Yi5yb3RhdGU9ZnVuY3Rpb24oKXsrK2Q+Yy5sZW5ndGgtMSYmKGQ9MCk7dmFyIGU9Y1tkXSxrPSQoIjxpbWcgLz4iKS5hdHRyKHtzcmM6ZS5pLHN0eWxlOiJ3aWR0aDoxMDAlOyBtYXgtd2lkdGg6MjgwcHg7IGJvcmRlci1yYWRpdXM6IDVweDsgY3Vyc29yOnBvaW50ZXI7IixhbHQ6IiJ9KTskKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuaHRtbChrKTtudWxsIT0KZS51JiYwPGUudS5sZW5ndGgmJiQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwid2luZG93LmxvY2F0aW9uID0gJyIrZS51KyInIik7JCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLnNob3coKTsxIT1jLmxlbmd0aCYmc2V0VGltZW91dChiLnJvdGF0ZSxlLmRlbGF5KX07MDxjLmxlbmd0aCYmYi5yb3RhdGUoKX1mdW5jdGlvbiBjbGVhblRleHQoYSl7YT1hLnJlcGxhY2UoL1tceDYwXS9nLCInIik7YT1hLnJlcGxhY2UoL+KAmS9nLCInIik7YT1hLnJlcGxhY2UoL2AvZywiJyIpO3JldHVybiBhPWEucmVwbGFjZSgvW1x1MjAxOV3igJkvZywiJyIpfQpmdW5jdGlvbiBlbmNvZGVUZXh0KGEpe3ZhciBiPWE7dHJ5e2I9JC5iYXNlNjQuZW5jb2RlKGEpfWNhdGNoKGspe2NvbnNvbGUubG9nKGsubWVzc2FnZSxrKTthPSIiO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iLmNoYXJBdChjKSxlPWQuY2hhckNvZGVBdCgwKTtpZig0NzxlJiY1OD5lfHw2NDxlJiY5MT5lfHw5NjxlJiYxMjM+ZSlhKz1kO2Vsc2UgdHJ5eyQuYmFzZTY0LmVuY29kZShkKSxhKz1kfWNhdGNoKGgpe319Yj0kLmJhc2U2NC5lbmNvZGUoYSl9cmV0dXJuIGJ9ZnVuY3Rpb24gY2xlYW5BbmRFbmNvZGVUZXh0KGEpe3RyeXt2YXIgYj0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEpcmV0dXJuIiI7Yj0ic3RyaW5nIiE9dHlwZW9mIGE\/YS50b1N0cmluZygpOmE7Yj1jbGVhblRleHQoYik7cmV0dXJuIGI9ZW5jb2RlVGV4dChiKX1jYXRjaChjKXtyZXR1cm4gY29uc29sZS5sb2coYy5tZXNzYWdlLGMpLGF9fQpmdW5jdGlvbiBFeFBob25lKGEpe3N3aXRjaChhLnR5cGUpe2Nhc2UgIm1vdXNlZW50ZXIiOiQoIi5leHRlbmRlZFBob25lIikuc2hvdygpO2JyZWFrO2Nhc2UgIm1vdXNlbGVhdmUiOiQoIi5leHRlbmRlZFBob25lIikuaGlkZSgpfX1mdW5jdGlvbiBnZXRSZXNpemVkSW1hZ2VzKCl7ZGVidWdFbmFibGVkKCk7cmV0dXJuITF9ZnVuY3Rpb24gY2hhbmdlSG9tZUFjdGlvbkJhY2tJbWFnZShhLGIpeyQoYSkuY3NzKHtiYWNrZ3JvdW5kOiJ1cmwoIitiKyIpIixiYWNrZ3JvdW5kUmVwZWF0OiJuby1yZXBlYXQiLGJhY2tncm91bmRTaXplOiIyNDBweCAxMjFweCJ9KX12YXIgX19jdXJyZW50VGhyZWFzaG9sZDsKZnVuY3Rpb24gdGhyZWFkaG9sZFNjcm9sbFBlcmNlbnQoKXtfX2N1cnJlbnRUaHJlYXNob2xkfHwoX19jdXJyZW50VGhyZWFzaG9sZD0oJCh3aW5kb3cpLmhlaWdodCgpKyQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpKS8kKGRvY3VtZW50KS5oZWlnaHQoKSxzZXRUaW1lb3V0KCJfX2N1cnJlbnRUaHJlYXNob2xkID0gbnVsbCIsMzMzKSk7cmV0dXJuIF9fY3VycmVudFRocmVhc2hvbGR9CmZ1bmN0aW9uIHRocmVzaG9sZEV4ZWMoYSxiLGMpe3ZhciBkPW51bGw7Yz1jP2M6W107aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGEpe3ZhciBlPU1hdGgucm91bmQoMUU0KmEpLzFFNDsxPGUmJihlLz0xMDApO2E9ZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIGs9ZnVuY3Rpb24oKXtpZih0aHJlYWRob2xkU2Nyb2xsUGVyY2VudCgpPmEoKSl7dHJ5e2IuYXBwbHkobnVsbCxjKX1jYXRjaChoKXtjb25zb2xlLmxvZyhoKX1kPWNsZWFySW50ZXJ2YWwoZCl9fTskKGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2Q9c2V0SW50ZXJ2YWwoaywzMzMpfSwyRTMpfSl9CmZ1bmN0aW9uIHNjcm9sbHVwRXhlYyhhKXt2YXIgYj1udWxsLGM9MCxkPWZ1bmN0aW9uKCl7JCh3aW5kb3cpLm9uKCJzY3JvbGwiLGZ1bmN0aW9uKGUpe2U9JCh0aGlzKS5zY3JvbGxUb3AoKTtlPGMmJihhLmNhbGwobnVsbCksYj1jbGVhckludGVydmFsKGIpKTtjPWV9KX07JChmdW5jdGlvbigpe2I9c2V0SW50ZXJ2YWwoZCwzMzMpfSl9ZnVuY3Rpb24gaW5WaWV3RXhlYyhhLGIpe3RocmVzaG9sZEV4ZWMoZnVuY3Rpb24oKXt2YXIgYz0kKGEpO3RyeXtyZXR1cm4hYy5sZW5ndGh8fGMuaXMoIjpoaWRkZW4iKXx8MD09Yy5vZmZzZXQoKS50b3A\/Ljk1OmMub2Zmc2V0KCkudG9wLyQoZG9jdW1lbnQpLmhlaWdodCgpfWNhdGNoKGQpe3JldHVybi45NX19LGIsW2FdKX12YXIgbHRfSUU5PSJmdW5jdGlvbiIhPXR5cGVvZiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyPyEwOiExLGx0X0lFMTE9MD09IWRvY3VtZW50LmFsbDsKZnVuY3Rpb24gaXNJRSgpe3ZhciBhPWRvY3VtZW50LmRvY3VtZW50TW9kZTt0cnl7ZG9jdW1lbnQuZG9jdW1lbnRNb2RlPSIifWNhdGNoKGMpe312YXIgYj0ibnVtYmVyIj09dHlwZW9mIGRvY3VtZW50LmRvY3VtZW50TW9kZXx8KG5ldyBGdW5jdGlvbigicmV0dXJuLypAY2Nfb24hQCovITEiKSkoKTt0cnl7ZG9jdW1lbnQuZG9jdW1lbnRNb2RlPWF9Y2F0Y2goYyl7fXJldHVybiBifXZhciB0PTA7X19zdGFydD1mdW5jdGlvbigpe3Q9KG5ldyBEYXRlKS5nZXRUaW1lKCl9O19fc3RvcD1mdW5jdGlvbigpe3ZhciBhPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2NvbnNvbGUubG9nKCJ0b29rIiwoYS10KS8xRTMpfTt2YXIgYWxlcnRGYWxsYmFjaz0hMDtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBjb25zb2xlfHwidW5kZWZpbmVkIj09PXR5cGVvZiBjb25zb2xlLmxvZyljb25zb2xlPXt9LGNvbnNvbGUubG9nPWFsZXJ0RmFsbGJhY2s\/ZnVuY3Rpb24oYSl7fTpmdW5jdGlvbigpe307CkFycmF5LnByb3RvdHlwZS5tYXB8fChBcnJheS5wcm90b3R5cGUubWFwPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoIiB0aGlzIGlzIG51bGwgb3Igbm90IGRlZmluZWQiKTt2YXIgZT1PYmplY3QodGhpcyksaz1lLmxlbmd0aD4+PjA7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7MTxhcmd1bWVudHMubGVuZ3RoJiYoYz1iKTt2YXIgaD1BcnJheShrKTtmb3IoZD0wO2Q8azspe2lmKGQgaW4gZSl7dmFyIG49ZVtkXTtuPWEuY2FsbChjLG4sZCxlKTtoW2RdPW59ZCsrfXJldHVybiBofSk7QXJyYXkucHJvdG90eXBlLmluZGV4T2Z8fChBcnJheS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihhLGIpe2I9Ynx8MDtmb3IodmFyIGM9dGhpcy5sZW5ndGg7YjxjO2IrKylpZih0aGlzW2JdPT09YSlyZXR1cm4gYjtyZXR1cm4tMX0pOwpBcnJheS5wcm90b3R5cGUucmVkdWNlfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCJyZWR1Y2UiLHt2YWx1ZTpmdW5jdGlvbihhKXtpZihudWxsPT09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUucmVkdWNlIGNhbGxlZCBvbiBudWxsIG9yIHVuZGVmaW5lZCIpO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpO3ZhciBiPU9iamVjdCh0aGlzKSxjPWIubGVuZ3RoPj4+MCxkPTA7aWYoMjw9YXJndW1lbnRzLmxlbmd0aCl2YXIgZT1hcmd1bWVudHNbMV07ZWxzZXtmb3IoO2Q8YyYmIShkIGluIGIpOylkKys7aWYoZD49Yyl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIik7ZT1iW2QrK119Zm9yKDtkPGM7KWQgaW4gYiYmKGU9YShlLGJbZF0sZCxiKSksZCsrO3JldHVybiBlfX0pOwpBcnJheS5wcm90b3R5cGUuZm9yRWFjaHx8KEFycmF5LnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGEpe3ZhciBiLGM7aWYobnVsbD09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0aGlzIGlzIG51bGwgb3Igbm90IGRlZmluZWQiKTt2YXIgZD1PYmplY3QodGhpcyksZT1kLmxlbmd0aD4+PjA7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7MTxhcmd1bWVudHMubGVuZ3RoJiYoYj1hcmd1bWVudHNbMV0pO2ZvcihjPTA7YzxlOyl7aWYoYyBpbiBkKXt2YXIgaz1kW2NdO2EuY2FsbChiLGssYyxkKX1jKyt9fSk7ZnVuY3Rpb24gZ2V0RGF0YUF0dHJpYnV0ZXMoYSl7cmV0dXJuIGEuZGF0YXNldHx8W10uc2xpY2UuY2FsbChhLmF0dHJpYnV0ZXMpLnJlZHVjZShmdW5jdGlvbihiLGMpe3JldHVybi9eZGF0YS0vLnRlc3QoYy5uYW1lKSYmKGJbYy5uYW1lLnN1YnN0cig1KV09Yy52YWx1ZSksYn0se30pfQpmdW5jdGlvbiBnZXRQYXJhbWV0ZXJCeU5hbWUoYSl7YT1hLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7YT0obmV3IFJlZ0V4cCgiW1xcPyZdIithKyI9KFteJiNdKikiKSkuZXhlYyhsb2NhdGlvbi5zZWFyY2gpO3JldHVybiBudWxsPT1hPyIiOmRlY29kZVVSSUNvbXBvbmVudChhWzFdLnJlcGxhY2UoL1wrL2csIiAiKSl9CmZ1bmN0aW9uIHNob3dUcmFkZUluUG9wdXAoYSl7aWYoMD09JCgiI3RyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiKS5sZW5ndGgpe3ZhciBiPSI3NTBweCIsYz0iNTcwcHgiOzE9PS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYoYj0iMzAwcHgiLGM9IjYwMHB4Iik7JCgiYm9keSIpLmFwcGVuZCgnPGRpdiBpZD0idHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAnK2IrIjsgaGVpZ2h0OiAiK2MrJyI+PGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2Rpdj48aWZyYW1lIHNyYz0iJythKyciIGFsbG93dHJhbnNwYXJlbmN5PSJ0cnVlIiAgY2xhc3M9Ii10MCAtbDAgLXcxMDBwIC1oMTAwcCIgaWQ9InRyYWRlaW5MaW5rUG9wdXBJZnJhbWUiPjwvaWZyYW1lPjwvZGl2PicpfSQoIiN0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gY3VycmVudFByb21vUmVkaXJlY3QoKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3N3aXRjaCghMCl7Y2FzZSAiZnVuY3Rpb24iPT10eXBlb2Ygc2hvd1BvcHVwV2lkZ2V0OnNob3dQb3B1cFdpZGdldCgpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjVmlld1Byb21vQWN0aW9uQm94TGluayIpLmF0dHIoImhyZWYiKTokKCIjVmlld1Byb21vQWN0aW9uQm94TGluayIpWzBdLmNsaWNrKCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNwcm9tb3Rpb25TaWRlVkJ1dHRvbiBhIikuYXR0cigiaHJlZiIpOiQoIiNwcm9tb3Rpb25TaWRlVkJ1dHRvbiBhIilbMF0uY2xpY2soKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI1ZpZXdDdXN0b21Qcm9tb0FjdGlvbkJveExpbmsiKS5hdHRyKCJocmVmIik6JCgiI1ZpZXdDdXN0b21Qcm9tb0FjdGlvbkJveExpbmsiKVswXS5jbGljaygpfX0KZnVuY3Rpb24gc2hvd05ld1JlYmF0ZUNvZGVQb3B1cCgpezAhPSQoIiNkaXNhYmxlUG9wdXBzIikubGVuZ3RoJiYwIT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpfHwkKCIjSW1hZ2VQb3B1cENvbnRhaW5lcl9uZXdyZWJhdGUiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfWZ1bmN0aW9uIHNob3dOZXdCZXN0UHJpY2VWZHBQb3B1cCgpezAhPSQoIiNkaXNhYmxlUG9wdXBzIikubGVuZ3RoJiYwIT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpfHwkKCIjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfQpmdW5jdGlvbiBwcmludF9wcm9tb19wcmV2KGEpe3ZhciBiPSExLGM9JChhKS5wYXJlbnRzKCIucHJvbW9zIik7YT1jLmZpbmQoIi5wcm9tby10aXRsZSIpLmh0bWwoKTt2YXIgZD1jLmZpbmQoIi5wcm9tby1kZXNjIikuaHRtbCgpO2M9Yy5maW5kKCIucHJvbW8taW1hZ2UgaW1nIikuYXR0cigiZGF0YS1wcmludC1zcmMiKTskKCIjcHJvbW9Ub1ByaW50IikucmVtb3ZlKCk7JCgiI3Byb21vVG9QcmludFdyYXAiKS5yZW1vdmUoKTskKCJib2R5IikuYXBwZW5kKCc8ZGl2IGNsYXNzPSJ0b3ByaW50IiBpZD0icHJvbW9Ub1ByaW50Ij48aW1nIGJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjEwMCU7IiBzcmM9IicrYysnIiBhbHQ9IiIgaWQ9InByb21vSW1nIj48YnI+PGJyPjxiPicrYSsiPC9iPjxicj4iK2QrIjwvZGl2PiIpOyQoIiNwcm9tb0ltZyIpLm9uKCJsb2FkIixmdW5jdGlvbigpe2J8fCQoIiNwcm9tb1RvUHJpbnQiKS5wcmludEVsZW1lbnQoKTtiPSEwfSk7c2V0VGltZW91dChmdW5jdGlvbigpe2J8fAokKCIjcHJvbW9Ub1ByaW50IikucHJpbnRFbGVtZW50KCk7Yj0hMH0sMUUzKTtyZXR1cm4hMX1mdW5jdGlvbiBnZXRNdWx0aXBsZUFkZHJlc3NQaG9uZShhKXskKCIubXVsdGlBZGRyZXNzUGhvbmUiKS5zbGlkZVVwKCk7YT0kKCIubXVsdGlBZGRyZXNzUGhvbmUiLCQoJChhKS5wYXJlbnQoKSkpOyQoYSkuaXMoIjpoaWRkZW4iKT8kKGEpLnNsaWRlRG93bigpOiQoYSkuc2xpZGVVcCgpfQpmdW5jdGlvbiBhZGRHZW5lcmFsU3R5bGUoKXt2YXIgYT0kKCIjQURNSU5fR0VORVJBTF9CR19DT0xPUiIpLnZhbCgpLGI9JCgiI2RlZmF1bHRfYmxhY2tfdGV4dCIpLnZhbCgpO2lmKCIjMDAwMDAwIiE9Ynx8IiMwMDAiIT1iKSQoIi5Vc2VkVmRwMk1vYmlsZSAjYnJlYWRjcnVtYnMiKS5hZGRDbGFzcygidGV4dENvbG9yIiksJCgiaS5mYS1mYWNlYm9vay1zcXVhcmUiKS5hZGRDbGFzcygidGV4dENvbG9yIiksJCgiLnVzZWQtZGV0YWlscyAuZGVmYXVsdCBkaXY6Zmlyc3QiKS5hZGRDbGFzcygidGV4dENvbG9yIik7IiNmZmZmZmYiIT1iJiYiI2ZmZiIhPWJ8fCQoIi5Vc2VkU3JwMk1vYmlsZSAuZGVmYXVsdCAubWFrZU1vZGVsWWVhciIpLmFkZENsYXNzKCJ0ZXh0Q29sb3JVc2VkU1JQTW9iaWxlIik7IiNmZmZmZmYiIT1hJiYoJCgiLm9sZC1kZXRhaWxzLXRyIikuYWRkQ2xhc3MoImJnTm9uZSIpLCQoIiNzcGVjVGl0bGUiKS5hZGRDbGFzcygiYmdOb25lIiksJCgiLlVzZWRWZHAyTW9iaWxlIikuYWRkQ2xhc3MoIm90aGVyQkciKSl9CmZ1bmN0aW9uIGFwcGVuZFRyYWRlQm9vc3RCYW5uZXIoKXt9ZG9jUmVhZHlBcnIucHVzaCgoKT0+e2FwcGVuZFRyYWRlQm9vc3RCYW5uZXIoKTthZGRHZW5lcmFsU3R5bGUoKX0pOwpqUXVlcnkoZnVuY3Rpb24oYSl7YSgiI25hdiIpLmFkZENsYXNzKCJuYXYiKTsoZnVuY3Rpb24oKXtMQ19BUEk9d2luZG93LkxDX0FQSXx8e307TENfQVBJLm9uX3RpY2tldF9jcmVhdGVkPWZ1bmN0aW9uKG0pe3RyeXsoZnVuY3Rpb24obCl7bnVsbCE9bCYmKGw9JzxpbWcgc3JjPSJodHRwczovL3N0YXRzLmQyY21lZGlhLmNhL3NlcnZpY2UvY29udGFjdC5naWY\/dGM9JysobS50aWNrZXRfaWQrIiZ1PSIrbCkrJyIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3JpZ2h0OjEwcHg7dG9wOjEwcHg7cG9zaXRpb246YWJzb2x1dGU7IiAvPicsYSgiYm9keSIpLmFwcGVuZChsKSl9KShmdW5jdGlvbigpe3ZhciBsPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQ\/d2luZG93LmFjdGl2ZVByb2ZpbGVJRDpudWxsO3JldHVybiBudWxsPT1sP0Nvb2tpZXMuZ2V0KCJ1dWlkIik6bH0oKSl9Y2F0Y2gobCl7fX19KSgpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvbkNvbmZpcm1TdWJtaXQpYSgiLmNvbmZpcm1faHRtbCIpLm9uKCJzdWJtaXQiLApvbkNvbmZpcm1TdWJtaXQpO3RyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGEoIiNzbGlkZXIubml2b1NsaWRlciIpLmF0dHIoImlkIikpe3ZhciBiPSExLGM9ITEsZD0hMSxlPSExLGs9ITEsaD0hMSxuPTEwMCx4PTE8YSgiI3NsaWRlci5uaXZvU2xpZGVyIGEiKS5sZW5ndGg\/ITA6ITE7YSgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCYmKGg9az1lPWQ9Yz1iPSEwLG49YSgiI0JBTk5FUl9TRUFSQ0hfQkFSX1ZJREVPX09QQUNJVFkiKS5sZW5ndGg\/YSgiI0JBTk5FUl9TRUFSQ0hfQkFSX1ZJREVPX09QQUNJVFkiKS52YWwoKToxMDApO2RvY1JlYWR5QXJyLnB1c2goKCk9PntzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YSgiI3NsaWRlci5uaXZvU2xpZGVyIikubml2b1NsaWRlcih7ZWZmZWN0OiJmYWRlIixiZWZvcmVDaGFuZ2U6ZnVuY3Rpb24oKXthKCIjcGFyYWxsYXhXcmFwcGVyIikuZW5sbGF4KCl9LGFmdGVyQ2hhbmdlOmZ1bmN0aW9uKCl7YSgiI3NsaWRlci5uaXZvU2xpZGVyIikudHJpZ2dlcigibml2b1NsaWRlckNoYW5nZWQiKX0sCmFmdGVyTG9hZDpmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLnRyaWdnZXIoIm5pdm9TbGlkZXJMb2FkZWQiKTthKCIjcGFyYWxsYXhXcmFwcGVyIikuZW5sbGF4KCk7YSgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCYmKGEoIiNzbGlkZXIubml2b1NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLnN0b3AsYSgiLm5pdm8tY29udHJvbE5hdiIpLmhpZGUoKSxhKCIubml2by1kaXJlY3Rpb25OYXYiKS5oaWRlKCksdGhpcy5zdGFydFlvdXR1YmUoKSl9LG1hbnVhbEFkdmFuY2U6Yix2aWRlb09uTG9vcDpjLGhpZGVDb250cm9sOmQsaGlkZUluZm86ZSxmdWxsV2lkdGg6ayxtdXRlVmlkZW86aCx2aWRlb0JyaWdodG5lc3M6bixjb250cm9sTmF2OngsZGlyZWN0aW9uTmF2Ongsc2hvd0Rpc2NsYWltZXI6ITB9KX0sNUUzKX0pfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSgiLmV4dGVuZGVkUGhvbmVUcmlnZ2VyIikuYXR0cigiaWQiKSlhKCIuZXh0ZW5kZWRQaG9uZVRyaWdnZXIiKS5vbigibW91c2VlbnRlciIsCkV4UGhvbmUpLm9uKCJtb3VzZWxlYXZlIixFeFBob25lKTt2YXIgdj1mdW5jdGlvbigpe307YSgiLnRyYWRlaW5MaW5rIikub24oImNsaWNrIixmdW5jdGlvbigpe2lmKGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikmJjY8YSh0aGlzKS5hdHRyKCJ0YXJnZXRVUkkiKS5sZW5ndGgpcmV0dXJuIHNob3dUcmFkZUluUG9wdXAoYSh0aGlzKS5hdHRyKCJ0YXJnZXRVUkkiKSksITF9KTthKCIudXBfbWVudSIpLm9uZSgibW91c2VvdmVyIix2KTtzZXRUaW1lb3V0KHYsMUU0KTsoZnVuY3Rpb24oKXtpZigwIT1hKCIjTWFpbk1lbnVfTkVXIikubGVuZ3RoKXt2YXIgcT1hKCIuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaS5maXJzdEl0ZW0iKSxyPSExOzAhPXEubGVuZ3RoJiYoYSgiI01haW5NZW51X05FVyIpLmZpbmQoIi5wcmljZSIpLmNzcygiY3Vyc29yIiwicG9pbnRlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgcD1hKHRoaXMpLnNpYmxpbmdzKCkuZmlyc3QoKTsKd2luZG93LmxvY2F0aW9uPXAuYXR0cigiaHJlZiIpfSksYSgiI01haW5NZW51X05FVyIpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKTtxLmFkZENsYXNzKCJob3ZlciIpfSkscS5zaWJsaW5ncygpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKTtxLnJlbW92ZUNsYXNzKCJob3ZlciIpfSkub24oIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cS5hZGRDbGFzcygiaG92ZXIiKX0sMzAwKX0pKX19KSgpO2EoImltZ1tlcnJvcmltZ10iKS5vbigiZXJyb3IiLGZ1bmN0aW9uKCl7dmFyIHE9YSh0aGlzKTtxLmF0dHIoInNyYyIscS5hdHRyKCJlcnJvcmltZyIpKX0pO2NvbnN0IG09YSh3aW5kb3cpLGw9YSgiLnVwX21lbnUiKTtpZihsLmxlbmd0aCYmIWwuaGFzQ2xhc3MoIm5vbG9jayIpKXtsZXQgcT1sLm9mZnNldCgpLnRvcCxyPSExO2EoZG9jdW1lbnQpLm9uKCJzY3JvbGwiLCgpPT57cnx8Cih3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dmFyIHA9bS5zY3JvbGxUb3AoKSx3PWwuaGFzQ2xhc3MoImZpeGVkIik7dyYmcDxxP2wucmVtb3ZlQ2xhc3MoImZpeGVkIik6IXcmJnA+cSYmbC5hZGRDbGFzcygiZml4ZWQiKTsocD1sLmhhc0NsYXNzKCJmaXhlZCIpKSYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIik\/bC5jc3Moe3RvcDphKCIjYWxlcnRNc2dDb250YWluZXIiKS5vdXRlckhlaWdodCgpKyJweCJ9KTpsLmF0dHIoInN0eWxlIiwiIik7dz1hKCIucHVsbG91dHMuc2lkZV90b3A6dmlzaWJsZSIpO3AmJjA8dy5sZW5ndGg\/KHcuZmlsdGVyKCIucHVsbG91dC1vcGVuZWQiKS5jc3Moe3RvcDpsLmhlaWdodCgpKyJweCJ9KSx3LmZpbHRlcigiLnB1bGxvdXQtY2xvc2VkIikuZWFjaChmdW5jdGlvbigpe3ZhciB6PWEodGhpcyksRD1nZXRfcG93KHouYXR0cigiaWQiKSk7IXouZGF0YSgicG9zWSIpJiZ6LmRhdGEoInBvc1kiLC1ELnBvc2l0aW9uKTsKRD16LmRhdGEoInBvc1kiKStsLmhlaWdodCgpO3ouY3NzKHt0b3A6RCsicHgifSl9KSk6KHcuZmlsdGVyKCIucHVsbG91dC1vcGVuZWQiKS5jc3Moe3RvcDowfSksdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmRhdGEoInBvc1kiKSYmdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmVhY2goZnVuY3Rpb24oKXthKHRoaXMpLmNzcyh7dG9wOmEodGhpcykuZGF0YSgicG9zWSIpKyJweCJ9KX0pKTtyPSExfSkscj0hMCl9KX12PWZ1bmN0aW9uKCl7aWYoMD09YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmxlbmd0aCl7YSgiYm9keSIpLmFwcGVuZCgnPGRpdiBpZD0idHJhZGVpbkJhckZsb2F0IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246IGZpeGVkO3dpZHRoOiAxMDAlO3otaW5kZXg6IDEwMDtkaXNwbGF5Om5vbmU7Ij48L2Rpdj4nKTthKCIjdHJhZGVJbkJhciIpLmNsb25lKCEwLCEwKS5hcHBlbmRUbygiI3RyYWRlaW5CYXJGbG9hdCIpLnRyaWdnZXIoInRyYWRlSW5CYXIuY2xvbmVkIik7CmlmKGEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikubGVuZ3RoJiYiMSI9PWEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikudmFsKCkpe2EoIiN0cmFkZWluQmFyRmxvYXQiKS5jc3MoImJvdHRvbSIsIi0ycHgiKTt2YXIgcT1hKCIuY2VydGlmaWVkLWZvb3RlciIpLmhlaWdodCgpLHI9YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhlaWdodCgpO2EoIi5jZXJ0aWZpZWQtZm9vdGVyIikuaGVpZ2h0KHErcil9ZWxzZXtxPWEoIiN0cmFkZWluQmFyRmxvYXQiKTtyPXEuY3NzO3ZhciBwPSIxIj09YSgiI21lbnVMb2NrIikudmFsKCk\/NDg6MDswPGEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmxlbmd0aCYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIikmJihwKz1hKCIjYWxlcnRNc2dDb250YWluZXIiKS5vdXRlckhlaWdodCgpKTtyLmNhbGwocSwidG9wIixwKX1hKCIjdHJhZGVpbkJhckZsb2F0IC4tcGIxMCIpLmNzcyh7ZGlzcGxheToiaW5saW5lLXRhYmxlIix3aWR0aDphKCIjbWFpbkRpdiIpLndpZHRoKCl9KX1xPQoibmV3Y2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKTtyPSJuZXdjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKT8hMDohMTtwPTA8YSgiLm1haW5EaXZBZGp1c3RIZWFkZXIiKS5sZW5ndGg\/ITA6ITE7YSgiI3RyYWRlSW5CYXIiKS5pc0luVmlld3BvcnQoKXx8cT9xPyhyP2EoIi5uZXdWZHBBY3Rpb25zIikuaXNBYm92ZVZpZXdwb3J0KDIwMCk6YSgiLnVzZWRWZHBBY3Rpb25zIikuaXNBYm92ZVZpZXdwb3J0KDIwMCkpP2EoIiN0cmFkZWluQmFyRmxvYXQiKS5oaWRlKCk6YSgiI3RyYWRlaW5CYXJGbG9hdCIpLnNob3coKTphKCIjdHJhZGVpbkJhckZsb2F0IikuaGlkZSgpOihwJiYhYSgiI3RyYWRlSW5CYXIiKS5pc0Fib3ZlVmlld3BvcnQoMjAwKXx8IXApJiZhKCIjdHJhZGVpbkJhckZsb2F0Iikuc2hvdygpOzA8YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikubGVuZ3RoJiZhKCIjYWxlcnRNc2dDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYKNDghPWEoIiN0cmFkZWluQmFyRmxvYXQiKS5jc3MoInRvcCIpJiZhKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLmxlbmd0aCYmIjEiIT1hKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLnZhbCgpJiZhKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJ0b3AiLDQ4KX07ZnVuY3Rpb24gdShxLHIpe3ZhciBwPTA7cmV0dXJuIGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHApO3A9c2V0VGltZW91dChxLHIpfX1pZihhKCIjdHJhZGVJbkJhciIpLmxlbmd0aClhKGRvY3VtZW50KS5vbigic2Nyb2xsIix1KHYsMTAwKSk7dmFyIGY9YSgidWwubmF2ID4gbGkgPiB1bCA+IGxpID4gdWwiKTtmLmVhY2goZnVuY3Rpb24oKXthKHRoaXMpLnBhcmVudCgpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbihxKXthKCJ1bCIsdGhpcykuc2Nyb2xsVG9wKDApfSl9KTtmLm9uKCJET01Nb3VzZVNjcm9sbCBtb3VzZXdoZWVsIixmdW5jdGlvbihxKXt2YXIgcj1hKHRoaXMpLHA9dGhpcy5zY3JvbGxUb3Asdz10aGlzLnNjcm9sbEhlaWdodCwKej13PnRoaXMuY2xpZW50SGVpZ2h0LEQ9ci5oZWlnaHQoKSxDPXEub3JpZ2luYWxFdmVudDtDPSJET01Nb3VzZVNjcm9sbCI9PXEudHlwZT8tNDAqQy5kZXRhaWw6Qy53aGVlbERlbHRhO3ZhciBFPTA8QztpZigheilyZXR1cm4hMDt6PWZ1bmN0aW9uKEcpe3Iuc2Nyb2xsVG9wKEcpO3Euc3RvcFByb3BhZ2F0aW9uKCk7cS5wcmV2ZW50RGVmYXVsdCgpO3EucmV0dXJuVmFsdWU9ITE7cmV0dXJuITB9O3JldHVybiEoIUUmJi1DPnctRC1wJiZ6KHcpfHxFJiZDPnAmJnooMCkpfSl9Y2F0Y2gobSl7Y29uc29sZS5sb2coIkVycm9yIixtKX1pZihhKCIudXBfbWVudS5pbWdfbWVudSIpLmxlbmd0aCl7Zj1hKCIuaW1nX3N0eWxlXzEgI01haW5NZW51X05FVyIpLmNoaWxkcmVuKCIuc3ViIik7dmFyIGc9Zi5maW5kKCIuZmlyc3RJdGVtIikuZmluZCgiLnN1YiIpO2YuY2hpbGRyZW4oImxpIikub24oe21vdXNlZW50ZXI6ZnVuY3Rpb24oKXshYSh0aGlzKS5pcygiLmhhc1N1YiIpJiZnLmhpZGUoKX0sCm1vdXNlbGVhdmU6ZnVuY3Rpb24oKXshYSh0aGlzKS5pcygiLmhhc1N1YiIpJiZnLnNob3coKX19KX1hKCIubnVtZXJpYyIpLm9uKCJrZXlwcmVzcyIsZnVuY3Rpb24obSl7aWYoNDg+bS5rZXlDb2RlfHw1NzxtLmtleUNvZGUpbS5yZXR1cm5WYWx1ZT0hMX0pO2lmKCJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHx3aW5kb3cuRG9jdW1lbnRUb3VjaCYmZG9jdW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudFRvdWNoKWEoIi5sZWZ0X2JveCBhIikub24oInRhcCIsZnVuY3Rpb24obSl7bT1hKHRoaXMpO2lmKCJyYWRpbyIhPW0uYXR0cigidHlwZSIpJiZtLmF0dHIoIm9uY2xpY2siKSlyZXR1cm4gbS50cmlnZ2VyKCJjbGljayIpLCExfSksYSgiLmhhc0l0ZW1zID4gYSwgLmhhc1N1YiA+IGEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKG0pe2lmKCJjbGljayIhPW0udHlwZSlyZXR1cm4hMDt2YXIgbD1hKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGx8fCIwIj09CmwpYSgiLm5hdiBsaS5oYXNJdGVtcyBhLCAubmF2IGxpLmhhc1N1YiBhIikuZGF0YSgiY2xpY2tDb3VudCIsIjAiKSxhKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiLCIxIiksbS5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgcmV0dXJuIGRvY3VtZW50LmxvY2F0aW9uPWEodGhpcykuYXR0cigiaHJlZiIpLGEodGhpcykuZGF0YSgiY2xpY2tDb3VudCIsIjAiKSwhMH0pO2EoImRpdi5nbWFwLXBsYWNlaG9sZGVyIikuZWFjaChmdW5jdGlvbigpe3ZhciBtPWEodGhpcyksbD1tLmRhdGEoKTtpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKHUpe3U9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZC92MS9wbGFjZT8iK1sicT0iK2VuY29kZVVSSUNvbXBvbmVudChsLnBsYWNlSWQpLCJ6b29tPSIrbC56b29tLCJsYW5ndWFnZT0iK2wubGFuZ3VhZ2UsInJlZ2lvbj1DQSIsImtleT0iK3VdLmpvaW4oIiYiKTttLmh0bWwoJzxpZnJhbWUgc3JjPSInK3UrJyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iNDAwIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjowIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyl9KX0pOwp0cnl7YSgiLmFkZHR0IikuZWFjaChmdW5jdGlvbigpe3ZhciBtPVsib25DbG9zZSIsIm9uWWVzIiwib25ObyJdLGw9YSh0aGlzKSx1PWwuZGF0YSgpLHE9e30scjtmb3IociBpbiB1KXFbcl09ZnVuY3Rpb24ocCx3KXtyZXR1cm4tMSE9bS5pbmRleE9mKHApP2Z1bmN0aW9uKCl7ZXZhbCh3KX06d30ocix1W3JdKTtsLmRhcmtUb29sdGlwKHEpfSl9Y2F0Y2gobSl7Y29uc29sZS5sb2cobS5tZXNzYWdlLG0pfX0pO2Z1bmN0aW9uIGNoaWxkT2YoYSxiKXtmb3IoOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEmJm51bGwhPT1hJiYoYT1hLnBhcmVudE5vZGUpJiZhIT09YjspO3JldHVybiEhYX12YXIgTWVudUhhbmRsZXI7CihmdW5jdGlvbigpe3ZhciBhO01lbnVIYW5kbGVyPWZ1bmN0aW9uIGMoKXtmdW5jdGlvbiBkKGYsZyl7bGV0IG09KGcubW9kZWx8fCIiKS50cmltKCksbD0oZy50cmltfHwiIikudHJpbSgpO2Y9Zi5yZXBsYWNlKCIjI01FTlVZRUFSIyMiLGcueWVhcik7bSYmbCYmKG0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsLnRvTG93ZXJDYXNlKCkpP2w9IiI6bC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG0udG9Mb3dlckNhc2UoKSkmJihtPSIiKSk7cmV0dXJuIGY9Zi5yZXBsYWNlKCIjI01FTlVNT0RFTCMjIixtKS5yZXBsYWNlKCIjI01FTlVUUklNIyMiLGwpLnJlcGxhY2UoLyArL2csIiAiKX1pZihhKXJldHVybiBhO2E9dGhpczt0aGlzLmdldFNwZWNVcmw9ZnVuY3Rpb24oKXt2YXIgZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IjAiPT09JCgiI25ld190cmFuc2xhdGVkX3RpdGxlcyIpLnZhbCgpPyJlbiI6ImZyIjsiMCI9PSQoIiNtdWx0aS1sYW5ndWFnZSIpLnZhbCgpJiYKKGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiKTtyZXR1cm4iL2pzb24vbmV3Y2Fyc2RldGFpbHNfIitmKyIuanNvbiJ9O3RoaXMubWVudT0kKCIubWVudTUsIC5tZW51NiwgLm1lbnU3LCAubWVudTgsIC5tZW51OSwgLm1lbnUxMCIpO3RoaXMuc3BlY3NBamF4PSQuZ2V0KHRoaXMuZ2V0U3BlY1VybCgpKTt0aGlzLmNhcnM9e2RldGFpbHM6e30sZmluZEJ5SWQ6ZnVuY3Rpb24oZil7dmFyIGc9e307JC5lYWNoKHRoaXMuZGV0YWlscy5tYWtlcyxmdW5jdGlvbihtLGwpeyQuZWFjaChsLm1vZGVscyxmdW5jdGlvbih1LHEpezE9PXEuaXNzZXJpZXN8fDE9PXEuaXNDbGFzcz8kLmVhY2gocS5zdHlsZXMsZnVuY3Rpb24ocixwKXtwLmlkPT1mJiYoZz1wKX0pOnEuaWQ9PWYmJihnPXEpfSk7JC5pc0VtcHR5T2JqZWN0KGcpfSk7cmV0dXJuIGd9fTt0aGlzLnNwZWNzQWpheC5kb25lKGZ1bmN0aW9uKGYpe2MoKS5jYXJzLmRldGFpbHM9Zn0pO3RoaXMucG9zaXRpb25zPQpmdW5jdGlvbihmLGcsbSl7cmV0dXJue3RhcmdldDokKGcuY3VycmVudFRhcmdldCksc2Vjb25kTGV2ZWxNZW51Om51bGwsd2luZG93SGVpZ2h0Om51bGwsc2Vjb25kTGV2ZWxNZW51VG9wOm51bGwsc2Vjb25kTGV2ZWxNZW51Qm90dG9tOm51bGwsc3ViTWVudUl0ZW1Ub3A6bnVsbCxzdWJNZW51SXRlbUhlaWdodDpudWxsLHN1Yk1lbnVJdGVtQm90dG9tOm51bGwsYm90dG9tQWxpZ246bnVsbCxzcGVjczpudWxsLHNwZWNzVG9wOm51bGwsc3BlY3NIZWlnaHQ6bnVsbCxzcGVjc0JvdHRvbTpudWxsLGN1c3RvbVNlY29uZExldmVsTWVudTpudWxsLHJvdW5kOmZ1bmN0aW9uKGwpe3JldHVybisoTWF0aC5yb3VuZChsKyJlKzIiKSsiZS0yIil9LHVwZGF0ZTpmdW5jdGlvbigpe3RoaXMuc2Vjb25kTGV2ZWxNZW51PSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmN1c3RvbVNlY29uZExldmVsTWVudT90aGlzLmN1c3RvbVNlY29uZExldmVsTWVudSgpOnRoaXMudGFyZ2V0LmZpbmQoInVsLnN1YjpmaXJzdCIpOwp0cnl7dGhpcy53aW5kb3dIZWlnaHQ9JCh3aW5kb3cpLmhlaWdodCgpLHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wPXRoaXMuc2Vjb25kTGV2ZWxNZW51LnBvc2l0aW9uKCkudG9wLHRoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0PXRoaXMuc2Vjb25kTGV2ZWxNZW51Lm91dGVySGVpZ2h0KCksdGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b209dGhpcy5yb3VuZCh0aGlzLnNlY29uZExldmVsTWVudVRvcCt0aGlzLnNlY29uZExldmVsTWVudUhlaWdodCl9Y2F0Y2gobCl7fXRyeXt0aGlzLnN1Yk1lbnVJdGVtVG9wPSQoZikucG9zaXRpb24oKS50b3AsdGhpcy5zdWJNZW51SXRlbUhlaWdodD0kKGYpLm91dGVySGVpZ2h0KCksdGhpcy5zdWJNZW51SXRlbUJvdHRvbT10aGlzLnJvdW5kKHRoaXMuc3ViTWVudUl0ZW1IZWlnaHQrdGhpcy5zdWJNZW51SXRlbVRvcCksdGhpcy5ib3R0b21BbGlnbj10aGlzLnJvdW5kKCQoZikucGFyZW50KCJ1bCIpLm91dGVySGVpZ2h0KCkrJChmKS5wYXJlbnQoInVsIikub2Zmc2V0KCkudG9wLQp0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSl9Y2F0Y2gobCl7fXRyeXt0aGlzLnNwZWNzPW0sdGhpcy5zcGVjc1RvcD10aGlzLnNwZWNzLnBvc2l0aW9uKCkudG9wLHRoaXMuc3BlY3NIZWlnaHQ9dGhpcy5zcGVjcy5vdXRlckhlaWdodCgpLHRoaXMuc3BlY3NCb3R0b209dGhpcy5yb3VuZCh0aGlzLnNwZWNzVG9wK3RoaXMuc3BlY3NIZWlnaHQpfWNhdGNoKGwpe319LGFkanVzdFNlY29uZExldmVsOmZ1bmN0aW9uKCl7aWYoLjY1KnRoaXMud2luZG93SGVpZ2h0PHRoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0KXtpZih0aGlzLnNlY29uZExldmVsTWVudS5oYXNDbGFzcygibG9jYXRpb24tZGV0YWlscyIpKXJldHVybjt0aGlzLnNlY29uZExldmVsTWVudS5yZW1vdmVBdHRyKCJzdHlsZSIpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygiaGVpZ2h0IiwuNjUqdGhpcy53aW5kb3dIZWlnaHQpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcyh7Im92ZXJmbG93LXkiOiJhdXRvIix3aWR0aDoiNDAwcHgiLApwb3NpdGlvbjoic3RhdGljIixkaXJlY3Rpb246InJ0bCJ9KTt0aGlzLnNlY29uZExldmVsTWVudS5maW5kKCI+IGxpIikuY3NzKHtkaXJlY3Rpb246Imx0ciJ9KTtpZigwPT0kKGYpLmNoaWxkcmVuKCIubWFpbm1lbnUtc3VibWVudSIpLmxlbmd0aCl7dmFyIGw9JCgiPGRpdi8+Iik7bC5hZGRDbGFzcygibWFpbm1lbnUtc3VibWVudSIpO2wuZGV0YWNoKCkuYXBwZW5kKHRoaXMuc2Vjb25kTGV2ZWxNZW51KTt0aGlzLnRhcmdldC5hcHBlbmQobCl9dGhpcy51cGRhdGUoKX1pZih0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbTx0aGlzLnN1Yk1lbnVJdGVtVG9wKSQoZikuYWRkQ2xhc3MoImFsaWduLWxldmVsIiksdGhpcy51cGRhdGUoKSxsPXRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPCQoZikucGFyZW50KCJ1bCIpLm91dGVySGVpZ2h0KCk\/JChmKS5vdXRlckhlaWdodCgpKyQoZikucG9zaXRpb24oKS50b3AtdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQ6JChmKS5wYXJlbnQoInVsIikub3V0ZXJIZWlnaHQoKSsKJChmKS5wYXJlbnQoInVsIikucG9zaXRpb24oKS50b3AtdGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20sdGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGVZKCIrbCsicHgpIik7ZWxzZSBpZih0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbT50aGlzLnN1Yk1lbnVJdGVtVG9wJiZ0aGlzLnN1Yk1lbnVJdGVtQm90dG9tPnRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tKXtsPTA+cGFyc2VJbnQodGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJsZWZ0IikucmVwbGFjZSgicHgiLCIiKSk\/InJpZ2h0IjoibGVmdCI7dmFyIHU9e3RyYW5zZm9ybToidHJhbnNsYXRlWSgiK01hdGguYWJzKHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLXRoaXMuc3ViTWVudUl0ZW1Cb3R0b20pK3RoaXMuc2Vjb25kTGV2ZWxNZW51VG9wKyJweCkifTsicmlnaHQiIT1sJiYodVtsXT10aGlzLnRhcmdldC5wb3NpdGlvbigpLmxlZnQrdGhpcy50YXJnZXQud2lkdGgoKSk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKHUpfWVsc2UgdGhpcy5zZWNvbmRMZXZlbE1lbnVUb3A+CnRoaXMuc3ViTWVudUl0ZW1Ub3AmJnRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygidHJhbnNmb3JtIiwidHJhbnNsYXRlWSgiK3RoaXMuc3ViTWVudUl0ZW1Ub3ArInB4KSIpfSxhZGp1c3RIb3Jpem9udGFsOmZ1bmN0aW9uKCl7dGhpcy5zZWNvbmRMZXZlbE1lbnUuaGFzQ2xhc3MoImludmlzaWJsZSIpfHx0aGlzLnNlY29uZExldmVsTWVudS5hZGRDbGFzcygiaW52aXNpYmxlIik7dmFyIGw9dGhpcy5pc0luVmlld3BvcnQodGhpcy5zZWNvbmRMZXZlbE1lbnVbMF0pLHU9MD5wYXJzZUludCh0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImxlZnQiKS5yZXBsYWNlKCJweCIsIiIpKT8icmlnaHQiOiJsZWZ0IjtsfHwibGVmdCIhPT11fHwodGhpcy5zZWNvbmRMZXZlbE1lbnUuaGFzQ2xhc3MoIkwxMDAiKSYmdGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoIkwxMDAiKSx0aGlzLnNlY29uZExldmVsTWVudS5hZGRDbGFzcygiUjEwMCIpKTtsPXt9O2xbdV09dGhpcy50YXJnZXQucG9zaXRpb24oKS5sZWZ0Kwp0aGlzLnRhcmdldC53aWR0aCgpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcyhsKTt0aGlzLnNlY29uZExldmVsTWVudS5yZW1vdmVDbGFzcygiaW52aXNpYmxlIil9LGlzSW5WaWV3cG9ydDpmdW5jdGlvbihsKXtsPWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIDA8PWwudG9wJiYwPD1sLmxlZnQmJmwuYm90dG9tPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSYmbC5yaWdodDw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpfX19O3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwidWwubmF2ID4gbGkiLGZ1bmN0aW9uKGYpe3ZhciBnPWEucG9zaXRpb25zKHRoaXMsZik7Zy51cGRhdGUoKTtnLnNlY29uZExldmVsTWVudUJvdHRvbS0kKHdpbmRvdykuc2Nyb2xsVG9wKCk+Zy53aW5kb3dIZWlnaHQ\/Zy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoInNsaW0tc3VibWVudSIpOgpnLnNlY29uZExldmVsTWVudS5yZW1vdmVDbGFzcygic2xpbS1zdWJtZW51Iik7Im1vdXNlbGVhdmUiIT09Zi50eXBlJiYoZj0kKHRoaXMpLmZpbmQoIj4gdWwiKSxmLmxlbmd0aCYmIWYuZGF0YSgiY2FsY3VsYXRlZCIpJiYoZz0kKHRoaXMpLm91dGVyV2lkdGgoKSxmLm91dGVyV2lkdGgoKTxnJiZmLmNzcygid2lkdGgiLGcrMSksZi5kYXRhKCJjYWxjdWxhdGVkIiwhMCkpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwiI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpIixmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpOzAhPSQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCJ1bC5zdWIgPiBsaSIpLmxlbmd0aCYmIm1vdXNlbGVhdmUiIT1mLnR5cGUmJihnLnVwZGF0ZSgpLGcuYWRqdXN0U2Vjb25kTGV2ZWwoKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ERUFMRVJTSElQUyA+IHVsLnN1YiBsaS5sb2NhdGlvbi1uYW1lcyIsCmZ1bmN0aW9uKGYpe3ZhciBnPWEucG9zaXRpb25zKHRoaXMsZiksbT0kKGYuY3VycmVudFRhcmdldCkuZmluZCgiLmxvY2F0aW9uLWRldGFpbHMiKTtnLmN1c3RvbVNlY29uZExldmVsTWVudT1mdW5jdGlvbigpe3JldHVybiBtfTswIT0kKGYuY3VycmVudFRhcmdldCkuZmluZCgiLmxvY2F0aW9uLWRldGFpbHMiKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9Zi50eXBlJiYoJChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIikub24oImxhenlsb2FkZWQiLGZ1bmN0aW9uKGwpe2cuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCkuYXR0cigic3R5bGUiLG51bGwpO2cudXBkYXRlKCk7Zy5hZGp1c3RIb3Jpem9udGFsKCk7Zy5hZGp1c3RTZWNvbmRMZXZlbCgpfSksZy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKS5hdHRyKCJzdHlsZSIsbnVsbCksZy51cGRhdGUoKSxnLmFkanVzdEhvcml6b250YWwoKSxnLmFkanVzdFNlY29uZExldmVsKCkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLAonI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gW2RhdGEtaWQ9IlNVQl9UQUJfQ09NTUVSQ0lBTF9DT01NRVIiXScsZnVuY3Rpb24oZil7Zj1hLnBvc2l0aW9ucyh0aGlzLGYpO2YudXBkYXRlKCk7Zi5hZGp1c3RTZWNvbmRMZXZlbCgpfSk7aWYoImZvcmRfbGluY29sbl9leHRlcm5hbCI9PSQoIiNERUFMRVJQQVJUUkVESVJFQ1RUWVBFIikudmFsKCkmJjA8JCgiI0RFQUxFUkJSQU5EIikubGVuZ3RoJiYkKCIjREVBTEVSQlJBTkQiKS52YWwoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJmb3JkIikmJiIiIT0kKCIjREVBTEVSUEFDT0RFIikudmFsKCkpe3ZhciBlPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksaz0kKCIjREVBTEVSUEFDT0RFIikudmFsKCksaD0iZW4iPT1lPyIvcmVxdWVzdHMvY2FyLXBhcnRzLWFuZC1hY2Nlc3Nvcmllcy5odG1sIjoiL2RlbWFuZGVzL2NvbW1hbmRlLXBpZWNlcy1hY2Nlc3NvaXJlcy1hdXRvbW9iaWxlcy5odG1sIixuPSJodHRwczovL2ZvcmRhY2Nlc3MuY29tL0ZvcmQuYXNweD9sb2NhdGlvbj0iKwprO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwiI01haW5NZW51X1NFUlZJQ0UgdWwuc3ViIGxpW2RhdGEtaWQ9J1BJRUNFUyddIixmdW5jdGlvbigpe3ZhciBmPSQodGhpcyk7Zj0kKCI+IGEiLGYpO2YuYXR0cigiaHJlZiIpPT1oJiYoZi5hdHRyKCJocmVmIixuKSxmLmF0dHIoInRhcmdldCIsIl9ibGFuayIpKX0pfXRoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwiI01haW5NZW51X0ZJTkFOQ0UgPiBhIixmdW5jdGlvbigpe3ZhciBmPSQodGhpcyksZz0kKCJodG1sIikuYXR0cigibGFuZyIpLG09JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGw9JCgiI0RFQUxFUkJSQU5EX1BSSU1BUlkiKS52YWwoKS50b0xvd2VyQ2FzZSgpOyJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiIT0kKCIjRklOQU5DRUZPUk1UWVBFIikudmFsKCl8fCJmb3JkIiE9bCYmImxpbmNvbG4iIT1sfHwiIj09bXx8KGYuYXR0cigiaHJlZiIsImZvcmQiPT1sPygiZW4iPT1nPyJodHRwczovL3d3dy5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IjoKImh0dHBzOi8vZnIuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSIpK206KCJlbiI9PWc\/Imh0dHBzOi8vd3d3LmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IjoiaHR0cHM6Ly9mci5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSIpK20pLGYuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikpfSk7c2V0VGltZW91dChmdW5jdGlvbigpe2lmKDA8JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikubGVuZ3RoJiYiIiE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCkmJiIjI0xJTktSVUxFUyMjIiE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCkpe2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jdGEtdHBsIikubGVuZ3RoJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBuZXdjYXJEZXRhaWxzJiYKInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbCl7aWYoITE9PT0oImNvbW1lcmNpYWwiPT1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLnNlY3Rpb24\/ITA6ITEpKXJldHVybjtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY3RhLXRwbCBhIikuZm9yRWFjaCgoZixnKT0+e2c9Zi5nZXRBdHRyaWJ1dGUoImhyZWYiKTtpZihnLmluY2x1ZGVzKCJzaG9wLmZvcmQuY2EiKSl7bGV0IG09ITE7Zy5pbmNsdWRlcygic3VwZXJkdXR5IikmJihtPWcucmVwbGFjZSgiL3N1cGVyZHV0eS8iLCIvc3VwZXJkdXR5LWNvbW1lcmNpYWwvIikpOyExIT09bSYmZi5zZXRBdHRyaWJ1dGUoImhyZWYiLG0pfX0pfWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNjbGFzc2NvbW1lcmNpYWxfY29udGFpbmVyIikubGVuZ3RoJiZkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggYSIpLmZvckVhY2goKGYsZyk9PntnPWYuZ2V0QXR0cmlidXRlKCJocmVmIik7CmlmKGcuaW5jbHVkZXMoInNob3AuZm9yZC5jYSIpKXtsZXQgbT0hMTtnLmluY2x1ZGVzKCJzdXBlcmR1dHkiKSYmKG09Zy5yZXBsYWNlKCIvc3VwZXJkdXR5LyIsIi9zdXBlcmR1dHktY29tbWVyY2lhbC8iKSk7ITEhPT1tJiZmLnNldEF0dHJpYnV0ZSgiaHJlZiIsbSl9fSl9fSwyRTMpO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwiI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpID4gLm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAgI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IC5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSIsZnVuY3Rpb24oZil7aWYoIm1vdXNlbGVhdmUiIT0KZi50eXBlKXt2YXIgZz0kKHRoaXMpLmZpbmQoIi5tZW51LXRlY2gtc3BlY3MiKTswPT1nLmxlbmd0aCYmKGc9JCgiI21lbnUtc3BlY3MtdGVtcGxhdGUiKS5jbG9uZSgpKTt2YXIgbT10aGlzO2lmKDA9PSQobSkuY2hpbGRyZW4oIi5tZW51LXRlY2gtc3BlY3MiKS5sZW5ndGgpe3ZhciBsPSQobSkuZmluZCgiYTpudGgtb2YtdHlwZSgyKSIpLnRleHQoKSx1PSQobSkuZmluZCgiYTpmaXJzdC1jaGlsZCIpLmF0dHIoImhyZWYiKSxxPXUubGFzdEluZGV4T2YoIi8iKSsxO2NhckxpbmtUcmltbWVkPXUuc3Vic3RyaW5nKHEsdS5sZW5ndGgpO3ZhciByPSQoIiN0eHRCdWlsZEFuZFByaWNlRm9sZGVyUGF0aCIpLnZhbCgpK2NhckxpbmtUcmltbWVkOyhmdW5jdGlvbigpe2lmKDA8JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikubGVuZ3RoJiYiIiE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCkmJiIjI0xJTktSVUxFUyMjIiE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCkpe3ZhciB5PQowPCQobSkuY2xvc2VzdCgibGlbZGF0YS1pZF49J05FV19DT01NRVJDSUFMJ10iKS5sZW5ndGg\/ITA6ITEsQT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKTtBPUpTT04ucGFyc2UoQSk7dmFyIEk9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxCPXIubWF0Y2goImVuIj09ST8vXC9idWlsZC1hbmQtcHJpY2VcLyhcZHs0fS0oXHcrKS0oXHcrKS4qXC5odG1sKS4qLzovXC9jb25maWd1cmF0aW9uLWV0LXByaXhcLygoXHcrKS0oXHcrKS1cZHs0fSkuKlwuaHRtbC8pLEo9QlswXSxGPUJbMl0udG9Mb3dlckNhc2UoKTtCPUJbM10udG9Mb3dlckNhc2UoKS5yZXBsYWNlQWxsKCJfIiwiICIpO3kmJkIuaW5jbHVkZXMoInN1cGVyIGR1dHkiKSYmKEI9InN1cGVyIGR1dHkgY29tbWVyY2lhbCIpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl0mJiJ1bmRlZmluZWQiPT09dHlwZW9mIEFbRl1bQl0pZm9yKHZhciBLIGluIEFbRl0paWYoeT1LLEIuaW5jbHVkZXMoeSkpe0I9eTsKYnJlYWt9InVuZGVmaW5lZCIhPT10eXBlb2YgQVtGXSYmInVuZGVmaW5lZCIhPT10eXBlb2YgQVtGXVtCXSYmKCQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSxyPXIucmVwbGFjZShKLEFbRl1bQl1bSV0pKX19KSgpOyQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS5hdHRyKCJocmVmIixyKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtbGluayIpLmF0dHIoImhyZWYiLHUpOyQoZykucmVtb3ZlQXR0cigiaWQiKTskKGcpLmNoaWxkcmVuKCIubWVudS1zcGVjcy10aXRsZSIpLmFwcGVuZChsKTt2YXIgcD17fTskLmlzRW1wdHlPYmplY3QoYygpLmNhcnMuZGV0YWlscyk\/JC53aGVuKGMoKS5zcGVjc0FqYXgpLmRvbmUoZnVuY3Rpb24oeSl7cD1jKCkuY2Fycy5maW5kQnlJZCgkKG0pLmRhdGEoIm1vZGVsaWQiKSl9KTpwPWMoKS5jYXJzLmZpbmRCeUlkKCQobSkuZGF0YSgibW9kZWxpZCIpKTtpZighJC5pc0VtcHR5T2JqZWN0KHApKXt2YXIgdz1hLnNob3VsZFVzZUZyZW5jaE5hbWVzKCk\/CnAubmFtZTpwLm1vZGVsO3AuaGFzT3duUHJvcGVydHkoImJhc2Vfc3R5bGUiKSYmKHA9cC5iYXNlX3N0eWxlLHc9cC5tb2RlbCk7cT0iRlJFTkNIIj09JCgiI3RleHRMYW5ndWFnZSIpLnZhbCgpPyJOL0QiOiJOL0EiO2w9IiI9PXAuZGlzcGxhY2VtZW50P3E6cC5kaXNwbGFjZW1lbnQ7dT0iIj09cC5jaXR5RnVlbD9xOnAuY2l0eUZ1ZWw7cT0iIj09cC5od3lGdWVsP3E6cC5od3lGdWVsO3ZhciB6PXAubXNycEFsbEluLEQ9JChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLnRleHQoKS50cmltKCk7RD1ELnJlcGxhY2UoIiRNT0RFTCIsdyk7dz1gPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHt6LnRvTG9jYWxlU3RyaW5nKCl9PC9zcGFuPmA7ej0kKCIjQURNSU5fTkVXX0RPTlRfU0hPV19QUklDRV9NT0RFTFMiKS52YWwoKS5pbmNsdWRlcyhwLm1vZGVsaWQpO2lmKDA8JChtKS5jaGlsZHJlbigiLnByaWNlIikubGVuZ3RoKXskKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS50ZXh0KCIiKTsKdmFyIEM9JCgnPGRpdiBjbGFzcz0icHJpY2UiLz4nKSxFPSQoJzxzcGFuIGNsYXNzPSJwcmljZV9hbXQiLz4nKSxHPSQoJzxzcGFuIGNsYXNzPSJwcmljZV9zY3JhdGNoZWQiLz4nKSxIPSQoJzxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyIvPicpOzA8JChtKS5jaGlsZHJlbigiLnByaWNlIikuY2hpbGRyZW4oIi5wcmljZS1zY3JhdGNoIikubGVuZ3RoPyhHLmh0bWwodyksRS5hcHBlbmQoRyksRS5jc3MoeyJ0ZXh0LWRlY29yYXRpb24iOiJsaW5lLXRocm91Z2giLGNvbG9yOiJyZWQifSkpOkUuaHRtbCh3KTtDLmFwcGVuZChFKTswPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2VfcHJvbW8iKS5sZW5ndGgmJihILnRleHQoJChtKS5jaGlsZHJlbigiLnByaWNlIikuY2hpbGRyZW4oIi5wcmljZV9wcm9tbyIpLnRleHQoKSksSC5jc3Moe2NvbG9yOiJyZWQifSksQy5hcHBlbmQoSCkpOyQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLmFwcGVuZChDKX1lbHNlICQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLmh0bWwodyk7CiQoZykuZmluZCgiLm1lbnUtc3BlYy1ocCIpLnRleHQocC5ocEF0UlBNKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtcG93ZXIiKS50ZXh0KGwpOyQoZykuZmluZCgiLm1lbnUtc3BlYy1mdWVsLWNpdHkiKS50ZXh0KHUpOyQoZykuZmluZCgiLm1lbnUtc3BlYy1mdWVsLWhpZ2h3YXkiKS50ZXh0KHEpOyQoZykuZmluZCgiLm1lbnUtc3BlYy1kcml2ZXRyYWluIikudGV4dChwLmRyaXZlVHJhaW4pOyQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS5jb250ZW50cygpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAzPT10aGlzLm5vZGVUeXBlfSkubGFzdCgpLnJlcGxhY2VXaXRoKEQpO3omJigkKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikucmVtb3ZlKCksJChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikudGV4dCgkKCIjTkVXX1BSSUNFX1RFWFQiKS52YWwoKSkpOyQoZykuZmluZCgiLm1lbnUtcHJpY2UtdGV4dCIpLnRleHQoZCgkKGcpLmZpbmQoIi5tZW51LXByaWNlLXRleHQiKS50ZXh0KCksCnApKTs1RTg+cC5pZCYmJChtKS5hcHBlbmQoZy5mYWRlSW4oMjAwKSk7bD1uZXcgQ3VzdG9tRXZlbnQoInRvcG5hdi10ZWNoLXNwZWMtbG9hZGVkIix7ZGV0YWlsOnt0ZW1wbGF0ZTpnfX0pO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQobCl9fXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgeT1hLnBvc2l0aW9ucyhtLGYsJChnKSk7eS51cGRhdGUoKTt2YXIgQT0kKG0pLnBhcmVudCgidWwuc3ViIikucGFyZW50KCkucGFyZW50KCk7QS5vZmZzZXQoKTtBLm91dGVySGVpZ2h0KCk7eS5zcGVjc0JvdHRvbTx5LnN1Yk1lbnVJdGVtVG9wJiYkKGcpLmNzcygidG9wIix5LnN1Yk1lbnVJdGVtQm90dG9tLXkuc3BlY3NCb3R0b20pO3kuc3ViTWVudUl0ZW1Ub3A8eS5zcGVjc0JvdHRvbSYmeS5zdWJNZW51SXRlbUJvdHRvbT55LnNwZWNzQm90dG9tJiYkKGcpLmNzcygidG9wIiwkKGcpLnBvc2l0aW9uKCkudG9wKyh5LnN1Yk1lbnVJdGVtQm90dG9tLXkuc3BlY3NCb3R0b20pKX0sMCk7ZGVsZXRlIHB9fSk7CiQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcDpub3QoLmlzT3BlbiknKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oZil7JChmLmN1cnJlbnRUYXJnZXQpLmhhc0NsYXNzKCJpc09wZW4iKXx8JCgnLnVwX21lbnUgW2lkXj0iTWFpbk1lbnVfIl0udG9wJykucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfSk7JChkb2N1bWVudCkub24oImNsaWNrIixmdW5jdGlvbihmKXtjaGlsZE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsJCgiLnVwX21lbnUiKVswXSl8fCQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcCcpLnJlbW92ZUNsYXNzKCJpc09wZW4iKX0pOyQoIiNNYWluTWVudV9DT05UQUNUIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oZil7dmFyIGc9JCgiI21lbnUtbWFwLWxpbmsiKTswPT1nLmxlbmd0aHx8MDxnLmZpbmQoImlmcmFtZSIpLmxlbmd0aHx8aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbihtKXttPSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/IisKWyJxPSIrZW5jb2RlVVJJQ29tcG9uZW50KGcuZGF0YSgicGxhY2VJZCIpKSwiem9vbT0iK2cuZGF0YSgiem9vbSIpLCJsYW5ndWFnZT0iK2cuZGF0YSgibGFuZ3VhZ2UiKSwicmVnaW9uPUNBIiwia2V5PSIrbV0uam9pbigiJiIpO2cuYXBwZW5kKCc8aWZyYW1lIHNyYz0iJyttKyciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjQwMCIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpfSl9KTskKCIjTWFpbk1lbnVfRklOQU5DRSwgI01haW5NZW51X0NPTlRBQ1QiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbihmKXt2YXIgZz1mLmN1cnJlbnRUYXJnZXQuaWQsbT0kKCIjIitnKTswPT09JCgiIyIrZysiLmlzT3BlbiIpLmxlbmd0aCYmIm1vdXNlbGVhdmUiIT09Zi50eXBlJiZtLmFkZENsYXNzKCJpc09wZW4iKTtpZigibW91c2VsZWF2ZSI9PT1mLnR5cGUpe3ZhciBsPSQoIi5jcmVkaXRTY29yZVBvcHVwRm9ybSIpWzBdOwpnPSQoIiMiK2crIiA+IGEudG9wX2xpbmsiKVswXTsobCYmZi5mcm9tRWxlbWVudD09PWx8fGcmJmYuZnJvbUVsZW1lbnQ9PT1nKSYmbS5yZW1vdmVDbGFzcygiaXNPcGVuIik7bD0kKGYudG9FbGVtZW50KS5oYXNDbGFzcygiY2FsLXdyYXBwZXIiKXx8JChmLnRvRWxlbWVudCkuY2hpbGRyZW4oKS5oYXNDbGFzcygiY2FsLXdyYXBwZXIiKXx8JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoIm5lYkNhbCIpfHwkKGYudG9FbGVtZW50KS5jbG9zZXN0KCIubmViQ2FsIikubGVuZ3RoO2c9JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoInBhYy1jb250YWluZXIiKTtpZighKG51bGw9PT1mLnRvRWxlbWVudHx8Y2hpbGRPZihmLnRvRWxlbWVudCxtWzBdKXx8Y2hpbGRPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50LG1bMF0pfHxsfHxnKXx8Y2hpbGRPZihmLnRvRWxlbWVudCwkKCIudXBfbWVudSIpWzBdKSYmIWNoaWxkT2YoZi50b0VsZW1lbnQsbVswXSkpJCgiLm5lYkNhbCIpLmlzKCI6dmlzaWJsZSIpJiYKKGY9JCgiLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IC5jcmVkaXRTY29yZUJpcnRoZGF0ZSIpLmRhdGEoIm5lYkNhbCIpKSYmZi5oaWRlKCksbS5yZW1vdmVDbGFzcygiaXNPcGVuIil9fSk7aWYoJCghMCkpe2U9JCgiLm1lbnU1IC5uYXYgPiBsaSIpO2s9ZS5sZW5ndGg7dmFyIHg9JCgiI01haW5NZW51X0NPTlRBQ1QiKSx2PS0xO2UuZWFjaChmdW5jdGlvbihmLGcpeyQoZykuaXMoeCkmJih2PWYpfSk7LTE8diYmLjU8PXYvayYmeC5maW5kKCIuY29udGFjdHVzLWZvcm0uY29udGFjdC1zaG9ydCIpLmNzcyh7cmlnaHQ6ImluaGVyaXQifSl9dGhpcy5zaG91bGRVc2VGcmVuY2hOYW1lcz1mdW5jdGlvbigpe3JldHVybiJGUkVOQ0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJiIxIj09PSQoIiNuZXdfdHJhbnNsYXRlZF90aXRsZXMiKS52YWwoKX07dGhpcy5zZXRNZW51RXhwcmVzc0Zvcm1TZWxlY3RlZE9wdGlvbj1mdW5jdGlvbigpe3ZhciBmPXdpbmRvdy5sb2NhdGlvbi5ocmVmLApnPS91c2VkfG9jY2FzaW9uLy50ZXN0KGYpLG09L25ld3xuZXVmcy8udGVzdChmKSxsPS9maW5hbmNlbWVudHxjcmVkaXQvLnRlc3QoZiksdT0vc2VydmljZXxhY2Nlc3Nvcmllc3x0aXJlfHBuZXVzfGJvZHlzaG9wfGJvZHktc2hvcHxjYXJvc3NlcmllLy50ZXN0KGYpO2Y9IiI7bT9mPSJuZXciOmc\/Zj0idXNlZCI6bD9mPSJmaW5hbmNlIjp1JiYoZj0ic2VydmljZSIpOyIiIT1mJiYoZz0kKCIubWVudSAjcXVpY2tFbWFpbERlcGFydG1lbnQiKSwkKCcgb3B0aW9uW3ZhbHVlPSInK2YrJyJdJyxnKS5wcm9wKCJzZWxlY3RlZCIsInNlbGVjdGVkIiksbT0kKCJvcHRpb246c2VsZWN0ZWQiLGcpLmluZGV4KCksZy5wcmV2KCJ1bCIpLmZpbmQoImxpIikuZXEobSkuZmluZCgiYSIpLnRyaWdnZXIoImNsaWNrIikpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5zZXRNZW51RXhwcmVzc0Zvcm1TZWxlY3RlZE9wdGlvbigpfSwxMCk7Y29uc29sZS5sb2coIk1lbnVIYW5kbGVyIGluaXQgLS0gdGVzdCByZW1vdmUgbGF0ZXIiKTsKdGhpcy50cmFuc2xhdGVUaXRsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e3ZhciBmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLW1lbnUtdHJhbnNsYXRlXSIpO2lmKGYpe3ZhciBnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKS5jbGFzc05hbWUubWF0Y2goIkZSRU5DSCIpPyJmciI6ImVuIixtPShuZXcgVVJMKGAvanMvanNvbi9tZW51VGl0bGVzXyR7Z30uanNvbmAsd2luZG93LmxvY2F0aW9uLm9yaWdpbikpLmhyZWY7cmVzcG9uc2U9eWllbGQgZmV0Y2gobSk7aWYodGV4dD15aWVsZCByZXNwb25zZS50ZXh0KCkpaWYoZGF0YT1KU09OLnBhcnNlKHRleHQpLGYmJjAhPT1kYXRhLmxlbmd0aClmb3IoZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgbD1mW2ddLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51LXRyYW5zbGF0ZSIpO2RhdGFbbF0mJkJhc2U2NC5pc0Jhc2U2NChkYXRhW2xdLnRleHQpJiYKKGZbZ10udGV4dENvbnRlbnQ9QmFzZTY0LmRlY29kZShkYXRhW2xdLnRleHQpKX19fWNhdGNoKHUpe2NvbnNvbGUubG9nKHUpfX0pfTt0aGlzLnRyYW5zbGF0ZVRpdGxlcygpfX0pKCk7JChmdW5jdGlvbigpe3dpbmRvdy5tZW51SGFuZGxlcj1uZXcgTWVudUhhbmRsZXJ9KTsKdmFyIGdldEFjdGl2ZVBhZ2U9ZnVuY3Rpb24oKXt2YXIgYT0iIjsidW5kZWZpbmVkIj09PXR5cGVvZiBhY3RpdmVQYWdlJiYoYWN0aXZlUGFnZT0iIik7c3dpdGNoKGFjdGl2ZVBhZ2Upe2Nhc2UgIkhPTUVQQUdFIjphPSJBY2N1ZWlsIjticmVhaztjYXNlICJDQVJERVRBSUxTIjphPSJPY2Nhc2lvbi1WRFAiO2JyZWFrO2Nhc2UgIlVTRURDQVJTIjphPSJPY2Nhc2lvbi1TUlAiO2JyZWFrO2Nhc2UgIk5FV0NBUlMiOmE9Ik5ldWYtU1JQIjticmVhaztjYXNlICJORVdDQVJERVRBSUxTIjphPSJOZXVmLVZEUCJ9cmV0dXJuIGF9LHNlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudD1mdW5jdGlvbihhLGIpe2dhVHJhY2soIl90cmFja0V2ZW50IiwiQ2xpcXVlcyBCYW5uaWVyZSIsYSxiLDEpfTsKJChkb2N1bWVudCkub24oImNsaWNrIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyID4gYSIsZnVuY3Rpb24oYSl7aWYoYT1nZXRBY3RpdmVQYWdlKCkpe3ZhciBiPSIiIT0kKHRoaXMpLmF0dHIoImhyZWYiKT8kKHRoaXMpLmF0dHIoImhyZWYiKToiUG9wdXAiO3NlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLGIpfX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIgPiBhIixmdW5jdGlvbihhKXtpZihhPWdldEFjdGl2ZVBhZ2UoKSl7dmFyIGI9IiIhPSQodGhpcykuYXR0cigiaHJlZiIpPyQodGhpcykuYXR0cigiaHJlZiIpOiJQb3B1cCI7c2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50KGEsYil9fSk7CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiN0b3BCYW5uZXJJbWFnZSIsZnVuY3Rpb24oYSl7KGE9Z2V0QWN0aXZlUGFnZSgpKSYmc2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50KGEsIlBvcHVwIil9KTt2YXIgaG9tZVBhZ2VCYW5uZXJWaWV3PVtdOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciA+IGEiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJiJBY2N1ZWlsIj09YSYmKGE9JCgiI3NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiRGVza3RvcC1jbGljayIsYSwxKSl9KTsKJChkb2N1bWVudCkub24oIm5pdm9TbGlkZXJDaGFuZ2VkIG5pdm9TbGlkZXJMb2FkZWQiLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIiLGZ1bmN0aW9uKGEpeyEoYT1nZXRBY3RpdmVQYWdlKCkpfHwiQWNjdWVpbCIhPWF8fDUwMDwkKGRvY3VtZW50KS5zY3JvbGxUb3AoKXx8KGE9JCgiI3NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLDA+JC5pbkFycmF5KGEsaG9tZVBhZ2VCYW5uZXJWaWV3KSYmKGhvbWVQYWdlQmFubmVyVmlldy5wdXNoKGEpLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiRGVza3RvcC12aWV3IixhLDEpKSl9KTsKJChkb2N1bWVudCkub24oImNsaWNrIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiA+IGEiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJiJBY2N1ZWlsIj09YSYmKGE9JCgiI21vYmlsZVNsaWRlcjIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIk1vYmlsZS1jbGljayIsYSwxKSl9KTsKJChkb2N1bWVudCkub24oIm5pdm9TbGlkZXJDaGFuZ2VkIG5pdm9TbGlkZXJMb2FkZWQiLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyIixmdW5jdGlvbihhKXshKGE9Z2V0QWN0aXZlUGFnZSgpKXx8IkFjY3VlaWwiIT1hfHwzNTA8JChkb2N1bWVudCkuc2Nyb2xsVG9wKCl8fChhPSQoIiNtb2JpbGVTbGlkZXIyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsMD4kLmluQXJyYXkoYSxob21lUGFnZUJhbm5lclZpZXcpJiYoaG9tZVBhZ2VCYW5uZXJWaWV3LnB1c2goYSksZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJNb2JpbGUtdmlldyIsYSwxKSkpfSk7CmZ1bmN0aW9uIHRocmVzaG9sZFBvcHVwKCl7dmFyIGE9Z2V0VXJsVmFycygpO2lmKG51bGw9PUNvb2tpZXMuZ2V0KCJwb3B1cFNob3duIil8fCJ1bmRlZmluZWQiIT10eXBlb2YgYS5kZWJ1ZylzaG93UG9wdXBXaWRnZXQoe2RvTm90UmVkaXJlY3Q6ITB9KSxDb29raWVzLnNldCgicG9wdXBTaG93biIsIjEiLDkwLCIvIil9ZnVuY3Rpb24gX2xvY2FsU3RvcmFnZVNldChhLGIsYyl7Yz04NjRFNSooY3x8MSk7Yj17dmFsdWU6YixleHBpcnk6KG5ldyBEYXRlKS5nZXRUaW1lKCkrY307bG9jYWxTdG9yYWdlLnNldEl0ZW0oYSxKU09OLnN0cmluZ2lmeShiKSl9ZnVuY3Rpb24gX2xvY2FsU3RvcmFnZUdldChhKXt2YXIgYj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShhKTtpZighYilyZXR1cm4gbnVsbDtiPUpTT04ucGFyc2UoYik7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCk+Yi5leHBpcnk\/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGEpLG51bGwpOmIudmFsdWV9CmZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VSZW1vdmUoYSl7aWYoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKGEpKXJldHVybiBudWxsO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGEpO3JldHVybiBudWxsfWZ1bmN0aW9uIGdlbmVyYXRlVW5pcXVlSWQoKXtyZXR1cm4iaWQtIitEYXRlLm5vdygpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1jb25zdCBpbml0VG9vbHRpcHM9KCk9Pnt0cnl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtcG9wcGVyXSIpLmZvckVhY2goYT0+e1Rvb2x0aXAoYSkuY3JlYXRlKCl9KX1jYXRjaChhKXtjb25zb2xlLmxvZygiVG9vbHRpcCBvYmplY3Qgbm90IGZvdW5kIil9fTsKZnVuY3Rpb24gaGFuZGxlQ29va2llQ29udGVudCgpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNvb2tpZWhpZGVdIikuZm9yRWFjaChhPT57bGV0IGI9YS5kYXRhc2V0LmNvb2tpZWhpZGU7Yi5sZW5ndGgmJkNvb2tpZXMuZ2V0KGIpJiYoYS5oaWRkZW49ITApfSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtY29va2llc2hvd10iKS5mb3JFYWNoKGE9PntsZXQgYj1hLmRhdGFzZXQuY29va2llc2hvdztiLmxlbmd0aCYmQ29va2llcy5nZXQoYikmJihhLmhpZGRlbj0hMSl9KX12YXIgc2l0ZVBhZ2U9e307CmNvbnN0IGRvY1JlYWR5PWZ1bmN0aW9uKCl7X2xvY2FsU3RvcmFnZUdldCgiZDJjLXVpZCIpfHxfbG9jYWxTdG9yYWdlU2V0KCJkMmMtdWlkIixnZW5lcmF0ZVVuaXF1ZUlkKCksMik7aWYoImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUpe2xldCBhO2NvbnNvbGUubG9nKCJHU1BFRUQtRE9DUkVBRFkgQ09NUExFVEU6IisoRGF0ZS5ub3coKS0obnVsbCE9KGE9d2luZG93LmdUZXN0U3BlZWRDb25uKT9hOjApKS8xRTMpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi10eHQiKS5mb3JFYWNoKGI9PntiLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXR4dCIsITEpfSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXNsaWRlciIpLmZvckVhY2goYj0+e2IuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tc2xpZGVyIiwhMSl9KTt3aW5kb3cuZ1NrZWxldG9uSXNSZW1vdmVkPSEwO3NpdGVQYWdlPXtuYW1lOiJ1bmRlZmluZWQiIT10eXBlb2YgcGFnZT8KcGFnZToiIixpc01vYmlsZToiMSI9PShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXNtb2JpbGUiKXx8IiIpLnZhbHVlLGxhbmc6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmVzaXRlbGFuZ3VhZ2UiKXx8IiIpLnZhbHVlfHwiRlJFTkNIIn07aGFuZGxlQ29va2llQ29udGVudCgpO2luaXRUb29sdGlwcygpO2RvY1JlYWR5QXJyLmZvckVhY2goYj0+YigpKTtkb2NSZWFkeUFycj1bXX1lbHNle2xldCBhO2lmKCJpbnRlcmFjdGl2ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlJiZ3aW5kb3cuZ1Jlc291cmNlTG9hZGVyQW5kSnF1ZXJ5SXNSZWFkeSYmITE9PT0obnVsbCE9KGE9d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZCk\/YTohMSkpe2xldCBiO2NvbnNvbGUubG9nKCJHU1BFRUQtRE9DUkVBRFkgSU5URVJBQ1RJVkU6IisoRGF0ZS5ub3coKS0obnVsbCE9KGI9d2luZG93LmdUZXN0U3BlZWRDb25uKT9iOjApKS8xRTMpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi10eHQiKS5mb3JFYWNoKGM9Pgp7Yy5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi10eHQiLCExKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi1zbGlkZXIiKS5mb3JFYWNoKGM9PntjLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXNsaWRlciIsITEpfSk7d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD0hMH1zZXRUaW1lb3V0KGRvY1JlYWR5LDUwKX19O2RvY1JlYWR5KCk7CiQoZnVuY3Rpb24oKXt2YXIgYT0hMDskKHdpbmRvdykub24oInNjcm9sbCIsZnVuY3Rpb24oKXt2YXIgZD0kKGRvY3VtZW50KS5oZWlnaHQoKSxlPSQod2luZG93KS5oZWlnaHQoKSskKHdpbmRvdykuc2Nyb2xsVG9wKCk7LjA1PihkLWUpL2QmJmEmJihhPSExLCJ1bmRlZmluZWQiIT09dHlwZW9mIGdhVHJhY2smJmdhVHJhY2soIl90cmFja0V2ZW50IiwiQm90dG9tIG9mIHBhZ2UgcmVhY2hlZCIsJCgnaW5wdXRbbmFtZT0idGFyZ2V0UGFnZSJdJykudmFsKCksd2luZG93LmxvY2F0aW9uLmhyZWYsMSkpfSk7JCgiLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIikucGFyZW50KCIud3JhcHBlciIpLnJlbW92ZUNsYXNzKCJ3cmFwcGVyIik7aWYoJCgiI2lzQnJhbmRQYWdlIikubGVuZ3RoKXt2YXIgYj1nZXRVcmxWYXJzKCk7aWYoYi5rdyYmLTEhPWIua3cudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJjYW5hZGEiKSl7dmFyIGM9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpJiYiRU5HTElTSCI9PQokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiO2I9ImVuIj09Yz8iSGVyZSB3ZSBvZmZlciB0aGUgYmVzdCBwcmljZXMiOiJJY2kgb24gb2ZmcmUgbGVzIG1laWxsZXVycyBwcml4IjtjPSJlbiI9PWM\/Im9uICIrJCgiI2lzQnJhbmRQYWdlIikudmFsKCkrIidzIGluIENhbmFkYSI6JCgiI2lzQnJhbmRQYWdlIikudmFsKCkrIiBhdSBDYW5hZGEiOyQoIiNkZWZhdWx0VG9wQmFubmVyVGl0bGUiKS50ZXh0KGIpOyQoIiNkZWZhdWx0VG9wQmFubmVyVGV4dCIpLnRleHQoYyl9fSQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihiPWdldFVybFZhcnMoKSxiLmZpbmFuY2Vwb3AmJiJ5ZXMiPT1iLmZpbmFuY2Vwb3AmJnNldFRpbWVvdXQoKCk9PnskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5vcGVuKCl9LDFFMykpOzA8JCgiLnRyYWRlc2lpLXJvb3QiKS50ZXh0KCkubGVuZ3RoPyQoIi50cmFkZXNpaS1yb290IikuY3NzKCJ6LWluZGV4IiwKMUUzKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnRyYWRlc2lpLXJvb3QiKS5jc3MoInotaW5kZXgiLDFFMyl9LDFFMyl9KTtmdW5jdGlvbiBhZGRNYXhMZW5ndGgoKXskKCI6aW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5hdHRyKCJ0eXBlIiksYj0kKHRoaXMpLmF0dHIoIm1heGxlbmd0aCIpO2lmKHZvaWQgMD09Ynx8bnVsbD09Ynx8IiI9PWIpInRleHQiPT1hfHwidGVsIj09YXx8ImVtYWlsIj09YXx8InVybCI9PWE\/JCh0aGlzKS5wcm9wKCJtYXhsZW5ndGgiLDI1Nik6Im51bWJlciI9PWEmJigkKHRoaXMpLnByb3AoIm9uaW5wdXQiLCJ0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMCx0aGlzLm1heGxlbmd0aCkiKSwkKHRoaXMpLnByb3AoIm1heGxlbmd0aCIsMjU2KSl9KX1kb2NSZWFkeUFyci5wdXNoKCgpPT57JCgiLnJldmVhbC1tb2RhbCIpLm9uKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbigpe2FkZE1heExlbmd0aCgpfSk7YWRkTWF4TGVuZ3RoKCl9KTsKKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCxlKXt0aGlzLmVsPWQ7dGhpcy4kZWw9YShkKTtpZih2b2lkIDA9PT1lfHwib2JqZWN0Ij09PXR5cGVvZiBlKXRoaXMuc2V0dGluZ3M9YS5leHRlbmQoYyxlKTt0aGlzLmluaXQoKX12YXIgYz17bGF0OiIiLGxvbmc6IiIscG9zdGFsOiIiLHJhdGlvOi42ODg1LHdpZHRoOiJhdXRvIn07Yi5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLiRlbC5pcygiLmxhenlsb2FkIik\/ImRhdGEtaW1nc3JjIjoic3JjIjt0aGlzLiRlbC5hdHRyKGQsdGhpcy5nZXRVcmwoKSl9LGlzVmlzaWJsZTpmdW5jdGlvbigpe3ZhciBkPXRoaXMuJGVsLmF0dHIoIndpZHRoIik7cmV0dXJuISgiMHB4Ij09PXRoaXMuJGVsLmF0dHIoImhlaWdodCIpfHwiMHB4Ij09PWQpfSxnZXRXaWR0aDpmdW5jdGlvbigpe3RoaXMuJGVsLmF0dHIoIndpZHRoIik7dmFyIGQ9MDsiYXV0byI9PT10aGlzLnNldHRpbmdzLndpZHRofHwiYXV0byI9PT10aGlzLiRlbC5kYXRhKCJ3aWR0aCIpPwpkPXRoaXMuJGVsLnBhcmVudCgpLmNzcygid2lkdGgiKTppc05hTihwYXJzZUludCh0aGlzLnNldHRpbmdzLndpZHRoKSk\/dm9pZCAwIT09dGhpcy4kZWwuYXR0cigid2lkdGgiKSYmKGQ9dGhpcy4kZWwuYXR0cigid2lkdGgiKSk6ZD10aGlzLnNldHRpbmdzLndpZHRoO3RoaXMuJGVsLmF0dHIoIndpZHRoIixkKTtyZXR1cm4gcGFyc2VJbnQoZC5yZXBsYWNlKCJweCIsIiIpKX0sZ2V0SGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGQ9ImF1dG8iPT09dGhpcy5zZXR0aW5ncy53aWR0aHx8ImF1dG8iPT09dGhpcy4kZWwuZGF0YSgid2lkdGgiKT9NYXRoLnJvdW5kKHRoaXMuZ2V0V2lkdGgoKSp0aGlzLnNldHRpbmdzLnJhdGlvKSsicHgiOnRoaXMuJGVsLnBhcmVudCgpLmNzcygiaGVpZ2h0Iik7dGhpcy4kZWwuYXR0cigiaGVpZ2h0IixkKTtyZXR1cm4gcGFyc2VJbnQoZC5yZXBsYWNlKCJweCIsIiIpKX0sZ2V0VXJsOmZ1bmN0aW9uKCl7dmFyIGQ9Z2V0RGF0YUF0dHJpYnV0ZXModGhpcy5lbCksCmU9dGhpcy5nZXRXaWR0aCgpLGs9dGhpcy5nZXRIZWlnaHQoKSxoPWQubGF0KyIsIitkLmxvbmcsbj1kLmhhc093blByb3BlcnR5KCJtYXJrZXJJY29uIik\/Imljb246IitkLm1hcmtlckljb24rInwiOiIiO2Q9YS5leHRlbmQoe3NpemU6ZSsieCIrayxjZW50ZXI6aCx6b29tOiIxMiIsbWFya2VyczpuK2h9LGQpO3JldHVybiJodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwPyIrYS5wYXJhbShkKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuJGVsLnJlbW92ZURhdGEoKX19O2EuZm4uZ29vZ2xlU3RhdGljTWFwPWZ1bmN0aW9uKGQpe3ZhciBlPWFyZ3VtZW50cztpZigxPnRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKCFhLmRhdGEodGhpcywicGx1Z2luX3N0YXRpY01hcCIpKXJldHVybiBhLmRhdGEodGhpcywicGx1Z2luX3N0YXRpY01hcCIsbmV3IGIodGhpcyxkKSksdGhpc30pO2lmKCJzdHJpbmciPT09dHlwZW9mIGQmJgoiXyIhPT1kWzBdJiYiaW5pdCIhPT1kKXsxPHRoaXMubGVuZ3RoJiZjb25zb2xlLmxvZygiZ29vZ2xlU3RhdGljTWFwIHdhcm5pbmcgY29kZSAxIik7dmFyIGs9YS5kYXRhKHRoaXMuZmlyc3QoKVswXSwicGx1Z2luX3N0YXRpY01hcCIpO3JldHVybiBrW2RdLmFwcGx5KGssQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwxKSl9cmV0dXJuIHRoaXN9fSkoalF1ZXJ5KTtmdW5jdGlvbiBwYXJzZVF1ZXJ5KGEpe2lmKDE+YS5sZW5ndGgpcmV0dXJue307Zm9yKHZhciBiPXt9LGM9YS5zcGxpdCgiJiIpLGQ9MDtkPGMubGVuZ3RoO2QrKylhPWV4cGxvZGUoY1tkXSwiPSIsMSksYlthWzBdXT1hWzFdO3JldHVybiBifWZ1bmN0aW9uIGRlY29kZVN0cmluZyhhLGIpe2lmKCIiPT1ifHwidW5kZWZpbmVkIj09YiliPTE7Zm9yKGk9MDtpPGI7aSsrKWE9ZGVjb2RlVVJJQ29tcG9uZW50KGEpO3JldHVybiBhfQpmdW5jdGlvbiBleHBsb2RlKGEsYixjKXthPWEuc3BsaXQoYik7aWYoYS5sZW5ndGg8PWMpcmV0dXJuIGE7Yz1hLnNwbGljZSgwLGMpO2MucHVzaChhLmpvaW4oYikpO3JldHVybiBjfWZ1bmN0aW9uIGdldFVybFZhcnMoKXt2YXIgYT13aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTtyZXR1cm4gcGFyc2VRdWVyeShhKX1mdW5jdGlvbiBnZXRDb29raWUoYSl7cmV0dXJuIENvb2tpZXMuZ2V0KGEpfWZ1bmN0aW9uIHNldENvb2tpZShhLGIsYyl7Q29va2llcy5zZXQoYSxiLGMsIi8iKX1mdW5jdGlvbiBnZXRDb29raWVEMmMoYSl7cmV0dXJuIENvb2tpZXMuZ2V0KGEpfWZ1bmN0aW9uIHNldENvb2tpZUQyYyhhLGIsYyl7Q29va2llcy5zZXQoYSxiLGMsIi8iKX1mdW5jdGlvbiBpc1NTTCgpe3JldHVybiJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sfWZ1bmN0aW9uIHNldFNlc3Npb25Db29raWUoYSxiKXtDb29raWVzLnNldChhLGIsMCwiLyIpfQpmdW5jdGlvbiBpbml0TENJKGEsYil7aWYoMjA8YilyZXR1cm4gYjtiPWI\/YjowO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgTENfQVBJfHwidW5kZWZpbmVkIj09dHlwZW9mIExDX0ludml0ZSlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aW5pdExDSShhLCsrYil9LDUwMCk7ZWxzZSBpZigidW5kZWZpbmVkIiE9dHlwZW9mIExDX0FQSSYmInVuZGVmaW5lZCIhPXR5cGVvZiBMQ19JbnZpdGUmJmEpcmV0dXJuIExDX0FQSS5zZXRfY3VzdG9tX3ZhcmlhYmxlcyhhKX1mdW5jdGlvbiBnZXRSZWZlcnJlclZhckZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpeyIiPT1hJiYoYT1kb2N1bWVudC5yZWZlcnJlcik7dmFyIGI9YS5pbmRleE9mKCI\/IikrMTtyZXR1cm4gMDxiPyhiPWEuc2xpY2UoYikscGFyc2VRdWVyeShiKSk6e319fQooZnVuY3Rpb24oYSl7dmFyIGI9e2NhbGxiYWNrczpbXSxoYXNTY3JpcHQ6ZnVuY3Rpb24oKXt2YXIgZT1hKCdoZWFkIHNjcmlwdFtzcmMqPSJtYXBzLmpzLnBocCJdJyk7cmV0dXJuIDA9PWUubGVuZ3RoPyExOi9tYXBzXC5qcy8udGVzdChlLmF0dHIoInNyYyIpKX0sbG9hZDpmdW5jdGlvbihlKXtpZihiLmhhc1NjcmlwdCgpKSJ1bmRlZmluZWQiPT09dHlwZW9mIGdvb2dsZT9iLmNhbGxiYWNrcy5wdXNoKGUpOmUoKTtlbHNle2IuY2FsbGJhY2tzLnB1c2goZSk7dHJ5e3ZhciBrPSJFTkdMSVNIIj09YSgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIjsoZnVuY3Rpb24oaCxuLHgsdixmKXtoW2ZdJiZoW2ZdLm1hcHN8fChoPW4uY3JlYXRlRWxlbWVudCh4KSxuPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoeClbMF0saC5zcmM9dixoLmFzeW5jPSExLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZ29vZ2xlTWFwc0xvYWRlZCIsZz0+e2ZvcihnPTA7ZzxiLmNhbGxiYWNrcy5sZW5ndGg7ZysrKWIuY2FsbGJhY2tzW2ddLmNhbGwoKX0pLApuLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGgsbikpfSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCIvanMvbWFwcy5qcy5waHA\/bGFuZz0iK2ssImdvb2dsZSIpfWNhdGNoKGgpe2NvbnNvbGUubG9nKGgpfX19fSxjPXthdXRvQ29tcGxldGU6e2NvbXBvbmVudFJlc3RyaWN0aW9uczp7Y291bnRyeToiY2EifX0scmFkaXVzOjFFNX0sZD1mdW5jdGlvbihlLGspe3ZhciBoPXRoaXM7aC5lbD1lO2guJGVsPWEoZSk7aC5zZXR0aW5ncz1hLmV4dGVuZChjLGspO2guYWRkcmVzcz17Y2l0eToiIixzdHJlZXRfbnVtYmVyOiIiLHN0cmVldDoiIixzdWJsb2NhbGl0eToiIixwcm92aW5jZToiIixjb3VudHJ5OiIiLHBvc3RhbDoiIn07aC4kZWwub25lKCJmb2N1cyIsZnVuY3Rpb24oKXtoLmluaXQoKX0pfTtkLnByb3RvdHlwZT17X2NoZWNrRm9yR29vZ2xlTWFwczpmdW5jdGlvbihlKXsidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGV8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGdvb2dsZS5tYXBzPwpiLmxvYWQoZSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBlJiZlLmNhbGwoKX0sZ2V0QWRkcmVzczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkZHJlc3N9LF9zZXRBZGRyZXNzOmZ1bmN0aW9uKGUpe3ZhciBrPXRoaXM7YS5lYWNoKGUsZnVuY3Rpb24oaCxuKXtzd2l0Y2goITApe2Nhc2UgLTE8YS5pbkFycmF5KCJzdHJlZXRfbnVtYmVyIixuLnR5cGVzKTprLmFkZHJlc3Muc3RyZWV0X251bWJlcj1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJyb3V0ZSIsbi50eXBlcyk6ay5hZGRyZXNzLnN0cmVldD1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJzdWJsb2NhbGl0eSIsbi50eXBlcyk6ay5hZGRyZXNzLnN1YmxvY2FsaXR5PW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoImxvY2FsaXR5IixuLnR5cGVzKTpjYXNlIC0xPGEuaW5BcnJheSgiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8zIixuLnR5cGVzKToiIj09ay5hZGRyZXNzLmNpdHkmJihrLmFkZHJlc3MuY2l0eT1uKTticmVhazsKY2FzZSAtMTxhLmluQXJyYXkoImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMSIsbi50eXBlcyk6ay5hZGRyZXNzLnByb3ZpbmNlPW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoImNvdW50cnkiLG4udHlwZXMpOmsuYWRkcmVzcy5jb3VudHJ5PW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoInBvc3RhbF9jb2RlIixuLnR5cGVzKTprLmFkZHJlc3MucG9zdGFsPW59fSl9LF9zZXRTZWFyY2hCb3VuZHM6ZnVuY3Rpb24oZSxrLGgpe2s9bmV3IGdvb2dsZS5tYXBzLkxhdExuZyhrLGgpO2s9bmV3IGdvb2dsZS5tYXBzLkNpcmNsZSh7Y2VudGVyOmsscmFkaXVzOnRoaXMuc2V0dGluZ3MucmFkaXVzfSk7ZS5zZXRCb3VuZHMoay5nZXRCb3VuZHMoKSl9LGluaXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuX2NoZWNrRm9yR29vZ2xlTWFwcyhmdW5jdGlvbigpe3ZhciBrPW5ldyBnb29nbGUubWFwcy5HZW9jb2RlcixoPW5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKGUuZWwsCmUuc2V0dGluZ3MuYXV0b0NvbXBsZXRlKTtlLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJsYXQiKSYmZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgibG9uZyIpPyIiIT09ZS5zZXR0aW5ncy5sYXQmJiIiIT09ZS5zZXR0aW5ncy5sb25nJiZlLl9zZXRTZWFyY2hCb3VuZHMoaCxlLnNldHRpbmdzLmxhdCxlLnNldHRpbmdzLmxvbmcpOmUuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImFkZHJlc3MiKT9lLnNldHRpbmdzLmFkZHJlc3MmJmsuZ2VvY29kZSh7YWRkcmVzczplLnNldHRpbmdzLmFkZHJlc3N9LGZ1bmN0aW9uKG4seCl7ZS5fc2V0U2VhcmNoQm91bmRzKGgsblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKSxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpKX0pOiJ1bmRlZmluZWQiIT09dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3MmJjA8Zm9vdGVyTWFwQWRkcmVzcy5sZW5ndGgmJmsuZ2VvY29kZSh7YWRkcmVzczpmb290ZXJNYXBBZGRyZXNzWzBdLmFkZHJlc3N9LGZ1bmN0aW9uKG4sCngpe2UuX3NldFNlYXJjaEJvdW5kcyhoLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSl9KTtnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihoLCJwbGFjZV9jaGFuZ2VkIixmdW5jdGlvbigpe3ZhciBuPWguZ2V0UGxhY2UoKTtlLl9zZXRBZGRyZXNzKG4uYWRkcmVzc19jb21wb25lbnRzKTtlLiRlbC52YWwobi5mb3JtYXR0ZWRfYWRkcmVzcyk7bj1uZXcgRXZlbnQoImlucHV0Iik7ZS5lbC5kaXNwYXRjaEV2ZW50KG4pO2UuJGVsLnRyaWdnZXIoImZvY3VzIil9KX0pfX07YS5mbi5nb29nbGVQbGFjZXM9ZnVuY3Rpb24oZSl7dmFyIGs9YXJndW1lbnRzO2lmKHZvaWQgMD09PWV8fCJvYmplY3QiPT09dHlwZW9mIGUpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2EuZGF0YSh0aGlzLCJwbHVnaW5fcGxhY2VzIil8fGEuZGF0YSh0aGlzLCJwbHVnaW5fcGxhY2VzIixuZXcgZCh0aGlzLGUpKX0pO2lmKCJzdHJpbmciPT09dHlwZW9mIGUmJgoiXyIhPT1lWzBdJiYiaW5pdCIhPT1lKXt2YXIgaD1hLmRhdGEodGhpc1swXSwicGx1Z2luX3BsYWNlcyIpO3JldHVybiBoW2VdLmFwcGx5KGgsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaywxKSl9fX0pKGpRdWVyeSk7CmZ1bmN0aW9uIHNob3dCYW5uZXJQb3B1cChhKXt0cnl7JChhKS5oYXNDbGFzcygidHJhZGVpbkxpbmsiKSYmKDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoInRyYWRlaW52YWx1ZXMiKXx8MDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigiaW5zdGFudG9mZmVyLmFjY3UtdHJhZGUuY29tIikpP3Nob3dUcmFkZUluUG9wdXAoYS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpKTowPCQoIiNiYW5uZXJQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmJCgiI2Jhbm5lclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBkaXNwbGF5IHRyYWRlaW52YWx1ZXMgaWZyYW1lLiBFcnJvcjogIitiLm1lc3NhZ2UpfX0KJChmdW5jdGlvbigpezA8JCgnaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzPSJ0cnVlIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJykuZ29vZ2xlUGxhY2VzKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgJC5mbi5kYXJrVG9vbHRpcCYmKCQoIiNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGEsIC5nUmF0aW5nLWljb24iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToibm9ydGgiLG9wYWNpdHk6MX0pLCQoIi5zb2NpYWwtbWVkaWEtaWNvbnMgW2RhdGEtdG9vbHRpcF0iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToic291dGgiLG9wYWNpdHk6MX0pLCQoIiNtaXRzdWJpc2hpQ2VydGlmaWVkRm9vdGVyIGEuc29jaWFsLW1lZGlhX19pY29uLCAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciBhLnNvY2lhbC1tZWRpYV9faWNvbiIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJzb3V0aCIsb3BhY2l0eToxfSkpO3ZhciBhPSQoIi5ncmF5Ym94LnVzZWREZXRhaWxzUGhvbmUsIC5ncmF5Ym94Lm5ld0RldGFpbHNQaG9uZSIpOwowPT09YS5jaGlsZHJlbigpLmxlbmd0aCYmMD09PWEudGV4dCgpLnRyaW0oKS5sZW5ndGgmJmEuaGlkZSgpfSk7JCgiI2ZpbmFuY2VBbHREaXNwbGF5IC5zdGVwMSBiaWcudGV4dCBiaWciKS5hdHRyKCJkYXRhLWRlcGFydG1lbnQiLCJGaW5hbmNlIik7JCgiLmNyZWRpdF9tX2NhbGx1c193cmFwcGVyIGEiKS5hdHRyKCJkYXRhLWRlcGFydG1lbnQiLCJGaW5hbmNlIik7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgiI2RpdkNlcnRpZmljYXRpb24tY2FyZ3VydXMtd3JhcHBlciIpLmxlbmd0aCYmKGVsZW1lbnRUb09ic2VydmU9d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKS5jaGlsZHJlblswXSxvYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihhLGIpe2I9JCgiI2RpdkNlcnRpZmljYXRpb24tY2FyZ3VydXMtd3JhcHBlciIpO2xldCBjPSQoInNwYW5bZGF0YS1jZy1lcnJvcl0iLGIpO2NvbnNvbGUubG9nKCJEMkNHIixiLGMsYSk7Yy5sZW5ndGgmJmIucmVtb3ZlKCl9KSxvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnRUb09ic2VydmUse2NoYXJhY3RlckRhdGE6ITEsY2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITF9KSl9KTskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpey0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9uZXcvIil8fCQoIiNuZXctdmRwLXNwZWMtYnJvY2h1cmUiKS5oaWRlKCl9KTsKJChmdW5jdGlvbigpeyQoIiNGb290ZXJfRklOQU5DRSA+IGEsIGEjRmluYW5jZUFjdGlvbkJveCwgYSNGaW5hbmNlQWN0aW9uQm94TGluayIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKSxiPSQoImh0bWwiKS5hdHRyKCJsYW5nIik7aWYoMDwkKCIjREVBTEVSUEFDT0RFIikubGVuZ3RoKXt2YXIgYz0kKCIjREVBTEVSUEFDT0RFIikudmFsKCksZD0kKCIjREVBTEVSQlJBTkRfUFJJTUFSWSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk7aWYoImZvcmRfbGluY29sbl9leHRlcm5hbCI9PSQoIiNGSU5BTkNFRk9STVRZUEUiKS52YWwoKSYmKCJmb3JkIj09ZHx8ImxpbmNvbG4iPT1kKSYmIiIhPWMpe3ZhciBlPSgiZW4iPT1iPyJodHRwczovL3d3dy5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IjoiaHR0cHM6Ly9mci5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IikrCmM7Yj0oImVuIj09Yj8iaHR0cHM6Ly93d3cubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iOiJodHRwczovL2ZyLmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IikrYzthLm9mZigiY2xpY2siKTthLmF0dHIoImhyZWYiLCJmb3JkIj09ZD9lOmIpO2EuYXR0cigidGFyZ2V0IiwiX2JsYW5rIil9fX0pfSk7CiQod2luZG93KS5vbigibG9hZCIsZnVuY3Rpb24oKXt0cnl7aWYoZ2V0UGFyYW1ldGVyQnlOYW1lKCJwcm9tbyIpKXt2YXIgYT0wPGFjdGl2YXRlZFBvcHVwRGl2SUQubGVuZ3RoP2FjdGl2YXRlZFBvcHVwRGl2SUQ6ITE7aWYoYSYmMDxhLmxlbmd0aCl7dmFyIGI9JCgiIyIrYSkucG9wdXBpemUoe3ByaW9yaXR5OjEwMCxlbmRQb3B1cFF1ZXVlOiEwfSk7cG9wdXBTdXBlcnZpc29yLnJlZ2lzdGVyKGIpfX0ib2JqZWN0Ij09dHlwZW9mIHBvcHVwU3VwZXJ2aXNvciYmc2V0VGltZW91dChwb3B1cFN1cGVydmlzb3Iuc2hvdyw1MDApfWNhdGNoKGMpe2NvbnNvbGUubG9nKGMpfX0pOwokKGZ1bmN0aW9uKCl7JCgiLm5hdiBhIikub24oImNsaWNrIixmdW5jdGlvbihhKXsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJigoYT0kKHRoaXMpLmF0dHIoImhyZWYiKSkmJiFSZWdFeHAoImphdmFzY3JpcHQ6IiwiZ2kiKS50ZXN0KGEpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsIk1FTlVfY2xpY2tlZF9VUkwiKSwoYT0iLyI9PWE\/IkhvbWUiOiQodGhpcykudGV4dCgpKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhLCJNRU5VX2NsaWNrZWRfSU5GTyIpKX0pfSk7CnZhciBEMkNVdGlscz17TGFuZzp7aXNFTjpmdW5jdGlvbigpe3JldHVybiEoImZ1bmN0aW9uIj09PXR5cGVvZiAkJiYkKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpKX0sZ2V0U2hvcnRMYW5nOmZ1bmN0aW9uKGEpe3JldHVybiBEMkNVdGlscy5MYW5nLmlzRU4oKT9hPyJFTiI6ImVuIjphPyJGUiI6ImZyIn19LEZvcm1hdDp7dG9OdW1iZXI6ZnVuY3Rpb24oYSl7YT1hLnRvU3RyaW5nKCkuc3BsaXQoIi4iKTtmb3IodmFyIGI9LyhcZCspKFxkezN9KS87Yi50ZXN0KGFbMF0pOylhWzBdPWFbMF0ucmVwbGFjZShiLCIkMSwkMiIpO3JldHVybiBhWzBdfSx0b1ByaWNlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGI\/KGI9RDJDVXRpbHMuTGFuZy5pc0VOKCk\/IiI6IiAkIixgJHtEMkNVdGlscy5MYW5nLmlzRU4oKT8iJCI6IiJ9JHtEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYSl9JHtifWApOmA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihhKX08L3NwYW4+YH19LApOdW1iZXI6e3JvdW5kRG93bjpmdW5jdGlvbihhKXt2YXIgYj0yPT09YXJndW1lbnRzLmxlbmd0aD9wYXJzZUludChhcmd1bWVudHNbMV0pOjE7cmV0dXJuIE1hdGguZmxvb3IoYS9iKSpifSxyb3VuZFVwOmZ1bmN0aW9uKGEpe3ZhciBiPTI9PT1hcmd1bWVudHMubGVuZ3RoP3BhcnNlSW50KGFyZ3VtZW50c1sxXSk6MTtyZXR1cm4gTWF0aC5jZWlsKGEvYikqYn19LEFycmF5czp7ZmluZDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5sZW5ndGg7aWYoMDxkKWZvcih2YXIgZT0wO2U8ZDtlKyspaWYoYVtlXVtiXT09YylyZXR1cm4gYVtlXTtyZXR1cm4tMX19LFN0cmluZzp7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyOmZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrU3RyaW5nKGEpLnNsaWNlKDEpfX0sTW9iaWxlOntpc01vYmlsZTpmdW5jdGlvbigpe3JldHVybiAwPCQoIiNpc01vYmlsZSIpLmxlbmd0aH19fTsKZnVuY3Rpb24gc2V0dXBGaW5hbmNpbmdMaW5rKGEsYil7NDg1PT0oJCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCkpJiZiLmNsZWFyYW5jZSYmMDxhLmxlbmd0aCYmKGI9JCgiI01haW5NZW51X2Y0ODJiYWFiLWFhYzQtZWRhNi02YjUyLTMgPiBhIiksMD09Yi5sZW5ndGgmJihiPSQoIi5DTEVBUkFOQ0UiKS5wYXJlbnQoKS5maW5kKCIuc3VibWVudUl0ZW06Zmlyc3QtY2hpbGQiKSksMDxiLmxlbmd0aCYmKGI9Yi5hdHRyKCJocmVmIiksIiIhPT1iJiZhLmF0dHIoImhyZWYiLGIpKSl9dmFyIG9wZW5XaW5kb3dzPVtdLHdpbmRvd09wZW5PRz13aW5kb3cub3BlbjsKd2luZG93Lm9wZW49ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3dPcGVuT0cuYXBwbHkodGhpcyxhcmd1bWVudHMpLGI9e3dpbmRvdzphLGFyZ3M6YXJndW1lbnRzfTtvcGVuV2luZG93cy5wdXNoKGIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGpRdWVyeSYmalF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCJ3aW5kb3cub3BlbiIsYik7cmV0dXJuIGF9OwokKGZ1bmN0aW9uKCl7JChkb2N1bWVudCkub24oIndpbmRvdy5vcGVuIixmdW5jdGlvbihhLGIpe2E9Yi5hcmdzO2Zvcih2YXIgYz0hMSxkPTA7ZDxhLmxlbmd0aDtkKyspaWYoLTE8YVtkXS5pbmRleE9mKCJjYXJmYXgiKXx8YVtkXS5pbmRleE9mKCJjYXJwcm9vZiIpKXtjPSEwO2JyZWFrfWlmKGMpe2E9d2luZG93LnNjcmVlbi5hdmFpbEhlaWdodHx8d2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0fHxkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDt0cnl7Yi53aW5kb3cucmVzaXplVG8oYi53aW5kb3cub3V0ZXJXaWR0aCxNYXRoLnJvdW5kKC45NSphKSl9Y2F0Y2goZSl7fX19KX0pOwokKGZ1bmN0aW9uKCl7dmFyIGE9JCgiLnVwX21lbnUiKSxiPSQoIi5wcm9tb3Rpb25TaWRlVkJ1dHRvbiIpLGM9JCgnI3NsaWRlaXQgPiBsYWJlbFtmb3I9Im9wZW4taXRlbSJdOm5vdCgudGV4dC11cy1idG4pJyk7aWYoYS5sZW5ndGgmJmIubGVuZ3RoKXt2YXIgZD0hMSxlPWZ1bmN0aW9uKCl7dmFyIGs9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGg9JCh3aW5kb3cpLmhlaWdodCgpO2s9YS5vZmZzZXQoKS50b3ArYS5vdXRlckhlaWdodCgpKzEwMC1rO2IuY3NzKHtwb3NpdGlvbjoiZml4ZWQiLHRvcDpNYXRoLm1heChoLzIsaykrInB4Iix0cmFuc2Zvcm06InRyYW5zbGF0ZVkoLTUwJSkiLHRyYW5zaXRpb246Im5vbmUifSk7Yy5sZW5ndGgmJihoPWJbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLGMuY3NzKHtwb3NpdGlvbjoiZml4ZWQiLHRvcDpoKzUrInB4In0pKTtkPSExfTskKHdpbmRvdykub24oInNjcm9sbCByZXNpemUiLGZ1bmN0aW9uKCl7ZHx8KHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSksCmQ9ITApfSk7c2V0VGltZW91dChlLDEwMCl9fSk7ZnVuY3Rpb24gcmVwbGFjZVVzZWRWZWhpY2xlTW9kZWxEaXNwbGF5KGEpe2lmKCJzdHJpbmciPT09dHlwZW9mIGF8fGEgaW5zdGFuY2VvZiBTdHJpbmcpImZ1bmN0aW9uIj09PXR5cGVvZiAkJiYkKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpfHwtMSE9PWEuaW5kZXhPZigiSHlicmlkZSIpJiYoYT1hLnJlcGxhY2UoIkh5YnJpZGUiLCJIeWJyaWQiKSk7cmV0dXJuIGF9CiQoZnVuY3Rpb24oKXtpZigkKCIucGF5cGFsX2J1dHRvbl9odG1sIikubGVuZ3RoKXt2YXIgYT0kKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJmciI6ImVuIixiPSQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IlLDqXNlcnZlei1sZSBhdmVjIFBheVBhbCAhIjoiUmVzZXJ2ZSBpdCAgd2l0aCBQYXlQYWwgISI7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoJ2lucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il0nKS5hdHRyKCJzcmMiLCIvaW1hZ2VzL2NvbnRpbnVlX3dpdGhfcGF5cGFsXyIrYSsiLnBuZyIpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCJmb3JtIikuYXR0cigidGFyZ2V0IiwicGF5cGFsSWZyYW1lIik7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoInRhYmxlIHRyOmZpcnN0IHRkIikuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMz09dGhpcy5ub2RlVHlwZX0pLmZpcnN0KCkucmVwbGFjZVdpdGgoYik7JCgiLnBheXBhbF9idXR0b25faHRtbCBmb3JtIikuZmluZCgnW25hbWU9Iml0ZW1fbmFtZSJdJykucmVtb3ZlKCk7CiQoIi5wYXlwYWxfYnV0dG9uX2h0bWwgZm9ybSIpLmZpbmQoJ1tuYW1lPSJpdGVtX251bWJlciJdJykucmVtb3ZlKCk7YT0nPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXRlbV9uYW1lIiB2YWx1ZT0iJyskKCIjcGhvbmVtYWtlIikudmFsKCkrIiAiKyQoIiNwaG9uZW1vZGVsIikudmFsKCkrIiAiKyQoIiNwaG9uZW15ZWFyIikudmFsKCkrIiBTdG9jaygjIiskKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpKycpIj4nOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwgZm9ybSIpLmFwcGVuZChhKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgnaW5wdXRbdHlwZT0iaW1hZ2UiXVtuYW1lPSJzdWJtaXQiXScpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiQ2xpcXVlcyBQYXlQYWwiLCJPY2Nhc2lvbiIsJCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKSsiLSIrJCgiI3Bob25lbWFrZSIpLnZhbCgpKyItIiskKCIjcGhvbmVtb2RlbCIpLnZhbCgpKwoiLSIrJCgiI3Bob25lbXllYXIiKS52YWwoKSsiLSIrJCgiI3Bob25lc3RvY2tudW1iZXIiKS52YWwoKSwxKX0pOyQoIiNwYXlwYWxQb3B1cCIpLmRldGFjaCgpLmFwcGVuZFRvKCJib2R5Iik7JCgnLnBheXBhbF9idXR0b25faHRtbCBpbnB1dFtuYW1lPSJzdWJtaXQiXScpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjcGF5cGFsUG9wdXAiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfSk7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLnNob3coKX0kKCIjdGVzdERyaXZlVHlwZSIpLmxlbmd0aCYmKCJWaXJ0dWFsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKXx8IlZpcnR1ZWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpKSYmJCgiLnByZWZlcmVkVmlydHVhbFRvb2wiKS5zaG93KCl9KTsKZnVuY3Rpb24gcHJpY2VSZXF1ZXN0Q29tbWVudFRleHQoKXt2YXIgYT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIiksYj0kKCIjaXNtb2JpbGUiKSxjPSQoIiNxdWVzdGlvbnNDb21tZW50cyIpO2E9IkVOR0xJU0giPT1hLnZhbCgpPyJIaSwgSSdkIGxpa2UgdG8gZ2V0IHlvdXIgYmVzdCBwcmljZSBvbiBhIDAgICI6IkJvbmpvdXIsIGonYWltZXJhaXMgYXZvaXIgdm90cmUgbWVpbGxldXJzIHByaXggcG91ciB1biAgIDAiOzA8Yi5sZW5ndGgmJiIxIj09Yi52YWwoKSYmMDxjLmxlbmd0aCYmYy52YWwoKT09YSYmYy52YWwoIiIpfSQoZnVuY3Rpb24oKXtwcmljZVJlcXVlc3RDb21tZW50VGV4dCgpfSk7CiQoZnVuY3Rpb24oKXt2YXIgYT0kKCIjZm9vdGVyIC5pY29uLXRleHQgc3BhbltpdGVtcHJvcD0ndGVsZXBob25lJ10gYS5waG9uZS1saW5rIiksYj0kKCIjZm9vdGVyIC5pY29uLXRleHQgLmZhLXBob25lIik7MDxhLmxlbmd0aCYmMDxiLmxlbmd0aCYmIiI9PWEuaHRtbCgpLnRyaW0oKSYmYi5oaWRlKCl9KTsKZnVuY3Rpb24gcGFnZVZpZXdDb3VudEdvb2dsZUV2ZW50KCl7dmFyIGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLGI9MCxjPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19WRFBNViIpO251bGwhPWM\/KGM9SlNPTi5wYXJzZShjKSxiPW51bGwhPWNbYV0\/Y1thXTowLGNbYV09cGFyc2VJbnQoYikrMSk6KGM9e30sY1thXT0xKTthPSIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpPyJORVciOiQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpOzA9PWI\/Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlZEUCBtdWx0aXBsZSB2aWV3cyIsYSwiMXgiLDEpOjE9PWI\/Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlZEUCBtdWx0aXBsZSB2aWV3cyIsYSwiMngiLDEpOmdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJWRFAgbXVsdGlwbGUgdmlld3MiLGEsIjN4KyIsMSk7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiZDJjX1ZEUE1WIixKU09OLnN0cmluZ2lmeShjKSl9CiQuZm4uaXNJblZpZXdwb3J0PWZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5vZmZzZXQoKS50b3AsYj1hKyQodGhpcykub3V0ZXJIZWlnaHQoKSxjPSQod2luZG93KS5zY3JvbGxUb3AoKSxkPWMrJCh3aW5kb3cpLmhlaWdodCgpO3JldHVybiBiPmMmJmE8ZH07JC5mbi5pc0Fib3ZlVmlld3BvcnQ9ZnVuY3Rpb24oYSl7YT1hfHwwO3ZhciBiPSQodGhpcykub2Zmc2V0KCkudG9wKyQodGhpcykub3V0ZXJIZWlnaHQoKSxjPSQod2luZG93KS5zY3JvbGxUb3AoKTtyZXR1cm4gYj5jK2F9O2Z1bmN0aW9uIHNldFBvcHVwT3Blbk9uQ2xpY2soKXskKCJbZGF0YS1wb3B1cGlkXSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLmF0dHIoImRhdGEtcG9wdXBpZCIpOyQodGhpcykub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpOyQoIiMiK2EpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9KX0pfQpmdW5jdGlvbiBhZGREZWFsZXJJbnNpZGVTY3JpcHQoKXtpZigkKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmxlbmd0aCl7dmFyIGE9JCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5hdHRyKCJkYXRhLWlkRGVhbGVyIiksYj0kKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmF0dHIoImRhdGEtbGFuZyIpLGM9JCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5hdHRyKCJkYXRhLWJ1dHRvbi10eXBlIiksZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtkLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpO2Quc2V0QXR0cmlidXRlKCJzcmMiLCJodHRwczovL2RlYWxlcmluc2lkZWFwcC5jb20vd2lkZ2V0cy9kZWFsZXJfaW5zaWRlX2NhbGwuanM\/ZGVhbGVySWQ9IithKyImbGFuZz0iK2IrIiZidXR0b25UeXBlPSIrYyk7ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChkKX19CiQoZnVuY3Rpb24oKXtzZXRQb3B1cE9wZW5PbkNsaWNrKCk7YWRkRGVhbGVySW5zaWRlU2NyaXB0KCl9KTtmdW5jdGlvbiBtb3RvaW5zaWdodFNob3BHb29nbGVPcHRpbWl6ZSgpeyQoIiNqcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lci1pbnB1dCIpLmxlbmd0aCYmJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYkKCIuanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5hdHRyKCJkYXRhLW1vdG9pbnNpZ2h0c2hvcGlmcmFtZXVybCIsJCgiI2pzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyLWlucHV0IikudmFsKCkpfWZ1bmN0aW9uIGh0bWxUb05vZGUoYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5pbm5lckhUTUw9YS50cmltKCk7cmV0dXJuIGIuZmlyc3RFbGVtZW50Q2hpbGR9CmZ1bmN0aW9uIGh0bWxUb0RvY3VtZW50RnJhZyhhKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoYSl9ZnVuY3Rpb24gaHRtbFRvRWxlbWVudHMoYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtiLmlubmVySFRNTD1hO3JldHVybiBiLmNvbnRlbnQuY2hpbGROb2Rlc30KY29uc3Qgdmlld1BvcnRPYnNlcnZlcj1mdW5jdGlvbihhKXtsZXQgYj0hMSxjPSExLGQ9NTA7Y29uc3QgZT1rPT57az1rWzBdO2xldCBoPS4wMT49ay5pbnRlcnNlY3Rpb25SYXRpbyYmay5ib3VuZGluZ0NsaWVudFJlY3QudG9wPGQ7Yy5jbGFzc0xpc3QudG9nZ2xlKCJ0b3AtZml4ZWQiLGgpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zbXNDdGFCdG4iKS5mb3JFYWNoKG49Pm4uaGlkZGVuPSFoKTtudWxsIT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvYXN0LWNvbnRhaW5lciIpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvYXN0LWNvbnRhaW5lciIpLmhpZGRlbj0haCl9O3JldHVybntvYnNlcnZlOigpPT57aWYoYSl7ZCs9YS5vZmZzZXRIZWlnaHQrMTY7dmFyIGs9YS5jbG9zZXN0KCIub2JzZXJ2ZWQtd3JhcHBlciIpfHwhMTtpZighayl7bGV0IGg9aHRtbFRvTm9kZSgnPGRpdiBjbGFzcz0iZml4ZWQtd3JhcHBlciI+PC9kaXY+Jyk7az1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJvYnNlcnZlZC13cmFwcGVyIj48L2Rpdj4nKTsKYS5hZnRlcihrKTtrLmFwcGVuZENoaWxkKGgpO2guYXBwZW5kQ2hpbGQoYSk7ay5zdHlsZS5oZWlnaHQ9YCR7aC5vZmZzZXRIZWlnaHR9cHhgfWI9aztjPWIucXVlcnlTZWxlY3RvcigiLmZpeGVkLXdyYXBwZXIiKTsobmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGUse3Jvb3RNYXJnaW46YC0ke2R9cHggMHB4IDBweCAwcHhgLHRocmVzaG9sZDpbMCwuMDFdfSkpLm9ic2VydmUoYil9fX19OwpmdW5jdGlvbiBkMmNGb290ZXJEZWxldGVBbGxDb29raWVzKGEpe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJkMmZhdkRhdGEiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZm9ybUZpbGxEYXRhIik7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIik7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIik7dmFyIGI9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGM9YjtiPWIucmVwbGFjZSgid3d3LiIsIiIpO3ZhciBkPWI9Yi5yZXBsYWNlKCJtLiIsIiIpO2IuaW5jbHVkZXMoImQyY21lZGlhLmNhIikmJihiPSJkMmNtZWRpYS5jYSIpO2Zvcih2YXIgZT1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxrPTA7azxlLmxlbmd0aDtrKyspe3ZhciBoPWVba10sbj1oLmluZGV4T2YoIj0iKTtoPS0xPG4\/aC5zdWJzdHIoMCxuKTpoOyJkMmNfY29va2llX2NvbnNlbnQiIT1oLnRyaW0oKSYmIk9wdGFub25BbGVydEJveENsb3NlZCIhPQpoLnRyaW0oKSYmIk9wdGFub25Db25zZW50IiE9aC50cmltKCkmJihoPWgudHJpbSgpLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49LiIrYisiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49IitiKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0iK2MrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPS4iK2QrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPSIrZCsiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49LmQyY21lZGlhLmNhO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLApkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPWQyY21lZGlhLmNhO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9LztleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixjb25zb2xlLmxvZygiRDJEQyIsaCxiKSxrPT1wYXJzZUZsb2F0KGUubGVuZ3RoKS0xJiYoInVuZGVmaW5lZCI9PT10eXBlb2YgYSYmJCgiI2QyY0Zvb3RlckNvb2tpZURlbGV0ZSIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCksc2V0VGltZW91dChkMmNGb290ZXJEZWxldGVBbGxDb29raWVzUmVmcmVzaCwyRTMpKSl9cmV0dXJuITB9CmZ1bmN0aW9uIGQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXNSZWZyZXNoKCl7d2luZG93LnRvcD09PXdpbmRvdy5zZWxmJiZsb2NhdGlvbi5yZWxvYWQoKX0KZnVuY3Rpb24gR29vZ2xlQ2FwdGNoYSgpe3RoaXMucmVzcG9uc2VUb2tlbj0iIjt0aGlzLndpZGdldElkPS0xO3RoaXMucGFzc2VkPSExO3ZhciBhPSQuRGVmZXJyZWQoKSxiPXRoaXM7X19pbml0PWZ1bmN0aW9uKCl7dHJ5e2lmKCF3aW5kb3cuZ3JlY2FwdGNoYSl7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksZD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07Yy5zcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcyI7ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLGQpfX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX19O19fbG9hZENhcHRjaGE9ZnVuY3Rpb24oKXtpZighKC0xPGIud2lkZ2V0SWQpKXRyeXt2YXIgYz0iZ29vZ2xlV2lkZ2V0XyIrTWF0aC5mbG9vcigxNjc3NzIxNSpNYXRoLnJhbmRvbSgpKS50b1N0cmluZygxNik7JCgnPGRpdiBpZD0iJytjKyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvZGl2PicpLmFwcGVuZFRvKCJib2R5Iik7CmIud2lkZ2V0SWQ9Z3JlY2FwdGNoYS5yZW5kZXIoYyx7c2l0ZWtleToiNkxmcGREMFVBQUFBQVBkNFM3SWtlNUVkeDAxeTNZWGQ1SS11M2R4UCIsY2FsbGJhY2s6X19zdWJtaXRDYXB0Y2hhLCJlcnJvci1jYWxsYmFjayI6Yi5mYWlsLHNpemU6ImludmlzaWJsZSJ9KX1jYXRjaChkKXtjb25zb2xlLmxvZyhkKX19O19fc3VibWl0Q2FwdGNoYT1mdW5jdGlvbihjKXtiLnJlc3BvbnNlVG9rZW49YztiLnBhc3NlZD0hMDthLnJlc29sdmUoKX07Yi5nZXRSZXNwb25zZT1mdW5jdGlvbigpe3ZhciBjPSQuRGVmZXJyZWQoKTt3aW5kb3cuZ3JlY2FwdGNoYT8oX19sb2FkQ2FwdGNoYSgpLGdyZWNhcHRjaGEuZXhlY3V0ZShiLndpZGdldElkKSxhLmRvbmUoZnVuY3Rpb24oKXtjLnJlc29sdmUoYi5yZXNwb25zZVRva2VuKX0pKTpjLnJlc29sdmUoKTtyZXR1cm4gY307Yi5mYWlsPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIkdSQyBGYWlsIixhcmd1bWVudHMpfTtfX2luaXQoKX0KZnVuY3Rpb24gZ2V0THV4dXJ5VGF4QW1vdW50KGEpe3ZhciBiPTA7MUU1PGEmJihiPS4xKmEsYT0uMiooYS0xRTUpLGI9YjxhP2I6YSk7cmV0dXJuIE1hdGgucm91bmQoYil9CnZhciB3b3Jkcz1bXSxwYXJ0LHdvcmRJbmRleD0wLG9mZnNldD0wLGxlbj0xLGZvcndhcmRzPSEwLHNraXBfY291bnQ9MCxza2lwX2RlbGF5PTE1LHNwZWVkPTcwLHdvcmRmbGljaz1mdW5jdGlvbihhLGIpe3dvcmRzPWE7bGVuPXdvcmRzLmxlbmd0aDtzZXRJbnRlcnZhbChmdW5jdGlvbigpe2ZvcndhcmRzP29mZnNldD49d29yZHNbd29yZEluZGV4XS5sZW5ndGgmJigrK3NraXBfY291bnQsc2tpcF9jb3VudD09c2tpcF9kZWxheSYmKGZvcndhcmRzPSExLHNraXBfY291bnQ9MCkpOjA9PW9mZnNldCYmKGZvcndhcmRzPSEwLHdvcmRJbmRleCsrLG9mZnNldD0wLHdvcmRJbmRleD49bGVuJiYod29yZEluZGV4PTApKTtwYXJ0PXdvcmRzW3dvcmRJbmRleF0uc3Vic3RyKDAsb2Zmc2V0KTswPT1za2lwX2NvdW50JiYoZm9yd2FyZHM\/b2Zmc2V0Kys6b2Zmc2V0LS0pO2IudGV4dChwYXJ0KX0sc3BlZWQpfTsKZnVuY3Rpb24gaXNJblZpZXdwb3J0KGEsYil7Yj12b2lkIDA9PT1iP3t9OmI7YT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBjPWlzTnVtZXJpYyhiLnRvcCk\/Yi50b3A6MDtiPWlzTnVtZXJpYyhiLmxlZnQpP2IubGVmdDowO3JldHVybiBNYXRoLmZsb29yKGEudG9wKT49YyYmTWF0aC5mbG9vcihhLmxlZnQpPj1iJiZNYXRoLmZsb29yKGEuYm90dG9tKTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkmJk1hdGguZmxvb3IoYS5yaWdodCk8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX1mdW5jdGlvbiBpc051bWVyaWMoYSl7cmV0dXJuL14tP1xkKyQvZy50ZXN0KGEpfQpkb2NSZWFkeUFyci5wdXNoKCgpPT57ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW3JvbGU9ImJ1dHRvbiJdJykuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixiPT57Y29uc3QgYz12b2lkIDAhPT1iLmtleT9iLmtleTpiLmtleUNvZGU7aWYoIkVudGVyIj09PWN8fDEzPT09YyliLnByZXZlbnREZWZhdWx0KCksYS5jbGljaygpfSl9KX0pOwooKCk9PntsZXQgYT1kb2N1bWVudC5jb29raWUsYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKERvY3VtZW50LnByb3RvdHlwZSwiY29va2llIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KERvY3VtZW50LnByb3RvdHlwZSwiX2Nvb2tpZSIsYik7T2JqZWN0LmRlZmluZVByb3BlcnR5KERvY3VtZW50LnByb3RvdHlwZSwiY29va2llIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0KCl7cmV0dXJuIHRoaXMuX2Nvb2tpZX0sc2V0KGMpe3ZhciBkPWMudHJpbSgpLnNwbGl0KCI7Iik7bGV0IGU9e307dmFyIGs9MDtmb3IodmFyIGggb2YgZClkPWgudHJpbSgpLnNwbGl0KCI9IiksMD09az8oZS5uYW1lPWRbMF0sZS52YWx1ZT1kWzFdfHwwKToiIiE9ZFswXSYmKGVbZFswXV09ZFsxXXx8MCksaysrO2s9ZS5uYW1lO2g9ZS5leHBpcmVzfHwwO2Q9ZS5wYXRofHwiLyI7bGV0IG49ZS5kb21haW58fCIiO2UudmFsdWUmJiIiIT1lLnZhbHVlJiZudWxsIT1lLnZhbHVlJiYKd2luZG93LkNvb2tpZUxvZ2dlci5sb2coayxlLnZhbHVlLGgsZCxuKTtjPXRoaXMuX2Nvb2tpZT1jO2lmKGMhPT1hKXRyeXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb29raWVjaGFuZ2UiLHtkZXRhaWw6e29sZFZhbHVlOmEsbmV3VmFsdWU6Y319KSl9ZmluYWxseXthPWN9fX0pfSkoKTtkb2NSZWFkeUFyci5wdXNoKCgpPT57dmFyIGE9bnVsbDtpZih3aW5kb3cubG9jYXRpb24uaGFzaCl7dHJ5e2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihkZWNvZGVVUkkod2luZG93LmxvY2F0aW9uLmhhc2gpKX1jYXRjaChiKXtyZXR1cm59YSYmKGE9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Ard2luZG93LnNjcm9sbFksd2luZG93LnNjcm9sbFRvKHt0b3A6YS0yMCxiZWhhdmlvcjoic21vb3RoIn0pKX19KTsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShjKXtkZWJ1Zyh7Y29sbGVjdDpjfSk7Yz1jLm5ld1VSTD9uZXcgVVJMKGMubmV3VVJMKTp3aW5kb3cubG9jYXRpb247IiIhPT1jLmhhc2gmJmMuaGFzaC5zdWJzdHJpbmcoMSkuc3BsaXQoIiYiKS5tYXAoZnVuY3Rpb24oZCxlLGspe3RyeXt2YXIgW2gsbl09ZC5zcGxpdCgiPSIpO3N3aXRjaChoKXtjYXNlICJ1dG1fZSI6dmFyIHg9YXRvYihuKS5zcGxpdCgiOjoiKSx2PW51bGwhPWdldENvb2tpZSgidXRtX2NhbXBhaWduIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iKT9nZXRDb29raWUoInV0bV9jYW1wYWlnbiIpOnhbMl07diYmc2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iLHYsMTgwKTt2YXIgZj1udWxsIT1nZXRDb29raWUoInV0bV9zb3VyY2UiKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnZXRDb29raWUoInV0bV9zb3VyY2UiKT9nZXRDb29raWUoInV0bV9zb3VyY2UiKTp4WzNdO2YmJnNldENvb2tpZSgidXRtX3NvdXJjZSIsCmYsMTgwKTticmVhaztjYXNlICJ1dG1fZXgiOng9YXRvYihuKTt2YXIgZz1uZXcgVVJMKCJodHRwczovLyIrd2luZG93LmxvY2F0aW9uLmhvc3QreCk7MDxnLnNlYXJjaFBhcmFtcy5zaXplJiZnLnNlYXJjaFBhcmFtcy5mb3JFYWNoKGIpfXJldHVybntrZXk6aCx2YWx1ZTpufX1jYXRjaChtKXtkZWJ1ZyhtKX19KX1mdW5jdGlvbiBiKGMsZCl7dHJ5e3N3aXRjaChkKXtjYXNlICJEaXNwbGF5U291cmNlIjpjYXNlICJnY2xpZCI6ZGVidWcoe2tleTpkLGNvb2tpZTpnZXRDb29raWUoZCksdmFsdWU6Y30pLG51bGwhPWdldENvb2tpZShkKSYmIiIhPWdldENvb2tpZShkKXx8c2V0Q29va2llKGQsYywxODApfX1jYXRjaChlKXtkZWJ1ZyhlKX19d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGEsITEpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixhLCExKX0pKCk7MD49JCgiI3NoYXJlT25GYWNlYm9vayIpLmxlbmd0aCYmJCgiZm9vdGVyIikucHJlcGVuZCgnPGRpdiBpZD0ic2hhcmVPbkZhY2Vib29rIiBkYXRhLWV4cGxhaW49ImhvbmRhL2FjdXJhIGNlcnQgdXNlcyBndG0sIGl0IGhhcyBhIGJpbmQgdGhhdCB0aHJvd3MgYW4gZXJyb3IgaWYgdGhpcyBpZCBkb2VzIG5vdCBleGlzdC4gY29kZSBpcyBmcm9tIGd0bSBzaWRlLiI+PC9kaXY+Jyk7CihmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiAkLmNvb2tpZSl7bGV0IGM7dmFyIGI9bnVsbCE9KGM9JC5jb29raWUoIlRlcnRpYXJ5U291cmNlIikpP2M6IiI7IiIhPT1iJiYoJCgnKltocmVmKj0iJEZEVGVydGlhcnlTb3VyY2UiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoImhyZWYiLCQodGhpcykuYXR0cigiaHJlZiIpLnJlcGxhY2UoIiRGRFRlcnRpYXJ5U291cmNlIixiKSl9KSwkKCcqW29uY2xpY2sqPSIkRkRUZXJ0aWFyeVNvdXJjZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuYXR0cigib25jbGljayIsJCh0aGlzKS5hdHRyKCJvbmNsaWNrIikucmVwbGFjZSgiJEZEVGVydGlhcnlTb3VyY2UiLGIpKX0pLCQoJypbdmFsdWUqPSIkRkRUZXJ0aWFyeVNvdXJjZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuYXR0cigidmFsdWUiLCQodGhpcykuYXR0cigidmFsdWUiKS5yZXBsYWNlKCIkRkRUZXJ0aWFyeVNvdXJjZSIsCmIpKX0pKX19YSgpO3NldFRpbWVvdXQoYSwxRTMpO3NldFRpbWVvdXQoYSw1RTMpOzA8PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIikmJigkKCIubGFuZ3VhZ2VCYXIgLmdSYXRpbmctaWNvbiNnUmF0aW5nIC5yYXRpbmciKS5hZGRDbGFzcygibWFyZ2luLWJvdHRvbS0tNHB4IiksJCgiLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtIGEuYnRuID4gc3BhbiIpLmFkZENsYXNzKCJtYXJnaW4tYm90dG9tLS00cHgiKSwkKCIubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCIpLmFkZENsYXNzKCJtYXJnaW4tYm90dG9tLS00cHgiKSwkKCIubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCIpLmNzcygidG9wIiwiNTIlIikpfSkoKTsKZnVuY3Rpb24gYWRkTm9UcmFuc2xhdGVFbWFpbERlZigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZCo9ImVtYWlsQm9keURlZiJdLCBbaWQqPSJlbWFpbFN1YmplY3REZWYiXSwgW2NsYXNzKj0iZW1haWxTdWJqZWN0Il0sIFtjbGFzcyo9ImVtYWlsQm9keSJdLCBbY2xhc3MqPSJsZWFkRW1haWwiXSwgW2NsYXNzKj0iZW1haWwtZGVmaW5pdGlvbiJdJykuZm9yRWFjaChhPT57YS5zZXRBdHRyaWJ1dGUoInRyYW5zbGF0ZSIsIm5vIil9KX1hZGROb1RyYW5zbGF0ZUVtYWlsRGVmKCk7Ci8qKiAvanMvbGF6eXNpemVzLm1pbi5qcyAqKi8KLyohIGxhenlzaXplcyAtIHY0LjEuNSAqLwovKiEgbW9kaWZpZWQ6IG9saXZpZXJAZDJjbWVkaWEuY2EgdG8gc3VwcG9ydCBkYXRhLWltZ3NyYyBiZWNhdXNlIG9mIG9uZVRydXN0IGJyZWFrcyBsYXp5bG9hZCBvbiBkYXRhLXNyYyAqLwohZnVuY3Rpb24oYSxiKXt2YXIgYz1iKGEsYS5kb2N1bWVudCk7YS5sYXp5U2l6ZXM9Yywib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMmJihtb2R1bGUuZXhwb3J0cz1jKX0od2luZG93LGZ1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2lmKGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSl7dmFyIGMsZCxlPWIuZG9jdW1lbnRFbGVtZW50LGY9YS5EYXRlLGc9YS5IVE1MUGljdHVyZUVsZW1lbnQsaD0iYWRkRXZlbnRMaXN0ZW5lciIsaT0iZ2V0QXR0cmlidXRlIixqPWFbaF0saz1hLnNldFRpbWVvdXQsbD1hLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8ayxtPWEucmVxdWVzdElkbGVDYWxsYmFjayxuPS9ecGljdHVyZSQvaSxvPVsibG9hZCIsImVycm9yIiwibGF6eWluY2x1ZGVkIiwiX2xhenlsb2FkZWQiXSxwPXt9LHE9QXJyYXkucHJvdG90eXBlLmZvckVhY2gscj1mdW5jdGlvbihhLGIpe3JldHVybiBwW2JdfHwocFtiXT1uZXcgUmVnRXhwKCIoXFxzfF4pIitiKyIoXFxzfCQpIikpLHBbYl0udGVzdChhW2ldKCJjbGFzcyIpfHwiIikmJnBbYl19LHM9ZnVuY3Rpb24oYSxiKXtyKGEsYil8fGEuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGFbaV0oImNsYXNzIil8fCIiKS50cmltKCkrIiAiK2IpfSx0PWZ1bmN0aW9uKGEsYil7dmFyIGM7KGM9cihhLGIpKSYmYS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwoYVtpXSgiY2xhc3MiKXx8IiIpLnJlcGxhY2UoYywiICIpKX0sdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yz9oOiJyZW1vdmVFdmVudExpc3RlbmVyIjtjJiZ1KGEsYiksby5mb3JFYWNoKGZ1bmN0aW9uKGMpe2FbZF0oYyxiKX0pfSx2PWZ1bmN0aW9uKGEsZCxlLGYsZyl7dmFyIGg9Yi5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gZXx8KGU9e30pLGUuaW5zdGFuY2U9YyxoLmluaXRFdmVudChkLCFmLCFnKSxoLmRldGFpbD1lLGEuZGlzcGF0Y2hFdmVudChoKSxofSx3PWZ1bmN0aW9uKGIsYyl7dmFyIGU7IWcmJihlPWEucGljdHVyZWZpbGx8fGQucGYpPyhjJiZjLnNyYyYmIWJbaV0oInNyY3NldCIpJiZiLnNldEF0dHJpYnV0ZSgic3Jjc2V0IixjLnNyYyksZSh7cmVldmFsdWF0ZTohMCxlbGVtZW50czpbYl19KSk6YyYmYy5zcmMmJihiLnNyYz1jLnNyYyl9LHg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpfHx7fSlbYl19LHk9ZnVuY3Rpb24oYSxiLGMpe2ZvcihjPWN8fGEub2Zmc2V0V2lkdGg7YzxkLm1pblNpemUmJmImJiFhLl9sYXp5c2l6ZXNXaWR0aDspYz1iLm9mZnNldFdpZHRoLGI9Yi5wYXJlbnROb2RlO3JldHVybiBjfSx6PWZ1bmN0aW9uKCl7dmFyIGEsYyxkPVtdLGU9W10sZj1kLGc9ZnVuY3Rpb24oKXt2YXIgYj1mO2ZvcihmPWQubGVuZ3RoP2U6ZCxhPSEwLGM9ITE7Yi5sZW5ndGg7KWIuc2hpZnQoKSgpO2E9ITF9LGg9ZnVuY3Rpb24oZCxlKXthJiYhZT9kLmFwcGx5KHRoaXMsYXJndW1lbnRzKTooZi5wdXNoKGQpLGN8fChjPSEwLChiLmhpZGRlbj9rOmwpKGcpKSl9O3JldHVybiBoLl9sc0ZsdXNoPWcsaH0oKSxBPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI\/ZnVuY3Rpb24oKXt6KGEpfTpmdW5jdGlvbigpe3ZhciBiPXRoaXMsYz1hcmd1bWVudHM7eihmdW5jdGlvbigpe2EuYXBwbHkoYixjKX0pfX0sQj1mdW5jdGlvbihhKXt2YXIgYixjPTAsZT1kLnRocm90dGxlRGVsYXksZz1kLnJpY1RpbWVvdXQsaD1mdW5jdGlvbigpe2I9ITEsYz1mLm5vdygpLGEoKX0saT1tJiZnPjQ5P2Z1bmN0aW9uKCl7bShoLHt0aW1lb3V0Omd9KSxnIT09ZC5yaWNUaW1lb3V0JiYoZz1kLnJpY1RpbWVvdXQpfTpBKGZ1bmN0aW9uKCl7ayhoKX0sITApO3JldHVybiBmdW5jdGlvbihhKXt2YXIgZDsoYT0hMD09PWEpJiYoZz0zMyksYnx8KGI9ITAsZD1lLShmLm5vdygpLWMpLGQ8MCYmKGQ9MCksYXx8ZDw5P2koKTprKGksZCkpfX0sQz1mdW5jdGlvbihhKXt2YXIgYixjLGQ9OTksZT1mdW5jdGlvbigpe2I9bnVsbCxhKCl9LGc9ZnVuY3Rpb24oKXt2YXIgYT1mLm5vdygpLWM7YTxkP2soZyxkLWEpOihtfHxlKShlKX07cmV0dXJuIGZ1bmN0aW9uKCl7Yz1mLm5vdygpLGJ8fChiPWsoZyxkKSl9fTshZnVuY3Rpb24oKXt2YXIgYixjPXtsYXp5Q2xhc3M6Imxhenlsb2FkIixsb2FkZWRDbGFzczoibGF6eWxvYWRlZCIsbG9hZGluZ0NsYXNzOiJsYXp5bG9hZGluZyIscHJlbG9hZENsYXNzOiJsYXp5cHJlbG9hZCIsZXJyb3JDbGFzczoibGF6eWVycm9yIixhdXRvc2l6ZXNDbGFzczoibGF6eWF1dG9zaXplcyIsc3JjQXR0cjoiZGF0YS1pbWdzcmMiLHNyY3NldEF0dHI6ImRhdGEtc3Jjc2V0IixzaXplc0F0dHI6ImRhdGEtc2l6ZXMiLG1pblNpemU6NDAsY3VzdG9tTWVkaWE6e30saW5pdDohMCxleHBGYWN0b3I6MS41LGhGYWM6LjgsbG9hZE1vZGU6Mixsb2FkSGlkZGVuOiEwLHJpY1RpbWVvdXQ6MCx0aHJvdHRsZURlbGF5OjEyNX07ZD1hLmxhenlTaXplc0NvbmZpZ3x8YS5sYXp5c2l6ZXNDb25maWd8fHt9O2ZvcihiIGluIGMpYiBpbiBkfHwoZFtiXT1jW2JdKTthLmxhenlTaXplc0NvbmZpZz1kLGsoZnVuY3Rpb24oKXtkLmluaXQmJkYoKX0pfSgpO3ZhciBEPWZ1bmN0aW9uKCl7dmFyIGcsbCxtLG8scCx5LEQsRixHLEgsSSxKLEssTCxNPS9eaW1nJC9pLE49L15pZnJhbWUkL2ksTz0ib25zY3JvbGwiaW4gYSYmIS8oZ2xlfGluZylib3QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksUD0wLFE9MCxSPTAsUz0tMSxUPWZ1bmN0aW9uKGEpe1ItLSxhJiZhLnRhcmdldCYmdShhLnRhcmdldCxUKSwoIWF8fFI8MHx8IWEudGFyZ2V0KSYmKFI9MCl9LFU9ZnVuY3Rpb24oYSxjKXt2YXIgZCxmPWEsZz0iaGlkZGVuIj09eChiLmJvZHksInZpc2liaWxpdHkiKXx8ImhpZGRlbiIhPXgoYS5wYXJlbnROb2RlLCJ2aXNpYmlsaXR5IikmJiJoaWRkZW4iIT14KGEsInZpc2liaWxpdHkiKTtmb3IoRi09YyxJKz1jLEctPWMsSCs9YztnJiYoZj1mLm9mZnNldFBhcmVudCkmJmYhPWIuYm9keSYmZiE9ZTspKGc9KHgoZiwib3BhY2l0eSIpfHwxKT4wKSYmInZpc2libGUiIT14KGYsIm92ZXJmbG93IikmJihkPWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZz1IPmQubGVmdCYmRzxkLnJpZ2h0JiZJPmQudG9wLTEmJkY8ZC5ib3R0b20rMSk7cmV0dXJuIGd9LFY9ZnVuY3Rpb24oKXt2YXIgYSxmLGgsaixrLG0sbixwLHEscj1jLmVsZW1lbnRzO2lmKChvPWQubG9hZE1vZGUpJiZSPDgmJihhPXIubGVuZ3RoKSl7Zj0wLFMrKyxudWxsPT1LJiYoImV4cGFuZCJpbiBkfHwoZC5leHBhbmQ9ZS5jbGllbnRIZWlnaHQ+NTAwJiZlLmNsaWVudFdpZHRoPjUwMD81MDA6MzcwKSxKPWQuZXhwYW5kLEs9SipkLmV4cEZhY3RvciksUTxLJiZSPDEmJlM+MiYmbz4yJiYhYi5oaWRkZW4\/KFE9SyxTPTApOlE9bz4xJiZTPjEmJlI8Nj9KOlA7Zm9yKDtmPGE7ZisrKWlmKHJbZl0mJiFyW2ZdLl9sYXp5UmFjZSlpZihPKWlmKChwPXJbZl1baV0oImRhdGEtZXhwYW5kIikpJiYobT0xKnApfHwobT1RKSxxIT09bSYmKHk9aW5uZXJXaWR0aCttKkwsRD1pbm5lckhlaWdodCttLG49LTEqbSxxPW0pLGg9cltmXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwoST1oLmJvdHRvbSk+PW4mJihGPWgudG9wKTw9RCYmKEg9aC5yaWdodCk+PW4qTCYmKEc9aC5sZWZ0KTw9eSYmKEl8fEh8fEd8fEYpJiYoZC5sb2FkSGlkZGVufHwiaGlkZGVuIiE9eChyW2ZdLCJ2aXNpYmlsaXR5IikpJiYobCYmUjwzJiYhcCYmKG88M3x8Uzw0KXx8VShyW2ZdLG0pKSl7aWYoYmEocltmXSksaz0hMCxSPjkpYnJlYWt9ZWxzZSFrJiZsJiYhaiYmUjw0JiZTPDQmJm8+MiYmKGdbMF18fGQucHJlbG9hZEFmdGVyTG9hZCkmJihnWzBdfHwhcCYmKEl8fEh8fEd8fEZ8fCJhdXRvIiE9cltmXVtpXShkLnNpemVzQXR0cikpKSYmKGo9Z1swXXx8cltmXSk7ZWxzZSBiYShyW2ZdKTtqJiYhayYmYmEoail9fSxXPUIoViksWD1mdW5jdGlvbihhKXtzKGEudGFyZ2V0LGQubG9hZGVkQ2xhc3MpLHQoYS50YXJnZXQsZC5sb2FkaW5nQ2xhc3MpLHUoYS50YXJnZXQsWiksdihhLnRhcmdldCwibGF6eWxvYWRlZCIpfSxZPUEoWCksWj1mdW5jdGlvbihhKXtZKHt0YXJnZXQ6YS50YXJnZXR9KX0sJD1mdW5jdGlvbihhLGIpe3RyeXthLmNvbnRlbnRXaW5kb3cubG9jYXRpb24ucmVwbGFjZShiKX1jYXRjaChjKXthLnNyYz1ifX0sXz1mdW5jdGlvbihhKXt2YXIgYixjPWFbaV0oZC5zcmNzZXRBdHRyKTsoYj1kLmN1c3RvbU1lZGlhW2FbaV0oImRhdGEtbWVkaWEiKXx8YVtpXSgibWVkaWEiKV0pJiZhLnNldEF0dHJpYnV0ZSgibWVkaWEiLGIpLGMmJmEuc2V0QXR0cmlidXRlKCJzcmNzZXQiLGMpfSxhYT1BKGZ1bmN0aW9uKGEsYixjLGUsZil7dmFyIGcsaCxqLGwsbyxwOyhvPXYoYSwibGF6eWJlZm9yZXVudmVpbCIsYikpLmRlZmF1bHRQcmV2ZW50ZWR8fChlJiYoYz9zKGEsZC5hdXRvc2l6ZXNDbGFzcyk6YS5zZXRBdHRyaWJ1dGUoInNpemVzIixlKSksaD1hW2ldKGQuc3Jjc2V0QXR0ciksZz1hW2ldKGQuc3JjQXR0ciksZiYmKGo9YS5wYXJlbnROb2RlLGw9aiYmbi50ZXN0KGoubm9kZU5hbWV8fCIiKSkscD1iLmZpcmVzTG9hZHx8InNyYyJpbiBhJiYoaHx8Z3x8bCksbz17dGFyZ2V0OmF9LHAmJih1KGEsVCwhMCksY2xlYXJUaW1lb3V0KG0pLG09ayhULDI1MDApLHMoYSxkLmxvYWRpbmdDbGFzcyksdShhLFosITApKSxsJiZxLmNhbGwoai5nZXRFbGVtZW50c0J5VGFnTmFtZSgic291cmNlIiksXyksaD9hLnNldEF0dHJpYnV0ZSgic3Jjc2V0IixoKTpnJiYhbCYmKE4udGVzdChhLm5vZGVOYW1lKT8kKGEsZyk6YS5zcmM9ZyksZiYmKGh8fGwpJiZ3KGEse3NyYzpnfSkpLGEuX2xhenlSYWNlJiZkZWxldGUgYS5fbGF6eVJhY2UsdChhLGQubGF6eUNsYXNzKSx6KGZ1bmN0aW9uKCl7KCFwfHxhLmNvbXBsZXRlJiZhLm5hdHVyYWxXaWR0aD4xKSYmKHA\/VChvKTpSLS0sWChvKSl9LCEwKX0pLGJhPWZ1bmN0aW9uKGEpe3ZhciBiLGM9TS50ZXN0KGEubm9kZU5hbWUpLGU9YyYmKGFbaV0oZC5zaXplc0F0dHIpfHxhW2ldKCJzaXplcyIpKSxmPSJhdXRvIj09ZTsoIWYmJmx8fCFjfHwhYVtpXSgic3JjIikmJiFhLnNyY3NldHx8YS5jb21wbGV0ZXx8cihhLGQuZXJyb3JDbGFzcyl8fCFyKGEsZC5sYXp5Q2xhc3MpKSYmKGI9dihhLCJsYXp5dW52ZWlscmVhZCIpLmRldGFpbCxmJiZFLnVwZGF0ZUVsZW0oYSwhMCxhLm9mZnNldFdpZHRoKSxhLl9sYXp5UmFjZT0hMCxSKyssYWEoYSxiLGYsZSxjKSl9LGNhPWZ1bmN0aW9uKCl7aWYoIWwpe2lmKGYubm93KCktcDw5OTkpcmV0dXJuIHZvaWQgayhjYSw5OTkpO3ZhciBhPUMoZnVuY3Rpb24oKXtkLmxvYWRNb2RlPTMsVygpfSk7bD0hMCxkLmxvYWRNb2RlPTMsVygpLGooInNjcm9sbCIsZnVuY3Rpb24oKXszPT1kLmxvYWRNb2RlJiYoZC5sb2FkTW9kZT0yKSxhKCl9LCEwKX19O3JldHVybntfOmZ1bmN0aW9uKCl7cD1mLm5vdygpLGMuZWxlbWVudHM9Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGQubGF6eUNsYXNzKSxnPWIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkLmxhenlDbGFzcysiICIrZC5wcmVsb2FkQ2xhc3MpLEw9ZC5oRmFjLGooInNjcm9sbCIsVywhMCksaigicmVzaXplIixXLCEwKSxhLk11dGF0aW9uT2JzZXJ2ZXI\/bmV3IE11dGF0aW9uT2JzZXJ2ZXIoVykub2JzZXJ2ZShlLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwfSk6KGVbaF0oIkRPTU5vZGVJbnNlcnRlZCIsVywhMCksZVtoXSgiRE9NQXR0ck1vZGlmaWVkIixXLCEwKSxzZXRJbnRlcnZhbChXLDk5OSkpLGooImhhc2hjaGFuZ2UiLFcsITApLFsiZm9jdXMiLCJtb3VzZW92ZXIiLCJjbGljayIsImxvYWQiLCJ0cmFuc2l0aW9uZW5kIiwiYW5pbWF0aW9uZW5kIiwid2Via2l0QW5pbWF0aW9uRW5kIl0uZm9yRWFjaChmdW5jdGlvbihhKXtiW2hdKGEsVywhMCl9KSwvZCR8XmMvLnRlc3QoYi5yZWFkeVN0YXRlKT9jYSgpOihqKCJsb2FkIixjYSksYltoXSgiRE9NQ29udGVudExvYWRlZCIsVyksayhjYSwyZTQpKSxjLmVsZW1lbnRzLmxlbmd0aD8oVigpLHouX2xzRmx1c2goKSk6VygpfSxjaGVja0VsZW1zOlcsdW52ZWlsOmJhfX0oKSxFPWZ1bmN0aW9uKCl7dmFyIGEsYz1BKGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZztpZihhLl9sYXp5c2l6ZXNXaWR0aD1kLGQrPSJweCIsYS5zZXRBdHRyaWJ1dGUoInNpemVzIixkKSxuLnRlc3QoYi5ub2RlTmFtZXx8IiIpKWZvcihlPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNvdXJjZSIpLGY9MCxnPWUubGVuZ3RoO2Y8ZztmKyspZVtmXS5zZXRBdHRyaWJ1dGUoInNpemVzIixkKTtjLmRldGFpbC5kYXRhQXR0cnx8dyhhLGMuZGV0YWlsKX0pLGU9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGY9YS5wYXJlbnROb2RlO2YmJihkPXkoYSxmLGQpLGU9dihhLCJsYXp5YmVmb3Jlc2l6ZXMiLHt3aWR0aDpkLGRhdGFBdHRyOiEhYn0pLGUuZGVmYXVsdFByZXZlbnRlZHx8KGQ9ZS5kZXRhaWwud2lkdGgpJiZkIT09YS5fbGF6eXNpemVzV2lkdGgmJmMoYSxmLGUsZCkpfSxmPWZ1bmN0aW9uKCl7dmFyIGIsYz1hLmxlbmd0aDtpZihjKWZvcihiPTA7YjxjO2IrKyllKGFbYl0pfSxnPUMoZik7cmV0dXJue186ZnVuY3Rpb24oKXthPWIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkLmF1dG9zaXplc0NsYXNzKSxqKCJyZXNpemUiLGcpfSxjaGVja0VsZW1zOmcsdXBkYXRlRWxlbTplfX0oKSxGPWZ1bmN0aW9uKCl7Ri5pfHwoRi5pPSEwLEUuXygpLEQuXygpKX07cmV0dXJuIGM9e2NmZzpkLGF1dG9TaXplcjpFLGxvYWRlcjpELGluaXQ6Rix1UDp3LGFDOnMsckM6dCxoQzpyLGZpcmU6dixnVzp5LHJBRjp6fX19KTsKLypFT0YqLzsKLyoqIC9qcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5qcyAqKi8KLyohIGpRdWVyeSBVSSAtIHYxLjEzLjIgLSAyMDI0LTAzLTEyCiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiB3aWRnZXQuanMsIGpxdWVyeS1wYXRjaC5qcywga2V5Y29kZS5qcywgdW5pcXVlLWlkLmpzLCB3aWRnZXRzL2FjY29yZGlvbi5qcywgd2lkZ2V0cy9tb3VzZS5qcywgd2lkZ2V0cy9zbGlkZXIuanMsIGVmZmVjdC5qcwoqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzOyBMaWNlbnNlZCBNSVQgKi8KCiFmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxlKTplKGpRdWVyeSl9KGZ1bmN0aW9uKHUpeyJ1c2Ugc3RyaWN0Ijt1LnVpPXUudWl8fHt9O3UudWkudmVyc2lvbj0iMS4xMy4yIjt2YXIgbixpPTAsbz1BcnJheS5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscj1BcnJheS5wcm90b3R5cGUuc2xpY2U7dS5jbGVhbkRhdGE9KG49dS5jbGVhbkRhdGEsZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGkscz0wO251bGwhPShpPWVbc10pO3MrKykodD11Ll9kYXRhKGksImV2ZW50cyIpKSYmdC5yZW1vdmUmJnUoaSkudHJpZ2dlckhhbmRsZXIoInJlbW92ZSIpO24oZSl9KSx1LndpZGdldD1mdW5jdGlvbihlLGksdCl7dmFyIHMsbixhLG89e30scj1lLnNwbGl0KCIuIilbMF0saD1yKyItIisoZT1lLnNwbGl0KCIuIilbMV0pO3JldHVybiB0fHwodD1pLGk9dS5XaWRnZXQpLEFycmF5LmlzQXJyYXkodCkmJih0PXUuZXh0ZW5kLmFwcGx5KG51bGwsW3t9XS5jb25jYXQodCkpKSx1LmV4cHIucHNldWRvc1toLnRvTG93ZXJDYXNlKCldPWZ1bmN0aW9uKGUpe3JldHVybiEhdS5kYXRhKGUsaCl9LHVbcl09dVtyXXx8e30scz11W3JdW2VdLG49dVtyXVtlXT1mdW5jdGlvbihlLHQpe2lmKCF0aGlzfHwhdGhpcy5fY3JlYXRlV2lkZ2V0KXJldHVybiBuZXcgbihlLHQpO2FyZ3VtZW50cy5sZW5ndGgmJnRoaXMuX2NyZWF0ZVdpZGdldChlLHQpfSx1LmV4dGVuZChuLHMse3ZlcnNpb246dC52ZXJzaW9uLF9wcm90bzp1LmV4dGVuZCh7fSx0KSxfY2hpbGRDb25zdHJ1Y3RvcnM6W119KSwoYT1uZXcgaSkub3B0aW9ucz11LndpZGdldC5leHRlbmQoe30sYS5vcHRpb25zKSx1LmVhY2godCxmdW5jdGlvbih0LHMpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gaS5wcm90b3R5cGVbdF0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsZSl9b1t0XT0iZnVuY3Rpb24iPT10eXBlb2Ygcz9mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fc3VwZXIsaT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1uLHRoaXMuX3N1cGVyQXBwbHk9YSxlPXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPXQsdGhpcy5fc3VwZXJBcHBseT1pLGV9OnN9KSxuLnByb3RvdHlwZT11LndpZGdldC5leHRlbmQoYSx7d2lkZ2V0RXZlbnRQcmVmaXg6cyYmYS53aWRnZXRFdmVudFByZWZpeHx8ZX0sbyx7Y29uc3RydWN0b3I6bixuYW1lc3BhY2U6cix3aWRnZXROYW1lOmUsd2lkZ2V0RnVsbE5hbWU6aH0pLHM\/KHUuZWFjaChzLl9jaGlsZENvbnN0cnVjdG9ycyxmdW5jdGlvbihlLHQpe3ZhciBpPXQucHJvdG90eXBlO3Uud2lkZ2V0KGkubmFtZXNwYWNlKyIuIitpLndpZGdldE5hbWUsbix0Ll9wcm90byl9KSxkZWxldGUgcy5fY2hpbGRDb25zdHJ1Y3RvcnMpOmkuX2NoaWxkQ29uc3RydWN0b3JzLnB1c2gobiksdS53aWRnZXQuYnJpZGdlKGUsbiksbn0sdS53aWRnZXQuZXh0ZW5kPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxpLHM9ci5jYWxsKGFyZ3VtZW50cywxKSxuPTAsYT1zLmxlbmd0aDtuPGE7bisrKWZvcih0IGluIHNbbl0paT1zW25dW3RdLG8uY2FsbChzW25dLHQpJiZ2b2lkIDAhPT1pJiYodS5pc1BsYWluT2JqZWN0KGkpP2VbdF09dS5pc1BsYWluT2JqZWN0KGVbdF0pP3Uud2lkZ2V0LmV4dGVuZCh7fSxlW3RdLGkpOnUud2lkZ2V0LmV4dGVuZCh7fSxpKTplW3RdPWkpO3JldHVybiBlfSx1LndpZGdldC5icmlkZ2U9ZnVuY3Rpb24oYSx0KXt2YXIgbz10LnByb3RvdHlwZS53aWRnZXRGdWxsTmFtZXx8YTt1LmZuW2FdPWZ1bmN0aW9uKGkpe3ZhciBlPSJzdHJpbmciPT10eXBlb2YgaSxzPXIuY2FsbChhcmd1bWVudHMsMSksbj10aGlzO3JldHVybiBlP3RoaXMubGVuZ3RofHwiaW5zdGFuY2UiIT09aT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PXUuZGF0YSh0aGlzLG8pO3JldHVybiJpbnN0YW5jZSI9PT1pPyhuPXQsITEpOnQ\/ImZ1bmN0aW9uIiE9dHlwZW9mIHRbaV18fCJfIj09PWkuY2hhckF0KDApP3UuZXJyb3IoIm5vIHN1Y2ggbWV0aG9kICciK2krIicgZm9yICIrYSsiIHdpZGdldCBpbnN0YW5jZSIpOihlPXRbaV0uYXBwbHkodCxzKSkhPT10JiZ2b2lkIDAhPT1lPyhuPWUmJmUuanF1ZXJ5P24ucHVzaFN0YWNrKGUuZ2V0KCkpOmUsITEpOnZvaWQgMDp1LmVycm9yKCJjYW5ub3QgY2FsbCBtZXRob2RzIG9uICIrYSsiIHByaW9yIHRvIGluaXRpYWxpemF0aW9uOyBhdHRlbXB0ZWQgdG8gY2FsbCBtZXRob2QgJyIraSsiJyIpfSk6bj12b2lkIDA6KHMubGVuZ3RoJiYoaT11LndpZGdldC5leHRlbmQuYXBwbHkobnVsbCxbaV0uY29uY2F0KHMpKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9dS5kYXRhKHRoaXMsbyk7ZT8oZS5vcHRpb24oaXx8e30pLGUuX2luaXQmJmUuX2luaXQoKSk6dS5kYXRhKHRoaXMsbyxuZXcgdChpLHRoaXMpKX0pKSxufX0sdS5XaWRnZXQ9ZnVuY3Rpb24oKXt9LHUuV2lkZ2V0Ll9jaGlsZENvbnN0cnVjdG9ycz1bXSx1LldpZGdldC5wcm90b3R5cGU9e3dpZGdldE5hbWU6IndpZGdldCIsd2lkZ2V0RXZlbnRQcmVmaXg6IiIsZGVmYXVsdEVsZW1lbnQ6IjxkaXY+IixvcHRpb25zOntjbGFzc2VzOnt9LGRpc2FibGVkOiExLGNyZWF0ZTpudWxsfSxfY3JlYXRlV2lkZ2V0OmZ1bmN0aW9uKGUsdCl7dD11KHR8fHRoaXMuZGVmYXVsdEVsZW1lbnR8fHRoaXMpWzBdLHRoaXMuZWxlbWVudD11KHQpLHRoaXMudXVpZD1pKyssdGhpcy5ldmVudE5hbWVzcGFjZT0iLiIrdGhpcy53aWRnZXROYW1lK3RoaXMudXVpZCx0aGlzLmJpbmRpbmdzPXUoKSx0aGlzLmhvdmVyYWJsZT11KCksdGhpcy5mb2N1c2FibGU9dSgpLHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXA9e30sdCE9PXRoaXMmJih1LmRhdGEodCx0aGlzLndpZGdldEZ1bGxOYW1lLHRoaXMpLHRoaXMuX29uKCEwLHRoaXMuZWxlbWVudCx7cmVtb3ZlOmZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09dCYmdGhpcy5kZXN0cm95KCl9fSksdGhpcy5kb2N1bWVudD11KHQuc3R5bGU\/dC5vd25lckRvY3VtZW50OnQuZG9jdW1lbnR8fHQpLHRoaXMud2luZG93PXUodGhpcy5kb2N1bWVudFswXS5kZWZhdWx0Vmlld3x8dGhpcy5kb2N1bWVudFswXS5wYXJlbnRXaW5kb3cpKSx0aGlzLm9wdGlvbnM9dS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyx0aGlzLl9nZXRDcmVhdGVPcHRpb25zKCksZSksdGhpcy5fY3JlYXRlKCksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLl9zZXRPcHRpb25EaXNhYmxlZCh0aGlzLm9wdGlvbnMuZGlzYWJsZWQpLHRoaXMuX3RyaWdnZXIoImNyZWF0ZSIsbnVsbCx0aGlzLl9nZXRDcmVhdGVFdmVudERhdGEoKSksdGhpcy5faW5pdCgpfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3JldHVybnt9fSxfZ2V0Q3JlYXRlRXZlbnREYXRhOnUubm9vcCxfY3JlYXRlOnUubm9vcCxfaW5pdDp1Lm5vb3AsZGVzdHJveTpmdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5fZGVzdHJveSgpLHUuZWFjaCh0aGlzLmNsYXNzZXNFbGVtZW50TG9va3VwLGZ1bmN0aW9uKGUsdCl7aS5fcmVtb3ZlQ2xhc3ModCxlKX0pLHRoaXMuZWxlbWVudC5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlRGF0YSh0aGlzLndpZGdldEZ1bGxOYW1lKSx0aGlzLndpZGdldCgpLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIiksdGhpcy5iaW5kaW5ncy5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSl9LF9kZXN0cm95OnUubm9vcCx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50fSxvcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG4sYT1lO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB1LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zKTtpZigic3RyaW5nIj09dHlwZW9mIGUpaWYoYT17fSxlPShpPWUuc3BsaXQoIi4iKSkuc2hpZnQoKSxpLmxlbmd0aCl7Zm9yKHM9YVtlXT11LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zW2VdKSxuPTA7bjxpLmxlbmd0aC0xO24rKylzW2lbbl1dPXNbaVtuXV18fHt9LHM9c1tpW25dXTtpZihlPWkucG9wKCksMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXNbZV0\/bnVsbDpzW2VdO3NbZV09dH1lbHNle2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10aGlzLm9wdGlvbnNbZV0\/bnVsbDp0aGlzLm9wdGlvbnNbZV07YVtlXT10fXJldHVybiB0aGlzLl9zZXRPcHRpb25zKGEpLHRoaXN9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKXRoaXMuX3NldE9wdGlvbih0LGVbdF0pO3JldHVybiB0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuImNsYXNzZXMiPT09ZSYmdGhpcy5fc2V0T3B0aW9uQ2xhc3Nlcyh0KSx0aGlzLm9wdGlvbnNbZV09dCwiZGlzYWJsZWQiPT09ZSYmdGhpcy5fc2V0T3B0aW9uRGlzYWJsZWQodCksdGhpc30sX3NldE9wdGlvbkNsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzO2Zvcih0IGluIGUpcz10aGlzLmNsYXNzZXNFbGVtZW50TG9va3VwW3RdLGVbdF0hPT10aGlzLm9wdGlvbnMuY2xhc3Nlc1t0XSYmcyYmcy5sZW5ndGgmJihpPXUocy5nZXQoKSksdGhpcy5fcmVtb3ZlQ2xhc3Mocyx0KSxpLmFkZENsYXNzKHRoaXMuX2NsYXNzZXMoe2VsZW1lbnQ6aSxrZXlzOnQsY2xhc3NlczplLGFkZDohMH0pKSl9LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbihlKXt0aGlzLl90b2dnbGVDbGFzcyh0aGlzLndpZGdldCgpLHRoaXMud2lkZ2V0RnVsbE5hbWUrIi1kaXNhYmxlZCIsbnVsbCwhIWUpLGUmJih0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhvdmVyYWJsZSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuZm9jdXNhYmxlLG51bGwsInVpLXN0YXRlLWZvY3VzIikpfSxlbmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITF9KX0sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXRPcHRpb25zKHtkaXNhYmxlZDohMH0pfSxfY2xhc3NlczpmdW5jdGlvbihuKXt2YXIgYT1bXSxvPXRoaXM7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgaSxzPTA7czxlLmxlbmd0aDtzKyspaT1vLmNsYXNzZXNFbGVtZW50TG9va3VwW2Vbc11dfHx1KCksaT1uLmFkZD8oZnVuY3Rpb24oKXt2YXIgaT1bXTtuLmVsZW1lbnQuZWFjaChmdW5jdGlvbihlLHQpe3UubWFwKG8uY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24oZSl7cmV0dXJuIGV9KS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzKHQpfSl8fGkucHVzaCh0KX0pLG8uX29uKHUoaSkse3JlbW92ZToiX3VudHJhY2tDbGFzc2VzRWxlbWVudCJ9KX0oKSx1KHUudW5pcXVlU29ydChpLmdldCgpLmNvbmNhdChuLmVsZW1lbnQuZ2V0KCkpKSkpOnUoaS5ub3Qobi5lbGVtZW50KS5nZXQoKSksby5jbGFzc2VzRWxlbWVudExvb2t1cFtlW3NdXT1pLGEucHVzaChlW3NdKSx0JiZuLmNsYXNzZXNbZVtzXV0mJmEucHVzaChuLmNsYXNzZXNbZVtzXV0pfXJldHVybihuPXUuZXh0ZW5kKHtlbGVtZW50OnRoaXMuZWxlbWVudCxjbGFzc2VzOnRoaXMub3B0aW9ucy5jbGFzc2VzfHx7fX0sbikpLmtleXMmJmUobi5rZXlzLm1hdGNoKC9cUysvZyl8fFtdLCEwKSxuLmV4dHJhJiZlKG4uZXh0cmEubWF0Y2goL1xTKy9nKXx8W10pLGEuam9pbigiICIpfSxfdW50cmFja0NsYXNzZXNFbGVtZW50OmZ1bmN0aW9uKGkpe3ZhciBzPXRoaXM7dS5lYWNoKHMuY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24oZSx0KXstMSE9PXUuaW5BcnJheShpLnRhcmdldCx0KSYmKHMuY2xhc3Nlc0VsZW1lbnRMb29rdXBbZV09dSh0Lm5vdChpLnRhcmdldCkuZ2V0KCkpKX0pLHRoaXMuX29mZih1KGkudGFyZ2V0KSl9LF9yZW1vdmVDbGFzczpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIHRoaXMuX3RvZ2dsZUNsYXNzKGUsdCxpLCExKX0sX2FkZENsYXNzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3MoZSx0LGksITApfSxfdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG49InN0cmluZyI9PXR5cGVvZiBlfHxudWxsPT09ZSxpPXtleHRyYTpuP3Q6aSxrZXlzOm4\/ZTp0LGVsZW1lbnQ6bj90aGlzLmVsZW1lbnQ6ZSxhZGQ6cz0iYm9vbGVhbiI9PXR5cGVvZiBzP3M6aX07cmV0dXJuIGkuZWxlbWVudC50b2dnbGVDbGFzcyh0aGlzLl9jbGFzc2VzKGkpLHMpLHRoaXN9LF9vbjpmdW5jdGlvbihuLGEsZSl7dmFyIG8scj10aGlzOyJib29sZWFuIiE9dHlwZW9mIG4mJihlPWEsYT1uLG49ITEpLGU\/KGE9bz11KGEpLHRoaXMuYmluZGluZ3M9dGhpcy5iaW5kaW5ncy5hZGQoYSkpOihlPWEsYT10aGlzLmVsZW1lbnQsbz10aGlzLndpZGdldCgpKSx1LmVhY2goZSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoKXtpZihufHwhMCE9PXIub3B0aW9ucy5kaXNhYmxlZCYmIXUodGhpcykuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikpcmV0dXJuKCJzdHJpbmciPT10eXBlb2YgdD9yW3RdOnQpLmFwcGx5KHIsYXJndW1lbnRzKX0ic3RyaW5nIiE9dHlwZW9mIHQmJihpLmd1aWQ9dC5ndWlkPXQuZ3VpZHx8aS5ndWlkfHx1Lmd1aWQrKyk7dmFyIHM9ZS5tYXRjaCgvXihbXHc6LV0qKVxzKiguKikkLyksZT1zWzFdK3IuZXZlbnROYW1lc3BhY2Uscz1zWzJdO3M\/by5vbihlLHMsaSk6YS5vbihlLGkpfSl9LF9vZmY6ZnVuY3Rpb24oZSx0KXt0PSh0fHwiIikuc3BsaXQoIiAiKS5qb2luKHRoaXMuZXZlbnROYW1lc3BhY2UrIiAiKSt0aGlzLmV2ZW50TmFtZXNwYWNlLGUub2ZmKHQpLHRoaXMuYmluZGluZ3M9dSh0aGlzLmJpbmRpbmdzLm5vdChlKS5nZXQoKSksdGhpcy5mb2N1c2FibGU9dSh0aGlzLmZvY3VzYWJsZS5ub3QoZSkuZ2V0KCkpLHRoaXMuaG92ZXJhYmxlPXUodGhpcy5ob3ZlcmFibGUubm90KGUpLmdldCgpKX0sX2RlbGF5OmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcztyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybigic3RyaW5nIj09dHlwZW9mIGU\/aVtlXTplKS5hcHBseShpLGFyZ3VtZW50cyl9LHR8fDApfSxfaG92ZXJhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuaG92ZXJhYmxlPXRoaXMuaG92ZXJhYmxlLmFkZChlKSx0aGlzLl9vbihlLHttb3VzZWVudGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZUNsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfX0pfSxfZm9jdXNhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuZm9jdXNhYmxlPXRoaXMuZm9jdXNhYmxlLmFkZChlKSx0aGlzLl9vbihlLHtmb2N1c2luOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpfSxmb2N1c291dDpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVDbGFzcyh1KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzLG4sYT10aGlzLm9wdGlvbnNbZV07aWYoaT1pfHx7fSwodD11LkV2ZW50KHQpKS50eXBlPShlPT09dGhpcy53aWRnZXRFdmVudFByZWZpeD9lOnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrZSkudG9Mb3dlckNhc2UoKSx0LnRhcmdldD10aGlzLmVsZW1lbnRbMF0sbj10Lm9yaWdpbmFsRXZlbnQpZm9yKHMgaW4gbilzIGluIHR8fCh0W3NdPW5bc10pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcih0LGkpLCEoImZ1bmN0aW9uIj09dHlwZW9mIGEmJiExPT09YS5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW3RdLmNvbmNhdChpKSl8fHQuaXNEZWZhdWx0UHJldmVudGVkKCkpfX0sdS5lYWNoKHtzaG93OiJmYWRlSW4iLGhpZGU6ImZhZGVPdXQifSxmdW5jdGlvbihhLG8pe3UuV2lkZ2V0LnByb3RvdHlwZVsiXyIrYV09ZnVuY3Rpb24odCxlLGkpe3ZhciBzLG49KGU9InN0cmluZyI9PXR5cGVvZiBlP3tlZmZlY3Q6ZX06ZSk\/ITAhPT1lJiYibnVtYmVyIiE9dHlwZW9mIGUmJmUuZWZmZWN0fHxvOmE7Im51bWJlciI9PXR5cGVvZihlPWV8fHt9KT9lPXtkdXJhdGlvbjplfTohMD09PWUmJihlPXt9KSxzPSF1LmlzRW1wdHlPYmplY3QoZSksZS5jb21wbGV0ZT1pLGUuZGVsYXkmJnQuZGVsYXkoZS5kZWxheSkscyYmdS5lZmZlY3RzJiZ1LmVmZmVjdHMuZWZmZWN0W25dP3RbYV0oZSk6biE9PWEmJnRbbl0\/dFtuXShlLmR1cmF0aW9uLGUuZWFzaW5nLGkpOnQucXVldWUoZnVuY3Rpb24oZSl7dSh0aGlzKVthXSgpLGkmJmkuY2FsbCh0WzBdKSxlKCl9KX19KTt2YXIgdCxzO3Uud2lkZ2V0O3UuZXhwci5wc2V1ZG9zfHwodS5leHByLnBzZXVkb3M9dS5leHByWyI6Il0pLHUudW5pcXVlU29ydHx8KHUudW5pcXVlU29ydD11LnVuaXF1ZSksdS5lc2NhcGVTZWxlY3Rvcnx8KHQ9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15ceDgwLVx1RkZGRlx3LV0vZyxzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/IlwwIj09PWU\/Iu+\/vSI6ZS5zbGljZSgwLC0xKSsiXFwiK2UuY2hhckNvZGVBdChlLmxlbmd0aC0xKS50b1N0cmluZygxNikrIiAiOiJcXCIrZX0sdS5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbihlKXtyZXR1cm4oZSsiIikucmVwbGFjZSh0LHMpfSksdS5mbi5ldmVuJiZ1LmZuLm9kZHx8dS5mbi5leHRlbmQoe2V2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUlMj09MH0pfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUlMj09MX0pfX0pO3UudWkua2V5Q29kZT17QkFDS1NQQUNFOjgsQ09NTUE6MTg4LERFTEVURTo0NixET1dOOjQwLEVORDozNSxFTlRFUjoxMyxFU0NBUEU6MjcsSE9NRTozNixMRUZUOjM3LFBBR0VfRE9XTjozNCxQQUdFX1VQOjMzLFBFUklPRDoxOTAsUklHSFQ6MzksU1BBQ0U6MzIsVEFCOjksVVA6Mzh9LHUuZm4uZXh0ZW5kKHt1bmlxdWVJZDooZT0wLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3RoaXMuaWR8fCh0aGlzLmlkPSJ1aS1pZC0iKyArK2UpfSl9KSxyZW1vdmVVbmlxdWVJZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsvXnVpLWlkLVxkKyQvLnRlc3QodGhpcy5pZCkmJnUodGhpcykucmVtb3ZlQXR0cigiaWQiKX0pfX0pLHUud2lkZ2V0KCJ1aS5hY2NvcmRpb24iLHt2ZXJzaW9uOiIxLjEzLjIiLG9wdGlvbnM6e2FjdGl2ZTowLGFuaW1hdGU6e30sY2xhc3Nlczp7InVpLWFjY29yZGlvbi1oZWFkZXIiOiJ1aS1jb3JuZXItdG9wIiwidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiOiJ1aS1jb3JuZXItYWxsIiwidWktYWNjb3JkaW9uLWNvbnRlbnQiOiJ1aS1jb3JuZXItYm90dG9tIn0sY29sbGFwc2libGU6ITEsZXZlbnQ6ImNsaWNrIixoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmluZCgiPiBsaSA+IDpmaXJzdC1jaGlsZCIpLmFkZChlLmZpbmQoIj4gOm5vdChsaSkiKS5ldmVuKCkpfSxoZWlnaHRTdHlsZToiYXV0byIsaWNvbnM6e2FjdGl2ZUhlYWRlcjoidWktaWNvbi10cmlhbmdsZS0xLXMiLGhlYWRlcjoidWktaWNvbi10cmlhbmdsZS0xLWUifSxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGx9LGhpZGVQcm9wczp7Ym9yZGVyVG9wV2lkdGg6ImhpZGUiLGJvcmRlckJvdHRvbVdpZHRoOiJoaWRlIixwYWRkaW5nVG9wOiJoaWRlIixwYWRkaW5nQm90dG9tOiJoaWRlIixoZWlnaHQ6ImhpZGUifSxzaG93UHJvcHM6e2JvcmRlclRvcFdpZHRoOiJzaG93Iixib3JkZXJCb3R0b21XaWR0aDoic2hvdyIscGFkZGluZ1RvcDoic2hvdyIscGFkZGluZ0JvdHRvbToic2hvdyIsaGVpZ2h0OiJzaG93In0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9uczt0aGlzLnByZXZTaG93PXRoaXMucHJldkhpZGU9dSgpLHRoaXMuX2FkZENsYXNzKCJ1aS1hY2NvcmRpb24iLCJ1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IiksdGhpcy5lbGVtZW50LmF0dHIoInJvbGUiLCJ0YWJsaXN0IiksZS5jb2xsYXBzaWJsZXx8ITEhPT1lLmFjdGl2ZSYmbnVsbCE9ZS5hY3RpdmV8fChlLmFjdGl2ZT0wKSx0aGlzLl9wcm9jZXNzUGFuZWxzKCksZS5hY3RpdmU8MCYmKGUuYWN0aXZlKz10aGlzLmhlYWRlcnMubGVuZ3RoKSx0aGlzLl9yZWZyZXNoKCl9LF9nZXRDcmVhdGVFdmVudERhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aGVhZGVyOnRoaXMuYWN0aXZlLHBhbmVsOnRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5uZXh0KCk6dSgpfX0sX2NyZWF0ZUljb25zOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLm9wdGlvbnMuaWNvbnM7dCYmKGU9dSgiPHNwYW4+IiksdGhpcy5fYWRkQ2xhc3MoZSwidWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiwidWktaWNvbiAiK3QuaGVhZGVyKSxlLnByZXBlbmRUbyh0aGlzLmhlYWRlcnMpLGU9dGhpcy5hY3RpdmUuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKSx0aGlzLl9yZW1vdmVDbGFzcyhlLHQuaGVhZGVyKS5fYWRkQ2xhc3MoZSxudWxsLHQuYWN0aXZlSGVhZGVyKS5fYWRkQ2xhc3ModGhpcy5oZWFkZXJzLCJ1aS1hY2NvcmRpb24taWNvbnMiKSl9LF9kZXN0cm95SWNvbnM6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhlYWRlcnMsInVpLWFjY29yZGlvbi1pY29ucyIpLHRoaXMuaGVhZGVycy5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZSgpfSxfZGVzdHJveTpmdW5jdGlvbigpe3ZhciBlO3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJyb2xlIiksdGhpcy5oZWFkZXJzLnJlbW92ZUF0dHIoInJvbGUgYXJpYS1leHBhbmRlZCBhcmlhLXNlbGVjdGVkIGFyaWEtY29udHJvbHMgdGFiSW5kZXgiKS5yZW1vdmVVbmlxdWVJZCgpLHRoaXMuX2Rlc3Ryb3lJY29ucygpLGU9dGhpcy5oZWFkZXJzLm5leHQoKS5jc3MoImRpc3BsYXkiLCIiKS5yZW1vdmVBdHRyKCJyb2xlIGFyaWEtaGlkZGVuIGFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZVVuaXF1ZUlkKCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZlLmNzcygiaGVpZ2h0IiwiIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiYWN0aXZlIiE9PWU\/KCJldmVudCI9PT1lJiYodGhpcy5vcHRpb25zLmV2ZW50JiZ0aGlzLl9vZmYodGhpcy5oZWFkZXJzLHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBFdmVudHModCkpLHRoaXMuX3N1cGVyKGUsdCksImNvbGxhcHNpYmxlIiE9PWV8fHR8fCExIT09dGhpcy5vcHRpb25zLmFjdGl2ZXx8dGhpcy5fYWN0aXZhdGUoMCksImljb25zIj09PWUmJih0aGlzLl9kZXN0cm95SWNvbnMoKSx0JiZ0aGlzLl9jcmVhdGVJY29ucygpKSk6dGhpcy5fYWN0aXZhdGUodCl9LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbihlKXt0aGlzLl9zdXBlcihlKSx0aGlzLmVsZW1lbnQuYXR0cigiYXJpYS1kaXNhYmxlZCIsZSksdGhpcy5fdG9nZ2xlQ2xhc3MobnVsbCwidWktc3RhdGUtZGlzYWJsZWQiLCEhZSksdGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSxudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFlKX0sX2tleWRvd246ZnVuY3Rpb24oZSl7aWYoIWUuYWx0S2V5JiYhZS5jdHJsS2V5KXt2YXIgdD11LnVpLmtleUNvZGUsaT10aGlzLmhlYWRlcnMubGVuZ3RoLHM9dGhpcy5oZWFkZXJzLmluZGV4KGUudGFyZ2V0KSxuPSExO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgdC5SSUdIVDpjYXNlIHQuRE9XTjpuPXRoaXMuaGVhZGVyc1socysxKSVpXTticmVhaztjYXNlIHQuTEVGVDpjYXNlIHQuVVA6bj10aGlzLmhlYWRlcnNbKHMtMStpKSVpXTticmVhaztjYXNlIHQuU1BBQ0U6Y2FzZSB0LkVOVEVSOnRoaXMuX2V2ZW50SGFuZGxlcihlKTticmVhaztjYXNlIHQuSE9NRTpuPXRoaXMuaGVhZGVyc1swXTticmVhaztjYXNlIHQuRU5EOm49dGhpcy5oZWFkZXJzW2ktMV19biYmKHUoZS50YXJnZXQpLmF0dHIoInRhYkluZGV4IiwtMSksdShuKS5hdHRyKCJ0YWJJbmRleCIsMCksdShuKS50cmlnZ2VyKCJmb2N1cyIpLGUucHJldmVudERlZmF1bHQoKSl9fSxfcGFuZWxLZXlEb3duOmZ1bmN0aW9uKGUpe2Uua2V5Q29kZT09PXUudWkua2V5Q29kZS5VUCYmZS5jdHJsS2V5JiZ1KGUuY3VycmVudFRhcmdldCkucHJldigpLnRyaWdnZXIoImZvY3VzIil9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnM7dGhpcy5fcHJvY2Vzc1BhbmVscygpLCExPT09ZS5hY3RpdmUmJiEwPT09ZS5jb2xsYXBzaWJsZXx8IXRoaXMuaGVhZGVycy5sZW5ndGg\/KGUuYWN0aXZlPSExLHRoaXMuYWN0aXZlPXUoKSk6ITE9PT1lLmFjdGl2ZT90aGlzLl9hY3RpdmF0ZSgwKTp0aGlzLmFjdGl2ZS5sZW5ndGgmJiF1LmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSx0aGlzLmFjdGl2ZVswXSk\/dGhpcy5oZWFkZXJzLmxlbmd0aD09PXRoaXMuaGVhZGVycy5maW5kKCIudWktc3RhdGUtZGlzYWJsZWQiKS5sZW5ndGg\/KGUuYWN0aXZlPSExLHRoaXMuYWN0aXZlPXUoKSk6dGhpcy5fYWN0aXZhdGUoTWF0aC5tYXgoMCxlLmFjdGl2ZS0xKSk6ZS5hY3RpdmU9dGhpcy5oZWFkZXJzLmluZGV4KHRoaXMuYWN0aXZlKSx0aGlzLl9kZXN0cm95SWNvbnMoKSx0aGlzLl9yZWZyZXNoKCl9LF9wcm9jZXNzUGFuZWxzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oZWFkZXJzLHQ9dGhpcy5wYW5lbHM7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5oZWFkZXI\/dGhpcy5oZWFkZXJzPXRoaXMub3B0aW9ucy5oZWFkZXIodGhpcy5lbGVtZW50KTp0aGlzLmhlYWRlcnM9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhlYWRlciksdGhpcy5fYWRkQ2xhc3ModGhpcy5oZWFkZXJzLCJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiwidWktc3RhdGUtZGVmYXVsdCIpLHRoaXMucGFuZWxzPXRoaXMuaGVhZGVycy5uZXh0KCkuZmlsdGVyKCI6bm90KC51aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUpIikuaGlkZSgpLHRoaXMuX2FkZENsYXNzKHRoaXMucGFuZWxzLCJ1aS1hY2NvcmRpb24tY29udGVudCIsInVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCIpLHQmJih0aGlzLl9vZmYoZS5ub3QodGhpcy5oZWFkZXJzKSksdGhpcy5fb2ZmKHQubm90KHRoaXMucGFuZWxzKSkpfSxfcmVmcmVzaDpmdW5jdGlvbigpe3ZhciBpLGU9dGhpcy5vcHRpb25zLHQ9ZS5oZWlnaHRTdHlsZSxzPXRoaXMuZWxlbWVudC5wYXJlbnQoKTt0aGlzLmFjdGl2ZT10aGlzLl9maW5kQWN0aXZlKGUuYWN0aXZlKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmFjdGl2ZSwidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCJ1aS1zdGF0ZS1hY3RpdmUiKS5fcmVtb3ZlQ2xhc3ModGhpcy5hY3RpdmUsInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiksdGhpcy5fYWRkQ2xhc3ModGhpcy5hY3RpdmUubmV4dCgpLCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKSx0aGlzLmFjdGl2ZS5uZXh0KCkuc2hvdygpLHRoaXMuaGVhZGVycy5hdHRyKCJyb2xlIiwidGFiIikuZWFjaChmdW5jdGlvbigpe3ZhciBlPXUodGhpcyksdD1lLnVuaXF1ZUlkKCkuYXR0cigiaWQiKSxpPWUubmV4dCgpLHM9aS51bmlxdWVJZCgpLmF0dHIoImlkIik7ZS5hdHRyKCJhcmlhLWNvbnRyb2xzIixzKSxpLmF0dHIoImFyaWEtbGFiZWxsZWRieSIsdCl9KS5uZXh0KCkuYXR0cigicm9sZSIsInRhYnBhbmVsIiksdGhpcy5oZWFkZXJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KS5uZXh0KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KS5oaWRlKCksdGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6ImZhbHNlIn0pOnRoaXMuaGVhZGVycy5lcSgwKS5hdHRyKCJ0YWJJbmRleCIsMCksdGhpcy5fY3JlYXRlSWNvbnMoKSx0aGlzLl9zZXR1cEV2ZW50cyhlLmV2ZW50KSwiZmlsbCI9PT10PyhpPXMuaGVpZ2h0KCksdGhpcy5lbGVtZW50LnNpYmxpbmdzKCI6dmlzaWJsZSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11KHRoaXMpLHQ9ZS5jc3MoInBvc2l0aW9uIik7ImFic29sdXRlIiE9PXQmJiJmaXhlZCIhPT10JiYoaS09ZS5vdXRlckhlaWdodCghMCkpfSksdGhpcy5oZWFkZXJzLmVhY2goZnVuY3Rpb24oKXtpLT11KHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pLHRoaXMuaGVhZGVycy5uZXh0KCkuZWFjaChmdW5jdGlvbigpe3UodGhpcykuaGVpZ2h0KE1hdGgubWF4KDAsaS11KHRoaXMpLmlubmVySGVpZ2h0KCkrdSh0aGlzKS5oZWlnaHQoKSkpfSkuY3NzKCJvdmVyZmxvdyIsImF1dG8iKSk6ImF1dG8iPT09dCYmKGk9MCx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11KHRoaXMpLmlzKCI6dmlzaWJsZSIpO2V8fHUodGhpcykuc2hvdygpLGk9TWF0aC5tYXgoaSx1KHRoaXMpLmNzcygiaGVpZ2h0IiwiIikuaGVpZ2h0KCkpLGV8fHUodGhpcykuaGlkZSgpfSkuaGVpZ2h0KGkpKX0sX2FjdGl2YXRlOmZ1bmN0aW9uKGUpe2U9dGhpcy5fZmluZEFjdGl2ZShlKVswXTtlIT09dGhpcy5hY3RpdmVbMF0mJihlPWV8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmUsY3VycmVudFRhcmdldDplLHByZXZlbnREZWZhdWx0OnUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuaGVhZGVycy5lcShlKTp1KCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbihlKXt2YXIgaT17a2V5ZG93bjoiX2tleWRvd24ifTtlJiZ1LmVhY2goZS5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7aVt0XT0iX2V2ZW50SGFuZGxlciJ9KSx0aGlzLl9vZmYodGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSksdGhpcy5fb24odGhpcy5oZWFkZXJzLGkpLHRoaXMuX29uKHRoaXMuaGVhZGVycy5uZXh0KCkse2tleWRvd246Il9wYW5lbEtleURvd24ifSksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGVhZGVycyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGVhZGVycyl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5vcHRpb25zLGk9dGhpcy5hY3RpdmUscz11KGUuY3VycmVudFRhcmdldCksbj1zWzBdPT09aVswXSxhPW4mJnQuY29sbGFwc2libGUsbz1hP3UoKTpzLm5leHQoKSxyPWkubmV4dCgpLG89e29sZEhlYWRlcjppLG9sZFBhbmVsOnIsbmV3SGVhZGVyOmE\/dSgpOnMsbmV3UGFuZWw6b307ZS5wcmV2ZW50RGVmYXVsdCgpLG4mJiF0LmNvbGxhcHNpYmxlfHwhMT09PXRoaXMuX3RyaWdnZXIoImJlZm9yZUFjdGl2YXRlIixlLG8pfHwodC5hY3RpdmU9IWEmJnRoaXMuaGVhZGVycy5pbmRleChzKSx0aGlzLmFjdGl2ZT1uP3UoKTpzLHRoaXMuX3RvZ2dsZShvKSx0aGlzLl9yZW1vdmVDbGFzcyhpLCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIsInVpLXN0YXRlLWFjdGl2ZSIpLHQuaWNvbnMmJihpPWkuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKSx0aGlzLl9yZW1vdmVDbGFzcyhpLG51bGwsdC5pY29ucy5hY3RpdmVIZWFkZXIpLl9hZGRDbGFzcyhpLG51bGwsdC5pY29ucy5oZWFkZXIpKSxufHwodGhpcy5fcmVtb3ZlQ2xhc3MocywidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiKS5fYWRkQ2xhc3MocywidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCJ1aS1zdGF0ZS1hY3RpdmUiKSx0Lmljb25zJiYobj1zLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiksdGhpcy5fcmVtb3ZlQ2xhc3MobixudWxsLHQuaWNvbnMuaGVhZGVyKS5fYWRkQ2xhc3MobixudWxsLHQuaWNvbnMuYWN0aXZlSGVhZGVyKSksdGhpcy5fYWRkQ2xhc3Mocy5uZXh0KCksInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpKSl9LF90b2dnbGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uZXdQYW5lbCxpPXRoaXMucHJldlNob3cubGVuZ3RoP3RoaXMucHJldlNob3c6ZS5vbGRQYW5lbDt0aGlzLnByZXZTaG93LmFkZCh0aGlzLnByZXZIaWRlKS5zdG9wKCEwLCEwKSx0aGlzLnByZXZTaG93PXQsdGhpcy5wcmV2SGlkZT1pLHRoaXMub3B0aW9ucy5hbmltYXRlP3RoaXMuX2FuaW1hdGUodCxpLGUpOihpLmhpZGUoKSx0LnNob3coKSx0aGlzLl90b2dnbGVDb21wbGV0ZShlKSksaS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLGkucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSksdC5sZW5ndGgmJmkubGVuZ3RoP2kucHJldigpLmF0dHIoe3RhYkluZGV4Oi0xLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSk6dC5sZW5ndGgmJnRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMD09PXBhcnNlSW50KHUodGhpcykuYXR0cigidGFiSW5kZXgiKSwxMCl9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLHQuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLnByZXYoKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pfSxfYW5pbWF0ZTpmdW5jdGlvbihlLGksdCl7dmFyIHMsbixhLG89dGhpcyxyPTAsaD1lLmNzcygiYm94LXNpemluZyIpLGw9ZS5sZW5ndGgmJighaS5sZW5ndGh8fGUuaW5kZXgoKTxpLmluZGV4KCkpLHU9dGhpcy5vcHRpb25zLmFuaW1hdGV8fHt9LGM9bCYmdS5kb3dufHx1LGw9ZnVuY3Rpb24oKXtvLl90b2dnbGVDb21wbGV0ZSh0KX07cmV0dXJuIG49KG49InN0cmluZyI9PXR5cGVvZiBjP2M6bil8fGMuZWFzaW5nfHx1LmVhc2luZyxhPShhPSJudW1iZXIiPT10eXBlb2YgYz9jOmEpfHxjLmR1cmF0aW9ufHx1LmR1cmF0aW9uLGkubGVuZ3RoP2UubGVuZ3RoPyhzPWUuc2hvdygpLm91dGVySGVpZ2h0KCksaS5hbmltYXRlKHRoaXMuaGlkZVByb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLHN0ZXA6ZnVuY3Rpb24oZSx0KXt0Lm5vdz1NYXRoLnJvdW5kKGUpfX0pLHZvaWQgZS5oaWRlKCkuYW5pbWF0ZSh0aGlzLnNob3dQcm9wcyx7ZHVyYXRpb246YSxlYXNpbmc6bixjb21wbGV0ZTpsLHN0ZXA6ZnVuY3Rpb24oZSx0KXt0Lm5vdz1NYXRoLnJvdW5kKGUpLCJoZWlnaHQiIT09dC5wcm9wPyJjb250ZW50LWJveCI9PT1oJiYocis9dC5ub3cpOiJjb250ZW50IiE9PW8ub3B0aW9ucy5oZWlnaHRTdHlsZSYmKHQubm93PU1hdGgucm91bmQocy1pLm91dGVySGVpZ2h0KCktcikscj0wKX19KSk6aS5hbmltYXRlKHRoaXMuaGlkZVByb3BzLGEsbixsKTplLmFuaW1hdGUodGhpcy5zaG93UHJvcHMsYSxuLGwpfSxfdG9nZ2xlQ29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vbGRQYW5lbCxpPXQucHJldigpO3RoaXMuX3JlbW92ZUNsYXNzKHQsInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLHRoaXMuX3JlbW92ZUNsYXNzKGksInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIikuX2FkZENsYXNzKGksInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiksdC5sZW5ndGgmJih0LnBhcmVudCgpWzBdLmNsYXNzTmFtZT10LnBhcmVudCgpWzBdLmNsYXNzTmFtZSksdGhpcy5fdHJpZ2dlcigiYWN0aXZhdGUiLG51bGwsZSl9fSksdS51aS5pZT0hIS9tc2llIFtcdy5dKy8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpO3ZhciBlLGE9ITE7dShkb2N1bWVudCkub24oIm1vdXNldXAiLGZ1bmN0aW9uKCl7YT0hMX0pO3Uud2lkZ2V0KCJ1aS5tb3VzZSIse3ZlcnNpb246IjEuMTMuMiIsb3B0aW9uczp7Y2FuY2VsOiJpbnB1dCwgdGV4dGFyZWEsIGJ1dHRvbiwgc2VsZWN0LCBvcHRpb24iLGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbGVtZW50Lm9uKCJtb3VzZWRvd24uIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oZSl7cmV0dXJuIHQuX21vdXNlRG93bihlKX0pLm9uKCJjbGljay4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtpZighMD09PXUuZGF0YShlLnRhcmdldCx0LndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpKXJldHVybiB1LnJlbW92ZURhdGEoZS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSxlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLCExfSksdGhpcy5zdGFydGVkPSExfSxfbW91c2VEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Lm9mZigiLiIrdGhpcy53aWRnZXROYW1lKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSYmdGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSl9LF9tb3VzZURvd246ZnVuY3Rpb24oZSl7aWYoIWEpe3RoaXMuX21vdXNlTW92ZWQ9ITEsdGhpcy5fbW91c2VTdGFydGVkJiZ0aGlzLl9tb3VzZVVwKGUpLHRoaXMuX21vdXNlRG93bkV2ZW50PWU7dmFyIHQ9dGhpcyxpPTE9PT1lLndoaWNoLHM9ISgic3RyaW5nIiE9dHlwZW9mIHRoaXMub3B0aW9ucy5jYW5jZWx8fCFlLnRhcmdldC5ub2RlTmFtZSkmJnUoZS50YXJnZXQpLmNsb3Nlc3QodGhpcy5vcHRpb25zLmNhbmNlbCkubGVuZ3RoO3JldHVybiBpJiYhcyYmdGhpcy5fbW91c2VDYXB0dXJlKGUpPyh0aGlzLm1vdXNlRGVsYXlNZXQ9IXRoaXMub3B0aW9ucy5kZWxheSx0aGlzLm1vdXNlRGVsYXlNZXR8fCh0aGlzLl9tb3VzZURlbGF5VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3QubW91c2VEZWxheU1ldD0hMH0sdGhpcy5vcHRpb25zLmRlbGF5KSksdGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQoZSksIXRoaXMuX21vdXNlU3RhcnRlZCk\/KGUucHJldmVudERlZmF1bHQoKSwhMCk6KCEwPT09dS5kYXRhKGUudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikmJnUucmVtb3ZlRGF0YShlLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0Ll9tb3VzZU1vdmUoZSl9LHRoaXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VVcChlKX0sdGhpcy5kb2N1bWVudC5vbigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vbigibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpLGUucHJldmVudERlZmF1bHQoKSxhPSEwKSk6ITB9fSxfbW91c2VNb3ZlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuX21vdXNlTW92ZWQpe2lmKHUudWkuaWUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU8OSkmJiFlLmJ1dHRvbilyZXR1cm4gdGhpcy5fbW91c2VVcChlKTtpZighZS53aGljaClpZihlLm9yaWdpbmFsRXZlbnQuYWx0S2V5fHxlLm9yaWdpbmFsRXZlbnQuY3RybEtleXx8ZS5vcmlnaW5hbEV2ZW50Lm1ldGFLZXl8fGUub3JpZ2luYWxFdmVudC5zaGlmdEtleSl0aGlzLmlnbm9yZU1pc3NpbmdXaGljaD0hMDtlbHNlIGlmKCF0aGlzLmlnbm9yZU1pc3NpbmdXaGljaClyZXR1cm4gdGhpcy5fbW91c2VVcChlKX1yZXR1cm4oZS53aGljaHx8ZS5idXR0b24pJiYodGhpcy5fbW91c2VNb3ZlZD0hMCksdGhpcy5fbW91c2VTdGFydGVkPyh0aGlzLl9tb3VzZURyYWcoZSksZS5wcmV2ZW50RGVmYXVsdCgpKToodGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsZSksdGhpcy5fbW91c2VTdGFydGVkP3RoaXMuX21vdXNlRHJhZyhlKTp0aGlzLl9tb3VzZVVwKGUpKSwhdGhpcy5fbW91c2VTdGFydGVkKX0sX21vdXNlVXA6ZnVuY3Rpb24oZSl7dGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLGUudGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZ1LmRhdGEoZS50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AoZSkpLHRoaXMuX21vdXNlRGVsYXlUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9tb3VzZURlbGF5VGltZXIpLGRlbGV0ZSB0aGlzLl9tb3VzZURlbGF5VGltZXIpLHRoaXMuaWdub3JlTWlzc2luZ1doaWNoPSExLGE9ITEsZS5wcmV2ZW50RGVmYXVsdCgpfSxfbW91c2VEaXN0YW5jZU1ldDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVgtZS5wYWdlWCksTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVktZS5wYWdlWSkpPj10aGlzLm9wdGlvbnMuZGlzdGFuY2V9LF9tb3VzZURlbGF5TWV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW91c2VEZWxheU1ldH0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXt9LF9tb3VzZURyYWc6ZnVuY3Rpb24oKXt9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oKXt9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KSx1LndpZGdldCgidWkuc2xpZGVyIix1LnVpLm1vdXNlLHt2ZXJzaW9uOiIxLjEzLjIiLHdpZGdldEV2ZW50UHJlZml4OiJzbGlkZSIsb3B0aW9uczp7YW5pbWF0ZTohMSxjbGFzc2VzOnsidWktc2xpZGVyIjoidWktY29ybmVyLWFsbCIsInVpLXNsaWRlci1oYW5kbGUiOiJ1aS1jb3JuZXItYWxsIiwidWktc2xpZGVyLXJhbmdlIjoidWktY29ybmVyLWFsbCB1aS13aWRnZXQtaGVhZGVyIn0sZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9hZGRDbGFzcygidWktc2xpZGVyIHVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24sInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLm9wdGlvbnMsaT10aGlzLmVsZW1lbnQuZmluZCgiLnVpLXNsaWRlci1oYW5kbGUiKSxzPVtdLG49dC52YWx1ZXMmJnQudmFsdWVzLmxlbmd0aHx8MTtmb3IoaS5sZW5ndGg+biYmKGkuc2xpY2UobikucmVtb3ZlKCksaT1pLnNsaWNlKDAsbikpLGU9aS5sZW5ndGg7ZTxuO2UrKylzLnB1c2goIjxzcGFuIHRhYmluZGV4PScwJz48L3NwYW4+Iik7dGhpcy5oYW5kbGVzPWkuYWRkKHUocy5qb2luKCIiKSkuYXBwZW5kVG8odGhpcy5lbGVtZW50KSksdGhpcy5fYWRkQ2xhc3ModGhpcy5oYW5kbGVzLCJ1aS1zbGlkZXItaGFuZGxlIiwidWktc3RhdGUtZGVmYXVsdCIpLHRoaXMuaGFuZGxlPXRoaXMuaGFuZGxlcy5lcSgwKSx0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihlKXt1KHRoaXMpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiLGUpLmF0dHIoInRhYkluZGV4IiwwKX0pfSxfY3JlYXRlUmFuZ2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnM7ZS5yYW5nZT8oITA9PT1lLnJhbmdlJiYoZS52YWx1ZXM\/ZS52YWx1ZXMubGVuZ3RoJiYyIT09ZS52YWx1ZXMubGVuZ3RoP2UudmFsdWVzPVtlLnZhbHVlc1swXSxlLnZhbHVlc1swXV06QXJyYXkuaXNBcnJheShlLnZhbHVlcykmJihlLnZhbHVlcz1lLnZhbHVlcy5zbGljZSgwKSk6ZS52YWx1ZXM9W3RoaXMuX3ZhbHVlTWluKCksdGhpcy5fdmFsdWVNaW4oKV0pLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UubGVuZ3RoPyh0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UtbWluIHVpLXNsaWRlci1yYW5nZS1tYXgiKSx0aGlzLnJhbmdlLmNzcyh7bGVmdDoiIixib3R0b206IiJ9KSk6KHRoaXMucmFuZ2U9dSgiPGRpdj4iKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpLHRoaXMuX2FkZENsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZSIpKSwibWluIiE9PWUucmFuZ2UmJiJtYXgiIT09ZS5yYW5nZXx8dGhpcy5fYWRkQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlLSIrZS5yYW5nZSkpOih0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLnJlbW92ZSgpLHRoaXMucmFuZ2U9bnVsbCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbigpe3RoaXMuX29mZih0aGlzLmhhbmRsZXMpLHRoaXMuX29uKHRoaXMuaGFuZGxlcyx0aGlzLl9oYW5kbGVFdmVudHMpLHRoaXMuX2hvdmVyYWJsZSh0aGlzLmhhbmRsZXMpLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmhhbmRsZXMpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlcy5yZW1vdmUoKSx0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLnJlbW92ZSgpLHRoaXMuX21vdXNlRGVzdHJveSgpfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKGUpe3ZhciBpLHMsbixhLHQsbyxyPXRoaXMsaD10aGlzLm9wdGlvbnM7cmV0dXJuIWguZGlzYWJsZWQmJih0aGlzLmVsZW1lbnRTaXplPXt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKX0sdGhpcy5lbGVtZW50T2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQoKSxvPXt4OmUucGFnZVgseTplLnBhZ2VZfSxpPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShvKSxzPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSsxLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PU1hdGguYWJzKGktci52YWx1ZXMoZSkpOyh0PHN8fHM9PT10JiYoZT09PXIuX2xhc3RDaGFuZ2VkVmFsdWV8fHIudmFsdWVzKGUpPT09aC5taW4pKSYmKHM9dCxuPXUodGhpcyksYT1lKX0pLCExIT09dGhpcy5fc3RhcnQoZSxhKSYmKHRoaXMuX21vdXNlU2xpZGluZz0hMCx0aGlzLl9oYW5kbGVJbmRleD1hLHRoaXMuX2FkZENsYXNzKG4sbnVsbCwidWktc3RhdGUtYWN0aXZlIiksbi50cmlnZ2VyKCJmb2N1cyIpLHQ9bi5vZmZzZXQoKSxvPSF1KGUudGFyZ2V0KS5wYXJlbnRzKCkuYWRkQmFjaygpLmlzKCIudWktc2xpZGVyLWhhbmRsZSIpLHRoaXMuX2NsaWNrT2Zmc2V0PW8\/e2xlZnQ6MCx0b3A6MH06e2xlZnQ6ZS5wYWdlWC10LmxlZnQtbi53aWR0aCgpLzIsdG9wOmUucGFnZVktdC50b3Atbi5oZWlnaHQoKS8yLShwYXJzZUludChuLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLShwYXJzZUludChuLmNzcygiYm9yZGVyQm90dG9tV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChuLmNzcygibWFyZ2luVG9wIiksMTApfHwwKX0sdGhpcy5oYW5kbGVzLmhhc0NsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfHx0aGlzLl9zbGlkZShlLGEsaSksdGhpcy5fYW5pbWF0ZU9mZj0hMCkpfSxfbW91c2VTdGFydDpmdW5jdGlvbigpe3JldHVybiEwfSxfbW91c2VEcmFnOmZ1bmN0aW9uKGUpe3ZhciB0PXt4OmUucGFnZVgseTplLnBhZ2VZfSx0PXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZSh0KTtyZXR1cm4gdGhpcy5fc2xpZGUoZSx0aGlzLl9oYW5kbGVJbmRleCx0KSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oYW5kbGVzLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9zdG9wKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2NoYW5nZShlLHRoaXMuX2hhbmRsZUluZGV4KSx0aGlzLl9oYW5kbGVJbmRleD1udWxsLHRoaXMuX2NsaWNrT2Zmc2V0PW51bGwsdGhpcy5fYW5pbWF0ZU9mZj0hMX0sX2RldGVjdE9yaWVudGF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5vcmllbnRhdGlvbj0idmVydGljYWwiPT09dGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwifSxfbm9ybVZhbHVlRnJvbU1vdXNlOmZ1bmN0aW9uKGUpe3ZhciB0LGU9Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8odD10aGlzLmVsZW1lbnRTaXplLndpZHRoLGUueC10aGlzLmVsZW1lbnRPZmZzZXQubGVmdC0odGhpcy5fY2xpY2tPZmZzZXQ\/dGhpcy5fY2xpY2tPZmZzZXQubGVmdDowKSk6KHQ9dGhpcy5lbGVtZW50U2l6ZS5oZWlnaHQsZS55LXRoaXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LnRvcDowKSksZT1lL3Q7cmV0dXJuKGU9MTxlPzE6ZSk8MCYmKGU9MCksInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJihlPTEtZSksdD10aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCksdD10aGlzLl92YWx1ZU1pbigpK2UqdCx0aGlzLl90cmltQWxpZ25WYWx1ZSh0KX0sX3VpSGFzaDpmdW5jdGlvbihlLHQsaSl7dmFyIHM9e2hhbmRsZTp0aGlzLmhhbmRsZXNbZV0saGFuZGxlSW5kZXg6ZSx2YWx1ZTp2b2lkIDAhPT10P3Q6dGhpcy52YWx1ZSgpfTtyZXR1cm4gdGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSYmKHMudmFsdWU9dm9pZCAwIT09dD90OnRoaXMudmFsdWVzKGUpLHMudmFsdWVzPWl8fHRoaXMudmFsdWVzKCkpLHN9LF9oYXNNdWx0aXBsZVZhbHVlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aH0sX3N0YXJ0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3RyaWdnZXIoInN0YXJ0IixlLHRoaXMuX3VpSGFzaCh0KSl9LF9zbGlkZTpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbj10aGlzLnZhbHVlKCksYT10aGlzLnZhbHVlcygpO3RoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkmJihzPXRoaXMudmFsdWVzKHQ\/MDoxKSxuPXRoaXMudmFsdWVzKHQpLDI9PT10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCYmITA9PT10aGlzLm9wdGlvbnMucmFuZ2UmJihpPTA9PT10P01hdGgubWluKHMsaSk6TWF0aC5tYXgocyxpKSksYVt0XT1pKSxpIT09biYmITEhPT10aGlzLl90cmlnZ2VyKCJzbGlkZSIsZSx0aGlzLl91aUhhc2godCxpLGEpKSYmKHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk\/dGhpcy52YWx1ZXModCxpKTp0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24oZSx0KXt0aGlzLl90cmlnZ2VyKCJzdG9wIixlLHRoaXMuX3VpSGFzaCh0KSl9LF9jaGFuZ2U6ZnVuY3Rpb24oZSx0KXt0aGlzLl9rZXlTbGlkaW5nfHx0aGlzLl9tb3VzZVNsaWRpbmd8fCh0aGlzLl9sYXN0Q2hhbmdlZFZhbHVlPXQsdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixlLHRoaXMuX3VpSGFzaCh0KSkpfSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHZvaWQgdGhpcy5fY2hhbmdlKG51bGwsMCkpOnRoaXMuX3ZhbHVlKCl9LHZhbHVlczpmdW5jdGlvbihlLHQpe3ZhciBpLHMsbjtpZigxPGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXNbZV09dGhpcy5fdHJpbUFsaWduVmFsdWUodCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCB0aGlzLl9jaGFuZ2UobnVsbCxlKTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5fdmFsdWVzKCk7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk\/dGhpcy5fdmFsdWVzKGUpOnRoaXMudmFsdWUoKTtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLHM9ZSxuPTA7bjxpLmxlbmd0aDtuKz0xKWlbbl09dGhpcy5fdHJpbUFsaWduVmFsdWUoc1tuXSksdGhpcy5fY2hhbmdlKG51bGwsbik7dGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzPTA7c3dpdGNoKCJyYW5nZSI9PT1lJiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKCJtaW4iPT09dD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcygwKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpOiJtYXgiPT09dCYmKHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl92YWx1ZXModGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgtMSksdGhpcy5vcHRpb25zLnZhbHVlcz1udWxsKSksQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMudmFsdWVzKSYmKHM9dGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgpLHRoaXMuX3N1cGVyKGUsdCksZSl7Y2FzZSJvcmllbnRhdGlvbiI6dGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9yZW1vdmVDbGFzcygidWktc2xpZGVyLWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIikuX2FkZENsYXNzKCJ1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLm9wdGlvbnMucmFuZ2UmJnRoaXMuX3JlZnJlc2hSYW5nZSh0KSx0aGlzLmhhbmRsZXMuY3NzKCJob3Jpem9udGFsIj09PXQ\/ImJvdHRvbSI6ImxlZnQiLCIiKTticmVhaztjYXNlInZhbHVlIjp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2NoYW5nZShudWxsLDApLHRoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJ2YWx1ZXMiOmZvcih0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLGk9cy0xOzA8PWk7aS0tKXRoaXMuX2NoYW5nZShudWxsLGkpO3RoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJzdGVwIjpjYXNlIm1pbiI6Y2FzZSJtYXgiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fY2FsY3VsYXRlTmV3TWF4KCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInJhbmdlIjp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3RoaXMuX3N1cGVyKGUpLHRoaXMuX3RvZ2dsZUNsYXNzKG51bGwsInVpLXN0YXRlLWRpc2FibGVkIiwhIWUpfSxfdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSl9LF92YWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlPXRoaXMub3B0aW9ucy52YWx1ZXNbZV0sZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKTtpZih0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpKXtmb3IodD10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCksaT0wO2k8dC5sZW5ndGg7aSs9MSl0W2ldPXRoaXMuX3RyaW1BbGlnblZhbHVlKHRbaV0pO3JldHVybiB0fXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24oZSl7aWYoZTw9dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZihlPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciB0PTA8dGhpcy5vcHRpb25zLnN0ZXA\/dGhpcy5vcHRpb25zLnN0ZXA6MSxpPShlLXRoaXMuX3ZhbHVlTWluKCkpJXQsZT1lLWk7cmV0dXJuIDIqTWF0aC5hYnMoaSk+PXQmJihlKz0wPGk\/dDotdCkscGFyc2VGbG9hdChlLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm1heCx0PXRoaXMuX3ZhbHVlTWluKCksaT10aGlzLm9wdGlvbnMuc3RlcDsoZT1NYXRoLnJvdW5kKChlLXQpL2kpKmkrdCk+dGhpcy5vcHRpb25zLm1heCYmKGUtPWkpLHRoaXMubWF4PXBhcnNlRmxvYXQoZS50b0ZpeGVkKHRoaXMuX3ByZWNpc2lvbigpKSl9LF9wcmVjaXNpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMuc3RlcCk7cmV0dXJuIGU9bnVsbCE9PXRoaXMub3B0aW9ucy5taW4\/TWF0aC5tYXgoZSx0aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMubWluKSk6ZX0sX3ByZWNpc2lvbk9mOmZ1bmN0aW9uKGUpe3ZhciB0PWUudG9TdHJpbmcoKSxlPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09ZT8wOnQubGVuZ3RoLWUtMX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heH0sX3JlZnJlc2hSYW5nZTpmdW5jdGlvbihlKXsidmVydGljYWwiPT09ZSYmdGhpcy5yYW5nZS5jc3Moe3dpZHRoOiIiLGxlZnQ6IiJ9KSwiaG9yaXpvbnRhbCI9PT1lJiZ0aGlzLnJhbmdlLmNzcyh7aGVpZ2h0OiIiLGJvdHRvbToiIn0pfSxfcmVmcmVzaFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsaSxlLHMsbixhPXRoaXMub3B0aW9ucy5yYW5nZSxvPXRoaXMub3B0aW9ucyxyPXRoaXMsaD0hdGhpcy5fYW5pbWF0ZU9mZiYmby5hbmltYXRlLGw9e307dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihlKXtpPShyLnZhbHVlcyhlKS1yLl92YWx1ZU1pbigpKS8oci5fdmFsdWVNYXgoKS1yLl92YWx1ZU1pbigpKSoxMDAsbFsiaG9yaXpvbnRhbCI9PT1yLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdSh0aGlzKS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKGwsby5hbmltYXRlKSwhMD09PXIub3B0aW9ucy5yYW5nZSYmKCJob3Jpem9udGFsIj09PXIub3JpZW50YXRpb24\/KDA9PT1lJiZyLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2xlZnQ6aSsiJSJ9LG8uYW5pbWF0ZSksMT09PWUmJnIucmFuZ2VbaD8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246by5hbmltYXRlfSkpOigwPT09ZSYmci5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHtib3R0b206aSsiJSJ9LG8uYW5pbWF0ZSksMT09PWUmJnIucmFuZ2VbaD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6aS10KyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOm8uYW5pbWF0ZX0pKSksdD1pfSk6KGU9dGhpcy52YWx1ZSgpLHM9dGhpcy5fdmFsdWVNaW4oKSxuPXRoaXMuX3ZhbHVlTWF4KCksaT1uIT09cz8oZS1zKS8obi1zKSoxMDA6MCxsWyJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24\/ImxlZnQiOiJib3R0b20iXT1pKyIlIix0aGlzLmhhbmRsZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKGwsby5hbmltYXRlKSwibWluIj09PWEmJiJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6aSsiJSJ9LG8uYW5pbWF0ZSksIm1heCI9PT1hJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1pKyIlIn0sby5hbmltYXRlKSwibWluIj09PWEmJiJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppKyIlIn0sby5hbmltYXRlKSwibWF4Ij09PWEmJiJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDoxMDAtaSsiJSJ9LG8uYW5pbWF0ZSkpfSxfaGFuZGxlRXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKGUpe3ZhciB0LGkscyxuPXUoZS50YXJnZXQpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiKTtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIHUudWkua2V5Q29kZS5IT01FOmNhc2UgdS51aS5rZXlDb2RlLkVORDpjYXNlIHUudWkua2V5Q29kZS5QQUdFX1VQOmNhc2UgdS51aS5rZXlDb2RlLlBBR0VfRE9XTjpjYXNlIHUudWkua2V5Q29kZS5VUDpjYXNlIHUudWkua2V5Q29kZS5SSUdIVDpjYXNlIHUudWkua2V5Q29kZS5ET1dOOmNhc2UgdS51aS5rZXlDb2RlLkxFRlQ6aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLl9rZXlTbGlkaW5nJiYodGhpcy5fa2V5U2xpZGluZz0hMCx0aGlzLl9hZGRDbGFzcyh1KGUudGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1hY3RpdmUiKSwhMT09PXRoaXMuX3N0YXJ0KGUsbikpKXJldHVybn1zd2l0Y2gocz10aGlzLm9wdGlvbnMuc3RlcCx0PWk9dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLnZhbHVlcyhuKTp0aGlzLnZhbHVlKCksZS5rZXlDb2RlKXtjYXNlIHUudWkua2V5Q29kZS5IT01FOmk9dGhpcy5fdmFsdWVNaW4oKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5FTkQ6aT10aGlzLl92YWx1ZU1heCgpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLlBBR0VfVVA6aT10aGlzLl90cmltQWxpZ25WYWx1ZSh0Kyh0aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkpL3RoaXMubnVtUGFnZXMpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLlBBR0VfRE9XTjppPXRoaXMuX3RyaW1BbGlnblZhbHVlKHQtKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuVVA6Y2FzZSB1LnVpLmtleUNvZGUuUklHSFQ6aWYodD09PXRoaXMuX3ZhbHVlTWF4KCkpcmV0dXJuO2k9dGhpcy5fdHJpbUFsaWduVmFsdWUodCtzKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5ET1dOOmNhc2UgdS51aS5rZXlDb2RlLkxFRlQ6aWYodD09PXRoaXMuX3ZhbHVlTWluKCkpcmV0dXJuO2k9dGhpcy5fdHJpbUFsaWduVmFsdWUodC1zKX10aGlzLl9zbGlkZShlLG4saSl9LGtleXVwOmZ1bmN0aW9uKGUpe3ZhciB0PXUoZS50YXJnZXQpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiKTt0aGlzLl9rZXlTbGlkaW5nJiYodGhpcy5fa2V5U2xpZGluZz0hMSx0aGlzLl9zdG9wKGUsdCksdGhpcy5fY2hhbmdlKGUsdCksdGhpcy5fcmVtb3ZlQ2xhc3ModShlLnRhcmdldCksbnVsbCwidWktc3RhdGUtYWN0aXZlIikpfX19KTt2YXIgaD11LGw9e30sYz1sLnRvU3RyaW5nLGQ9L14oW1wtK10pPVxzKihcZCtcLj9cZCopLyxmPVt7cmU6L3JnYmE\/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig\/OixccyooXGQ\/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLGVbM10sZVs0XV19fSx7cmU6L3JnYmE\/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig\/OixccyooXGQ\/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bMi41NSplWzFdLDIuNTUqZVsyXSwyLjU1KmVbM10sZVs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pPy8scGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuW3BhcnNlSW50KGVbMV0sMTYpLHBhcnNlSW50KGVbMl0sMTYpLHBhcnNlSW50KGVbM10sMTYpLGVbNF0\/KHBhcnNlSW50KGVbNF0sMTYpLzI1NSkudG9GaXhlZCgyKToxXX19LHtyZTovIyhbYS1mMC05XSkoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSk\/LyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bcGFyc2VJbnQoZVsxXStlWzFdLDE2KSxwYXJzZUludChlWzJdK2VbMl0sMTYpLHBhcnNlSW50KGVbM10rZVszXSwxNiksZVs0XT8ocGFyc2VJbnQoZVs0XStlWzRdLDE2KS8yNTUpLnRvRml4ZWQoMik6MV19fSx7cmU6L2hzbGE\/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg\/OlwuXGQrKT8pXHMqKT9cKS8sc3BhY2U6ImhzbGEiLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF1dfX1dLHA9aC5Db2xvcj1mdW5jdGlvbihlLHQsaSxzKXtyZXR1cm4gbmV3IGguQ29sb3IuZm4ucGFyc2UoZSx0LGkscyl9LGc9e3JnYmE6e3Byb3BzOntyZWQ6e2lkeDowLHR5cGU6ImJ5dGUifSxncmVlbjp7aWR4OjEsdHlwZToiYnl0ZSJ9LGJsdWU6e2lkeDoyLHR5cGU6ImJ5dGUifX19LGhzbGE6e3Byb3BzOntodWU6e2lkeDowLHR5cGU6ImRlZ3JlZXMifSxzYXR1cmF0aW9uOntpZHg6MSx0eXBlOiJwZXJjZW50In0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOiJwZXJjZW50In19fX0sbT17Ynl0ZTp7Zmxvb3I6ITAsbWF4OjI1NX0scGVyY2VudDp7bWF4OjF9LGRlZ3JlZXM6e21vZDozNjAsZmxvb3I6ITB9fSx2PXAuc3VwcG9ydD17fSxfPWgoIjxwPiIpWzBdLHk9aC5lYWNoO2Z1bmN0aW9uIGIoZSl7cmV0dXJuIG51bGw9PWU\/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGU\/bFtjLmNhbGwoZSldfHwib2JqZWN0Ijp0eXBlb2YgZX1mdW5jdGlvbiB4KGUsdCxpKXt2YXIgcz1tW3QudHlwZV18fHt9O3JldHVybiBudWxsPT1lP2l8fCF0LmRlZj9udWxsOnQuZGVmOihlPXMuZmxvb3I\/fn5lOnBhcnNlRmxvYXQoZSksaXNOYU4oZSk\/dC5kZWY6cy5tb2Q\/KGUrcy5tb2QpJXMubW9kOk1hdGgubWluKHMubWF4LE1hdGgubWF4KDAsZSkpKX1mdW5jdGlvbiB3KHMpe3ZhciBuPXAoKSxhPW4uX3JnYmE9W107cmV0dXJuIHM9cy50b0xvd2VyQ2FzZSgpLHkoZixmdW5jdGlvbihlLHQpe3ZhciBpPXQucmUuZXhlYyhzKSxpPWkmJnQucGFyc2UoaSksdD10LnNwYWNlfHwicmdiYSI7aWYoaSlyZXR1cm4gaT1uW3RdKGkpLG5bZ1t0XS5jYWNoZV09aVtnW3RdLmNhY2hlXSxhPW4uX3JnYmE9aS5fcmdiYSwhMX0pLGEubGVuZ3RoPygiMCwwLDAsMCI9PT1hLmpvaW4oKSYmaC5leHRlbmQoYSxILnRyYW5zcGFyZW50KSxuKTpIW3NdfWZ1bmN0aW9uIEMoZSx0LGkpe3JldHVybiA2KihpPShpKzEpJTEpPDE\/ZSsodC1lKSppKjY6MippPDE\/dDozKmk8Mj9lKyh0LWUpKigyLzMtaSkqNjplfV8uc3R5bGUuY3NzVGV4dD0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEsMSwxLC41KSIsdi5yZ2JhPS0xPF8uc3R5bGUuYmFja2dyb3VuZENvbG9yLmluZGV4T2YoInJnYmEiKSx5KGcsZnVuY3Rpb24oZSx0KXt0LmNhY2hlPSJfIitlLHQucHJvcHMuYWxwaGE9e2lkeDozLHR5cGU6InBlcmNlbnQiLGRlZjoxfX0pLGguZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtsWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pLChwLmZuPWguZXh0ZW5kKHAucHJvdG90eXBlLHtwYXJzZTpmdW5jdGlvbihuLGUsdCxpKXtpZih2b2lkIDA9PT1uKXJldHVybiB0aGlzLl9yZ2JhPVtudWxsLG51bGwsbnVsbCxudWxsXSx0aGlzOyhuLmpxdWVyeXx8bi5ub2RlVHlwZSkmJihuPWgobikuY3NzKGUpLGU9dm9pZCAwKTt2YXIgYT10aGlzLHM9YihuKSxvPXRoaXMuX3JnYmE9W107cmV0dXJuIHZvaWQgMCE9PWUmJihuPVtuLGUsdCxpXSxzPSJhcnJheSIpLCJzdHJpbmciPT09cz90aGlzLnBhcnNlKHcobil8fEguX2RlZmF1bHQpOiJhcnJheSI9PT1zPyh5KGcucmdiYS5wcm9wcyxmdW5jdGlvbihlLHQpe29bdC5pZHhdPXgoblt0LmlkeF0sdCl9KSx0aGlzKToib2JqZWN0Ij09PXM\/KHkoZyxuIGluc3RhbmNlb2YgcD9mdW5jdGlvbihlLHQpe25bdC5jYWNoZV0mJihhW3QuY2FjaGVdPW5bdC5jYWNoZV0uc2xpY2UoKSl9OmZ1bmN0aW9uKGUsaSl7dmFyIHM9aS5jYWNoZTt5KGkucHJvcHMsZnVuY3Rpb24oZSx0KXtpZighYVtzXSYmaS50byl7aWYoImFscGhhIj09PWV8fG51bGw9PW5bZV0pcmV0dXJuO2Fbc109aS50byhhLl9yZ2JhKX1hW3NdW3QuaWR4XT14KG5bZV0sdCwhMCl9KSxhW3NdJiZoLmluQXJyYXkobnVsbCxhW3NdLnNsaWNlKDAsMykpPDAmJihudWxsPT1hW3NdWzNdJiYoYVtzXVszXT0xKSxpLmZyb20mJihhLl9yZ2JhPWkuZnJvbShhW3NdKSkpfSksdGhpcyk6dm9pZCAwfSxpczpmdW5jdGlvbihlKXt2YXIgbj1wKGUpLGE9ITAsbz10aGlzO3JldHVybiB5KGcsZnVuY3Rpb24oZSx0KXt2YXIgaSxzPW5bdC5jYWNoZV07cmV0dXJuIHMmJihpPW9bdC5jYWNoZV18fHQudG8mJnQudG8oby5fcmdiYSl8fFtdLHkodC5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKG51bGwhPXNbdC5pZHhdKXJldHVybiBhPXNbdC5pZHhdPT09aVt0LmlkeF19KSksYX0pLGF9LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBpPVtdLHM9dGhpcztyZXR1cm4geShnLGZ1bmN0aW9uKGUsdCl7c1t0LmNhY2hlXSYmaS5wdXNoKGUpfSksaS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLG8pe3ZhciB0PShsPXAoZSkpLl9zcGFjZSgpLGk9Z1t0XSxlPTA9PT10aGlzLmFscGhhKCk\/cCgidHJhbnNwYXJlbnQiKTp0aGlzLHI9ZVtpLmNhY2hlXXx8aS50byhlLl9yZ2JhKSxoPXIuc2xpY2UoKSxsPWxbaS5jYWNoZV07cmV0dXJuIHkoaS5wcm9wcyxmdW5jdGlvbihlLHQpe3ZhciBpPXQuaWR4LHM9cltpXSxuPWxbaV0sYT1tW3QudHlwZV18fHt9O251bGwhPT1uJiYobnVsbD09PXM\/aFtpXT1uOihhLm1vZCYmKG4tcz5hLm1vZC8yP3MrPWEubW9kOnMtbj5hLm1vZC8yJiYocy09YS5tb2QpKSxoW2ldPXgoKG4tcykqbytzLHQpKSl9KSx0aGlzW3RdKGgpfSxibGVuZDpmdW5jdGlvbihlKXtpZigxPT09dGhpcy5fcmdiYVszXSlyZXR1cm4gdGhpczt2YXIgdD10aGlzLl9yZ2JhLnNsaWNlKCksaT10LnBvcCgpLHM9cChlKS5fcmdiYTtyZXR1cm4gcChoLm1hcCh0LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDEtaSkqc1t0XStpKmV9KSl9LHRvUmdiYVN0cmluZzpmdW5jdGlvbigpe3ZhciBlPSJyZ2JhKCIsdD1oLm1hcCh0aGlzLl9yZ2JhLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGwhPWU\/ZToyPHQ\/MTowfSk7cmV0dXJuIDE9PT10WzNdJiYodC5wb3AoKSxlPSJyZ2IoIiksZSt0LmpvaW4oKSsiKSJ9LHRvSHNsYVN0cmluZzpmdW5jdGlvbigpe3ZhciBlPSJoc2xhKCIsdD1oLm1hcCh0aGlzLmhzbGEoKSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lJiYoZT0yPHQ\/MTowKSxlPXQmJnQ8Mz9NYXRoLnJvdW5kKDEwMCplKSsiJSI6ZX0pO3JldHVybiAxPT09dFszXSYmKHQucG9wKCksZT0iaHNsKCIpLGUrdC5qb2luKCkrIikifSx0b0hleFN0cmluZzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9yZ2JhLnNsaWNlKCksaT10LnBvcCgpO3JldHVybiBlJiZ0LnB1c2gofn4oMjU1KmkpKSwiIyIraC5tYXAodCxmdW5jdGlvbihlKXtyZXR1cm4gMT09PShlPShlfHwwKS50b1N0cmluZygxNikpLmxlbmd0aD8iMCIrZTplfSkuam9pbigiIil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl9yZ2JhWzNdPyJ0cmFuc3BhcmVudCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSkucGFyc2UucHJvdG90eXBlPXAuZm4sZy5oc2xhLnRvPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMjU1LGk9ZVsxXS8yNTUscz1lWzJdLzI1NSxuPWVbM10sYT1NYXRoLm1heCh0LGkscyksbz1NYXRoLm1pbih0LGkscykscj1hLW8saD1hK28sZT0uNSpoLGk9bz09PWE\/MDp0PT09YT82MCooaS1zKS9yKzM2MDppPT09YT82MCoocy10KS9yKzEyMDo2MCoodC1pKS9yKzI0MCxoPTA9PXI\/MDplPD0uNT9yL2g6ci8oMi1oKTtyZXR1cm5bTWF0aC5yb3VuZChpKSUzNjAsaCxlLG51bGw9PW4\/MTpuXX0sZy5oc2xhLmZyb209ZnVuY3Rpb24oZSl7aWYobnVsbD09ZVswXXx8bnVsbD09ZVsxXXx8bnVsbD09ZVsyXSlyZXR1cm5bbnVsbCxudWxsLG51bGwsZVszXV07dmFyIHQ9ZVswXS8zNjAsaT1lWzFdLHM9ZVsyXSxlPWVbM10saT1zPD0uNT9zKigxK2kpOnMraS1zKmkscz0yKnMtaTtyZXR1cm5bTWF0aC5yb3VuZCgyNTUqQyhzLGksdCsxLzMpKSxNYXRoLnJvdW5kKDI1NSpDKHMsaSx0KSksTWF0aC5yb3VuZCgyNTUqQyhzLGksdC0xLzMpKSxlXX0seShnLGZ1bmN0aW9uKGgsZSl7dmFyIHQ9ZS5wcm9wcyxhPWUuY2FjaGUsbz1lLnRvLHI9ZS5mcm9tO3AuZm5baF09ZnVuY3Rpb24oZSl7aWYobyYmIXRoaXNbYV0mJih0aGlzW2FdPW8odGhpcy5fcmdiYSkpLHZvaWQgMD09PWUpcmV0dXJuIHRoaXNbYV0uc2xpY2UoKTt2YXIgaT1iKGUpLHM9ImFycmF5Ij09PWl8fCJvYmplY3QiPT09aT9lOmFyZ3VtZW50cyxuPXRoaXNbYV0uc2xpY2UoKTtyZXR1cm4geSh0LGZ1bmN0aW9uKGUsdCl7ZT1zWyJvYmplY3QiPT09aT9lOnQuaWR4XTtudWxsPT1lJiYoZT1uW3QuaWR4XSksblt0LmlkeF09eChlLHQpfSkscj8oKGU9cChyKG4pKSlbYV09bixlKTpwKG4pfSx5KHQsZnVuY3Rpb24obyxyKXtwLmZuW29dfHwocC5mbltvXT1mdW5jdGlvbihlKXt2YXIgdCxpPWIoZSkscz0iYWxwaGEiPT09bz90aGlzLl9oc2xhPyJoc2xhIjoicmdiYSI6aCxuPXRoaXNbc10oKSxhPW5bci5pZHhdO3JldHVybiJ1bmRlZmluZWQiPT09aT9hOigiZnVuY3Rpb24iPT09aSYmKGk9YihlPWUuY2FsbCh0aGlzLGEpKSksbnVsbD09ZSYmci5lbXB0eT90aGlzOigic3RyaW5nIj09PWkmJih0PWQuZXhlYyhlKSkmJihlPWErcGFyc2VGbG9hdCh0WzJdKSooIisiPT09dFsxXT8xOi0xKSksbltyLmlkeF09ZSx0aGlzW3NdKG4pKSl9KX0pfSksKHAuaG9vaz1mdW5jdGlvbihlKXtlPWUuc3BsaXQoIiAiKTt5KGUsZnVuY3Rpb24oZSxhKXtoLmNzc0hvb2tzW2FdPXtzZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49IiI7aWYoInRyYW5zcGFyZW50IiE9PXQmJigic3RyaW5nIiE9PWIodCl8fChpPXcodCkpKSl7aWYodD1wKGl8fHQpLCF2LnJnYmEmJjEhPT10Ll9yZ2JhWzNdKXtmb3Iocz0iYmFja2dyb3VuZENvbG9yIj09PWE\/ZS5wYXJlbnROb2RlOmU7KCIiPT09bnx8InRyYW5zcGFyZW50Ij09PW4pJiZzJiZzLnN0eWxlOyl0cnl7bj1oLmNzcyhzLCJiYWNrZ3JvdW5kQ29sb3IiKSxzPXMucGFyZW50Tm9kZX1jYXRjaChlKXt9dD10LmJsZW5kKG4mJiJ0cmFuc3BhcmVudCIhPT1uP246Il9kZWZhdWx0Iil9dD10LnRvUmdiYVN0cmluZygpfXRyeXtlLnN0eWxlW2FdPXR9Y2F0Y2goZSl7fX19LGguZnguc3RlcFthXT1mdW5jdGlvbihlKXtlLmNvbG9ySW5pdHx8KGUuc3RhcnQ9cChlLmVsZW0sYSksZS5lbmQ9cChlLmVuZCksZS5jb2xvckluaXQ9ITApLGguY3NzSG9va3NbYV0uc2V0KGUuZWxlbSxlLnN0YXJ0LnRyYW5zaXRpb24oZS5lbmQsZS5wb3MpKX19KX0pKCJiYWNrZ3JvdW5kQ29sb3IgYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyTGVmdENvbG9yIGJvcmRlclJpZ2h0Q29sb3IgYm9yZGVyVG9wQ29sb3IgY29sb3IgY29sdW1uUnVsZUNvbG9yIG91dGxpbmVDb2xvciB0ZXh0RGVjb3JhdGlvbkNvbG9yIHRleHRFbXBoYXNpc0NvbG9yIiksaC5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGkpe3ZhciBzPXt9O3JldHVybiB5KFsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sZnVuY3Rpb24oZSx0KXtzWyJib3JkZXIiK3QrIkNvbG9yIl09aX0pLHN9fTt2YXIgTSxrLEQsRSxTLE8sSSxOLEEsUCxIPWguQ29sb3IubmFtZXM9e2FxdWE6IiMwMGZmZmYiLGJsYWNrOiIjMDAwMDAwIixibHVlOiIjMDAwMGZmIixmdWNoc2lhOiIjZmYwMGZmIixncmF5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsbGltZToiIzAwZmYwMCIsbWFyb29uOiIjODAwMDAwIixuYXZ5OiIjMDAwMDgwIixvbGl2ZToiIzgwODAwMCIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHNpbHZlcjoiI2MwYzBjMCIsdGVhbDoiIzAwODA4MCIsd2hpdGU6IiNmZmZmZmYiLHllbGxvdzoiI2ZmZmYwMCIsdHJhbnNwYXJlbnQ6W251bGwsbnVsbCxudWxsLDBdLF9kZWZhdWx0OiIjZmZmZmZmIn0sVD0idWktZWZmZWN0cy0iLFc9InVpLWVmZmVjdHMtc3R5bGUiLFY9InVpLWVmZmVjdHMtYW5pbWF0ZWQiO2Z1bmN0aW9uIEYoZSl7dmFyIHQsaSxzPWUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldz9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpOmUuY3VycmVudFN0eWxlLG49e307aWYocyYmcy5sZW5ndGgmJnNbMF0mJnNbc1swXV0pZm9yKGk9cy5sZW5ndGg7aS0tOykic3RyaW5nIj09dHlwZW9mIHNbdD1zW2ldXSYmKG5bdC5yZXBsYWNlKC8tKFtcZGEtel0pL2dpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pXT1zW3RdKTtlbHNlIGZvcih0IGluIHMpInN0cmluZyI9PXR5cGVvZiBzW3RdJiYoblt0XT1zW3RdKTtyZXR1cm4gbn1mdW5jdGlvbiBxKGUsdCxpLHMpe3JldHVybiBlPXtlZmZlY3Q6ZT11LmlzUGxhaW5PYmplY3QoZSk\/KHQ9ZSkuZWZmZWN0OmV9LCJmdW5jdGlvbiI9PXR5cGVvZih0PW51bGw9PXQ\/e306dCkmJihzPXQsaT1udWxsLHQ9e30pLCJudW1iZXIiIT10eXBlb2YgdCYmIXUuZnguc3BlZWRzW3RdfHwocz1pLGk9dCx0PXt9KSwiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHM9aSxpPW51bGwpLHQmJnUuZXh0ZW5kKGUsdCksaT1pfHx0LmR1cmF0aW9uLGUuZHVyYXRpb249dS5meC5vZmY\/MDoibnVtYmVyIj09dHlwZW9mIGk\/aTppIGluIHUuZnguc3BlZWRzP3UuZnguc3BlZWRzW2ldOnUuZnguc3BlZWRzLl9kZWZhdWx0LGUuY29tcGxldGU9c3x8dC5jb21wbGV0ZSxlfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIWV8fCJudW1iZXIiPT10eXBlb2YgZXx8dS5meC5zcGVlZHNbZV18fCgic3RyaW5nIj09dHlwZW9mIGUmJiF1LmVmZmVjdHMuZWZmZWN0W2VdfHwoImZ1bmN0aW9uIj09dHlwZW9mIGV8fCJvYmplY3QiPT10eXBlb2YgZSYmIWUuZWZmZWN0KSl9ZnVuY3Rpb24gQihlLHQpe3ZhciBpPXQub3V0ZXJXaWR0aCgpLHQ9dC5vdXRlckhlaWdodCgpLGU9L15yZWN0XCgoLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0byksP1xzKigtP1xkKlwuP1xkKnB4fC0\/XGQrJXxhdXRvKSw\/XHMqKC0\/XGQqXC4\/XGQqcHh8LT9cZCslfGF1dG8pLD9ccyooLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0bylcKSQvLmV4ZWMoZSl8fFsiIiwwLGksdCwwXTtyZXR1cm57dG9wOnBhcnNlRmxvYXQoZVsxXSl8fDAscmlnaHQ6ImF1dG8iPT09ZVsyXT9pOnBhcnNlRmxvYXQoZVsyXSksYm90dG9tOiJhdXRvIj09PWVbM10\/dDpwYXJzZUZsb2F0KGVbM10pLGxlZnQ6cGFyc2VGbG9hdChlWzRdKXx8MH19dS5lZmZlY3RzPXtlZmZlY3Q6e319LEU9WyJhZGQiLCJyZW1vdmUiLCJ0b2dnbGUiXSxTPXtib3JkZXI6MSxib3JkZXJCb3R0b206MSxib3JkZXJDb2xvcjoxLGJvcmRlckxlZnQ6MSxib3JkZXJSaWdodDoxLGJvcmRlclRvcDoxLGJvcmRlcldpZHRoOjEsbWFyZ2luOjEscGFkZGluZzoxfSx1LmVhY2goWyJib3JkZXJMZWZ0U3R5bGUiLCJib3JkZXJSaWdodFN0eWxlIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJUb3BTdHlsZSJdLGZ1bmN0aW9uKGUsdCl7dS5meC5zdGVwW3RdPWZ1bmN0aW9uKGUpeygibm9uZSIhPT1lLmVuZCYmIWUuc2V0QXR0cnx8MT09PWUucG9zJiYhZS5zZXRBdHRyKSYmKGguc3R5bGUoZS5lbGVtLHQsZS5lbmQpLGUuc2V0QXR0cj0hMCl9fSksdS5mbi5hZGRCYWNrfHwodS5mbi5hZGRCYWNrPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFkZChudWxsPT1lP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGUpKX0pLHUuZWZmZWN0cy5hbmltYXRlQ2xhc3M9ZnVuY3Rpb24obixlLHQsaSl7dmFyIGE9dS5zcGVlZChlLHQsaSk7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgaT11KHRoaXMpLGU9aS5hdHRyKCJjbGFzcyIpfHwiIix0PSh0PWEuY2hpbGRyZW4\/aS5maW5kKCIqIikuYWRkQmFjaygpOmkpLm1hcChmdW5jdGlvbigpe3JldHVybntlbDp1KHRoaXMpLHN0YXJ0OkYodGhpcyl9fSkscz1mdW5jdGlvbigpe3UuZWFjaChFLGZ1bmN0aW9uKGUsdCl7blt0XSYmaVt0KyJDbGFzcyJdKG5bdF0pfSl9O3MoKSx0PXQubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kPUYodGhpcy5lbFswXSksdGhpcy5kaWZmPWZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPXt9O2ZvcihpIGluIHQpcz10W2ldLGVbaV0hPT1zJiYoU1tpXXx8IXUuZnguc3RlcFtpXSYmaXNOYU4ocGFyc2VGbG9hdChzKSl8fChuW2ldPXMpKTtyZXR1cm4gbn0odGhpcy5zdGFydCx0aGlzLmVuZCksdGhpc30pLGkuYXR0cigiY2xhc3MiLGUpLHQ9dC5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dS5EZWZlcnJlZCgpLGk9dS5leHRlbmQoe30sYSx7cXVldWU6ITEsY29tcGxldGU6ZnVuY3Rpb24oKXt0LnJlc29sdmUoZSl9fSk7cmV0dXJuIHRoaXMuZWwuYW5pbWF0ZSh0aGlzLmRpZmYsaSksdC5wcm9taXNlKCl9KSx1LndoZW4uYXBwbHkodSx0LmdldCgpKS5kb25lKGZ1bmN0aW9uKCl7cygpLHUuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsO3UuZWFjaCh0aGlzLmRpZmYsZnVuY3Rpb24oZSl7dC5jc3MoZSwiIil9KX0pLGEuY29tcGxldGUuY2FsbChpWzBdKX0pfSl9LHUuZm4uZXh0ZW5kKHthZGRDbGFzczooRD11LmZuLmFkZENsYXNzLGZ1bmN0aW9uKGUsdCxpLHMpe3JldHVybiB0P3UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6ZX0sdCxpLHMpOkQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkscmVtb3ZlQ2xhc3M6KGs9dS5mbi5yZW1vdmVDbGFzcyxmdW5jdGlvbihlLHQsaSxzKXtyZXR1cm4gMTxhcmd1bWVudHMubGVuZ3RoP3UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHtyZW1vdmU6ZX0sdCxpLHMpOmsuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksdG9nZ2xlQ2xhc3M6KE09dS5mbi50b2dnbGVDbGFzcyxmdW5jdGlvbihlLHQsaSxzLG4pe3JldHVybiJib29sZWFuIj09dHlwZW9mIHR8fHZvaWQgMD09PXQ\/aT91LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx0P3thZGQ6ZX06e3JlbW92ZTplfSxpLHMsbik6TS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse3RvZ2dsZTplfSx0LGkscyl9KSxzd2l0Y2hDbGFzczpmdW5jdGlvbihlLHQsaSxzLG4pe3JldHVybiB1LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOnQscmVtb3ZlOmV9LGkscyxuKX19KSx1LmV4cHImJnUuZXhwci5wc2V1ZG9zJiZ1LmV4cHIucHNldWRvcy5hbmltYXRlZCYmKHUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkPShPPXUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkLGZ1bmN0aW9uKGUpe3JldHVybiEhdShlKS5kYXRhKFYpfHxPKGUpfSkpLCExIT09dS51aUJhY2tDb21wYXQmJnUuZXh0ZW5kKHUuZWZmZWN0cyx7c2F2ZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgaT0wLHM9dC5sZW5ndGg7aTxzO2krKyludWxsIT09dFtpXSYmZS5kYXRhKFQrdFtpXSxlWzBdLnN0eWxlW3RbaV1dKX0scmVzdG9yZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSxzPTAsbj10Lmxlbmd0aDtzPG47cysrKW51bGwhPT10W3NdJiYoaT1lLmRhdGEoVCt0W3NdKSxlLmNzcyh0W3NdLGkpKX0sc2V0TW9kZTpmdW5jdGlvbihlLHQpe3JldHVybiB0PSJ0b2dnbGUiPT09dD9lLmlzKCI6aGlkZGVuIik\/InNob3ciOiJoaWRlIjp0fSxjcmVhdGVXcmFwcGVyOmZ1bmN0aW9uKGkpe2lmKGkucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSlyZXR1cm4gaS5wYXJlbnQoKTt2YXIgcz17d2lkdGg6aS5vdXRlcldpZHRoKCEwKSxoZWlnaHQ6aS5vdXRlckhlaWdodCghMCksZmxvYXQ6aS5jc3MoImZsb2F0Iil9LGU9dSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygidWktZWZmZWN0cy13cmFwcGVyIikuY3NzKHtmb250U2l6ZToiMTAwJSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjoibm9uZSIsbWFyZ2luOjAscGFkZGluZzowfSksdD17d2lkdGg6aS53aWR0aCgpLGhlaWdodDppLmhlaWdodCgpfSxuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7dHJ5e24uaWR9Y2F0Y2goZSl7bj1kb2N1bWVudC5ib2R5fXJldHVybiBpLndyYXAoZSksaVswXSE9PW4mJiF1LmNvbnRhaW5zKGlbMF0sbil8fHUobikudHJpZ2dlcigiZm9jdXMiKSxlPWkucGFyZW50KCksInN0YXRpYyI9PT1pLmNzcygicG9zaXRpb24iKT8oZS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KSxpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pKToodS5leHRlbmQocyx7cG9zaXRpb246aS5jc3MoInBvc2l0aW9uIiksekluZGV4OmkuY3NzKCJ6LWluZGV4Iil9KSx1LmVhY2goWyJ0b3AiLCJsZWZ0IiwiYm90dG9tIiwicmlnaHQiXSxmdW5jdGlvbihlLHQpe3NbdF09aS5jc3ModCksaXNOYU4ocGFyc2VJbnQoc1t0XSwxMCkpJiYoc1t0XT0iYXV0byIpfSksaS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsdG9wOjAsbGVmdDowLHJpZ2h0OiJhdXRvIixib3R0b206ImF1dG8ifSkpLGkuY3NzKHQpLGUuY3NzKHMpLnNob3coKX0scmVtb3ZlV3JhcHBlcjpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3JldHVybiBlLnBhcmVudCgpLmlzKCIudWktZWZmZWN0cy13cmFwcGVyIikmJihlLnBhcmVudCgpLnJlcGxhY2VXaXRoKGUpLGVbMF0hPT10JiYhdS5jb250YWlucyhlWzBdLHQpfHx1KHQpLnRyaWdnZXIoImZvY3VzIikpLGV9fSksdS5leHRlbmQodS5lZmZlY3RzLHt2ZXJzaW9uOiIxLjEzLjIiLGRlZmluZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIGl8fChpPXQsdD0iZWZmZWN0IiksdS5lZmZlY3RzLmVmZmVjdFtlXT1pLHUuZWZmZWN0cy5lZmZlY3RbZV0ubW9kZT10LGl9LHNjYWxlZERpbWVuc2lvbnM6ZnVuY3Rpb24oZSx0LGkpe2lmKDA9PT10KXJldHVybntoZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTt2YXIgcz0iaG9yaXpvbnRhbCIhPT1pPyh0fHwxMDApLzEwMDoxLHQ9InZlcnRpY2FsIiE9PWk\/KHR8fDEwMCkvMTAwOjE7cmV0dXJue2hlaWdodDplLmhlaWdodCgpKnQsd2lkdGg6ZS53aWR0aCgpKnMsb3V0ZXJIZWlnaHQ6ZS5vdXRlckhlaWdodCgpKnQsb3V0ZXJXaWR0aDplLm91dGVyV2lkdGgoKSpzfX0sY2xpcFRvQm94OmZ1bmN0aW9uKGUpe3JldHVybnt3aWR0aDplLmNsaXAucmlnaHQtZS5jbGlwLmxlZnQsaGVpZ2h0OmUuY2xpcC5ib3R0b20tZS5jbGlwLnRvcCxsZWZ0OmUuY2xpcC5sZWZ0LHRvcDplLmNsaXAudG9wfX0sdW5zaGlmdDpmdW5jdGlvbihlLHQsaSl7dmFyIHM9ZS5xdWV1ZSgpOzE8dCYmcy5zcGxpY2UuYXBwbHkocyxbMSwwXS5jb25jYXQocy5zcGxpY2UodCxpKSkpLGUuZGVxdWV1ZSgpfSxzYXZlU3R5bGU6ZnVuY3Rpb24oZSl7ZS5kYXRhKFcsZVswXS5zdHlsZS5jc3NUZXh0KX0scmVzdG9yZVN0eWxlOmZ1bmN0aW9uKGUpe2VbMF0uc3R5bGUuY3NzVGV4dD1lLmRhdGEoVyl8fCIiLGUucmVtb3ZlRGF0YShXKX0sbW9kZTpmdW5jdGlvbihlLHQpe2U9ZS5pcygiOmhpZGRlbiIpO3JldHVybiJ0b2dnbGUiPT09dCYmKHQ9ZT8ic2hvdyI6ImhpZGUiKSx0PShlPyJoaWRlIj09PXQ6InNob3ciPT09dCk\/Im5vbmUiOnR9LGdldEJhc2VsaW5lOmZ1bmN0aW9uKGUsdCl7dmFyIGkscztzd2l0Y2goZVswXSl7Y2FzZSJ0b3AiOmk9MDticmVhaztjYXNlIm1pZGRsZSI6aT0uNTticmVhaztjYXNlImJvdHRvbSI6aT0xO2JyZWFrO2RlZmF1bHQ6aT1lWzBdL3QuaGVpZ2h0fXN3aXRjaChlWzFdKXtjYXNlImxlZnQiOnM9MDticmVhaztjYXNlImNlbnRlciI6cz0uNTticmVhaztjYXNlInJpZ2h0IjpzPTE7YnJlYWs7ZGVmYXVsdDpzPWVbMV0vdC53aWR0aH1yZXR1cm57eDpzLHk6aX19LGNyZWF0ZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3ZhciB0LGk9ZS5jc3MoInBvc2l0aW9uIikscz1lLnBvc2l0aW9uKCk7cmV0dXJuIGUuY3NzKHttYXJnaW5Ub3A6ZS5jc3MoIm1hcmdpblRvcCIpLG1hcmdpbkJvdHRvbTplLmNzcygibWFyZ2luQm90dG9tIiksbWFyZ2luTGVmdDplLmNzcygibWFyZ2luTGVmdCIpLG1hcmdpblJpZ2h0OmUuY3NzKCJtYXJnaW5SaWdodCIpfSkub3V0ZXJXaWR0aChlLm91dGVyV2lkdGgoKSkub3V0ZXJIZWlnaHQoZS5vdXRlckhlaWdodCgpKSwvXihzdGF0aWN8cmVsYXRpdmUpLy50ZXN0KGkpJiYoaT0iYWJzb2x1dGUiLHQ9dSgiPCIrZVswXS5ub2RlTmFtZSsiPiIpLmluc2VydEFmdGVyKGUpLmNzcyh7ZGlzcGxheTovXihpbmxpbmV8cnVieSkvLnRlc3QoZS5jc3MoImRpc3BsYXkiKSk\/ImlubGluZS1ibG9jayI6ImJsb2NrIix2aXNpYmlsaXR5OiJoaWRkZW4iLG1hcmdpblRvcDplLmNzcygibWFyZ2luVG9wIiksbWFyZ2luQm90dG9tOmUuY3NzKCJtYXJnaW5Cb3R0b20iKSxtYXJnaW5MZWZ0OmUuY3NzKCJtYXJnaW5MZWZ0IiksbWFyZ2luUmlnaHQ6ZS5jc3MoIm1hcmdpblJpZ2h0IiksZmxvYXQ6ZS5jc3MoImZsb2F0Iil9KS5vdXRlcldpZHRoKGUub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodChlLm91dGVySGVpZ2h0KCkpLmFkZENsYXNzKCJ1aS1lZmZlY3RzLXBsYWNlaG9sZGVyIiksZS5kYXRhKFQrInBsYWNlaG9sZGVyIix0KSksZS5jc3Moe3Bvc2l0aW9uOmksbGVmdDpzLmxlZnQsdG9wOnMudG9wfSksdH0scmVtb3ZlUGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9VCsicGxhY2Vob2xkZXIiLGk9ZS5kYXRhKHQpO2kmJihpLnJlbW92ZSgpLGUucmVtb3ZlRGF0YSh0KSl9LGNsZWFuVXA6ZnVuY3Rpb24oZSl7dS5lZmZlY3RzLnJlc3RvcmVTdHlsZShlKSx1LmVmZmVjdHMucmVtb3ZlUGxhY2Vob2xkZXIoZSl9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24ocyxlLG4sYSl7cmV0dXJuIGE9YXx8e30sdS5lYWNoKGUsZnVuY3Rpb24oZSx0KXt2YXIgaT1zLmNzc1VuaXQodCk7MDxpWzBdJiYoYVt0XT1pWzBdKm4raVsxXSl9KSxhfX0pLHUuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PXUodGhpcyksaT11LmVmZmVjdHMubW9kZSh0LHIpfHxhO3QuZGF0YShWLCEwKSxoLnB1c2goaSksYSYmKCJzaG93Ij09PWl8fGk9PT1hJiYiaGlkZSI9PT1pKSYmdC5zaG93KCksYSYmIm5vbmUiPT09aXx8dS5lZmZlY3RzLnNhdmVTdHlsZSh0KSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpfXZhciBzPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dS5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF0sYT1uLm1vZGUsdD1zLnF1ZXVlLGk9dHx8ImZ4IixvPXMuY29tcGxldGUscj1zLm1vZGUsaD1bXTtyZXR1cm4gdS5meC5vZmZ8fCFuP3I\/dGhpc1tyXShzLmR1cmF0aW9uLG8pOnRoaXMuZWFjaChmdW5jdGlvbigpe28mJm8uY2FsbCh0aGlzKX0pOiExPT09dD90aGlzLmVhY2goZSkuZWFjaChsKTp0aGlzLnF1ZXVlKGksZSkucXVldWUoaSxsKTtmdW5jdGlvbiBsKGUpe3ZhciB0PXUodGhpcyk7ZnVuY3Rpb24gaSgpeyJmdW5jdGlvbiI9PXR5cGVvZiBvJiZvLmNhbGwodFswXSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKX1zLm1vZGU9aC5zaGlmdCgpLCExPT09dS51aUJhY2tDb21wYXR8fGE\/Im5vbmUiPT09cy5tb2RlPyh0W3JdKCksaSgpKTpuLmNhbGwodFswXSxzLGZ1bmN0aW9uKCl7dC5yZW1vdmVEYXRhKFYpLHUuZWZmZWN0cy5jbGVhblVwKHQpLCJoaWRlIj09PXMubW9kZSYmdC5oaWRlKCksaSgpfSk6KHQuaXMoIjpoaWRkZW4iKT8iaGlkZSI9PT1yOiJzaG93Ij09PXIpPyh0W3JdKCksaSgpKTpuLmNhbGwodFswXSxzLGkpfX0sc2hvdzooQT11LmZuLnNob3csZnVuY3Rpb24oZSl7aWYoTChlKSlyZXR1cm4gQS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZT1xLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZS5tb2RlPSJzaG93Iix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsZSl9KSxoaWRlOihOPXUuZm4uaGlkZSxmdW5jdGlvbihlKXtpZihMKGUpKXJldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlLm1vZGU9ImhpZGUiLHRoaXMuZWZmZWN0LmNhbGwodGhpcyxlKX0pLHRvZ2dsZTooST11LmZuLnRvZ2dsZSxmdW5jdGlvbihlKXtpZihMKGUpfHwiYm9vbGVhbiI9PXR5cGVvZiBlKXJldHVybiBJLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlLm1vZGU9InRvZ2dsZSIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLGUpfSksY3NzVW5pdDpmdW5jdGlvbihlKXt2YXIgaT10aGlzLmNzcyhlKSxzPVtdO3JldHVybiB1LmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZSx0KXswPGkuaW5kZXhPZih0KSYmKHM9W3BhcnNlRmxvYXQoaSksdF0pfSksc30sY3NzQ2xpcDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLmNzcygiY2xpcCIsInJlY3QoIitlLnRvcCsicHggIitlLnJpZ2h0KyJweCAiK2UuYm90dG9tKyJweCAiK2UubGVmdCsicHgpIik6Qih0aGlzLmNzcygiY2xpcCIpLHRoaXMpfSx0cmFuc2ZlcjpmdW5jdGlvbihlLHQpe3ZhciBpPXUodGhpcykscz11KGUudG8pLG49ImZpeGVkIj09PXMuY3NzKCJwb3NpdGlvbiIpLGE9dSgiYm9keSIpLG89bj9hLnNjcm9sbFRvcCgpOjAscj1uP2Euc2Nyb2xsTGVmdCgpOjAsYT1zLm9mZnNldCgpLGE9e3RvcDphLnRvcC1vLGxlZnQ6YS5sZWZ0LXIsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKX0scz1pLm9mZnNldCgpLGg9dSgiPGRpdiBjbGFzcz0ndWktZWZmZWN0cy10cmFuc2Zlcic+PC9kaXY+Iik7aC5hcHBlbmRUbygiYm9keSIpLmFkZENsYXNzKGUuY2xhc3NOYW1lKS5jc3Moe3RvcDpzLnRvcC1vLGxlZnQ6cy5sZWZ0LXIsaGVpZ2h0OmkuaW5uZXJIZWlnaHQoKSx3aWR0aDppLmlubmVyV2lkdGgoKSxwb3NpdGlvbjpuPyJmaXhlZCI6ImFic29sdXRlIn0pLmFuaW1hdGUoYSxlLmR1cmF0aW9uLGUuZWFzaW5nLGZ1bmN0aW9uKCl7aC5yZW1vdmUoKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmdCgpfSl9fSksdS5meC5zdGVwLmNsaXA9ZnVuY3Rpb24oZSl7ZS5jbGlwSW5pdHx8KGUuc3RhcnQ9dShlLmVsZW0pLmNzc0NsaXAoKSwic3RyaW5nIj09dHlwZW9mIGUuZW5kJiYoZS5lbmQ9QihlLmVuZCxlLmVsZW0pKSxlLmNsaXBJbml0PSEwKSx1KGUuZWxlbSkuY3NzQ2xpcCh7dG9wOmUucG9zKihlLmVuZC50b3AtZS5zdGFydC50b3ApK2Uuc3RhcnQudG9wLHJpZ2h0OmUucG9zKihlLmVuZC5yaWdodC1lLnN0YXJ0LnJpZ2h0KStlLnN0YXJ0LnJpZ2h0LGJvdHRvbTplLnBvcyooZS5lbmQuYm90dG9tLWUuc3RhcnQuYm90dG9tKStlLnN0YXJ0LmJvdHRvbSxsZWZ0OmUucG9zKihlLmVuZC5sZWZ0LWUuc3RhcnQubGVmdCkrZS5zdGFydC5sZWZ0fSl9LFA9e30sdS5lYWNoKFsiUXVhZCIsIkN1YmljIiwiUXVhcnQiLCJRdWludCIsIkV4cG8iXSxmdW5jdGlvbih0LGUpe1BbZV09ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KGUsdCsyKX19KSx1LmV4dGVuZChQLHtTaW5lOmZ1bmN0aW9uKGUpe3JldHVybiAxLU1hdGguY29zKGUqTWF0aC5QSS8yKX0sQ2lyYzpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLnNxcnQoMS1lKmUpfSxFbGFzdGljOmZ1bmN0aW9uKGUpe3JldHVybiAwPT09ZXx8MT09PWU\/ZTotTWF0aC5wb3coMiw4KihlLTEpKSpNYXRoLnNpbigoODAqKGUtMSktNy41KSpNYXRoLlBJLzE1KX0sQmFjazpmdW5jdGlvbihlKXtyZXR1cm4gZSplKigzKmUtMil9LEJvdW5jZTpmdW5jdGlvbihlKXtmb3IodmFyIHQsaT00O2U8KCh0PU1hdGgucG93KDIsLS1pKSktMSkvMTE7KTtyZXR1cm4gMS9NYXRoLnBvdyg0LDMtaSktNy41NjI1Kk1hdGgucG93KCgzKnQtMikvMjItZSwyKX19KSx1LmVhY2goUCxmdW5jdGlvbihlLHQpe3UuZWFzaW5nWyJlYXNlSW4iK2VdPXQsdS5lYXNpbmdbImVhc2VPdXQiK2VdPWZ1bmN0aW9uKGUpe3JldHVybiAxLXQoMS1lKX0sdS5lYXNpbmdbImVhc2VJbk91dCIrZV09ZnVuY3Rpb24oZSl7cmV0dXJuIGU8LjU\/dCgyKmUpLzI6MS10KC0yKmUrMikvMn19KTt1LmVmZmVjdHN9KTsKLyoqIC9qcy92YW5pbGxhanMvc3RvcmUuanMgKiovCnZhciBfX19kMmNfc3RvcmVqc19jX29uPSIyMDI2LTAyLTIwIDExOjMwOjEwIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1jKXJldHVybiBhW2JdO2M9YVtjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmFbYl19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYSxiLGMsZCl7YiYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGEsYixjLGQpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGEsYixjLGQpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe2M9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlyZXR1cm47Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuc3BsaXQoIi4iKTthPTE9PT1lLmxlbmd0aDtkPWVbMF07ZD0hYSYmZCBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIGY9MDtmPGUubGVuZ3RoLTE7ZisrKXt2YXIgZz1lW2ZdO2lmKCEoZyBpbiBkKSlyZXR1cm47ZD1kW2ddfWU9ZVtlLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2RbZV06bnVsbDtiPWIoYyk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxlLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChlKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitlKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGQsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBjPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGMudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGQpO2lmKCFkLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxkO3ZhciBlPWQudmFsdWV9Y2F0Y2goZil7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhmKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gZihnKXtnLmRvbmU\/ZChnLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZy52YWx1ZSkudGhlbihiLGMpLnRoZW4oZixlKX1mKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKY2xpZW50U3RvcmFnZT17c2V0OmZ1bmN0aW9uKGEsYixjLGQpe2M9dm9pZCAwPT09Yz8xOmM7ZD12b2lkIDA9PT1kPyJsb2NhbCI6ZDtjb25zdCBlPSJzZXNzaW9uIj09PWQ\/d2luZG93LnNlc3Npb25TdG9yYWdlOndpbmRvdy5sb2NhbFN0b3JhZ2U7dHJ5e2I9e3ZhbHVlOmJ9LCJsb2NhbCI9PT1kJiYoYyo9ODY0RTUsYi5leHBpcnk9KG5ldyBEYXRlKS5nZXRUaW1lKCkrYyksZS5zZXRJdGVtKGEsSlNPTi5zdHJpbmdpZnkoYikpfWNhdGNoKGYpe2NvbnNvbGUuZXJyb3IoYEVycm9yIHNhdmluZyB0byAke2R9IHN0b3JhZ2VgLGYpfX0sZ2V0OmZ1bmN0aW9uKGEsYil7Yj12b2lkIDA9PT1iP251bGw6Yjtjb25zdCBjPShkLGUpPT57dHJ5e2NvbnN0IGY9ZC5nZXRJdGVtKGEpO2lmKCFmKXJldHVybiBudWxsO2NvbnN0IGc9SlNPTi5wYXJzZShmKTtpZihlJiZnLmV4cGlyeSYmKG5ldyBEYXRlKS5nZXRUaW1lKCk+Zy5leHBpcnkpcmV0dXJuIGQucmVtb3ZlSXRlbShhKSxudWxsO2xldCBoOwpyZXR1cm4gbnVsbCE9KGg9Zy52YWx1ZSk\/aDpnfWNhdGNoKGYpe3JldHVybiBudWxsfX07cmV0dXJuImxvY2FsIj09PWI\/Yyh3aW5kb3cubG9jYWxTdG9yYWdlLCEwKToic2Vzc2lvbiI9PT1iP2Mod2luZG93LnNlc3Npb25TdG9yYWdlLCExKTpjKHdpbmRvdy5sb2NhbFN0b3JhZ2UsITApfHxjKHdpbmRvdy5zZXNzaW9uU3RvcmFnZSwhMSl9LHJlbW92ZTpmdW5jdGlvbihhLGIpe2I9dm9pZCAwPT09Yj9udWxsOmI7ImxvY2FsIiE9PWImJm51bGwhPT1ifHx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYSk7InNlc3Npb24iIT09YiYmbnVsbCE9PWJ8fHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGEpfX07CmNyZWF0ZURhdGFTdG9yZT1hPT57YT1hfHx7fTtpbml0PWM9Pk9iamVjdC5hc3NpZ24oe30sYyk7Y29uc3QgYj1pbml0KGEpO3JldHVybntzZXQ6ZnVuY3Rpb24oYyxkKXtiW2NdPU9iamVjdC5hc3NpZ24oe30sYltjXSxkKTtyZXR1cm4gYltjXX0sZ2V0OmZ1bmN0aW9uKGMsZCl7ZD12b2lkIDA9PT1kP251bGw6ZDtjPWMuc3BsaXQoIi4iKTtsZXQgZT1iO2Zvcihjb25zdCBmIG9mIGMpe2lmKHZvaWQgMD09PWVbZl0pcmV0dXJuIGQ7ZT1lW2ZdfXJldHVybiB2b2lkIDAhPT1lP2U6ZH0sZmV0Y2g6ZnVuY3Rpb24oYyl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBkPXlpZWxkIGZldGNoKGBodHRwczovLyR7Yi5kZWFsZXJJbmZvLmRvbWFpbn0vYWpheENvbnRyb2xsZXIvJHtjfWApO2lmKCFkLm9rKXRocm93IEVycm9yKCJOZXR3b3JrIHJlc3BvbnNlIHdhcyBub3Qgb2siKTtjb25zdCBlPXlpZWxkIGQuanNvbigpOwpiW2NdPWU7cmV0dXJuIGJbY119Y2F0Y2goZCl7dGhyb3cgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBmcm9tIHNlcnZlcjogJHtkLm1lc3NhZ2V9YCk7fX0pfSxkZWxldGU6ZnVuY3Rpb24oYyl7aWYoIWJbY10pdGhyb3cgRXJyb3IoIklEIG5vdCBmb3VuZCIpO2RlbGV0ZSBiW2NdO3JldHVybiEwfSxnZXRBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxiKX19fTsKLyoqIC9qcy9lbWFpbEhhbmRsZXIuanMgKiovCnZhciBfX19kMmNfZW1haWxIYW5kbGVyanNfY19vbj0iMjAyNi0wMi0yMCAxMTozMDoyNiI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihlLGcsYSl7aWYoZT09QXJyYXkucHJvdG90eXBlfHxlPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBlO2VbZ109YS52YWx1ZTtyZXR1cm4gZX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGUpe2U9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxlLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgZz0wO2c8ZS5sZW5ndGg7KytnKXt2YXIgYT1lW2ddO2lmKGEmJmEuTWF0aD09TWF0aClyZXR1cm4gYX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGUsZyl7dmFyIGE9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZ107aWYobnVsbD09YSlyZXR1cm4gZVtnXTthPWVbYV07cmV0dXJuIHZvaWQgMCE9PWE\/YTplW2ddfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGUsZyxhLGIpe2cmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChlLGcsYSxiKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChlLGcsYSxiKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihlLGcsYSxiKXthPSRqc2NvbXAuZ2xvYmFsO2U9ZS5zcGxpdCgiLiIpO2ZvcihiPTA7YjxlLmxlbmd0aC0xO2IrKyl7dmFyIGQ9ZVtiXTtpZighKGQgaW4gYSkpcmV0dXJuO2E9YVtkXX1lPWVbZS5sZW5ndGgtMV07Yj1hW2VdO2c9ZyhiKTtnIT1iJiZudWxsIT1nJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGEsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihlLGcsYSxiKXt2YXIgZD1lLnNwbGl0KCIuIik7ZT0xPT09ZC5sZW5ndGg7Yj1kWzBdO2I9IWUmJmIgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBjPTA7YzxkLmxlbmd0aC0xO2MrKyl7dmFyIGY9ZFtjXTtpZighKGYgaW4gYikpcmV0dXJuO2I9YltmXX1kPWRbZC5sZW5ndGgtMV07YT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09YT9iW2RdOm51bGw7Zz1nKGEpO251bGwhPWcmJihlPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KTpnIT09YSYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2RdJiYoYT0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZF09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZCk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYSsiJCIrZCksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShiLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2RdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgZT17YTohMH0sZz17fTt0cnl7cmV0dXJuIGcuX19wcm90b19fPWUsZy5hfWNhdGNoKGEpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oZSxnKXtlLl9fcHJvdG9fXz1nO2lmKGUuX19wcm90b19fIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKGUrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBlfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oZSl7dmFyIGc9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZzxlLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTplW2crK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihlKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGUpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3ZhciBnPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmVbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gZz9nLmNhbGwoZSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGUpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2UrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGUpe3RoaXMueWllbGRSZXN1bHQ9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjplLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjplfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzplfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihlLGcpe3RoaXMubmV4dEFkZHJlc3M9ZztyZXR1cm57dmFsdWU6ZX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGUsZyl7ZT0kanNjb21wLm1ha2VJdGVyYXRvcihlKTt2YXIgYT1lLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhhKTtpZihhLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1hLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9ZztlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWUsdGhpcy55aWVsZChhLnZhbHVlLGcpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGUpe3RoaXMubmV4dEFkZHJlc3M9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oZSxnKXt0aGlzLmNhdGNoQWRkcmVzc189ZTt2b2lkIDAhPWcmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1nKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGUpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWV8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oZSxnKXt0aGlzLm5leHRBZGRyZXNzPWU7dGhpcy5jYXRjaEFkZHJlc3NfPWd8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oZSl7dGhpcy5jYXRjaEFkZHJlc3NfPWV8fDA7ZT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGUsZyxhKXthP3RoaXMuZmluYWxseUNvbnRleHRzX1thXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWV8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Z3x8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGUsZyl7Zz10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGd8fDApWzBdO2lmKGc9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxnKXtpZihnLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWcuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxnLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1nLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGUpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3RoaXMub2JqZWN0Xz1lO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBnIGluIGUpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGcpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgZT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGUgaW4gdGhpcy5vYmplY3RfKXJldHVybiBlfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1lfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGUsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgZz10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGcpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGc\/Z1sicmV0dXJuIl06ZnVuY3Rpb24oYSl7cmV0dXJue3ZhbHVlOmEsZG9uZTohMH19LGUsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sZSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oZSxnLGEpe3RyeXt2YXIgYj1lLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxnKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhiKTtpZighYi5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksYjt2YXIgZD1iLnZhbHVlfWNhdGNoKGMpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oYyksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7YS5jYWxsKHRoaXMuY29udGV4dF8sZCk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgZT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6ZS52YWx1ZSxkb25lOiExfX1jYXRjaChnKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhnKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7ZT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihlLmlzRXhjZXB0aW9uKXRocm93IGUuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTplLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihlKXt0aGlzLm5leHQ9ZnVuY3Rpb24oZyl7cmV0dXJuIGUubmV4dF8oZyl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIGUudGhyb3dfKGcpfTt0aGlzLnJldHVybj1mdW5jdGlvbihnKXtyZXR1cm4gZS5yZXR1cm5fKGcpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihlLGcpe2c9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oZykpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmUucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGcsZS5wcm90b3R5cGUpO3JldHVybiBnfTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGcoYil7cmV0dXJuIGUubmV4dChiKX1mdW5jdGlvbiBhKGIpe3JldHVybiBlLnRocm93KGIpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiLGQpe2Z1bmN0aW9uIGMoZil7Zi5kb25lP2IoZi52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGYudmFsdWUpLnRoZW4oZyxhKS50aGVuKGMsZCl9YyhlLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihlKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGUpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oZSkpKX07CnZhciBlbWFpbEhhbmRsZXI9ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbihiKXt0cnl7cmV0dXJuIHdpbmRvdy50b3AubG9jYXRpb25bYl19Y2F0Y2goZCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbltiXX19LGc9ZnVuY3Rpb24oKXt0aGlzLmFjdGlvbj1mdW5jdGlvbigpe307dGhpcy5uZXh0PW51bGw7dGhpcy5fbmV4dENhbGxlZD0hMX07Zy5wcm90b3R5cGU9e2V4ZXV0ZTpmdW5jdGlvbigpeyJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5hY3Rpb24mJnRoaXMuYWN0aW9uLmNhbGwodGhpcyl9LGdvdG9OZXh0OmZ1bmN0aW9uKCl7dGhpcy5faGFzTmV4dCgpJiZ0aGlzLm5leHQuZXhldXRlKCk7dGhpcy5fbmV4dENhbGxlZD0hMDtyZXR1cm4gdGhpc30sc2V0TmV4dDpmdW5jdGlvbihiKXt0aGlzLm5leHQ9YjtyZXR1cm4gdGhpc30sc2V0QWN0aW9uOmZ1bmN0aW9uKGIpe3RoaXMuYWN0aW9uPWI7cmV0dXJuIHRoaXN9LF9oYXNOZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLm5leHQmJgohdGhpcy5fbmV4dENhbGxlZH19O3ZhciBhPXtzdWJqZWN0OiIiLGJvZHk6IiIsc2VuZFRvOiIiLHNlbmRUb0FERkZvcm1hdDoiIixzZWxlY3RlZFNlbmRUbzoiIixzZWxlY3RlZFNlbmRUb0FERkZvcm1hdDoiIixzZW5kRnJvbToiIix1c2VyRW1haWw6IiIsdHJhZGVpbjoiIixwb3B1cGRpdjoiIix1c2VyRmlyc3ROYW1lOiIiLHVzZXJMYXN0TmFtZToiIix1c2VyUGhvbmU6IiIscGhvbmVNYW5kYXRvcnk6MCxwaG9uZVZhbGlkYXRpb25BdHRlbXB0czoxLHVzZXJQb3N0YWw6IiIsdXNlckFkZHJlc3M6IiIsYmlydGhkYXRlOiIiLHVzZXJBdHRhY2htZW50UGF0aDoiIixtYWlsSUQ6ImdlbmVyaWNNYWlsIixsZWFkSW52b2tlcjoiZ2VuZXJpYyIsbGVhZEludm9rZXJTSUQ6IiIsaXNDVEE6ITEsYnV0dG9uVGV4dDoiIixyZXNldENhbGxiYWNrczpmdW5jdGlvbigpeyQuZXh0ZW5kKGEse2NhbGxiYWNrOm51bGwsb25EdXBsaWNhdGVTZW5kOiExLG9uQWZ0ZXJDb25zZW50OiExLG9uQmVmb3JlU2hvd0NvbnNlbnQ6ITF9KX0sCm1ha2U6IiIsbW9kZWw6IiIsdHJpbToiIix2aW46IiIscHJpY2U6MCx5ZWFyOjAsdmVoaWNsZVR5cGU6IiIsc3RvY2tOdW1iZXI6IiIscHVyY2hhc2VfaW50ZW50OiIiLHB1cmNoYXNlX2ludGVudF9zZWN0aW9uOiIiLGFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE6IiIscHJlZmVycmVkX2NvbnRhY3Q6IiIsY2FyaWQ6MCxjb25kaXRpb246IlVzZWQiLGxhbmd1YWdlOiIiLGlzbW9iaWxlc2l0ZToiTk8iLGlzQW1wOiJOTyIscmVmZXJlcjoiIixwb3B1cE9mZmVyVHlwZToiIixwYXJ0aWFsOiExLGZyb21GYWNlYm9vazohMSxza2lwU2VuZGluZzohMSxmcm9tT25Mb2FkOiExLHBvc3RTdWJtaXRDYWxsYmFjazoiIixyZXN1bWVBY3Rpdml0eTohMCxzdWJtaXREYXRhOiIiLHN1Ym1pdFR5cGU6Im5vcm1hbCIsbGFzdENoZWNrc3VtOiIiLGNvbnNlbnREZWFsZXI6ITEsY29uc2VudE9FTTohMSxjb25zZW50VHlwZToiSW1wbGljaXQiLGNvbnNlbnRFeHBpcmF0aW9uOiIiLGNvbnNlbnREYXRlOiIiLApjb25zZW50RnJlcXVlbmN5Oi0xLGNvbnNlbnREZXRhaWxzRlI6IiIsY29uc2VudERldGFpbHNFTjoiIixkZXRhaWxzRGVmYXVsdHM6IiIsZnJvbUFBOjAsb3duZXJJRDowLGRlcGFydG1lbnQ6IiIsc2tpcEdldERlcDohMSxkZXBhcnRtZW50QnlTdG9jazohMSxhc2tQdXJjaGFzZUludGVudDohMSxsZWFkVGl0bGVVSVRleHQ6IiIsbGVhZFRpdGxlVGV4dDoiIixnZW9sb2Nfc3RhdHVzOiIiLGdlb2xvY19sYXQ6IiIsZ2VvbG9jX2xvbmc6IiIsZ2VvbG9jX2FjY3VyYWN5Oi0xLGdlb2xvY190cmFja19zdHI6IiIsZ2VvbG9jX2VtYWlsX3N0cjoiIix0cmFuc3BvcnRPcHRpb246IiIsY2FyMl9tYWtlOiIiLGNhcjJfbW9kZWw6IiIsY2FyMl90cmltOiIiLGNhcjJfeWVhcjoiIixjYXIyX2NvbG9yOiIiLGNhcjJfb2RvbWV0ZXI6IiIsY2FyMl92aW46IiIsY2FyMl90cmFuc21pc3NvbjoiIixjYXIyX2RyaXZldHJhaW46IiIsY2FyMl9mdWVsdHlwZToiIixjb21tZW50czoiIixncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjoiIiwKaWdub3JlQ2FwdGNoYTohMSxjb250YWN0SUQ6MCxjb250YWN0QWRkcmVzczoiIixjb250YWN0Q2l0eToiIixjb250YWN0UHJvdmluY2U6IiIsY29udGFjdFppcDoiIixjb250YWN0TkFTOiIiLGNvbnRhY3RCaXJ0aDoiIixkZWFsZXJOYW1lOiIiLGdldE5ld1NlcXVlbmNlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnfSxjcmVhdGVDaGVja3N1bTpmdW5jdGlvbigpe2Zvcih2YXIgYj0iIixkPVsibWFrZSIsIm1vZGVsIiwieWVhciIsIm1haWxJRCJdLGM9MDtjPGQubGVuZ3RoO2MrKyl7dmFyIGY9ZFtjXSxrPWFbZl0sbT10eXBlb2YgaztpZigic3RyaW5nIj09bXx8Im51bWJlciI9PW0pYis9ZisiOiIraysiOyJ9ZD0iMDAwMDAwMDAgNzcwNzMwOTYgRUUwRTYxMkMgOTkwOTUxQkEgMDc2REM0MTkgNzA2QUY0OEYgRTk2M0E1MzUgOUU2NDk1QTMgMEVEQjg4MzIgNzlEQ0I4QTQgRTBENUU5MUUgOTdEMkQ5ODggMDlCNjRDMkIgN0VCMTdDQkQgRTdCODJEMDcgOTBCRjFEOTEgMURCNzEwNjQgNkFCMDIwRjIgRjNCOTcxNDggODRCRTQxREUgMUFEQUQ0N0QgNkREREU0RUIgRjRENEI1NTEgODNEMzg1QzcgMTM2Qzk4NTYgNjQ2QkE4QzAgRkQ2MkY5N0EgOEE2NUM5RUMgMTQwMTVDNEYgNjMwNjZDRDkgRkEwRjNENjMgOEQwODBERjUgM0I2RTIwQzggNEM2OTEwNUUgRDU2MDQxRTQgQTI2NzcxNzIgM0MwM0U0RDEgNEIwNEQ0NDcgRDIwRDg1RkQgQTUwQUI1NkIgMzVCNUE4RkEgNDJCMjk4NkMgREJCQkM5RDYgQUNCQ0Y5NDAgMzJEODZDRTMgNDVERjVDNzUgRENENjBEQ0YgQUJEMTNENTkgMjZEOTMwQUMgNTFERTAwM0EgQzhENzUxODAgQkZEMDYxMTYgMjFCNEY0QjUgNTZCM0M0MjMgQ0ZCQTk1OTkgQjhCREE1MEYgMjgwMkI4OUUgNUYwNTg4MDggQzYwQ0Q5QjIgQjEwQkU5MjQgMkY2RjdDODcgNTg2ODRDMTEgQzE2MTFEQUIgQjY2NjJEM0QgNzZEQzQxOTAgMDFEQjcxMDYgOThEMjIwQkMgRUZENTEwMkEgNzFCMTg1ODkgMDZCNkI1MUYgOUZCRkU0QTUgRThCOEQ0MzMgNzgwN0M5QTIgMEYwMEY5MzQgOTYwOUE4OEUgRTEwRTk4MTggN0Y2QTBEQkIgMDg2RDNEMkQgOTE2NDZDOTcgRTY2MzVDMDEgNkI2QjUxRjQgMUM2QzYxNjIgODU2NTMwRDggRjI2MjAwNEUgNkMwNjk1RUQgMUIwMUE1N0IgODIwOEY0QzEgRjUwRkM0NTcgNjVCMEQ5QzYgMTJCN0U5NTAgOEJCRUI4RUEgRkNCOTg4N0MgNjJERDFEREYgMTVEQTJENDkgOENEMzdDRjMgRkJENDRDNjUgNERCMjYxNTggM0FCNTUxQ0UgQTNCQzAwNzQgRDRCQjMwRTIgNEFERkE1NDEgM0REODk1RDcgQTREMUM0NkQgRDNENkY0RkIgNDM2OUU5NkEgMzQ2RUQ5RkMgQUQ2Nzg4NDYgREE2MEI4RDAgNDQwNDJENzMgMzMwMzFERTUgQUEwQTRDNUYgREQwRDdDQzkgNTAwNTcxM0MgMjcwMjQxQUEgQkUwQjEwMTAgQzkwQzIwODYgNTc2OEI1MjUgMjA2Rjg1QjMgQjk2NkQ0MDkgQ0U2MUU0OUYgNUVERUY5MEUgMjlEOUM5OTggQjBEMDk4MjIgQzdEN0E4QjQgNTlCMzNEMTcgMkVCNDBEODEgQjdCRDVDM0IgQzBCQTZDQUQgRURCODgzMjAgOUFCRkIzQjYgMDNCNkUyMEMgNzRCMUQyOUEgRUFENTQ3MzkgOUREMjc3QUYgMDREQjI2MTUgNzNEQzE2ODMgRTM2MzBCMTIgOTQ2NDNCODQgMEQ2RDZBM0UgN0E2QTVBQTggRTQwRUNGMEIgOTMwOUZGOUQgMEEwMEFFMjcgN0QwNzlFQjEgRjAwRjkzNDQgODcwOEEzRDIgMUUwMUYyNjggNjkwNkMyRkUgRjc2MjU3NUQgODA2NTY3Q0IgMTk2QzM2NzEgNkU2QjA2RTcgRkVENDFCNzYgODlEMzJCRTAgMTBEQTdBNUEgNjdERDRBQ0MgRjlCOURGNkYgOEVCRUVGRjkgMTdCN0JFNDMgNjBCMDhFRDUgRDZENkEzRTggQTFEMTkzN0UgMzhEOEMyQzQgNEZERkYyNTIgRDFCQjY3RjEgQTZCQzU3NjcgM0ZCNTA2REQgNDhCMjM2NEIgRDgwRDJCREEgQUYwQTFCNEMgMzYwMzRBRjYgNDEwNDdBNjAgREY2MEVGQzMgQTg2N0RGNTUgMzE2RThFRUYgNDY2OUJFNzkgQ0I2MUIzOEMgQkM2NjgzMUEgMjU2RkQyQTAgNTI2OEUyMzYgQ0MwQzc3OTUgQkIwQjQ3MDMgMjIwMjE2QjkgNTUwNTI2MkYgQzVCQTNCQkUgQjJCRDBCMjggMkJCNDVBOTIgNUNCMzZBMDQgQzJEN0ZGQTcgQjVEMENGMzEgMkNEOTlFOEIgNUJERUFFMUQgOUI2NEMyQjAgRUM2M0YyMjYgNzU2QUEzOUMgMDI2RDkzMEEgOUMwOTA2QTkgRUIwRTM2M0YgNzIwNzY3ODUgMDUwMDU3MTMgOTVCRjRBODIgRTJCODdBMTQgN0JCMTJCQUUgMENCNjFCMzggOTJEMjhFOUIgRTVENUJFMEQgN0NEQ0VGQjcgMEJEQkRGMjEgODZEM0QyRDQgRjFENEUyNDIgNjhEREIzRjggMUZEQTgzNkUgODFCRTE2Q0QgRjZCOTI2NUIgNkZCMDc3RTEgMThCNzQ3NzcgODgwODVBRTYgRkYwRjZBNzAgNjYwNjNCQ0EgMTEwMTBCNUMgOEY2NTlFRkYgRjg2MkFFNjkgNjE2QkZGRDMgMTY2Q0NGNDUgQTAwQUUyNzggRDcwREQyRUUgNEUwNDgzNTQgMzkwM0IzQzIgQTc2NzI2NjEgRDA2MDE2RjcgNDk2OTQ3NEQgM0U2RTc3REIgQUVEMTZBNEEgRDlENjVBREMgNDBERjBCNjYgMzdEODNCRjAgQTlCQ0FFNTMgREVCQjlFQzUgNDdCMkNGN0YgMzBCNUZGRTkgQkRCREYyMUMgQ0FCQUMyOEEgNTNCMzkzMzAgMjRCNEEzQTYgQkFEMDM2MDUgQ0RENzA2OTMgNTRERTU3MjkgMjNEOTY3QkYgQjM2NjdBMkUgQzQ2MTRBQjggNUQ2ODFCMDIgMkE2RjJCOTQgQjQwQkJFMzcgQzMwQzhFQTEgNUEwNURGMUIgMkQwMkVGOEQiLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0LAoxNil9KTt2YXIgbj1uXi0xO2M9MDtmb3IoZj1iLmxlbmd0aDtjPGY7YysrKW49bj4+PjheZFsobl5iLmNoYXJDb2RlQXQoYykpJjI1NV07cmV0dXJuKG5eLTEpPj4+MH0sc2V0TXVsdGlEZWFsZXJCb2R5OmZ1bmN0aW9uKGIsZCl7dmFyIGM9JCgiI3Bvc3RMZWFkTGFiZWwiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBjPyhjPWMucmVwbGFjZSgieyRNVUxUSURFQUxFUk5BTUV9IixiKS5yZXBsYWNlKCJ7JFBPU1RfTEVBRF9FTUFJTFN9IixkKSxhLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGMpLGEuZGVhbGVyTmFtZT1iKTphLmJvZHk9YS5ib2R5LnJlcGxhY2UoLzxiclxzP1wvPntcJERFQUxFUl9TRU5EVE99KGJyXHM\/XC8pPy8sIiIpLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLCIiKX0sc2hvd0NvbnNlbnQ6ZnVuY3Rpb24oYixkKXthLmdldEVtYWlsQ29uc2VudChmdW5jdGlvbihjKXt2YXIgZj1hLmdldE5ld1NlcXVlbmNlKCksaz1hLmdldE5ld1NlcXVlbmNlKCk7CmYuc2V0QWN0aW9uKGZ1bmN0aW9uKCl7dmFyIG09dGhpcyxuPSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKSx0PW4uZmluZCgic2VsZWN0Iikscj0kKCIuZGVhbGVyLXNlbGVjdC13cmFwcGVyIiksdj0xMTEyO2EuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITE7aWYoKCQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLmxlbmd0aCYmIiIhPSQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLnZhbCgpfHwkKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS5sZW5ndGgmJiIiIT0kKCIjY3VzdG9tRm9ybV9zZW5kdG9BREYiKS52YWwoKSkmJjA8PSQoIiNQQUdFSUQiKS52YWwoKS5pbmRleE9mKCJnZW5lcmljXyIpfHwwPT1uLmxlbmd0aHx8MCE9PWEuZGVhbGVyTmFtZS5sZW5ndGh8fCJKb2JPZmZlciI9PWEubWFpbElEJiYiIiE9JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHQiKS52YWwoKSlyZXR1cm4gbS5nb3RvTmV4dCgpO3ZhciBxPSQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS5sZW5ndGg\/CiQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS52YWwoKToibG9jYXRpb24iO2lmKDA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJiJDQVJERVRBSUxTIj09PSQoIiN0YXJnZXRQYWdlIikudmFsKCkmJiJsb2NhdGlvbiI9PT1xfHwoIiIhPT1hLnN0b2NrTnVtYmVyfHxhLmNhcmlkfHxhLmdldFN0b2NrTnVtYmVyKCkpJiYibG9jYXRpb24iPT09cSlyZXR1cm4gbS5nb3RvTmV4dCgpOyQoIiNtdWx0aS1kZWFsZXItbWFwIikubGVuZ3RoJiYoR29vZ2xlTWFwc1dyYXBwZXIuc2V0R29vZ2xlTWFwKCkscT0kKCIjZm9vdGVyR29vZ2xlTWFwWm9vbSIpLnZhbCgpLHE9MTxwYXJzZUludChxKSYmMTg+PXBhcnNlSW50KHEpP3BhcnNlSW50KHEpOjkscT1uZXcgR29vZ2xlTWFwc1dyYXBwZXIoe2VsZW1lbnQ6Im11bHRpLWRlYWxlci1tYXAiLGFkZHJlc3NlczoidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3Nlcz9mb290ZXJNYXBBZGRyZXNzZXM6W10sem9vbTpxLApvbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbihoLGwpe3ZhciB1PSQoYC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgYnV0dG9uW2RhdGEtZGVhbGVyaWQ9IiR7aC5kZWFsZXJJZH0iXWApO3Uub24oImNsaWNrIixmdW5jdGlvbigpe2dvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIobCwiY2xpY2siKX0pO2wuYWRkTGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyQoIi5kZWFsZXItc2VsZWN0LXdyYXBwZXIgYnV0dG9uIikucmVtb3ZlQ2xhc3MoImZvY3VzZWQiKTt2YXIgdz0kKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKTt1Lmxlbmd0aCYmKHUuYWRkQ2xhc3MoImZvY3VzZWQiKSx1WzBdLmZvY3VzKCksbXVsdGlEZWFsZXJTZWxlY3Quc2V0U2VsZWN0KHVbMF0sITEpKTtpZih3Lmxlbmd0aCl7dmFyIHg9dy5maW5kKGBvcHRpb25bZGF0YS1kZWFsZXJpZD0iJHtoLmRlYWxlcklkfSJdYCk7eC5sZW5ndGgmJncudmFsKHgudmFsKCkpfX0pOwokKGAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIG9wdGlvbltkYXRhLWRlYWxlcmlkPSIke2guZGVhbGVySWR9Il1gKS5kYXRhKCJtYXJrZXIiLGwpfSxvbkFmdGVySW5pdDpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzJiYwIT1mb290ZXJNYXBBZGRyZXNzZXMubGVuZ3RofHwkKCIjbXVsdGktZGVhbGVyLW1hcCIpLmhpZGUoKTskKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBoPSQodGhpcykuZmluZCgiOnNlbGVjdGVkIik7aC5sZW5ndGgmJmdvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIoaC5kYXRhKCJtYXJrZXIiKSwiY2xpY2siKX0pfX0pLCQoIiNtdWx0aS1kZWFsZXItbWFwIikuc2hvdygpLHEuaW5pdCgpKTt0Lm9mZigiZm9jdXMiKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7dC5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9KTsKdmFyIHA9ZnVuY3Rpb24oaCl7dmFyIGw9YS5nZXREZXAoKTtpZigiSm9iT2ZmZXIiPT1hLm1haWxJRClzd2l0Y2goJCgiI2pvYm9mZmVyX2RlcGFydG1lbnQiKS52YWwoKSl7Y2FzZSAiU2FsZXNuZXciOmw9Ik5FVyI7YnJlYWs7Y2FzZSAiU2FsZXN1c2VkIjpsPSJVU0VEIjticmVhaztjYXNlICJTZXJ2aWNlIjpsPSJTRVJWSUNFIjticmVhaztjYXNlICJQYXJ0cyI6bD0iUEFSVFMiO2JyZWFrO2RlZmF1bHQ6bD0iTkVXIn12YXIgdT0iIix3PSIiO3N3aXRjaChsKXtjYXNlICJVU0VEIjp1PWguZGF0YSgiZW1haWx1c2VkIik7dz1oLmRhdGEoImVtYWlsYWRmdXNlZCIpO2JyZWFrO2Nhc2UgIlNFUlZJQ0UiOnU9aC5kYXRhKCJlbWFpbHNlcnZpY2UiKTt3PWguZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiUEFSVFMiOnU9aC5kYXRhKCJlbWFpbHBhcnRzIil8fGguZGF0YSgiZW1haWxzZXJ2aWNlIik7dz1oLmRhdGEoImVtYWlsYWRmcGFydHMiKXx8aC5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTsKYnJlYWs7Y2FzZSAiRklOQU5DRSI6dT1oLmRhdGEoImVtYWlsZmluYW5jZSIpLHc9aC5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKX1hLnNlbmRUbz11fHxoLmRhdGEoImVtYWlsIil8fGguZGF0YSgiZW1haWx1c2VkIik7YS5zZWxlY3RlZFNlbmRUbz11fHxoLmRhdGEoImVtYWlsIil8fGguZGF0YSgiZW1haWx1c2VkIik7YS5zZW5kVG9BREZGb3JtYXQ9d3x8aC5kYXRhKCJlbWFpbGFkZiIpfHxoLmRhdGEoImVtYWlsYWRmdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9d3x8aC5kYXRhKCJlbWFpbGFkZiIpfHxoLmRhdGEoImVtYWlsYWRmdXNlZCIpO2EuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITA7YS5kZWFsZXJpZD1oLmRhdGEoImRlYWxlcmlkIik7YS5zZXRNdWx0aURlYWxlckJvZHkoaC50ZXh0KCkudHJpbSgpLGEuc2VuZFRvKX07JCgiI211dGxpQWRkcmVzc1N1Ym1pdCIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoIiI9PT10LnZhbCgpKXQuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLApyLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKTtlbHNle3ZhciBoPXQuZmluZCgiOnNlbGVjdGVkIik7cChoKTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4Iix2KTtuLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO20uZ290b05leHQoKX19KTtpZigkKCIubXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLWNsb3NlIikubGVuZ3RoKSQoIi5tdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24tY2xvc2UiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe0xlYWRzJiZPYmplY3Qua2V5cyhMZWFkcykuZm9yRWFjaChmdW5jdGlvbihoKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBMZWFkc1toXS5sZWFkSWQmJkxlYWRIYW5kbGVyKCkuZ2V0TGVhZChMZWFkc1toXS5sZWFkSWQpLmNsb3NlKCl9KTtwb3B1cFN1cGVydmlzb3ImJnBvcHVwU3VwZXJ2aXNvci5wb3B1cHMmJnBvcHVwU3VwZXJ2aXNvci5wb3B1cHMuZm9yRWFjaChmdW5jdGlvbihoKXtoJiZ0eXBlb2YgaC5pc0FjdGl2ZSgpJiYKaC5jYW5jZWwoKX0pOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLHYpO24udHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTtpZigiIiE9PWEubWFrZSYmbXVsdGlEZWFsZXJTZWxlY3QmJihxPW11bHRpRGVhbGVyU2VsZWN0LmZpbHRlcih0KSxxLmJ5TWFrZShhLm1ha2UpLHE9cS5oYXNPbmx5T25lKCkpKXJldHVybiBwKHEpLG0uZ290b05leHQoKTtyLmxlbmd0aCYmKHE9ci5maW5kKCJidXR0b24iKS50b0FycmF5KCkscS5sZW5ndGgmJihxPWZ1bmN0aW9uKGgpe2ZvcihsZXQgbD1oLmxlbmd0aC0xOzA8bDtsLS0pe2NvbnN0IHU9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihsKzEpKTtbaFtsXSxoW3VdXT1baFt1XSxoW2xdXX1yZXR1cm4gaH0ocSksci5maW5kKCJidXR0b24iKS5yZW1vdmUoKSxyLmFwcGVuZChxKSkpO24ucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwyIiwKY2xvc2VvbmVzY2FwZTohMX0pO3Y9JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIpOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLHBhcnNlSW50KG4uY3NzKCJ6LWluZGV4IikpLTEpfSk7ay5zZXRBY3Rpb24oZnVuY3Rpb24oKXt2b2lkIDA9PWImJihiPSExKTt2b2lkIDA9PWQmJihkPSExKTt2YXIgbT0kKCIjYXNQb3BVcCIpLG49ITE7KGEuYXNrUHVyY2hhc2VJbnRlbnR8fGEuc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdCgpKSYmMDwkKCIjYXNQdXJjaGFzZUludGVudCIpLmxlbmd0aCYmKG09JCgiI2FzUHVyY2hhc2VJbnRlbnQiKSxuPSEwKTtpZigwPG0ubGVuZ3RoKXtnZXRDb29raWUoInZpc2l0b3JfaGFzX2V4cGxpY2l0X2NvbnNlbnQiKTt2YXIgdD1wYXJzZUludChnZXRDb29raWUoInZpc2l0b3JfaGFzX3NlZW5fcG9wdXAiKSwxMCk7aXNOYU4odCkmJih0PTApO2Euc2tpcFNlbmRpbmc9YjthLmZyb21PbkxvYWQ9ZDtpZihjLmhhc0NvbnNlbnQpe3N3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgImluc3RhbnRSZWJhdGUiOmNhc2UgInNjcmF0Y2giOnJlYWxTdWJtaXRSZWJhdGVDb3Vwb24oKTsKYnJlYWs7ZGVmYXVsdDoiIiE9YS5wb3N0U3VibWl0Q2FsbGJhY2smJmV2YWwoYS5wb3N0U3VibWl0Q2FsbGJhY2spfWEucmVhZHlUb1NlbmQoKX1lbHNle3N3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgInNjcmF0Y2giOmNhc2UgImluc3RhbnRSZWJhdGUiOmNsb3NlUG9wdXBXaWRnZXQoKX0iZnVuY3Rpb24iPT10eXBlb2YgYS5vbkJlZm9yZVNob3dDb25zZW50JiZhLm9uQmVmb3JlU2hvd0NvbnNlbnQuY2FsbCgpO2lmKG4pYS5zaG91bGREaXNwbGF5UHVyY2hhc2VJbnRlbnRDb250YWN0KCk\/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksJCgiI2VtYWlsQ29uc2VudFN1Ym1pdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgcj17fTttLmZpbmQoImZvcm0iKS5zZXJpYWxpemVBcnJheSgpLm1hcChwPT4Ke3JbcC5uYW1lXT1wLnZhbHVlfSk7JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8sIC5zdGVwQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiJub25lIn0pOyQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPX1RFWFRfRVJST1IiKS5oaWRlKCk7aWYoMT09JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iKS5pcygiOnZpc2libGUiKSYmKCFyLnNoYXJlX3BlcnNvbmFsfHwibm8iPT1yLnNoYXJlX3BlcnNvbmFsKSlyZXR1cm4gJCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSwkKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GT19URVhUX0VSUk9SIikuc2hvdygpLCExO2lmKCFyLmhhc093blByb3BlcnR5KCJjb25zZW50IikpcmV0dXJuICQoIi5zdGVwQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLCExO3ZhciB2PXtwdXJjaGFzZV9pbnRlbnQ6LTEsc2hhcmVfcGVyc29uYWw6Im5vIixwcmVmZXJyZWRfY29udGFjdDoiIn07CmZvcih2YXIgcSBpbiB2KXYuaGFzT3duUHJvcGVydHkocSkmJihyLmhhc093blByb3BlcnR5KHEpP3NldENvb2tpZShxLHJbcV0pOnJbcV09dltxXSk7YS5wdXJjaGFzZV9pbnRlbnQ9ci5wdXJjaGFzZV9pbnRlbnQ7YS5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhPXIuc2hhcmVfcGVyc29uYWw7YS5wcmVmZXJyZWRfY29udGFjdD1yLnByZWZlcnJlZF9jb250YWN0O3Y9Ii0xIiE9ci5jb25zZW50O3E9ci5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudF9vZW0iKSYmIjEiPT1yLmNvbnNlbnRfb2VtO2Euc3VibWl0Q29uc2VudCh2LHEsImNvbXBsZXgiKTtyZXR1cm4hMX0pO2Vsc2UgJCgiI2NvbnNlbnRTdWJtaXQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKHIpe3IucHJldmVudERlZmF1bHQoKTtyPSExOyQoIi5kZWFsZXJDb25zZW50IikuY3NzKHtib3JkZXI6Im5vbmUifSk7JCgiLm9lbUNvbnNlbnQiKS5jc3Moe2JvcmRlcjoibm9uZSJ9KTt2YXIgdj17fTttLmZpbmQoImZvcm0iKS5zZXJpYWxpemVBcnJheSgpLm1hcChwPT4Ke3ZbcC5uYW1lXT1wLnZhbHVlfSk7di5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudCIpfHwoJCgiLmRlYWxlckNvbnNlbnQiKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSxyPSEwKTttLmZpbmQoImZvcm0gLm9lbUNvbnNlbnQiKS5sZW5ndGgmJiF2Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYkKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpJiYobS5maW5kKCJmb3JtIC5vZW1Db25zZW50IikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSkscj0hMCk7aWYocilyZXR1cm4hMTtyPSItMSIhPXYuY29uc2VudDt2YXIgcT12Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYiMSI9PXYuY29uc2VudF9vZW07YS5zdWJtaXRDb25zZW50KHIscSl9KTthLnByZVNlbmRJbXBsaWNpdCgpO20ucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwiLApjbG9zZW9uZXNjYXBlOiExfSl9fWVsc2UiIj09YS5jb25zZW50RGV0YWlsc0VOJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0gmJnZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIJiYoYS5jb25zZW50RGV0YWlsc0VOPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0hbMl0sYS5jb25zZW50RGV0YWlsc0ZSPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSFsyXSksYj9yZWFsU2hvd1BvcHVwV2lkZ2V0KGQpOmEucmVhZHlUb1NlbmQoKX0pO2Yuc2V0TmV4dChrKS5leGV1dGUoKX0pfSxoaWRlQ29uc2VudDpmdW5jdGlvbigpe3ZhciBiPSQoIiNhc1BvcFVwOnZpc2libGUiKTskKCIjYXNQdXJjaGFzZUludGVudCIpLmlzKCI6dmlzaWJsZSIpJiYiaGlkZGVuIiE9PSQoIiNhc1B1cmNoYXNlSW50ZW50IikuY3NzKCJ2aXNpYmlsaXR5IikmJihiPSQoIiNhc1B1cmNoYXNlSW50ZW50OnZpc2libGUiKSxjb21wbGV4PSEwKTswPGIubGVuZ3RoJiZiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSwKc2F2ZUNvbnNlbnQ6ZnVuY3Rpb24oYixkLGMsZil7JCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLCJhdXRvIik7YS5oaWRlQ29uc2VudCgpO3ZvaWQgMD09YyYmKGM9IiIpO3ZhciBrPWI\/NzMwOjE4MDtkPXtlbWFpbDphLnVzZXJFbWFpbCxmaXJzdDphLnVzZXJGaXJzdE5hbWUsbGFzdDphLnVzZXJMYXN0TmFtZSxwaG9uZTphLnVzZXJQaG9uZSxzaXRlSUQ6JCgiI3NpdGVJRCIpLnZhbCgpLGZyZXF1ZW5jeTpiPzE6LTEsZXhwbGljaXQ6Yj8xOjAsZXhwbGljaXRPRU06ZD8xOjAsaW1nOmMscmVmZXJlcjp2b2lkIDAhPWRvY3VtZW50LnJlZmVycmVyP2RvY3VtZW50LnJlZmVycmVyOiIiLGZyb206IkVIIn07aWYodm9pZCAwIT09YS5wcmVmZXJyZWRfY29udGFjdCYmIiIhPT1hLnByZWZlcnJlZF9jb250YWN0fHx2b2lkIDAhPT1nZXRDb29raWUoInByZWZlcnJlZF9jb250YWN0IikmJiIiIT09Z2V0Q29va2llKCJwcmVmZXJyZWRfY29udGFjdCIpKWM9YS5wcmVmZXJyZWRfY29udGFjdHx8CmdldENvb2tpZSgicHJlZmVycmVkX2NvbnRhY3QiKSxjPXsiVMOpbMOpcGhvbmUiOiJQSE9ORSIsQ291cnJpZWw6IkVNQUlMIn1bY118fGMsbnVsbCE9PWMmJihkLmNvbnRhY3RQcmVmZXJlbmNlPWMudG9VcHBlckNhc2UoKSk7c2V0Q29va2llKCJ2aXNpdG9yX2ZyZXF1ZW5jeV9wcmVmZXJlbmNlIiwtMSxrKTtzZXRDb29raWUoInZpc2l0b3JfY29uc2VudF9wcmVmZXJlbmNlIixiPyJFeHBsaWNpdCI6IkltcGxpY2l0IixrKTtzZXRDb29raWUoInZpc2l0b3JfaGFzX2V4cGxpY2l0X2NvbnNlbnQiLGI\/InllcyI6Im5vIixrKTtzZXRDb29raWUoInZpc2l0b3JfZW1haWxfcHJlZmVyZW5jZSIsZC5lbWFpbCw5MCk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9LDVFMyk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9hamF4L3RyYWNrRW1haWxQcmVmZXJlbmNlP3dzd2lkdGg9MCIsCmRhdGFUeXBlOiJqc29uIixkYXRhOmQsY29tcGxldGU6ZnVuY3Rpb24obSl7dHJ5e3ZhciBuPUpTT04ucGFyc2UobS5yZXNwb25zZVRleHQpO2EuY29uc2VudERldGFpbHNFTj1idG9hKG4uZGV0YWlsQ29uc2VudC5FTkdMSVNIKTthLmNvbnNlbnREZXRhaWxzRlI9YnRvYShuLmRldGFpbENvbnNlbnQuRlJFTkNIKX1jYXRjaCh0KXt9YS5wb3N0U2F2ZUNvbnNlbnQoYixmKX19KX0scG9zdFNhdmVDb25zZW50OmZ1bmN0aW9uKGIsZCl7dm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSCYmKGI\/KGEuY29uc2VudERldGFpbHNFTj1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIWzFdLGEuY29uc2VudERldGFpbHNGUj1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0hbMV0pOihhLmNvbnNlbnREZXRhaWxzRU49YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSFsyXSxhLmNvbnNlbnREZXRhaWxzRlI9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIWzJdKSk7CmlmKGQpe2lmKGEuaWdub3JlQ2FwdGNoYT9hLnJlYWR5VG9TZW5kKCk6KGEucmVjYXB0Y2hhLnJlc2V0VG9rZW4oKSxhLnJlY2FwdGNoYS5nZXRSZXNwb25zZSgpLmRvbmUoZnVuY3Rpb24oYyl7YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbj1jO2EucmVhZHlUb1NlbmQoKX0pKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkFmdGVyQ29uc2VudClhLm9uQWZ0ZXJDb25zZW50KGIpfWVsc2UgYS5oaWRlQ29uc2VudCgpfSxzdWJtaXRDb25zZW50OmZ1bmN0aW9uKGIsZCxjKXthLmNvbnNlbnREZWFsZXI9YjthLmNvbnNlbnRPRU09ZDtpZihjJiYiY29tcGxleCI9PWMpe3ZhciBmPSIiOy0xPT1hLnB1cmNoYXNlX2ludGVudD8oYz0iUGFzIGRlIHJlcG9uc2UiLGY9Ik5PX0FOU1dFUiIpOmM9YS5wdXJjaGFzZV9pbnRlbnQ7bnVsbCE9Yy5tYXRjaCgvMzAvKT8oYz0iTW9pbnMgZGUgMzAgam91cnMiLGY9IkxUXzMwX0RBWVMiKTpudWxsIT1jLm1hdGNoKC8zLyk\/KGM9Ik1vaW5zIGRlIDMgbW9pcyIsCmY9IkxUXzNfTU9OVEhTIik6bnVsbCE9Yy5tYXRjaCgvNi8pJiYobnVsbCE9Yy5tYXRjaCgvcGx1c3xvdmVyfG1vcmUvKT8oYz0iUGx1cyBkZSA2IG1vaXMiLGY9IkdUXzZfTU9OVEhTIik6KGM9Ik1vaW5zIGRlIDYgbW9pcyIsZj0iTFRfNl9NT05USFMiKSk7dmFyIGs9IlJlcG9uc2UgLSAiK2EucHVyY2hhc2VfaW50ZW50X3NlY3Rpb24udG9VcHBlckNhc2UoKTthLmxvZ0V2ZW50KCJJbnRlbnRpb25zIGFjaGF0OiAiK2MsIlBVUkNIQVNFX0lOVEVOVF8iK2YpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhbImIuX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGFjaGF0IixrLGMsMV0pfXN3aXRjaChhLnN1Ym1pdFR5cGUpe2Nhc2UgInNjcmF0Y2giOmNhc2UgImluc3RhbnRSZWJhdGUiOnJlYWxTdWJtaXRSZWJhdGVDb3Vwb24oKTticmVhaztkZWZhdWx0OiIiIT1hLnBvc3RTdWJtaXRDYWxsYmFjayYmZXZhbChhLnBvc3RTdWJtaXRDYWxsYmFjayl9InNjcmF0Y2giPT1hLnN1Ym1pdFR5cGUmJgpzaG93UG9wdXBXaWRnZXQoKTskKCIjbGFzdENvbnNlbnRQb3AiKS52YWwoYj8iRXhwbGljaXQiOiJJbXBsaWNpdCIpO2Euc2F2ZUNvbnNlbnQoYixkLCIiLCEwKX0scHJlU2VuZENoZWNrczpmdW5jdGlvbihiKXtiP2EucmVhZHlUb1NlbmQoKTphLnNob3dDb25zZW50KCl9LHNlbmRNYWlsOmZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXthLnN1Ym1pdFR5cGU9Im5vcm1hbCI7Yj0idW5kZWZpbmVkIiE9dHlwZW9mIGI\/YjohMTthLmlnbm9yZUNhcHRjaGF8fChhLnJlY2FwdGNoYS5sb2FkKCksInVuZGVmaW5lZCIhPT1ncmVjYXB0Y2hhJiYtMTxhLnJlY2FwdGNoYS53aWRnZXRJZCYmKHlpZWxkIGEucmVjYXB0Y2hhLmdldFJlc3BvbnNlKCkpKTtpZigidW5kZWZpbmVkIj09dHlwZW9mICQoIiNvbkxlYWRTdWJtaXRHZW9sb2MiKS52YWwoKXx8MSE9JCgiI29uTGVhZFN1Ym1pdEdlb2xvYyIpLnZhbCgpfHwKInVuZGVmaW5lZCI9PXR5cGVvZiBnZW9Mb2NhdG9yfHxhLnNraXBHZW9Mb2MpYS5wcmVTZW5kQ2hlY2tzKGIpO2Vsc2V7dmFyIGQ9bmV3IGdlb0xvY2F0b3IoZnVuY3Rpb24oYyl7YS5nZW9sb2Nfc3RhdHVzPWMuZ2VvbG9jX3N0YXR1czsxPT1jLnJlc3VsdCYmKGEuZ2VvbG9jX2xhdD1jLmxhdGl0dWRlLGEuZ2VvbG9jX2xvbmc9Yy5sb25naXR1ZGUsYS5nZW9sb2NfYWNjdXJhY3k9Yy5hY2N1cmFjeSxhLmdlb2xvY190cmFja19zdHI9Yy5nZW9jb2RlX2FkZHJlc3MsYS5nZW9sb2NfZW1haWxfc3RyPWMuZ2VvY29kZV9hZGRyZXNzX3N0ciwtMT09YS5ib2R5LmluZGV4T2YoIiMjR0VPTE9DQVRJT04jIyIpJiYoYS5ib2R5PXRyaW0oYS5ib2R5KS5yZXBsYWNlKC88YnI+Jm5ic3A7L2csIjxicj4iKSsiIyNHRU9MT0NBVElPTiMjIiksInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiYKYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCgiUE9TVEFMX0NPREUiLGMuZ2VvY29kZV9hZGRyZXNzX3N0cikpOyJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2xlYWRTZW50IikudmFsKCkmJihjPSQoIjxpbnB1dD4iKS5hdHRyKHtpZDoibGVhZFNlbnQiLHR5cGU6ImhpZGRlbiJ9KS52YWwoMSksJCgiI2Zvb3RlckRpdiIpLmFwcGVuZChjKSxhLnByZVNlbmRDaGVja3MoYikpfSk7ZC50cmFja0xvY2F0aW9uR0E9ITA7ZC5nZXRMb2NhdGlvbigpfX0pfSxzZW5kVXNlckVtYWlsOmZ1bmN0aW9uKGIsZCl7c2VuZFRvRGF0YT17fTt2YXIgYz1iPSIiLGY9IiIsaz0iIjtmb3IoaSBpbiBkKWlmKCJzdHJpbmciPT10eXBlb2YgaSlzd2l0Y2goaS50b0xvd2VyQ2FzZSgpKXtjYXNlICJlbWFpbHRvIjpjPWRbaV07YnJlYWs7Y2FzZSAiZW1haWxpZCI6Yj1kW2ldO2JyZWFrO2Nhc2UgImRlYWxlcmVtYWlsIjpmPWRbaV07YnJlYWs7Y2FzZSAiZGVhbGVycGhvbmUiOms9ZFtpXTticmVhazsKZGVmYXVsdDpzZW5kVG9EYXRhW2ldPWRbaV19ZD17dmFyczpKU09OLnN0cmluZ2lmeShzZW5kVG9EYXRhKSxzaXRlaWQ6JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGxhbmd1YWdlOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxlbWFpbGlkOmIsZW1haWx0bzpjLGRlYWxlckVtYWlsOmYsZGVhbGVyUGhvbmU6ayxzb3VyY2VVUkk6d2luZG93LmxvY2F0aW9uLmhyZWZ9OyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvYWpheC9hZGRNYWlsVG9TZW5kP3dzd2lkdGg9MCIsZGF0YTpkfSl9LGdldFN0b2NrTnVtYmVyOmZ1bmN0aW9uKCl7aWYoYS5zdG9ja051bWJlcilyZXR1cm4gYS5zdG9ja051bWJlcjtpZigwPCQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS5sZW5ndGgmJjA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJlsiTkVXQ0FSREVUQUlMUyIsIkNBUkRFVEFJTFMiLCJQUk9NTyIsIlZFSElDTEVFVkFMIl0uaW5jbHVkZXMoJCgiI3RhcmdldFBhZ2UiKS52YWwoKSkpe3ZhciBiPQokKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7aWYoMjxiLmxlbmd0aCl7dmFyIGQ9Yi5pbmRleE9mKCIoU3RvY2siKTstMTxkJiYoYj1iLnN1YnN0cihkKzcpLGQ9Yi5pbmRleE9mKCIpIiksLTE8ZCYmKGI9Yi5zdWJzdHIoMCxkKS50cmltKCkpKTtiKz0iIn1lbHNlIGI9IiJ9ZWxzZSBiPWdldFBhcmFtZXRlckJ5TmFtZSgic3RvY2tubyIpfHwiIjtyZXR1cm4gYi50cmltKCl9LGdldFZQRFVybEZyb21TdG9jazpmdW5jdGlvbigpe3ZhciBiPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk6JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrCiIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7dHJ5e3ZhciBkPWEuZ2V0U3RvY2tOdW1iZXIoKSxjPSIiLGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/InVzZWQiOiJvY2Nhc2lvbiIsaz1lKCJocmVmIiksbT1lKCJwcm90b2NvbCIpLG49ay5yZXBsYWNlKG0rIi8vIiwiIikuc3BsaXQoIi8iKSx0PW5bMF0scj1rLmluZGV4T2YoIi1pZCIpO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIHBhZ2V8fCJCVUlMREFORFBSSUNFIiE9cGFnZSYmIk5FV0NBUkRFVEFJTFMiIT1wYWdlKWlmKC0xPHIpe3ZhciB2PXBhcnNlSW50KGsuc3Vic3RyKHIrMykucmVwbGFjZSgiLmh0bWwiLCIiKSwxMCk7aWYoIWlzTmFOKHYpJiYwPHYpe3ZhciBxPW5bbi5sZW5ndGgtMV07LTE8cS5pbmRleE9mKHYpJiYoYz0nPGEgaHJlZj0iJyttKyIvLyIrdCsiLyIrZisiLyIrcSsiXCIgdGFyZ2V0PSdfYmxhbmsnPiIrYisiPC9hPiIpfX1lbHNlIiIhPT1hLnRyaW0mJgooYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkpO2Vsc2UiIiE9PWEudHJpbSYmKGI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW0rIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKSwKYz0nPGEgaHJlZj0iJytrKyJcIiB0YXJnZXQ9J19ibGFuayc+IitiKyI8L2E+IjtpZigiIj09YyYmMjxkLmxlbmd0aCl7dmFyIHA9JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGg9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiOyQuYWpheCh7dHlwZToiR0VUIixhc3luYzohMSxkYXRhVHlwZToianNvbiIsdXJsOiIvIitoKyIvcGhwL2dldFVSTEZyb21TdG9jay5waHA\/c2l0ZUlEPSIrcCsiJnN0b2NrPSIrZCxzdWNjZXNzOmZ1bmN0aW9uKGwpeyJvYmplY3QiPT10eXBlb2YgbCYmbnVsbCE9bCYmdm9pZCAwIT1sLm1ha2UmJihjPSc8YSBocmVmPSInK20rIi8vIit0KyIvIitmKyIvIisobC5tYWtlKyItIitsLm1vZGVsKyItIitsLnllYXIrIi1pZCIrbC5pZCsiLmh0bWxcIiB0YXJnZXQ9J19ibGFuayc+IikrbC5mdWxsKyI8L2E+Iil9fSl9IiIhPWMmJihiPWMpfWNhdGNoKGwpe2NvbnNvbGUubG9nKGwpfXJldHVybiBifSxzZXRTZW5kQW5kRGVwYXJ0bWVudE92ZXJyaWRlOmZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGQodiwKcSl7MDx2Lmxlbmd0aCYmIiIhPT12LnZhbCgpJiYoYi5zZW5kVG89di52YWwoKSk7MDxxLmxlbmd0aCYmIiIhPT1xLnZhbCgpJiYoYi5zZW5kVG9BREZGb3JtYXQ9cS52YWwoKSl9aWYoMCE9JCgiI2lzR2VuZXJpY1NlYXJjaFBhZ2UiKS5sZW5ndGgmJiJ0cnVlIj09PSQoIiNpc0dlbmVyaWNTZWFyY2hQYWdlIikudmFsKCkpe3N3aXRjaChhLm1haWxJRCl7Y2FzZSAibWVudVNlcnZpY2UiOmNhc2UgIm1lbnVDb250YWN0VXMiOmNhc2UgImhlYWRlclNlcnZpY2UiOnJldHVybn12YXIgYz0kKCIjQ1VTVE9NX1NFTkRfTEVBRCIpO2lmKDAhPT1jLmxlbmd0aCYmMCE9PWMudmFsKCkmJiJudWxsIiE9PWMudmFsKCkpe2IuZGVwYXJ0bWVudD1jLnZhbCgpLnRvVXBwZXJDYXNlKCk7dmFyIGY9JCgiI25ld0VtYWlsIiksaz0kKCIjbmV3QWRmRW1haWwiKSxtPSQoIiN0ZXh0U2VuZFRvRW1haWwiKSxuPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKSx0PSQoIiNmaW5hbmNlRW1haWwiKSxyPSQoIiNmaW5hbmNlQWRmRW1haWwiKTsKc3dpdGNoKGMudmFsKCkpe2Nhc2UgIm5ldyI6ZChmLGspO2JyZWFrO2Nhc2UgInVzZWQiOmQobSxuKTticmVhaztjYXNlICJmaW5hbmNlIjpkKHQscil9fX19LGdldEpzb25PYmplY3Q6ZnVuY3Rpb24oKXthLnJlY2FwdGNoYS5zZXRSZXNwb25zZSgpOyIiPT1hLnRyaW0mJiQoIiNwb3B1cHRyaW0iKS5sZW5ndGgmJiJ7JFBPUFVQVFJJTX0iIT0kKCIjcG9wdXB0cmltIikudmFsKCkmJihhLnRyaW09JCgiI3BvcHVwdHJpbSIpLnZhbCgpKTt2YXIgYj17fSxkPWZ1bmN0aW9uKHope3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KChudWxsIT1Db29raWVzLmdldCh6KSYmInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzLmdldCh6KT9lc2NhcGUoQ29va2llcy5nZXQoeikpOiIiKSsiIi5yZXBsYWNlKC9cKy9nLCIlMjAiKSl9Y2F0Y2goQyl7cmV0dXJuKG51bGwhPUNvb2tpZXMuZ2V0KHopJiYidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMuZ2V0KHopP2VzY2FwZShDb29raWVzLmdldCh6KSk6CiIiKSsiIi5yZXBsYWNlKC9cKy9nLCIlMjAiKX19LGM9ZCgicmVsYW5jZUlEIiksZj1kKCJ1dG1fc291cmNlIiksaz1kKCJ1dG1fY2FtcGFpZ24iKSxtPWEuZGVjb2RlVVJMUmVjdXJzaXZlbHkoZCgidXRtX2tleXdvcmQiKSksbj1kKCJ1dG1fbGFuZGluZ19mb290ZXIiKSx0PWQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKSxyPWQoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpLHY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IktleXdvcmQiOiJNb3QtY2wmIzIzMzsiLHE9MDxtLmxlbmd0aD8iWyAiK3YrIjogIittKyJdIjoiIixwPTA8bi5sZW5ndGg\/IltEZXN0aW5hdGlvbjogIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K24rIl0iOiJbRGVzdGluYXRpb246ICIrZDJjbWVkaWEuZ2V0SHR0cFRleHQoKSsiOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtuKyIgLl0iO3Y9ZCgibG9jX2ludGVyZXN0Iik7ZD0KZCgibG9jX3BoeXNpY2FsIik7dmFyIGg9dj9gbG9jX2ludGVyZXN0PSR7dn1gOiIiLGw9ZD9gbG9jX3BoeXNpY2FsPSR7ZH1gOiIiLHU9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ik9yZ2FuaWMiOiJPcmdhbmlxdWUiO3E9MDxmLmxlbmd0aD9gJHtmfSAtICR7a30gJHtxfSAke2h9ICR7bH1gOnU7cD1kMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChxKSsiICIrcDtsPSIiO2g9YS5nZXRTdG9ja051bWJlcigpOyIiIT1oJiYobD0iKFN0b2NrOiIrYS5nZXRTdG9ja051bWJlcigpKyIpIik7dT17bmV3OiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8ibmV3IjoibmV1ZiIsbmV3aW52OiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8ibmV3IjoibmV1ZiIsdXNlZDoiRU5HTElTSCI9PXNpdGVQYWdlLmxhbmc\/InVzZWQiOiJkJ29jY2FzaW9uIn07YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVVE1ERVRBSUxTfS9nLHApO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVNFUk5BTUV9L2csCmEudXNlckZpcnN0TmFtZSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVU0VSUE9TVEFMfS9nLGEudXNlclBvc3RhbC50b1VwcGVyQ2FzZSgpKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVUTURFVEFJTFN9L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkRk9PVEVSfS9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxhLmJhbmRwTGluaygpKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSTEFCRUx9L2csbCk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxsKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFZFSElDTEVfQ09ORElUSU9OfS9nLHVbYS5jb25kaXRpb24udG9Mb3dlckNhc2UoKV0pO2lmKCIiIT09YS5ib2R5KXt2YXIgdz0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aD8KJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKToiIjtsPSIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpOiQoIiNoaWRkZW5EZWFsZXJOYW1lIikudmFsKCk7dz13IT1sJiYiIiE9dz93Omw7YS5kZWFsZXJOYW1lPWEuZGVhbGVyTmFtZT9hLmRlYWxlck5hbWU6d31hLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSTkFNRX0iLGEuZGVhbGVyTmFtZSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JENVU1RPTVZFSElDTEVJTlRFUkVTVH0iLGEubWFrZSsiICIrYS5tb2RlbCsiICIrYS55ZWFyKTthLmxlYWRSZXF1ZXN0VHlwZSYmKGEuYm9keT1hLmJvZHkucmVwbGFjZUFsbCgieyRSRVFVRVNUfSIsYS5sZWFkUmVxdWVzdFR5cGUpLGEuc3ViamVjdD1hLnN1YmplY3QucmVwbGFjZUFsbCgieyRSRVFVRVNUfSIsCmEubGVhZFJlcXVlc3RUeXBlKSxhLmxlYWRSZXF1ZXN0VHlwZT0iIik7Ym9keUxvd2VyPWEuYm9keS50b0xvd2VyQ2FzZSgpO2Zvcih1PTA7LTE8Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7KXtsPWJvZHlMb3dlci5pbmRleE9mKCJyZW1vdmVlbXB0eSIpO2lmKC0xPT1sKWJyZWFrO3JwbEVuZD1ib2R5TG93ZXIuaW5kZXhPZigiPGJyPiIsbCk7cnBsU3RhcnQ9Ym9keUxvd2VyLmxhc3RJbmRleE9mKCI8YnI+IixsKTtpZigtMT09cnBsRW5kfHwtMT09cnBsU3RhcnQpYnJlYWs7cnBsU3RyaW5nPWEuYm9keS5zdWJzdHJpbmcocnBsU3RhcnQscnBsRW5kKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UocnBsU3RyaW5nLCIiKTtib2R5TG93ZXI9YS5ib2R5LnRvTG93ZXJDYXNlKCk7dSsrO2lmKDUwPHUpYnJlYWt9dT1hLmdldFZQRFVybEZyb21TdG9jaygpOzA9PXUudHJpbSgpLmxlbmd0aCYmKGw9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjp2aXNpYmxlOmZpcnN0IiksCnU9bC5sZW5ndGg\/bC52YWwoKToiIik7YS5wYXltZW50VmVoaWNsZSYmMDxhLnBheW1lbnRWZWhpY2xlLmxlbmd0aCYmKHU9YS5wYXltZW50VmVoaWNsZSk7IiI9PWEuY2FyaWQmJiQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmKGEuY2FyaWQ9JCgiI3RvcGNhcmlkIikudmFsKCkpOyIiPT1hLnZpbiYmJCgiI3Bob25ldmluIikubGVuZ3RoJiYoYS52aW49JCgiI3Bob25ldmluIikudmFsKCkpO2w9YS5ib2R5LmluZGV4T2YoIjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIpO2lmKC0xPGwpe3ZhciB4PWEuYm9keS5zdWJzdHIobCsyNykuaW5kZXhPZigiPC9zcGFuPiIpOy0xPHgmJihhLmJvZHk9YS5ib2R5LnN1YnN0cigwLGwpK3UrYS5ib2R5LnN1YnN0cihsK3grMjcrNykpfWEuYm9keT1hLmJvZHkucmVwbGFjZSgvPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgvPFwvc3Bhbj4vZywiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTRUFSQ0hFRFZFSElDTEV9L2csCnUpO2lmKCIxIj09JCgiI2hhc1ZCRENFbmFibGVkIikudmFsKCkpe2w9IiI7dT0wO3g9IiI7Q29va2llcy5nZXQoIkQyQ1VVSUQiKTtmb3IodmFyIHkgaW4gc2Vzc2lvblN0b3JhZ2UpaWYoMD09eS5pbmRleE9mKCJWRFBNVkJOUC0iKSl7dmFyIEI9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh5KTtCPj14JiYoeD1CLGw9eS5yZXBsYWNlKCJWRFBNVkJOUC0iLCIiKSl9aWYoIiI9PWwmJih4PXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19WRFBNViIpLG51bGwhPXgpKWZvcih5IGluIHg9SlNPTi5wYXJzZSh4KSx4KUI9eFt5XSwyPD1CJiZCPnUmJih1PUIsbD15KTsiIiE9bCYmLTE9PWEuYm9keS5pbmRleE9mKCJbVkJEQy1IT1RdIikmJi0xPT1hLmJvZHkuaW5kZXhPZigiW1ZCREMtTVlTXSIpJiYoeT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtsLGEuYm9keSs9J1tWQkRDLUhPVF0gPGEgaHJlZj0iJyt5KyciPicreSsiPC9hPiIpfXk9JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKTsKeT0idW5kZWZpbmVkIj09dHlwZW9mIHk\/InVzZWQiOnkudG9Mb3dlckNhc2UoKTtsPSQoIiNzZW5kRW1haWxUb0FsbERlYWxlcnMiKTtsPWwubGVuZ3RoJiYxPT1sLnZhbCgpO2w9JCgiI2hhc011bHRpcGxlRGVhbGVycyIpO2w9bC5sZW5ndGgmJjE9PWwudmFsKCk7bD0kKCIjdG9wY2FyaWQiKTtsPTA8bC5sZW5ndGg\/JCgiI3RvcGNhcmlkIikudmFsKCk6IiI7bD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7dT0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKSYmCiQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uQWRmRW1haWwiKS52YWwoKSYmJCgiI25ld1NlY3Rpb25BZGZFbWFpbCIpLnZhbCgpO3N3aXRjaCghMCl7Y2FzZSA1PGwubGVuZ3RoJiYibmV3Ij09eSYmIWEuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M6YS5zZW5kVG89bCxhLnNlbmRUb0FERkZvcm1hdD01PHUubGVuZ3RoP3U6bH1iLmxhbmd1YWdlPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKTsiZnVuY3Rpb24iPT10eXBlb2YgY2xlYW5BbmRFbmNvZGVUZXh0PyhiLnN1YmplY3Q9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuc3ViamVjdCksYi5ib2R5PWNsZWFuQW5kRW5jb2RlVGV4dChhLmJvZHkpKTooYi5zdWJqZWN0PSQuYmFzZTY0LmVuY29kZShhLnN1YmplY3QpLGIuYm9keT0kLmJhc2U2NC5lbmNvZGUoYS5ib2R5KSk7Y2xlYW5FbWFpbERlbGltaXRlcj1mdW5jdGlvbih6KXt2YXIgQz0iIjsidW5kZWZpbmVkIiE9dHlwZW9mIHomJgpudWxsIT16JiZ6Lmxlbmd0aCYmKEM9ei5zcGxpdCgiOyIpLmpvaW4oIiwiKSk7cmV0dXJuIEN9OyJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYiTkVXIj09YS5nZXREZXAoKSYmYS5zZW5kVG89PSQoIiNTSVRFVVNFREVNQUlMIikudmFsKCkmJmEuc2VuZFRvQURGRm9ybWF0PT0kKCIjU0lURVVTRURFTUFJTEFERiIpLnZhbCgpJiYoYS5zZW5kVG89JCgiI1NJVEVORVdFTUFJTCIpLnZhbCgpLGEuc2VuZFRvQURGRm9ybWF0PSQoIiNTSVRFTkVXRU1BSUxBREYiKS52YWwoKSk7Yi5zZW5kVG89YS5zZW5kVG87Yi5zZW5kVG9BREZGb3JtYXQ9Y2xlYW5FbWFpbERlbGltaXRlcihhLnNlbmRUb0FERkZvcm1hdCk7Yi5zZWxlY3RlZFNlbmRUbz1hLnNlbGVjdGVkU2VuZFRvO2Iuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdDtiLmVtYWlsTGlzdFN1ZmZpeD0iIjskKCIjc2l0ZWNvbXBpbGVpZCIpLmxlbmd0aCYmKGIuZW1haWxMaXN0U3VmZml4PQokKCIjc2l0ZWNvbXBpbGVpZCIpLnZhbCgpKTtiLmxlYWRJbnZva2VyPWEubGVhZEludm9rZXJ8fCJnZW5lcmljIjtiLmRpZ2l0YWxSZXRhaWxTSUQ9YS5kaWdpdGFsUmV0YWlsU0lEfHwiIjtiLmNvbnNlbnREZWFsZXI9YS5jb25zZW50RGVhbGVyO2IuY29uc2VudE9FTT1hLmNvbnNlbnRPRU07Yi51c2VyRW1haWw9YS51c2VyRW1haWw7Yi50cmFkZWluPWEudHJhZGVpbjtiLnBvcHVwZGl2PWEucG9wdXBkaXY7Yi51c2VyQXR0YWNobWVudFBhdGg9YS51c2VyQXR0YWNobWVudFBhdGg7Yi51c2VyRmlyc3ROYW1lPWEudXNlckZpcnN0TmFtZTtiLnVzZXJMYXN0TmFtZT1hLnVzZXJMYXN0TmFtZTtiLmxpY2Vuc2VudW09YS5saWNlbnNlbnVtO2IudXNlclBob25lPWEudXNlclBob25lO2IucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM9YS5waG9uZVZhbGlkYXRpb25BdHRlbXB0cztiLnBob25lTWFuZGF0b3J5PWEucGhvbmVNYW5kYXRvcnk7Yi51c2VyUG9zdGFsPWEudXNlclBvc3RhbC50b1VwcGVyQ2FzZSgpfHwKYS5jb250YWN0WmlwLnRvVXBwZXJDYXNlKCk7Yi51c2VyQWRkcmVzcz1hLnVzZXJBZGRyZXNzfHxhLmNvbnRhY3RBZGRyZXNzO2IucHJvdmluY2U9YS5jb250YWN0UHJvdmluY2U7Yi5iaXJ0aGRhdGU9YS5iaXJ0aGRhdGU7Yi5zZW5kRnJvbT1hLnNlbmRGcm9tO2IubWFpbElEPWEubWFpbElEO2IuaXNDVEE9YS5pc0NUQTtiLmJ1dHRvblRleHQ9YS5idXR0b25UZXh0O2IuZnJvbVVSTD13aW5kb3cubG9jYXRpb24uaHJlZjtiLm1ha2U9YS5tYWtlfHwiIjtiLm1vZGVsPWEubW9kZWx8fCIiO2IudHJpbT1hLnRyaW18fCIiO2IudmluPWEudmlufHwiIjtiLnByaWNlPWEucHJpY2V8fCIiO2IueWVhcj1hLnllYXJ8fCIiO2IudmVoaWNsZVR5cGU9YS52ZWhpY2xlVHlwZXx8IiI7Yi5zdG9ja051bWJlcj1oO2IuY2FyaWQ9YS5jYXJpZHx8IiI7Yi5jb25kaXRpb249YS5jb25kaXRpb247Yi5pc21vYmlsZXNpdGU9YS5pc21vYmlsZXNpdGU7Yi5pc0FtcD0iTk8iO2IucmVmZXJlcj0kKCIjdG9wcmVmZXJlciIpLnZhbCgpOwpiLnNpdGVpZD0kKCIjdG9wc2l0ZWlkIikudmFsKCk7Yi5kZWFsZXJpZD1hLmRlYWxlcmlkfHwiIjtiLm9lbUNlcnRpZmljYXRpb249JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8bnVsbDtiLnV0bV9zb3VyY2U9ZjtiLnJlbGFuY2VJRD1jO2IudXRtX2NhbXBhaWduPWs7Yi51dG1fa2V5d29yZD1tO2IudXRtX2xhbmRpbmc9bjtiLnV0bV9kZXRhaWxzPXE7Yi51dG1fc291cmNlX3JldGFyZ2V0aW5nPXQ7Yi51dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmc9cjtiLmxvY19pbnRlcmVzdD12O2IubG9jX3BoeXNpY2FsPWQ7Yi5wb3B1cE9mZmVyVHlwZT1hLnBvcHVwT2ZmZXJUeXBlO2IuZnJvbUZhY2Vib29rPWEuZnJvbUZhY2Vib29rO2IuZGV0YWlsc0ZSPWEuY29uc2VudERldGFpbHNGUjtiLmRldGFpbHNFTj1hLmNvbnNlbnREZXRhaWxzRU47Yi5mcm9tQUE9YS5mcm9tQUE7Yi5vd25lcklEPWEub3duZXJJRDtiLmxlYWRUaXRsZVVJVGV4dD1hLmxlYWRUaXRsZVVJVGV4dDtiLnNtcz0KYS5zbXM7Yi5vbkFmdGVyTGVhZENyZWF0ZWQ9YS5vbkFmdGVyTGVhZENyZWF0ZWQ7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmKCIiIT1hLnVzZXJGaXJzdE5hbWUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJmaXJzdG5hbWUiLGEudXNlckZpcnN0TmFtZSksIiIhPWEudXNlckxhc3ROYW1lJiZjbGllbnRTdG9yYWdlLnNldCgibGFzdG5hbWUiLGEudXNlckxhc3ROYW1lKSwiIiE9YS51c2VyRW1haWwmJmNsaWVudFN0b3JhZ2Uuc2V0KCJlbWFpbCIsYS51c2VyRW1haWwpLCIiIT1hLnVzZXJQaG9uZSYmY2xpZW50U3RvcmFnZS5zZXQoInBob25lIixhLnVzZXJQaG9uZSkpO2IuY2hhdGJvdEJvb3N0SWQ9Z2V0Q29va2llRDJjKCJkMmNjaGF0Ym90aWQiKTtiLnN0eWxlaWQ9JCgiI3N0eWxlSWRJblVzZSIpLmxlbmd0aD8kKCIjc3R5bGVJZEluVXNlIikudmFsKCk6JCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGg\/JCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoKToiIjsidW5kZWZpbmVkIiE9PQp0eXBlb2Ygd2luZG93LmFkcF9mb3VyZXllc19pZCYmd2luZG93LmFkcF9mb3VyZXllc19pZD8oYi5Vbml0ZVdlYnNpdGVDdXN0b21lcklkPXdpbmRvdy5hZHBfZm91cmV5ZXNfaWQsY29uc29sZS5sb2coIkQyVUQgLSBlbWFpbEhhbmRsZXIgSlMgcGFzc2VkIix3aW5kb3cuYWRwX2ZvdXJleWVzX2lkKSk6Y29uc29sZS5sb2coIkQyVUQgLSBlbWFpbEhhbmRsZXIgSlMgLSB3aW5kb3cuYWRwX2ZvdXJleWVzX2lkIGlmIHdhcyB0cmlnZ2VyZWQiLHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQpO2Eub25BZnRlckxlYWRDcmVhdGVkJiYoYi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT0iIixhLnNlbmRUbz1hLnNlbmRUb3x8IiIsYz1hLnNlbmRUby5zcGxpdCgiOyIpLGNbMF0udHJpbSgpLmxlbmd0aD9iLm9uQWZ0ZXJMZWFkQ3JlYXRlZC5mcm9tPWNbMF0udHJpbSgpOihjPWEuc2VuZFRvQURGRm9ybWF0LnNwbGl0KCIsIiksY1swXS50cmltKCkubGVuZ3RoJiYoYi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT0KY1swXS50cmltKCkpKSk7Yi51c2VyQWdlbnQ9JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpO2IuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjtiLmNvbnRhY3RJRD1hLmNvbnRhY3RJRDtiLmNvbnRhY3ROQVM9YS5jb250YWN0TkFTO2IuY29udGFjdEJpcnRoPWEuY29udGFjdEJpcnRoO2IuZGVhbGVyTmFtZT1hLmRlYWxlck5hbWU\/YS5kZWFsZXJOYW1lOnc7Yi5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhPWEuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YTtiLnByZWZlcnJlZF9jb250YWN0PWEucHJlZmVycmVkX2NvbnRhY3Q7Yi51dG1kZXRhaWxzVG9SZXBsYWNlPXA7IiIhPWEuZ2VvbG9jX3N0YXR1cyYmKGIuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY19zdGF0dXMsYi5nZW9sb2NfbGF0PWEuZ2VvbG9jX2xhdCxiLmdlb2xvY19sb25nPWEuZ2VvbG9jX2xvbmcsYi5nZW9sb2NfYWNjdXJhY3k9YS5nZW9sb2NfYWNjdXJhY3ksImZ1bmN0aW9uIj09CnR5cGVvZiBjbGVhbkFuZEVuY29kZVRleHQ\/KGIuZ2VvbG9jX3RyYWNrX3N0cj1jbGVhbkFuZEVuY29kZVRleHQoYS5nZW9sb2NfdHJhY2tfc3RyKSxiLmdlb2xvY19lbWFpbF9zdHI9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuZ2VvbG9jX2VtYWlsX3N0cikpOihiLmdlb2xvY190cmFja19zdHI9JC5iYXNlNjQuZW5jb2RlKGEuZ2VvbG9jX3RyYWNrX3N0ciksYi5nZW9sb2NfZW1haWxfc3RyPSQuYmFzZTY0LmVuY29kZShhLmdlb2xvY19lbWFpbF9zdHIpKSk7IiIhPWEuY2FyMl9tYWtlJiYoYi5jYXIyX21ha2U9YS5jYXIyX21ha2UsYi5jYXIyX21vZGVsPWEuY2FyMl9tb2RlbCxiLmNhcjJfdHJpbT1hLmNhcjJfdHJpbSxiLmNhcjJfeWVhcj1hLmNhcjJfeWVhcixiLmNhcjJfY29sb3I9YS5jYXIyX2NvbG9yLGIuY2FyMl9vZG9tZXRlcj1hLmNhcjJfb2RvbWV0ZXIsYi5jYXIyX3Zpbj1hLmNhcjJfdmluLGIuY2FyMl90cmFuc21pc3Nvbj1hLmNhcjJfdHJhbnNtaXNzb24sYi5jYXIyX2RyaXZldHJhaW49CmEuY2FyMl9kcml2ZXRyYWluLGIuY2FyMl9mdWVsdHlwZT1hLmNhcjJfZnVlbHR5cGUpO2Iuc2VydmljZURhdGUxPWEuc2VydmljZURhdGUxfHwiIjtiLnNlcnZpY2VEYXRlMj1hLnNlcnZpY2VEYXRlMnx8IiI7Yi53YWl0aW5nT25TaXRlPWEud2FpdGluZ09uU2l0ZXx8IiI7Yi5jb21tZW50cz1hLmNvbW1lbnRzO2Euc2tpcEdldERlcD9iLmRlcGFydG1lbnQ9YS5kZXBhcnRtZW50OihiLmRlcGFydG1lbnQ9YS5nZXREZXAoKSxhLmRlcGFydG1lbnQ9YS5nZXREZXAoKSk7aWYoIlVTRUQiPT1iLmRlcGFydG1lbnQmJjA9PWEuZGVwYXJ0bWVudEJ5U3RvY2spe3ZhciBBPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6dmlzaWJsZTpmaXJzdCIpLnZhbCgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQSYmKEE9QS5zcGxpdCgiKFN0b2NrIiksQVsxXSkpe3ZhciBFPSJVU0VEIjtBPUFbMV0ucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIjoiLCIiKS5yZXBsYWNlKCIjIiwKIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOyQuYWpheCh7dHlwZToiR0VUIixhc3luYzohMSxkYXRhVHlwZToianNvbiIsdXJsOiIvanMvanNvbi91c2VkQnlQcmljZUFzYy5qc29uIixzdWNjZXNzOmZ1bmN0aW9uKHopeyQuZWFjaCh6LGZ1bmN0aW9uKEMsRCl7aWYoRC5zbi50b0xvd2VyQ2FzZSgpPT1BKXJldHVybiBFPSIxIj09RC5pc25ld3x8IjEiPT1ELmlzZGVtbz8iTkVXIjoiVVNFRCIsITF9KTthLmRlcGFydG1lbnRCeVN0b2NrPUV9fSl9fSIiIT09YS5kZXBhcnRtZW50QnlTdG9jayYmITEhPT1hLmRlcGFydG1lbnRCeVN0b2NrJiYoYi5kZXBhcnRtZW50PWEuZGVwYXJ0bWVudEJ5U3RvY2spOyFiLmRlcGFydG1lbnR8fCJuZXciPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSYmInVzZWQiPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKT9iLmNvbmRpdGlvbj1iLmRlcGFydG1lbnQmJiJuZXciPT1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKT8iTmV3IjoiVXNlZCI6Yi5jb25kaXRpb249CiQoIiNjdXJyZW50U3RhdHVzIikubGVuZ3RoPyQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk6InVua25vd24iO2IuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpIT1iLmNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpJiYoYi5jb25kaXRpb249Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkpO251bGwhPWEuY3JlZGl0RGF0YSYmKGIuY3JlZGl0RGF0YT1hLmNyZWRpdERhdGEpO251bGwhPWEuZGVhbGVyQXBwb2ludG1lbnREYXRhJiYoYi5kZWFsZXJBcHBvaW50bWVudERhdGE9YS5kZWFsZXJBcHBvaW50bWVudERhdGEpOzA8JCgiI3B1cmNoYXNlX2ludGVudF9hbnN3ZXIiKS5sZW5ndGgmJihiLnB1cmNoYXNlX2ludGVudD1hLnB1cmNoYXNlX2ludGVudCxiLnB1cmNoYXNlX2ludGVudF9hbnN3ZXI9JCgiI3B1cmNoYXNlX2ludGVudF9hbnN3ZXIiKS52YWwoKSxiLnB1cmNoYXNlX2ludGVudF9ub19hbnN3ZXI9JCgiI3B1cmNoYXNlX2ludGVudF9ub19hbnN3ZXIiKS52YWwoKSk7Yi5wdXJjaGFzZV9pbnRlbnQ9CmEuYXNrUHVyY2hhc2VJbnRlbnQ\/Yi5wdXJjaGFzZV9pbnRlbnQ\/Yi5wdXJjaGFzZV9pbnRlbnQ6LTE6ITE7JCgiI2N1cnJlbnRJdGVtVHlwZSIpLmxlbmd0aD9iLml0ZW1UeXBlPSQoIiNjdXJyZW50SXRlbVR5cGUiKS52YWwoKTpiLml0ZW1UeXBlPSIiO2EuYm9keSs9Ilx4M2MhLS0gSlMgVW5pcXVlIGlkOiIrTWF0aC5yb3VuZCg1RTMqTWF0aC5yYW5kb20oKSkrIi0tXHgzZSI7cmV0dXJuIGJ9LGdldERlcDpmdW5jdGlvbigpe3ZhciBiPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSxkPS9cYihuZXd8bmV1ZnxuZXVmc3xjb25maWd1cmF0aW9uLWV0LXByaXh8YnVpbGQtYW5kLXByaWNlfGRlbW9zfGRlbW9uc3RyYXRldXJzfGNsZWFyYW5jZSlcYi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLGM9L1xiKHVzZWR8b2NjYXNpb24pXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6JiYidW5kZWZpbmVkIiE9PQp0eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UmJiJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0Q3VycmVudEZpbHRlclN0YXRlKXt2YXIgZj13aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRDdXJyZW50RmlsdGVyU3RhdGUoImNhdGVnb3J5Iik7aWYoITEhPT1mJiZmLmxlbmd0aClpZigxPT09Zi5sZW5ndGgmJjM9PT1mWzBdLnZhbHVlKWQ9ITAsYz0hMTtlbHNle3ZhciBrLG09MCxuPTA7Zm9yKGs9MDtrIT09Zi5sZW5ndGg7aysrKWZba10ubnVtPm0mJihtPWZba10ubnVtLG49ZltrXS52YWx1ZSk7MT09PW58fDI9PT1uPyhkPSExLGM9ITApOjM9PT1uJiYoZD0hMCxjPSExKX19Zj0wO2s9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjpyZWFsbHlWaXNpYmxlOmZpcnN0Iik7MDxrLmxlbmd0aCYmKGs9ay52YWwoKS5tYXRjaCgvMTlbMC05XXsyfXwyMFswLTldezJ9L2cpLApudWxsIT1rJiYoZj1wYXJzZUludChrWzBdKSkpO2Z8fChmPWEueWVhcik7c3dpdGNoKGEubWFpbElEKXtjYXNlICJUaXJlc1JlcXVlc3QiOmNhc2UgIlBhcnRzUmVxdWVzdCI6cmV0dXJuIlBBUlRTIjtjYXNlICJTZXJ2aWNlUmVxdWVzdCI6Y2FzZSAiUmVjYWxscyI6Y2FzZSAiQm9keVNob3AiOmNhc2UgIm1lbnVTZXJ2aWNlIjpjYXNlICJoZWFkZXJTZXJ2aWNlIjpjYXNlICJFc3RoZXRpY1JlcXVlc3QiOnJldHVybiJTRVJWSUNFIjtjYXNlICJDcmVkaXRSZXF1ZXN0IjpjYXNlICJDcmVkaXRSZXF1ZXN0TW9iaWxlIjpjYXNlICJEZWFsZXJUcmFjayI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSI6Y2FzZSAiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiOmNhc2UgIkNyZWRpdFNjb3JlIjpjYXNlICJDcmVkaXRBcHBDYXJkIjpyZXR1cm4iRklOQU5DRSI7Y2FzZSAiSm9iT2ZmZXIiOnJldHVybiJIUiI7CmNhc2UgIm1lbnVDb250YWN0VXMiOmlmKCIiIT09YS5kZXBhcnRtZW50KXJldHVybiBhLmRlcGFydG1lbnQudG9VcHBlckNhc2UoKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50JiYiIiE9PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpcmV0dXJuIG1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQudG9VcHBlckNhc2UoKX1pZigwPGYpe2lmKGMmJmY+PWIrMSlyZXR1cm4iTkVXIjtpZighZCYmIWMpe2lmKGY+PWItMSlyZXR1cm4iTkVXIjtpZihmPGItMSlyZXR1cm4iVVNFRCJ9fXJldHVybiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKT8kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTpjPyJVU0VEIjpkPyJORVciOiIiIT09YS5kZXBhcnRtZW50P2EuZGVwYXJ0bWVudDoidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNwb3B1cERlcGFydG1lbnQiKS5hdHRyKCJpZCIpJiYkKCIjcG9wdXBEZXBhcnRtZW50IikudmFsKCkubGVuZ3RoPwokKCIjcG9wdXBEZXBhcnRtZW50IikudmFsKCk6InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZGVmYXVsdERlcGFydG1lbnQiKS5hdHRyKCJpZCIpJiYkKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKS5sZW5ndGg\/JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk6IlVTRUQifSxyZWFkeVRvU2VuZDpmdW5jdGlvbigpe3ZhciBiPWEuY3JlYXRlQ2hlY2tzdW0oKTtpZihhLmxhc3RDaGVja3N1bT09YikiZnVuY3Rpb24iPT10eXBlb2YgYS5vbkR1cGxpY2F0ZVNlbmQ\/YS5vbkR1cGxpY2F0ZVNlbmQuY2FsbCgpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiQ1JDIE1hdGNoIixhLmxhc3RDaGVja3N1bSxiKTtlbHNle2EubGFzdENoZWNrc3VtPWI7JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGgmJiIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGgmJgokKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmKGI9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iQ29uY2Vzc2lvbiBv77+9IGVzdCBzaXR177+9IGxlIHbvv71oaWN1bGU6ICI6IkRlYWxlciB3aGVyZSB0aGUgdmVoaWNsZSBpcyBsb2NhdGVkOiAiLGIrPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCksYS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixiKSk7MDwkKCIjaXNtb2JpbGUiKS5sZW5ndGgmJihhLmlzbW9iaWxlc2l0ZT0iWUVTIik7aWYoMD09YS5zdWJqZWN0Lmxlbmd0aHx8MD09YS5ib2R5Lmxlbmd0aClyZXR1cm4hMTthLmluamVjdEN0YUNvbXBsZXRlZERhdGEoKTtqc29uT2JqZWN0PWEuZ2V0SnNvbk9iamVjdCgpO2EuaWdub3JlQ2FwdGNoYXx8YS5yZWNhcHRjaGEucmVzZXRUb2tlbigpOwpiPW51bGw7Yj1KU09OLnN0cmluZ2lmeShqc29uT2JqZWN0KTt2YXIgZD1hLnBvcHVwT2ZmZXJUeXBlO2I9e2pzb246Yn07aWYoYS5wYXJ0aWFsKWIucGFydGlhbD0hMDtlbHNleyJ1bmRlZmluZWQiIT10eXBlb2YgZ3RhZyYmd2luZG93LmQyY19hd2NJZCYmd2luZG93LmQyY19hd2NMYWJlbCYmKCJsaXZlIj09ZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKT9ndGFnKCJldmVudCIsImNvbnZlcnNpb24iLHtzZW5kX3RvOmQyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsfSk6Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsiLyIrZDJjX2F3Y0xhYmVsKyIgfSk7IikpO3ZhciBjPXttYWlsSUQ6YS5tYWlsSUQsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCx5ZWFyOmEueWVhcix2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLGRlcGFydG1lbnQ6YS5kZXBhcnRtZW50LHRyYWRlaW46YS50cmFkZWluLHBvcHVwT2ZmZXJUeXBlOmEucG9wdXBPZmZlclR5cGUsCmJvZHlUeXBlOmEudmVoaWNsZVR5cGUsc2FsZXNEZXB0OmEuc2FsZXNEZXB0LHBvcHVwRGl2OmEucG9wdXBkaXYsaXNDVEE6YS5pc0NUQSxidXR0b25UZXh0OmEuYnV0dG9uVGV4dH07alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLnN1Ym1pdCIsYyl9JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9LDVFMyk7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTsiIiE9YS5sZWFkVGl0bGVUZXh0JiYoJCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLmxlYWRUaXRsZVRleHQucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksYS5sZWFkVGl0bGVUZXh0PSIiKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOwokKCdpbnB1dFtuYW1lPSJjdXJyZW50VVJMIl0nKS52YWwod2luZG93LmxvY2F0aW9uLmhyZWYpOyQoJ2lucHV0W25hbWU9ImlzRnVsbFdpZHRoIl0nKS52YWwoJCgiI2lzRnVsbFdpZHRoUGFnZU5ld1ZEUCIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJkZWFsZXJOYW1lIl0nKS52YWwoJCgiI25ld1ZEUERlYWxlck5hbWUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNNb2JpbGVOZXdWRFAiXScpLnZhbCgkKCIjaXNtb2JpbGUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNDb25maXJtUG9wdXAiXScpLnZhbCgwKTsiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiPT1hLnBvcHVwZGl2JiYkKCdpbnB1dFtuYW1lPSJpc0NvbmZpcm1Qb3B1cCJdJykudmFsKDEpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZW1haWwiXScpLnZhbChhLnVzZXJFbWFpbCk7CiQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSJdJykudmFsKGEudXNlckZpcnN0TmFtZSk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9sYXN0X25hbWUiXScpLnZhbChhLnVzZXJMYXN0TmFtZSk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiXScpLnZhbChhLnVzZXJQaG9uZSk7Zm9ybUZpbGwuc2F2ZSh7ZW1haWw6YS51c2VyRW1haWwsZmlyc3ROYW1lOmEudXNlckZpcnN0TmFtZSxsYXN0TmFtZTphLnVzZXJMYXN0TmFtZSxwaG9uZTphLnVzZXJQaG9uZSxwb3N0YWw6YS51c2VyUG9zdGFsfSk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihmKXtmJiZmLm92ZXJyaWRlTWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBrPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2subGVuZ3RoJiYKZi5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsay5hdHRyKCJjb250ZW50IikpfWNhdGNoKGspe2NvbnNvbGUuZXJyb3IoZil9fSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWQiLGEubWFpbElELGQpO2EucGFydGlhbD0hMTthLmxhc3RDaGVja3N1bT0hMTt2YXIgaz0iIjtrPSJzdHJpbmciPT10eXBlb2YgZj9KU09OLnBhcnNlKGYpOmY7YS5fX2xhc3RSZXR1cm49aztpZigib2JqZWN0Ij09dHlwZW9mIGt8fCJ1bmRlZmluZWQiIT10eXBlb2Ygay5sZWFkaWQpYS5fX2xlYWRpZD1rLmxlYWRpZDsiZnVuY3Rpb24iIT10eXBlb2YgYS5jYWxsYmFjayYmKGEuY2FsbGJhY2s9ZnVuY3Rpb24oKXt9KTtqUXVlcnkoImJvZHkiKS50cmlnZ2VyKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50Iix7bWFpbElEOmEubWFpbElELG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwseWVhcjphLnllYXIsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbiwKZGVwYXJ0bWVudDphLmRlcGFydG1lbnQsdHJhZGVpbjphLnRyYWRlaW4sc3VjY2VzczoiU1VDQ0VTUyI9PT1rLnN0YXR1cyxkZXRhaWw6e2NvbmZpcm1fZmlyc3RfbmFtZTphLnVzZXJGaXJzdE5hbWUsY29uZmlybV9sYXN0X25hbWU6YS51c2VyTGFzdE5hbWUsY29uZmlybV9lbWFpbDphLnVzZXJFbWFpbCxjb25maXJtX3Bob25lX251bWJlcjphLnVzZXJQaG9uZSx5ZWFyOmEueWVhcixtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLGlkOmsubGVhZGlkLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sdmVyc2lvbjphLnZlcnNpb258fCIiLE5JVjphLnZpbix0cmltOmEudHJpbSxsZWFkVHlwZTphLmxlYWRUeXBlfHwiIixtYWlsSWQ6YS5tYWlsSUR9fSk7IlNVQ0NFU1MiPT1rLnN0YXR1cz8oYS5jYWxsYmFjayghMCksYS5tYWluUHJvbW8mJihmPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6Ik1haW5Qcm9tb0J0biJ9fSksZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChmKSkpOgphLmNhbGxiYWNrKCExKTthLmNhbGxiYWNrPW51bGx9LGZhaWx1cmU6ZnVuY3Rpb24oZil7YS5sb2dGb3JtUmVxdWVzdCgiRm9ybVN1Ym1pdHRlZEVtYWlsTm90U2VudCIsYS5tYWlsSUQsZCk7YWxlcnQoc2F2ZUhhbmRsZXIuZmFpbE1lc3NhZ2UrIlxuIitmKX0sc3RhdHVzQ29kZTp7NDA0OmZ1bmN0aW9uKCl7YWxlcnQoInBhZ2Ugbm90IGZvdW5kIil9fX0pO2EucG9wdXBPZmZlclR5cGU9IiJ9fSxpbmplY3RDdGFDb21wbGV0ZWREYXRhOmZ1bmN0aW9uKCl7bGV0IGI9IiIsZD0iIjt2YXIgYz0iIixmPWdldENvb2tpZUQyYygiYmFuZHBfY29uZmlnIiksaz0idW5kZWZpbmVkIiE9PXR5cGVvZiBmJiZudWxsIT09Zj9KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChmKSk6SlNPTi5wYXJzZSgie30iKTtmPShtLG4pPT57bj1ufHwhMTtsZXQgdD1tLm9wdGlvbnMucmVkdWNlKCh3LHgpPT53K2Ake3h9PGJyPmAsIiIpLHI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/CiJWZWhpY2xlIGRldGFpbHMiOiJWw6loaWN1bGUgY29uZmlndXLDqSIsdj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iRmluYW5jaW5nIGRldGFpbHMiOiJEw6l0YWlscyBkdSBmaW5hbmNlbWVudCIscSxwLGg7bj1uPyIiOmAKCQkJCQkJPHU+JHt2fTo8L3U+PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShxPW0ucGF5bWVudCk\/dm9pZCAwOnEudG90YWx9PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShwPW0ucGF5bWVudCk\/dm9pZCAwOnAucmF0ZX08YnI+CgkJCQkJCSR7bnVsbD09bT92b2lkIDA6bnVsbD09KGg9bS5wYXltZW50KT92b2lkIDA6aC5hbW91bnR9PGJyPjxicj4KCQkJCQlgO2xldCBsLHU7cmV0dXJuYAoJCQkJCTx1PiR7cn06PC91Pjxicj4KCQkJCQkke251bGw9PW0\/dm9pZCAwOm0ubW9kZWx9PGJyPgoJCQkJCUV4dDogJHsobnVsbD09bT92b2lkIDA6bnVsbD09KGw9bS5jb2xvcnMpP3ZvaWQgMDpsLmV4dCl8fCIifSwgSW50OiAkeyhudWxsPT1tP3ZvaWQgMDpudWxsPT0odT1tLmNvbG9ycyk\/dm9pZCAwOnUuaW50KXx8IiJ9PGJyPgoJCQkJCSR7KG51bGw9PW0\/dm9pZCAwOm0uZHJpdmVUcmFpbil8fCIifTxicj4KCQkJCQkke3R9PGJyPgoJCQkJCSR7bn0KCQkJCWB9O2suYmFuZHAmJihiPWYoay5iYW5kcCkucmVwbGFjZSgvKFx0fFxuKSovZywiIikpO2lmKENvb2tpZXMuZ2V0KCJjdGFfZGF0YV92YWxpZCIpKXtjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKXx8Int9Iik7az0hIWMucGF5bWVudDtjLmJhbmRwJiYoYy5iYW5kcC5vcHRpb25zPWMuYmFuZHAub3B0aW9uc3x8W10sYj1mKGMuYmFuZHAsaykpO2lmKGspe2xldCBtLG4sdDtkPWAKCQkJCQkJPHU+JHsiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iVmVoaWNsZSBkZXRhaWxzIjoiRMOpdGFpbHMgZHUgZmluYW5jZW1lbnQifTo8L3U+PGJyPgoJCQkJCQkke251bGw9PWM\/dm9pZCAwOm51bGw9PShtPWMucGF5bWVudCk\/dm9pZCAwOm0ubGlzdFByaWNlfTxicj4KCQkJCQkJJHtudWxsPT1jP3ZvaWQgMDpudWxsPT0obj1jLnBheW1lbnQpP3ZvaWQgMDpuLnJhdGV9PGJyPgoJCQkJCQkke251bGw9PWM\/dm9pZCAwOm51bGw9PSh0PWMucGF5bWVudCk\/dm9pZCAwOnQucGF5bWVudH08YnI+CgkJCQkJYH1jPSJcblx0XHRcdFx0XHQ8YnI+XG5cdFx0XHRcdFx0PGJyPlxuXHRcdFx0XHRcdDx1PjxzdHJvbmc+VHJhbnNhY3Rpb24gQnVpbGRlcjo8L3N0cm9uZz48L3U+XG5cblx0XHRcdFx0In1pZihifHxkKWEuYm9keSs9KGMrYAoJCQkJCTxicj4KCQkJCQk8YnI+CgkJCQkJJHtifQoJCQkJCSR7ZH0KCQkJCWApLnJlcGxhY2UoL1xyP1xufFxyL2csIiIpfSxkZWNvZGVVUkxSZWN1cnNpdmVseTpmdW5jdGlvbihiKXtyZXR1cm4tMSE9Yi5pbmRleE9mKCIlIik\/YS5kZWNvZGVVUkxSZWN1cnNpdmVseShkZWNvZGVVUklDb21wb25lbnQodW5lc2NhcGUoYikpKTpifSx2YWxpZGF0ZUVtYWlsOmZ1bmN0aW9uKGIpe3JldHVybiAkLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC92YWxpZGF0ZUVtYWlsQWNjb3VudD93c3dpZHRoPTAmZW1haWw9IitiLGFzeW5jOiExfSl9LGdldFVVSUQ6ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJm51bGwhPXdpbmRvdy5hY3RpdmVQcm9maWxlSUQ\/d2luZG93LmFjdGl2ZVByb2ZpbGVJRDoidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOgoidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMmJiJ1bmRlZmluZWQiIT1Db29raWVzLmdldCgidXVpZCIpJiZudWxsIT1Db29raWVzLmdldCgidXVpZCIpP0Nvb2tpZXMuZ2V0KCJ1dWlkIik6IiJ9LHNldENvbnRhY3RJbmZvOmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgJC5mbi5nb29nbGVQbGFjZXMpe3ZhciBiPSQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJyk7MCE9Yi5sZW5ndGgmJihiPWIuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksIiIhPWIuY2l0eSYmIiI9PWEuY29udGFjdENpdHkmJihhLmNvbnRhY3RDaXR5PWIuY2l0eS5sb25nX25hbWUpLCIiIT1iLnN0cmVldCYmIiIhPWIuc3RyZWV0X251bWJlciYmIiI9PWEuY29udGFjdEFkZHJlc3MmJihhLmNvbnRhY3RBZGRyZXNzPWIuc3RyZWV0X251bWJlci5sb25nX25hbWUrIiAiK2Iuc3RyZWV0LmxvbmdfbmFtZSksIiIhPWIucHJvdmluY2UmJiIiPT1hLmNvbnRhY3RQcm92aW5jZSYmKGEuY29udGFjdFByb3ZpbmNlPQpiLnByb3ZpbmNlLnNob3J0X25hbWUpLCIiIT1iLnBvc3RhbCYmIiI9PWEuY29udGFjdFppcCYmKGEuY29udGFjdFppcD1iLnBvc3RhbC5sb25nX25hbWUpKX19LGdldExvbmdEYXRlVG9TaG9ydEZvcm1hdDpmdW5jdGlvbihiKXtpZigiIj09YilyZXR1cm4gYjtiPWIudG9Mb3dlckNhc2UoKTt2YXIgZD17amFudmllcjoiamFudWFyeSIsImbDqXZyaWVyIjoiZmVicnVhcnkiLG1hcnM6Im1hcmNoIixhdnJpbDoiYXByaWwiLG1haToibWF5IixqdWluOiJqdW5lIixqdWlsbGV0OiJqdWx5IiwiYW\/Du3QiOiJhdWd1c3QiLHNlcHRlbWJyZToic2VwdGVtYmVyIixvY3RvYnJlOiJvY3RvYmVyIixub3ZlbWJyZToibm92ZW1iZXIiLCJkw6ljZW1icmUiOiJkZWNlbWJlciJ9O2I9Yi5yZXBsYWNlKC9cYlxTK1xiL2lnLGZ1bmN0aW9uKGMpe3ZhciBmPWMudG9Mb3dlckNhc2UoKTtyZXR1cm4gZFtmXT9kW2ZdOmN9KTtyZXR1cm4obmV3IERhdGUoYikpLmZvcm1hdCgieXl5eS1NTS1kZCIpfSxnZXRFbWFpbENvbnNlbnQ6ZnVuY3Rpb24oYil7dmFyIGQ9Cm5ldyBEYXRlO2Euc2V0Q29udGFjdEluZm8oKTt2YXIgYz1hLmNvbnRhY3RCaXJ0aD9hLmNvbnRhY3RCaXJ0aDphLmdldExvbmdEYXRlVG9TaG9ydEZvcm1hdChhLmJpcnRoZGF0ZSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO2dldERhdGE9e2VtYWlsOmEudXNlckVtYWlsLHBob25lOmEudXNlclBob25lLG5hbWU6YS51c2VyRmlyc3ROYW1lKyIgIithLnVzZXJMYXN0TmFtZSxhZGRyOmEuY29udGFjdEFkZHJlc3M\/YS5jb250YWN0QWRkcmVzczphLnVzZXJBZGRyZXNzLGNpdHk6YS5jb250YWN0Q2l0eSxwcm92aW5jZTphLmNvbnRhY3RQcm92aW5jZSx6aXA6YS5jb250YWN0WmlwP2EuY29udGFjdFppcDphLnVzZXJQb3N0YWwsbmFzOmEuY29udGFjdE5BUyxiaXJ0aDpjLHNpdGVJRDokKCIjc2l0ZUlEIikudmFsKCksVVVJRDphLmdldFVVSUQoKSx0czpkLmdldFRpbWUoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSx1cGRhdGVJbXBsaWNpdDohMH07CiQuYWpheCh7dHlwZToiR0VUIix1cmw6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIixkYXRhOmdldERhdGEsZGF0YVR5cGU6Impzb24ifSkuYWx3YXlzKGZ1bmN0aW9uKGYsayxtKXtmPWY\/Zjp7aGFzQ29uc2VudDohMX07JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpO3RyeXsidW5kZWZpbmVkIj09dHlwZW9mIGYmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiKioqKiBlcnJvciAqKioqIix7ZXJyb3I6Ik5vIERhdGEiLHRleHRTdGF0dXM6ayxydmFsdWU6Zix2OmdldERhdGEsdDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAifSksW1siY29uc2VudFR5cGUiLCJjb25zZW50VHlwZSJdLFsiY29uc2VudEV4cGlyYXRpb24iLCJleHBpcmF0aW9uIl0sWyJjb25zZW50RGF0ZSIsImRhdGUiXSxbImNvbnNlbnRGcmVxdWVuY3kiLCJmcmVxdWVuY3kiXSwKWyJjb25zZW50RGV0YWlsc0ZSIiwiZGV0YWlsc0ZSRU5DSCJdLFsiY29uc2VudERldGFpbHNFTiIsImRldGFpbHNFTkdMSVNIIl0sWyJkZXRhaWxzRGVmYXVsdHMiLCJkZXRhaWxzRGVmYXVsdHMiXSxbImNvbnRhY3RJRCIsInVpZCJdXS5tYXAoZnVuY3Rpb24obil7dmFyIHQ9blswXTtuPW5bMV07ZGVsZXRlIHZvaWQgMDthW3RdPXZvaWQgMCE9ZltuXT9mW25dOmFbdF19KX1jYXRjaChuKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIioqKiogZXJyb3IgKioqKiIse2Vycm9yOm4sdGV4dFN0YXR1czprLHJ2YWx1ZTpmLHY6Z2V0RGF0YSx0OiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCJ9KX1iKGYpfSl9LGJhbmRwTGluazpmdW5jdGlvbihiKXtiPWZ1bmN0aW9uKHIpe3JldHVybiByLnJlcGxhY2UoLy0vZywiXyIpLnJlcGxhY2UoLycvZywiIil9O2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQ29va2llcy5nZXQoImJhbmRwbGluayIpfHwKbnVsbD09Q29va2llcy5nZXQoImJhbmRwbGluayIpfHwidW5kZWZpbmVkIj09dHlwZW9mIENvb2tpZXMuZ2V0KCJzZXNzaWQiKXx8bnVsbD09Q29va2llcy5nZXQoInNlc3NpZCIpKXJldHVybiIiO3ZhciBkPUNvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKSxjPUNvb2tpZXMuZ2V0KCJzZXNzaWQiKTtpZigwPmQuaW5kZXhPZigifHx8IikpcmV0dXJuIiI7dmFyIGY9ZC5zcGxpdCgifHx8Iik7aWYoND5mLmxlbmd0aClyZXR1cm4iIjtkPShuZXcgU3RyaW5nKGZbMF0pKS5zcGxpdCgiLyIpO3ZhciBrPW5ldyBTdHJpbmcoZlsxXSksbT1uZXcgU3RyaW5nKGZbMl0pO2Y9bmV3IFN0cmluZyhmWzNdKTt2YXIgbj0kKCIjcG9wdXB0cmltIikubGVuZ3RoJiYieyRQT1BVUFRSSU19IiE9JCgiI3BvcHVwdHJpbSIpLnZhbCgpPyQoIiNwb3B1cHRyaW0iKS52YWwoKToiIix0PSI8YSBocmVmPSciK2QyY21lZGlhLmdldEh0dHBUZXh0KCkrIjovLyIrd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKyQoIiN0eHRCdWlsZEFuZFByaWNlRm9sZGVyUGF0aCIpLnZhbCgpOwoiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8ocGFyc2VJbnQoZFsyXSksJCgiI1RYVE1PTlRIIitwYXJzZUludChkWzFdKS50b1N0cmluZygpKS52YWwoKSx0Kz1mKyItIitiKGspKyItIitiKG0pKyIuaHRtbD9zaWQ9IitjKyInIHRhcmdldD0nX2JsYW5rJz4iK2YrIiAiK2srIiAiK20rIiAiK24rIjwvYT4iKTooJCgiI1RYVE1PTlRIIitwYXJzZUludChkWzFdKS50b1N0cmluZygpKS52YWwoKSx0Kz1iKGspKyItIitiKG0pKyItIitmKyIuaHRtbD9zaWQ9IitjKyInIHRhcmdldD0nX2JsYW5rJz4iK2srIiAiK20rIiAiK24rIiAiK2YrIjwvYT4iKTtyZXR1cm4gdH0sbG9nRm9ybVJlcXVlc3Q6ZnVuY3Rpb24oYixkLGMpe3ZhciBmPU1hdGguZmxvb3IoOTk5OTk5OSpNYXRoLnJhbmRvbSgpKSxrPSQoIiN0b3BzaXRlaWQiKS5sZW5ndGg\/JCgiI3RvcHNpdGVpZCIpLnZhbCgpOiIwIixtPSQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmMDwkKCIjdG9wY2FyaWQiKS52YWwoKS5sZW5ndGg\/CiQoIiN0b3BjYXJpZCIpLnZhbCgpOiIwIixuPUNvb2tpZXMuZ2V0KCJ1aWQiKT9Db29raWVzLmdldCgidWlkIik6IjAiLHQ9Q29va2llcy5nZXQoInV0bV9zb3VyY2UiKT9Db29raWVzLmdldCgidXRtX3NvdXJjZSIpOiIwIixyPUNvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ24iKT9Db29raWVzLmdldCgidXRtX2NhbXBhaWduIik6IjAiLHY9Q29va2llcy5nZXQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKT9Db29raWVzLmdldCgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpOiIwIixxPUNvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKT9Db29raWVzLmdldCgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIik6IjAiLHA9JCgiI3RvcGlzbW9iaWxlIikubGVuZ3RoJiYxPT0kKCIjdG9waXNtb2JpbGUiKS52YWwoKT8iWUVTIjoiTk8iLGg9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLmxlbmd0aD8kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk6IkZSRU5DSCIsbD12b2lkIDAhPT0KYSYmdm9pZCAwIT09YS5waG9uZU1hbmRhdG9yeT9hLnBob25lTWFuZGF0b3J5OjA7InVuZGVmaW5lZCIhPXR5cGVvZiBjJiZjfHwoYz0iMCIpO3I9ci5yZXBsYWNlKC9cdC9nLCIiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC9cci9nLCIiKS5yZXBsYWNlQWxsKCIlMEEiLCIiKS5yZXBsYWNlQWxsKCIlMDkiLCIiKS5yZXBsYWNlQWxsKCIlMEIiLCIiKS5yZXBsYWNlQWxsKCIlMDAiLCIiKS5yZXBsYWNlQWxsKCIlNUMiLCIiKS5yZXBsYWNlQWxsKCIlMEQiLCIiKTt0PXQucmVwbGFjZSgvXHQvZywiIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvXHIvZywiIikucmVwbGFjZUFsbCgiJTBBIiwiIikucmVwbGFjZUFsbCgiJTA5IiwiIikucmVwbGFjZUFsbCgiJTBCIiwiIikucmVwbGFjZUFsbCgiJTAwIiwiIikucmVwbGFjZUFsbCgiJTVDIiwiIikucmVwbGFjZUFsbCgiJTBEIiwiIik7Yj0iL3Byb3h5X3NhdWIvbG9nRm9ybVJlcXVlc3QvIitlbmNvZGVVUklDb21wb25lbnQoaykrCiIvIitlbmNvZGVVUklDb21wb25lbnQobSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChuKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyIvIitlbmNvZGVVUklDb21wb25lbnQocikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChwKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGgpKyIvIitlbmNvZGVVUklDb21wb25lbnQodikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChxKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGQpKyIvIitlbmNvZGVVUklDb21wb25lbnQoYikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChjKSsiLyIrISFsKyIvIitlbmNvZGVVUklDb21wb25lbnQoZikrIi5naWYiOyQoImJvZHkiKS5hcHBlbmQoIjxpbWcgc3R5bGU9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JyBzcmM9JyIrYisiJyBhbHQ9JycgLz4iKX0sZ2V0VXNlZEVtYWlsRm9yTXVsdGlwbGVEZWFsZXJzOmZ1bmN0aW9uKCl7dmFyIGI9ImZyIjsiRU5HTElTSCI9PQokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJihiPSJlbiIpO3VyaT0iLyIrYisiL3BocC9nZXREZWFsZXJzRW1haWxUby5waHA\/bWFrZT0iK2EubWFrZSsiJm1vZGVsPSIrYS5tb2RlbCsiJnllYXI9IithLnllYXIrIiZjYj0iK01hdGguZmxvb3IoOTk5OTk5OSpNYXRoLnJhbmRvbSgpKTskLmFqYXgoe3VybDp1cmksYXN5bmM6ITEsc3VjY2VzczpmdW5jdGlvbihkKXtkPWQuc3BsaXQoInx8fCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgZFswXSYmMDxkWzBdLmxlbmd0aCYmKGEuc2VuZFRvPWRbMF0pOyJ1bmRlZmluZWQiIT10eXBlb2YgZFsxXSYmMDxkWzFdLmxlbmd0aCYmKGEuc2VuZFRvQURGRm9ybWF0PWRbMV0pfX0pfSxwcmVTZW5kSW1wbGljaXQ6ZnVuY3Rpb24oKXtpZihhLnBhcnRpYWwpcmV0dXJuITE7anNvbk9iamVjdD1hLmdldEpzb25PYmplY3QoKTt2YXIgYj17anNvbjpKU09OLnN0cmluZ2lmeShqc29uT2JqZWN0KSxwYXJ0aWFsOiEwfTskLmFqYXgoe3R5cGU6IlBPU1QiLAp1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihkKXskKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbChqc29uT2JqZWN0LmRlcGFydG1lbnQpOyQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoYS5zdWJqZWN0LnJlcGxhY2UoL1tcblxyXS9nLCIgIikpOyQoJ2lucHV0W25hbWU9InBhZ2VJRCJdJykudmFsKCQoIiNQQUdFSUQiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iY3VycmVudFVSTCJdJykudmFsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTskKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImJ1dHRvblBvc2l0aW9uIl0nKS52YWwoJCgiI25ld1ZEUEJ1dHRvblBvc2l0aW9uIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpOwpkJiZkLm92ZXJyaWRlTWltZVR5cGUmJmQub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBjPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2MubGVuZ3RoJiZkLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixjLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goYyl7Y29uc29sZS5lcnJvcihkKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKGQpfSxmYWlsdXJlOmZ1bmN0aW9uKGQpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWRFbWFpbE5vdFNlbnQiLGEubWFpbElELGEucG9wdXBPZmZlclR5cGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhzYXZlSGFuZGxlci5mYWlsTWVzc2FnZSxkKX0sc3RhdHVzQ29kZTp7NDA0OmZ1bmN0aW9uKCl7YWxlcnQoInBhZ2Ugbm90IGZvdW5kIil9fX0pfSxsb2dFdmVudDpmdW5jdGlvbihiLApkKXtkPWQ\/ZDphLm1haWxJRDtpZighYnx8IWQpcmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGQpLCExOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD9hY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsZCk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGQpfSxidWlsZENSTUtleTpmdW5jdGlvbigpe3ZhciBiPXBhcnNlSW50KCQoIiN0b3BzaXRlaWQiKS52YWwoKSwxMCksZD1hLmdldFVVSUQoKSxjPWdldENvb2tpZSgiZW1haWxGcm9tQXV0b0Fuc3dlciIpO2lmKCFpc05hTihiKSYmKCIiIT1jfHwiIiE9ZCkmJiJudW1iZXIiPT10eXBlb2YgYiYmMDxiKXt2YXIgZj1uZXcgRGF0ZSxrPWYuZ2V0TW9udGgoKSsxO2s9JC5iYXNlNjQuZW5jb2RlKGYuZ2V0RnVsbFllYXIoKSsKIi0iKygxMD5rPyIwIitrOmspKyItIisoMTA+Zi5nZXREYXRlKCk\/IjAiK2YuZ2V0RGF0ZSgpOmYuZ2V0RGF0ZSgpKSk7Zj1rLnN1YnN0cigwLDgpO2s9ay5zdWJzdHIoOCk7cmV0dXJuICQuYmFzZTY0LmVuY29kZShmKyQuYmFzZTY0LmVuY29kZShiKyI7IitkKyI7IitjKStrKX1yZXR1cm4iIn0sc2V0TWFrZU1vZGVsWWVhckZyb21MYXN0Vmlld2VkOmZ1bmN0aW9uKCl7dmFyIGI9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCksZD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCksYz0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBiJiYiIj09PWEubWFrZSYmKGEubWFrZT1iKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkJiYiIj09PWEubW9kZWwmJihhLm1vZGVsPWQpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGN8fCIiIT09YS55ZWFyJiYwIT09YS55ZWFyfHwoYS55ZWFyPWMpfSxyZWNhcHRjaGE6e2FzazohMCx3aWRnZXRJZDotMSxza2lwQnlQYXNzOiExLApvbjokLkRlZmVycmVkKCksaXNEMkNMb2FkZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmdyZWNhcHRjaGEmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5ncmVjYXB0Y2hhLkQyQ0xvYWRlZH0saW5pdDpmdW5jdGlvbigpe3RyeXsoZnVuY3Rpb24oYixkLGMsZixrKXtpZighYltrXXx8InVuZGVmaW5lZCI9PT10eXBlb2YgYltrXS5EMkNMb2FkZWQpe3ZhciBtPWQuY3JlYXRlRWxlbWVudChjKTtkPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYylbMF07bS5zcmM9ZjtkLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG0sZCk7bS5vbmxvYWQ9KCk9PntiW2tdJiYoYltrXS5EMkNMb2FkZWQ9ITApfX19KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcyIsImdyZWNhcHRjaGEiKX1jYXRjaChiKXtjb25zb2xlLmxvZyhiKX19LGxvYWQ6ZnVuY3Rpb24oKXtpZighKC0xPGEucmVjYXB0Y2hhLndpZGdldElkKSl0cnl7JCgnPGRpdiBpZD0iZW1haWxoYW5kbGVyX3JlY2FwdGNoYVdpZGdldCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+JykuYXBwZW5kVG8oImJvZHkiKSwKYS5yZWNhcHRjaGEud2lkZ2V0SWQ9Z3JlY2FwdGNoYS5yZW5kZXIoImVtYWlsaGFuZGxlcl9yZWNhcHRjaGFXaWRnZXQiLHtzaXRla2V5OiI2TGZwZEQwVUFBQUFBUGQ0UzdJa2U1RWR4MDF5M1lYZDVJLXUzZHhQIixjYWxsYmFjazphLnJlY2FwdGNoYS5vblN1Ym1pdCwiZXJyb3ItY2FsbGJhY2siOmEucmVjYXB0Y2hhLm9uRmFpbCxzaXplOiJpbnZpc2libGUifSl9Y2F0Y2goYil7Y29uc29sZS5sb2coYil9fSxvblN1Ym1pdDpmdW5jdGlvbihiKXthLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPWI7YS5yZWNhcHRjaGEub24ucmVzb2x2ZShiKX0sb25GYWlsOmZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIkdSQyBGYWlsIixhcmd1bWVudHMpfSxnZXRSZXNwb25zZTpmdW5jdGlvbigpe3JldHVybiBhLnJlY2FwdGNoYS5pc0QyQ0xvYWRlZCgpPyhhLnJlY2FwdGNoYS5sb2FkKCksZ3JlY2FwdGNoYS5leGVjdXRlKGEucmVjYXB0Y2hhLndpZGdldElkKSxhLnJlY2FwdGNoYS5vbik6JC5EZWZlcnJlZCgpLnJlc29sdmUoKX0sCnJlc2V0VG9rZW46ZnVuY3Rpb24oKXthLnJlY2FwdGNoYS5pc0QyQ0xvYWRlZCgpJiYoZ3JlY2FwdGNoYS5yZXNldChhLnJlY2FwdGNoYS53aWRnZXRJZCksYS5yZWNhcHRjaGEub249JC5EZWZlcnJlZCgpKX0sc2V0UmVzcG9uc2U6ZnVuY3Rpb24oKXt9fSxzYW5pdGl6ZUhUTUw6ZnVuY3Rpb24oYil7cmV0dXJuIGVuY29kZVVSSShiKX0sc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdDooKT0+e2lmKG51bGw9PT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiExO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmRhdGFzZXQuZGVwYXJ0bWVudHM7Yj1iLnNwbGl0KCI7Iik7aWYoLTE8Yi5pbmRleE9mKGEuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpKSlyZXR1cm4hMDsKdmFyIGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZT9kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZTpkb2N1bWVudC5sb2NhdGlvbi5ocmVmLm1hdGNoKC9bQS16XTpcL1wvW15cL10rXC8oW15cP10rKVw\/Py4qLylbMV07ZD1hLnNhbml0aXplSFRNTChkKTtsZXQgYz1PYmplY3QudmFsdWVzKE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh7bmV3OlsibmV1ZiIsIm5ldyJdLHVzZWQ6WyJvY2Nhc2lvbiIsInVzZWQiXSxzZXJ2aWNlOlsic2VydmljZSIsImVudHJldGllbiIsIm1haW50ZW5hbmNlIiwicmVwYWlyIl0sZmluYW5jZTpbImZpbmFuY2VtZW50IiwiZmluYW5jZSIsImNyZWRpdCIsImxvYW4iXX0pLmZpbHRlcihmPT57W2ZdPWY7cmV0dXJuLTE8Yi5pbmRleE9mKGYpfSkpKS5mbGF0KCk7cmV0dXJuKG5ldyBSZWdFeHAoIigiK2Muam9pbigifCIpKyIpIikpLnRlc3QoZC50b0xvd2VyQ2FzZSgpKX19O2pRdWVyeShmdW5jdGlvbihiKXtiPQpqc19kMmNfZ2V0X3ZhbCgiSVNWTSIpO3ZhciBkPWpzX2QyY19nZXRfdmFsKCJmZmRMMSIpLGM9anNfZDJjX2dldF92YWwoIkdSV0wiKS5zcGxpdCgiOyIpO2EuaWdub3JlQ2FwdGNoYT1ifHwtMSE9Yy5pbmRleE9mKGQpO2EuaWdub3JlQ2FwdGNoYXx8YS5yZWNhcHRjaGEuaW5pdCgpfSk7YS5yZXNldENhbGxiYWNrcygpO2EuYXNrUHVyY2hhc2VJbnRlbnQ9ZnVuY3Rpb24oYil7dmFyIGQ9InVuZGVpbmZlZCIhPXR5cGVvZiBiLnBhdGhuYW1lP2IucGF0aG5hbWU6Yi5ocmVmLm1hdGNoKC9bQS16XTpcL1wvW15cL10rXC8oW15cP10rKVw\/Py4qLylbMV07dmFyIGM9UmVnRXhwKCIoZGVtb25zdHJhdGV1cnN8ZGVtb3xsaXF1aWRhdGlvbnxjbGVhcmFuY2V8cHJvbW90aW9uc3xuZXVmfG5ld3xvY2Nhc2lvbnx1c2VkfGNyZWRpdHxmaW5hbmNlbWVudCkiKTtiPXtkZW1vbnN0cmF0ZXVyczoiZGVtbyIsY2xlYXJhbmNlOiJsaXF1aWRhdGlvbiIsIm5ldyI6Im5ldWYiLHByb21vdGlvbnM6InByb21vIiwKdXNlZDoib2NjYXNpb24iLGNyZWRpdDoiZmluYW5jZW1lbnQifTtyZXR1cm4gYy50ZXN0KGQudG9Mb3dlckNhc2UoKSk\/KGQ9ZC5tYXRjaChjKSxudWxsIT1kJiYoYS5wdXJjaGFzZV9pbnRlbnRfc2VjdGlvbj0idW5kZWZpbmVkIiE9dHlwZW9mIGJbZFsxXV0\/YltkWzFdXTpkWzFdKSwhMCk6ITF9KGRvY3VtZW50LmxvY2F0aW9uKTtyZXR1cm4gYX0oKSxlbWFpbFRyYWNraW5nPWZ1bmN0aW9uKCl7dmFyIGU9e2JyYW5kOiIiLG1vZGVsOiIiLHllYXI6IiIsaXNwcm9tbzohMSxpc2V4cHJlc3M6ITEsaXNob21lcGFnZTohMSxzZWN0aW9uOiIiLHRleHRDYXJTZWN0aW9uVHlwZToiVVNFRCIsaXNNb2JpbGVOZXdWRFA6ITEsaXNGdWxsV2lkdGg6ITEsYnV0dG9uUG9zaXRpb246IiIsZGVhbGVyTmFtZToiIn0sZz1mdW5jdGlvbihjKXt2YXIgZj1bXSxrPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxtPWMubW9kZWw\/Yy5tb2RlbDplbWFpbEhhbmRsZXIubW9kZWw7Yz1jLnllYXI\/CmMueWVhcjplbWFpbEhhbmRsZXIueWVhcjtrLmxlbmd0aCYmZi5wdXNoKGspO20ubGVuZ3RoJiZmLnB1c2gobSk7Yy5sZW5ndGgmJmYucHVzaChjKTtyZXR1cm4gZi5qb2luKCItIil9LGE9ZnVuY3Rpb24oYyl7dmFyIGY9eyJob21lcGFnZS5odG1sIjoiSG9tZS1QYWdlIiwiY29udGFjdHVzLmh0bWwiOiJDb250YWN0VXMiLCJuZXdjYXJkZXRhaWwuaHRtbCI6Ik5ldy1WRFAiLCJuZXdjYXJzLmh0bWwiOiJOZXctU1JQIiwiYnVpbGRhbmRwcmljZS5odG1sIjoiTmV3LUImUCIsInJlc3VtZS1idWlsZGFuZHByaWNlLmh0bWwiOiJOZXctQiZQLVJlc3VtZSIsImNvbXBhcmVOZXdWZWhpY2xlcy5odG1sIjoiTmV3LUNvbXBhcmUiLCJ1c2VkY2Fycy5odG1sIjoiVXNlZC1TUlAiLCJjYXJkZXRhaWwuaHRtbCI6IlVzZWQtVkRQIiwiY3JlZGl0Lmh0bWwiOiJEZW1hbmRlcyAtIEZpbmFuY2VtZW50IiwiZGVhbGVydHJhY2suaHRtbCI6IkRlbWFuZGVzIC0gRmluYW5jZW1lbnQiLCJwcm9tb3Rpb24uaHRtbCI6IlByb21vdGlvbnMiLAoicHJvbW90aW9uc2FsZXMuaHRtbCI6IlByb21vdGlvbnMiLCJwcm9tb3Rpb25zZXJ2aWNlLmh0bWwiOiJQcm9tb3Rpb25zIiwicGFydHNSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFBp77+9Y2VzIiwic2VydmljZXMuaHRtbCI6IlNlcnZpY2UiLCJzZXJ2aWNlUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBSRFYgU2VydmljZSIsImJvZHlTaG9wLmh0bWwiOiJEZW1hbmRlcyAtIFJEViBDYXJvc3NlcmllIiwidGlyZXNSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFBuZXVzIiwib3VydGVhbS5odG1sIjoiVGVhbSIsInRlc3Rkcml2ZS5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1PY2Nhc2lvbiIsInRlc3Rkcml2ZW5ldy5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1OZXVmIiwiYnJvY2h1cmVzLmh0bWwiOiJEZW1hbmRlcyAtIEJyb2NodXJlcyIsImpvYm9mZmVyLmh0bWwiOiJEZW1hbmRlcyAtIEVtcGxvaXMiLCJtYWtlb2ZmZXJuZXcuaHRtbCI6IkRlbWFuZGVzIC0gT2ZmcmUgLSBOZXVmIiwKIm1ha2VvZmZlci5odG1sIjoiRGVtYW5kZXMgLSBPZmZyZSAtIE9jY2FzaW9uIiwicHJpY2VyZXF1ZXN0bmV3Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBOZXVmIiwicHJpY2VyZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBPY2Nhc2lvbiIsImZpbmRjYXIuaHRtbCI6IkRlbWFuZGVzIC0gUmVjaGVyY2hlIE9jY2FzaW9uIiwidHJhZGVpbm5ldy5odG1sIjoiRGVtYW5kZXMgLSBFY2hhbmdlIE5ldWYiLCJ0cmFkZWluLmh0bWwiOiJEZW1hbmRlcyAtIEVjaGFuZ2UgT2NjYXNpb24ifSxrPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1yZXN1bWUiKSxtPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1vcHRpb25zIik7ImJ1aWxkYW5kcHJpY2UuaHRtbCI9PWMucGFnZUlEJiYoa3x8bSkmJihjLnBhZ2VJRD0icmVzdW1lLWJ1aWxkYW5kcHJpY2UuaHRtbCIpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZltjLnBhZ2VJRF0\/ZltjLnBhZ2VJRF06CiJPdGhlciJ9LGI9ZnVuY3Rpb24oYyl7dmFyIGY9IkRlbWFuZGVzIixrPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxtPWMubW9kZWw\/Yy5tb2RlbDplbWFpbEhhbmRsZXIubW9kZWw7Yy5pc3Byb21vJiYoZis9Ii1Qcm9tb3Rpb24iKTswPGsubGVuZ3RoJiYwPG0ubGVuZ3RoJiYhYy5pc2hvbWVwYWdlP2Y9Yy5pc3Byb21vP2YrKCItIitnKGMpKTpmK1siIixrLG0sYy5zZWN0aW9uXS5qb2luKCItIik6Yy5pc3Byb21vJiZjLmlzaG9tZXBhZ2UmJihmKz0iLUluZGV4Iik7IjEiPT1jLmlzZXhwcmVzcyYmKGMudGV4dENhclNlY3Rpb25UeXBlJiYoZj0iRGVtYW5kZXMtRXhwcmVzcyIpLGYrPSItIitnKGMpLGYrPSItIitjLnNlY3Rpb24pO3JldHVybiBmfSxkPWZ1bmN0aW9uKGMpe3ZhciBmPTEyMDA8d2luZG93LnNjcmVlbi5hdmFpbFdpZHRoPyI+MTIwMHB4IC0gIi5pc0Z1bGxXaWR0aDoiPDEyMDBweCAtIE5vcm1hbCBWRFAiO1tmLGMuYnV0dG9uUG9zaXRpb25dLmpvaW4oIi0iKTsKYz1bYy5kZWFsZXJOYW1lLGYsIkxlYWQiXS5qb2luKCItIik7Z2FUcmFjaygiYyIsIk5ldy1WRFAtRGVza3RvcC1MYXlvdXQtQ1IiLGFjdGlvbixjLDEpfTt0aGlzLnRyYWNrPWZ1bmN0aW9uKGMpe2lmKGdldENvb2tpZSgibGVhZFNlbmQiKSlyZXR1cm4gZGVidWcoImxlYWQgc2VudCIpO3NldENvb2tpZSgibGVhZFNlbmQiLCEwLDEpO2M9JC5leHRlbmQoe30sZSxjKTtjLmN1cnJlbnRVUkw9Yy5jdXJyZW50VVJMP2MuY3VycmVudFVSTDp3aW5kb3cubG9jYXRpb24uaHJlZjtjLmlzcHJvbW89IjEiPT1jLmlzcHJvbW87Yy5pc2hvbWVwYWdlPSIxIj09Yy5pc2hvbWVwYWdlO3ZhciBmPWEoYyk7Z2FUcmFjaygiIiwiQ291cnJpZWxzIixjLmxhYmVsLGIoYyksMSk7Z2FUcmFjaygiYyIsIkNvdXJyaWVscy1kZXB0IixjLmRlcGFydG1lbnQsZyhjKSwxKTtnYVRyYWNrKCJjIiwiQ291cnJpZWxzLXBhZ2UiLGYsYy5sZWFkVHlwZSwxKTtjLmlzTW9iaWxlTmV3VkRQJiYiTmV3LVZEUCI9PWYmJgpkKGMpO3RyeXtkMmNfZ2FBY2NvdW50cy5hbGwubWFwKGZ1bmN0aW9uKGspe2d0YWcoImNvbmZpZyIsayx7cGFnZV9wYXRoOiIvY29uZmlybWF0aW9uLmh0bWwifSl9KSxndGFnKCJjb25maWciLCJHLVo1UThaNUM3S0YiLHtwYWdlX3BhdGg6Ii9jb25maXJtYXRpb24uaHRtbCJ9KX1jYXRjaChrKXtkZWJ1ZyhrKX19O3JldHVybiB0aGlzfSgpLGdldE1haWxTZW50SGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgZz17dGltZW91dENhbGxiYWNrOm51bGwsdGltZW91dDpudWxsfTtnLmlkVG9BZGQ9ZT9lOiIiOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLmRlZmF1bHRTdWNjZXNzIikuc2hvdygpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLnNlcnZpY2VTdWNjZXNzIikuaGlkZSgpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5sZW5ndGh8fChlPSIiLGcuaWRUb0FkZD0iIiwiU0VSVklDRSIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYiUEFSVFMiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCl8fAooJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuZGVmYXVsdFN1Y2Nlc3MiKS5oaWRlKCksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuc2VydmljZVN1Y2Nlc3MiKS5zaG93KCkpO2cuc2hvd1N1Y2Nlc3M9ZnVuY3Rpb24oKXtnZXRDb29raWUoInByZXZlbnREdXBsaWNhdGVDcmVkaXRTY29yZSIpfHxnZXRDb29raWUoImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwU2hvd24iKXx8Z2V0Q29va2llKCJjcmVkaXRTY29yZUVtYmVkZGVkRmlsbGVkIil8fCIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYiIiE9ZW1haWxIYW5kbGVyLnVzZXJBZGRyZXNzJiYiIiE9ZW1haWxIYW5kbGVyLmJpcnRoZGF0ZXx8Im5ldyIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkmJiJ1c2VkIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKXx8ISQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLmxlbmd0aHx8IlRyYWRlSW5CYXJQb3B1cENvbnRhaW5lciI9PQplbWFpbEhhbmRsZXIucG9wdXBkaXY\/KCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5wYXJlbnQoKS5pcygiYm9keSIpfHwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkuYXBwZW5kVG8oImJvZHkiKSwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UrIiAuY29uZmlybV9zdWNjZXNzQ29udGludWUiKS5vbigiY2xpY2siLGcuY2xvc2VTdWNjZXNzKSk6JCgiI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpOyQoIiNlbWFpbG1zZ2ZybSIrZy5pZFRvQWRkKS50cmlnZ2VyKCJzdWJtaXQiKX07CmcuY2xvc2VTdWNjZXNzPWZ1bmN0aW9uKCl7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2cuaWRUb0FkZCkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIik7bnVsbCE9Zy50aW1lb3V0Q2FsbGJhY2smJmcudGltZW91dENhbGxiYWNrKCk7cmV0dXJuITF9O2cuc2hvd0ZhaWw9ZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZy5pZFRvQWRkKS5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9KTskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSsiIC5jb25maXJtX2ZhaWxDb250aW51ZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9O3JldHVybiBnfSxtYWlsU2VudEhhbmRsZXI9bmV3IGdldE1haWxTZW50SGFuZGxlcigiIik7CmZ1bmN0aW9uIHN0b3JhZ2VBdmFpbGFibGUoZSl7dHJ5e3ZhciBnPXdpbmRvd1tlXTtnLnNldEl0ZW0oIl9fc3RvcmFnZV90ZXN0X18iLCJfX3N0b3JhZ2VfdGVzdF9fIik7Zy5yZW1vdmVJdGVtKCJfX3N0b3JhZ2VfdGVzdF9fIik7cmV0dXJuITB9Y2F0Y2goYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBET01FeGNlcHRpb24mJigyMj09PWEuY29kZXx8MTAxND09PWEuY29kZXx8IlF1b3RhRXhjZWVkZWRFcnJvciI9PT1hLm5hbWV8fCJOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRCI9PT1hLm5hbWUpJiZnJiYwIT09Zy5sZW5ndGh9fQp2YXIgZm9ybUZpbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLGc9c3RvcmFnZUF2YWlsYWJsZSgibG9jYWxTdG9yYWdlIiksYT1udWxsLGI9ITAsZD1bXSxjPXtuYW1lOlsiaW5wdXQubmFtZSIsJ2lucHV0W25hbWU9Im5hbWUiXSddLHBvc3RhbDpbImlucHV0LnBvc3RhbCIsJ2lucHV0W25hbWU9InBvc3RhbCJdJ10sZmlyc3ROYW1lOidpbnB1dC5maXJzdE5hbWUgaW5wdXQuZmlyc3RuYW1lIGlucHV0W25hbWU9ImZpcnN0bmFtZSJdIGlucHV0W25hbWU9ImZpcnN0TmFtZSJdIGlucHV0I2ZpcnN0bmFtZSBpbnB1dCNmaXJzdE5hbWUgaW5wdXQjbWluaV9mbmFtZScuc3BsaXQoIiAiKSxsYXN0TmFtZTonaW5wdXQubGFzdE5hbWUgaW5wdXQubGFzdG5hbWUgaW5wdXRbbmFtZT0ibGFzdG5hbWUiXSBpbnB1dFtuYW1lPSJsYXN0TmFtZSJdIGlucHV0I2xhc3RuYW1lIGlucHV0I2xhc3ROYW1lIGlucHV0I21pbmlfbG5hbWUnLnNwbGl0KCIgIikscGhvbmU6WyJpbnB1dC5waG9uZSIsJ2lucHV0W25hbWU9InBob25lIl0nLAonaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScsImlucHV0I21pbmlfcGhvbmUiLCdbdHlwZT0idGVsIl0nXSxlbWFpbDpbImlucHV0LmVtYWlsIiwnaW5wdXRbbmFtZT0iZW1haWwiXScsJ2lucHV0W25hbWU9ImVtYWlsQWRkcmVzcyJdJywiaW5wdXQjbWluaV9lbWFpbCJdfSxmPWZ1bmN0aW9uKHApe2lmKCFnKXJldHVybiExO3ZhciBoPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJmb3JtRmlsbERhdGEiKTtpZihudWxsPT09aClyZXR1cm4hMTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL3Byb3h5X3NkMmMvc2VydmljZS9kMmMuZW5jcnlwdGlvbi5nZXQiLGRhdGE6e2RhdGE6aH19KS5kb25lKGZ1bmN0aW9uKGwpe2lmKGwmJiJmdW5jdGlvbiI9PT10eXBlb2YgcCl0cnl7cChKU09OLnBhcnNlKGwuZGF0YSkpfWNhdGNoKHUpe2NvbnNvbGUubG9nKHUpfX0pfSxrPWZ1bmN0aW9uKCl7Yj0hMDthPW51bGw7ZC5mb3JFYWNoKGZ1bmN0aW9uKHApe3AuZmlsbGVkPSExfSl9LG09ZnVuY3Rpb24ocCl7cSgidXNlci5sb2FkZWQiLApmdW5jdGlvbigpe2lmKCFuKHApKXtkLnB1c2goe3Njb3BlOnAsZmlsbGVkOiEwfSk7Zm9yKHZhciBoIGluIGMpYS5oYXNPd25Qcm9wZXJ0eShoKSYmcC5maW5kKCQoY1toXS5qb2luKCIsIikpKS52YWwoYVtoXSk7cigiZm9ybS5maWxsZWQiKX19KTtudWxsPT09YSYmYj8oYj0hMSxmKGZ1bmN0aW9uKGgpe2gucG9zdGFsPWgucG9zdGFsLnRvVXBwZXJDYXNlKCk7aC5maXJzdE5hbWU9aC5maXJzdE5hbWUudHJpbSgpO2gubGFzdE5hbWU9aC5sYXN0TmFtZS50cmltKCk7ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWw9aC5wb3N0YWw7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1oLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWguZmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9aC5sYXN0TmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPWgucGhvbmU7aC5uYW1lPShoLmZpcnN0TmFtZSsiICIraC5sYXN0TmFtZSkudHJpbSgpO2E9aDtyKCJ1c2VyLmxvYWRlZCIpfSkpOgphJiZyKCJ1c2VyLmxvYWRlZCIpfSxuPWZ1bmN0aW9uKHApe3JldHVybihfc2NvcGU9ZC5maW5kKGZ1bmN0aW9uKGgpe2lmKGguc2NvcGUuaXMocCkpcmV0dXJuIGh9KSk\/X3Njb3BlLmZpbGxlZDohMX0sdD1bXSxyPWZ1bmN0aW9uKHApe3ZhciBoPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2lmKHRbcF0pe3ZhciBsPXRbcF0uc2xpY2UoKTt2YXIgdT1sLmxlbmd0aDtmb3IoaT0wO2k8dTtpKyspbFtpXS5hcHBseSh0aGlzLGgpfX0sdj1mdW5jdGlvbihwLGgpe3RbcF18fCh0W3BdPVtdKTt0W3BdLnB1c2goaCl9LHE9ZnVuY3Rpb24ocCxoKXt2KHAsZnVuY3Rpb24gdSgpe3RbcF0uc3BsaWNlKHRbcF0uaW5kZXhPZih1KSwxKTtoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfTskKGZ1bmN0aW9uKCl7ZyYmKCQoZG9jdW1lbnQpLm9uKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbihwLGgpe3A9aC50YXJnZXQ\/aC50YXJnZXQ6JChoKTttKHApfSksJChkb2N1bWVudCkub24oInBvcHVwaXplci5vbkNsb3NlIiwKZnVuY3Rpb24ocCxoKXt9KSwkKCJmb3JtIikuZWFjaChmdW5jdGlvbihwLGgpe20oJChoKSl9KSl9KTtyZXR1cm4gZT17c2F2ZTpmdW5jdGlvbihwKXtpZighZylyZXR1cm4hMTthJiYiIj09PXAucG9zdGFsJiYocC5wb3N0YWw9YS5wb3N0YWwpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvcHJveHlfc2QyYy9zZXJ2aWNlL2QyYy5lbmNyeXB0aW9uLnNldCIsZGF0YTp7ZGF0YTpKU09OLnN0cmluZ2lmeShwKX19KS5kb25lKGZ1bmN0aW9uKGgpe2gmJihsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZm9ybUZpbGxEYXRhIixoLmRhdGEpLGsoKSl9KX19fSgpOwovKiogL2pzL2poYXNodGFibGUuanMgKiovCnZhciBfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDc6MDciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM1OjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIzLTAxLTEyIDExOjMzOjQ5IjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQzOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQwOjEzIjsidXNlIHN0cmljdCI7CnZhciBIYXNodGFibGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB1KGEpe2lmKCJzdHJpbmciPT10eXBlb2YgYSlyZXR1cm4gYTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5oYXNoQ29kZSlyZXR1cm4gYT1hLmhhc2hDb2RlKCksInN0cmluZyI9PXR5cGVvZiBhP2E6dShhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS50b1N0cmluZylyZXR1cm4gYS50b1N0cmluZygpO3RyeXtyZXR1cm4gU3RyaW5nKGEpfWNhdGNoKGMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSl9fWZ1bmN0aW9uIEIoYSxjKXtyZXR1cm4gYS5lcXVhbHMoYyl9ZnVuY3Rpb24gQyhhLGMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBjLmVxdWFscz9jLmVxdWFscyhhKTphPT09Y31mdW5jdGlvbiB2KGEpe3JldHVybiBmdW5jdGlvbihjKXtpZihudWxsPT09Yyl0aHJvdyBFcnJvcigibnVsbCBpcyBub3QgYSB2YWxpZCAiK2EpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYyl0aHJvdyBFcnJvcihhKwoiIG11c3Qgbm90IGJlIHVuZGVmaW5lZCIpO319ZnVuY3Rpb24gcShhLGMsaCxkKXt0aGlzWzBdPWE7dGhpcy5lbnRyaWVzPVtdO3RoaXMuYWRkRW50cnkoYyxoKTtudWxsIT09ZCYmKHRoaXMuZ2V0RXF1YWxpdHlGdW5jdGlvbj1mdW5jdGlvbigpe3JldHVybiBkfSl9ZnVuY3Rpb24gcihhKXtyZXR1cm4gZnVuY3Rpb24oYyl7Zm9yKHZhciBoPXRoaXMuZW50cmllcy5sZW5ndGgsZCxrPXRoaXMuZ2V0RXF1YWxpdHlGdW5jdGlvbihjKTtoLS07KWlmKGQ9dGhpcy5lbnRyaWVzW2hdLGsoYyxkWzBdKSlzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiEwO2Nhc2UgMTpyZXR1cm4gZDtjYXNlIDI6cmV0dXJuW2gsZFsxXV19cmV0dXJuITF9fWZ1bmN0aW9uIHcoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2Zvcih2YXIgaD1jLmxlbmd0aCxkPTAsaz10aGlzLmVudHJpZXMubGVuZ3RoO2Q8azsrK2QpY1toK2RdPXRoaXMuZW50cmllc1tkXVthXX19ZnVuY3Rpb24gbShhLGMpe3JldHVybihhPWFbY10pJiYKYSBpbnN0YW5jZW9mIHE\/YTpudWxsfWZ1bmN0aW9uIHgoYSxjKXt2YXIgaD10aGlzLGQ9W10saz17fSxuPSJmdW5jdGlvbiI9PXR5cGVvZiBhP2E6dSxEPSJmdW5jdGlvbiI9PXR5cGVvZiBjP2M6bnVsbDt0aGlzLnB1dD1mdW5jdGlvbihiLGUpe3AoYik7eShlKTt2YXIgZj1uKGIpLGcsbD1udWxsOyhnPW0oayxmKSk\/KGY9Zy5nZXRFbnRyeUZvcktleShiKSk\/KGw9ZlsxXSxmWzFdPWUpOmcuYWRkRW50cnkoYixlKTooZz1uZXcgcShmLGIsZSxEKSxkW2QubGVuZ3RoXT1nLGtbZl09Zyk7cmV0dXJuIGx9O3RoaXMuZ2V0PWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKTtpZihlPW0oayxlKSlpZihiPWUuZ2V0RW50cnlGb3JLZXkoYikpcmV0dXJuIGJbMV07cmV0dXJuIG51bGx9O3RoaXMuY29udGFpbnNLZXk9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpO3JldHVybihlPW0oayxlKSk\/ZS5jb250YWluc0tleShiKTohMX07dGhpcy5jb250YWluc1ZhbHVlPWZ1bmN0aW9uKGIpe3koYik7CmZvcih2YXIgZT1kLmxlbmd0aDtlLS07KWlmKGRbZV0uY29udGFpbnNWYWx1ZShiKSlyZXR1cm4hMDtyZXR1cm4hMX07dGhpcy5jbGVhcj1mdW5jdGlvbigpe2QubGVuZ3RoPTA7az17fX07dGhpcy5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIWQubGVuZ3RofTt2YXIgdD1mdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sZj1kLmxlbmd0aDtmLS07KWRbZl1bYl0oZSk7cmV0dXJuIGV9fTt0aGlzLmtleXM9dCgia2V5cyIpO3RoaXMudmFsdWVzPXQoInZhbHVlcyIpO3RoaXMuZW50cmllcz10KCJnZXRFbnRyaWVzIik7dGhpcy5yZW1vdmU9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpLGY9bnVsbCxnPW0oayxlKTtpZihnJiYoZj1nLnJlbW92ZUVudHJ5Rm9yS2V5KGIpLG51bGwhPT1mJiYhZy5lbnRyaWVzLmxlbmd0aCkpe2E6e2ZvcihiPWQubGVuZ3RoO2ItLTspaWYoZz1kW2JdLGU9PT1nWzBdKWJyZWFrIGE7Yj1udWxsfXooZCxiKTtkZWxldGUga1tlXX1yZXR1cm4gZn07CnRoaXMuc2l6ZT1mdW5jdGlvbigpe2Zvcih2YXIgYj0wLGU9ZC5sZW5ndGg7ZS0tOyliKz1kW2VdLmVudHJpZXMubGVuZ3RoO3JldHVybiBifTt0aGlzLmVhY2g9ZnVuY3Rpb24oYil7Zm9yKHZhciBlPWguZW50cmllcygpLGY9ZS5sZW5ndGgsZztmLS07KWc9ZVtmXSxiKGdbMF0sZ1sxXSl9O3RoaXMucHV0QWxsPWZ1bmN0aW9uKGIsZSl7Yj1iLmVudHJpZXMoKTtmb3IodmFyIGYsZyxsLEE9Yi5sZW5ndGgsRT0iZnVuY3Rpb24iPT10eXBlb2YgZTtBLS07KWY9YltBXSxnPWZbMF0sZj1mWzFdLEUmJihsPWguZ2V0KGcpKSYmKGY9ZShnLGwsZikpLGgucHV0KGcsZil9O3RoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgeChhLGMpO2IucHV0QWxsKGgpO3JldHVybiBifX12YXIgej0iZnVuY3Rpb24iPT10eXBlb2YgQXJyYXkucHJvdG90eXBlLnNwbGljZT9mdW5jdGlvbihhLGMpe2Euc3BsaWNlKGMsMSl9OmZ1bmN0aW9uKGEsYyl7dmFyIGg7aWYoYz09PWEubGVuZ3RoLTEpYS5sZW5ndGg9CmM7ZWxzZXt2YXIgZD1hLnNsaWNlKGMrMSk7YS5sZW5ndGg9Yzt2YXIgaz0wO2ZvcihoPWQubGVuZ3RoO2s8aDsrK2spYVtjK2tdPWRba119fSxwPXYoImtleSIpLHk9digidmFsdWUiKTtxLnByb3RvdHlwZT17Z2V0RXF1YWxpdHlGdW5jdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYS5lcXVhbHM\/QjpDfSxnZXRFbnRyeUZvcktleTpyKDEpLGdldEVudHJ5QW5kSW5kZXhGb3JLZXk6cigyKSxyZW1vdmVFbnRyeUZvcktleTpmdW5jdGlvbihhKXtyZXR1cm4oYT10aGlzLmdldEVudHJ5QW5kSW5kZXhGb3JLZXkoYSkpPyh6KHRoaXMuZW50cmllcyxhWzBdKSxhWzFdKTpudWxsfSxhZGRFbnRyeTpmdW5jdGlvbihhLGMpe3RoaXMuZW50cmllc1t0aGlzLmVudHJpZXMubGVuZ3RoXT1bYSxjXX0sa2V5czp3KDApLHZhbHVlczp3KDEpLGdldEVudHJpZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBjPWEubGVuZ3RoLGg9MCxkPXRoaXMuZW50cmllcy5sZW5ndGg7aDxkOysraClhW2MrCmhdPXRoaXMuZW50cmllc1toXS5zbGljZSgwKX0sY29udGFpbnNLZXk6cigwKSxjb250YWluc1ZhbHVlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYz10aGlzLmVudHJpZXMubGVuZ3RoO2MtLTspaWYoYT09PXRoaXMuZW50cmllc1tjXVsxXSlyZXR1cm4hMDtyZXR1cm4hMX19O3JldHVybiB4fSgpOwovKiogL2pzL25ld2NhcnMuanMgKiovCnZhciBfX19kMmNfbmV3Y2Fyc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6MTIiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGUpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWUudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGU9YVtiXTtpZihlJiZlLk1hdGg9PU1hdGgpcmV0dXJuIGV9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBlPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWUpcmV0dXJuIGFbYl07ZT1hW2VdO3JldHVybiB2b2lkIDAhPT1lP2U6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsZSxnKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGUsZyk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGUsZykpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGUsZyl7ZT0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZz0wO2c8YS5sZW5ndGgtMTtnKyspe3ZhciBoPWFbZ107aWYoIShoIGluIGUpKXJldHVybjtlPWVbaF19YT1hW2EubGVuZ3RoLTFdO2c9ZVthXTtiPWIoZyk7YiE9ZyYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGUsZyl7dmFyIGg9YS5zcGxpdCgiLiIpO2E9MT09PWgubGVuZ3RoO2c9aFswXTtnPSFhJiZnIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgbj0wO248aC5sZW5ndGgtMTtuKyspe3ZhciB0PWhbbl07aWYoISh0IGluIGcpKXJldHVybjtnPWdbdF19aD1oW2gubGVuZ3RoLTFdO2U9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWU\/Z1toXTpudWxsO2I9YihlKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWUmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSYmKGU9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGgpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2UrIiQiK2gpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZywkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChlKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGU9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZSk7aWYoZS5kb25lKXRoaXMueWllbGRSZXN1bHQ9ZS52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoZS52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsZSl7ZT90aGlzLmZpbmFsbHlDb250ZXh0c19bZV09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGUpe3JldHVybnt2YWx1ZTplLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixlKXt0cnl7dmFyIGc9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZyk7aWYoIWcuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGc7dmFyIGg9Zy52YWx1ZX1jYXRjaChuKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKG4pLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2UuY2FsbCh0aGlzLmNvbnRleHRfLGgpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGcpe3JldHVybiBhLm5leHQoZyl9ZnVuY3Rpb24gZShnKXtyZXR1cm4gYS50aHJvdyhnKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZyxoKXtmdW5jdGlvbiBuKHQpe3QuZG9uZT9nKHQudmFsdWUpOlByb21pc2UucmVzb2x2ZSh0LnZhbHVlKS50aGVuKGIsZSkudGhlbihuLGgpfW4oYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpsZXQgJGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDA7Cm5ld0NhcnM9e2lzTW9iaWxlOiIxIj09PShudWxsPT0oJGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlzTW9iaWxlIikpP3ZvaWQgMDokanNjb21wJG9wdGNoYWluJHRtcDE5MzczODk4NTkkMC52YWx1ZSksY29udGFpbmVyOmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXdjYXJDb250YWluZXIiKSxyZXNpemVNYWluV2luZG93OmZ1bmN0aW9uKCl7aWYoIW5ld0NhcnMuaXNNb2JpbGUpe3ZhciBhPSQoIiNyaWdodFNpZGUiKS5oZWlnaHQoKS0zNSxiPSQoIiNuZXdjYXJDb250YWluZXIiKS5oZWlnaHQoKTshaXNOYU4oYSkmJiFpc05hTihiKSYmYT5iJiYoJCgiI25ld2NhckNvbnRhaW5lciIpLmhlaWdodChhKSwkKCIjZm9vdGVyRGl2IikuY3NzKCJwYWRkaW5nIiwiMHB4IikpfX0sc2V0UGF5bWVudFRvb2x0aXBzOigpPT57bmV3Q2Fycy5pc01vYmlsZT8kKCIuZGl2Q2Fyc0JveFdyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRJbmZvQnViYmxlIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGE9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTsKJCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDphLGdyYXZpdHk6ImVhc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGIpe319KX0pOiQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGEpe3RyeXtpZigkKHRoaXMpLmRhdGEoInRvb2x0aXBDcmVhdGVkIikpcmV0dXJuITE7JCh0aGlzKS5kYXRhKCJ0b29sdGlwQ3JlYXRlZCIsMSk7JCh0aGlzKS5maW5kKCIuZGl2Q2FyUGF5bWVudENvbnRhaW5lclRvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToid2VzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goYil7fX0pfSl9LG5ld0NhcnNGaWx0ZXI6KCk9PntmdW5jdGlvbiBhKCl7dmFyIGM9JCgiLmRpdkNhdGVnb3J5Qm94V3JhcHBlciIpLm1hcChmdW5jdGlvbihkLApmKXtyZXR1cm4gcGFyc2VJbnQoJChmKS5hdHRyKCJuYlZpc2libGUiKSl9KS5nZXQoKS5yZWR1Y2UoZnVuY3Rpb24oZCxmKXtyZXR1cm4gZCtmfSwwKTtyZXR1cm57ZmlsdGVyczp7c3RhdHVzOiJOZXciLGJvZHlTdHlsZTokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmNhdGVnb3J5IikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikudmFsKCl9KS5nZXQoKSxmdWVsVHlwZTokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmZ1ZWx0eXBlIikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikuZGF0YSgiZXNzZW5jZSIpfSkuZ2V0KCksZHJpdmVUcmFpbjokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmRyaXZldHJhaW4iKS5tYXAoZnVuY3Rpb24oZCxmKXtyZXR1cm4gJChmKS5kYXRhKCJkcml2ZXRyYWluIil9KS5nZXQoKSxtYXhQcmljZTpwLm1heCxtaW5QcmljZTpwLm1pbn0sdmVoaWNsZUNvdW50OmN9fXZhciBiPSExO3RyeXsidW5kZWZpbmVkIj09alF1ZXJ5LmJyb3dzZXIubXNpZT8KYj0hMDo5PD1wYXJzZUludChqUXVlcnkuYnJvd3Nlci52ZXJzaW9uLDEwKSYmKGI9ITApfWNhdGNoKGMpe31pZigidW5kZWZpbmVkIj09dHlwZW9mIGJveEJsb2Nrc3x8MT5ib3hCbG9ja3MubGVuZ3RoKWI9ITE7LTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY2FtaW9ucy1jb21tZXJjaWF1eCIpJiYoYj0hMSk7aWYoYil7dmFyIGU9bmV3Q2Fycy5nZXRGaWx0ZXIoKTtiPWdldFVybFZhcnMoKTt2YXIgZz1iLmhhc093blByb3BlcnR5KCJib2R5IiksaD1iLmhhc093blByb3BlcnR5KCJmdWVsIik7bmV3Q2Fycy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgiLmZpbHRlckNoZWNrIikuZm9yRWFjaChjPT57ZyYmYy5jbGFzc0xpc3QuY29udGFpbnMoImNhdGVnb3J5Iil8fGgmJmMuY2xhc3NMaXN0LmNvbnRhaW5zKCJmdWVsdHlwZSIpfHwoYy5jaGVja2VkPSFlLmhhc093blByb3BlcnR5KGMuaWQpfHwhMD09PWVbYy5pZF0pfSk7JCgiI2ZpbHRlck1haW5Cb3giKS5zaG93KCk7CmZvcih2YXIgbiBpbiBib3hCbG9ja3Mpe2I9MDtmb3IodmFyIHQgaW4gYm94QmxvY2tzW25dKWIrKzskKCIjY2xhc3MiK24rIl9jb250YWluZXIiKS5hdHRyKCJuYlZpc2libGUiLGIpfSQoIi5maWx0ZXJDaGVjayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYz0kKHRoaXMpO25ld0NhcnMuc2V0RmlsdGVyKGMuYXR0cigiaWQiKSxjLmlzKCI6Y2hlY2tlZCIpKTtzZXRUaW1lb3V0KHgsMTAwKTtpZihjLmhhc0NsYXNzKCJjYXRlZ29yeSIpKXt2YXIgZD1jLnZhbCgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtCKGQpfSwxMDApfX0pOyQoIi5yYWRpb1NvcnQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7QygkKHRoaXMpLnZhbCgpKX0pOyQoIi5maWx0ZXJTcGFuIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBjPSQodGhpcyk7bmV3Q2Fycy5zZXRGaWx0ZXIoImZpbHRlclNwYW4iLGMuYXR0cigicmVsIikpO2M9IiMiK2MuYXR0cigicmVsIik7JChjKS50cmlnZ2VyKCJjbGljayIpfSk7CnZhciB5PSIiLHc9IiIsRz1mdW5jdGlvbihjLGQpe3JldHVybiBjLmNvbnNvPT1kLmNvbnNvPzA6Yy5jb25zbz5kLmNvbnNvPzE6LTF9LEg9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jb25zbz09ZC5jb25zbz8wOmMuY29uc28+ZC5jb25zbz8tMToxfSxJPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMucHJpY2U9PWQucHJpY2U\/MDpjLnByaWNlPmQucHJpY2U\/MTotMX0sSj1mdW5jdGlvbihjLGQpe3JldHVybiBjLnByaWNlPT1kLnByaWNlPzA6Yy5wcmljZT5kLnByaWNlPy0xOjF9LEs9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jYXJNb2RlbD09ZC5jYXJNb2RlbD9jLnllYXI+ZC55ZWFyPy0xOmMueWVhcjxkLnllYXI\/MTowOmMuY2FyTW9kZWw+ZC5jYXJNb2RlbD8xOi0xfSxDPWZ1bmN0aW9uKGMsZCl7dz0idW5kZWZpbmVkIiE9PXR5cGVvZiBkP2Q6eT09Yz8iQXNjIj09dz8iRGVzYyI6IkFzYyI6IkFzYyI7eT1jO25ld0NhcnMuc2V0RmlsdGVyKCJzb3J0QnkiLHkpO25ld0NhcnMuc2V0RmlsdGVyKCJzb3J0RGlyIiwKdyk7Zm9yKHZhciBmIGluIGJveEJsb2Nrcyl7Yz0xO2Q9W107Zm9yKHZhciBtIGluIGJveEJsb2Nrc1tmXSl7dmFyIGw9Ym94QmxvY2tzW2ZdW21dO2wudmlzaWJsZSYmKGRbZC5sZW5ndGhdPWwpfXN3aXRjaCh5KXtjYXNlICJwcmljZSI6IkFzYyI9PXc\/ZC5zb3J0KEkpOmQuc29ydChKKTticmVhaztjYXNlICJtb2RlbCI6ZC5zb3J0KEspO2JyZWFrO2Nhc2UgImNvbnNvIjoiQXNjIj09dz9kLnNvcnQoRyk6ZC5zb3J0KEgpfWQuc29ydChmdW5jdGlvbihrLHUpe3JldHVybiBrLnNwZWNpYWxPcmRlcj09dS5zcGVjaWFsT3JkZXI\/MDprLnNwZWNpYWxPcmRlcj51LnNwZWNpYWxPcmRlcj8xOi0xfSk7Zm9yKGw9MDtsPGQubGVuZ3RoO2wrKylkW2xdLnZpc2libGUmJihkW2xdLnBvc2l0aW9uIT1sKzEmJihkW2xdLnBvc2l0aW9uPWwrMSxBKGYsImZieF8iK2YrIl8iK2RbbF0uaWQsIm1vdmUiLGwrMSkpLGMrKyl9fSxMPWZ1bmN0aW9uKCl7Zm9yKHZhciBjIGluIGJveEJsb2Nrcyl7dmFyIGQ9CjEsZjtmb3IoZiBpbiBib3hCbG9ja3NbY10pe3ZhciBtPWJveEJsb2Nrc1tjXVtmXTttLnZpc2libGUmJm0ucG9zaXRpb24hPWQmJihtLnBvc2l0aW9uPWQsQShjLGYsIm1vdmUiLGQpKTtBKGMsZixtLnZpc2libGU\/InNob3ciOiJoaWRlIik7bS52aXNpYmxlJiZkKyt9JCgiI2NsYXNzIitjKyJfY29udGFpbmVyIikuYXR0cigibmJWaXNpYmxlIixkLTEpfX0sRD1mdW5jdGlvbihjLGQpe2Zvcih2YXIgZj0wLG09MTttPGQ7bSsrKXt2YXIgbD0kKCIjIitjK20pOzA8bC5sZW5ndGgmJmwucHJvcCgiY2hlY2tlZCIpJiYoZis9TWF0aC5wb3coMixtLTEpKX1yZXR1cm4gZn0seD1mdW5jdGlvbigpe3ZhciBjPUQoImZpbHRlckVzc2VuY2VDaGVjayIsNiksZD1EKCJmaWx0ZXJEcml2ZVRyYWluQ2hlY2siLDQpLGY9W10sbT1bXTskKCIuZmlsdGVyQ2hlY2suY2F0ZWdvcnkiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKSYmZi5wdXNoKCQodGhpcykudmFsKCkpfSk7dmFyIGw9CiExOzA8JCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5sZW5ndGgmJigkKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpJiZtLnB1c2goJCh0aGlzKS52YWwoKSl9KSxsPSEwKTtmb3IodmFyIGsgaW4gYm94QmxvY2tzKXt2YXIgdT0wLHE7Zm9yKHEgaW4gYm94QmxvY2tzW2tdKXt2YXIgTT1wYXJzZUludChib3hCbG9ja3Nba11bcV0uZnVlbCwxMCksdj0hMTt2PSh2PSh2PSh2PSh2PSEocGFyc2VJbnQoYm94QmxvY2tzW2tdW3FdLmRyaXZldHJhaW4sMTApJmQpKXx8IShNJmMpKXx8ISghYm94QmxvY2tzW2tdW3FdLmNhckNhdGVnb3J5fHwtMTwkLmluQXJyYXkoYm94QmxvY2tzW2tdW3FdLmNhckNhdGVnb3J5LGYpKSl8fCEoITE9PT1sfHwtMTwkLmluQXJyYXkoYm94QmxvY2tzW2tdW3FdLmNhck1ha2UsbSkmJmwpKXx8ISgwPT1ib3hCbG9ja3Nba11bcV0ucHJpY2V8fGJveEJsb2Nrc1trXVtxXS5wcmljZTw9cC5tYXgmJgpib3hCbG9ja3Nba11bcV0ucHJpY2U+PXAubWluKTtib3hCbG9ja3Nba11bcV0udmlzaWJsZT0hdjtib3hCbG9ja3Nba11bcV0udmlzaWJsZSYmdSsrfSQoIiNjbGFzcyIraysiX2NvbnRhaW5lciIpLmF0dHIoIm5iVmlzaWJsZSIsdSk7QihrKX1MKCk7IjEiPT09JCgiYm9keSIpLmRhdGEoImZpbHRlcnM6bG9hZCIpJiYkKCJib2R5IikudHJpZ2dlcigkLmV4dGVuZCh7dHlwZToiZmlsdGVyczpjaGFuZ2UifSxhKCkpKX0sQj1mdW5jdGlvbihjKXt2YXIgZD0kKCIjY2xhc3MiK2MrIl9jb250YWluZXIiKTtpZigwPGQubGVuZ3RoKXt2YXIgZj0kKCIjc2hvd0NsYXNzXyIrYyk7MD09PWYubGVuZ3RoJiYoZj0kKCdpbnB1dFtkYXRhLWVzc2VuY2U9IicrYysnIl0nKSk7Zj1mLmlzKCI6Y2hlY2tlZCIpOzA8cGFyc2VJbnQoZC5hdHRyKCJuYlZpc2libGUiKSwxMCk\/KGYmJihkLmF0dHIoInN0YXRlIiwib3BlbiIpLGQuZmFkZUluKDYwMCksbmV3Q2Fycy5pc01vYmlsZXx8KGY9TWF0aC5jZWlsKHBhcnNlSW50KGQuYXR0cigibmJWaXNpYmxlIiksCjEwKS8zKSwkKCIuQ0xBU1NfIitjKS5hbmltYXRlKHtoZWlnaHQ6ci5oZWlnaHQqZisicHgifSw2MDApKSxmPSEwKSxmfHxFKGQpKTpFKGQpfX0sRT1mdW5jdGlvbihjKXtjLmF0dHIoInN0YXRlIiwiY2xvc2UiKTtjLmZhZGVPdXQoNjAwKTtyZXR1cm4hMH0sQT1mdW5jdGlvbihjLGQsZixtLGwpe2lmKCJoaWRlIj09ZikkKCIjIitkKS5hbmltYXRlKHtvcGFjaXR5OjB9LDYwMCxmdW5jdGlvbigpeyQodGhpcykuYXR0cigiaXMtYm94LXZpc2libGUiLDApLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpfSksYm94QmxvY2tzW2NdW2RdLnZpc2libGU9ITEsc2l0ZVBhZ2UuaXNNb2JpbGUmJihuZXdDYXJzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHtkfWApLmhpZGRlbj0hMCk7ZWxzZSBpZigic2hvdyI9PWYpJCgiIyIrZCkuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpLmFuaW1hdGUoe29wYWNpdHk6MX0sNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsCjEpfSksYm94QmxvY2tzW2NdW2RdLnZpc2libGU9ITAsc2l0ZVBhZ2UuaXNNb2JpbGUmJihuZXdDYXJzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHtkfWApLmhpZGRlbj0hMSk7ZWxzZSBpZighc2l0ZVBhZ2UuaXNNb2JpbGUpe3ZhciBrPSQoIi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciIpLndpZHRoKCk7Yz1NYXRoLmZsb29yKGsvci53aWR0aCk7Zj1ib3hQb3NpdGlvbnNbZF07az1NYXRoLmZsb29yKGsvYyk7Yz17bGVmdDoiKz0iKygobS0xKSVjKmstKGYtMSklYyprKSsicHgiLHRvcDoiKz0iKyhNYXRoLmZsb29yKChtLTEpL2MpKnIuaGVpZ2h0LU1hdGguZmxvb3IoKGYtMSkvYykqci5oZWlnaHQpKyJweCJ9O3ZvaWQgMD09bD8kKCIjIitkKS5hZGRDbGFzcygiTW92aW5nQm94IikuYW5pbWF0ZShjLDYwMCxmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoIk1vdmluZ0JveCIpfSk6JCgiIyIrZCkuYWRkQ2xhc3MoIk1vdmluZ0JveCIpLmFuaW1hdGUoYyw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJNb3ZpbmdCb3giKTsKZXZhbChsKX0pO2JveFBvc2l0aW9uc1tkXT1tfX0sRj1mdW5jdGlvbigpe3ZhciBjPXt3aWR0aDowLGhlaWdodDowfTskKCcuZGl2Q2FyU2luZ2xlT3V0ZXJCb3hbaXMtYm94LXZpc2libGU9IjEiXTpmaXJzdCcpLmVhY2goZnVuY3Rpb24oKXtjLndpZHRoPSQodGhpcykub3V0ZXJXaWR0aCghMCk7Yy5oZWlnaHQ9JCh0aGlzKS5vdXRlckhlaWdodCghMCl9KTtyZXR1cm4gY30sej05NjA7JCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikuYXR0cigiaXMtYm94LXZpc2libGUiLDEpO3ZhciByPUYoKTswPCQoIkJPRFkuaXNGdWxsV2lkdGhQYWdlIikubGVuZ3RoJiYwPCQoIkJPRFkuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCIpLmxlbmd0aCYmKDEzMDA8d2luZG93LmlubmVyV2lkdGgmJih6PTEyMDApLCQod2luZG93KS5vbigicmVzaXplIixmdW5jdGlvbigpe3ZhciBjPXo7ej0xMzAwPHdpbmRvdy5pbm5lcldpZHRoPzEyMDA6OTYwO2MhPXomJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtOKCl9KX0pKTsKdmFyIE49ZnVuY3Rpb24oKXt2YXIgYz1yO3I9RigpOyQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZD0wOyQodGhpcykuZmluZCgiLmRpdkNhclNpbmdsZU91dGVyQm94IikuZWFjaChmdW5jdGlvbigpe3ZhciBmPXBhcnNlSW50KCQodGhpcykuY3NzKCJ0b3AiKSksbT1wYXJzZUludCgkKHRoaXMpLmNzcygibGVmdCIpKTswPT09ZiYmMD09PW18fCQodGhpcykuY3NzKHt0b3A6ci5oZWlnaHQqKGYvcGFyc2VJbnQoYy5oZWlnaHQpKSsicHgifSkuY3NzKHtsZWZ0OnIud2lkdGgqKG0vcGFyc2VJbnQoYy53aWR0aCkpKyJweCJ9KTsxPT09cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIpKSYmZCsrfSk7ZCYmJCh0aGlzKS5jc3Moe2hlaWdodDpNYXRoLmZsb29yKGQvMykqci5oZWlnaHQrKGQlMz9yLmhlaWdodDowKSsicHgifSl9KX0scD17bWluOjAsbWF4OjFFNn07KGZ1bmN0aW9uKCl7dmFyIGM9JCgiI3ByaWNlUmFuZ2VTbGlkZXJGaWx0ZXJDb250YWluZXIiKTsKaWYoMDxjLmxlbmd0aCl7dmFyIGQ9Yy5maW5kKCJkaXYucmFuZ2Utc2xpZGVyIik7aWYoMDxkLmxlbmd0aCl7dmFyIGY9bnVsbCxtPWZ1bmN0aW9uKGwsayl7cD17bWluOkQyQ1V0aWxzLk51bWJlci5yb3VuZERvd24oay52YWx1ZXNbMF0sMUUzKSxtYXg6RDJDVXRpbHMuTnVtYmVyLnJvdW5kVXAoay52YWx1ZXNbMV0sMUUzKX07bnVsbCE9PWwmJm5ld0NhcnMuc2V0RmlsdGVyKCJzZXRTaG93ZWRWYWx1ZXMiLHAubWluKyI6IitwLm1heCk7Yy5maW5kKCJzcGFuLnByaWNlLW1pbiIpLnRleHQocC5taW4udG9Mb2NhbGVTdHJpbmcoKSk7Yy5maW5kKCJzcGFuLnByaWNlLW1heCIpLnRleHQocC5tYXgudG9Mb2NhbGVTdHJpbmcoKSk7Y2xlYXJUaW1lb3V0KGYpO2Y9c2V0VGltZW91dChmdW5jdGlvbigpe3goKX0sNTAwKX07cD17bWluOkQyQ1V0aWxzLk51bWJlci5yb3VuZERvd24oZC5hdHRyKCJhdHRyLXByaWNlLW1pbiIpKSxtYXg6RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWF4IikpfTsKZC5zbGlkZXIoe3JhbmdlOiEwLG1pbjpwLm1pbixtYXg6cC5tYXgsc2xpZGU6bSxjaGFuZ2U6bSxjcmVhdGU6ZnVuY3Rpb24obCxrKXtsPW5ld0NhcnMuZ2V0RmlsdGVyKCk7az1bcC5taW4scC5tYXhdOyJzdHJpbmciPT09dHlwZW9mIGwuc2V0U2hvd2VkVmFsdWVzJiYoaz1sLnNldFNob3dlZFZhbHVlcy5zcGxpdCgiOiIpKTtkLnNsaWRlcigidmFsdWVzIixrKTttKG51bGwse3ZhbHVlczprfSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoImJvZHkiKS50cmlnZ2VyKCQuZXh0ZW5kKHt0eXBlOiJmaWx0ZXJzOmxvYWQifSxhKCkpKX0sM0UzKX19KX19fSkoKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGM9JCgiI3NvcnRCeSIpO3ZhciBkPSQoIiNzb3J0RGlyIiksZj0ibW9kZWwiO3ZhciBtPSJBc2MiO3ZhciBsPXttb2RlbDoicmFkaW9Nb2RsZSIscHJpY2U6InJhZGlvUHJpY2UiLGNvbnNvOiJyYWRpb0NvbnNvIn07Yy5sZW5ndGgmJmQubGVuZ3RoJiYoZj1jLnZhbCgpLG09ZC52YWwoKSk7CmUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGxbZS5zb3J0QnldPyhjPWUuc29ydEJ5LG09ZS5zb3J0RGlyKTpjPWY7dHJ5e3ZhciBrPSQoIiMiK2xbY10pO2subGVuZ3RoJiZrLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIik7QyhjLG0pfWNhdGNoKHUpe319LDUwMCk7aWYoJCgiI3RvZ2dsZUZpbHRlckJ0biIpLmxlbmd0aCkkKCIjdG9nZ2xlRmlsdGVyQnRuIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5sZW5ndGgmJigkKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5oYXNDbGFzcygib3BlbiIpPyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLnJlbW92ZUNsYXNzKCJvcGVuIik6JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikuYWRkQ2xhc3MoIm9wZW4iKSl9KTtpZigkKCIjY2xvc2VTaWRlYmFyQnRuIikubGVuZ3RoKSQoIiNjbG9zZVNpZGViYXJCdG4iKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmCiQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmhhc0NsYXNzKCJvcGVuIikmJiQoIiNzaWRlU2lkZWJhckZpbHRlciIpLnJlbW92ZUNsYXNzKCJvcGVuIil9KTskKCIuc2VsZWN0VG9nZ2xlV3JhcHBlckNhck1ha2UiKS5sZW5ndGgmJigkKCIjc2VsZWN0QWxsQnRuQ2FyTWFrZSIpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKCl7JCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5wcm9wKCJjaGVja2VkIiwhMCk7c2V0VGltZW91dCh4LDEwMCl9KSwkKCIjdW5zZWxlY3RBbGxCdG5DYXJNYWtlIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLnByb3AoImNoZWNrZWQiLCExKTtzZXRUaW1lb3V0KHgsMTAwKX0pKX19LHNldEZpbHRlcjooYSxiKT0+e3ZhciBlPXt9LGc9X2xvY2FsU3RvcmFnZUdldCgibmV3U3ZwRmlsdGVyIik7bnVsbCE9ZyYmIm9iamVjdCIhPXR5cGVvZiBnJiYoZT1KU09OLnBhcnNlKGcpKTtnPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKdm9pZCAwPT1lW2ddJiYoZVtnXT17fSk7ZVtnXVthXT1iO19sb2NhbFN0b3JhZ2VTZXQoIm5ld1N2cEZpbHRlciIsSlNPTi5zdHJpbmdpZnkoZSkpfSxnZXRGaWx0ZXI6KCk9PntsZXQgYT0hMTt2YXIgYj1fbG9jYWxTdG9yYWdlR2V0KCJuZXdTdnBGaWx0ZXIiKTtsZXQgZT17fTtudWxsIT1iJiYib2JqZWN0IiE9dHlwZW9mIGImJihlPUpTT04ucGFyc2UoYikpO2I9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO3ZvaWQgMCE9ZVtiXSYmKGE9ZVtiXSk7cmV0dXJuIGF9LHNldFByaWNlVG9vbFRpcHM6KCk9PntuZXdDYXJzLmlzTW9iaWxlfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24iKS5mb3JFYWNoKGE9PntsZXQgYj1hLmRhdGFzZXQudG9vbHRpcDskKGEpLmRhcmtUb29sdGlwKHtjb250ZW50OmIsZ3Jhdml0eToid2VzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9KX0sc2V0RXZlbnRzOigpPT4Ke25ld0NhcnMuaXNNb2JpbGV8fCgkKCJpbWdbZXJyb3JpbWddIikub24oImVycm9yIixmdW5jdGlvbigpe3RoaXMuc3JjPSQodGhpcykuYXR0cigiZXJyb3JpbWciKX0pLCQoImltZ1ttdWx0aWltZz10cnVlXSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJzcmMiLCQodGhpcykuYXR0cigiY29sb3JpbWciKSl9KTskKHRoaXMpLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInNyYyIsJCh0aGlzKS5hdHRyKCJibGFja2ltZyIpKX0pfSkpfSxnZXRJbnZlbnRvcnlEYXRhOigpPT57Y29uc3QgYT0oYixlKT0+e2xldCBnPSJGUkVOQ0giPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsdWU\/ImZyIjoiZW4iO2ZldGNoKGAvJHtnfS9hamF4L2dldEludmVudG9yeURhdGFgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsCiJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IixjaGFyc2V0OiJVVEYtOCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyhiKX0pLnRoZW4oaD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaCYmITA9PT1oLm9rJiYyMDA9PWguc3RhdHVzKXJldHVybiBoLmpzb24oKX0pLnRoZW4oaD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5zdGF0dXMmJiJzdWNjZXNzIj09aC5zdGF0dXMpe2xldCBuPWguY291bnQ7aD1oLnVybDtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW5TdG9ja0xhYmVsIikudmFsdWU7MDxuJiYoZS5wYXJlbnROb2RlLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixgPGEgaHJlZj0iJHtofSI+JHtufSAke3R9PC9hPmApLGUucGFyZW50Tm9kZS5oaWRkZW49ITEpfX0pLmNhdGNoKGZ1bmN0aW9uKGgpe30pfTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtkYXRhLXR5cGU9ImludmRhdGEiXScpLmZvckVhY2goYj0+CnthKHttYWtlOmIuZGF0YXNldC5tYWtlLG1vZGVsOmIuZGF0YXNldC5tb2RlbCx5ZWFyOmIuZGF0YXNldC55ZWFyLHN0eWxlaWRzOmIuZGF0YXNldC5zdHlsZWlkcyxoeWJyaWQ6Yi5kYXRhc2V0Lmh5YnJpZH0sYil9KX0sZ2V0UGF5bWVudERhdGE6KCk9Pntjb25zdCBhPShiLGUsZyk9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBoPXlpZWxkKHlpZWxkIGZldGNoKGAvJHtlbmNvZGVVUklDb21wb25lbnQoZyl9L2FqYXgvZ2V0U2hvd3Jvb21QYXltZW50SHRtbGAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyIsY2hhcnNldDoiVVRGLTgifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoYil9KSkuanNvbigpO2UucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24tYmxvY2siKS5oaWRkZW49CiEwO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5zdGF0dXMmJiJzdWNjZXNzIj09aC5zdGF0dXMpe2xldCBuPWguY29udGVudDswPG4ubGVuZ3RoJiYoZS5wYXJlbnROb2RlLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIixuKSxlLnBhcmVudE5vZGUuaGlkZGVuPSExKX19Y2F0Y2goaCl7fX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtdHlwZT0icGF5bWVudGRhdGEiXScpLmZvckVhY2goYj0+e2xldCBlPSJGUkVOQ0giPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsdWU\/ImZyIjoiZW4iO2Eoe3N0eWxlaWQ6Yi5kYXRhc2V0LnN0eWxlaWQsdGl0bGU6Yi5kYXRhc2V0LnRpdGxlLGhyZWY6Yi5kYXRhc2V0LmhyZWYsbGlua1N0eWxlOmIuZGF0YXNldC5saW5rc3R5bGUsbGlua0NsYXNzOmIuZGF0YXNldC5saW5rY2xhc3MsY29udGFpbmVyQ2xhc3M6Yi5kYXRhc2V0LmNvbnRhaW5lcmNsYXNzLHByb21vVGV4dDpiLmRhdGFzZXQucHJvbW90ZXh0LApsYW5nOmV9LGIsZSl9KX19OyQod2luZG93KS5vbigibG9hZCIsZnVuY3Rpb24oKXtuZXdDYXJzLnJlc2l6ZU1haW5XaW5kb3coKX0pO2RvY1JlYWR5QXJyLnB1c2goKCk9PntuZXdDYXJzLmdldFBheW1lbnREYXRhKCk7bmV3Q2Fycy5zZXRQYXltZW50VG9vbHRpcHMoKTtuZXdDYXJzLnNldEV2ZW50cygpO25ld0NhcnMubmV3Q2Fyc0ZpbHRlcigpO25ld0NhcnMuc2V0UHJpY2VUb29sVGlwcygpO25ld0NhcnMuZ2V0SW52ZW50b3J5RGF0YSgpfSk7Ci8qKiAvanMvZDJjX2FzY19nYTQuanMgKiovCnZhciBfX19kMmNfZDJjYXNjZ2E0anNfY19vbj0iMjAyNi0wMi0wMyAxNjozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciBhc2NUb3BDYXJEZXRhaWxzPSExLGFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0PSExLGFzY0xhc3RGaWx0ZXJDbGljaz0hMSxhc2NMYXN0Q3RhQ2xpY2s9ITE7ZnVuY3Rpb24gZDJhc2NQdWJsaWNhdGlvbkRhdGUoZCl7aWYoIiI9PWQpcmV0dXJuIiI7dmFyIGg9bmV3IERhdGUoZCk7ZD0iIisoaC5nZXRNb250aCgpKzEpO3ZhciBrPSIiK2guZ2V0RGF0ZSgpO2g9aC5nZXRGdWxsWWVhcigpOzEwPnBhcnNlRmxvYXQoZCkmJihkPSIwIitkKTsxMD5wYXJzZUZsb2F0KGspJiYoaz0iMCIrayk7cmV0dXJuW2QsayxoXS5qb2luKCIvIil9ZnVuY3Rpb24gZW5zdXJlVHJ1dGh5KGQpe3JldHVybiBkP2Q6IiJ9CmZ1bmN0aW9uIGFzY1VwZGF0ZVRvcENhckRhdGEoZCl7aWYoITEhPT1kKXtsZXQgaD1kMmFzY1B1YmxpY2F0aW9uRGF0ZShlbnN1cmVUcnV0aHkoZC5kYXRlX2xpc3RpbmcpKSxrPWQubWFrZWNlcnQrIiI7YXNjVG9wQ2FyRGV0YWlscz17aXRlbV9pZDplbnN1cmVUcnV0aHkoZC5OSVYpLGl0ZW1fbnVtYmVyOmVuc3VyZVRydXRoeShkLmlkKSxpdGVtX3ByaWNlOmVuc3VyZVRydXRoeShkLnByaWNlKSxpdGVtX2NvbmRpdGlvbjplbnN1cmVUcnV0aHkoZC52Y2F0ZWdvcnkpLnRvTG93ZXJDYXNlKCksaXRlbV95ZWFyOmVuc3VyZVRydXRoeShkLnllYXIpLnRvTG93ZXJDYXNlKCksaXRlbV9tYWtlOmVuc3VyZVRydXRoeShkLm1ha2UpLnRvTG93ZXJDYXNlKCksaXRlbV9tb2RlbDplbnN1cmVUcnV0aHkoZC5tb2RlbCkudG9Mb3dlckNhc2UoKSxpdGVtX3ZhcmlhbnQ6ZW5zdXJlVHJ1dGh5KGQudmVyc2lvbikudG9Mb3dlckNhc2UoKSxpdGVtX2NvbG9yOmVuc3VyZVRydXRoeShkLmNvbG9yKS50b0xvd2VyQ2FzZSgpLAppdGVtX3R5cGU6ZW5zdXJlVHJ1dGh5KGQuYm9keVR5cGVJRCkudG9Mb3dlckNhc2UoKSxpdGVtX2NhdGVnb3J5OmVuc3VyZVRydXRoeSgiIiksaXRlbV9mdWVsX3R5cGU6ZW5zdXJlVHJ1dGh5KGQudmNhcmJ1cmFudCkudG9Mb3dlckNhc2UoKSxpdGVtX2ludmVudG9yeV9kYXRlOmVuc3VyZVRydXRoeShoKX07IjIxIiE9ayYmIjAiIT1rJiZkMmFzYy5zZXRWZWhpY2xlU3RhdHVzKCJDUE8iKX1lbHNlIGQ9JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyIpLGFzY1RvcENhckRldGFpbHM9e2l0ZW1fY29uZGl0aW9uOiJuZXciLGl0ZW1feWVhcjokKCJpbnB1dFtuYW1lPSd5ZWFyJ10iLGQpLnZhbCgpLGl0ZW1fbWFrZTokKCJpbnB1dFtuYW1lPSdtYWtlJ10iLGQpLnZhbCgpLGl0ZW1fbW9kZWw6JCgiaW5wdXRbbmFtZT0nbW9kZWwnXSIsZCkudmFsKCksaXRlbV90eXBlOiQoImlucHV0W25hbWU9J3ZlaGljbGVDYXRlZ29yeSddIixkKS52YWwoKX07Y29uc29sZS5sb2coIkdBNCBhc2NUb3BDYXJEZXRhaWxzIiwKYXNjVG9wQ2FyRGV0YWlscyl9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZVBhZ2VJZChkKXtkPWQucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIik7aWYoZC5pbmNsdWRlcygic2k6dmxzIikpcmV0dXJuInNlYXJjaCBpbnZlbnRvcnkiO2lmKGQuaW5jbHVkZXMoIjpzaTp2ZWhpY2xlIGRldGFpbHMiKXx8ZC5pbmNsdWRlcygidmVoaWNsZSIpKXJldHVybiJ2ZHAiO2lmKGQuaW5jbHVkZXMoImN1c3RvbToiKSlyZXR1cm4iYmxvZyI7aWYoZC5pbmNsdWRlcygiZmluYW5jZSIpKXJldHVybiJjcmVkaXQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6cmVxdWVzdCBhcHBvaW50bWVudCIpKXJldHVybiJyZXF1ZXN0IGFwcG9pbnRtZW50IjtpZihkLmluY2x1ZGVzKCJzZXJ2aWNlOm9yZGVyIHBhcnRzIikpcmV0dXJuIm9yZGVyIHBhcnRzIjtpZihkLmluY2x1ZGVzKCJhYm91dCB1czpjb250YWN0IHVzIikpcmV0dXJuImNvbnRhY3QgdXMiO2lmKGQuaW5jbHVkZXMoIlVOS05PV04iKSl7aWYoL2J1aWxkLWFuZC1wcmljZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvY29uZmlndXJhdGlvbi1ldC1wcml4Ly50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuImJ1aWxkIGFuZCBwcmljZSI7CmlmKC9wcmljZS1uZXcvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L3ByaXgtbmV1Zi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJwcmljZSByZXF1ZXN0IjtpZigvYnJvY2h1cmVzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuImJyb2NodXJlIjtpZigvYXV0by1qb2JzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fC9lbXBsb2lzLWF1dG9tb2JpbGUvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iam9icyI7aWYoL291cnRlYW0vLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VxdWlwZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJvdXIgdGVhbSJ9cmV0dXJuIGR9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQsaCl7aD1oLnRvTG93ZXJDYXNlKCk7bGV0IGs9e307Zm9yKHZhciBsIGluIGQpa1tsLnRvTG93ZXJDYXNlKCldPWRbbF07bD0kKCJodG1sIikuYXR0cigibGFuZyIpO2Q9IiI7bD0iZW4iPT1sLnRvTG93ZXJDYXNlKCl8fCJlbmciPT1sLnRvTG93ZXJDYXNlKCk\/IkVOR0xJU0giOiJGUkVOQ0giO3ZvaWQgMCE9PWtbaF0mJnZvaWQgMCE9PWtbaF1bbF0mJihkPWtbaF1bbF0pO3JldHVybiBkfQpmdW5jdGlvbiBEMkFTQyhkKXtkLnBhZ2VJZE9yZz1kLnBhZ2VJZDtkLnBhZ2VJZD1kMmFzY1Jlc29sdmVQYWdlSWQoZC5wYWdlSWQpO2QuZGVhbGVyX25hbWU9JCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKTt2YXIgaD17c3RvcmVfbmFtZTpkLmRlYWxlcl9uYW1lLnRvTG93ZXJDYXNlKCksb2VtX2NvZGU6ZC5wYUNvZGUsb2VtX2JyYW5kOmQuY2xpZW50LGFmZmlsaWF0aW9uOiIiLGxhbmd1YWdlOmQudXNlckxhbmd1YWdlLGN1cnJlbmN5OiJjYWQiLHBhZ2VfdHlwZTpkLnBhZ2VJZCxpdGVtczpbXSxldmVudHM6W10sbWVhc3VyZW1lbnRfaWRzOlsiRy02R0VaMldXVDNMIl0scGxhdGZvcm1fY3VzdG9tOiIifSxrPXthc2NfY2xpY2tfdG9fY2FsbDpbImEucGhvbmUtbGluayIsImEucGhvbmUtYWN0aW9uIl0sYXNjX2N0YV9pbnRlcmFjdGlvbjoiLnYtY2FyZCBhOm5vdCgucGhvbmUtbGluayk7LmxlZnRfYm94IGE7I2Zvb3RlciBhOyNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9idG5fMTsjUHVsbG91dF9CdWlsZC1hbmQtUHJpY2U7I25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIi5zcGxpdCgiOyIpLAphc2NfY3RhX2ludGVyYWN0aW9uOiIjcHJvbW9EaXNjb3ZlckJ1dHRvbiAuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IgI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIC5sb2FuQ2FsY3VsYXRvclRyaWdnZXIgLm9mZmVyLWJ0biAuY3RQcm9tbyAudHJhZGVJbkJhcl9idG4iLnNwbGl0KCIgIiksYXNjX2N0YV9pbnRlcmFjdGlvbjpbIi5uZXdWZHBBY3Rpb25zIGEiLCIuY3RhLXRwbCBhIl0sYXNjX2Zvcm1fZW5nYWdlbWVudDpbImlucHV0Iiwic2VsZWN0IiwidGV4dGFyZWEiXSxhc2NfbWVkaWFfaW50ZXJhY3Rpb246WyIjbmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiLCJpbWciXSxhc2NfbWVudV9pbnRlcmFjdGlvbjpbIi51cF9tZW51IGEiXSxhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uOlsiLmxhbmd1YWdlQmFyIGEiXX0sbD0hMTtjb25zb2xlLmxvZygiRDJBU0MgTG9hZGluZy4uLiIsZCk7dmFyIGc9bmV3IGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLnNldFZlaGljbGVTdGF0dXM9ZnVuY3Rpb24oYil7bGV0IGE9CiQoIiNhc2NfZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT12ZWhpY2xlU3RhdHVzXSIpO2lmKCIiIT0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9J21ha2UnXSIpLnZhbCgpKXtsZXQgYz13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKTthLnZhbCgvdXNlZC8udGVzdChjKXx8L29jY2FzaW9uLy50ZXN0KGMpPyJVc2VkIjoiTmV3Iil9ITEhPT1iJiZhLnZhbChiKX07ZS5zZXREaWdpdGFsRGF0YT1mdW5jdGlvbihiLGEpe2xldCBjPWUuYWRkRXZlbnQoYixhKTtpZighMT09PWMpcmV0dXJuITE7dm9pZCAwIT09Yy5mb3JtX25hbWUmJihjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCJtZW5zdWFsaXQ\/cyIsIm1lbnN1YWxpdGVzIiksYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgidj9oaWN1bGUiLCJ2ZWhpY3VsZSIpLGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoIj90YXBlcyIsImV0YXBlcyIpLGMuZm9ybV9uYW1lPQoiRDJDICIrYy5mb3JtX25hbWUpO3ZvaWQgMCE9PWMuZm9ybV9sYW5nJiYoYy5mb3JtX2xhbmc9ZS5zdGFuZGFyZGl6ZUZvcm1MYW5nKGMuZm9ybV9sYW5nKSk7aC5ldmVudHMudW5zaGlmdChKU09OLnN0cmluZ2lmeSh7bmFtZTpiLHBhcmFtczpjfSkpOyJ2ZHAiPT1jLnBhZ2VfdHlwZSYmKGMucGFnZV90eXBlPSJpdGVtIik7InNob3dyb29tIj09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbSIpOyJzZWFyY2ggaW52ZW50b3J5Ij09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbWxpc3QiKTtsZXQgZj1lLmdldEV2ZW50VHlwZShiKTtlLnJlcG9ydChmLGIsYyxoKTsiYXNjX2Zvcm1fc3VibWlzc2lvbiI9PWImJihlLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIixhKSxlLnNldERpZ2l0YWxEYXRhKCJEMkNfRm9ybV9zdWJtaXNzaW9uX3NhbGVzIixhKSxlLnNldERpZ2l0YWxEYXRhKCJEMkNfTGVhZHMiLGEpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthc2NMYXN0Q3RhQ2xpY2s9CiExfSwxMjUwKSk7ImFzY19jb21tX3N1Ym1pc3Npb24iPT1iJiZlLnNldERpZ2l0YWxEYXRhKCJhc2NfY29tbV9zdWJtaXNzaW9uX3NhbGVzIixhKX07ZS5nZXRFdmVudFR5cGU9ZnVuY3Rpb24oYil7bGV0IGE9ImVuZ2FnZW1lbnQiO3N3aXRjaChiKXtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZSI6YT0iY29udmVyc2lvbiJ9cmV0dXJuIGF9O2UuYmluZEVsZW1lbnRzPWZ1bmN0aW9uKGIsYSl7JC5lYWNoKGEsZnVuY3Rpb24oYyxmKXskKGYpLmVhY2goZnVuY3Rpb24oKXtjb25zdCBtPSQodGhpcyksbj0iYXNjX2Zvcm1fZW5nYWdlbWVudCI9PWI\/ImJsdXIiOiJjbGljayI7JCh0aGlzKS5vbihuLGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YShiLAptKX0pfSl9KX07ZS5hZGRFdmVudD1mdW5jdGlvbihiLGEpe3ZhciBjPXtldmVudF9vd25lcjoiZDJjIixwYWdlX3R5cGU6ZC5wYWdlSWQscGFnZV91cmw6d2luZG93LmxvY2F0aW9uLmhyZWYsZXZlbnRfbGFiZWw6YixldmVudF9jYXRlZ29yeTokKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9dmVoaWNsZVN0YXR1c10iKS52YWwoKX0sZj0hMSE9PWFzY0xhc3RDdGFDbGljaz9lLkN0YVRleHRQYXJzZXIoYXNjTGFzdEN0YUNsaWNrKToiIjtzd2l0Y2goYil7Y2FzZSAiYXNjX3BhZ2V2aWV3IjpicmVhaztjYXNlICJhc2NfY2xpY2tfdG9fY2FsbCI6Zj1hLmhhc0NsYXNzKCJwaG9uZS1saW5rIik\/YS50ZXh0KCk6YS5hdHRyKCJocmVmIik7Zj1mLnJlcGxhY2UoL1teMC05XCtdL2csIiIpO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3Bob25lX251bWJlcjpmLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGFmZmlsaWF0aW9uOiIifSk7YnJlYWs7Y2FzZSAiYXNjX2N0YV9pbnRlcmFjdGlvbiI6Zj0KZS5DdGFUZXh0UGFyc2VyKGEpO2UuaXNDdGFDbGljayhhKSYmKGFzY0xhc3RDdGFDbGljaz1hKTtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0OmYsZWxlbWVudF9vcmRlcjoiIixlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfdHlwZTplLmdldEVsZW1lbnRUeXBlKGEpLGV2ZW50X2FjdGlvbjoiIixldmVuX2FjdGlvbl9yZXN1bHQ6YS5hdHRyKCJocmVmIik\/InJlZGlyZWN0IjoicG9wdXAiLGxpbmtfdXJsOmEuYXR0cigiaHJlZiIpP2EuYXR0cigiaHJlZiIpOiIifSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fZW5nYWdlbWVudCI6Zj1lLmdldExlYWRUeXBlRm9ybU5hbWUoYSk7aWYoITE9PT1mKXJldHVybiExO2xldCBtPWUuYXNjVGV4dFJlcGxhY2VyKGEudmFsKCkpLG49ZS5nZXREMmNEZXBhcnRtZW50KGEpO2NvbnNvbGUubG9nKCJEMkFTQyBGb3JtIEVuZ2FnZW1lbnQgRGV0ZWN0ZWQiLGYsbixhKTtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0Om0sY29tbV90eXBlOiJmb3JtIiwKY29tbV9zdGF0dXM6InN0YXJ0IixkZXBhcnRtZW50Om4sZm9ybV9uYW1lOmYsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDpufSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsY29tbV9vdXRjb21lOiJjbG9zZSIsc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6InN1Ym1pdCIsY3RhX3RleHQ6ZixjdXN0b21lcl9waG9uZTphLmNvbmZpcm1fcGhvbmVfbnVtYmVyLGN1c3RvbWVyX2VtYWlsOmEuY29uZmlybV9lbWFpbCxkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSxmb3JtX25hbWU6YS5sZWFkVHlwZSxmb3JtX3R5cGU6ZS5nZXRGb3JtVHlwZShhKSxmb3JtX2xhbmc6JCgiaW5wdXRbbmFtZT0nbGFuZyddIikudmFsKCksZm9ybV9kZXB0OmUuZ2V0RDJjRGVwYXJ0bWVudChhKX0pO2JyZWFrO2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fcGFydHMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXNfYXBwdCI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2VfYXBwdCI6Y2FzZSAiRDJDX0xlYWRzIjpjb25zb2xlLmxvZygiRDJBU0MgRW1haWwgU2VudCAtIERhdGEgMiIsCmEpO2EuY29uZmlybV9waG9uZV9udW1iZXI9dm9pZCAwPT09YS5jb25maXJtX3Bob25lX251bWJlcj8iIjphLmNvbmZpcm1fcGhvbmVfbnVtYmVyO2EuY29uZmlybV9lbWFpbD12b2lkIDA9PT1hLmNvbmZpcm1fZW1haWw\/IiI6YS5jb25maXJtX2VtYWlsO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3R5cGU6ImZvcm0iLGNvbW1fb3V0Y29tZTplLmdldEZvcm1PdXRjb21lKGIpLHN1Ym1pc3Npb25faWQ6IiIsZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKCJzdWJtaXQiKSxjdGFfdGV4dDpmLGN1c3RvbWVyX3Bob25lOmEuY29uZmlybV9waG9uZV9udW1iZXIsY3VzdG9tZXJfZW1haWw6YS5jb25maXJtX2VtYWlsLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGZvcm1fbmFtZTphLmxlYWRUeXBlLGZvcm1fdHlwZTplLmdldEZvcm1UeXBlKGEpLGZvcm1fbGFuZzokKCJpbnB1dFtuYW1lPSdsYW5nJ10iKS52YWwoKSxmb3JtX2RlcHQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpfSk7CmJyZWFrO2Nhc2UgIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiOmM9e2Zvcm1fZmlsbGVkOiJZZXMifTticmVhaztjYXNlICJhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uIjpjPXZvaWQgMCE9PWEuZXZlbnRfYWN0aW9uP09iamVjdC5hc3NpZ24oe30sYyx7ZXZlbnRfYWN0aW9uX3Jlc3VsdDphLmV2ZW50X2FjdGlvbl9yZXN1bHQsZXZlbnRfYWN0aW9uOmEuZXZlbnRfYWN0aW9uLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOmEuZmlsdGVySW5mby5zdGF0ZSxlbGVtZW50X3R5cGU6InNlYXJjaCI9PWEuZXZlbnRfYWN0aW9uPyJmaWx0ZXIiOiJzb3J0IixlbGVtZW50X3N1YnR5cGU6YS5maWx0ZXJJbmZvLnR5cGUsZWxlbWVudF90aXRsZTphLmZpbHRlckluZm8ubGFiZWwsZWxlbWVudF90ZXh0OmEuZmlsdGVySW5mby50aXRsZSxlbGVtZW50X3ZhbHVlOmEuZmlsdGVySW5mby52YWx1ZSxlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfcG9zaXRpb246IiIsZWxlbWVudF9vcmRlcjoiIn0pOgpPYmplY3QuYXNzaWduKHt9LGMse2V2ZW50X2FjdGlvbl9yZXN1bHQ6Imxhbmd1YWdlIixldmVudF9hY3Rpb246ImNsaWNrIixwcm9kdWN0X25hbWU6IiIsZWxlbWVudF9zdGF0ZTowLGVsZW1lbnRfdHlwZToibGFuZ3VhZ2UgdG9nZ2xlLCIsZWxlbWVudF9zdWJ0eXBlOiJidXR0b24iLGVsZW1lbnRfdGl0bGU6ZS5hc2NUZXh0UmVwbGFjZXIoYS50ZXh0KCkpLGVsZW1lbnRfdGV4dDplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF92YWx1ZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3Bvc2l0aW9uOiIiLGVsZW1lbnRfb3JkZXI6IiJ9KTticmVhaztjYXNlICJhc2NfbWVkaWFfaW50ZXJhY3Rpb24iOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OiIiLGFmZmlsaWF0aW9uOiIiLG1lZGlhX3R5cGU6IiIsbGlua191cmw6IiIsY3JlYXRpdmVfbmFtZToiIn0pO2JyZWFrO2Nhc2UgImFzY19tZW51X2ludGVyYWN0aW9uIjpjPQpPYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF9zdWJ0eXBlOiJtZWdhX21lbnUiLGVsZW1lbnRfdHlwZTphLmNsb3Nlc3QoImxpIikuYXR0cigiZGF0YS1pZCIpLGV2ZW50X2FjdGlvbjoiY2xpY2sifSk7YnJlYWs7Y2FzZSAiYXNjX3JldGFpbF9wcm9jZXNzIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Zmxvd19uYW1lOiJmaW5hbmNlIixlbGVtZW50X3RpdGxlOiIiLGZsb3dfb3V0Y29tZToicHJvY2VlZCIsaXRlbV9wYXltZW50OiJmaW5hbmNlIixmbG93X3N0YWdlOiIifSk7YnJlYWs7Y2FzZSAiYXNjX3NwZWNpYWxfb2ZmZXIiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtwcm9tb3Rpb25fbmFtZTokKCJoMjpmaXJzdC1jaGlsZCIsYSkubGVuZ3RoP2UuYXNjVGV4dFJlcGxhY2VyKCQoImgyOmZpcnN0LWNoaWxkIixhKS50ZXh0KCkpOiJEZWFsZXIgUHJvbW8iLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLApwcm9kdWN0X25hbWU6IiIsZWxlbWVudF9wb3NpdGlvbjoiZmxvYXRpbmciLGZsb3dfb3V0Y29tZToic3RhcnQifSk7YnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiY2hhdCIsYWZmaWxpYXRpb246Im5hdGl2ZSIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb25faWQ6Im11bHRpLXVzZXIiLGNvbW1fc3RhdHVzOiJjcm1fdXBkYXRlIn0pO2JyZWFrO2Nhc2UgImFzY19jb21tX3N1Ym1pc3Npb25fc2FsZXMiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3R5cGU6ImNoYXQiLGFmZmlsaWF0aW9uOiJuYXRpdmUiLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGFmZmlsaWF0aW9uX2lkOiJtdWx0aS11c2VyIixjb21tX3N0YXR1czoiY3JtX3VwZGF0ZSIsZWxlbWVudF9wb3NpdGlvbjoicG9wLXVwIn0pO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIGNvbnNvbGUubG9nKCJEMkFTQyBFUlJPUihDT0RFOjAwMSkiLApiLGEpLCExfSExIT09YXNjVG9wQ2FyRGV0YWlscyYmIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiIT1iJiYoYz1PYmplY3QuYXNzaWduKHt9LGMsYXNjVG9wQ2FyRGV0YWlscykpO2NvbnNvbGUubG9nKCJHQTQgRmluYWwgRGlnaXRhbCBEYXRhIixjKTtyZXR1cm4gY307ZS5pc0N0YUNsaWNrPWZ1bmN0aW9uKGIpe2xldCBhPSExO2IgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiLm5ld1ZkcEFjdGlvbnMiKS5sZW5ndGgmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmN0YS10cGwiKS5sZW5ndGgmJihhPSEwKSwicHJvbW9EaXNjb3ZlckJ1dHRvbiI9PWIuYXR0cigiaWQiKSYmKGE9ITApLGIuaGFzQ2xhc3MoImRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikubGVuZ3RoJiYoYT0hMCksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZCIpLmxlbmd0aCYmKGE9ITApLCJzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZCI9PQpiLmF0dHIoImlkIikmJihhPSEwKSxiLmhhc0NsYXNzKCJsb2FuQ2FsY3VsYXRvclRyaWdnZXIiKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIubG9hbkNhbGN1bGF0b3JUcmlnZ2VyIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygiY3RQcm9tbyIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5jdFByb21vIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygib2ZmZXItYnRuIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLm9mZmVyLWJ0biIpLmxlbmd0aCYmKGE9ITApLGIuaGFzQ2xhc3MoInRyYWRlSW5CYXJfYnRuIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLnRyYWRlSW5CYXJfYnRuIikubGVuZ3RoJiYoYT0hMCksIlRSQURFSU4iPT1iLmF0dHIoImRhdGEtaWQiKSYmKGE9ITApKTtyZXR1cm4gYX07ZS5zdGFuZGFyZGl6ZUZvcm1MYW5nPWZ1bmN0aW9uKGIpe3ZvaWQgMD09PWImJiQoImh0bWwiKS5hdHRyKCJsYW5nIik7Yj1iLnRvTG93ZXJDYXNlKCk7ImVuZyI9PWImJihiPSJlbiIpOyJlbmdsaXNoIj09CmImJihiPSJlbiIpOyJmcm4iPT1iJiYoYj0iZnIiKTsiZnJlbmNoIj09YiYmKGI9ImZyIik7ImVuIiE9YiYmImZyIiE9YiYmKGI9ImVuIik7cmV0dXJuIGJ9O2UuQ3RhVGV4dFBhcnNlcj1mdW5jdGlvbihiKXtkLnBhZ2VJZC50b0xvd2VyQ2FzZSgpO2xldCBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpLGM9IiI7aWYoL25ld1wvaW52ZW50b3J5XC9zZWFyY2gvLnRlc3QoYSl8fC9uZXVmc1wvaW52ZW50YWlyZVwvcmVjaGVyY2hlLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIE5ldyBJbnZlbnRvcnkgU1JQOiAiO2Vsc2UgaWYoL25ld1wvaW52ZW50b3J5Ly50ZXN0KGEpfHwvbmV1ZnNcL2ludmVudGFpcmUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBWRFA6ICI7ZWxzZSBpZigvbmV3Ly50ZXN0KGEpfHwvbmV1ZnMvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IFNob3dSb29tIFZEUDogIjtlbHNlIGlmKC91c2VkLy50ZXN0KGEpfHwvb2NjYXNpb24vLnRlc3QoYSkpYys9CiJEMkMgQ1RBTSAtIFVzZWQgSW52ZW50b3J5IFZEUDogIjtyZXR1cm4gYytlLmFzY1RleHRSZXBsYWNlcihiLnRleHQoKSl9O2UuZ2V0TGVhZFR5cGVGb3JtTmFtZT1mdW5jdGlvbihiKXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKSxjPSExO2QucGFnZUlkLmluY2x1ZGVzKCJvcmRlciBwYXJ0cyIpJiYoYz0iUGFydHNSZXF1ZXN0Iik7ZC5wYWdlSWQuaW5jbHVkZXMoInRlc3QgZHJpdmUiKSYmKGM9IlRlc3REcml2ZSIpO2QucGFnZUlkLmluY2x1ZGVzKCJwcmljZSByZXF1ZXN0IikmJihjPSJQcmljZVJlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYnJvY2h1cmUiKSYmKGM9IkJyb2NodXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoYz0iU2VydmljZVJlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygidGlyZXMiKSYmKGM9IlRpcmVzUmVxdWVzdCIpOwpkLnBhZ2VJZC5pbmNsdWRlcygiYm9keSBzaG9wIikmJihjPSJCb2R5U2hvcCIpO2QucGFnZUlkLmluY2x1ZGVzKCJyZWNhbGwiKSYmKGM9IlJlY2FsbHMiKTtpZihiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIi5kaXZTcGFuRmlsdGVycyIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgpKXJldHVybiExO2I9ZS5mb3JtRGF0YUJ5SWQoYik7cmV0dXJuITEhPT1iP2IuZm9ybU5hbWU6ITEhPT1jP2QyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCxjKToiVU5LTk9XTjogIithfTtlLmZvcm1EYXRhQnlJZD1mdW5jdGlvbihiKXtpZihiIGluc3RhbmNlb2YgalF1ZXJ5KXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKTt2b2lkIDA9PT1hJiYoMDxiLmNsb3Nlc3QoIiNjb250YWN0cG9wdXAiKS5sZW5ndGgmJihhPSJSZXF1ZXN0IGZvciBjb250YWN0IiksCjA8Yi5jbG9zZXN0KCIuY3JlZGl0U2NvcmVJbnB1dCIpLmxlbmd0aCYmKGE9ImNyZWRpdFNjb3JlIiksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoQW5kU2F2ZVBvcHVwQ29udGFpbmVyX2JucCIpLmxlbmd0aCYmKGE9IlJlYmF0ZUNvdXBvbk5ld0JOUCIpLDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGFuZHNhdmVfdGV4dCIpLmxlbmd0aCYmKGE9IlJlYmF0ZUNvdXBvbiIpKTtpZihkLnBhZ2VJZC5pbmNsdWRlcygic2hvd3Jvb206Y29tcGFyZSIpJiZ2b2lkIDAhPT1hJiZhLmluY2x1ZGVzKCJmZWF0dXJlZFByb2R1Y3RfIikpcmV0dXJue2Zvcm1UeXBlOiJyZXNlYXJjaCIsZm9ybU5hbWU6IkNvbXBhcmVGb3JtIn07aWYoMDxiLmNsb3Nlc3QoIiNtdWx0aWZvcm1fZW1iZWRkZWQiKS5sZW5ndGgmJjA8Yi5jbG9zZXN0KCIjbXVsdGlmb3JtX2VtYmVkZGVkIikuZmluZCgiLm11bHRpZm9ybV9lbWJlZGRlZF9zdGVwMSIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJEaXNjb3Zlck9mZmVyIn07CnN3aXRjaChhKXtjYXNlICJtaW5pZm9ybSI6Y2FzZSAiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QifTtjYXNlICJsb2FuLWZvcm0iOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJQcmljZVJlcXVlc3QifTtjYXNlICJmb3JtRGVhbGVyQXBwb2ludG1lbnQiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkRlYWxlckFwcG9pbnRtZW50In07Y2FzZSAiU2xpZGVXaWRnZXRGb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJTbGlkZVdpZGdldEZvcm0ifTtjYXNlICJjcmVkaXRTY29yZSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdFJlcXVlc3RfU2hvcnQifTtjYXNlICJSZWJhdGVDb3Vwb25OZXdCTlAiOnJldHVybntmb3JtVHlwZToicHJlLW9yZGVyIiwKZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ld0JOUCJ9O2Nhc2UgImJhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9ib2R5IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJCYW5uZXJGb3JtIn07Y2FzZSAicGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCI6Y2FzZSAicGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IjpjYXNlICJwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIjpjYXNlICJwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiTW9udGhseVBheW1lbnRzIn07Y2FzZSAiY29udGFjdF9mb3JtIjpjYXNlICJjb250YWN0X2Zvcm0yIjpjYXNlICJjb250YWN0X2Zvcm0zIjpjYXNlICJSZXF1ZXN0IGZvciBjb250YWN0IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJDb250YWN0UmVxdWVzdCJ9O2Nhc2UgInF1aWNrRW1haWxGb3JtIjpjYXNlICJtYWlsRXhwcmVzc1JlcXVlc3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsCmZvcm1OYW1lOiJRdWlja0VtYWlsIn07Y2FzZSAidHJhZGluTWFrZSI6Y2FzZSAidHJhZGluWWVhciI6Y2FzZSAidHJhZGluTW9kZWwiOmNhc2UgInRyYWRpblRyaW0iOmNhc2UgInRyYWRlSW5CYXJQb3B1cEZvcm0iOmNhc2UgIlNlbGxDYXJGb3JtIjpyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIixmb3JtTmFtZToiUHJpY2VWZWhpY2xlIn19aWYoMDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keSIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTEiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkyIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MyIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJSZWJhdGVDb3Vwb25OZXcifTtpZigwPGIuY2xvc2VzdCgiI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifX1yZXR1cm4hMX07CmUuY29tbVN1YkRhdGFQYXJzZXI9ZnVuY3Rpb24oYixhKXtsZXQgYz17Zm9ybV9uYW1lOiIiLGZvcm1fdHlwZToiIixmb3JtX2RlcHQ6IiIsZm9ybV9sYW5nOiIifTsvYXNjX2NvbW1fc3VibWlzc2lvbi8udGVzdChiKSYmIlNsaWRlV2lkZ2V0Rm9ybSI9PWEuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIikmJihjLmZvcm1fbmFtZT0iTGVhZDogQ2hhdCBTdWJtaXNzaW9uIik7cmV0dXJuIGN9O2UuYXNjVGV4dFJlcGxhY2VyPWZ1bmN0aW9uKGIpe2I9Yi5yZXBsYWNlKC8oXHJcbnxcbnxccnxcdCkvZ20sIiIpO2I9Yi5yZXBsYWNlKC88XC8\/W14+XSsoPnwkKS9nLCIiKTtyZXR1cm4gYj1iLnRyaW0oKX07ZS5oYXNoVGV4dD1mdW5jdGlvbihiKXtiPShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShiLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGIpLnRoZW4oYT0+QXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhKSkubWFwKGM9PgpjLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpLmpvaW4oIiIpKX07ZS5nZXRGb3JtT3V0Y29tZT1mdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjpjYXNlICJEMkNfTGVhZHMiOnJldHVybiJjcm1fdXBkYXRlIjtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZV9hcHB0IjpyZXR1cm4iYXBwdF9ib29rZWQifX07ZS5nZXREMmNEZXBhcnRtZW50PWZ1bmN0aW9uKGIpe2xldCBhPWQucGFnZUlkLnRvTG93ZXJDYXNlKCksYz13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKSxmPSJPVEhFUiI7L25ldWZzLy50ZXN0KGMpJiYoZj0iTkVXIik7L25ldy8udGVzdChjKSYmKGY9Ik5FVyIpOy9vY2Nhc2lvbi8udGVzdChjKSYmCihmPSJVU0VEIik7L3VzZWQvLnRlc3QoYykmJihmPSJVU0VEIik7YS5pbmNsdWRlcygiZmluYW5jZSIpJiYoZj0iRklOQU5DRSIpO2EuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJwYXJ0cyIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInRpcmVzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiYm9keSBzaG9wIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiZmluYW5jZSBkZXBhcnRtZW50IikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygiY3JlZGl0IikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygiY29udGFjdCB1cyIpJiYoZj0iU0FMRVMiKTthLmluY2x1ZGVzKCJyZWNhbGwiKSYmKGY9IlNFUlZJQ0UiKTtiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihmPSJGSU5BTkNFIiksImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciI9PQpiLmF0dHIoImlkIikmJihmPSJGSU5BTkNFIiksMDxiLmNsb3Nlc3QoIiNTZWxsQ2FyRm9ybSIpLmxlbmd0aCYmKGY9IkZJTkFOQ0UiKSx2b2lkIDAhPT1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpJiYoZj1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpKSk7cmV0dXJuIGZ9O2UuZ2V0Rm9ybVR5cGU9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKTtpZihhLmluY2x1ZGVzKCJyZXF1ZXN0IGFwcG9pbnRtZW50IikpcmV0dXJuInNlcnZpY2VfYXBwb2ludG1lbnQiO2lmKGEuaW5jbHVkZXMoIm9yZGVyIHBhcnRzIil8fGEuaW5jbHVkZXMoIm9yZGVyIHRpcmVzIikpcmV0dXJuInBhcnRzIjtpZihhLmluY2x1ZGVzKCJib2R5IHNob3AiKSlyZXR1cm4iYm9keV9zaG9wIjtpZihhLmluY2x1ZGVzKCJmaW5hbmNlIGRlcGFydG1lbnQiKXx8YS5pbmNsdWRlcygiY3JlZGl0IikpcmV0dXJuImNyZWRpdCI7Yj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtVHlwZToKImNvbnN1bWVyX2NvbnRhY3QifTtlLmdldEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGIpe3JldHVybiJ0b3BCYW5uZXJJbWFnZSI9PWIuYXR0cigiaWQiKXx8MDxiLmNsb3Nlc3QoIiN0b3BCYW5uZXJJbWFnZSIpLmxlbmd0aD8iYmFubmVyIjowPGIuY2xvc2VzdCgiLmhlYWRlci1pbWFnZS13cmFwcGVyIikubGVuZ3RoPyJoZWFkZXIiOjA8Yi5jbG9zZXN0KCIubGFuZ3VhZ2VCYXIiKS5sZW5ndGg\/ImFjY2Vzc2liaWxpdHlfdG9vbCI6MDxiLmhhcygiLmRlYWxlck1hcExpbmsiKS5sZW5ndGg\/Im1hcCI6MDxiLmNsb3Nlc3QoIi5zbGlkZXMiKS5sZW5ndGg\/ImdhbGxlcnkiOjA8Yi5jbG9zZXN0KCIudXNlZFZkcEFjdGlvbnMiKS5sZW5ndGg\/ImRpZ2l0YWxfcmV0YWlsaW5nX3Rvb2wiOiJQdWxsb3V0X0J1aWxkLWFuZC1QcmljZSI9PWIuYXR0cigiLnVzZWRWZHBBY3Rpb25zIik\/ImJhbm5lciI6Im5ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIj09Yi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8KInZpZGVvIjoiZGlnaXRhbF9yZXRhaWxpbmcifTtlLmdldFZlaGljbGVKU09OPWZ1bmN0aW9uKGIsYSl7JC5nZXQoIi9qcy9qc29uLyIrYisiLmpzb24iKS5kb25lKGZ1bmN0aW9uKGMpe2MuaXRlbV9udW1iZXI9YjtpZigiIiE9YSYmdm9pZCAwIT09YSl3aW5kb3dbYV0oYyk7cmV0dXJuIGN9KX07ZS5yZXBvcnQ9ZnVuY3Rpb24oYixhLGMsZil7aWYodm9pZCAwPT09ZC5zdWJfZ2E0fHwiTiI9PWQuc3ViX2dhNCljPU9iamVjdC5hc3NpZ24oe30sYyx7c2VuZF90bzoiRy1aNVE4WjVDN0tGIn0pO2lmKCEwPT09bCYmImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1hKXJldHVybiExO2d0YWcoImV2ZW50IixhLGMpO2w9ITA7c2V0VGltZW91dChmdW5jdGlvbigpe2w9ITF9LDFFMyl9O3JldHVybiBlfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5zZXRWZWhpY2xlU3RhdHVzKCExKTsidmRwIj09ZC5wYWdlSWQmJigwPCQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmIiIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpJiYKIjAiIT0kKCIjdG9wY2FyaWQiKS52YWwoKT9nLmdldFZlaGljbGVKU09OKCQoIiN0b3BjYXJpZCIpLnZhbCgpLCJhc2NVcGRhdGVUb3BDYXJEYXRhIik6YXNjVXBkYXRlVG9wQ2FyRGF0YSghMSkpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19wYWdldmlldyIse30pfSl9LDFFMyk7JC5lYWNoKGssZnVuY3Rpb24oYixhKXtnLmJpbmRFbGVtZW50cyhiLGEpfSwhMSk7JCgiLnJldmVhbC1tb2RhbCIpLm9uZSgicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoYi50YXJnZXQpKTtnLmJpbmRFbGVtZW50cygiYXNjX2Zvcm1fZW5nYWdlbWVudCIsWyQoYi50YXJnZXQpLmZpbmQoImZvcm0gaW5wdXQsIGZvcm0gc2VsZWN0LCBmb3JtIHRleHRhcmVhIildKX0pO3NldFRpbWVvdXQoKCk9PnskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdEZWFsZXJBcHBvaW50bWVudCddIikub24oImNsaWNrIiwKZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsRGVhbGVyQXBwb2ludG1lbnQiKSl9KTskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdQYXlwYWxQYXltZW50J10iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoIiNtb2RhbFBheXBhbFBheW1lbnQiKSl9KX0sMUUzKTswPCQoIiNmbHRTb3J0SWQiKS5sZW5ndGgmJihhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD0kKCIjZmx0U29ydElkIC5kaXZBY3Rpb25XcmFwcGVyIC5kaXZMYWJlbCIpLmh0bWwoKSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LkFic3RyYWN0VXNlZFNycE9iamVjdCl7dmFyIGU9bmV3IEFic3RyYWN0VXNlZFNycE9iamVjdCh7bmFtZToiZDJjX2hvbmRhX2d0bSJ9KTtlLmFkZFVzZWRTcnBFdmVudE9ic2VydmVyKCJwcm94eSIsZnVuY3Rpb24oYil7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYi5jbWQmJgoicmVxdWVzdCI9PT1iLmNtZCYmITEhPT1iLmRhdGEpe2xldCBhPWIuZGF0YS5maWx0ZXJTdGF0ZS5maWx0ZXJTZWFyY2g7c2V0VGltZW91dChmdW5jdGlvbigpe2EucmVzdWx0cz1iLmRhdGEuZmlsdGVyU3RhdGUuY291bnRTZWFyY2hSZXN1bHRzO2EudHlwZWRTZWFyY2g9Yi5kYXRhLmZpbHRlclN0YXRlLnR5cGVkU2VhcmNoO2EuZXZlbnRfYWN0aW9uX3Jlc3VsdD0ic2VhcmNoIjthLmV2ZW50X2FjdGlvbj0ic2VhcmNoIjthLmZpbHRlckluZm89YXNjTGFzdEZpbHRlckNsaWNrO2FzY0xhc3RGaWx0ZXJDbGljaz0hMTtPYmplY3Qua2V5cyhhKS5pbmNsdWRlcygic29ydCIpJiZhc2NMYXN0U2VhcmNoRmlsdGVyU29ydCE9YS5zb3J0WzBdJiYoYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9YS5zb3J0WzBdLGEuZXZlbnRfYWN0aW9uPSJzb3J0Iik7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbiIsYSl9LDEwMCl9fSk7ZS5pbml0VXNlZFNycE9ic2VydmVyKCl9JChkb2N1bWVudCkub24oInVzZWRTcnBGaWx0ZXJzLm9uQ2hhbmdlIiwKImJvZHkiLChiLGEpPT57Yj0kKCIjIithLmlkKTtiPSQoIi5mbHRUaXRsZSIsYikudGV4dCgpO2xldCBjPWEudmFsdWU7dmFyIGY9IiI7bGV0IG09InRleHRfc2VhcmNoIjthLnZhbHVlJiZhLnZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoIjo6Iik\/KG09ImJ1dHRvbiIsZj1hLnZhbHVlLnNwbGl0KCI6OiIpLGEudmFsdWU9ZlswXSxmPWZbMV0pOmEudmFsdWUmJmEudmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcygiLCIpJiYobT0icmFuZ2Vfc2xpZGVyIik7YXNjTGFzdEZpbHRlckNsaWNrPXtpZDphLmlkLHRpdGxlOmEubGFiZWwsdmFsdWU6YS52YWx1ZSxvcmdfdmFsdWU6YyxzdGF0ZTpmLHR5cGU6bSxsYWJlbDpifX0pOyQoImJvZHkiKS5vbigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIsZnVuY3Rpb24oYixhKXtjb25zb2xlLmxvZygiRDJBU0MgRW1haWwgU2VudCBUcmlnZ2VyIixiLGEpO2lmKHZvaWQgMCE9PWEuZGV0YWlsLmxlYWRUeXBlKXtiPWEuZGV0YWlsLmxlYWRUeXBlO2lmKGIuaW5jbHVkZXMoIkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSIpfHwKYi5pbmNsdWRlcygiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXMiKSlyZXR1cm4hMTtiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIiKSYmKGI9IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiKTtiLnRyaW0oKTthLmRldGFpbC5sZWFkVHlwZT1ifXZvaWQgMCE9PWEuZGV0YWlsLmxlYWRUeXBlJiYiIiE9YS5kZXRhaWwubGVhZFR5cGV8fHZvaWQgMD09PWEuZGV0YWlsLm1haWxJZHx8KGEuZGV0YWlsLmxlYWRUeXBlPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCxhLmRldGFpbC5tYWlsSWQpKTthLmRldGFpbC5sZWFkTmFtZUFycj1kLmZvcm1NYXA7dm9pZCAwPT09YS5kZXRhaWwuY29uZmlybV9lbWFpbCYmKGEuZGV0YWlsLmNvbmZpcm1fZW1haWw9IiIpO3ZvaWQgMD09PWEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyJiYoYS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXI9IiIpO1Byb21pc2UuYWxsKFtnLmhhc2hUZXh0KGEuZGV0YWlsLmNvbmZpcm1fZW1haWwpLApnLmhhc2hUZXh0KGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyKV0pLnRoZW4oYz0+e3ZhciBbZixtXT1jO2EuZGV0YWlsLmNvbmZpcm1fZW1haWw9ZjthLmRldGFpbC5jb25maXJtX3Bob25lX251bWJlcj1tfSk7dm9pZCAwIT09YXNjVG9wQ2FyRGV0YWlscy5tYWtlJiYiIiE9YXNjVG9wQ2FyRGV0YWlscy5tYWtlfHx2b2lkIDA9PT1hLmRldGFpbC5tYWtlfHwiIj09YS5kZXRhaWwubWFrZXx8KGEuZGV0YWlsLnZjYXRlZ29yeT1hLmRldGFpbC5jb25kaXRpb24sYS5kZXRhaWwudmVyc2lvbj1hLmRldGFpbC50cmltLGEuZGV0YWlsLmJvZHlUeXBlSUQ9YS5kZXRhaWwudHJpbSxhLmRldGFpbC5jb2xvcj0iIixhLmRldGFpbC52Y2FyYnVyYW50PSIiLGEuZGV0YWlsLmRhdGVfbGlzdGluZz0iIixhc2NVcGRhdGVUb3BDYXJEYXRhKGEuZGV0YWlsKSk7c2V0VGltZW91dChmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLGEuZGV0YWlsKX0sMjUwKX0pOwokKCIjU2xpZGVXaWRnZXRGb3JtIGEuYnRuLWRlZmF1bHQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7bGV0IGI9ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLCJTbGlkZVdpZGdldEZvcm0iKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIix7ZGVwYXJ0bWVudDoic2FsZXMiLGxlYWRUeXBlOmIsY3VycmVudFVSTDoiIn0pfSk7JChkb2N1bWVudCkub24oImZvcm0uc3RlcCIsIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixmdW5jdGlvbihiKXtnLnNldERpZ2l0YWxEYXRhKCJhc2NfcmV0YWlsX3Byb2Nlc3MiLGIpfSk7JChkb2N1bWVudCkub24oIm11bHRpRm9ybUZpbmFuY2VTdWJtaXQiLGRvY3VtZW50LmJvZHksZnVuY3Rpb24oYil7Yj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIix7ZGVwYXJ0bWVudDoiZmluYW5jZSIsbGVhZFR5cGU6YiwKY3VycmVudFVSTDoiIn0pfSl9LDFFMyk7d2luZG93LmQyYXNjPWd9OwovKiogL2pzL3ByaW50VGhpcy5qcyAqKi8KdmFyIF9fX2QyY19wcmludFRoaXNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjQwIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19wcmludFRoaXNqc19jX29uPSIyMDI0LTA3LTMwIDEwOjMwOjA4IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihjKXtmdW5jdGlvbiByKGQsZSl7ZSYmZC5hcHBlbmQoZS5qcXVlcnk\/ZS5jbG9uZSgpOmUpfWZ1bmN0aW9uIHQoZCxlLGspe3ZhciBmPWUuY2xvbmUoay5mb3JtVmFsdWVzKTtrLmZvcm1WYWx1ZXMmJnUoZSxmLCJzZWxlY3QsIHRleHRhcmVhIik7ay5yZW1vdmVTY3JpcHRzJiZmLmZpbmQoInNjcmlwdCIpLnJlbW92ZSgpO2sucHJpbnRDb250YWluZXI\/Zi5hcHBlbmRUbyhkKTpmLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmNoaWxkcmVuKCkuYXBwZW5kVG8oZCl9KX1mdW5jdGlvbiB1KGQsZSxrKXt2YXIgZj1kLmZpbmQoayk7ZS5maW5kKGspLmVhY2goZnVuY3Rpb24oZyxxKXtjKHEpLnZhbChmLmVxKGcpLnZhbCgpKX0pfXZhciBhO2MuZm4ucHJpbnRUaGlzPWZ1bmN0aW9uKGQpe2E9Yy5leHRlbmQoe30sYy5mbi5wcmludFRoaXMuZGVmYXVsdHMsZCk7dmFyIGU9dGhpcyBpbnN0YW5jZW9mIGpRdWVyeT90aGlzOmModGhpcyk7ZD0icHJpbnRUaGlzLSIrKG5ldyBEYXRlKS5nZXRUaW1lKCk7CmlmKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSE9PWRvY3VtZW50LmRvbWFpbiYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvbXNpZS9pKSl7dmFyIGs9J2phdmFzY3JpcHQ6ZG9jdW1lbnQud3JpdGUoIjxoZWFkPjxzY3JpcHQ+ZG9jdW1lbnQuZG9tYWluPVxcIicrZG9jdW1lbnQuZG9tYWluKydcXCI7XHgzYy9zY3JpcHQ+PC9oZWFkPjxib2R5PjwvYm9keT4iKScsZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtmLm5hbWU9InByaW50SWZyYW1lIjtmLmlkPWQ7Zi5jbGFzc05hbWU9Ik1TSUUiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZik7Zi5zcmM9a31lbHNlIGMoIjxpZnJhbWUgaWQ9JyIrZCsiJyBuYW1lPSdwcmludElmcmFtZScgLz4iKS5hcHBlbmRUbygiYm9keSIpO3ZhciBnPWMoIiMiK2QpO2EuZGVidWd8fGcuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIwcHgiLGhlaWdodDoiMHB4IixsZWZ0OiItNjAwcHgiLHRvcDoiLTYwMHB4In0pOwpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcShiLHApe2I9Yi5nZXQoMCk7Yj1iLmNvbnRlbnRXaW5kb3d8fGIuY29udGVudERvY3VtZW50fHxiO2I9Yi5kb2N1bWVudHx8Yi5jb250ZW50RG9jdW1lbnR8fGI7Yi5vcGVuKCk7Yi53cml0ZShwKTtiLmNsb3NlKCl9YS5kb2N0eXBlU3RyaW5nJiZxKGcsYS5kb2N0eXBlU3RyaW5nKTt2YXIgbT1nLmNvbnRlbnRzKCksbD1tLmZpbmQoImhlYWQiKSxuPW0uZmluZCgiYm9keSIpLGg9YygiYmFzZSIpO2g9ITA9PT1hLmJhc2UmJjA8aC5sZW5ndGg\/aC5hdHRyKCJocmVmIik6InN0cmluZyI9PT10eXBlb2YgYS5iYXNlP2EuYmFzZTpkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2RvY3VtZW50LmxvY2F0aW9uLmhvc3Q7bC5hcHBlbmQoJzxiYXNlIGhyZWY9IicraCsnIj4nKTthLmltcG9ydENTUyYmYygibGlua1tyZWw9c3R5bGVzaGVldF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKS5hdHRyKCJocmVmIik7aWYoYil7dmFyIHA9CmModGhpcykuYXR0cigibWVkaWEiKXx8ImFsbCI7bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrYisiJyBtZWRpYT0nIitwKyInLz4iKX19KTthLmltcG9ydFN0eWxlJiZjKCJzdHlsZSIpLmVhY2goZnVuY3Rpb24oKXtsLmFwcGVuZCh0aGlzLm91dGVySFRNTCl9KTthLnBhZ2VUaXRsZSYmbC5hcHBlbmQoIjx0aXRsZT4iK2EucGFnZVRpdGxlKyI8L3RpdGxlPiIpO2EubG9hZENTUyYmKEFycmF5LmlzQXJyYXkoYS5sb2FkQ1NTKT9qUXVlcnkuZWFjaChhLmxvYWRDU1MsZnVuY3Rpb24oYixwKXtsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIit0aGlzKyInLz4iKX0pOmwuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK2EubG9hZENTUysiJy8+IikpO2lmKGg9YS5jb3B5VGFnQ2xhc3NlcyloPSEwPT09aD8iYmgiOmgsLTEhPT1oLmluZGV4T2YoImIiKSYmCm4uYWRkQ2xhc3MoYygiYm9keSIpWzBdLmNsYXNzTmFtZSksLTEhPT1oLmluZGV4T2YoImgiKSYmbS5maW5kKCJodG1sIikuYWRkQ2xhc3MoYygiaHRtbCIpWzBdLmNsYXNzTmFtZSk7cihuLGEuaGVhZGVyKTtpZihhLmNhbnZhcyl7dmFyIHY9MDtlLmZpbmQoImNhbnZhcyIpLmFkZEJhY2soImNhbnZhcyIpLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmF0dHIoImRhdGEtcHJpbnR0aGlzIix2KyspfSl9dChuLGUsYSk7YS5jYW52YXMmJm4uZmluZCgiY2FudmFzIikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWModGhpcykuZGF0YSgicHJpbnR0aGlzIik7Yj1jKCdbZGF0YS1wcmludHRoaXM9IicrYisnIl0nKTt0aGlzLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKGJbMF0sMCwwKTtiLnJlbW92ZURhdGEoInByaW50dGhpcyIpfSk7YS5yZW1vdmVJbmxpbmUmJihpc0Z1bmN0aW9uKGMucmVtb3ZlQXR0cik\/bS5maW5kKCJib2R5ICoiKS5yZW1vdmVBdHRyKCJzdHlsZSIpOm0uZmluZCgiYm9keSAqIikuYXR0cigic3R5bGUiLAoiIikpO3IobixhLmZvb3Rlcik7c2V0VGltZW91dChmdW5jdGlvbigpe2cuaGFzQ2xhc3MoIk1TSUUiKT8od2luZG93LmZyYW1lcy5wcmludElmcmFtZS50cmlnZ2VyKCJmb2N1cyIpLGwuYXBwZW5kKCI8c2NyaXB0PiAgd2luZG93LnByaW50KCk7IFx4M2Mvc2NyaXB0PiIpKTpkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoInByaW50Iik\/Z1swXS5jb250ZW50V2luZG93LmRvY3VtZW50LmV4ZWNDb21tYW5kKCJwcmludCIsITEsbnVsbCk6KGdbMF0uY29udGVudFdpbmRvdy50cmlnZ2VyKCJmb2N1cyIpLGdbMF0uY29udGVudFdpbmRvdy5wcmludCgpKTthLmRlYnVnfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5yZW1vdmUoKX0sMUUzKX0sYS5wcmludERlbGF5KX0sMzMzKX07Yy5mbi5wcmludFRoaXMuZGVmYXVsdHM9e2RlYnVnOiExLGltcG9ydENTUzohMCxpbXBvcnRTdHlsZTohMSxwcmludENvbnRhaW5lcjohMCxsb2FkQ1NTOiIiLHBhZ2VUaXRsZToiIixyZW1vdmVJbmxpbmU6ITEsCnByaW50RGVsYXk6MzMzLGhlYWRlcjpudWxsLGZvb3RlcjpudWxsLGZvcm1WYWx1ZXM6ITAsY2FudmFzOiExLGJhc2U6ITEsZG9jdHlwZVN0cmluZzoiPCFET0NUWVBFIGh0bWw+IixyZW1vdmVTY3JpcHRzOiExLGNvcHlUYWdDbGFzc2VzOiExfX0pKGpRdWVyeSk7Ci8qKiAvanMvYmFzZTY0LmpzICoqLwp2YXIgX19fZDJjX2Jhc2U2NGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDY6MDgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Jhc2U2NGpzX2Nfb249IjIwMjQtMDctMDggMTA6MzA6MDUiOyJ1c2Ugc3RyaWN0IjsKdmFyIEJhc2U2ND17X2tleVN0cjoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLF9iNjRUZXN0OlJlZ0V4cCgiXig\/OltBLVphLXowLTkrL117NH0pKig\/OltBLVphLXowLTkrL117Mn09PXxbQS1aYS16MC05Ky9dezN9PSk\/JCIpLGVuY29kZTpmdW5jdGlvbihhKXt2YXIgZD0iIixjPTA7Zm9yKGE9QmFzZTY0Ll91dGY4X2VuY29kZShhKTtjPGEubGVuZ3RoOyl7dmFyIGI9YS5jaGFyQ29kZUF0KGMrKyksZT1hLmNoYXJDb2RlQXQoYysrKSxmPWEuY2hhckNvZGVBdChjKyspLGc9Yj4+MjtiPShiJjMpPDw0fGU+PjQ7dmFyIGg9KGUmMTUpPDwyfGY+PjYsaz1mJjYzO2lzTmFOKGUpP2g9az02NDppc05hTihmKSYmKGs9NjQpO2Q9ZCt0aGlzLl9rZXlTdHIuY2hhckF0KGcpK3RoaXMuX2tleVN0ci5jaGFyQXQoYikrdGhpcy5fa2V5U3RyLmNoYXJBdChoKSt0aGlzLl9rZXlTdHIuY2hhckF0KGspfXJldHVybiBkfSxkZWNvZGU6ZnVuY3Rpb24oYSl7dmFyIGQ9CiIiLGM9MDtmb3IoYT1hLnJlcGxhY2UoL1teQS1aYS16MC05XCtcLz1dL2csIiIpO2M8YS5sZW5ndGg7KXt2YXIgYj10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxlPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGY9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZz10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKTtiPWI8PDJ8ZT4+NDtlPShlJjE1KTw8NHxmPj4yO3ZhciBoPShmJjMpPDw2fGc7ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKTs2NCE9ZiYmKGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpOzY0IT1nJiYoZCs9U3RyaW5nLmZyb21DaGFyQ29kZShoKSl9cmV0dXJuIEJhc2U2NC5fdXRmOF9kZWNvZGUoZCl9LF91dGY4X2VuY29kZTpmdW5jdGlvbihhKXt2YXIgZD0iIjthPWEucmVwbGFjZSgvXHJcbi9nLCJcbiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgYj1hLmNoYXJDb2RlQXQoYyk7MTI4PgpiP2QrPVN0cmluZy5mcm9tQ2hhckNvZGUoYik6KDEyNzxiJiYyMDQ4PmI\/ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj42fDE5Mik6KGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+MTJ8MjI0KSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjYmNjN8MTI4KSksZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiJjYzfDEyOCkpfXJldHVybiBkfSxfdXRmOF9kZWNvZGU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBkPSIiLGM9MCxiLGUsZjtjPGEubGVuZ3RoOyliPWEuY2hhckNvZGVBdChjKSwxMjg+Yj8oZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKSxjKyspOjE5MTxiJiYyMjQ+Yj8oZT1hLmNoYXJDb2RlQXQoYysxKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChiJjMxKTw8NnxlJjYzKSxjKz0yKTooZT1hLmNoYXJDb2RlQXQoYysxKSxmPWEuY2hhckNvZGVBdChjKzIpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGImMTUpPDwxMnwoZSY2Myk8PDZ8ZiY2MyksYys9Myk7cmV0dXJuIGR9LHdoaXRlTGlzdDpmdW5jdGlvbigpe3JldHVyblsidHJhaWxlcnMiXX0sCmlzQmFzZTY0OmZ1bmN0aW9uKGEpe3JldHVybiBCYXNlNjQud2hpdGVMaXN0KCkuaW5jbHVkZXMoYS50b0xvd2VyQ2FzZSgpKXx8InVuZGVmaW5lZCI9PT10eXBlb2YgYXx8IiI9PT1hfHwiIj09PWEudHJpbSgpfHw0Pj1hLmxlbmd0aD8hMTpCYXNlNjQuZW5jb2RlKEJhc2U2NC5kZWNvZGUoYSkpPT1hfX07Ci8qKiAvanMvRmlyZXdvcmsubWluLmpzICoqLwovKiBKYXZhU2NyaXB0IEZpcmV3b3JrcyBBbmltYXRpb24gYnkgQW5kZXNDb2RlIChodHRwOi8vY29kZWNhbnlvbi5uZXQvdXNlci9hbmRlc2NvZGUvcG9ydGZvbGlvKSAqLyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBDRmlyZXdvcmsobix0LGkscix1KXtmd1RvdGFsKys7dGhpcy5udW09ZndUb3RhbDt0aGlzLmh0bWxDb250YWluZXJJZD1uLnRvTG93ZXJDYXNlKCk7dGhpcy5odG1sQ29udGFpbmVyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pO3RoaXMuZmlyZUNvbG9yPXQ7dGhpcy5zdGFydFg9aTt0aGlzLnN0YXJ0WT1yO3RoaXMuZndTY2FsZT10eXBlb2YgdSE9InVuZGVmaW5lZCI\/dToxO3RoaXMuU1ZHY2FudmFzPW51bGw7dGhpcy5md0NvbnRhaW5lcj1udWxsO3RoaXMuYXNjZW5kaW5nRmlyZUJhbGw9bnVsbDt0aGlzLnNwYXJrcz1udWxsO3RoaXMuZmFzdEV4cGxvc2lvbj1udWxsO3RoaXMucGFydGljbGVzPW51bGw7dGhpcy5zaGluZUNvbG9yPW51bGw7dGhpcy52ZWxYPTA7dGhpcy52ZWxZPS0xMDA7dGhpcy5ncmF2aXR5PTQwO3RoaXMudGltZUJlZm9yZUV4cGxvc2lvbj0xNTAwO3RoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXM9MTQ7dGhpcy5maXJzdEV4cGxvc2lvblJhZGl1cz00NTt0aGlzLm51bUV4cGxvc2lvblBhcnRpY2xlcz0yMDA7dGhpcy5leHBsb3Npb25QYXJ0aWNsZVJhZGl1cz0yLjU7dGhpcy5leHBsb3Npb25WZWxvY2l0eT0xODA7dGhpcy5leHBsb3Npb25EZWNlbGVyYXRpb249Ljk2O3RoaXMuZXhwbG9zaW9uUGFydGljbGVzTWF4TGlmZXNwYW49MmUzO3RoaXMuc2hpbmVSYWRpdXM9NjA7dGhpcy5zaGluZUV4cGFuc2lvblRpbWU9ODAwO3RoaXMuc2hpbmVGYWRlT3V0VGltZT0xMTAwO3RoaXMudXNlQXVkaW89ITE7dGhpcy5hdWRpb1VSTD0iRXhwbG9zaW9uLm1wMyI7dGhpcy5zZXBhcmF0aW9uPTExODt0aGlzLmZ3Q2VudGVyPTEzMn1mdW5jdGlvbiBGaXJld29ya1RpbWVyKG4sdCxpLHIsdSxmLGUsbyl7dmFyIHM9dHlwZW9mIGYhPSJ1bmRlZmluZWQiP2Y6ITEsaD10eXBlb2YgZSE9InVuZGVmaW5lZCI\/ZToxLGM9dHlwZW9mIG8hPSJ1bmRlZmluZWQiP286MDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHU9bmV3IENGaXJld29yayhuLHQsaSxyLGgpO3UudXNlQXVkaW89czt1LnZlbFg9Yzt1LnN0YXJ0KCl9LHUpfXZhciBmd1NWR25zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZndUb3RhbD0wLGZ3QWN0aXZlcz17fSxleHBsb3Npb25Tb3VuZENyZWF0ZWQ9ITEsZXhwbG9zaW9uTVAzPW51bGw7Q0ZpcmV3b3JrLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe2Z1bmN0aW9uIGgoKXtzfHwobi5zZXRTVkdzY2FsZShuLmFzY2VuZGluZ0ZpcmVCYWxsLG9bdF1bMF0sbi5md0NlbnRlcixuLmZ3Q2VudGVyKSxzZXRUaW1lb3V0KGgsb1t0XVsxXSksdD10PT1vLmxlbmd0aC0xPzA6dCsxKX1mdW5jdGlvbiBhKCl7cz0hMDtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4uYXNjZW5kaW5nRmlyZUJhbGwpO2NsZWFySW50ZXJ2YWwoYyk7bi5leHBsb3Npb24oKX1mdW5jdGlvbiB2KCl7bi5md0NvbnRhaW5lci5yZW1vdmVDaGlsZChuLnBhcnRpY2xlcyk7bi5md0NvbnRhaW5lci5yZW1vdmVDaGlsZChuLnNoaW5lQ29sb3IpO24uU1ZHY2FudmFzLnJlbW92ZUNoaWxkKG4uZndDb250YWluZXIpO2Z3QWN0aXZlc1tuLmh0bWxDb250YWluZXJJZF09TWF0aC5tYXgoMCxmd0FjdGl2ZXNbbi5odG1sQ29udGFpbmVySWRdLTEpO2Z3QWN0aXZlc1tuLmh0bWxDb250YWluZXJJZF09PTAmJm4uaHRtbENvbnRhaW5lci5yZW1vdmVDaGlsZChuLlNWR2NhbnZhcyl9dmFyIHIsaSx1LGYsZSxjO2Z3QWN0aXZlc1t0aGlzLmh0bWxDb250YWluZXJJZF09ZndBY3RpdmVzLmhhc093blByb3BlcnR5KHRoaXMuaHRtbENvbnRhaW5lcklkKT9md0FjdGl2ZXNbdGhpcy5odG1sQ29udGFpbmVySWRdKzE6MTt0aGlzLnNlcGFyYXRpb249TWF0aC5yb3VuZCgxLjYqKHRoaXMuc2hpbmVSYWRpdXMrdGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cykpO3RoaXMuZndDZW50ZXI9dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cyt0aGlzLnNlcGFyYXRpb247cj10aGlzLmh0bWxDb250YWluZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZndTVkdjYW52YXMiKTtyLmxlbmd0aD4wP3RoaXMuU1ZHY2FudmFzPXJbMF06KHRoaXMuU1ZHY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJzdmciKSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjbGFzcyIsImZ3U1ZHY2FudmFzIiksdGhpcy5TVkdjYW52YXMuc2V0QXR0cmlidXRlTlMobnVsbCwid2lkdGgiLHRoaXMuaHRtbENvbnRhaW5lci5vZmZzZXRXaWR0aCksdGhpcy5TVkdjYW52YXMuc2V0QXR0cmlidXRlTlMobnVsbCwiaGVpZ2h0Iix0aGlzLmh0bWxDb250YWluZXIub2Zmc2V0SGVpZ2h0KSx0aGlzLlNWR2NhbnZhcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHlsZSIsImRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlIiksaT1nZXRDb21wdXRlZFN0eWxlKHRoaXMuaHRtbENvbnRhaW5lcixudWxsKS5wb3NpdGlvbi50b0xvd2VyQ2FzZSgpLGk9PSJhYnNvbHV0ZSJ8fGk9PSJmaXhlZCJ8fGk9PSJyZWxhdGl2ZSI\/KHRoaXMuU1ZHY2FudmFzLnN0eWxlLnRvcD0iMHB4Iix0aGlzLlNWR2NhbnZhcy5zdHlsZS5sZWZ0PSIwcHgiKToodT10aGlzLmh0bWxDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5TVkdjYW52YXMuc3R5bGUudG9wPXUudG9wKyJweCIsdGhpcy5TVkdjYW52YXMuc3R5bGUubGVmdD11LmxlZnQrInB4IiksdGhpcy5odG1sQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuU1ZHY2FudmFzKSk7dGhpcy5md0NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIik7Zj0odGhpcy5zZXBhcmF0aW9uK3RoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMpKnRoaXMuZndTY2FsZTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsIngiLHRoaXMuc3RhcnRYLWYpO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwieSIsdGhpcy5zdGFydFktZik7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIsdGhpcy5zZXBhcmF0aW9uKjIqdGhpcy5md1NjYWxlKTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIsdGhpcy5zZXBhcmF0aW9uKjIqdGhpcy5md1NjYWxlKTtlPXRoaXMuc2VwYXJhdGlvbioyO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwidmlld0JveCIsIjAgMCAiK2UrIiAiK2UpO3RoaXMuU1ZHY2FudmFzLmFwcGVuZENoaWxkKHRoaXMuZndDb250YWluZXIpO3RoaXMudXNlQXVkaW8mJiFleHBsb3Npb25Tb3VuZENyZWF0ZWQmJihleHBsb3Npb25NUDM9bmV3IEF1ZGlvKHRoaXMuYXVkaW9VUkwpLGV4cGxvc2lvblNvdW5kQ3JlYXRlZD0hMCk7dGhpcy5jcmVhdGVHcmFkaWVudCh0aGlzLmZ3Q29udGFpbmVyLCJiaWdGaXJlR3JhZCIrdGhpcy5udW0sW3tvZmZzZXQ6IjIwJSIsc3R5bGU6InN0b3AtY29sb3I6I2ZmZjtzdG9wLW9wYWNpdHk6MSJ9LHtvZmZzZXQ6IjQ1JSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MC42In0se29mZnNldDoiMTAwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MCJ9XSk7dGhpcy5jcmVhdGVGaWx0ZXIodGhpcy5md0NvbnRhaW5lciwic3BhcmtsZXNHbG93Iit0aGlzLm51bSwiRkZGRkZGIiwyKTt0aGlzLmNyZWF0ZUdyYWRpZW50KHRoaXMuZndDb250YWluZXIsImV4cGxvc2lvbkdyYWQiK3RoaXMubnVtLFt7b2Zmc2V0OiIwJSIsc3R5bGU6InN0b3AtY29sb3I6I2ZmZjtzdG9wLW9wYWNpdHk6MSJ9LHtvZmZzZXQ6IjEwMCUiLHN0eWxlOiJzdG9wLWNvbG9yOiMiK3RoaXMuZmlyZUNvbG9yKyI7c3RvcC1vcGFjaXR5OjAifV0pO3RoaXMuY3JlYXRlRmlsdGVyKHRoaXMuZndDb250YWluZXIsInBhcnRpY2xlc0dsb3ciK3RoaXMubnVtLHRoaXMuZmlyZUNvbG9yLDQpO3RoaXMuY3JlYXRlR3JhZGllbnQodGhpcy5md0NvbnRhaW5lciwiYmFja2xpZ2h0R3JhZCIrdGhpcy5udW0sW3tvZmZzZXQ6IjIwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MC4zIn0se29mZnNldDoiMTAwJSIsc3R5bGU6InN0b3AtY29sb3I6IyIrdGhpcy5maXJlQ29sb3IrIjtzdG9wLW9wYWNpdHk6MCJ9XSk7dGhpcy5hc2NlbmRpbmdGaXJlQmFsbD10aGlzLmNyZWF0ZVNWRygiY2lyY2xlIiwiYmlnRmlyZSIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2JpZ0ZpcmVHcmFkIit0aGlzLm51bSsiKSJ9KTt0aGlzLmZ3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuYXNjZW5kaW5nRmlyZUJhbGwpO3ZhciBsPXRoaXMudGltZUJlZm9yZUV4cGxvc2lvbitNYXRoLm1heCh0aGlzLmV4cGxvc2lvblBhcnRpY2xlc01heExpZmVzcGFuLHRoaXMuc2hpbmVFeHBhbnNpb25UaW1lK3RoaXMuc2hpbmVGYWRlT3V0VGltZSkrMTAwLHk9dGhpcy5wcm9qZWN0aWxlVHdlZW4odGhpcy5md0NvbnRhaW5lcixsLHYsdGhpcy5ncmF2aXR5LHRoaXMudmVsWCx0aGlzLnZlbFkpLG49dGhpcyxzPSExLG89W1suODUsODVdLFsuNiwzMF0sWy44NSwxMjBdLFsxLDMwXV0sdD0wO2goKTt0aGlzLnNwYXJrcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIik7dGhpcy5zcGFya3Muc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsdGVyIiwidXJsKCNzcGFya2xlc0dsb3ciK3RoaXMubnVtKyIpIik7dGhpcy5zcGFya3Muc2V0QXR0cmlidXRlTlMobnVsbCwieCIsdGhpcy5zZXBhcmF0aW9uKTt0aGlzLnNwYXJrcy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ5Iix0aGlzLnNlcGFyYXRpb24pO3RoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zcGFya3MpO2M9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtDRmlyZXdvcmsucHJvdG90eXBlLmFkZFNwYXJrLmNhbGwobil9LDUpO3NldFRpbWVvdXQoYSx0aGlzLnRpbWVCZWZvcmVFeHBsb3Npb24pfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZVNWRz1mdW5jdGlvbihuLHQsaSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsbiksdTt0IT1udWxsJiZyLnNldEF0dHJpYnV0ZU5TKG51bGwsImlkIix0KTtmb3IodSBpbiBpKXIuc2V0QXR0cmlidXRlTlMobnVsbCx1LGlbdV0pO3JldHVybiByfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUdyYWRpZW50PWZ1bmN0aW9uKG4sdCxpKXtmb3IodmFyIGUscix1LG89dGhpcy5jcmVhdGVTVkcoInJhZGlhbEdyYWRpZW50Iix0LHtjeDoiNTAlIixjeToiNTAlIixyOiI1MCUiLGZ4OiI1MCUiLGZ5OiI1MCUifSksZj0wO2Y8aS5sZW5ndGg7ZisrKXtlPWlbZl07cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3RvcCIpO2Zvcih1IGluIGUpci5oYXNBdHRyaWJ1dGUodSl8fHIuc2V0QXR0cmlidXRlKHUsZVt1XSk7by5hcHBlbmRDaGlsZChyKX10aGlzLmluc2VydERlZihuLG8pfTtDRmlyZXdvcmsucHJvdG90eXBlLmNyZWF0ZUZpbHRlcj1mdW5jdGlvbihuLHQsaSxyKXt2YXIgZj1wYXJzZUludChpLDE2KSxvPShmPj4xNiYyNTUpLzI1NSxzPShmPj44JjI1NSkvMjU1LGg9KGYmMjU1KS8yNTUsdT10aGlzLmNyZWF0ZVNWRygiZmlsdGVyIix0LHt9KSxsPXRoaXMuY3JlYXRlU1ZHKCJmZUNvbG9yTWF0cml4IixudWxsLHt0eXBlOiJtYXRyaXgiLHZhbHVlczoiMCAwIDAgIitvKyIgIitvKyIgIDAgMCAwICIrcysiICIrcysiICAwIDAgMCAiK2grIiAiK2grIiAgMCAwIDAgMSAwIn0pLGM7dS5hcHBlbmRDaGlsZChsKTtjPXRoaXMuY3JlYXRlU1ZHKCJmZUdhdXNzaWFuQmx1ciIsbnVsbCx7c3RkRGV2aWF0aW9uOnIscmVzdWx0OiJjb2xvcmVkQmx1ciJ9KTt1LmFwcGVuZENoaWxkKGMpO3ZhciBlPXRoaXMuY3JlYXRlU1ZHKCJmZU1lcmdlIixudWxsLHt9KSxhPXRoaXMuY3JlYXRlU1ZHKCJmZU1lcmdlTm9kZSIsbnVsbCx7ImluIjoiY29sb3JlZEJsdXIifSksdj10aGlzLmNyZWF0ZVNWRygiZmVNZXJnZU5vZGUiLG51bGwseyJpbiI6IlNvdXJjZUdyYXBoaWMifSk7ZS5hcHBlbmRDaGlsZChhKTtlLmFwcGVuZENoaWxkKHYpO3UuYXBwZW5kQ2hpbGQoZSk7dGhpcy5pbnNlcnREZWYobix1KX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5pbnNlcnREZWY9ZnVuY3Rpb24obix0KXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoImRlZnMiKXx8bi5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsImRlZnMiKSxuLmZpcnN0Q2hpbGQpO2kuYXBwZW5kQ2hpbGQodCl9O0NGaXJld29yay5wcm90b3R5cGUuYWRkU3Bhcms9ZnVuY3Rpb24oKXtmdW5jdGlvbiBvKCl7bi5yZW1vdmVDaGlsZCh0KX12YXIgaT00MDArTWF0aC5yYW5kb20oKSo4MDAscj10aGlzLnZlbFgrTWF0aC5yYW5kb20oKSoyMC0xMCx1PU1hdGgucmFuZG9tKCkqODArNDAsZj10aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzK01hdGgucmFuZG9tKCkqMy0xLjUsZT10aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzK01hdGgucmFuZG9tKCkqNCxuPXRoaXMuc3BhcmtzLHQ9Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVDaXJjbGUuY2FsbCh0aGlzLG4sZixlLDEsIkZGRUVCOCIpO3RoaXMucHJvamVjdGlsZVR3ZWVuKHQsaSxvLDAsLXIsdSwxLDApfTtDRmlyZXdvcmsucHJvdG90eXBlLmV4cGxvc2lvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGYodCl7MTU8dCYmdDw0MCYmbi5zZXRTVkdzY2FsZShuLmZhc3RFeHBsb3Npb24sMS42NyxuLmZ3Q2VudGVyLG4uZndDZW50ZXIpOzQwPD10JiZ0PDY1JiZuLnNldFNWR3NjYWxlKG4uZmFzdEV4cGxvc2lvbiwxLG4uZndDZW50ZXIsbi5md0NlbnRlcil9ZnVuY3Rpb24gYSh0KXt2YXIgaT1NYXRoLm1pbih0L24uc2hpbmVFeHBhbnNpb25UaW1lLDEpLHI9LjkrLjcqaSooMi1pKTtuLnNoaW5lQ29sb3Iuc2V0QXR0cmlidXRlKCJyIixyKm4uc2hpbmVSYWRpdXMpfWZ1bmN0aW9uIHYoKXt2YXIgdD1uLmFuaW1hdGlvbihuLnNoaW5lRmFkZU91dFRpbWUseSxudWxsKX1mdW5jdGlvbiB5KHQpe3ZhciBpPU1hdGgubWluKHQvbi5zaGluZUZhZGVPdXRUaW1lLDEpLHI9MS1pKmk7bi5zaGluZUNvbG9yLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IixyKX12YXIgbj10aGlzLHUsZSx0LGw7Zm9yKHRoaXMuc2hpbmVDb2xvcj10aGlzLmNyZWF0ZVNWRygiY2lyY2xlIiwic2hpbmVDb2xvciIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuc2hpbmVSYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2JhY2tsaWdodEdyYWQiK3RoaXMubnVtKyIpIn0pLHRoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zaGluZUNvbG9yKSx0aGlzLmZhc3RFeHBsb3Npb249dGhpcy5jcmVhdGVTVkcoImNpcmNsZSIsImV4cGxvc2lvbiIse2N4OnRoaXMuZndDZW50ZXIsY3k6dGhpcy5md0NlbnRlcixyOnRoaXMuZmlyc3RFeHBsb3Npb25SYWRpdXMsc3Ryb2tlOiJub25lIixmaWxsOiJ1cmwoI2V4cGxvc2lvbkdyYWQiK3RoaXMubnVtKyIpIn0pLHRoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5mYXN0RXhwbG9zaW9uKSx1PXRoaXMuYW5pbWF0aW9uKDY1LGYsZnVuY3Rpb24oKXtuLmZ3Q29udGFpbmVyLnJlbW92ZUNoaWxkKG4uZmFzdEV4cGxvc2lvbil9KSx0aGlzLnBhcnRpY2xlcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIiksdGhpcy5wYXJ0aWNsZXMuc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsdGVyIiwidXJsKCNwYXJ0aWNsZXNHbG93Iit0aGlzLm51bSsiKSIpLGU9dGhpcy5wYXJ0aWNsZXMsdD0wO3Q8dGhpcy5udW1FeHBsb3Npb25QYXJ0aWNsZXM7dCsrKXZhciBpPU1hdGgucG93KE1hdGgucmFuZG9tKCksLjMpKnRoaXMuZXhwbG9zaW9uVmVsb2NpdHkscj1NYXRoLnJhbmRvbSgpKjIqTWF0aC5QSSxvPWkqTWF0aC5zaW4ocikscz1pKk1hdGguY29zKHIpLGg9NTArTWF0aC5yYW5kb20oKSp0aGlzLmV4cGxvc2lvblBhcnRpY2xlc01heExpZmVzcGFuLGM9dGhpcy5jcmVhdGVDaXJjbGUodGhpcy5wYXJ0aWNsZXMsdGhpcy5md0NlbnRlcix0aGlzLmZ3Q2VudGVyLHRoaXMuZXhwbG9zaW9uUGFydGljbGVSYWRpdXMsIkZGRkZGRiIsdGhpcy5maXJlQ29sb3IpLHA9dGhpcy5leHBsb3Npb25QYXJ0aWNsZVR3ZWVuKGMsaCx0aGlzLmV4cGxvc2lvblBhcnRpY2xlUmFkaXVzLHRoaXMuZXhwbG9zaW9uRGVjZWxlcmF0aW9uLG8scyk7dGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnBhcnRpY2xlcyk7bD10aGlzLmFuaW1hdGlvbih0aGlzLnNoaW5lRXhwYW5zaW9uVGltZSxhLHYpO3RoaXMudXNlQXVkaW8mJihleHBsb3Npb25NUDMuY3VycmVudFRpbWU9MCxleHBsb3Npb25NUDMucGxheSgpKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVDaXJjbGU9ZnVuY3Rpb24obix0LGkscix1LGYpe2Y9dHlwZW9mIGYhPSJ1bmRlZmluZWQiPyIjIitmOiJub25lIjt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywiY2lyY2xlIik7cmV0dXJuIGUuc2V0QXR0cmlidXRlTlMobnVsbCwiY3giLHQpLGUuc2V0QXR0cmlidXRlTlMobnVsbCwiY3kiLGkpLGUuc2V0QXR0cmlidXRlTlMobnVsbCwiciIsciksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWxsIiwiIyIrdSksZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2UiLGYpLGYhPSJub25lIiYmZS5zZXRBdHRyaWJ1dGVOUyhudWxsLCJzdHJva2Utd2lkdGgiLC41KSxuLmFwcGVuZENoaWxkKGUpLGV9O0NGaXJld29yay5wcm90b3R5cGUucHJvamVjdGlsZVR3ZWVuPWZ1bmN0aW9uKG4sdCxpLHIsdSxmLGUsbyl7ZnVuY3Rpb24gcChpKXt2YXIgbyxwLHcseTtsPWktYTthPWk7bz1sLzFlMztmKz1yKm87cD1zPyJjeCI6IngiO3c9cz8iY3kiOiJ5IjtoLmluY3JlYXNlUGFyYW1ldGVyKG4scCx1Km8pO2guaW5jcmVhc2VQYXJhbWV0ZXIobix3LGYqbyk7YyYmKHk9ZSt2KihpL3QpLHM\/bi5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIseSk6bi5zdHlsZS5vcGFjaXR5PXkpfXZhciBoLHk7ZT10eXBlb2YgZSE9InVuZGVmaW5lZCI\/ZToxO289dHlwZW9mIG8hPSJ1bmRlZmluZWQiP286MTt2YXIgYz1lIT1vLHY9by1lLGw9MCxhPTAscz1uLm5vZGVOYW1lIT0ic3ZnIjtjJiYocz9uLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IixlKyIiKTpuLnN0eWxlLm9wYWNpdHk9ZSk7aD10aGlzO3k9dGhpcy5hbmltYXRpb24odCxwLGkpfTtDRmlyZXdvcmsucHJvdG90eXBlLmV4cGxvc2lvblBhcnRpY2xlVHdlZW49ZnVuY3Rpb24obix0LGkscix1LGYpe2Z1bmN0aW9uIGgoaCl7dmFyIGwsYSxjO2U9aC1zO3M9aDtsPU1hdGgucG93KHIsZS8xNyk7dSo9bDtmKj1sO2E9ZS8xZTM7by5pbmNyZWFzZVBhcmFtZXRlcihuLCJjeCIsdSphKTtvLmluY3JlYXNlUGFyYW1ldGVyKG4sImN5IixmKmEpO2M9MS0uOSooaC90KTtjPU1hdGgubWF4KGMsLjAxKTtuLnNldEF0dHJpYnV0ZSgiciIsYyppKTtuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIiwuNSpjKX12YXIgbz10aGlzLGU9MCxzPTAsYz10aGlzLmFuaW1hdGlvbih0LGgsbnVsbCl9O0NGaXJld29yay5wcm90b3R5cGUuYW5pbWF0aW9uPWZ1bmN0aW9uKG4sdCxpKXtmdW5jdGlvbiB1KCl7dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCksZjtyPT09bnVsbCYmKHI9ZSk7Zj1lLXI7dChmKTtmPG4\/c2V0VGltZW91dCh1LDE1KTppIT1udWxsJiZpKCl9aT10eXBlb2YgaSE9InVuZGVmaW5lZCI\/aTpudWxsO3ZhciByPW51bGw7dSgpfTtDRmlyZXdvcmsucHJvdG90eXBlLmluY3JlYXNlUGFyYW1ldGVyPWZ1bmN0aW9uKG4sdCxpKXtuLnNldEF0dHJpYnV0ZSh0LHBhcnNlRmxvYXQobi5nZXRBdHRyaWJ1dGUodCkpK2kpfTtDRmlyZXdvcmsucHJvdG90eXBlLnNldFNWR3NjYWxlPWZ1bmN0aW9uKG4sdCxpLHIpe24uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJzY2FsZSgiK3QrIikiKTtuLnNldEF0dHJpYnV0ZSgiY3giLGkrKDEtdCkqaS90KTtuLnNldEF0dHJpYnV0ZSgiY3kiLHIrKDEtdCkqci90KX07LypFT0YqLzsKLyoqIC9qcy92YW5pbGxhanMvaW1hc2subWluLmpzICoqLwohZnVuY3Rpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP2UoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sZSk6ZSgodD0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczp0fHxzZWxmKS5JTWFzaz17fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw\/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9LG49ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuTWF0aD09TWF0aCYmdH0saT1uKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fG4oIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fG4oIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8bigib2JqZWN0Ij09dHlwZW9mIGUmJmUpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHI9e30sdT1mdW5jdGlvbih0KXt0cnl7cmV0dXJuISF0KCl9Y2F0Y2godCl7cmV0dXJuITB9fSxzPSF1KChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYT0hdSgoZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe30uYmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0fHx0Lmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pKSxvPWEsbD1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCxoPW8\/bC5iaW5kKGwpOmZ1bmN0aW9uKCl7cmV0dXJuIGwuYXBwbHkobCxhcmd1bWVudHMpfSxjPXt9LGY9e30ucHJvcGVydHlJc0VudW1lcmFibGUscD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGQ9cCYmIWYuY2FsbCh7MToyfSwxKTtjLmY9ZD9mdW5jdGlvbih0KXt2YXIgZT1wKHRoaXMsdCk7cmV0dXJuISFlJiZlLmVudW1lcmFibGV9OmY7dmFyIHYsZyxrPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fSx5PWEsbT1GdW5jdGlvbi5wcm90b3R5cGUsYj1tLmJpbmQsXz1tLmNhbGwsQT15JiZiLmJpbmQoXyxfKSxDPXk\/ZnVuY3Rpb24odCl7cmV0dXJuIHQmJkEodCl9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZmdW5jdGlvbigpe3JldHVybiBfLmFwcGx5KHQsYXJndW1lbnRzKX19LEU9QyxGPUUoe30udG9TdHJpbmcpLFM9RSgiIi5zbGljZSksdz1mdW5jdGlvbih0KXtyZXR1cm4gUyhGKHQpLDgsLTEpfSxCPUMsRD11LHg9dyxNPWkuT2JqZWN0LE89QigiIi5zcGxpdCksUD1EKChmdW5jdGlvbigpe3JldHVybiFNKCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk\/ZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyI9PXgodCk\/Tyh0LCIiKTpNKHQpfTpNLFQ9aS5UeXBlRXJyb3IsST1mdW5jdGlvbih0KXtpZihudWxsPT10KXRocm93IFQoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrdCk7cmV0dXJuIHR9LGo9UCxSPUksVj1mdW5jdGlvbih0KXtyZXR1cm4gaihSKHQpKX0sTD1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH0sTj1MLFU9ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P251bGwhPT10Ok4odCl9LHo9aSxxPUwsSD1mdW5jdGlvbih0KXtyZXR1cm4gcSh0KT90OnZvaWQgMH0sWT1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI\/SCh6W3RdKTp6W3RdJiZ6W3RdW2VdfSxaPUMoe30uaXNQcm90b3R5cGVPZiksRz1ZKCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiKXx8IiIsSz1pLCQ9RyxXPUsucHJvY2VzcyxYPUsuRGVubyxKPVcmJlcudmVyc2lvbnN8fFgmJlgudmVyc2lvbixRPUomJkoudjg7USYmKGc9KHY9US5zcGxpdCgiLiIpKVswXT4wJiZ2WzBdPDQ\/MTorKHZbMF0rdlsxXSkpLCFnJiYkJiYoISh2PSQubWF0Y2goL0VkZ2VcLyhcZCspLykpfHx2WzFdPj03NCkmJih2PSQubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihnPSt2WzFdKTt2YXIgdHQ9ZyxldD11LG50PSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIWV0KChmdW5jdGlvbigpe3ZhciB0PVN5bWJvbCgpO3JldHVybiFTdHJpbmcodCl8fCEoT2JqZWN0KHQpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJnR0JiZ0dDw0MX0pKSxpdD1udCYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixydD1ZLHV0PUwsc3Q9WixhdD1pdCxvdD1pLk9iamVjdCxsdD1hdD9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3ZhciBlPXJ0KCJTeW1ib2wiKTtyZXR1cm4gdXQoZSkmJnN0KGUucHJvdG90eXBlLG90KHQpKX0saHQ9aS5TdHJpbmcsY3Q9TCxmdD1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGh0KHQpfWNhdGNoKHQpe3JldHVybiJPYmplY3QifX0scHQ9aS5UeXBlRXJyb3IsZHQ9ZnVuY3Rpb24odCl7aWYoY3QodCkpcmV0dXJuIHQ7dGhyb3cgcHQoZnQodCkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfSx2dD1oLGd0PUwsa3Q9VSx5dD1pLlR5cGVFcnJvcixtdD17ZXhwb3J0czp7fX0sYnQ9aSxfdD1PYmplY3QuZGVmaW5lUHJvcGVydHksQXQ9ZnVuY3Rpb24odCxlKXt0cnl7X3QoYnQsdCx7dmFsdWU6ZSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChuKXtidFt0XT1lfXJldHVybiBlfSxDdD1BdCxFdD0iX19jb3JlLWpzX3NoYXJlZF9fIixGdD1pW0V0XXx8Q3QoRXQse30pLFN0PUZ0OyhtdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFN0W3RdfHwoU3RbdF09dm9pZCAwIT09ZT9lOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMjEuMCIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IqkgMjAxNC0yMDIyIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjIxLjAvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KTt2YXIgd3Q9SSxCdD1pLk9iamVjdCxEdD1mdW5jdGlvbih0KXtyZXR1cm4gQnQod3QodCkpfSx4dD1EdCxNdD1DKHt9Lmhhc093blByb3BlcnR5KSxPdD1PYmplY3QuaGFzT3dufHxmdW5jdGlvbih0LGUpe3JldHVybiBNdCh4dCh0KSxlKX0sUHQ9QyxUdD0wLEl0PU1hdGgucmFuZG9tKCksanQ9UHQoMS4udG9TdHJpbmcpLFJ0PWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09dD8iIjp0KSsiKV8iK2p0KCsrVHQrSXQsMzYpfSxWdD1pLEx0PW10LmV4cG9ydHMsTnQ9T3QsVXQ9UnQsenQ9bnQscXQ9aXQsSHQ9THQoIndrcyIpLFl0PVZ0LlN5bWJvbCxadD1ZdCYmWXQuZm9yLEd0PXF0P1l0Oll0JiZZdC53aXRob3V0U2V0dGVyfHxVdCxLdD1mdW5jdGlvbih0KXtpZighTnQoSHQsdCl8fCF6dCYmInN0cmluZyIhPXR5cGVvZiBIdFt0XSl7dmFyIGU9IlN5bWJvbC4iK3Q7enQmJk50KFl0LHQpP0h0W3RdPVl0W3RdOkh0W3RdPXF0JiZadD9adChlKTpHdChlKX1yZXR1cm4gSHRbdF19LCR0PWgsV3Q9VSxYdD1sdCxKdD1mdW5jdGlvbih0LGUpe3ZhciBuPXRbZV07cmV0dXJuIG51bGw9PW4\/dm9pZCAwOmR0KG4pfSxRdD1mdW5jdGlvbih0LGUpe3ZhciBuLGk7aWYoInN0cmluZyI9PT1lJiZndChuPXQudG9TdHJpbmcpJiYha3QoaT12dChuLHQpKSlyZXR1cm4gaTtpZihndChuPXQudmFsdWVPZikmJiFrdChpPXZ0KG4sdCkpKXJldHVybiBpO2lmKCJzdHJpbmciIT09ZSYmZ3Qobj10LnRvU3RyaW5nKSYmIWt0KGk9dnQobix0KSkpcmV0dXJuIGk7dGhyb3cgeXQoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSx0ZT1LdCxlZT1pLlR5cGVFcnJvcixuZT10ZSgidG9QcmltaXRpdmUiKSxpZT1mdW5jdGlvbih0LGUpe2lmKCFXdCh0KXx8WHQodCkpcmV0dXJuIHQ7dmFyIG4saT1KdCh0LG5lKTtpZihpKXtpZih2b2lkIDA9PT1lJiYoZT0iZGVmYXVsdCIpLG49JHQoaSx0LGUpLCFXdChuKXx8WHQobikpcmV0dXJuIG47dGhyb3cgZWUoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT1lJiYoZT0ibnVtYmVyIiksUXQodCxlKX0scmU9bHQsdWU9ZnVuY3Rpb24odCl7dmFyIGU9aWUodCwic3RyaW5nIik7cmV0dXJuIHJlKGUpP2U6ZSsiIn0sc2U9VSxhZT1pLmRvY3VtZW50LG9lPXNlKGFlKSYmc2UoYWUuY3JlYXRlRWxlbWVudCksbGU9ZnVuY3Rpb24odCl7cmV0dXJuIG9lP2FlLmNyZWF0ZUVsZW1lbnQodCk6e319LGhlPSFzJiYhdSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGxlKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSksY2U9cyxmZT1oLHBlPWMsZGU9ayx2ZT1WLGdlPXVlLGtlPU90LHllPWhlLG1lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ci5mPWNlP21lOmZ1bmN0aW9uKHQsZSl7aWYodD12ZSh0KSxlPWdlKGUpLHllKXRyeXtyZXR1cm4gbWUodCxlKX1jYXRjaCh0KXt9aWYoa2UodCxlKSlyZXR1cm4gZGUoIWZlKHBlLmYsdCxlKSx0W2VdKX07dmFyIGJlPXt9LF9lPXMmJnUoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpLEFlPWksQ2U9VSxFZT1BZS5TdHJpbmcsRmU9QWUuVHlwZUVycm9yLFNlPWZ1bmN0aW9uKHQpe2lmKENlKHQpKXJldHVybiB0O3Rocm93IEZlKEVlKHQpKyIgaXMgbm90IGFuIG9iamVjdCIpfSx3ZT1zLEJlPWhlLERlPV9lLHhlPVNlLE1lPXVlLE9lPWkuVHlwZUVycm9yLFBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxUZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEllPSJlbnVtZXJhYmxlIixqZT0iY29uZmlndXJhYmxlIixSZT0id3JpdGFibGUiO2JlLmY9d2U\/RGU\/ZnVuY3Rpb24odCxlLG4pe2lmKHhlKHQpLGU9TWUoZSkseGUobiksImZ1bmN0aW9uIj09dHlwZW9mIHQmJiJwcm90b3R5cGUiPT09ZSYmInZhbHVlImluIG4mJlJlIGluIG4mJiFuLndyaXRhYmxlKXt2YXIgaT1UZSh0LGUpO2kmJmkud3JpdGFibGUmJih0W2VdPW4udmFsdWUsbj17Y29uZmlndXJhYmxlOmplIGluIG4\/bi5jb25maWd1cmFibGU6aS5jb25maWd1cmFibGUsZW51bWVyYWJsZTpJZSBpbiBuP24uZW51bWVyYWJsZTppLmVudW1lcmFibGUsd3JpdGFibGU6ITF9KX1yZXR1cm4gUGUodCxlLG4pfTpQZTpmdW5jdGlvbih0LGUsbil7aWYoeGUodCksZT1NZShlKSx4ZShuKSxCZSl0cnl7cmV0dXJuIFBlKHQsZSxuKX1jYXRjaCh0KXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgT2UoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIG4mJih0W2VdPW4udmFsdWUpLHR9O3ZhciBWZT1iZSxMZT1rLE5lPXM\/ZnVuY3Rpb24odCxlLG4pe3JldHVybiBWZS5mKHQsZSxMZSgxLG4pKX06ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW4sdH0sVWU9e2V4cG9ydHM6e319LHplPUwscWU9RnQsSGU9QyhGdW5jdGlvbi50b1N0cmluZyk7emUocWUuaW5zcGVjdFNvdXJjZSl8fChxZS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBIZSh0KX0pO3ZhciBZZSxaZSxHZSxLZT1xZS5pbnNwZWN0U291cmNlLCRlPUwsV2U9S2UsWGU9aS5XZWFrTWFwLEplPSRlKFhlKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFdlKFhlKSksUWU9bXQuZXhwb3J0cyx0bj1SdCxlbj1RZSgia2V5cyIpLG5uPXt9LHJuPUplLHVuPWksc249Qyxhbj1VLG9uPU5lLGxuPU90LGhuPUZ0LGNuPWZ1bmN0aW9uKHQpe3JldHVybiBlblt0XXx8KGVuW3RdPXRuKHQpKX0sZm49bm4scG49Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixkbj11bi5UeXBlRXJyb3Isdm49dW4uV2Vha01hcDtpZihybnx8aG4uc3RhdGUpe3ZhciBnbj1obi5zdGF0ZXx8KGhuLnN0YXRlPW5ldyB2biksa249c24oZ24uZ2V0KSx5bj1zbihnbi5oYXMpLG1uPXNuKGduLnNldCk7WWU9ZnVuY3Rpb24odCxlKXtpZih5bihnbix0KSl0aHJvdyBuZXcgZG4ocG4pO3JldHVybiBlLmZhY2FkZT10LG1uKGduLHQsZSksZX0sWmU9ZnVuY3Rpb24odCl7cmV0dXJuIGtuKGduLHQpfHx7fX0sR2U9ZnVuY3Rpb24odCl7cmV0dXJuIHluKGduLHQpfX1lbHNle3ZhciBibj1jbigic3RhdGUiKTtmbltibl09ITAsWWU9ZnVuY3Rpb24odCxlKXtpZihsbih0LGJuKSl0aHJvdyBuZXcgZG4ocG4pO3JldHVybiBlLmZhY2FkZT10LG9uKHQsYm4sZSksZX0sWmU9ZnVuY3Rpb24odCl7cmV0dXJuIGxuKHQsYm4pP3RbYm5dOnt9fSxHZT1mdW5jdGlvbih0KXtyZXR1cm4gbG4odCxibil9fXZhciBfbj17c2V0OlllLGdldDpaZSxoYXM6R2UsZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gR2UodCk\/WmUodCk6WWUodCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG47aWYoIWFuKGUpfHwobj1aZShlKSkudHlwZSE9PXQpdGhyb3cgZG4oIkluY29tcGF0aWJsZSByZWNlaXZlciwgIit0KyIgcmVxdWlyZWQiKTtyZXR1cm4gbn19fSxBbj1zLENuPU90LEVuPUZ1bmN0aW9uLnByb3RvdHlwZSxGbj1BbiYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixTbj1DbihFbiwibmFtZSIpLHduPVNuJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7fS5uYW1lLEJuPVNuJiYoIUFufHxBbiYmRm4oRW4sIm5hbWUiKS5jb25maWd1cmFibGUpLERuPWkseG49TCxNbj1PdCxPbj1OZSxQbj1BdCxUbj1LZSxJbj17RVhJU1RTOlNuLFBST1BFUjp3bixDT05GSUdVUkFCTEU6Qm59LkNPTkZJR1VSQUJMRSxqbj1fbi5nZXQsUm49X24uZW5mb3JjZSxWbj1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFVlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT0hIWkmJiEhaS51bnNhZmUscz0hIWkmJiEhaS5lbnVtZXJhYmxlLGE9ISFpJiYhIWkubm9UYXJnZXRHZXQsbz1pJiZ2b2lkIDAhPT1pLm5hbWU\/aS5uYW1lOmU7eG4obikmJigiU3ltYm9sKCI9PT1TdHJpbmcobykuc2xpY2UoMCw3KSYmKG89IlsiK1N0cmluZyhvKS5yZXBsYWNlKC9eU3ltYm9sXCgoW14pXSopXCkvLCIkMSIpKyJdIiksKCFNbihuLCJuYW1lIil8fEluJiZuLm5hbWUhPT1vKSYmT24obiwibmFtZSIsbyksKHI9Um4obikpLnNvdXJjZXx8KHIuc291cmNlPVZuLmpvaW4oInN0cmluZyI9PXR5cGVvZiBvP286IiIpKSksdCE9PURuPyh1PyFhJiZ0W2VdJiYocz0hMCk6ZGVsZXRlIHRbZV0scz90W2VdPW46T24odCxlLG4pKTpzP3RbZV09bjpQbihlLG4pfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHhuKHRoaXMpJiZqbih0aGlzKS5zb3VyY2V8fFRuKHRoaXMpfSkpO3ZhciBMbj17fSxObj1NYXRoLmNlaWwsVW49TWF0aC5mbG9vcix6bj1mdW5jdGlvbih0KXt2YXIgZT0rdDtyZXR1cm4gZSE9ZXx8MD09PWU\/MDooZT4wP1VuOk5uKShlKX0scW49em4sSG49TWF0aC5tYXgsWW49TWF0aC5taW4sWm49em4sR249TWF0aC5taW4sS249ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD9Hbihabih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfSwkbj1LbixXbj1WLFhuPWZ1bmN0aW9uKHQsZSl7dmFyIG49cW4odCk7cmV0dXJuIG48MD9IbihuK2UsMCk6WW4obixlKX0sSm49ZnVuY3Rpb24odCl7cmV0dXJuICRuKHQubGVuZ3RoKX0sUW49ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcix1PVduKGUpLHM9Sm4odSksYT1YbihpLHMpO2lmKHQmJm4hPW4pe2Zvcig7cz5hOylpZigocj11W2ErK10pIT1yKXJldHVybiEwfWVsc2UgZm9yKDtzPmE7YSsrKWlmKCh0fHxhIGluIHUpJiZ1W2FdPT09bilyZXR1cm4gdHx8YXx8MDtyZXR1cm4hdCYmLTF9fSx0aT17aW5jbHVkZXM6UW4oITApLGluZGV4T2Y6UW4oITEpfSxlaT1PdCxuaT1WLGlpPXRpLmluZGV4T2Yscmk9bm4sdWk9QyhbXS5wdXNoKSxzaT1mdW5jdGlvbih0LGUpe3ZhciBuLGk9bmkodCkscj0wLHU9W107Zm9yKG4gaW4gaSkhZWkocmksbikmJmVpKGksbikmJnVpKHUsbik7Zm9yKDtlLmxlbmd0aD5yOyllaShpLG49ZVtyKytdKSYmKH5paSh1LG4pfHx1aSh1LG4pKTtyZXR1cm4gdX0sYWk9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXSxvaT1zaSxsaT1haS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO0xuLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBvaSh0LGxpKX07dmFyIGhpPXt9O2hpLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczt2YXIgY2k9WSxmaT1MbixwaT1oaSxkaT1TZSx2aT1DKFtdLmNvbmNhdCksZ2k9Y2koIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKHQpe3ZhciBlPWZpLmYoZGkodCkpLG49cGkuZjtyZXR1cm4gbj92aShlLG4odCkpOmV9LGtpPU90LHlpPWdpLG1pPXIsYmk9YmUsX2k9dSxBaT1MLENpPS8jfFwucHJvdG90eXBlXC4vLEVpPWZ1bmN0aW9uKHQsZSl7dmFyIG49U2lbRmkodCldO3JldHVybiBuPT1CaXx8biE9d2kmJihBaShlKT9faShlKTohIWUpfSxGaT1FaS5ub3JtYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKENpLCIuIikudG9Mb3dlckNhc2UoKX0sU2k9RWkuZGF0YT17fSx3aT1FaS5OQVRJVkU9Ik4iLEJpPUVpLlBPTFlGSUxMPSJQIixEaT1FaSx4aT1pLE1pPXIuZixPaT1OZSxQaT1VZS5leHBvcnRzLFRpPUF0LElpPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGk9eWkoZSkscj1iaS5mLHU9bWkuZixzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBhPWlbc107a2kodCxhKXx8biYma2kobixhKXx8cih0LGEsdShlLGEpKX19LGppPURpLFJpPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHUscyxhPXQudGFyZ2V0LG89dC5nbG9iYWwsbD10LnN0YXQ7aWYobj1vP3hpOmw\/eGlbYV18fFRpKGEse30pOih4aVthXXx8e30pLnByb3RvdHlwZSlmb3IoaSBpbiBlKXtpZih1PWVbaV0scj10Lm5vVGFyZ2V0R2V0PyhzPU1pKG4saSkpJiZzLnZhbHVlOm5baV0sIWppKG8\/aTphKyhsPyIuIjoiIyIpK2ksdC5mb3JjZWQpJiZ2b2lkIDAhPT1yKXtpZih0eXBlb2YgdT09dHlwZW9mIHIpY29udGludWU7SWkodSxyKX0odC5zaGFtfHxyJiZyLnNoYW0pJiZPaSh1LCJzaGFtIiwhMCksUGkobixpLHUsdCl9fSxWaT1zaSxMaT1haSxOaT1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7cmV0dXJuIFZpKHQsTGkpfSxVaT1zLHppPUMscWk9aCxIaT11LFlpPU5pLFppPWhpLEdpPWMsS2k9RHQsJGk9UCxXaT1PYmplY3QuYXNzaWduLFhpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxKaT16aShbXS5jb25jYXQpLFFpPSFXaXx8SGkoKGZ1bmN0aW9uKCl7aWYoVWkmJjEhPT1XaSh7YjoxfSxXaShYaSh7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7WGkodGhpcywiYiIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCksaT0iYWJjZGVmZ2hpamtsbW5vcHFyc3QiO3JldHVybiB0W25dPTcsaS5zcGxpdCgiIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT10fSkpLDchPVdpKHt9LHQpW25dfHxZaShXaSh7fSxlKSkuam9pbigiIikhPWl9KSk\/ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49S2kodCksaT1hcmd1bWVudHMubGVuZ3RoLHI9MSx1PVppLmYscz1HaS5mO2k+cjspZm9yKHZhciBhLG89JGkoYXJndW1lbnRzW3IrK10pLGw9dT9KaShZaShvKSx1KG8pKTpZaShvKSxoPWwubGVuZ3RoLGM9MDtoPmM7KWE9bFtjKytdLFVpJiYhcWkocyxvLGEpfHwoblthXT1vW2FdKTtyZXR1cm4gbn06V2ksdHI9UWk7Umkoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpPYmplY3QuYXNzaWduIT09dHJ9LHthc3NpZ246dHJ9KTt2YXIgZXI9e307ZXJbS3QoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgbnI9aSxpcj0iW29iamVjdCB6XSI9PT1TdHJpbmcoZXIpLHJyPUwsdXI9dyxzcj1LdCgidG9TdHJpbmdUYWciKSxhcj1uci5PYmplY3Qsb3I9IkFyZ3VtZW50cyI9PXVyKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSksbHI9aXI\/dXI6ZnVuY3Rpb24odCl7dmFyIGUsbixpO3JldHVybiB2b2lkIDA9PT10PyJVbmRlZmluZWQiOm51bGw9PT10PyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKG49ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbZV19Y2F0Y2godCl7fX0oZT1hcih0KSxzcikpP246b3I\/dXIoZSk6Ik9iamVjdCI9PShpPXVyKGUpKSYmcnIoZS5jYWxsZWUpPyJBcmd1bWVudHMiOml9LGhyPWkuU3RyaW5nLGNyPWZ1bmN0aW9uKHQpe2lmKCJTeW1ib2wiPT09bHIodCkpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBocih0KX0sZnI9em4scHI9Y3IsZHI9SSx2cj1pLlJhbmdlRXJyb3IsZ3I9ZnVuY3Rpb24odCl7dmFyIGU9cHIoZHIodGhpcykpLG49IiIsaT1mcih0KTtpZihpPDB8fGk9PTEvMCl0aHJvdyB2cigiV3JvbmcgbnVtYmVyIG9mIHJlcGV0aXRpb25zIik7Zm9yKDtpPjA7KGk+Pj49MSkmJihlKz1lKSkxJmkmJihuKz1lKTtyZXR1cm4gbn07Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGVhdDpncn0pO3ZhciBrcj1DLHlyPUtuLG1yPWNyLGJyPUksX3I9a3IoZ3IpLEFyPWtyKCIiLnNsaWNlKSxDcj1NYXRoLmNlaWwsRXI9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixpKXt2YXIgcix1LHM9bXIoYnIoZSkpLGE9eXIobiksbz1zLmxlbmd0aCxsPXZvaWQgMD09PWk\/IiAiOm1yKGkpO3JldHVybiBhPD1vfHwiIj09bD9zOigodT1fcihsLENyKChyPWEtbykvbC5sZW5ndGgpKSkubGVuZ3RoPnImJih1PUFyKHUsMCxyKSksdD9zK3U6dStzKX19LEZyPXtzdGFydDpFcighMSksZW5kOkVyKCEwKX0sU3I9L1ZlcnNpb25cLzEwKD86XC5cZCspezEsMn0oPzogW1x3Li9dKyk\/KD86IE1vYmlsZVwvXHcrKT8gU2FmYXJpXC8vLnRlc3QoRyksd3I9RnIuc3RhcnQ7Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6U3J9LHtwYWRTdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gd3IodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgQnI9RnIuZW5kO2Z1bmN0aW9uIERyKHQpe3JldHVybiBEcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sRHIodCl9ZnVuY3Rpb24geHIodCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBNcih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaS5rZXksaSl9fWZ1bmN0aW9uIE9yKHQsZSxuKXtyZXR1cm4gZSYmTXIodC5wcm90b3R5cGUsZSksbiYmTXIodCxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIFByKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJklyKHQsZSl9ZnVuY3Rpb24gVHIodCl7cmV0dXJuIFRyPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LFRyKHQpfWZ1bmN0aW9uIElyKHQsZSl7cmV0dXJuIElyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxJcih0LGUpfWZ1bmN0aW9uIGpyKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbixpLHI9ZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuLGkscj17fSx1PU9iamVjdC5rZXlzKHQpO2ZvcihpPTA7aTx1Lmxlbmd0aDtpKyspbj11W2ldLGUuaW5kZXhPZihuKT49MHx8KHJbbl09dFtuXSk7cmV0dXJuIHJ9KHQsZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtmb3IoaT0wO2k8dS5sZW5ndGg7aSsrKW49dVtpXSxlLmluZGV4T2Yobik+PTB8fE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LG4pJiYocltuXT10W25dKX1yZXR1cm4gcn1mdW5jdGlvbiBScih0LGUpe2lmKGUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9ZnVuY3Rpb24gVnIodCl7dmFyIGU9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2godCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLGk9VHIodCk7aWYoZSl7dmFyIHI9VHIodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChpLGFyZ3VtZW50cyxyKX1lbHNlIG49aS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFJyKHRoaXMsbil9fWZ1bmN0aW9uIExyKHQsZSl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm51bGwhPT0odD1Ucih0KSk7KTtyZXR1cm4gdH1mdW5jdGlvbiBOcigpe3JldHVybiBOcj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1Mcih0LGUpO2lmKGkpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxlKTtyZXR1cm4gci5nZXQ\/ci5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM\/dDpuKTpyLnZhbHVlfX0sTnIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFVyKHQsZSxuLGkpe3JldHVybiBVcj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3Quc2V0P1JlZmxlY3Quc2V0OmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLHU9THIodCxlKTtpZih1KXtpZigocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsZSkpLnNldClyZXR1cm4gci5zZXQuY2FsbChpLG4pLCEwO2lmKCFyLndyaXRhYmxlKXJldHVybiExfWlmKHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpKXtpZighci53cml0YWJsZSlyZXR1cm4hMTtyLnZhbHVlPW4sT2JqZWN0LmRlZmluZVByb3BlcnR5KGksZSxyKX1lbHNlIWZ1bmN0aW9uKHQsZSxuKXtlIGluIHQ\/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09bn0oaSxlLG4pO3JldHVybiEwfSxVcih0LGUsbixpKX1mdW5jdGlvbiB6cih0LGUsbixpLHIpe2lmKCFVcih0LGUsbixpfHx0KSYmcil0aHJvdyBuZXcgRXJyb3IoImZhaWxlZCB0byBzZXQgcHJvcGVydHkiKTtyZXR1cm4gbn1mdW5jdGlvbiBxcih0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGw9PW4pcmV0dXJuO3ZhciBpLHIsdT1bXSxzPSEwLGE9ITE7dHJ5e2ZvcihuPW4uY2FsbCh0KTshKHM9KGk9bi5uZXh0KCkpLmRvbmUpJiYodS5wdXNoKGkudmFsdWUpLCFlfHx1Lmxlbmd0aCE9PWUpO3M9ITApO31jYXRjaCh0KXthPSEwLHI9dH1maW5hbGx5e3RyeXtzfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgcn19cmV0dXJuIHV9KHQsZSl8fGZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuO2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gSHIodCxlKTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7Ik9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpO2lmKCJNYXAiPT09bnx8IlNldCI9PT1uKXJldHVybiBBcnJheS5mcm9tKHQpO2lmKCJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIEhyKHQsZSl9KHQsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBIcih0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLGk9bmV3IEFycmF5KGUpO248ZTtuKyspaVtuXT10W25dO3JldHVybiBpfVJpKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOlNyfSx7cGFkRW5kOmZ1bmN0aW9uKHQpe3JldHVybiBCcih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLFJpKHtnbG9iYWw6ITB9LHtnbG9iYWxUaGlzOml9KTt2YXIgWXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCksT2JqZWN0LmFzc2lnbih0aGlzLHtpbnNlcnRlZDoiIixyYXdJbnNlcnRlZDoiIixza2lwOiExLHRhaWxTaGlmdDowfSxlKX1yZXR1cm4gT3IodCxbe2tleToiYWdncmVnYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yYXdJbnNlcnRlZCs9dC5yYXdJbnNlcnRlZCx0aGlzLnNraXA9dGhpcy5za2lwfHx0LnNraXAsdGhpcy5pbnNlcnRlZCs9dC5pbnNlcnRlZCx0aGlzLnRhaWxTaGlmdCs9dC50YWlsU2hpZnQsdGhpc319LHtrZXk6Im9mZnNldCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFpbFNoaWZ0K3RoaXMuaW5zZXJ0ZWQubGVuZ3RofX1dKSx0fSgpO2Z1bmN0aW9uIFpyKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZ312YXIgR3I9Ik5PTkUiLEtyPSJMRUZUIiwkcj0iRk9SQ0VfTEVGVCIsV3I9IlJJR0hUIixYcj0iRk9SQ0VfUklHSFQiO2Z1bmN0aW9uIEpyKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbLiorP149IToke30oKXxbXF1cL1xcXSkvZywiXFwkMSIpfWZ1bmN0aW9uIFFyKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6W3QsbmV3IFlyXX1mdW5jdGlvbiB0dSh0LGUpe2lmKGU9PT10KXJldHVybiEwO3ZhciBuLGk9QXJyYXkuaXNBcnJheShlKSxyPUFycmF5LmlzQXJyYXkodCk7aWYoaSYmcil7aWYoZS5sZW5ndGghPXQubGVuZ3RoKXJldHVybiExO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspaWYoIXR1KGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9aWYoaSE9cilyZXR1cm4hMTtpZihlJiZ0JiYib2JqZWN0Ij09PURyKGUpJiYib2JqZWN0Ij09PURyKHQpKXt2YXIgdT1lIGluc3RhbmNlb2YgRGF0ZSxzPXQgaW5zdGFuY2VvZiBEYXRlO2lmKHUmJnMpcmV0dXJuIGUuZ2V0VGltZSgpPT10LmdldFRpbWUoKTtpZih1IT1zKXJldHVybiExO3ZhciBhPWUgaW5zdGFuY2VvZiBSZWdFeHAsbz10IGluc3RhbmNlb2YgUmVnRXhwO2lmKGEmJm8pcmV0dXJuIGUudG9TdHJpbmcoKT09dC50b1N0cmluZygpO2lmKGEhPW8pcmV0dXJuITE7dmFyIGw9T2JqZWN0LmtleXMoZSk7Zm9yKG49MDtuPGwubGVuZ3RoO24rKylpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbFtuXSkpcmV0dXJuITE7Zm9yKG49MDtuPGwubGVuZ3RoO24rKylpZighdHUodFtsW25dXSxlW2xbbl1dKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hKCFlfHwhdHx8ImZ1bmN0aW9uIiE9dHlwZW9mIGV8fCJmdW5jdGlvbiIhPXR5cGVvZiB0KSYmZS50b1N0cmluZygpPT09dC50b1N0cmluZygpfXZhciBldT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuLGkscil7Zm9yKHhyKHRoaXMsdCksdGhpcy52YWx1ZT1lLHRoaXMuY3Vyc29yUG9zPW4sdGhpcy5vbGRWYWx1ZT1pLHRoaXMub2xkU2VsZWN0aW9uPXI7dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpIT09dGhpcy5vbGRWYWx1ZS5zbGljZSgwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpOyktLXRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0fXJldHVybiBPcih0LFt7a2V5OiJzdGFydENoYW5nZVBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWluKHRoaXMuY3Vyc29yUG9zLHRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0KX19LHtrZXk6Imluc2VydGVkQ291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnNvclBvcy10aGlzLnN0YXJ0Q2hhbmdlUG9zfX0se2tleToiaW5zZXJ0ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cih0aGlzLnN0YXJ0Q2hhbmdlUG9zLHRoaXMuaW5zZXJ0ZWRDb3VudCl9fSx7a2V5OiJyZW1vdmVkQ291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCh0aGlzLm9sZFNlbGVjdGlvbi5lbmQtdGhpcy5zdGFydENoYW5nZVBvc3x8dGhpcy5vbGRWYWx1ZS5sZW5ndGgtdGhpcy52YWx1ZS5sZW5ndGgsMCl9fSx7a2V5OiJyZW1vdmVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbGRWYWx1ZS5zdWJzdHIodGhpcy5zdGFydENoYW5nZVBvcyx0aGlzLnJlbW92ZWRDb3VudCl9fSx7a2V5OiJoZWFkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKX19LHtrZXk6InRhaWwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cmluZyh0aGlzLnN0YXJ0Q2hhbmdlUG9zK3RoaXMuaW5zZXJ0ZWRDb3VudCl9fSx7a2V5OiJyZW1vdmVEaXJlY3Rpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiF0aGlzLnJlbW92ZWRDb3VudHx8dGhpcy5pbnNlcnRlZENvdW50P0dyOnRoaXMub2xkU2VsZWN0aW9uLmVuZCE9PXRoaXMuY3Vyc29yUG9zJiZ0aGlzLm9sZFNlbGVjdGlvbi5zdGFydCE9PXRoaXMuY3Vyc29yUG9zfHx0aGlzLm9sZFNlbGVjdGlvbi5lbmQhPT10aGlzLm9sZFNlbGVjdGlvbi5zdGFydD9LcjpXcn19XSksdH0oKSxudT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3hyKHRoaXMsdCksdGhpcy52YWx1ZT1lLHRoaXMuZnJvbT1uLHRoaXMuc3RvcD1pfXJldHVybiBPcih0LFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy52YWx1ZSs9U3RyaW5nKHQpfX0se2tleToiYXBwZW5kVG8iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGVuZCh0aGlzLnRvU3RyaW5nKCkse3RhaWw6ITB9KS5hZ2dyZWdhdGUodC5fYXBwZW5kUGxhY2Vob2xkZXIoKSl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue3ZhbHVlOnRoaXMudmFsdWUsZnJvbTp0aGlzLmZyb20sc3RvcDp0aGlzLnN0b3B9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMudmFsdWUubGVuZ3RofHxudWxsIT10JiZ0aGlzLmZyb20+PXQpcmV0dXJuIiI7dmFyIGU9dGhpcy52YWx1ZVswXTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDEpLGV9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy52YWx1ZS5sZW5ndGgpcmV0dXJuIiI7dmFyIHQ9dGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aC0xXTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsLTEpLHR9fV0pLHR9KCk7ZnVuY3Rpb24gaXUodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O3JldHVybiBuZXcgaXUuSW5wdXRNYXNrKHQsZSl9dmFyIHJ1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpLHRoaXMuX3ZhbHVlPSIiLHRoaXMuX3VwZGF0ZShPYmplY3QuYXNzaWduKHt9LHQuREVGQVVMVFMsZSkpLHRoaXMuaXNJbml0aWFsaXplZD0hMH1yZXR1cm4gT3IodCxbe2tleToidXBkYXRlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7T2JqZWN0LmtleXModCkubGVuZ3RoJiZ0aGlzLndpdGhWYWx1ZVJlZnJlc2godGhpcy5fdXBkYXRlLmJpbmQodGhpcyx0KSl9fSx7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue192YWx1ZTp0aGlzLnZhbHVlfX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3ZhbHVlPXQuX3ZhbHVlfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fdmFsdWU9IiJ9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNvbHZlKHQpfX0se2tleToicmVzb2x2ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHtpbnB1dDohMH0sIiIpLHRoaXMuZG9Db21taXQoKSx0aGlzLnZhbHVlfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7fSwiIiksdGhpcy5kb0NvbW1pdCgpfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9QYXJzZSh0aGlzLnZhbHVlKX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudmFsdWU9dGhpcy5kb0Zvcm1hdCh0KX19LHtrZXk6InJhd0lucHV0VmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmV4dHJhY3RJbnB1dCgwLHRoaXMudmFsdWUubGVuZ3RoLHtyYXc6ITB9KX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHtyYXc6ITB9LCIiKSx0aGlzLmRvQ29tbWl0KCl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0NvbXBsZXRlfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0fX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLnZhbHVlLnNsaWNlKHQsZSl9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gbmV3IG51KHRoaXMuZXh0cmFjdElucHV0KHQsZSksdCl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gWnIodCkmJih0PW5ldyBudShTdHJpbmcodCkpKSx0LmFwcGVuZFRvKHRoaXMpfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0aGlzLl92YWx1ZSs9dCxuZXcgWXIoe2luc2VydGVkOnQscmF3SW5zZXJ0ZWQ6dH0pKTpuZXcgWXJ9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMCxyPXRoaXMuc3RhdGUsdT1Rcih0aGlzLmRvUHJlcGFyZSh0LG4pKSxzPXFyKHUsMik7aWYodD1zWzBdLChlPShlPXNbMV0pLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRDaGFyUmF3KHQsbikpKS5pbnNlcnRlZCl7dmFyIGEsbz0hMSE9PXRoaXMuZG9WYWxpZGF0ZShuKTtpZihvJiZudWxsIT1pKXt2YXIgbD10aGlzLnN0YXRlOyEwPT09dGhpcy5vdmVyd3JpdGUmJihhPWkuc3RhdGUsaS51bnNoaWZ0KHRoaXMudmFsdWUubGVuZ3RoKSk7dmFyIGg9dGhpcy5hcHBlbmRUYWlsKGkpOyhvPWgucmF3SW5zZXJ0ZWQ9PT1pLnRvU3RyaW5nKCkpJiZoLmluc2VydGVkfHwic2hpZnQiIT09dGhpcy5vdmVyd3JpdGV8fCh0aGlzLnN0YXRlPWwsYT1pLnN0YXRlLGkuc2hpZnQoKSxvPShoPXRoaXMuYXBwZW5kVGFpbChpKSkucmF3SW5zZXJ0ZWQ9PT1pLnRvU3RyaW5nKCkpLG8mJmguaW5zZXJ0ZWQmJih0aGlzLnN0YXRlPWwpfW98fChlPW5ldyBZcix0aGlzLnN0YXRlPXIsaSYmYSYmKGkuc3RhdGU9YSkpfXJldHVybiBlfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgWXJ9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4pe2lmKCFacih0KSl0aHJvdyBuZXcgRXJyb3IoInZhbHVlIHNob3VsZCBiZSBzdHJpbmciKTt2YXIgaT1uZXcgWXIscj1acihuKT9uZXcgbnUoU3RyaW5nKG4pKTpuO2UmJmUudGFpbCYmKGUuX2JlZm9yZVRhaWxTdGF0ZT10aGlzLnN0YXRlKTtmb3IodmFyIHU9MDt1PHQubGVuZ3RoOysrdSlpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRDaGFyKHRbdV0sZSxyKSk7cmV0dXJuIG51bGwhPXImJihpLnRhaWxTaGlmdCs9dGhpcy5hcHBlbmRUYWlsKHIpLnRhaWxTaGlmdCksdGhpcy5lYWdlciYmbnVsbCE9ZSYmZS5pbnB1dCYmdCYmaS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kRWFnZXIoKSksaX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy5fdmFsdWU9dGhpcy52YWx1ZS5zbGljZSgwLHQpK3RoaXMudmFsdWUuc2xpY2UoZSksbmV3IFlyfX0se2tleToid2l0aFZhbHVlUmVmcmVzaCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5fcmVmcmVzaGluZ3x8IXRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdCgpO3RoaXMuX3JlZnJlc2hpbmc9ITA7dmFyIGU9dGhpcy5yYXdJbnB1dFZhbHVlLG49dGhpcy52YWx1ZSxpPXQoKTtyZXR1cm4gdGhpcy5yYXdJbnB1dFZhbHVlPWUsdGhpcy52YWx1ZSYmdGhpcy52YWx1ZSE9PW4mJjA9PT1uLmluZGV4T2YodGhpcy52YWx1ZSkmJnRoaXMuYXBwZW5kKG4uc2xpY2UodGhpcy52YWx1ZS5sZW5ndGgpLHt9LCIiKSxkZWxldGUgdGhpcy5fcmVmcmVzaGluZyxpfX0se2tleToicnVuSXNvbGF0ZWQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzb2xhdGVkfHwhdGhpcy5pc0luaXRpYWxpemVkKXJldHVybiB0KHRoaXMpO3RoaXMuX2lzb2xhdGVkPSEwO3ZhciBlPXRoaXMuc3RhdGUsbj10KHRoaXMpO3JldHVybiB0aGlzLnN0YXRlPWUsZGVsZXRlIHRoaXMuX2lzb2xhdGVkLG59fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5wcmVwYXJlP3RoaXMucHJlcGFyZSh0LHRoaXMsZSk6dH19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybighdGhpcy52YWxpZGF0ZXx8dGhpcy52YWxpZGF0ZSh0aGlzLnZhbHVlLHRoaXMsdCkpJiYoIXRoaXMucGFyZW50fHx0aGlzLnBhcmVudC5kb1ZhbGlkYXRlKHQpKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY29tbWl0JiZ0aGlzLmNvbW1pdCh0aGlzLnZhbHVlLHRoaXMpfX0se2tleToiZG9Gb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZvcm1hdD90aGlzLmZvcm1hdCh0LHRoaXMpOnR9fSx7a2V5OiJkb1BhcnNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJzZT90aGlzLnBhcnNlKHQsdGhpcyk6dH19LHtrZXk6InNwbGljZSIsdmFsdWU6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT10K2Uscz10aGlzLmV4dHJhY3RUYWlsKHUpO3RoaXMuZWFnZXImJihpPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIEtyOnJldHVybiAkcjtjYXNlIFdyOnJldHVybiBYcjtkZWZhdWx0OnJldHVybiB0fX0oaSkscj10aGlzLmV4dHJhY3RJbnB1dCgwLHUse3JhdzohMH0pKTt2YXIgYT10aGlzLm5lYXJlc3RJbnB1dFBvcyh0LGU+MSYmMCE9PXQmJiF0aGlzLmVhZ2VyP0dyOmkpLG89bmV3IFlyKHt0YWlsU2hpZnQ6YS10fSkuYWdncmVnYXRlKHRoaXMucmVtb3ZlKGEpKTtpZih0aGlzLmVhZ2VyJiZpIT09R3ImJnI9PT10aGlzLnJhd0lucHV0VmFsdWUpaWYoaT09PSRyKWZvcih2YXIgbDtyPT09dGhpcy5yYXdJbnB1dFZhbHVlJiYobD10aGlzLnZhbHVlLmxlbmd0aCk7KW8uYWdncmVnYXRlKG5ldyBZcih7dGFpbFNoaWZ0Oi0xfSkpLmFnZ3JlZ2F0ZSh0aGlzLnJlbW92ZShsLTEpKTtlbHNlIGk9PT1YciYmcy51bnNoaWZ0KCk7cmV0dXJuIG8uYWdncmVnYXRlKHRoaXMuYXBwZW5kKG4se2lucHV0OiEwfSxzKSl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXNrPT09dH19XSksdH0oKTtmdW5jdGlvbiB1dSh0KXtpZihudWxsPT10KXRocm93IG5ldyBFcnJvcigibWFzayBwcm9wZXJ0eSBzaG91bGQgYmUgZGVmaW5lZCIpO3JldHVybiB0IGluc3RhbmNlb2YgUmVnRXhwP2l1Lk1hc2tlZFJlZ0V4cDpacih0KT9pdS5NYXNrZWRQYXR0ZXJuOnQgaW5zdGFuY2VvZiBEYXRlfHx0PT09RGF0ZT9pdS5NYXNrZWREYXRlOnQgaW5zdGFuY2VvZiBOdW1iZXJ8fCJudW1iZXIiPT10eXBlb2YgdHx8dD09PU51bWJlcj9pdS5NYXNrZWROdW1iZXI6QXJyYXkuaXNBcnJheSh0KXx8dD09PUFycmF5P2l1Lk1hc2tlZER5bmFtaWM6aXUuTWFza2VkJiZ0LnByb3RvdHlwZSBpbnN0YW5jZW9mIGl1Lk1hc2tlZD90OnQgaW5zdGFuY2VvZiBpdS5NYXNrZWQ\/dC5jb25zdHJ1Y3Rvcjp0IGluc3RhbmNlb2YgRnVuY3Rpb24\/aXUuTWFza2VkRnVuY3Rpb246KGNvbnNvbGUud2FybigiTWFzayBub3QgZm91bmQgZm9yIG1hc2siLHQpLGl1Lk1hc2tlZCl9ZnVuY3Rpb24gc3UodCl7aWYoaXUuTWFza2VkJiZ0IGluc3RhbmNlb2YgaXUuTWFza2VkKXJldHVybiB0O3ZhciBlPSh0PU9iamVjdC5hc3NpZ24oe30sdCkpLm1hc2s7aWYoaXUuTWFza2VkJiZlIGluc3RhbmNlb2YgaXUuTWFza2VkKXJldHVybiBlO3ZhciBuPXV1KGUpO2lmKCFuKXRocm93IG5ldyBFcnJvcigiTWFza2VkIGNsYXNzIGlzIG5vdCBmb3VuZCBmb3IgcHJvdmlkZWQgbWFzaywgYXBwcm9wcmlhdGUgbW9kdWxlIG5lZWRzIHRvIGJlIGltcG9ydCBtYW51YWxseSBiZWZvcmUgY3JlYXRpbmcgbWFzay4iKTtyZXR1cm4gbmV3IG4odCl9cnUuREVGQVVMVFM9e2Zvcm1hdDpmdW5jdGlvbih0KXtyZXR1cm4gdH0scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxpdS5NYXNrZWQ9cnUsaXUuY3JlYXRlTWFzaz1zdTt2YXIgYXU9WyJtYXNrIl0sb3U9ezA6L1xkLyxhOi9bXHUwMDQxLVx1MDA1QVx1MDA2MS1cdTAwN0FcdTAwQUFcdTAwQjVcdTAwQkFcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAyQzFcdTAyQzYtXHUwMkQxXHUwMkUwLVx1MDJFNFx1MDJFQ1x1MDJFRVx1MDM3MC1cdTAzNzRcdTAzNzZcdTAzNzdcdTAzN0EtXHUwMzdEXHUwMzg2XHUwMzg4LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzQTFcdTAzQTMtXHUwM0Y1XHUwM0Y3LVx1MDQ4MVx1MDQ4QS1cdTA1MjdcdTA1MzEtXHUwNTU2XHUwNTU5XHUwNTYxLVx1MDU4N1x1MDVEMC1cdTA1RUFcdTA1RjAtXHUwNUYyXHUwNjIwLVx1MDY0QVx1MDY2RVx1MDY2Rlx1MDY3MS1cdTA2RDNcdTA2RDVcdTA2RTVcdTA2RTZcdTA2RUVcdTA2RUZcdTA2RkEtXHUwNkZDXHUwNkZGXHUwNzEwXHUwNzEyLVx1MDcyRlx1MDc0RC1cdTA3QTVcdTA3QjFcdTA3Q0EtXHUwN0VBXHUwN0Y0XHUwN0Y1XHUwN0ZBXHUwODAwLVx1MDgxNVx1MDgxQVx1MDgyNFx1MDgyOFx1MDg0MC1cdTA4NThcdTA4QTBcdTA4QTItXHUwOEFDXHUwOTA0LVx1MDkzOVx1MDkzRFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NzEtXHUwOTc3XHUwOTc5LVx1MDk3Rlx1MDk4NS1cdTA5OENcdTA5OEZcdTA5OTBcdTA5OTMtXHUwOUE4XHUwOUFBLVx1MDlCMFx1MDlCMlx1MDlCNi1cdTA5QjlcdTA5QkRcdTA5Q0VcdTA5RENcdTA5RERcdTA5REYtXHUwOUUxXHUwOUYwXHUwOUYxXHUwQTA1LVx1MEEwQVx1MEEwRlx1MEExMFx1MEExMy1cdTBBMjhcdTBBMkEtXHUwQTMwXHUwQTMyXHUwQTMzXHUwQTM1XHUwQTM2XHUwQTM4XHUwQTM5XHUwQTU5LVx1MEE1Q1x1MEE1RVx1MEE3Mi1cdTBBNzRcdTBBODUtXHUwQThEXHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCRFx1MEFEMFx1MEFFMFx1MEFFMVx1MEIwNS1cdTBCMENcdTBCMEZcdTBCMTBcdTBCMTMtXHUwQjI4XHUwQjJBLVx1MEIzMFx1MEIzMlx1MEIzM1x1MEIzNS1cdTBCMzlcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUYtXHUwQjYxXHUwQjcxXHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5XHUwQjlBXHUwQjlDXHUwQjlFXHUwQjlGXHUwQkEzXHUwQkE0XHUwQkE4LVx1MEJBQVx1MEJBRS1cdTBCQjlcdTBCRDBcdTBDMDUtXHUwQzBDXHUwQzBFLVx1MEMxMFx1MEMxMi1cdTBDMjhcdTBDMkEtXHUwQzMzXHUwQzM1LVx1MEMzOVx1MEMzRFx1MEM1OFx1MEM1OVx1MEM2MFx1MEM2MVx1MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JEXHUwQ0RFXHUwQ0UwXHUwQ0UxXHUwQ0YxXHUwQ0YyXHUwRDA1LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDNBXHUwRDNEXHUwRDRFXHUwRDYwXHUwRDYxXHUwRDdBLVx1MEQ3Rlx1MEQ4NS1cdTBEOTZcdTBEOUEtXHUwREIxXHUwREIzLVx1MERCQlx1MERCRFx1MERDMC1cdTBEQzZcdTBFMDEtXHUwRTMwXHUwRTMyXHUwRTMzXHUwRTQwLVx1MEU0Nlx1MEU4MVx1MEU4Mlx1MEU4NFx1MEU4N1x1MEU4OFx1MEU4QVx1MEU4RFx1MEU5NC1cdTBFOTdcdTBFOTktXHUwRTlGXHUwRUExLVx1MEVBM1x1MEVBNVx1MEVBN1x1MEVBQVx1MEVBQlx1MEVBRC1cdTBFQjBcdTBFQjJcdTBFQjNcdTBFQkRcdTBFQzAtXHUwRUM0XHUwRUM2XHUwRURDLVx1MEVERlx1MEYwMFx1MEY0MC1cdTBGNDdcdTBGNDktXHUwRjZDXHUwRjg4LVx1MEY4Q1x1MTAwMC1cdTEwMkFcdTEwM0ZcdTEwNTAtXHUxMDU1XHUxMDVBLVx1MTA1RFx1MTA2MVx1MTA2NVx1MTA2Nlx1MTA2RS1cdTEwNzBcdTEwNzUtXHUxMDgxXHUxMDhFXHUxMEEwLVx1MTBDNVx1MTBDN1x1MTBDRFx1MTBEMC1cdTEwRkFcdTEwRkMtXHUxMjQ4XHUxMjRBLVx1MTI0RFx1MTI1MC1cdTEyNTZcdTEyNThcdTEyNUEtXHUxMjVEXHUxMjYwLVx1MTI4OFx1MTI4QS1cdTEyOERcdTEyOTAtXHUxMkIwXHUxMkIyLVx1MTJCNVx1MTJCOC1cdTEyQkVcdTEyQzBcdTEyQzItXHUxMkM1XHUxMkM4LVx1MTJENlx1MTJEOC1cdTEzMTBcdTEzMTItXHUxMzE1XHUxMzE4LVx1MTM1QVx1MTM4MC1cdTEzOEZcdTEzQTAtXHUxM0Y0XHUxNDAxLVx1MTY2Q1x1MTY2Ri1cdTE2N0ZcdTE2ODEtXHUxNjlBXHUxNkEwLVx1MTZFQVx1MTcwMC1cdTE3MENcdTE3MEUtXHUxNzExXHUxNzIwLVx1MTczMVx1MTc0MC1cdTE3NTFcdTE3NjAtXHUxNzZDXHUxNzZFLVx1MTc3MFx1MTc4MC1cdTE3QjNcdTE3RDdcdTE3RENcdTE4MjAtXHUxODc3XHUxODgwLVx1MThBOFx1MThBQVx1MThCMC1cdTE4RjVcdTE5MDAtXHUxOTFDXHUxOTUwLVx1MTk2RFx1MTk3MC1cdTE5NzRcdTE5ODAtXHUxOUFCXHUxOUMxLVx1MTlDN1x1MUEwMC1cdTFBMTZcdTFBMjAtXHUxQTU0XHUxQUE3XHUxQjA1LVx1MUIzM1x1MUI0NS1cdTFCNEJcdTFCODMtXHUxQkEwXHUxQkFFXHUxQkFGXHUxQkJBLVx1MUJFNVx1MUMwMC1cdTFDMjNcdTFDNEQtXHUxQzRGXHUxQzVBLVx1MUM3RFx1MUNFOS1cdTFDRUNcdTFDRUUtXHUxQ0YxXHUxQ0Y1XHUxQ0Y2XHUxRDAwLVx1MURCRlx1MUUwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMyLVx1MUZDNFx1MUZDNi1cdTFGQ0NcdTFGRDAtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZFMC1cdTFGRUNcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGQ1x1MjA3MVx1MjA3Rlx1MjA5MC1cdTIwOUNcdTIxMDJcdTIxMDdcdTIxMEEtXHUyMTEzXHUyMTE1XHUyMTE5LVx1MjExRFx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTM5XHUyMTNDLVx1MjEzRlx1MjE0NS1cdTIxNDlcdTIxNEVcdTIxODNcdTIxODRcdTJDMDAtXHUyQzJFXHUyQzMwLVx1MkM1RVx1MkM2MC1cdTJDRTRcdTJDRUItXHUyQ0VFXHUyQ0YyXHUyQ0YzXHUyRDAwLVx1MkQyNVx1MkQyN1x1MkQyRFx1MkQzMC1cdTJENjdcdTJENkZcdTJEODAtXHUyRDk2XHUyREEwLVx1MkRBNlx1MkRBOC1cdTJEQUVcdTJEQjAtXHUyREI2XHUyREI4LVx1MkRCRVx1MkRDMC1cdTJEQzZcdTJEQzgtXHUyRENFXHUyREQwLVx1MkRENlx1MkREOC1cdTJEREVcdTJFMkZcdTMwMDVcdTMwMDZcdTMwMzEtXHUzMDM1XHUzMDNCXHUzMDNDXHUzMDQxLVx1MzA5Nlx1MzA5RC1cdTMwOUZcdTMwQTEtXHUzMEZBXHUzMEZDLVx1MzBGRlx1MzEwNS1cdTMxMkRcdTMxMzEtXHUzMThFXHUzMUEwLVx1MzFCQVx1MzFGMC1cdTMxRkZcdTM0MDAtXHU0REI1XHU0RTAwLVx1OUZDQ1x1QTAwMC1cdUE0OENcdUE0RDAtXHVBNEZEXHVBNTAwLVx1QTYwQ1x1QTYxMC1cdUE2MUZcdUE2MkFcdUE2MkJcdUE2NDAtXHVBNjZFXHVBNjdGLVx1QTY5N1x1QTZBMC1cdUE2RTVcdUE3MTctXHVBNzFGXHVBNzIyLVx1QTc4OFx1QTc4Qi1cdUE3OEVcdUE3OTAtXHVBNzkzXHVBN0EwLVx1QTdBQVx1QTdGOC1cdUE4MDFcdUE4MDMtXHVBODA1XHVBODA3LVx1QTgwQVx1QTgwQy1cdUE4MjJcdUE4NDAtXHVBODczXHVBODgyLVx1QThCM1x1QThGMi1cdUE4RjdcdUE4RkJcdUE5MEEtXHVBOTI1XHVBOTMwLVx1QTk0Nlx1QTk2MC1cdUE5N0NcdUE5ODQtXHVBOUIyXHVBOUNGXHVBQTAwLVx1QUEyOFx1QUE0MC1cdUFBNDJcdUFBNDQtXHVBQTRCXHVBQTYwLVx1QUE3Nlx1QUE3QVx1QUE4MC1cdUFBQUZcdUFBQjFcdUFBQjVcdUFBQjZcdUFBQjktXHVBQUJEXHVBQUMwXHVBQUMyXHVBQURCLVx1QUFERFx1QUFFMC1cdUFBRUFcdUFBRjItXHVBQUY0XHVBQjAxLVx1QUIwNlx1QUIwOS1cdUFCMEVcdUFCMTEtXHVBQjE2XHVBQjIwLVx1QUIyNlx1QUIyOC1cdUFCMkVcdUFCQzAtXHVBQkUyXHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMjEtXHVGRjNBXHVGRjQxLVx1RkY1QVx1RkY2Ni1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXS8sIioiOi8uL30sbHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCk7dmFyIG49ZS5tYXNrLGk9anIoZSxhdSk7dGhpcy5tYXNrZWQ9c3Uoe21hc2s6bn0pLE9iamVjdC5hc3NpZ24odGhpcyxpKX1yZXR1cm4gT3IodCxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0ZpbGxlZD0hMSx0aGlzLm1hc2tlZC5yZXNldCgpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiAwPT09dCYmZT49MT8odGhpcy5pc0ZpbGxlZD0hMSx0aGlzLm1hc2tlZC5yZW1vdmUodCxlKSk6bmV3IFlyfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC52YWx1ZXx8KHRoaXMuaXNGaWxsZWQmJiF0aGlzLmlzT3B0aW9uYWw\/dGhpcy5wbGFjZWhvbGRlckNoYXI6IiIpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnVubWFza2VkVmFsdWV9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLm1hc2tlZC52YWx1ZSl8fHRoaXMuaXNPcHRpb25hbH19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYodGhpcy5pc0ZpbGxlZClyZXR1cm4gbmV3IFlyO3ZhciBuPXRoaXMubWFza2VkLnN0YXRlLGk9dGhpcy5tYXNrZWQuX2FwcGVuZENoYXIodCxlKTtyZXR1cm4gaS5pbnNlcnRlZCYmITE9PT10aGlzLmRvVmFsaWRhdGUoZSkmJihpLmluc2VydGVkPWkucmF3SW5zZXJ0ZWQ9IiIsdGhpcy5tYXNrZWQuc3RhdGU9biksaS5pbnNlcnRlZHx8dGhpcy5pc09wdGlvbmFsfHx0aGlzLmxhenl8fGUuaW5wdXR8fChpLmluc2VydGVkPXRoaXMucGxhY2Vob2xkZXJDaGFyKSxpLnNraXA9IWkuaW5zZXJ0ZWQmJiF0aGlzLmlzT3B0aW9uYWwsdGhpcy5pc0ZpbGxlZD1Cb29sZWFuKGkuaW5zZXJ0ZWQpLGl9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmFwcGVuZC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFlyO3JldHVybiB0aGlzLmlzRmlsbGVkfHx0aGlzLmlzT3B0aW9uYWx8fCh0aGlzLmlzRmlsbGVkPSEwLHQuaW5zZXJ0ZWQ9dGhpcy5wbGFjZWhvbGRlckNoYXIpLHR9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5leHRyYWN0VGFpbC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5hcHBlbmRUYWlsLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiB0aGlzLm1hc2tlZC5leHRyYWN0SW5wdXQodCxlLG4pfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06R3Isbj0wLGk9dGhpcy52YWx1ZS5sZW5ndGgscj1NYXRoLm1pbihNYXRoLm1heCh0LG4pLGkpO3N3aXRjaChlKXtjYXNlIEtyOmNhc2UgJHI6cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9yOm47Y2FzZSBXcjpjYXNlIFhyOnJldHVybiB0aGlzLmlzQ29tcGxldGU\/cjppO2RlZmF1bHQ6cmV0dXJuIHJ9fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlO3JldHVybih0PXRoaXMubWFza2VkKS5kb1ZhbGlkYXRlLmFwcGx5KHQsYXJndW1lbnRzKSYmKCF0aGlzLnBhcmVudHx8KGU9dGhpcy5wYXJlbnQpLmRvVmFsaWRhdGUuYXBwbHkoZSxhcmd1bWVudHMpKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWFza2VkLmRvQ29tbWl0KCl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue21hc2tlZDp0aGlzLm1hc2tlZC5zdGF0ZSxpc0ZpbGxlZDp0aGlzLmlzRmlsbGVkfX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnN0YXRlPXQubWFza2VkLHRoaXMuaXNGaWxsZWQ9dC5pc0ZpbGxlZH19XSksdH0oKSxodT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KSxPYmplY3QuYXNzaWduKHRoaXMsZSksdGhpcy5fdmFsdWU9IiIsdGhpcy5pc0ZpeGVkPSEwfXJldHVybiBPcih0LFt7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNVbm1hc2tpbmc\/dGhpcy52YWx1ZToiIn19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2lzUmF3SW5wdXQ9ITEsdGhpcy5fdmFsdWU9IiJ9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5fdmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLl92YWx1ZT10aGlzLl92YWx1ZS5zbGljZSgwLHQpK3RoaXMuX3ZhbHVlLnNsaWNlKGUpLHRoaXMuX3ZhbHVlfHwodGhpcy5faXNSYXdJbnB1dD0hMSksbmV3IFlyfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06R3Isbj0wLGk9dGhpcy5fdmFsdWUubGVuZ3RoO3N3aXRjaChlKXtjYXNlIEtyOmNhc2UgJHI6cmV0dXJuIG47ZGVmYXVsdDpyZXR1cm4gaX19fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5fdmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOnt9O3JldHVybiBuLnJhdyYmdGhpcy5faXNSYXdJbnB1dCYmdGhpcy5fdmFsdWUuc2xpY2UodCxlKXx8IiJ9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLl92YWx1ZSl9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49bmV3IFlyO2lmKHRoaXMuX3ZhbHVlKXJldHVybiBuO3ZhciBpPXRoaXMuY2hhcj09PXQscj1pJiYodGhpcy5pc1VubWFza2luZ3x8ZS5pbnB1dHx8ZS5yYXcpJiYhdGhpcy5lYWdlciYmIWUudGFpbDtyZXR1cm4gciYmKG4ucmF3SW5zZXJ0ZWQ9dGhpcy5jaGFyKSx0aGlzLl92YWx1ZT1uLmluc2VydGVkPXRoaXMuY2hhcix0aGlzLl9pc1Jhd0lucHV0PXImJihlLnJhd3x8ZS5pbnB1dCksbn19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwZW5kQ2hhcih0aGlzLmNoYXIpfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PW5ldyBZcjtyZXR1cm4gdGhpcy5fdmFsdWV8fCh0aGlzLl92YWx1ZT10Lmluc2VydGVkPXRoaXMuY2hhciksdH19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXXx8dGhpcy52YWx1ZS5sZW5ndGgsbmV3IG51KCIiKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBacih0KSYmKHQ9bmV3IG51KFN0cmluZyh0KSkpLHQuYXBwZW5kVG8odGhpcyl9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLl9hcHBlbmRDaGFyKHRbMF0sZSk7cmV0dXJuIG51bGwhPW4mJihpLnRhaWxTaGlmdCs9dGhpcy5hcHBlbmRUYWlsKG4pLnRhaWxTaGlmdCksaX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57X3ZhbHVlOnRoaXMuX3ZhbHVlLF9pc1Jhd0lucHV0OnRoaXMuX2lzUmF3SW5wdXR9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX1dKSx0fSgpLGN1PVsiY2h1bmtzIl0sZnU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOltdLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOjA7eHIodGhpcyx0KSx0aGlzLmNodW5rcz1lLHRoaXMuZnJvbT1ufXJldHVybiBPcih0LFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaHVua3MubWFwKFN0cmluZykuam9pbigiIil9fSx7a2V5OiJleHRlbmQiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKFN0cmluZyhlKSl7WnIoZSkmJihlPW5ldyBudShTdHJpbmcoZSkpKTt2YXIgbj10aGlzLmNodW5rc1t0aGlzLmNodW5rcy5sZW5ndGgtMV0saT1uJiYobi5zdG9wPT09ZS5zdG9wfHxudWxsPT1lLnN0b3ApJiZlLmZyb209PT1uLmZyb20rbi50b1N0cmluZygpLmxlbmd0aDtpZihlIGluc3RhbmNlb2YgbnUpaT9uLmV4dGVuZChlLnRvU3RyaW5nKCkpOnRoaXMuY2h1bmtzLnB1c2goZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgdCl7aWYobnVsbD09ZS5zdG9wKWZvcih2YXIgcjtlLmNodW5rcy5sZW5ndGgmJm51bGw9PWUuY2h1bmtzWzBdLnN0b3A7KShyPWUuY2h1bmtzLnNoaWZ0KCkpLmZyb20rPWUuZnJvbSx0aGlzLmV4dGVuZChyKTtlLnRvU3RyaW5nKCkmJihlLnN0b3A9ZS5ibG9ja0luZGV4LHRoaXMuY2h1bmtzLnB1c2goZSkpfX19fSx7a2V5OiJhcHBlbmRUbyIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgaXUuTWFza2VkUGF0dGVybikpcmV0dXJuIG5ldyBudSh0aGlzLnRvU3RyaW5nKCkpLmFwcGVuZFRvKGUpO2Zvcih2YXIgbj1uZXcgWXIsaT0wO2k8dGhpcy5jaHVua3MubGVuZ3RoJiYhbi5za2lwOysraSl7dmFyIHI9dGhpcy5jaHVua3NbaV0sdT1lLl9tYXBQb3NUb0Jsb2NrKGUudmFsdWUubGVuZ3RoKSxzPXIuc3RvcCxhPXZvaWQgMDtpZihudWxsIT1zJiYoIXV8fHUuaW5kZXg8PXMpJiYoKHIgaW5zdGFuY2VvZiB0fHxlLl9zdG9wcy5pbmRleE9mKHMpPj0wKSYmbi5hZ2dyZWdhdGUoZS5fYXBwZW5kUGxhY2Vob2xkZXIocykpLGE9ciBpbnN0YW5jZW9mIHQmJmUuX2Jsb2Nrc1tzXSksYSl7dmFyIG89YS5hcHBlbmRUYWlsKHIpO28uc2tpcD0hMSxuLmFnZ3JlZ2F0ZShvKSxlLl92YWx1ZSs9by5pbnNlcnRlZDt2YXIgbD1yLnRvU3RyaW5nKCkuc2xpY2Uoby5yYXdJbnNlcnRlZC5sZW5ndGgpO2wmJm4uYWdncmVnYXRlKGUuYXBwZW5kKGwse3RhaWw6ITB9KSl9ZWxzZSBuLmFnZ3JlZ2F0ZShlLmFwcGVuZChyLnRvU3RyaW5nKCkse3RhaWw6ITB9KSl9cmV0dXJuIG59fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue2NodW5rczp0aGlzLmNodW5rcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpLGZyb206dGhpcy5mcm9tLHN0b3A6dGhpcy5zdG9wLGJsb2NrSW5kZXg6dGhpcy5ibG9ja0luZGV4fX0sc2V0OmZ1bmN0aW9uKGUpe3ZhciBuPWUuY2h1bmtzLGk9anIoZSxjdSk7T2JqZWN0LmFzc2lnbih0aGlzLGkpLHRoaXMuY2h1bmtzPW4ubWFwKChmdW5jdGlvbihlKXt2YXIgbj0iY2h1bmtzImluIGU\/bmV3IHQ6bmV3IG51O3JldHVybiBuLnN0YXRlPWUsbn0pKX19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmNodW5rcy5sZW5ndGh8fG51bGwhPXQmJnRoaXMuZnJvbT49dClyZXR1cm4iIjtmb3IodmFyIGU9bnVsbCE9dD90LXRoaXMuZnJvbTp0LG49MDtuPHRoaXMuY2h1bmtzLmxlbmd0aDspe3ZhciBpPXRoaXMuY2h1bmtzW25dLHI9aS51bnNoaWZ0KGUpO2lmKGkudG9TdHJpbmcoKSl7aWYoIXIpYnJlYWs7KytufWVsc2UgdGhpcy5jaHVua3Muc3BsaWNlKG4sMSk7aWYocilyZXR1cm4gcn1yZXR1cm4iIn19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLmNodW5rcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciB0PXRoaXMuY2h1bmtzLmxlbmd0aC0xOzA8PXQ7KXt2YXIgZT10aGlzLmNodW5rc1t0XSxuPWUuc2hpZnQoKTtpZihlLnRvU3RyaW5nKCkpe2lmKCFuKWJyZWFrOy0tdH1lbHNlIHRoaXMuY2h1bmtzLnNwbGljZSh0LDEpO2lmKG4pcmV0dXJuIG59cmV0dXJuIiJ9fV0pLHR9KCkscHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7eHIodGhpcyx0KSx0aGlzLm1hc2tlZD1lLHRoaXMuX2xvZz1bXTt2YXIgaT1lLl9tYXBQb3NUb0Jsb2NrKG4pfHwobjwwP3tpbmRleDowLG9mZnNldDowfTp7aW5kZXg6dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgsb2Zmc2V0OjB9KSxyPWkub2Zmc2V0LHU9aS5pbmRleDt0aGlzLm9mZnNldD1yLHRoaXMuaW5kZXg9dSx0aGlzLm9rPSExfXJldHVybiBPcih0LFt7a2V5OiJibG9jayIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLl9ibG9ja3NbdGhpcy5pbmRleF19fSx7a2V5OiJwb3MiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC5fYmxvY2tTdGFydFBvcyh0aGlzLmluZGV4KSt0aGlzLm9mZnNldH19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57aW5kZXg6dGhpcy5pbmRleCxvZmZzZXQ6dGhpcy5vZmZzZXQsb2s6dGhpcy5va319LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJwdXNoU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fbG9nLnB1c2godGhpcy5zdGF0ZSl9fSx7a2V5OiJwb3BTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9sb2cucG9wKCk7cmV0dXJuIHRoaXMuc3RhdGU9dCx0fX0se2tleToiYmluZEJsb2NrIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmxvY2t8fCh0aGlzLmluZGV4PDAmJih0aGlzLmluZGV4PTAsdGhpcy5vZmZzZXQ9MCksdGhpcy5pbmRleD49dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgmJih0aGlzLmluZGV4PXRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoLTEsdGhpcy5vZmZzZXQ9dGhpcy5ibG9jay52YWx1ZS5sZW5ndGgpKX19LHtrZXk6Il9wdXNoTGVmdCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHRoaXMucHVzaFN0YXRlKCksdGhpcy5iaW5kQmxvY2soKTswPD10aGlzLmluZGV4Oy0tdGhpcy5pbmRleCx0aGlzLm9mZnNldD0obnVsbD09PShlPXRoaXMuYmxvY2spfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZhbHVlLmxlbmd0aCl8fDApe3ZhciBlO2lmKHQoKSlyZXR1cm4gdGhpcy5vaz0hMH1yZXR1cm4gdGhpcy5vaz0hMX19LHtrZXk6Il9wdXNoUmlnaHQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih0aGlzLnB1c2hTdGF0ZSgpLHRoaXMuYmluZEJsb2NrKCk7dGhpcy5pbmRleDx0aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aDsrK3RoaXMuaW5kZXgsdGhpcy5vZmZzZXQ9MClpZih0KCkpcmV0dXJuIHRoaXMub2s9ITA7cmV0dXJuIHRoaXMub2s9ITF9fSx7a2V5OiJwdXNoTGVmdEJlZm9yZUZpbGxlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkJiZ0LmJsb2NrLnZhbHVlKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCwkciksMCE9PXQub2Zmc2V0fHx2b2lkIDB9KSl9fSx7a2V5OiJwdXNoTGVmdEJlZm9yZUlucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEtyKSwhMH0pKX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlUmVxdWlyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoISh0LmJsb2NrLmlzRml4ZWR8fHQuYmxvY2suaXNPcHRpb25hbCYmIXQuYmxvY2sudmFsdWUpKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxLciksITB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVGaWxsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQmJnQuYmxvY2sudmFsdWUpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LFhyKSx0Lm9mZnNldCE9PXQuYmxvY2sudmFsdWUubGVuZ3RofHx2b2lkIDB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZClyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsR3IpLCEwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCEodC5ibG9jay5pc0ZpeGVkfHx0LmJsb2NrLmlzT3B0aW9uYWwmJiF0LmJsb2NrLnZhbHVlKSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsR3IpLCEwfSkpfX1dKSx0fSgpLGR1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2smJih0LnZhbGlkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBlLnNlYXJjaCh0Lm1hc2spPj0wfSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLG59KHJ1KTtpdS5NYXNrZWRSZWdFeHA9ZHU7dmFyIHZ1PVsiX2Jsb2NrcyJdLGd1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4geHIodGhpcyxuKSx0LmRlZmluaXRpb25zPU9iamVjdC5hc3NpZ24oe30sb3UsdC5kZWZpbml0aW9ucyksZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307dC5kZWZpbml0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMuZGVmaW5pdGlvbnMsdC5kZWZpbml0aW9ucyksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCksdGhpcy5fcmVidWlsZE1hc2soKX19LHtrZXk6Il9yZWJ1aWxkTWFzayIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5kZWZpbml0aW9uczt0aGlzLl9ibG9ja3M9W10sdGhpcy5fc3RvcHM9W10sdGhpcy5fbWFza2VkQmxvY2tzPXt9O3ZhciBpPXRoaXMubWFzaztpZihpJiZlKWZvcih2YXIgcj0hMSx1PSExLHM9MDtzPGkubGVuZ3RoOysrcyl7aWYodGhpcy5ibG9ja3MpaWYoImNvbnRpbnVlIj09PWZ1bmN0aW9uKCl7dmFyIGU9aS5zbGljZShzKSxuPU9iamVjdC5rZXlzKHQuYmxvY2tzKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09ZS5pbmRleE9mKHQpfSkpO24uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5sZW5ndGgtdC5sZW5ndGh9KSk7dmFyIHI9blswXTtpZihyKXt2YXIgdT1zdShPYmplY3QuYXNzaWduKHtwYXJlbnQ6dCxsYXp5OnQubGF6eSxlYWdlcjp0LmVhZ2VyLHBsYWNlaG9sZGVyQ2hhcjp0LnBsYWNlaG9sZGVyQ2hhcixvdmVyd3JpdGU6dC5vdmVyd3JpdGV9LHQuYmxvY2tzW3JdKSk7cmV0dXJuIHUmJih0Ll9ibG9ja3MucHVzaCh1KSx0Ll9tYXNrZWRCbG9ja3Nbcl18fCh0Ll9tYXNrZWRCbG9ja3Nbcl09W10pLHQuX21hc2tlZEJsb2Nrc1tyXS5wdXNoKHQuX2Jsb2Nrcy5sZW5ndGgtMSkpLHMrPXIubGVuZ3RoLTEsImNvbnRpbnVlIn19KCkpY29udGludWU7dmFyIGE9aVtzXSxvPWEgaW4gZTtpZihhIT09bi5TVE9QX0NIQVIpaWYoInsiIT09YSYmIn0iIT09YSlpZigiWyIhPT1hJiYiXSIhPT1hKXtpZihhPT09bi5FU0NBUEVfQ0hBUil7aWYoKytzLCEoYT1pW3NdKSlicmVhaztvPSExfXZhciBsPW8\/bmV3IGx1KHtwYXJlbnQ6dGhpcyxsYXp5OnRoaXMubGF6eSxlYWdlcjp0aGlzLmVhZ2VyLHBsYWNlaG9sZGVyQ2hhcjp0aGlzLnBsYWNlaG9sZGVyQ2hhcixtYXNrOmVbYV0saXNPcHRpb25hbDp1fSk6bmV3IGh1KHtjaGFyOmEsZWFnZXI6dGhpcy5lYWdlcixpc1VubWFza2luZzpyfSk7dGhpcy5fYmxvY2tzLnB1c2gobCl9ZWxzZSB1PSF1O2Vsc2Ugcj0hcjtlbHNlIHRoaXMuX3N0b3BzLnB1c2godGhpcy5fYmxvY2tzLmxlbmd0aCl9fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LE5yKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLHRoaXMpLHtfYmxvY2tzOnRoaXMuX2Jsb2Nrcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpfSl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10Ll9ibG9ja3MsaT1qcih0LHZ1KTt0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5zdGF0ZT1lW25dfSkpLHpyKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLGksdGhpcywhMCl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtOcihUcihuLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNldCgpfSkpfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNDb21wbGV0ZX0pKX19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0ZpbGxlZH0pKX19LHtrZXk6ImlzRml4ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRml4ZWR9KSl9fSx7a2V5OiJpc09wdGlvbmFsIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc09wdGlvbmFsfSkpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvQ29tbWl0KCl9KSksTnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudW5tYXNrZWRWYWx1ZX0pLCIiKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnZhbHVlfSksIiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ2YWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBOcihUcihuLnByb3RvdHlwZSksImFwcGVuZFRhaWwiLHRoaXMpLmNhbGwodGhpcyx0KS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kUGxhY2Vob2xkZXIoKSl9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT1uZXcgWXIsbj1udWxsPT09KHQ9dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmluZGV4O2lmKG51bGw9PW4pcmV0dXJuIGU7dGhpcy5fYmxvY2tzW25dLmlzRmlsbGVkJiYrK247Zm9yKHZhciBpPW47aTx0aGlzLl9ibG9ja3MubGVuZ3RoOysraSl7dmFyIHI9dGhpcy5fYmxvY2tzW2ldLl9hcHBlbmRFYWdlcigpO2lmKCFyLmluc2VydGVkKWJyZWFrO2UuYWdncmVnYXRlKHIpfXJldHVybiBlfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpLGk9bmV3IFlyO2lmKCFuKXJldHVybiBpO2Zvcih2YXIgcj1uLmluZGV4OzsrK3Ipe3ZhciB1LHM9dGhpcy5fYmxvY2tzW3JdO2lmKCFzKWJyZWFrO3ZhciBhPXMuX2FwcGVuZENoYXIodCxPYmplY3QuYXNzaWduKHt9LGUse19iZWZvcmVUYWlsU3RhdGU6bnVsbD09PSh1PWUuX2JlZm9yZVRhaWxTdGF0ZSl8fHZvaWQgMD09PXU\/dm9pZCAwOnUuX2Jsb2Nrc1tyXX0pKSxvPWEuc2tpcDtpZihpLmFnZ3JlZ2F0ZShhKSxvfHxhLnJhd0luc2VydGVkKWJyZWFrfXJldHVybiBpfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9bmV3IGZ1O3JldHVybiBlPT09bnx8dGhpcy5fZm9yRWFjaEJsb2Nrc0luUmFuZ2UoZSxuLChmdW5jdGlvbihlLG4scix1KXt2YXIgcz1lLmV4dHJhY3RUYWlsKHIsdSk7cy5zdG9wPXQuX2ZpbmRTdG9wQmVmb3JlKG4pLHMuZnJvbT10Ll9ibG9ja1N0YXJ0UG9zKG4pLHMgaW5zdGFuY2VvZiBmdSYmKHMuYmxvY2tJbmRleD1uKSxpLmV4dGVuZChzKX0pKSxpfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOnt9O2lmKHQ9PT1lKXJldHVybiIiO3ZhciBpPSIiO3JldHVybiB0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZSh0LGUsKGZ1bmN0aW9uKHQsZSxyLHUpe2krPXQuZXh0cmFjdElucHV0KHIsdSxuKX0pKSxpfX0se2tleToiX2ZpbmRTdG9wQmVmb3JlIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0wO248dGhpcy5fc3RvcHMubGVuZ3RoOysrbil7dmFyIGk9dGhpcy5fc3RvcHNbbl07aWYoIShpPD10KSlicmVhaztlPWl9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1uZXcgWXI7aWYodGhpcy5sYXp5JiZudWxsPT10KXJldHVybiBuO3ZhciBpPXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpO2lmKCFpKXJldHVybiBuO3ZhciByPWkuaW5kZXgsdT1udWxsIT10P3Q6dGhpcy5fYmxvY2tzLmxlbmd0aDtyZXR1cm4gdGhpcy5fYmxvY2tzLnNsaWNlKHIsdSkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7aWYoIWkubGF6eXx8bnVsbCE9dCl7dmFyIHI9bnVsbCE9aS5fYmxvY2tzP1tpLl9ibG9ja3MubGVuZ3RoXTpbXSx1PWkuX2FwcGVuZFBsYWNlaG9sZGVyLmFwcGx5KGkscik7ZS5fdmFsdWUrPXUuaW5zZXJ0ZWQsbi5hZ2dyZWdhdGUodSl9fSkpLG59fSx7a2V5OiJfbWFwUG9zVG9CbG9jayIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLG49MDtuPHRoaXMuX2Jsb2Nrcy5sZW5ndGg7KytuKXt2YXIgaT10aGlzLl9ibG9ja3Nbbl0scj1lLmxlbmd0aDtpZih0PD0oZSs9aS52YWx1ZSkubGVuZ3RoKXJldHVybntpbmRleDpuLG9mZnNldDp0LXJ9fX19LHtrZXk6Il9ibG9ja1N0YXJ0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYmxvY2tzLnNsaWNlKDAsdCkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudmFsdWUubGVuZ3RofSksMCl9fSx7a2V5OiJfZm9yRWFjaEJsb2Nrc0luUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGk9dGhpcy5fbWFwUG9zVG9CbG9jayh0KTtpZihpKXt2YXIgcj10aGlzLl9tYXBQb3NUb0Jsb2NrKGUpLHU9ciYmaS5pbmRleD09PXIuaW5kZXgscz1pLm9mZnNldCxhPXImJnU\/ci5vZmZzZXQ6dGhpcy5fYmxvY2tzW2kuaW5kZXhdLnZhbHVlLmxlbmd0aDtpZihuKHRoaXMuX2Jsb2Nrc1tpLmluZGV4XSxpLmluZGV4LHMsYSksciYmIXUpe2Zvcih2YXIgbz1pLmluZGV4KzE7bzxyLmluZGV4OysrbyluKHRoaXMuX2Jsb2Nrc1tvXSxvLDAsdGhpcy5fYmxvY2tzW29dLnZhbHVlLmxlbmd0aCk7bih0aGlzLl9ibG9ja3Nbci5pbmRleF0sci5pbmRleCwwLHIub2Zmc2V0KX19fX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9TnIoVHIobi5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx0LGUpO3JldHVybiB0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZSh0LGUsKGZ1bmN0aW9uKHQsZSxuLHIpe2kuYWdncmVnYXRlKHQucmVtb3ZlKG4scikpfSkpLGl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcjtpZighdGhpcy5fYmxvY2tzLmxlbmd0aClyZXR1cm4gMDt2YXIgbj1uZXcgcHUodGhpcyx0KTtpZihlPT09R3IpcmV0dXJuIG4ucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKT9uLnBvczoobi5wb3BTdGF0ZSgpLG4ucHVzaExlZnRCZWZvcmVJbnB1dCgpP24ucG9zOnRoaXMudmFsdWUubGVuZ3RoKTtpZihlPT09S3J8fGU9PT0kcil7aWYoZT09PUtyKXtpZihuLnB1c2hSaWdodEJlZm9yZUZpbGxlZCgpLG4ub2smJm4ucG9zPT09dClyZXR1cm4gdDtuLnBvcFN0YXRlKCl9aWYobi5wdXNoTGVmdEJlZm9yZUlucHV0KCksbi5wdXNoTGVmdEJlZm9yZVJlcXVpcmVkKCksbi5wdXNoTGVmdEJlZm9yZUZpbGxlZCgpLGU9PT1Lcil7aWYobi5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpLG4ucHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQoKSxuLm9rJiZuLnBvczw9dClyZXR1cm4gbi5wb3M7aWYobi5wb3BTdGF0ZSgpLG4ub2smJm4ucG9zPD10KXJldHVybiBuLnBvcztuLnBvcFN0YXRlKCl9cmV0dXJuIG4ub2s\/bi5wb3M6ZT09PSRyPzA6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczowKSl9cmV0dXJuIGU9PT1Xcnx8ZT09PVhyPyhuLnB1c2hSaWdodEJlZm9yZUlucHV0KCksbi5wdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCgpLG4ucHVzaFJpZ2h0QmVmb3JlRmlsbGVkKCk\/bi5wb3M6ZT09PVhyP3RoaXMudmFsdWUubGVuZ3RoOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6dGhpcy5uZWFyZXN0SW5wdXRQb3ModCxLcikpKSk6dH19LHtrZXk6Im1hc2tlZEJsb2NrIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXNrZWRCbG9ja3ModClbMF19fSx7a2V5OiJtYXNrZWRCbG9ja3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLl9tYXNrZWRCbG9ja3NbdF07cmV0dXJuIG4\/bi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9ibG9ja3NbdF19KSk6W119fV0pLG59KHJ1KTtndS5ERUZBVUxUUz17bGF6eTohMCxwbGFjZWhvbGRlckNoYXI6Il8ifSxndS5TVE9QX0NIQVI9ImAiLGd1LkVTQ0FQRV9DSEFSPSJcXCIsZ3UuSW5wdXREZWZpbml0aW9uPWx1LGd1LkZpeGVkRGVmaW5pdGlvbj1odSxpdS5NYXNrZWRQYXR0ZXJuPWd1O3ZhciBrdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX21hdGNoRnJvbSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4TGVuZ3RoLVN0cmluZyh0aGlzLmZyb20pLmxlbmd0aH19LHtrZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3Q9T2JqZWN0LmFzc2lnbih7dG86dGhpcy50b3x8MCxmcm9tOnRoaXMuZnJvbXx8MCxtYXhMZW5ndGg6dGhpcy5tYXhMZW5ndGh8fDB9LHQpO3ZhciBlPVN0cmluZyh0LnRvKS5sZW5ndGg7bnVsbCE9dC5tYXhMZW5ndGgmJihlPU1hdGgubWF4KGUsdC5tYXhMZW5ndGgpKSx0Lm1heExlbmd0aD1lO2Zvcih2YXIgaT1TdHJpbmcodC5mcm9tKS5wYWRTdGFydChlLCIwIikscj1TdHJpbmcodC50bykucGFkU3RhcnQoZSwiMCIpLHU9MDt1PHIubGVuZ3RoJiZyW3VdPT09aVt1XTspKyt1O3QubWFzaz1yLnNsaWNlKDAsdSkucmVwbGFjZSgvMC9nLCJcXDAiKSsiMCIucmVwZWF0KGUtdSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTnIoVHIobi5wcm90b3R5cGUpLCJpc0NvbXBsZXRlIix0aGlzKSYmQm9vbGVhbih0aGlzLnZhbHVlKX19LHtrZXk6ImJvdW5kYXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49IiIsaT1xcih0Lm1hdGNoKC9eKFxEKikoXGQqKShcRCopLyl8fFtdLDMpLHI9aVsxXSx1PWlbMl07cmV0dXJuIHUmJihlPSIwIi5yZXBlYXQoci5sZW5ndGgpK3Usbj0iOSIucmVwZWF0KHIubGVuZ3RoKSt1KSxbZT1lLnBhZEVuZCh0aGlzLm1heExlbmd0aCwiMCIpLG49bi5wYWRFbmQodGhpcy5tYXhMZW5ndGgsIjkiKV19fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLGk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LHI9UXIoTnIoVHIobi5wcm90b3R5cGUpLCJkb1ByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx0LnJlcGxhY2UoL1xEL2csIiIpLGkpKSx1PXFyKHIsMik7aWYodD11WzBdLGU9dVsxXSwhdGhpcy5hdXRvZml4fHwhdClyZXR1cm4gdDt2YXIgcz1TdHJpbmcodGhpcy5mcm9tKS5wYWRTdGFydCh0aGlzLm1heExlbmd0aCwiMCIpLGE9U3RyaW5nKHRoaXMudG8pLnBhZFN0YXJ0KHRoaXMubWF4TGVuZ3RoLCIwIiksbz10aGlzLnZhbHVlK3Q7aWYoby5sZW5ndGg+dGhpcy5tYXhMZW5ndGgpcmV0dXJuIiI7dmFyIGw9dGhpcy5ib3VuZGFyaWVzKG8pLGg9cXIobCwyKSxjPWhbMF0sZj1oWzFdO3JldHVybiBOdW1iZXIoZik8dGhpcy5mcm9tP3Nbby5sZW5ndGgtMV06TnVtYmVyKGMpPnRoaXMudG8\/InBhZCI9PT10aGlzLmF1dG9maXgmJm8ubGVuZ3RoPHRoaXMubWF4TGVuZ3RoP1siIixlLmFnZ3JlZ2F0ZSh0aGlzLmFwcGVuZChzW28ubGVuZ3RoLTFdK3QsaSkpXTphW28ubGVuZ3RoLTFdOnR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy52YWx1ZSxpPWUuc2VhcmNoKC9bXjBdLyk7aWYoLTE9PT1pJiZlLmxlbmd0aDw9dGhpcy5fbWF0Y2hGcm9tKXJldHVybiEwO2Zvcih2YXIgcj10aGlzLmJvdW5kYXJpZXMoZSksdT1xcihyLDIpLHM9dVswXSxhPXVbMV0sbz1hcmd1bWVudHMubGVuZ3RoLGw9bmV3IEFycmF5KG8pLGg9MDtoPG87aCsrKWxbaF09YXJndW1lbnRzW2hdO3JldHVybiB0aGlzLmZyb208PU51bWJlcihhKSYmTnVtYmVyKHMpPD10aGlzLnRvJiYodD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChsKSl9fV0pLG59KGd1KTtpdS5NYXNrZWRSYW5nZT1rdTt2YXIgeXU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3JldHVybiB4cih0aGlzLG4pLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzaz09PURhdGUmJmRlbGV0ZSB0Lm1hc2ssdC5wYXR0ZXJuJiYodC5tYXNrPXQucGF0dGVybik7dmFyIGU9dC5ibG9ja3M7dC5ibG9ja3M9T2JqZWN0LmFzc2lnbih7fSxuLkdFVF9ERUZBVUxUX0JMT0NLUygpKSx0Lm1pbiYmKHQuYmxvY2tzLlkuZnJvbT10Lm1pbi5nZXRGdWxsWWVhcigpKSx0Lm1heCYmKHQuYmxvY2tzLlkudG89dC5tYXguZ2V0RnVsbFllYXIoKSksdC5taW4mJnQubWF4JiZ0LmJsb2Nrcy5ZLmZyb209PT10LmJsb2Nrcy5ZLnRvJiYodC5ibG9ja3MubS5mcm9tPXQubWluLmdldE1vbnRoKCkrMSx0LmJsb2Nrcy5tLnRvPXQubWF4LmdldE1vbnRoKCkrMSx0LmJsb2Nrcy5tLmZyb209PT10LmJsb2Nrcy5tLnRvJiYodC5ibG9ja3MuZC5mcm9tPXQubWluLmdldERhdGUoKSx0LmJsb2Nrcy5kLnRvPXQubWF4LmdldERhdGUoKSkpLE9iamVjdC5hc3NpZ24odC5ibG9ja3MsdGhpcy5ibG9ja3MsZSksT2JqZWN0LmtleXModC5ibG9ja3MpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPXQuYmxvY2tzW2VdOyEoImF1dG9maXgiaW4gbikmJiJhdXRvZml4ImluIHQmJihuLmF1dG9maXg9dC5hdXRvZml4KX0pKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5kYXRlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4odD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSkmJighdGhpcy5pc0NvbXBsZXRlfHx0aGlzLmlzRGF0ZUV4aXN0KHRoaXMudmFsdWUpJiZudWxsIT1lJiYobnVsbD09dGhpcy5taW58fHRoaXMubWluPD1lKSYmKG51bGw9PXRoaXMubWF4fHxlPD10aGlzLm1heCkpfX0se2tleToiaXNEYXRlRXhpc3QiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZvcm1hdCh0aGlzLnBhcnNlKHQsdGhpcyksdGhpcykuaW5kZXhPZih0KT49MH19LHtrZXk6ImRhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGVkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnR5cGVkVmFsdWU9dH19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQ29tcGxldGU\/TnIoVHIobi5wcm90b3R5cGUpLCJ0eXBlZFZhbHVlIix0aGlzKTpudWxsfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ0eXBlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1EYXRlfHxOcihUcihuLnByb3RvdHlwZSksIm1hc2tFcXVhbHMiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0oZ3UpO3l1LkRFRkFVTFRTPXtwYXR0ZXJuOiJkey59YG17Ln1gWSIsZm9ybWF0OmZ1bmN0aW9uKHQpe3JldHVybiB0P1tTdHJpbmcodC5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsIjAiKSxTdHJpbmcodC5nZXRNb250aCgpKzEpLnBhZFN0YXJ0KDIsIjAiKSx0LmdldEZ1bGxZZWFyKCldLmpvaW4oIi4iKToiIn0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9cXIodC5zcGxpdCgiLiIpLDMpLG49ZVswXSxpPWVbMV0scj1lWzJdO3JldHVybiBuZXcgRGF0ZShyLGktMSxuKX19LHl1LkdFVF9ERUZBVUxUX0JMT0NLUz1mdW5jdGlvbigpe3JldHVybntkOnttYXNrOmt1LGZyb206MSx0bzozMSxtYXhMZW5ndGg6Mn0sbTp7bWFzazprdSxmcm9tOjEsdG86MTIsbWF4TGVuZ3RoOjJ9LFk6e21hc2s6a3UsZnJvbToxOTAwLHRvOjk5OTl9fX0saXUuTWFza2VkRGF0ZT15dTt2YXIgbXU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7eHIodGhpcyx0KX1yZXR1cm4gT3IodCxbe2tleToic2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3RyeXt0PXRoaXMuX3Vuc2FmZVNlbGVjdGlvblN0YXJ0fWNhdGNoKHQpe31yZXR1cm4gbnVsbCE9dD90OnRoaXMudmFsdWUubGVuZ3RofX0se2tleToic2VsZWN0aW9uRW5kIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDt0cnl7dD10aGlzLl91bnNhZmVTZWxlY3Rpb25FbmR9Y2F0Y2godCl7fXJldHVybiBudWxsIT10P3Q6dGhpcy52YWx1ZS5sZW5ndGh9fSx7a2V5OiJzZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCYmbnVsbCE9ZSYmKHQhPT10aGlzLnNlbGVjdGlvblN0YXJ0fHxlIT09dGhpcy5zZWxlY3Rpb25FbmQpKXRyeXt0aGlzLl91bnNhZmVTZWxlY3QodCxlKX1jYXRjaCh0KXt9fX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt9fSx7a2V5OiJpc0FjdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITF9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt9fSx7a2V5OiJ1bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSx0fSgpO2l1Lk1hc2tFbGVtZW50PW11O3ZhciBidT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7dmFyIGk7cmV0dXJuIHhyKHRoaXMsbiksKGk9ZS5jYWxsKHRoaXMpKS5pbnB1dD10LGkuX2hhbmRsZXJzPXt9LGl9cmV0dXJuIE9yKG4sW3trZXk6InJvb3RFbGVtZW50IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdCxlLG47cmV0dXJuIG51bGwhPT0odD1udWxsPT09KGU9KG49dGhpcy5pbnB1dCkuZ2V0Um9vdE5vZGUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNhbGwobikpJiZ2b2lkIDAhPT10P3Q6ZG9jdW1lbnR9fSx7a2V5OiJpc0FjdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQ9PT10aGlzLnJvb3RFbGVtZW50LmFjdGl2ZUVsZW1lbnR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0fX0se2tleToiX3Vuc2FmZVNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuc2VsZWN0aW9uRW5kfX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLmlucHV0LnNldFNlbGVjdGlvblJhbmdlKHQsZSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQudmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLmlucHV0LnZhbHVlPXR9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGkpe3JldHVybiBlLl90b2dnbGVFdmVudEhhbmRsZXIobi5FVkVOVFNfTUFQW2ldLHRbaV0pfSkpfX0se2tleToidW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7T2JqZWN0LmtleXModGhpcy5faGFuZGxlcnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll90b2dnbGVFdmVudEhhbmRsZXIoZSl9KSl9fSx7a2V5OiJfdG9nZ2xlRXZlbnRIYW5kbGVyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuX2hhbmRsZXJzW3RdJiYodGhpcy5pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKHQsdGhpcy5faGFuZGxlcnNbdF0pLGRlbGV0ZSB0aGlzLl9oYW5kbGVyc1t0XSksZSYmKHRoaXMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcih0LGUpLHRoaXMuX2hhbmRsZXJzW3RdPWUpfX1dKSxufShtdSk7YnUuRVZFTlRTX01BUD17c2VsZWN0aW9uQ2hhbmdlOiJrZXlkb3duIixpbnB1dDoiaW5wdXQiLGRyb3A6ImRyb3AiLGNsaWNrOiJjbGljayIsZm9jdXM6ImZvY3VzIixjb21taXQ6ImJsdXIifSxpdS5IVE1MTWFza0VsZW1lbnQ9YnU7dmFyIF91PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdW5zYWZlU2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdEVsZW1lbnQsZT10LmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKSxuPWUmJmUuYW5jaG9yT2Zmc2V0LGk9ZSYmZS5mb2N1c09mZnNldDtyZXR1cm4gbnVsbD09aXx8bnVsbD09bnx8bjxpP246aX19LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdEVsZW1lbnQsZT10LmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKSxuPWUmJmUuYW5jaG9yT2Zmc2V0LGk9ZSYmZS5mb2N1c09mZnNldDtyZXR1cm4gbnVsbD09aXx8bnVsbD09bnx8bj5pP246aX19LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5yb290RWxlbWVudC5jcmVhdGVSYW5nZSl7dmFyIG49dGhpcy5yb290RWxlbWVudC5jcmVhdGVSYW5nZSgpO24uc2V0U3RhcnQodGhpcy5pbnB1dC5maXJzdENoaWxkfHx0aGlzLmlucHV0LHQpLG4uc2V0RW5kKHRoaXMuaW5wdXQubGFzdENoaWxkfHx0aGlzLmlucHV0LGUpO3ZhciBpPXRoaXMucm9vdEVsZW1lbnQscj1pLmdldFNlbGVjdGlvbiYmaS5nZXRTZWxlY3Rpb24oKTtyJiYoci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKG4pKX19fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQudGV4dENvbnRlbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmlucHV0LnRleHRDb250ZW50PXR9fV0pLG59KGJ1KTtpdS5IVE1MQ29udGVudGVkaXRhYmxlTWFza0VsZW1lbnQ9X3U7dmFyIEF1PVsibWFzayJdLEN1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3hyKHRoaXMsdCksdGhpcy5lbD1lIGluc3RhbmNlb2YgbXU\/ZTplLmlzQ29udGVudEVkaXRhYmxlJiYiSU5QVVQiIT09ZS50YWdOYW1lJiYiVEVYVEFSRUEiIT09ZS50YWdOYW1lP25ldyBfdShlKTpuZXcgYnUoZSksdGhpcy5tYXNrZWQ9c3UobiksdGhpcy5fbGlzdGVuZXJzPXt9LHRoaXMuX3ZhbHVlPSIiLHRoaXMuX3VubWFza2VkVmFsdWU9IiIsdGhpcy5fc2F2ZVNlbGVjdGlvbj10aGlzLl9zYXZlU2VsZWN0aW9uLmJpbmQodGhpcyksdGhpcy5fb25JbnB1dD10aGlzLl9vbklucHV0LmJpbmQodGhpcyksdGhpcy5fb25DaGFuZ2U9dGhpcy5fb25DaGFuZ2UuYmluZCh0aGlzKSx0aGlzLl9vbkRyb3A9dGhpcy5fb25Ecm9wLmJpbmQodGhpcyksdGhpcy5fb25Gb2N1cz10aGlzLl9vbkZvY3VzLmJpbmQodGhpcyksdGhpcy5fb25DbGljaz10aGlzLl9vbkNsaWNrLmJpbmQodGhpcyksdGhpcy5hbGlnbkN1cnNvcj10aGlzLmFsaWduQ3Vyc29yLmJpbmQodGhpcyksdGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5PXRoaXMuYWxpZ25DdXJzb3JGcmllbmRseS5iaW5kKHRoaXMpLHRoaXMuX2JpbmRFdmVudHMoKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5fb25DaGFuZ2UoKX1yZXR1cm4gT3IodCxbe2tleToibWFzayIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLm1hc2t9LHNldDpmdW5jdGlvbih0KXtpZighdGhpcy5tYXNrRXF1YWxzKHQpKWlmKHQgaW5zdGFuY2VvZiBpdS5NYXNrZWR8fHRoaXMubWFza2VkLmNvbnN0cnVjdG9yIT09dXUodCkpe3ZhciBlPXN1KHttYXNrOnR9KTtlLnVubWFza2VkVmFsdWU9dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZSx0aGlzLm1hc2tlZD1lfWVsc2UgdGhpcy5tYXNrZWQudXBkYXRlT3B0aW9ucyh7bWFzazp0fSl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gbnVsbD09dHx8KG51bGw9PT0oZT10aGlzLm1hc2tlZCl8fHZvaWQgMD09PWU\/dm9pZCAwOmUubWFza0VxdWFscyh0KSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW5tYXNrZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnVubWFza2VkVmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnR5cGVkVmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJfYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLmJpbmRFdmVudHMoe3NlbGVjdGlvbkNoYW5nZTp0aGlzLl9zYXZlU2VsZWN0aW9uLGlucHV0OnRoaXMuX29uSW5wdXQsZHJvcDp0aGlzLl9vbkRyb3AsY2xpY2s6dGhpcy5fb25DbGljayxmb2N1czp0aGlzLl9vbkZvY3VzLGNvbW1pdDp0aGlzLl9vbkNoYW5nZX0pfX0se2tleToiX3VuYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsJiZ0aGlzLmVsLnVuYmluZEV2ZW50cygpfX0se2tleToiX2ZpcmVFdmVudCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3ZhciByPXRoaXMuX2xpc3RlbmVyc1t0XTtyJiZyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGx5KHZvaWQgMCxuKX0pKX19LHtrZXk6InNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3Vyc29yQ2hhbmdpbmc\/dGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M6dGhpcy5lbC5zZWxlY3Rpb25TdGFydH19LHtrZXk6ImN1cnNvclBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnNvckNoYW5naW5nP3RoaXMuX2NoYW5naW5nQ3Vyc29yUG9zOnRoaXMuZWwuc2VsZWN0aW9uRW5kfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5lbCYmdGhpcy5lbC5pc0FjdGl2ZSYmKHRoaXMuZWwuc2VsZWN0KHQsdCksdGhpcy5fc2F2ZVNlbGVjdGlvbigpKX19LHtrZXk6Il9zYXZlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmFsdWUhPT10aGlzLmVsLnZhbHVlJiZjb25zb2xlLndhcm4oIkVsZW1lbnQgdmFsdWUgd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBtYXNrLiBTeW5jcm9uaXplIG1hc2sgdXNpbmcgYG1hc2sudXBkYXRlVmFsdWUoKWAgdG8gd29yayBwcm9wZXJseS4iKSx0aGlzLl9zZWxlY3Rpb249e3N0YXJ0OnRoaXMuc2VsZWN0aW9uU3RhcnQsZW5kOnRoaXMuY3Vyc29yUG9zfX19LHtrZXk6InVwZGF0ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWFza2VkLnZhbHVlPXRoaXMuZWwudmFsdWUsdGhpcy5fdmFsdWU9dGhpcy5tYXNrZWQudmFsdWV9fSx7a2V5OiJ1cGRhdGVDb250cm9sIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMubWFza2VkLnVubWFza2VkVmFsdWUsZT10aGlzLm1hc2tlZC52YWx1ZSxuPXRoaXMudW5tYXNrZWRWYWx1ZSE9PXR8fHRoaXMudmFsdWUhPT1lO3RoaXMuX3VubWFza2VkVmFsdWU9dCx0aGlzLl92YWx1ZT1lLHRoaXMuZWwudmFsdWUhPT1lJiYodGhpcy5lbC52YWx1ZT1lKSxuJiZ0aGlzLl9maXJlQ2hhbmdlRXZlbnRzKCl9fSx7a2V5OiJ1cGRhdGVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10Lm1hc2ssbj1qcih0LEF1KSxpPSF0aGlzLm1hc2tFcXVhbHMoZSkscj0hdHUodGhpcy5tYXNrZWQsbik7aSYmKHRoaXMubWFzaz1lKSxyJiZ0aGlzLm1hc2tlZC51cGRhdGVPcHRpb25zKG4pLChpfHxyKSYmdGhpcy51cGRhdGVDb250cm9sKCl9fSx7a2V5OiJ1cGRhdGVDdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKHQpe251bGwhPXQmJih0aGlzLmN1cnNvclBvcz10LHRoaXMuX2RlbGF5VXBkYXRlQ3Vyc29yKHQpKX19LHtrZXk6Il9kZWxheVVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9hYm9ydFVwZGF0ZUN1cnNvcigpLHRoaXMuX2NoYW5naW5nQ3Vyc29yUG9zPXQsdGhpcy5fY3Vyc29yQ2hhbmdpbmc9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLmVsJiYoZS5jdXJzb3JQb3M9ZS5fY2hhbmdpbmdDdXJzb3JQb3MsZS5fYWJvcnRVcGRhdGVDdXJzb3IoKSl9KSwxMCl9fSx7a2V5OiJfZmlyZUNoYW5nZUV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9maXJlRXZlbnQoImFjY2VwdCIsdGhpcy5faW5wdXRFdmVudCksdGhpcy5tYXNrZWQuaXNDb21wbGV0ZSYmdGhpcy5fZmlyZUV2ZW50KCJjb21wbGV0ZSIsdGhpcy5faW5wdXRFdmVudCl9fSx7a2V5OiJfYWJvcnRVcGRhdGVDdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fY3Vyc29yQ2hhbmdpbmcmJihjbGVhclRpbWVvdXQodGhpcy5fY3Vyc29yQ2hhbmdpbmcpLGRlbGV0ZSB0aGlzLl9jdXJzb3JDaGFuZ2luZyl9fSx7a2V5OiJhbGlnbkN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmN1cnNvclBvcz10aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKHRoaXMuY3Vyc29yUG9zLEtyKSl9fSx7a2V5OiJhbGlnbkN1cnNvckZyaWVuZGx5Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uU3RhcnQ9PT10aGlzLmN1cnNvclBvcyYmdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2xpc3RlbmVyc1t0XXx8KHRoaXMuX2xpc3RlbmVyc1t0XT1bXSksdGhpcy5fbGlzdGVuZXJzW3RdLnB1c2goZSksdGhpc319LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy5fbGlzdGVuZXJzW3RdKXJldHVybiB0aGlzO2lmKCFlKXJldHVybiBkZWxldGUgdGhpcy5fbGlzdGVuZXJzW3RdLHRoaXM7dmFyIG49dGhpcy5fbGlzdGVuZXJzW3RdLmluZGV4T2YoZSk7cmV0dXJuIG4+PTAmJnRoaXMuX2xpc3RlbmVyc1t0XS5zcGxpY2UobiwxKSx0aGlzfX0se2tleToiX29uSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lucHV0RXZlbnQ9dCx0aGlzLl9hYm9ydFVwZGF0ZUN1cnNvcigpLCF0aGlzLl9zZWxlY3Rpb24pcmV0dXJuIHRoaXMudXBkYXRlVmFsdWUoKTt2YXIgZT1uZXcgZXUodGhpcy5lbC52YWx1ZSx0aGlzLmN1cnNvclBvcyx0aGlzLnZhbHVlLHRoaXMuX3NlbGVjdGlvbiksbj10aGlzLm1hc2tlZC5yYXdJbnB1dFZhbHVlLGk9dGhpcy5tYXNrZWQuc3BsaWNlKGUuc3RhcnRDaGFuZ2VQb3MsZS5yZW1vdmVkLmxlbmd0aCxlLmluc2VydGVkLGUucmVtb3ZlRGlyZWN0aW9uKS5vZmZzZXQscj1uPT09dGhpcy5tYXNrZWQucmF3SW5wdXRWYWx1ZT9lLnJlbW92ZURpcmVjdGlvbjpHcix1PXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyhlLnN0YXJ0Q2hhbmdlUG9zK2kscik7ciE9PUdyJiYodT10aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModSxHcikpLHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMudXBkYXRlQ3Vyc29yKHUpLGRlbGV0ZSB0aGlzLl9pbnB1dEV2ZW50fX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmFsdWUhPT10aGlzLmVsLnZhbHVlJiZ0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5tYXNrZWQuZG9Db21taXQoKSx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLl9zYXZlU2VsZWN0aW9uKCl9fSx7a2V5OiJfb25Ecm9wIix2YWx1ZTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LHtrZXk6Il9vbkZvY3VzIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkoKX19LHtrZXk6Il9vbkNsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fdW5iaW5kRXZlbnRzKCksdGhpcy5fbGlzdGVuZXJzLmxlbmd0aD0wLGRlbGV0ZSB0aGlzLmVsfX1dKSx0fSgpO2l1LklucHV0TWFzaz1DdTt2YXIgRXU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QuZW51bSYmKHQubWFzaz0iKiIucmVwZWF0KHQuZW51bVswXS5sZW5ndGgpKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcyxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuZW51bS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRleE9mKGUudW5tYXNrZWRWYWx1ZSk+PTB9KSkmJih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKX19XSksbn0oZ3UpO2l1Lk1hc2tlZEVudW09RXU7dmFyIEZ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXtyZXR1cm4geHIodGhpcyxuKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSx0aGlzLl91cGRhdGVSZWdFeHBzKCl9fSx7a2V5OiJfdXBkYXRlUmVnRXhwcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0iXiIrKHRoaXMuYWxsb3dOZWdhdGl2ZT8iWyt8XFwtXT8iOiIiKSxlPSh0aGlzLnNjYWxlPyIoIitKcih0aGlzLnJhZGl4KSsiXFxkezAsIit0aGlzLnNjYWxlKyJ9KT8iOiIiKSsiJCI7dGhpcy5fbnVtYmVyUmVnRXhwSW5wdXQ9bmV3IFJlZ0V4cCh0KyIoMHwoWzEtOV0rXFxkKikpPyIrZSksdGhpcy5fbnVtYmVyUmVnRXhwPW5ldyBSZWdFeHAodCsiXFxkKiIrZSksdGhpcy5fbWFwVG9SYWRpeFJlZ0V4cD1uZXcgUmVnRXhwKCJbIit0aGlzLm1hcFRvUmFkaXgubWFwKEpyKS5qb2luKCIiKSsiXSIsImciKSx0aGlzLl90aG91c2FuZHNTZXBhcmF0b3JSZWdFeHA9bmV3IFJlZ0V4cChKcih0aGlzLnRob3VzYW5kc1NlcGFyYXRvciksImciKX19LHtrZXk6Il9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvclJlZ0V4cCwiIil9fSx7a2V5OiJfaW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZVswXT1lWzBdLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpLGUuam9pbih0aGlzLnJhZGl4KX19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU7dD10LnJlcGxhY2UodGhpcy5fbWFwVG9SYWRpeFJlZ0V4cCx0aGlzLnJhZGl4KTtmb3IodmFyIGk9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KSxyPWFyZ3VtZW50cy5sZW5ndGgsdT1uZXcgQXJyYXkocj4xP3ItMTowKSxzPTE7czxyO3MrKyl1W3MtMV09YXJndW1lbnRzW3NdO3ZhciBhPVFyKChlPU5yKFRyKG4ucHJvdG90eXBlKSwiZG9QcmVwYXJlIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzLGldLmNvbmNhdCh1KSkpLG89cXIoYSwyKSxsPW9bMF0saD1vWzFdO3JldHVybiB0JiYhaSYmKGguc2tpcD0hMCksW2wsaF19fSx7a2V5OiJfc2VwYXJhdG9yc0NvdW50Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxuPTAsaT0wO2k8dDsrK2kpdGhpcy5fdmFsdWUuaW5kZXhPZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcixpKT09PWkmJigrK24sZSYmKHQrPXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCkpO3JldHVybiBufX0se2tleToiX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fdmFsdWU7cmV0dXJuIHRoaXMuX3NlcGFyYXRvcnNDb3VudCh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLmxlbmd0aCwhMCl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMCxyPXRoaXMuX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnModCxlKSx1PXFyKHIsMik7cmV0dXJuIHQ9dVswXSxlPXVbMV0sdGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyhOcihUcihuLnByb3RvdHlwZSksImV4dHJhY3RJbnB1dCIsdGhpcykuY2FsbCh0aGlzLHQsZSxpKSl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O2lmKCF0aGlzLnRob3VzYW5kc1NlcGFyYXRvcilyZXR1cm4gTnIoVHIobi5wcm90b3R5cGUpLCJfYXBwZW5kQ2hhclJhdyIsdGhpcykuY2FsbCh0aGlzLHQsZSk7dmFyIGk9ZS50YWlsJiZlLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLl92YWx1ZSxyPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShpKTt0aGlzLl92YWx1ZT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMudmFsdWUpO3ZhciB1PU5yKFRyKG4ucHJvdG90eXBlKSwiX2FwcGVuZENoYXJSYXciLHRoaXMpLmNhbGwodGhpcyx0LGUpO3RoaXMuX3ZhbHVlPXRoaXMuX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnModGhpcy5fdmFsdWUpO3ZhciBzPWUudGFpbCYmZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fdmFsdWU6dGhpcy5fdmFsdWUsYT10aGlzLl9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2Uocyk7cmV0dXJuIHUudGFpbFNoaWZ0Kz0oYS1yKSp0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgsdS5za2lwPSF1LnJhd0luc2VydGVkJiZ0PT09dGhpcy50aG91c2FuZHNTZXBhcmF0b3IsdX19LHtrZXk6Il9maW5kU2VwYXJhdG9yQXJvdW5kIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcil7dmFyIGU9dC10aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgrMSxuPXRoaXMudmFsdWUuaW5kZXhPZih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcixlKTtpZihuPD10KXJldHVybiBufXJldHVybi0xfX0se2tleToiX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZCh0KTtuPj0wJiYodD1uKTt2YXIgaT10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKGUpO3JldHVybiBpPj0wJiYoZT1pK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCksW3QsZV19fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj10aGlzLl9hZGp1c3RSYW5nZVdpdGhTZXBhcmF0b3JzKHQsZSksaT1xcihuLDIpO3Q9aVswXSxlPWlbMV07dmFyIHI9dGhpcy52YWx1ZS5zbGljZSgwLHQpLHU9dGhpcy52YWx1ZS5zbGljZShlKSxzPXRoaXMuX3NlcGFyYXRvcnNDb3VudChyLmxlbmd0aCk7dGhpcy5fdmFsdWU9dGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHIrdSkpO3ZhciBhPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShyKTtyZXR1cm4gbmV3IFlyKHt0YWlsU2hpZnQ6KGEtcykqdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RofSl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXJldHVybiB0O3N3aXRjaChlKXtjYXNlIEdyOmNhc2UgS3I6Y2FzZSAkcjp2YXIgbj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQtMSk7aWYobj49MCl7dmFyIGk9bit0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGg7aWYodDxpfHx0aGlzLnZhbHVlLmxlbmd0aDw9aXx8ZT09PSRyKXJldHVybiBufWJyZWFrO2Nhc2UgV3I6Y2FzZSBYcjp2YXIgcj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQpO2lmKHI+PTApcmV0dXJuIHIrdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RofXJldHVybiB0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9KHQuaW5wdXQ\/dGhpcy5fbnVtYmVyUmVnRXhwSW5wdXQ6dGhpcy5fbnVtYmVyUmVnRXhwKS50ZXN0KHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy52YWx1ZSkpO2lmKGUpe3ZhciBpPXRoaXMubnVtYmVyO2U9ZSYmIWlzTmFOKGkpJiYobnVsbD09dGhpcy5taW58fHRoaXMubWluPj0wfHx0aGlzLm1pbjw9dGhpcy5udW1iZXIpJiYobnVsbD09dGhpcy5tYXh8fHRoaXMubWF4PD0wfHx0aGlzLm51bWJlcjw9dGhpcy5tYXgpfXJldHVybiBlJiZOcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMudmFsdWUpe3ZhciB0PXRoaXMubnVtYmVyLGU9dDtudWxsIT10aGlzLm1pbiYmKGU9TWF0aC5tYXgoZSx0aGlzLm1pbikpLG51bGwhPXRoaXMubWF4JiYoZT1NYXRoLm1pbihlLHRoaXMubWF4KSksZSE9PXQmJih0aGlzLnVubWFza2VkVmFsdWU9U3RyaW5nKGUpKTt2YXIgaT10aGlzLnZhbHVlO3RoaXMubm9ybWFsaXplWmVyb3MmJihpPXRoaXMuX25vcm1hbGl6ZVplcm9zKGkpKSx0aGlzLnBhZEZyYWN0aW9uYWxaZXJvcyYmdGhpcy5zY2FsZT4wJiYoaT10aGlzLl9wYWRGcmFjdGlvbmFsWmVyb3MoaSkpLHRoaXMuX3ZhbHVlPWl9TnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Il9ub3JtYWxpemVaZXJvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KS5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZVswXT1lWzBdLnJlcGxhY2UoL14oXEQqKSgwKikoXGQqKS8sKGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBlK2l9KSksdC5sZW5ndGgmJiEvXGQkLy50ZXN0KGVbMF0pJiYoZVswXT1lWzBdKyIwIiksZS5sZW5ndGg+MSYmKGVbMV09ZVsxXS5yZXBsYWNlKC8wKiQvLCIiKSxlWzFdLmxlbmd0aHx8KGUubGVuZ3RoPTEpKSx0aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKGUuam9pbih0aGlzLnJhZGl4KSl9fSx7a2V5OiJfcGFkRnJhY3Rpb25hbFplcm9zIix2YWx1ZTpmdW5jdGlvbih0KXtpZighdClyZXR1cm4gdDt2YXIgZT10LnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlLmxlbmd0aDwyJiZlLnB1c2goIiIpLGVbMV09ZVsxXS5wYWRFbmQodGhpcy5zY2FsZSwiMCIpLGUuam9pbih0aGlzLnJhZGl4KX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX25vcm1hbGl6ZVplcm9zKHRoaXMudmFsdWUpKS5yZXBsYWNlKHRoaXMucmFkaXgsIi4iKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdC5yZXBsYWNlKCIuIix0aGlzLnJhZGl4KSx0aGlzLCEwKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiBOdW1iZXIodGhpcy51bm1hc2tlZFZhbHVlKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsU3RyaW5nKHQpLHRoaXMsITApfX0se2tleToibnVtYmVyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50eXBlZFZhbHVlPXR9fSx7a2V5OiJhbGxvd05lZ2F0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaWduZWR8fG51bGwhPXRoaXMubWluJiZ0aGlzLm1pbjwwfHxudWxsIT10aGlzLm1heCYmdGhpcy5tYXg8MH19XSksbn0ocnUpO0Z1LkRFRkFVTFRTPXtyYWRpeDoiLCIsdGhvdXNhbmRzU2VwYXJhdG9yOiIiLG1hcFRvUmFkaXg6WyIuIl0sc2NhbGU6MixzaWduZWQ6ITEsbm9ybWFsaXplWmVyb3M6ITAscGFkRnJhY3Rpb25hbFplcm9zOiExfSxpdS5NYXNrZWROdW1iZXI9RnU7dmFyIFN1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2smJih0LnZhbGlkYXRlPXQubWFzayksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLG59KHJ1KTtpdS5NYXNrZWRGdW5jdGlvbj1TdTt2YXIgd3U9WyJjb21waWxlZE1hc2tzIiwiY3VycmVudE1hc2tSZWYiLCJjdXJyZW50TWFzayJdLEJ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXt2YXIgaTtyZXR1cm4geHIodGhpcyxuKSwoaT1lLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpKS5jdXJyZW50TWFzaz1udWxsLGl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe05yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLCJtYXNrImluIHQmJih0aGlzLmNvbXBpbGVkTWFza3M9QXJyYXkuaXNBcnJheSh0Lm1hc2spP3QubWFzay5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBzdSh0KX0pKTpbXSl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49dGhpcy5fYXBwbHlEaXNwYXRjaCh0LGUpO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrJiZuLmFnZ3JlZ2F0ZSh0aGlzLmN1cnJlbnRNYXNrLl9hcHBlbmRDaGFyKHQsZSkpLG59fSx7a2V5OiJfYXBwbHlEaXNwYXRjaCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1lLnRhaWwmJm51bGwhPWUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMudmFsdWUsaT10aGlzLnJhd0lucHV0VmFsdWUscj1lLnRhaWwmJm51bGwhPWUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3Jhd0lucHV0VmFsdWU6aSx1PWkuc2xpY2Uoci5sZW5ndGgpLHM9dGhpcy5jdXJyZW50TWFzayxhPW5ldyBZcixvPXMmJnMuc3RhdGU7aWYodGhpcy5jdXJyZW50TWFzaz10aGlzLmRvRGlzcGF0Y2godCxPYmplY3QuYXNzaWduKHt9LGUpKSx0aGlzLmN1cnJlbnRNYXNrKWlmKHRoaXMuY3VycmVudE1hc2shPT1zKXtpZih0aGlzLmN1cnJlbnRNYXNrLnJlc2V0KCkscil7dmFyIGw9dGhpcy5jdXJyZW50TWFzay5hcHBlbmQocix7cmF3OiEwfSk7YS50YWlsU2hpZnQ9bC5pbnNlcnRlZC5sZW5ndGgtbi5sZW5ndGh9dSYmKGEudGFpbFNoaWZ0Kz10aGlzLmN1cnJlbnRNYXNrLmFwcGVuZCh1LHtyYXc6ITAsdGFpbDohMH0pLnRhaWxTaGlmdCl9ZWxzZSB0aGlzLmN1cnJlbnRNYXNrLnN0YXRlPW87cmV0dXJuIGF9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYXBwbHlEaXNwYXRjaC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJnQuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZFBsYWNlaG9sZGVyKCkpLHR9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYXBwbHlEaXNwYXRjaC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJnQuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZEVhZ2VyKCkpLHR9fSx7a2V5OiJkb0Rpc3BhdGNoIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIHRoaXMuZGlzcGF0Y2godCx0aGlzLGUpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpJiYoIXRoaXMuY3VycmVudE1hc2t8fChlPXRoaXMuY3VycmVudE1hc2spLmRvVmFsaWRhdGUuYXBwbHkoZSxyKSl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtudWxsPT09KHQ9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PXR8fHQucmVzZXQoKSx0aGlzLmNvbXBpbGVkTWFza3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVzZXQoKX0pKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLnZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ2YWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudW5tYXNrZWRWYWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudHlwZWRWYWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyh0KTt0aGlzLmN1cnJlbnRNYXNrJiYodGhpcy5jdXJyZW50TWFzay50eXBlZFZhbHVlPXQsZT10aGlzLmN1cnJlbnRNYXNrLnVubWFza2VkVmFsdWUpLHRoaXMudW5tYXNrZWRWYWx1ZT1lfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEJvb2xlYW4obnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmlzQ29tcGxldGUpfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3JldHVybiBCb29sZWFuKG51bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pc0ZpbGxlZCl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT1uZXcgWXI7dGhpcy5jdXJyZW50TWFzayYmZS5hZ2dyZWdhdGUoKHQ9dGhpcy5jdXJyZW50TWFzaykucmVtb3ZlLmFwcGx5KHQsYXJndW1lbnRzKSkuYWdncmVnYXRlKHRoaXMuX2FwcGx5RGlzcGF0Y2goKSk7cmV0dXJuIGV9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTnIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsdGhpcykse19yYXdJbnB1dFZhbHVlOnRoaXMucmF3SW5wdXRWYWx1ZSxjb21waWxlZE1hc2tzOnRoaXMuY29tcGlsZWRNYXNrcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpLGN1cnJlbnRNYXNrUmVmOnRoaXMuY3VycmVudE1hc2ssY3VycmVudE1hc2s6dGhpcy5jdXJyZW50TWFzayYmdGhpcy5jdXJyZW50TWFzay5zdGF0ZX0pfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5jb21waWxlZE1hc2tzLGk9dC5jdXJyZW50TWFza1JlZixyPXQuY3VycmVudE1hc2ssdT1qcih0LHd1KTt0aGlzLmNvbXBpbGVkTWFza3MuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5zdGF0ZT1lW25dfSkpLG51bGwhPWkmJih0aGlzLmN1cnJlbnRNYXNrPWksdGhpcy5jdXJyZW50TWFzay5zdGF0ZT1yKSx6cihUcihuLnByb3RvdHlwZSksInN0YXRlIix1LHRoaXMsITApfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybiB0aGlzLmN1cnJlbnRNYXNrPyh0PXRoaXMuY3VycmVudE1hc2spLmV4dHJhY3RJbnB1dC5hcHBseSh0LGFyZ3VtZW50cyk6IiJ9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykuZXh0cmFjdFRhaWwuYXBwbHkodCxyKTooZT1OcihUcihuLnByb3RvdHlwZSksImV4dHJhY3RUYWlsIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQocikpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50TWFzayYmdGhpcy5jdXJyZW50TWFzay5kb0NvbW1pdCgpLE5yKFRyKG4ucHJvdG90eXBlKSwiZG9Db21taXQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrPyh0PXRoaXMuY3VycmVudE1hc2spLm5lYXJlc3RJbnB1dFBvcy5hcHBseSh0LHIpOihlPU5yKFRyKG4ucHJvdG90eXBlKSwibmVhcmVzdElucHV0UG9zIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQocikpfX0se2tleToib3ZlcndyaXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLm92ZXJ3cml0ZTpOcihUcihuLnByb3RvdHlwZSksIm92ZXJ3cml0ZSIsdGhpcyl9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oJyJvdmVyd3JpdGUiIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIGR5bmFtaWMgbWFzaywgdXNlIHRoaXMgb3B0aW9uIGluIHNpYmxpbmdzJyl9fSx7a2V5OiJlYWdlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay5lYWdlcjpOcihUcihuLnByb3RvdHlwZSksImVhZ2VyIix0aGlzKX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybignImVhZ2VyIiBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiBkeW5hbWljIG1hc2ssIHVzZSB0aGlzIG9wdGlvbiBpbiBzaWJsaW5ncycpfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJnRoaXMuY29tcGlsZWRNYXNrcy5ldmVyeSgoZnVuY3Rpb24oZSxuKXt2YXIgaTtyZXR1cm4gZS5tYXNrRXF1YWxzKG51bGw9PT0oaT10W25dKXx8dm9pZCAwPT09aT92b2lkIDA6aS5tYXNrKX0pKX19XSksbn0ocnUpO0J1LkRFRkFVTFRTPXtkaXNwYXRjaDpmdW5jdGlvbih0LGUsbil7aWYoZS5jb21waWxlZE1hc2tzLmxlbmd0aCl7dmFyIGk9ZS5yYXdJbnB1dFZhbHVlLHI9ZS5jb21waWxlZE1hc2tzLm1hcCgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZS5yZXNldCgpLGUuYXBwZW5kKGkse3JhdzohMH0pLGUuYXBwZW5kKHQsbikse3dlaWdodDplLnJhd0lucHV0VmFsdWUubGVuZ3RoLGluZGV4OnJ9fSkpO3JldHVybiByLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUud2VpZ2h0LXQud2VpZ2h0fSkpLGUuY29tcGlsZWRNYXNrc1tyWzBdLmluZGV4XX19fSxpdS5NYXNrZWREeW5hbWljPUJ1O3ZhciBEdT17TUFTS0VEOiJ2YWx1ZSIsVU5NQVNLRUQ6InVubWFza2VkVmFsdWUiLFRZUEVEOiJ0eXBlZFZhbHVlIn07ZnVuY3Rpb24geHUodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkR1Lk1BU0tFRCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpEdS5NQVNLRUQsaT1zdSh0KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkucnVuSXNvbGF0ZWQoKGZ1bmN0aW9uKGkpe3JldHVybiBpW2VdPXQsaVtuXX0pKX19ZnVuY3Rpb24gTXUodCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyluW2ktMV09YXJndW1lbnRzW2ldO3JldHVybiB4dS5hcHBseSh2b2lkIDAsbikodCl9aXUuUElQRV9UWVBFPUR1LGl1LmNyZWF0ZVBpcGU9eHUsaXUucGlwZT1NdTt0cnl7Z2xvYmFsVGhpcy5JTWFzaz1pdX1jYXRjaCh0KXt9dC5IVE1MQ29udGVudGVkaXRhYmxlTWFza0VsZW1lbnQ9X3UsdC5IVE1MTWFza0VsZW1lbnQ9YnUsdC5JbnB1dE1hc2s9Q3UsdC5NYXNrRWxlbWVudD1tdSx0Lk1hc2tlZD1ydSx0Lk1hc2tlZERhdGU9eXUsdC5NYXNrZWREeW5hbWljPUJ1LHQuTWFza2VkRW51bT1FdSx0Lk1hc2tlZEZ1bmN0aW9uPVN1LHQuTWFza2VkTnVtYmVyPUZ1LHQuTWFza2VkUGF0dGVybj1ndSx0Lk1hc2tlZFJhbmdlPWt1LHQuTWFza2VkUmVnRXhwPWR1LHQuUElQRV9UWVBFPUR1LHQuY3JlYXRlTWFzaz1zdSx0LmNyZWF0ZVBpcGU9eHUsdC5kZWZhdWx0PWl1LHQucGlwZT1NdSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFzay5taW4uanMubWFwOwovKiogL2pzL3ZhbmlsbGFqcy9mb3JtLmpzICoqLwp2YXIgX19fZDJjX2Zvcm1qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjIwIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19mb3JtanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMzowOSI7InVzZSBzdHJpY3QiO19fX2QyY19mb3JtanNfY19vbj0iMjAyMy0wNC0yNyAxMDozMDo0OSI7InVzZSBzdHJpY3QiOwpjb25zdCBGb3JtPWZ1bmN0aW9uKCl7dGhpcy5NQVNLUz17cGhvbmU6IjAwMCAwMDAtMDAwMCIsc2luOiIwMDAgMDAwIDAwMCIscG9zdGFsQ29kZToiYTBhIDBhMCJ9O3RoaXMubWFzaz0oYSxiKT0+e2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChhKTthLmxlbmd0aCYmYS5mb3JFYWNoKGM9PntJTWFzayhjLGIpfSl9O3RoaXMubWFza051bWJlcj0oYSxiKT0+e2xldCBjPXttYXNrOk51bWJlcixtaW46MH07YiYmKGMubWF4PWIpO3RoaXMubWFzayhhLGMpfTt0aGlzLm1hc2tQaG9uZT1hPT57dGhpcy5tYXNrKGEse21hc2s6W3ttYXNrOnRoaXMuTUFTS1MucGhvbmV9LHttYXNrOmAxICR7dGhpcy5NQVNLUy5waG9uZX1gfV19KX07dGhpcy5tYXNrUG9zdGFsQ29kZT1hPT57dGhpcy5tYXNrKGEse21hc2s6dGhpcy5NQVNLUy5wb3N0YWxDb2RlLHByZXBhcmU6Yj0+Yi50b1VwcGVyQ2FzZSgpfSl9fTsKLyoqIC9qcy9tYWlsUXVpY2tFbWFpbFdpZGdldC5qcyAqKi8KdmFyIF9fX2QyY19tYWlsUXVpY2tFbWFpbFdpZGdldGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6NTIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX21haWxRdWlja0VtYWlsV2lkZ2V0anNfY19vbj0iMjAyNC0wMy0yNSAxMjozMzo0MiI7InVzZSBzdHJpY3QiOwp2YXIgbWFpbFF1aWNrRW1haWw9ZnVuY3Rpb24oKXt2YXIgYT17bmFtZToiIixlbWFpbDoiIixtZXNzYWdlOiIiLHBob25lOiIiLG1ha2U6IiIsbW9kZWw6IiIseWVhcjoiIixzdG9ja051bWJlcjoiIixkZXBhcnRtZW50OiIiLHNlbGVjdG9yOiIuZGVmYXVsdCIsc2NvcGU6bnVsbCxhc3NpZ25WYWx1ZXM6ZnVuY3Rpb24oKXthLm5hbWU9JCgiI3F1aWNrRW1haWxOYW1lIixhLnNjb3BlKS52YWwoKTthLmVtYWlsPSQoIiNxdWlja0VtYWlsQWRkciIsYS5zY29wZSkudmFsKCk7YS5waG9uZT0kKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCk7YS5tZXNzYWdlPSQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS52YWwoKTthLmRlcGFydG1lbnQ9JCgiI3F1aWNrRW1haWxEZXBhcnRtZW50IixhLnNjb3BlKS52YWwoKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEubmFtZXx8bnVsbD09YS5uYW1lKWEubmFtZT0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEuZW1haWx8fG51bGw9PWEuZW1haWwpYS5lbWFpbD0KIiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLnBob25lfHxudWxsPT1hLnBob25lKWEucGhvbmU9IiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLm1lc3NhZ2V8fG51bGw9PWEubWVzc2FnZSlhLm1lc3NhZ2U9IiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLmRlcGFydG1lbnR8fG51bGw9PWEuZGVwYXJ0bWVudClhLmRlcGFydG1lbnQ9IiI7dmFyIGI9ZDJjbWVkaWEuaHRtbEZpbGUoKTswPGxvY2F0aW9uLmhyZWYuaW5kZXhPZigiLSIpJiYoYj1iLnNwbGl0KCItIiksMDxiLmxlbmd0aCYmKGEubWFrZT1iWzBdLnJlcGxhY2UoIl8iLCItIikpLDE8Yi5sZW5ndGgmJihhLm1vZGVsPWJbMV0ucmVwbGFjZSgiXyIsIi0iKSksMjxiLmxlbmd0aCYmKGEueWVhcj1iWzJdKSwzPGIubGVuZ3RoJiYoYS5zdG9ja051bWJlcj1iWzNdLnJlcGxhY2UoImlkIiwiIikpLDA8JCgiI2V4cHJlc3NzdG9ja251bWJlciIsYS5zY29wZSkubGVuZ3RoJiYyPCQoIiNleHByZXNzc3RvY2tudW1iZXIiLGEuc2NvcGUpLnZhbCgpLmxlbmd0aCYmCihhLnN0b2NrTnVtYmVyPSQoIiNleHByZXNzc3RvY2tudW1iZXIiLGEuc2NvcGUpLnZhbCgpKSwwPGEubW9kZWwubGVuZ3RoJiYwPT1hLnllYXIubGVuZ3RoJiYhaXNOYU4oYS5tb2RlbCkmJjE5ODA8YS5tb2RlbCYmMjEwMD5hLm1vZGVsJiYoYS55ZWFyPXNlYXJjaENyaXRlcmlhLm1vZGVsLGEubW9kZWw9IiIpKTsidW5kZWZpbmVkIj09dHlwZW9mIGEubWFrZSYmKGEubWFrZT0iIik7InVuZGVmaW5lZCI9PXR5cGVvZiBhLm1vZGVsJiYoYS5tb2RlbD0iIik7InVuZGVmaW5lZCI9PXR5cGVvZiBhLnllYXImJihhLnllYXI9IiIpOyJ1bmRlZmluZWQiPT10eXBlb2YgYS5tZXNzYWdlJiYoYS5tZXNzYWdlPSIiKX0sYXBwbHlQaG9uZVdNOmZ1bmN0aW9uKCl7IiggICApICAgIC0gICAgIiE9JCgiI3F1aWNrRW1haWxUZWwiLGEuc2NvcGUpLnZhbCgpJiYiIiE9JCgiI3F1aWNrRW1haWxUZWwiLGEuc2NvcGUpLnZhbCgpfHwkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkudmFsKCIiKX0saW5pdDpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT0KdHlwZW9mICQoIiNjb3Vwb25EZWZhdWx0TXNnIikudmFsKCkmJjA8JCgiI2NvdXBvbkRlZmF1bHRNc2ciKS52YWwoKS5sZW5ndGgmJigkKCIjcXVpY2tFbWFpbE1zZyIsYS5zY29wZSkuY3NzKCJoZWlnaHQiLCI1MHB4IiksJCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLmF0dHIoInJvd3MiLDIpLCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS52YWwoJCgiI2NvdXBvbkRlZmF1bHRNc2ciKS52YWwoKSkpOyQoIi5zZW5kUXVpY2tFbWFpbCIsYS5zY29wZSkub24oImNsaWNrIixhLnNhdmUpOyhuZXcgRm9ybSkubWFza1Bob25lKCIjcXVpY2tFbWFpbFRlbCIpOyQoIiNxdWlja0VtYWlsVGVsIikub24oImJsdXIiLGZ1bmN0aW9uKCl7YS5zZXRTZWxlY3Rvcih0aGlzKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5hcHBseVBob25lV00oKX0sMjUwKX0pfSxyZXNldFdhdGVybWFya3NDb2xvcnM6ZnVuY3Rpb24oKXswPT1hLm5hbWUubGVuZ3RoJiYoJCgiI3F1aWNrRW1haWxOYW1lIixhLnNjb3BlKS5jc3MoImNvbG9yIiwKIiM1NzU3NTciKSwkKCIjcXVpY2tFbWFpbE5hbWUiLGEuc2NvcGUpLnZhbCgiIikpOzA9PWEuZW1haWwubGVuZ3RoJiYoJCgiI3F1aWNrRW1haWxBZGRyIixhLnNjb3BlKS5jc3MoImNvbG9yIiwiIzU3NTc1NyIpLCQoIiNxdWlja0VtYWlsQWRkciIsYS5zY29wZSkudmFsKCIiKSk7MD09YS5tZXNzYWdlLmxlbmd0aCYmKCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS5jc3MoImNvbG9yIiwiIzU3NTc1NyIpLCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS52YWwoIiIpKX0sc2V0U2VsZWN0b3I6ZnVuY3Rpb24oKXthLnNjb3BlPSQodGhpcykuY2xvc2VzdCgiZm9ybSIpO3JldHVybiBhLnNjb3BlfSxzYXZlOmZ1bmN0aW9uKGIpe2ImJmIucHJldmVudERlZmF1bHQoKTthLnNldFNlbGVjdG9yLmNhbGwodGhpcyk7MDwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmxlbmd0aCYmKCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikucGFyZW50KCkuaXMoImJvZHkiKXx8JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5hcHBlbmRUbygiYm9keSIpKTsKMDwkKCIjZW1haWxGYWlsTWVzc2FnZSIpLmxlbmd0aCYmKCQoIiNlbWFpbEZhaWxNZXNzYWdlIikucGFyZW50KCkuaXMoImJvZHkiKXx8JCgiI2VtYWlsRmFpbE1lc3NhZ2UiKS5hcHBlbmRUbygiYm9keSIpKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCkmJiJSZWJhdGVDb3Vwb25Qcm9tbyI9PSQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCkmJigkLnZhbGlkaXR5LnN0YXJ0KCksJCgiI3F1aWNrRW1haWxOYW1lIixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpLCQoIiNxdWlja0VtYWlsTXNnIixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpLCQoIiNxdWlja0VtYWlsQWRkciIsYS5zY29wZSkucmVxdWlyZSgpLnZhbGlkRW1haWxBZGRyZXNzKCksYj0kLnZhbGlkaXR5LmVuZCgpLCFiLnZhbGlkKSlyZXR1cm4gJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6NjAsCnRvcDoyMTQsd2lkdGg6MzAxfSksJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuc2hvdygpLCQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGMpeyQudmFsaWRpdHkuY2xlYXIoKTskKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCh0aGlzKS5vZmYoYyl9KSwhMTthLmFzc2lnblZhbHVlcygpO2I9ITA7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKTskKGEuc2NvcGUpLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7MDwkKCIjZXhwcmVzc1NlbGVjdFJlcXVpcmVkIixhLnNjb3BlKS5sZW5ndGgmJiIxIj09JCgiI2V4cHJlc3NTZWxlY3RSZXF1aXJlZCIsYS5zY29wZSkudmFsKCkmJiQoIiNxdWlja0VtYWlsRGVwYXJ0bWVudCIsYS5zY29wZSkucmVxdWlyZSgpLm5vbkh0bWwoKTswPCQoIiNleHByZXNzUGhvbmVSZXF1aXJlZCIsYS5zY29wZSkubGVuZ3RoJiYiMSI9PQokKCIjZXhwcmVzc1Bob25lUmVxdWlyZWQiLGEuc2NvcGUpLnZhbCgpJiYoJCgiI3F1aWNrRW1haWxUZWwiLGEuc2NvcGUpLmhhc0NsYXNzKCJyZXF1aXJlZCIpfHwkKCIjcXVpY2tFbWFpbFRlbCIsYS5zY29wZSkuYWRkQ2xhc3MoInJlcXVpcmVkIiksJCgiI3F1aWNrRW1haWxUZWwiLGEuc2NvcGUpLnJlcXVpcmUoKSk7JCgiI3F1aWNrRW1haWxOYW1lIixhLnNjb3BlKS5yZXF1aXJlKCkubm9uSHRtbCgpOyQoIiNxdWlja0VtYWlsVGVsIikudmFsaWRhdGVQaG9uZSgpOyQoIiNxdWlja0VtYWlsQWRkciIsYS5zY29wZSkucmVxdWlyZSgpLnZhbGlkRW1haWxBZGRyZXNzKCk7JCgiI3F1aWNrRW1haWxNc2ciLGEuc2NvcGUpLnJlcXVpcmUoKS5ub25IdG1sKCk7Yj0kLnZhbGlkaXR5LmVuZCgpOyhiPWIudmFsaWQpPygidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2F2ZU1haWxJRCIsYS5zY29wZSkudmFsKCkmJiIiIT0kKCIjdGV4dFNhdmVNYWlsSUQiLGEuc2NvcGUpLnZhbCgpP21haWxQYWdlLm1haWxJRD0KJCgiI3RleHRTYXZlTWFpbElEIixhLnNjb3BlKS52YWwoKTptYWlsUGFnZS5tYWlsSUQ9IlF1aWNrRW1haWwiLCJ1bmRlZmllbmQiIT10eXBlb2YgJCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpJiYiMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKSYmLTE9PWEuc2NvcGUuaGFzQ2xhc3MoIm1lbnUiKSYmKG1haWxQYWdlLm1haWxJRD0iUXVpY2tFbWFpbE5ld0ludmVudG9yeSIpLCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3ByaW50RmxhZyIsYS5zY29wZSkudmFsKCkmJiIxIj09JCgiI3ByaW50RmxhZyIsYS5zY29wZSkudmFsKCkmJiJ1bmRlZmluZWQiIT0kKCIjY291cG9uUHJpbnRVUkwiKS52YWwoKSYmLTE8JCgiI2NvdXBvblByaW50VVJMIikudmFsKCkuaW5kZXhPZigiLmh0bWwiKSYmKHByaW50Q291cG9uVXJsPSQoIiNjb3Vwb25QcmludFVSTCIpLnZhbCgpLHdpbmRvdy5vcGVuKHByaW50Q291cG9uVXJsLCJfYmxhbmsiKSksbWFpbFBhZ2UuanFTY29wZT1hLnNjb3BlLAptYWlsUGFnZS5zYXZlKCkpOigkKCIjcXVpY2tFbWFpbEZvcm0gLk1pc3NpbmdWYWxpZGF0aW9uTXNnIixhLnNjb3BlKS5zaG93KCksJCgiI3F1aWNrRW1haWxGb3JtIixhLnNjb3BlKS5vbigiY2xpY2siLGZ1bmN0aW9uKGMpeyQodGhpcykuZmluZCgiLk1pc3NpbmdWYWxpZGF0aW9uTXNnIikuaGlkZSgpOyQodGhpcykub2ZmKGMpfSkpO3JldHVybiExfSxpc0VtYWlsOmZ1bmN0aW9uKGIpe3JldHVybi9eKFthLXpBLVowLTlfListXSkrQCgoW2EtekEtWjAtOS1dKStcLikrKFthLXpBLVowLTldezIsNH0pKyQvLnRlc3QoYil9LHZhbGlkYXRlRW1haWw6ZnVuY3Rpb24oYil7dmFyIGM9ITE7JC5hamF4KHt0eXBlOiJHRVQiLHVybDoiL2FqYXgvdmFsaWRhdGVFbWFpbEFjY291bnQ\/d3N3aWR0aD0wJmVtYWlsPSIrYixhc3luYzohMSxzdWNjZXNzOmZ1bmN0aW9uKGQsZSxmKXsxPT1kJiYoYz0hMCl9fSk7cmV0dXJuIGN9LGdldFNlbmRUbzpmdW5jdGlvbigpe3ZhciBiPQokKCIjcXVpY2tFbWFpbERlcGFydG1lbnQiLGEuc2NvcGUpLnZhbCgpO3JldHVybiAkKCIjZXhwcmVzc0RlcGFydG1lbnRFbWFpbF8iK2IpLnZhbCgpfSxnZXRTZW5kVG9BZGY6ZnVuY3Rpb24oKXt2YXIgYj0kKCIjcXVpY2tFbWFpbERlcGFydG1lbnQiLGEuc2NvcGUpLnZhbCgpO3JldHVybiAkKCIjZXhwcmVzc0RlcGFydG1lbnRFbWFpbEFkZl8iK2IpLnZhbCgpfX07cmV0dXJuIGF9KCk7JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXttYWlsUXVpY2tFbWFpbC5zZXRTZWxlY3Rvci5jYWxsKCQoIiNxdWlja0VtYWlsRm9ybS5kZWZhdWx0IikpO21haWxRdWlja0VtYWlsLmluaXQoKTswPCQoIiNxdWlja0VtYWlsRm9ybS5tZW51IikubGVuZ3RoJiYobWFpbFF1aWNrRW1haWwuc2V0U2VsZWN0b3IuY2FsbCgkKCIjcXVpY2tFbWFpbEZvcm0ubWVudSIpKSxtYWlsUXVpY2tFbWFpbC5pbml0KCkpfSk7Ci8qKiAvanMvZ2VuZXJpY01haWwuanMgKiovCnZhciBfX19kMmNfZ2VuZXJpY01haWxqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjE1IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19nZW5lcmljTWFpbGpzX2Nfb249IjIwMjQtMTEtMjggMTA6MzA6MTEiOyJ1c2Ugc3RyaWN0IjsKR2VuZXJpY01haWw9ZnVuY3Rpb24odil7ZnVuY3Rpb24gbShjKXtjPWMudG9TdHJpbmcoKTtyZXR1cm4gYy5yZXBsYWNlKC88XC8\/W14+XSs+L2dpLCIiKX12YXIgYj10aGlzO2IubWFpbElEPXY7Yi5lbWFpbFNlbnQ9ZnVuY3Rpb24oYyl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcihiLm1haWxJRCk7Yz8oInVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsU2VudEhhbmRsZXImJihtYWlsU2VudEhhbmRsZXIudGltZW91dENhbGxiYWNrPWIubXNnU2VudEZpbmlzaGVkSGFuZGxlcixtYWlsU2VudEhhbmRsZXIuc2hvd1N1Y2Nlc3MoKSksYi5jbGVhckZvcm0oKSk6InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsU2VudEhhbmRsZXImJihtYWlsU2VudEhhbmRsZXIudGltZW91dENhbGxiYWNrPWIubXNnU2VudEZpbmlzaGVkSGFuZGxlcixtYWlsU2VudEhhbmRsZXIuc2hvd0ZhaWwoKSl9O2IuY2xlYXJGb3JtPWZ1bmN0aW9uKCl7dmFyIGM9Yi5qcVNjb3BlO2lmKCJ1bmRlZmluZWQiPT09CnR5cGVvZiBjfHwiIj09YylpZigkKCIuSW5uZXJCb3hMYXllciIpLmxlbmd0aCljPSIuSW5uZXJCb3hMYXllciI7ZWxzZSByZXR1cm47JCgiLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIGlucHV0LCAuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZXh0YXJlYSIsYykuZWFjaChmdW5jdGlvbigpeyQodGhpcykudmFsKCIiKTskKHRoaXMpLmF0dHIoInBsYWNlaG9sZGVyIiwkKHRoaXMpLmF0dHIoImFsdCIpKX0pOyQoIiNmb290ZXJEaXYgI2xlYWRTZW50IikucmVtb3ZlKCl9O2IubXNnU2VudEZpbmlzaGVkSGFuZGxlcj1mdW5jdGlvbigpe307Yi5iYW5kcExpbms9ZnVuY3Rpb24oYyl7cmV0dXJuIGVtYWlsSGFuZGxlci5iYW5kcExpbmsoYyl9O2Iuc2F2ZT1mdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoYyk7aWYoIWIuX3ZhbGlkYXRlRmllbGRzKCkpcmV0dXJuICQoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6JCgiLnZhbGlkaXR5LWVycm9uZW91czpmaXJzdCIpLm9mZnNldCgpLnRvcC0KMTAwfSwyRTMpLCExO2IucHJlcGFyZSgpO2VtYWlsSGFuZGxlci5zZW5kTWFpbCgpfTtiLnByZXBhcmU9ZnVuY3Rpb24oKXt2YXIgYz1mdW5jdGlvbihoKXt4PShoKyIiKS5zcGxpdCgiLiIpO3gxPXhbMF07eDI9MTx4Lmxlbmd0aD8iLiIreFsxXToiIjtmb3IoaD0vKFxkKykoXGR7M30pLztoLnRlc3QoeDEpOyl4MT14MS5yZXBsYWNlKGgsIiQxLCQyIik7cmV0dXJuIHgxK3gyfSxnPWIuanFTY29wZT9iLmpxU2NvcGU6Ii5Jbm5lckJveExheWVyIixrPSIiLGE9IiIsZT0iIixkPSIiLGY9IiI7az0wPCQoIiNlbWFpbFN1YmplY3REZWZfIitiLm1haWxJRCxnKS5sZW5ndGg\/JCgiI2VtYWlsU3ViamVjdERlZl8iK2IubWFpbElELGcpLnRleHQoKTowPCQoIiNlbWFpbFN1YmplY3REZWYiLGcpLmxlbmd0aD8kKCIjZW1haWxTdWJqZWN0RGVmIixnKS50ZXh0KCk6JCgiI2VtYWlsU3ViamVjdERlZiIpLnRleHQoKTthPTA8JCgiI2VtYWlsQm9keURlZl8iK2IubWFpbElELGcpLmxlbmd0aD8kKCIjZW1haWxCb2R5RGVmXyIrCmIubWFpbElELGcpLmh0bWwoKTokKCIjZW1haWxCb2R5RGVmIixnKS5sZW5ndGg\/JCgiI2VtYWlsQm9keURlZiIsZykuaHRtbCgpOiQoIiNlbWFpbEJvZHlEZWYiKS5odG1sKCk7dmFyIGw9InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjdGV4dElzRGVtbyIpLmF0dHIoImlkIikmJiIxIj09JCgiI3RleHRJc0RlbW8iKS52YWwoKT8hMDohMTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxRdWlja0VtYWlsJiZudWxsIT1tYWlsUXVpY2tFbWFpbCYmInN0cmluZyI9PT10eXBlb2YgbWFpbFF1aWNrRW1haWwubWVzc2FnZSYmKGVtYWlsSGFuZGxlci5jb21tZW50cz1tYWlsUXVpY2tFbWFpbC5tZXNzYWdlKTtzd2l0Y2goYi5tYWlsSUQpe2Nhc2UgIlF1aWNrRW1haWwiOmNhc2UgIlF1aWNrRW1haWxOZXdJbnZlbnRvcnkiOmNhc2UgIm1lbnVDb250YWN0VXMiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0icXVpY2tFbWFpbEZvcm0iO21haWxRdWlja0VtYWlsLmFzc2lnblZhbHVlcygpO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLApkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUXVpY2tFbWFpbC5uYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csbWFpbFF1aWNrRW1haWwuZW1haWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxRdWlja0VtYWlsLnBob25lKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLG1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO2E9YS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csbWFpbFF1aWNrRW1haWwubWFrZSkucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZyxtYWlsUXVpY2tFbWFpbC5tb2RlbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZyxtYWlsUXVpY2tFbWFpbC55ZWFyKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxtYWlsUXVpY2tFbWFpbC5zdG9ja051bWJlcik7YT1hLnJlcGxhY2UoL3tcJERFUEFSVE1FTlQyfS9nLG1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpO2E9YS5yZXBsYWNlKC9DaXR5Oi9nLCIiKTsidW5kZWZpbmVkIiE9CnR5cGVvZiBtYWlsUXVpY2tFbWFpbC5yb2FkVGVzdCYmbnVsbCE9bWFpbFF1aWNrRW1haWwucm9hZFRlc3QmJihhPWEucmVwbGFjZSgve1wkRU1BSUxST0FEVEVTVH0vZyxtYWlsUXVpY2tFbWFpbC5yb2FkVGVzdCkucmVwbGFjZSgve1wkRU1BSUxDQVJEfS9nLG1haWxRdWlja0VtYWlsLmdpZnRDYXJkKSk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsUXVpY2tFbWFpbC5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1tYWlsUXVpY2tFbWFpbC5uYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9bWFpbFF1aWNrRW1haWwucGhvbmU7ZT1tYWlsUXVpY2tFbWFpbC5tZXNzYWdlO2VtYWlsSGFuZGxlci50cmltPSQoIiNleHByZXNzY2FydHJpbSIpLnZhbCgpO2VtYWlsSGFuZGxlci52aW49JCgiI2V4cHJlc3NjYXJ2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI2V4cHJlc3NjYXJwcmljZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5tYWtlPSQoIiNleHByZXNzY2FybWFrZSIpLnZhbCgpOwplbWFpbEhhbmRsZXIubW9kZWw9JCgiI2V4cHJlc3NjYXJtb2RlbCIpLnZhbCgpO2VtYWlsSGFuZGxlci55ZWFyPSQoIiNleHByZXNzY2FyeWVhciIpLnZhbCgpO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj1tYWlsUXVpY2tFbWFpbC5zdG9ja051bWJlcjsidW5kZWZpbmVkIj09dHlwZW9mICQoIiNleHByZXNzY2FyaWQiKS5hdHRyKCJpZCIpP2VtYWlsSGFuZGxlci5jYXJpZD0iIjplbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2V4cHJlc3NjYXJpZCIpLnZhbCgpOyQoImlucHV0LmxhYmVsZW1haWwiKS52YWwoIkRlbWFuZGVzLUV4cHJlc3MiKTskKCJpbnB1dC5pc2V4cHJlc3MiKS52YWwoIjEiKTsidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaEVuZ2luZSYmKCQoImlucHV0LmJyYW5kZW1haWwiKS52YWwobWFpbFF1aWNrRW1haWwubWFrZSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbChtYWlsUXVpY2tFbWFpbC5tb2RlbCksJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKG1haWxRdWlja0VtYWlsLnllYXIpKTsKInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc2NhcmlkIikuYXR0cigiaWQiKT8wPCQoIiNleHByZXNzY2FyaWQiKS52YWwoKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVXNlZCI6ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0wPG1haWxRdWlja0VtYWlsLm1ha2UubGVuZ3RoPyJOZXciOiJVbmtub3duIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVbmtub3duIjsiIiE9PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQmJihlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD1tYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50KTtkPW1haWxRdWlja0VtYWlsLmdldFNlbmRUbygpO2Y9bWFpbFF1aWNrRW1haWwuZ2V0U2VuZFRvQWRmKCk7YnJlYWs7Y2FzZSAiUmViYXRlQ291cG9uUHJvbW8iOm1haWxRdWlja0VtYWlsLmFzc2lnblZhbHVlcygpO2U9bWFpbFF1aWNrRW1haWwubWVzc2FnZTthPWEucmVwbGFjZSgve1wkTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUXVpY2tFbWFpbC5uYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csCm1haWxRdWlja0VtYWlsLmVtYWlsKTthPWEucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZyxtYWlsUXVpY2tFbWFpbC5waG9uZSkucmVwbGFjZSgve1wkTUVTU0FHRX0vZyxtYWlsUXVpY2tFbWFpbC5tZXNzYWdlKTthPWEucmVwbGFjZSgve1wkQ09VUE9OTUFLRX0vZywkKCIjY291cG9ubWFrZSIpLnZhbCgpKS5yZXBsYWNlKC97XCRDT1VQT05NT0RFTH0vZywkKCIjY291cG9ubW9kZWwiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJENPVVBPTllFQVJ9L2csJCgiI2NvdXBvbnllYXIiKS52YWwoKSkucmVwbGFjZSgve1wkQ09VUE9OU1RPQ0tOVU1CRVJ9L2csJCgiI2NvdXBvbnN0b2NrbnVtYmVyIikudmFsKCkpO2E9YS5yZXBsYWNlKC97XCRDT1VQT05WQUxVRX0vZywkKCIjY291cG9uVmFsdWUiKS52YWwoKSsiJCIpLnJlcGxhY2UoL3tcJFBSSUNFfS9nLCQoIiN2ZWhpY2xlT3JpZ1ByaWNlIikudmFsKCkrIiQiKTtlbWFpbEhhbmRsZXIubWFrZT0kKCIjY291cG9ubWFrZSIpLnZhbCgpOwplbWFpbEhhbmRsZXIubW9kZWw9JCgiI2NvdXBvbm1vZGVsIikudmFsKCk7ZW1haWxIYW5kbGVyLnllYXI9JCgiI2NvdXBvbnllYXIiKS52YWwoKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxRdWlja0VtYWlsLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxRdWlja0VtYWlsLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUXVpY2tFbWFpbC5waG9uZTtlbWFpbEhhbmRsZXIudHJpbT0kKCIjY291cG9udmVoaWNsZXRyaW0iKS52YWwoKTtlbWFpbEhhbmRsZXIudmluPSQoIiNjb3Vwb252ZWhpY2xldmluIikudmFsKCk7ZW1haWxIYW5kbGVyLnByaWNlPSQoIiN2ZWhpY2xlT3JpZ1ByaWNlIikudmFsKCk7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPSQoIiNjb3Vwb25zdG9ja251bWJlciIpLnZhbCgpO2VtYWlsSGFuZGxlci5jYXJpZD0kKCIjY291cG9udmVoaWNsZWlkIikudmFsKCk7JCgiaW5wdXQubGFiZWxlbWFpbCIpLnZhbCgiUmViYXRlQ291cG9uUHJvbW8iKTsKInVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hFbmdpbmUmJigkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKCQoIiNjb3Vwb25tYWtlIikudmFsKCkpLCQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoJCgiI2NvdXBvbm1vZGVsIikudmFsKCkpLCQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgkKCIjY291cG9ueWVhciIpLnZhbCgpKSk7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVXNlZCI7Yi5lbWFpbFNlbnQ9ZnVuY3Rpb24oaCl7JCgiLmNsb3NlLXJldmVhbC1tb2RhbCIpLnRyaWdnZXIoImNsaWNrIil9O2JyZWFrO2Nhc2UgIkNhcnByb29mTWFpbCI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJjYXJwcm9vZk1haW5EaXYiO2s9JCgiI2VtYWlsU3ViamVjdERlZjIiKS50ZXh0KCk7YT0kKCIjZW1haWxCb2R5RGVmMiIpLmh0bWwoKTskKCJpbnB1dC5sYWJlbGVtYWlsIikudmFsKCJEZW1hbmRlcy1DYXJQcm9vZiIpOyQoImlucHV0LmlzZXhwcmVzcyIpLnZhbCgiMCIpOyQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLm1ha2UpOwokKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKGNhcnByb29mSGFuZGxlci5tb2RlbCk7JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKGNhcnByb29mSGFuZGxlci55ZWFyKTthPWEucmVwbGFjZSgve1wkTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChjYXJwcm9vZkhhbmRsZXIubmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLGNhcnByb29mSGFuZGxlci5lbWFpbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyxjYXJwcm9vZkhhbmRsZXIubWFrZSkucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZyxjYXJwcm9vZkhhbmRsZXIubW9kZWwpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZyxjYXJwcm9vZkhhbmRsZXIueWVhcik7YT1hLnJlcGxhY2UoL3tcJENPTE9SfS9nLGNhcnByb29mSGFuZGxlci5jb2xvcikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csY2FycHJvb2ZIYW5kbGVyLnN0b2NrTnVtYmVyKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLApjYXJwcm9vZkhhbmRsZXIucGhvbmUpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9Y2FycHJvb2ZIYW5kbGVyLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWNhcnByb29mSGFuZGxlci5uYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9Y2FycHJvb2ZIYW5kbGVyLnBob25lO2VtYWlsSGFuZGxlci5tYWtlPWNhcnByb29mSGFuZGxlci5tYWtlO2VtYWlsSGFuZGxlci5tb2RlbD1jYXJwcm9vZkhhbmRsZXIubW9kZWw7ZW1haWxIYW5kbGVyLnllYXI9Y2FycHJvb2ZIYW5kbGVyLnllYXI7ZW1haWxIYW5kbGVyLnRyaW09JCgiI2NhcnByb29mY2FydHJpbSIpLnZhbCgpO2VtYWlsSGFuZGxlci52aW49JCgiI2NhcnByb29mY2FydmluIikudmFsKCk7ZW1haWxIYW5kbGVyLnByaWNlPSQoIiNjYXJwcm9vZmNhcnByaWNlIikudmFsKCk7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPWNhcnByb29mSGFuZGxlci5zdG9ja051bWJlcjtlbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2NhcnByb29mY2FyaWQiKS52YWwoKTsKZD1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvLmxlbmd0aCYmIiIhPWNhcnByb29mSGFuZGxlci5zZW5kVG8\/Y2FycHJvb2ZIYW5kbGVyLnNlbmRUbzokKCIjdGV4dFNlbmRUb0VtYWlsIikubGVuZ3RoPyQoIiN0ZXh0U2VuZFRvRW1haWwiKS52YWwoKToiIjtmPWNhcnByb29mSGFuZGxlci5zZW5kVG9BZGYubGVuZ3RoJiYiIiE9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUb0FkZj9jYXJwcm9vZkhhbmRsZXIuc2VuZFRvQWRmOiQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS5sZW5ndGg\/JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpOiIiO2VtYWlsSGFuZGxlci5kZWFsZXJOYW1lPWNhcnByb29mSGFuZGxlci5kZWFsZXJOYW1lO2JyZWFrO2Nhc2UgIkN1c3RvbWVyUmF0aW5nIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9IkN1c3RvbWVyUmF0aW5nIjttYWlsUmF0aW5nLmFzc2lnblZhbHVlcygpO2E9YS5yZXBsYWNlKC97XCRSQVRJTkdNRVNTQUdFfS9nLG1haWxSYXRpbmcubWVzc2FnZSkucmVwbGFjZSgve1wkTE5BTUV9L2csCmQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxSYXRpbmcudXNlckxhc3ROYW1lKSkucmVwbGFjZSgve1wkRk5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFJhdGluZy51c2VyRmlyc3ROYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csbWFpbFJhdGluZy51c2VyRW1haWwpLnJlcGxhY2UoL3tcJFBIT05FfS9nLG1haWxSYXRpbmcudXNlclBob25lKS5yZXBsYWNlKC97XCRSQVRJTkdTVEFSU30vZyxtYWlsUmF0aW5nLnJhdGluZykucmVwbGFjZSgve1wkQ0xJRU5UTkFNRX0vZyxtYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWUrIiAiK21haWxSYXRpbmcudXNlckxhc3ROYW1lKTtrPWsucmVwbGFjZSgve1wkQ0xJRU5UTkFNRX0vZyxtYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWUrIiAiK21haWxSYXRpbmcudXNlckxhc3ROYW1lKTtlbWFpbEhhbmRsZXIudmluPSIiO2VtYWlsSGFuZGxlci5wcmljZT0wO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj0KIiI7ZW1haWxIYW5kbGVyLmNhcmlkPSIiO2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVua25vd24iO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxSYXRpbmcudXNlckZpcnN0TmFtZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPW1haWxSYXRpbmcudXNlckxhc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9bWFpbFJhdGluZy51c2VyUGhvbmU7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsUmF0aW5nLnVzZXJFbWFpbDtkPW1haWxSYXRpbmcuc2VuZFRvO2Y9IiAgIjticmVhaztjYXNlICJoZWFkZXJTZXJ2aWNlIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9Im1lbnVTZXJ2aWNlIjtzZXJ2aWNlRm9ybV9oZWFkZXJTZXJ2aWNlLnNldEVtYWlsU2VudENhbGxiYWNrKCk7YT1zZXJ2aWNlRm9ybV9oZWFkZXJTZXJ2aWNlLnNldEVtYWlsSGFuZGxlclZhbHVlc0FuZEJvZHkoYSk7ZD1zZXJ2aWNlRm9ybV9oZWFkZXJTZXJ2aWNlLmdldFNlbmRUbygpO2srPSIgRXhwcmVzcyI7CmJyZWFrO2Nhc2UgIm1lbnVTZXJ2aWNlIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9Im1lbnVTZXJ2aWNlIjtzZXJ2aWNlRm9ybV9tZW51U2VydmljZS5zZXRFbWFpbFNlbnRDYWxsYmFjaygpO2E9c2VydmljZUZvcm1fbWVudVNlcnZpY2Uuc2V0RW1haWxIYW5kbGVyVmFsdWVzQW5kQm9keShhKTtkPXNlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLmdldFNlbmRUbygpO2srPSIgRXhwcmVzcyI7YnJlYWs7ZGVmYXVsdDoiIj09ZCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjdGV4dFNlbmRUb0VtYWlsIikuYXR0cigiaWQiKSYmKGQ9JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpKTsiIj09ZiYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjdGV4dFNlbmRUb0VtYWlsQURGIikuYXR0cigiaWQiKSYmMzwkKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCkubGVuZ3RoJiYoZj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCkpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFZlaGljbGVXaWRnZXQmJgoobWFpbFZlaGljbGVXaWRnZXQuYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyxtYWlsVmVoaWNsZVdpZGdldC5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLG1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsKS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csbWFpbFZlaGljbGVXaWRnZXQueWVhcikucmVwbGFjZSgve1wkQ09MT1J9L2csbWFpbFZlaGljbGVXaWRnZXQuY29sb3IpLnJlcGxhY2UoL3tcJEVNQUlMU1RPQ0tOVU1CRVJ9L2csbWFpbFZlaGljbGVXaWRnZXQuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnN0b2NrTnVtYmVyKS5yZXBsYWNlKC97XCRGUk9NWUVBUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5mcm9tWWVhcikucmVwbGFjZSgve1wkVE9ZRUFSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnRvWWVhcikucmVwbGFjZSgve1wkSU5URU5USU9OfS9nLG1haWxWZWhpY2xlV2lkZ2V0LmludGVudGlvbikucmVwbGFjZSgve1wkUExBVEVTfS9nLAptYWlsVmVoaWNsZVdpZGdldC5wbGF0ZXMpLnJlcGxhY2UoL3tcJFZJTn0vZyxtYWlsVmVoaWNsZVdpZGdldC52aW4pLG1haWxWZWhpY2xlV2lkZ2V0Lm9kb21vdGVyJiYoYT1hLnJlcGxhY2UoL3tcJEtNfS9nLGMobWFpbFZlaGljbGVXaWRnZXQub2RvbW90ZXIpKSksJCgiaW5wdXQuYnJhbmRlbWFpbCIpLmxlbmd0aCYmJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldC5tYWtlKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikubGVuZ3RoJiYkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsKSwkKCJpbnB1dC55ZWFyZW1haWwiKS5sZW5ndGgmJiQoImlucHV0LnllYXJlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldC55ZWFyKSxlbWFpbEhhbmRsZXIubWFrZT1tYWlsVmVoaWNsZVdpZGdldC5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1tYWlsVmVoaWNsZVdpZGdldC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldC55ZWFyLAplbWFpbEhhbmRsZXIudHJpbT0kKCIjY2FydHJpbSIpLnZhbCgpLGVtYWlsSGFuZGxlci52aW49bWFpbFZlaGljbGVXaWRnZXQudmluLGVtYWlsSGFuZGxlci5wcmljZT0kKCIjY2FycHJpY2UiKS52YWwoKSxlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9bWFpbFZlaGljbGVXaWRnZXQuc3RvY2tOdW1iZXIsZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNjYXJpZCIpLnZhbCgpLDA8JCgiI2NhcmlkIikudmFsKCkubGVuZ3RofHxlbWFpbEhhbmRsZXIueWVhcjwobmV3IERhdGUpLmdldEZ1bGxZZWFyKCk\/ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVXNlZCI6ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0wPG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UubGVuZ3RoPyJOZXciOiJVbmtub3duIik7YT1hLnJlcGxhY2UoL3tcJFBMQVRFU30vZywiIik7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVmVoaWNsZVdpZGdldEV4JiYkKCIjdmVoaWNsZVNlbGVjdEZvcm1FeCIpLmxlbmd0aCYmKG1haWxWZWhpY2xlV2lkZ2V0RXguYXNzaWduVmFsdWVzKCksCmE9YS5yZXBsYWNlKC97XCRNQUtFRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlKS5yZXBsYWNlKC97XCRNT0RFTEVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwpLnJlcGxhY2UoL3tcJFlFQVJFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LnllYXIpLnJlcGxhY2UoL3tcJENPTE9SRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5jb2xvcikucmVwbGFjZSgve1wkVFJJTUVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgudHJpbSkucmVwbGFjZSgve1wkVFJBTlNNSVNTSU9OfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgudHJhbnNtaXNzaW9uKS5yZXBsYWNlKC97XCRLTX0vZyxjKG1haWxWZWhpY2xlV2lkZ2V0RXgub2RvbW90ZXIpKS5yZXBsYWNlKC97XCRWSU5FWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LnZpbikucmVwbGFjZSgve1wkRFJJVkVUUkFJTn0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LmRyaXZldHJhaW4pLnJlcGxhY2UoL3tcJEdBU30vZyxtYWlsVmVoaWNsZVdpZGdldEV4LmZ1ZWwpLAokKCJpbnB1dC5icmFuZGVtYWlsIikubGVuZ3RoJiYwPG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZS5sZW5ndGgmJiQoImlucHV0LmJyYW5kZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikubGVuZ3RoJiYwPG1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwubGVuZ3RoJiYkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwpLCQoImlucHV0LnllYXJlbWFpbCIpLmxlbmd0aCYmMDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UubGVuZ3RoJiYkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXRFeC55ZWFyKSxlbWFpbEhhbmRsZXIubWFrZT1tYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPW1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwsZW1haWxIYW5kbGVyLnllYXI9bWFpbFZlaGljbGVXaWRnZXRFeC55ZWFyLGVtYWlsSGFuZGxlci50cmltPW1haWxWZWhpY2xlV2lkZ2V0RXgudHJpbSwKInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXIuaXNUcmFkZUluQmFyfHwiUHJpY2VWZWhpY2xlIiE9Yi5tYWlsSUQmJiJQcmljZVZlaGljbGVOZXciIT1iLm1haWxJRCYmIkVzdGhldGljUmVxdWVzdCIhPWIubWFpbElEfHwoZW1haWxIYW5kbGVyLm1ha2U9bWFpbFZlaGljbGVXaWRnZXQubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9bWFpbFZlaGljbGVXaWRnZXQubW9kZWwsZW1haWxIYW5kbGVyLnllYXI9bWFpbFZlaGljbGVXaWRnZXQueWVhcixlbWFpbEhhbmRsZXIudHJpbT1tYWlsVmVoaWNsZVdpZGdldC50cmltLCJQcmljZVZlaGljbGUiIT1iLm1haWxJRCYmIlByaWNlVmVoaWNsZU5ldyIhPWIubWFpbElEKXx8KGVtYWlsSGFuZGxlci5jYXIyX21ha2U9bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLGVtYWlsSGFuZGxlci5jYXIyX21vZGVsPW1haWxWZWhpY2xlV2lkZ2V0RXgubW9kZWwsZW1haWxIYW5kbGVyLmNhcjJfdHJpbT1tYWlsVmVoaWNsZVdpZGdldEV4LnRyaW0sCmVtYWlsSGFuZGxlci5jYXIyX3llYXI9bWFpbFZlaGljbGVXaWRnZXRFeC55ZWFyLGVtYWlsSGFuZGxlci5jYXIyX2NvbG9yPW1haWxWZWhpY2xlV2lkZ2V0RXguY29sb3IsZW1haWxIYW5kbGVyLmNhcjJfb2RvbWV0ZXI9YyhtYWlsVmVoaWNsZVdpZGdldEV4Lm9kb21vdGVyKSxlbWFpbEhhbmRsZXIuY2FyMl92aW49bWFpbFZlaGljbGVXaWRnZXRFeC52aW4sZW1haWxIYW5kbGVyLmNhcjJfdHJhbnNtaXNzb249bWFpbFZlaGljbGVXaWRnZXRFeC50cmFuc21pc3Npb24sZW1haWxIYW5kbGVyLmNhcjJfZHJpdmV0cmFpbj1tYWlsVmVoaWNsZVdpZGdldEV4LmRyaXZldHJhaW4sZW1haWxIYW5kbGVyLmNhcjJfZnVlbHR5cGU9bWFpbFZlaGljbGVXaWRnZXRFeC5mdWVsLGE9YS5yZXBsYWNlKC97XCRUUkFERUlOTE9XfS9nLCJOL0EiKSxhPWEucmVwbGFjZSgve1wkVFJBREVJTkhJR0h9L2csIk4vQSIpLGE9YS5yZXBsYWNlKC97XCRUUkFERUlOQVZHfS9nLCJOL0EiKSksZW1haWxIYW5kbGVyLnZpbj0KIiIsZW1haWxIYW5kbGVyLnByaWNlPTAsZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPSIiLGVtYWlsSGFuZGxlci5jYXJpZD0iIiwwPCQoIiNjYXJpZCIpLnZhbCgpLmxlbmd0aD9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLmxlbmd0aD8iTmV3IjoiVW5rbm93biIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3NlcnZpY2VQYWNrYWdlcyIpLnByb3AoImlkIikpe3ZhciBuPSExLHI9IiI7JCgiaW5wdXQuc2VsZWN0ZWRTZXJ2aWNlIikuZWFjaChmdW5jdGlvbihoLHApe2g9JChwKTtoLmlzKCI6Y2hlY2tlZCIpJiYocis9Ijxicj4iK2gudmFsKCksbj0hMCl9KTtuJiYocj0iPGJyPjxicj48dT4iKyQoIiNzZWxlY3RlZFNlcnZpY2VzVGl0bGUiKS52YWwoKSsiPC91PiIrcik7YT1hLnJlcGxhY2UoL3tcJFNFTEVDVEVEU0VSVklDRVN9L2cscil9InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVXNlckluZm8mJgoobWFpbFVzZXJJbmZvLmFzc2lnblZhbHVlcygpLGE9YS5yZXBsYWNlKC97XCRGTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsVXNlckluZm8uZmlyc3ROYW1lKSkucmVwbGFjZSgve1wkTE5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFVzZXJJbmZvLmxhc3ROYW1lKSkucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZyxtYWlsVXNlckluZm8ucGhvbmUpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLG1haWxVc2VySW5mby5lbWFpbCkpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbEpvYk9mZmVyJiYobWFpbEpvYk9mZmVyLmFzc2lnblZhbHVlcygpLGQ9JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpLGY9JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpLGE9YS5yZXBsYWNlKC97XCRKT0JQT1NUfS9nLG0oZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbEpvYk9mZmVyLmpvYlBvc2l0b24pKSkucmVwbGFjZSgve1wkSk9CREVQQVJUTUVOVH0vZywKbShkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsSm9iT2ZmZXIuam9iRGVwYXJ0bWVudCkpKS5yZXBsYWNlKC97XCRKT0JNU0d9L2csbShtYWlsSm9iT2ZmZXIuam9iTWVzc2FnZSkpKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VyQWRkcmVzcyl7bWFpbFVzZXJBZGRyZXNzLmFzc2lnblZhbHVlcygpO3ZhciBxPXRyaW0obWFpbFVzZXJBZGRyZXNzLmFkZHJlc3NBcHArIiAiK21haWxVc2VyQWRkcmVzcy5hZGRyZXNzTnVtYmVyKyIgIittYWlsVXNlckFkZHJlc3MuYWRkcmVzc1N0cmVldCk7YT1hLnJlcGxhY2UoL3tcJENVUlJFTlRBRERSRVNTfS9nLG0ocSkpLnJlcGxhY2UoL3tcJENVUlJFTlRDSVRZfS9nLG0obWFpbFVzZXJBZGRyZXNzLmNpdHkpKS5yZXBsYWNlKC97XCRDVVJSRU5UUFJPVklOQ0V9L2csbShtYWlsVXNlckFkZHJlc3MucHJvdmluY2UpKS5yZXBsYWNlKC97XCRDVVJSRU5UUE9TVEFMQ09ERX0vZyxtKG1haWxVc2VyQWRkcmVzcy5wb3N0YWxDb2RlKSl9InVuZGVmaW5lZCIhPQp0eXBlb2YgbWFpbFNjaGVkdWxlJiYobWFpbFNjaGVkdWxlLmFzc2lnblZhbHVlcygpLGE9YS5yZXBsYWNlKC97XCREQVRFMX0vZyxtYWlsU2NoZWR1bGUuZmlyc3RDaG9pY2UpLnJlcGxhY2UoL3tcJERBVEUyfS9nLG1haWxTY2hlZHVsZS5zZWNvbmRDaG9pY2UpLnJlcGxhY2UoL3tcJFdBSVRJTkdPTlNJVEV9L2csbWFpbFNjaGVkdWxlLndhaXRpbmdPblNpdGUpLnJlcGxhY2UoL3tcJFRSQU5TUE9SVE9QVElPTn0vZyxtYWlsU2NoZWR1bGUuZ2V0VHJhbnNwb3J0T3B0aW9uVGV4dCgpKSxlbWFpbEhhbmRsZXIuc2VydmljZURhdGUxPW1haWxTY2hlZHVsZS5maXJzdENob2ljZSxlbWFpbEhhbmRsZXIuc2VydmljZURhdGUyPW1haWxTY2hlZHVsZS5zZWNvbmRDaG9pY2UsZW1haWxIYW5kbGVyLndhaXRpbmdPblNpdGU9bWFpbFNjaGVkdWxlLndhaXRpbmdPblNpdGUsZW1haWxIYW5kbGVyLnRyYW5zcG9ydE9wdGlvbj1tYWlsU2NoZWR1bGUudHJhbnNwb3J0T3B0aW9uKTt2YXIgdD1xPSIiLAp1PSIiOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2ZpbmFuY2VPcHRpb25EaXYiKS5hdHRyKCJpZCIpJiYoImNoZWNrZWQiPT0kKCIjZmluYW5jZU9wdGlvbkRpdiBpbnB1dCIpLmF0dHIoImNoZWNrZWQiKT9xPSQoIiN0ZXh0Q2FzaCIpLnZhbCgpOihxPSJjaGVja2VkIj09JCgiI2ZpbmFuY2VPcHRpb25EaXYyIGlucHV0IikuYXR0cigiY2hlY2tlZCIpPyQoIiN0ZXh0RmluYW5jZSIpLnZhbCgpOiQoIiN0ZXh0TGVhc2UiKS52YWwoKSx1PSQoIiNmaW5hbmNlVGVybVNlbGVjdCIpLnZhbCgpKSwidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN2ZWhpY2xlT2ZmZXIiKS5hdHRyKCJpZCIpJiYodD0iJCIrYygkKCIjdmVoaWNsZU9mZmVyIikudmFsKCkpKSxhPWEucmVwbGFjZSgve1wkUEFZTUVOVH0vZyxxKS5yZXBsYWNlKC97XCRQQVlNRU5UVEVSTX0vZyx1KS5yZXBsYWNlKC97XCRPRkZFUn0vZyx0KSk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcXVlc3Rpb25zQ29tbWVudHMiKS5hdHRyKCJpZCIpJiYKKGU9bSgkKCIjcXVlc3Rpb25zQ29tbWVudHMiKS52YWwoKSksYT1hLnJlcGxhY2UoL3tcJFFVRVNUSU9OU30vZyxlKSxlbWFpbEhhbmRsZXIuY29tbWVudHM9ZSk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcmVxdWVzdFR5cGUiKS5hdHRyKCJpZCIpJiYoYT1hLnJlcGxhY2UoL3tcJERFTUFOREV9L2csJCgiI3JlcXVlc3RUeXBlIikudmFsKCkpKX0kKCIjdGVzdERyaXZlVHlwZSIpLmxlbmd0aCYmKGE9YS5yZXBsYWNlKC97XCRURVNURFJJVkVUWVBFfS9nLCQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCkpLGE9IlZpcnR1YWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpfHwiVmlydHVlbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCk\/YS5yZXBsYWNlKC97XCRURVNURFJJVkVWSVJUVUFMfS9nLCQoIiNwcmVmZXJlZFZpcnR1YWxUb29sIikudmFsKCkpOmEucmVwbGFjZSgve1wkVEVTVERSSVZFVklSVFVBTH0vZywiTi9BIikpOyQoZykuZmluZCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5sZW5ndGg\/CmVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSQoZykuZmluZCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5maW5kKCI6c2VsZWN0ZWQiKS5odG1sKCk6IjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmJCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5sZW5ndGgmJihlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmZpbmQoIjpzZWxlY3RlZCIpLmh0bWwoKSk7ZW1haWxIYW5kbGVyLmRlYWxlck5hbWUmJihhPWEucmVwbGFjZSgieyRERUFMRVJOQU1FfSIsZW1haWxIYW5kbGVyLmRlYWxlck5hbWUpKTthPWEucmVwbGFjZSgve1wkKERBVEVbMTJdKX0vZyxmdW5jdGlvbihoLHApe2g9JCgnaW5wdXRbbmFtZT0iJytwLnRvTG93ZXJDYXNlKCkrJyJdJyxnKTtyZXR1cm4gMDxoLmxlbmd0aD8obmV3IERhdGUoaC52YWwoKSkpLmRhdGVGb3JtYXQoIlktbS1kIEg6aSIpOiIifSk7Yz0iIjswPCQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpLmxlbmd0aCYmKGM9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrCiIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCkpO2E9YS5yZXBsYWNlKCJ7JExBU1RWRUhJQ0xFVklFV0VEfSIsYyk7YT1hLnJlcGxhY2UoUmVnRXhwKCJ7XFwkKFFVRVNUSU9OU3xNRVNTQUdFfFJBVElOR01FU1NBR0V8RU1BSUxQSE9ORXxFTUFJTE1BS0V8RU1BSUxNT0RFTHxFTUFJTFlFQVJ8UEFZTUVOVHxQQVlNRU5UVEVSTXxPRkZFUnxTVE9DS05VTUJFUnxDT0xPUnxGTkFNRXxMTkFNRXxFTUFJTHxLTXxWSU5FWHxTRUxFQ1RFRFNFUlZJQ0VTfEVNQUlMQ0lUWXxQTEFURVN8REFURTF8REFURTJ8VFJBTlNQT1JUT1BUSU9OKX0iLCJnIiksIiIpO2E9YS5yZXBsYWNlKC97XCRFTUFJTEJVSUxEQU5EUFJJQ0V9L2csYi5iYW5kcExpbmsoKSk7IiI9PWQmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbCIpLmF0dHIoImlkIikmJgooZD1sJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS5hdHRyKCJpZCIpJiYwPCQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS52YWwoKS5sZW5ndGg\/JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpOiQoIiNleHByZXNzU2VuZFRvRW1haWwiKS52YWwoKSk7aWYoIiI9PWYmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERiIpLmF0dHIoImlkIikpaWYobCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIikuYXR0cigiaWQiKSYmMDwkKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIikudmFsKCkubGVuZ3RoKWY9JCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERk5FVyIpLnZhbCgpO2Vsc2UgaWYoInNlcnZpY2UiPT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpfHxiJiYoIm1lbnVTZXJ2aWNlIj09Yi5tYWlsSUR8fCJoZWFkZXJTZXJ2aWNlIj09CmIubWFpbElEKSlmPSQoIiNleHByZXNzU2VuZFRvRW1haWxBREZTRVJWSUNFIikudmFsKCk7IiI9PWQmJiQoIiNleHByZXNzSW5EZW1vIikubGVuZ3RoJiYiMSI9PSQoIiNleHByZXNzSW5EZW1vIikudmFsKCkmJihlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJOZXciLDA8JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpLmxlbmd0aCYmKGQ9JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpKSk7IlF1aWNrRW1haWwiPT1iLm1haWxJRCYmInVuZGVmaW5lZCIhPT10eXBlb2YgZSYmMDxlLmxlbmd0aCYmMDwkKCIjc2VydmljZUVtYWlsIikubGVuZ3RoJiYwPCQoIiNzZXJ2aWNlQWRmRW1haWwiKS5sZW5ndGgmJih0ZXJtcz0icmFwcGVsO3NlcnZpY2U7aHVpbGU7cGllY2VzO3Bp77+9Y2VzO3BuZXVzO3RyYW5zbWlzc2lvbjthY2Nlc3NvaXJlczthbHRlcm5hdGV1cjthbnRpcm91aWxsZTthbnRpLXJvdWlsbGU7YmF0dGVyaWU7YmF0ZXJpZTty77+9cGFyYXRpb247cGVpbnR1cmU7ZnJlaW5zO2Rpc3F1ZXM7Y2Fycm9zc2VyaWU7Y2F0YWx5c2V1cjtjaG9jO2RlbWFycmV1cjvvv71jaGFwcGVtZW50O21vdGV1cjtlc3N1aWUtZ2xhY2U7ZXNzdWktZ2xhY2U7IGZldXg7Y2xpZ25vdGFudDtrbGF4b247ZmlsdHJlO2hvcmxvZ2U7cmFkaW87dG9pdC1vdXZyYW50OyBtYWc7IG1hZ3M7be+\/vWNhbmlxdWU7bXVmZmxlcjtuYXZpZ2F0aW9uO29yZGluYXRldXI7IHBoYXJlcztsdW1p77+9cmVzO2x1bWllcmU7cHJvYmzvv71tZTtwcm9ibGVtZTtyZWNhbGw7cGFydHM7dGlyZTthY2Nlc3NvcmllczthbHRlcm5hdG9yO3J1c3Rwcm9vZmluZztiYXR0ZXJ5O3JlcGFpcjtwYWludDticmFrZTtkaXNrczsgYm9keTtzdGFydGVyO2V4aGF1c3Q7ZW5naW5lO3dpcGVyO3dpcGVyczsgZmxhc2g7IGxpZ2h0O2ZsYXNoZXI7Zmxhc2hlcnM7IGhvcm47ZmlsdGVyO2Nsb2NrO3Jvb2Y7bWVjYW5pYztjb21wdXRlcjtlY3U7cHJvYmxlbSIuc3BsaXQoIjsiKSwKbWF0Y2hlZFRlcm1zPVtdLCQuZWFjaCh0ZXJtcyxmdW5jdGlvbihoLHApe2lmKC0xPGUuaW5kZXhPZihwKSlyZXR1cm4gZD0kKCIjc2VydmljZUVtYWlsIikudmFsKCksZj0kKCIjc2VydmljZUFkZkVtYWlsIikudmFsKCksITF9KSk7ZW1haWxIYW5kbGVyLnN1YmplY3Q9aztlbWFpbEhhbmRsZXIuYm9keT1hO2VtYWlsSGFuZGxlci5zZW5kVG89ZDtlbWFpbEhhbmRsZXIuc2VuZEZyb209IiI7ZW1haWxIYW5kbGVyLm1haWxJRD1iLm1haWxJRDtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9Yi5lbWFpbFNlbnQ7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVXNlckluZm8mJiJtZW51Q29udGFjdFVzIiE9ZW1haWxIYW5kbGVyLm1haWxJRCYmIm1lbnVTZXJ2aWNlIiE9ZW1haWxIYW5kbGVyLm1haWxJRCYmKGVtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFVzZXJJbmZvLmVtYWlsLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxVc2VySW5mby5maXJzdE5hbWUsZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT0KbWFpbFVzZXJJbmZvLmxhc3ROYW1lLGVtYWlsSGFuZGxlci51c2VyUGhvbmU9bWFpbFVzZXJJbmZvLnBob25lKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxKb2JPZmZlciYmKGVtYWlsSGFuZGxlci51c2VyQXR0YWNobWVudFBhdGg9bWFpbEpvYk9mZmVyLmpvYkZpbGUpO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9ZjstMSE9ZW1haWxIYW5kbGVyLmJvZHkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ0ZXN0QGQyY21lZGlhLmNhIikmJiQoImlucHV0LnRlc3Rtb2RlIikudmFsKCIxIik7JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aD9lbWFpbEhhbmRsZXIuc2VuZFRvPSQoZykuZmluZCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS52YWwoKToiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpJiYkKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aCYmKGVtYWlsSGFuZGxlci5zZW5kVG89JCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS52YWwoKSl9O2IuX3ZhbGlkYXRlRmllbGRzPQpmdW5jdGlvbihjKXt2YXIgZz0hMSxrPSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmh0bWwoKSxhPXRoaXMuanFTY29wZTtpZigiI3F1aWNrRW1haWxGb3JtIj09YSlyZXR1cm4hMDskLnZhbGlkaXR5LnN0YXJ0KCk7dmFyIGU9Ii5Jbm5lckJveExheWVyIjswPCQoIi5tYWluX2xlZnRfYm94IikubGVuZ3RoJiYoZT0iLm1haW5fbGVmdF9ib3giKTthPWIuanFTY29wZT9iLmpxU2NvcGU6ZTsxPiQoYSkubGVuZ3RoJiYoYT0iI25ld2RldGFpbHMiKTsxPiQoYSkubGVuZ3RoJiYoYT0iLm5ldy1kZXRhaWxzIik7MT4kKGEpLmxlbmd0aCYmKGE9ImJvZHkiKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoYyk7Yz0kKGEpLmZpbmQoIi5yZXF1aXJlZCwudmFsaWRhdGUiKTskKGEpLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7Yy5maWx0ZXIoIi5yZXF1aXJlZCIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnJlcXVpcmUoKS5ub25IdG1sKCl9KTsKYy5maWx0ZXIoIi5yZXF1aXJlZC1waG9uZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnJlcXVpcmUoKS52YWxpZGF0ZVBob25lKCl9KTtjLmZpbHRlcigiLnBob25lOm5vdCgucmVxdWlyZWQtcGhvbmUpIikuZWFjaCgobCxuKT0+eyQobikudmFsaWRhdGVQaG9uZSgpfSk7ZT0kKCIjcGhvbmUxLCNwaG9uZTIsI3Bob25lMyIsYSkuZmlsdGVyKCI6dmlzaWJsZSIpO2lmKDA8ZS5sZW5ndGgpe3ZhciBkLGY7bGV0IGwsbjswPChlWzBdLnZhbHVlKyhudWxsIT0obD1udWxsPT0oZD1lWzFdKT92b2lkIDA6ZC52YWx1ZSk\/bDoiIikrKG51bGwhPShuPW51bGw9PShmPWVbMl0pP3ZvaWQgMDpmLnZhbHVlKT9uOiIiKSkubGVuZ3RoJiYkKGUpLnZhbGlkYXRlUGhvbmUoKX1jLmZpbHRlcigiLnppcCIpLmVhY2goZnVuY3Rpb24oKXsoJCh0aGlzKS5pcygiLnJlcXVpcmVkIil8fDAhPSQodGhpcykudmFsKCkubGVuZ3RoKSYmJCh0aGlzKS5yZXF1aXJlUG9zdGFsQ29kZSgpfSk7MT09JCgiLnZpbiIpLmxlbmd0aCYmCigkKCIudmluIikuaXMoIi5yZXF1aXJlZCIpJiYkKCIudmluIikucmVxdWlyZSgpLm5vbkh0bWwoKSwwPCQoIi52aW4iKS52YWwoKS5sZW5ndGgmJiQoIi52aW4iKS5taW5MZW5ndGgoMTcpKTsxPT0kKCIudmluRXgiKS5sZW5ndGgmJigkKCIudmluRXgiKS5pcygiLnJlcXVpcmVkIikmJiQoIi52aW5FeCIpLnJlcXVpcmUoKS5ub25IdG1sKCksMDwkKCIudmluRXgiKS52YWwoKS5sZW5ndGgmJiQoIi52aW5FeCIpLm1pbkxlbmd0aCgxNykpO2MuZmlsdGVyKCIuZW1haWwiKS5lYWNoKGZ1bmN0aW9uKCl7KCQodGhpcykuaXMoIi5yZXF1aXJlZCIpfHwwIT0kKHRoaXMpLnZhbCgpLmxlbmd0aCkmJiQodGhpcykudmFsaWRFbWFpbEFkZHJlc3MoKX0pOyQoYSkuZmluZCgiLnZhbGlkYXRlLWdyb3VwIikuZWFjaChmdW5jdGlvbigpe3ZhciBsPSQodGhpcykudmFsKCk7JChsLGEpLnZhbGlkQWxsb3JOb25lKCl9KTtjLmZpbHRlcigiLnVwbG9hZCIpLmVhY2goZnVuY3Rpb24oKXshJCh0aGlzKS5pcygiLnJlcXVpcmVkIikmJgowPT0kKHRoaXMpLnZhbCgpLmxlbmd0aHx8IiIhPSQodGhpcykudmFsKCl8fCgkKCIjdXBsb2FkU3RhdHVzIikuY3NzKCJjb2xvciIsInJlZCIpLCQoIiN1cGxvYWRTdGF0dXMiKS5odG1sKCQoIiNmaWxlVXBsb2FkUmVxdWVzdCIpLnZhbCgpKSwkKCIjdXBsb2FkU3RhdHVzIikuc2hvdygpKX0pO2Q9JC52YWxpZGl0eS5yZXBvcnQuZXJyb3JzOyQoIiNlbWFpbCIpLm1hdGNoKCJlbWFpbCIpOyQudmFsaWRpdHkucmVwb3J0LmVycm9ycz5kJiYoZj0kKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS50ZXh0KCkrIi48YnIvPiIrJCgiI2VtYWlsRXJyb3JNc2ciLCIjdXNlckluZm9Gb3JtIikudmFsKCkrIi4iLDA9PWQmJihmPSQoIiNlbWFpbEVycm9yTXNnIiwiI3VzZXJJbmZvRm9ybSIpLnZhbCgpKSwkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5odG1sKGYpKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmImZ1bmN0aW9uIj09dHlwZW9mIG1haWxVc2VySW5mby5hZGRlZFZhbGlkYXRpb24mJgptYWlsVXNlckluZm8uYWRkZWRWYWxpZGF0aW9uKGEpOyQudmFsaWRpdHkuZW5kKCkudmFsaWQ\/Zz0hMDooJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuc2hvdygpLCQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmNlbnRlcigpLCQoZG9jdW1lbnQpLm9uZSgibW91c2Vkb3duIixmdW5jdGlvbihsKXskLnZhbGlkaXR5LmNsZWFyKCk7JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaGlkZSgpOyQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmh0bWwoayl9KSk7cmV0dXJuIGd9fTt2YXIgbWFpbFBhZ2U9bmV3IEdlbmVyaWNNYWlsOwokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpezA8JCgiI3RvcGlzbW9iaWxlIikubGVuZ3RoJiYxPCQoIiN0b3Bpc21vYmlsZSIpLnZhbCgpJiYobWFpbFBhZ2UuanFTY29wZT0iLm5ldy1kZXRhaWxzIik7JCgiI3NlbmRFbWFpbEZvcm0gYnV0dG9uIikub24oImNsaWNrIHRhcCIsbWFpbFBhZ2Uuc2F2ZSk7JCgiI3NlbmRFbWFpbEZvcm1TdWJtaXQiKS5vbigiY2xpY2sgdGFwIixtYWlsUGFnZS5zYXZlKTttYWlsUGFnZS5tYWlsSUQ9JCgiI3RleHRTYXZlTWFpbElEIikudmFsKCk7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToic3VtbWFyeSIsc2Nyb2xsVG86ITF9KTtqUXVlcnkuZm4uY2VudGVyPWZ1bmN0aW9uKCl7JCgiaXNtb2JpbGUiKSYmMDwkKCIjc2VuZEVtYWlsRm9ybVN1Ym1pdCIpLmxlbmd0aD90aGlzLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OigkKHdpbmRvdykud2lkdGgoKS0kKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5vdXRlcldpZHRoKCkpLzIsCnRvcDokKCIjc2VuZEVtYWlsRm9ybVN1Ym1pdCIpLnBvc2l0aW9uKCkudG9wLTEwfSk6dGhpcy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDooJCh3aW5kb3cpLndpZHRoKCktJCgiI2NvbnRhaW5lciIpLm91dGVyV2lkdGgoKSkvMix0b3A6KCQod2luZG93KS5oZWlnaHQoKS0kKCIjY29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSkvMn0pO3JldHVybiB0aGlzfTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxQYWdlLm1haWxJRCYmZW1haWxIYW5kbGVyLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtTG9hZGVkIixtYWlsUGFnZS5tYWlsSUQpfSk7Ci8qKiAvanMvdHJhZGVJbkJhci5qcyAqKi8KdmFyIF9fX2QyY190cmFkZUluQmFyanNfY19vbj0iMjAyNi0wMS0yNyAxMDozMDowOSI7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIHRyYWRlSW5CYXJJbml0aWFsaXplKCl7Zm9yKHZhciBwPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5NYWtlIl0nKSxrPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJyksbD0kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJykscT0kKCdzZWxlY3RbbmFtZT0idHJhZGluWWVhciJdJyksZz0kKCdpbnB1dFtuYW1lPSJ0cmFkaW5WaW4iXScpLHU9e30sdz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7MTk5OTx3O3ctLSk7cC5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7cC5jc3MoImJhY2tncm91bmQiLCIjZmZmZmZmIil9KTtrLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXtrLmNzcygiYmFja2dyb3VuZCIsIiNmZmZmZmYiKX0pO2wub24oImZvY3VzIixmdW5jdGlvbigpe2wuY3NzKCJiYWNrZ3JvdW5kIiwiI2ZmZmZmZiIpfSk7cS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7cS5jc3MoImJhY2tncm91bmQiLCIjZmZmZmZmIil9KTt2YXIgaD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KIkVOR0xJU0giOiJGUkVOQ0giLEE9JzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1oPyJNb2RlbCI6Ik1vZCZlZ3JhdmU7bGUiKSsiPC9vcHRpb24+IixEPSc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09aD8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+IixGPSc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09aD8iWWVhciI6IkFubiZlYWN1dGU7ZSIpKyI8L29wdGlvbj4iOyQoZG9jdW1lbnQpLm9uKCJ0cmFkZUluQmFyLmNsb25lZCIsZnVuY3Rpb24oKXtwPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5NYWtlIl0nKTtrPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJyk7bD0kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJyk7cT0kKCdzZWxlY3RbbmFtZT0idHJhZGluWWVhciJdJyk7Zz0kKCdpbnB1dFtuYW1lPSJ0cmFkaW5WaW4iXScpO3AudmFsKHAudmFsKCkpO3EudmFsKHEudmFsKCkpO2sudmFsKGsudmFsKCkpO2wudmFsKGwudmFsKCkpfSk7CnAub24oImNoYW5nZSIsZnVuY3Rpb24oKXtwLnZhbCgkKHRoaXMpLnZhbCgpKTtxLmVtcHR5KCk7ay5lbXB0eSgpO2wuZW1wdHkoKTsiIiE9dGhpcy52YWx1ZSYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhckRhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOnRoaXMudmFsdWV9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7dT1iO3EuYXBwZW5kKEYpO2Zvcih2YXIgZiBpbiBiKXEuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2YrJyI+JytmKyI8L29wdGlvbj4iKTtnJiZnLmZpcnN0KCkmJiIiIT1nLmZpcnN0KCkuYXR0cigidmluWWVhciIpJiYocS52YWwoZy5maXJzdCgpLmF0dHIoInZpblllYXIiKSkscS5maXJzdCgpLnRyaWdnZXIoImNoYW5nZSIpKX19KX0pO3Eub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgYj0kKHRoaXMpLnZhbCgpLApmPXAudmFsKCk7cS52YWwoJCh0aGlzKS52YWwoKSk7ay5lbXB0eSgpO2wuZW1wdHkoKTtpZigxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKSQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PWg\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJNb2RlbD93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6Zix5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7ay5hcHBlbmQoQSk7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBjPWFbZF0ubmFtZTtrLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iJytjKyciPicrYysiPC9vcHRpb24+Iil9ZyYmZy5maXJzdCgpJiYiIiE9Zy5maXJzdCgpLmF0dHIoInZpbk1vZGVsIikmJihrLnZhbChnLmZpcnN0KCkuYXR0cigidmluTW9kZWwiKSksay5maXJzdCgpLnRyaWdnZXIoImNoYW5nZSIpKTtnLmZpcnN0KCkuYXR0cigidmluWWVhciIsCiIiKTtnLmZpcnN0KCkuYXR0cigidmluTW9kZWwiLCIiKX19KTtlbHNlIGlmKDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ01vZGVsP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKTtrLmFwcGVuZChBKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGM9YVtkXS5uYW1lO2suYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2MrJyI+JytjKyI8L29wdGlvbj4iKX1nJiZnLmZpcnN0KCkmJiIiIT1nLmZpcnN0KCkuYXR0cigidmluTW9kZWwiKSYmKGsudmFsKGcuZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIpKSxrLmZpcnN0KCkudHJpZ2dlcigiY2hhbmdlIikpO2cuZmlyc3QoKS5hdHRyKCJ2aW5ZZWFyIiwKIiIpO2cuZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIsIiIpfX0pO2Vsc2UgaWYoMDxPYmplY3Qua2V5cyh1KS5sZW5ndGgmJiIiIT10aGlzLnZhbHVlKXtrLmFwcGVuZChBKTtmPXt9O2Zvcih2YXIgZT0wO2U8dVtiXS5sZW5ndGg7ZSsrKSJ1bmRlZmluZWQiPT10eXBlb2YgZlt1W2JdW2VdLm1vZGVsXSYmKGsuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK3VbYl1bZV0ubW9kZWwrJyI+Jyt1W2JdW2VdLm1vZGVsKyI8L29wdGlvbj4iKSxmW3VbYl1bZV0ubW9kZWxdPXVbYl1bZV0ubW9kZWwpfX0pO2sub24oImNoYW5nZSIsZnVuY3Rpb24oYil7dmFyIGY9cC52YWwoKTtiPXEudmFsKCk7dmFyIGU9JCh0aGlzKS52YWwoKTtrLnZhbCgkKHRoaXMpLnZhbCgpKTtsLmVtcHR5KCk7aWYoMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSkkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVHJpbT93c3dpZHRoPTAiLApkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOmYsbW9kZWw6ZSx5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7bC5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1oPyJUcmltIjoiVmVyc2lvbiIpKyI8L29wdGlvbj4iKTtmb3IodmFyIGQ9MCxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBtPWFbY10uc3R5bGUrIiAiK2FbY10uc2VyaWVzLHg9YVtjXS51dmM7ZCsrO2wuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJyt4KyciIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0xPT1kJiYkKCJvcHRpb246ZXEoMSkiLGwpLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKX19KTtlbHNlIGlmKDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ1RyaW0\/d3N3aWR0aD0wIiwKZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLG1vZGVsOmUseWVhcjpifSxzdWNjZXNzOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKGEpO2wuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09aD8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+Iik7Zm9yKHZhciBkPTAsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgbT1hW2NdLm5hbWUseD1hW2NdLmlkO2QrKztsLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXN0eWxlaWQ9IicreCsnIiB2YWx1ZT0iJyttKyciPicrbSsiPC9vcHRpb24+Iil9MT09ZCYmJCgib3B0aW9uOmVxKDEpIixsKS5wcm9wKCJzZWxlY3RlZCIsITApfX0pO2Vsc2UgaWYoMDxPYmplY3Qua2V5cyh1KS5sZW5ndGgmJiIiIT10aGlzLnZhbHVlKXtsLmFwcGVuZChEKTtmb3IoZT1mPTA7ZTx1W2JdLmxlbmd0aDtlKyspdVtiXVtlXS5tb2RlbD09dGhpcy52YWx1ZSYmKGYrKyxsLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXN0eWxlaWQ9IicrCnVbYl1bZV0uc3R5bGVpZCsnIiB2YWx1ZT0iJyt1W2JdW2VdLnRyaW0rJyI+Jyt1W2JdW2VdLnRyaW0rIjwvb3B0aW9uPiIpKTsxPT1mJiYkKCJvcHRpb246ZXEoMSkiLGwpLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKX19KTtsLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7bC52YWwoJCh0aGlzKS52YWwoKSl9KTt2YXIgQj0hMTtpZigxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKWcub24oImtleXVwIixmdW5jdGlvbigpe2cudmFsKCQodGhpcykudmFsKCkpOyQodGhpcykudmFsKCkmJjE3PD0kKHRoaXMpLnZhbCgpLmxlbmd0aCYmIUImJihCPSEwLCQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3ZpbjokKHRoaXMpLnZhbCgpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LApzdWNjZXNzOmZ1bmN0aW9uKGIpe2ImJmIubW9kZWwmJmIubW9kZWxfeWVhcj8oZy5maXJzdCgpLmF0dHIoInZpbk1vZGVsIixiLm1vZGVsKSxnLmZpcnN0KCkuYXR0cigidmluWWVhciIsYi5tb2RlbF95ZWFyKSxwLnZhbChiLm1ha2UpLHAuZmlyc3QoKS50cmlnZ2VyKCJjaGFuZ2UiKSxyZW1vdmVSZWRXYXJuaW5nTWVzc2FnZSgpLHN3aXRjaFRvVmVoaWNsZUFuZEZvY3VzVHJpbSgpKTphZGRSZWRXYXJuaW5nTWVzc2FnZSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iVW5yZWNvZ25pemVkIFZJTiI6Ik5JViBub24gcmVjb25udSIpfSxjb21wbGV0ZTpmdW5jdGlvbihiKXtCPSExfX0pKX0pO2Vsc2UgaWYoMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSlnLm9uKCJrZXl1cCIsZnVuY3Rpb24oKXtnLnZhbCgkKHRoaXMpLnZhbCgpKTskKHRoaXMpLnZhbCgpJiYxNzw9JCh0aGlzKS52YWwoKS5sZW5ndGgmJiFCJiYoQj0hMCwkLmFqYXgoe3R5cGU6IlBPU1QiLAp1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVmluP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3ZpbjokKHRoaXMpLnZhbCgpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7YiYmYi5tb2RlbCYmYi55ZWFyPyhnLmZpcnN0KCkuYXR0cigidmluTW9kZWwiLGIubW9kZWwpLGcuZmlyc3QoKS5hdHRyKCJ2aW5ZZWFyIixiLnllYXIpLHAudmFsKGIubWFrZSkscC5maXJzdCgpLnRyaWdnZXIoImNoYW5nZSIpLHJlbW92ZVJlZFdhcm5pbmdNZXNzYWdlKCksc3dpdGNoVG9WZWhpY2xlQW5kRm9jdXNUcmltKCkpOmFkZFJlZFdhcm5pbmdNZXNzYWdlKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJVbnJlY29nbml6ZWQgVklOIjoiTklWIG5vbiByZWNvbm51Iil9LApjb21wbGV0ZTpmdW5jdGlvbihiKXtCPSExfX0pKX0pO3c9Z2V0VXJsVmFycygpO2Zvcih2YXIgRz1PYmplY3Qua2V5cyh3KSxIPUcubGVuZ3RoLEk9e307SC0tOyl7dmFyIEo9R1tIXTtJW0oudG9Mb3dlckNhc2UoKV09d1tKXX13PUk7dy50bWFrZSYmdy50bW9kZWwmJncudHllYXImJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsYXVuY2hUcmFkZUluUG9wdXAoImF1dG9tYXRpYyIpfSwxRTMpO3dbInRyYWRlLWZ1bGwiXSYmc2V0VGltZW91dChmdW5jdGlvbigpe2xhdW5jaFRyYWRlSW5Qb3B1cCgiYXV0b21hdGljIil9LDFFMyk7JCgiLnRyYWRlSW5CYXJfYnRuIikub24oImNsaWNrIixmdW5jdGlvbihiKXtiPSExOyIiPT1wLnZhbCgpJiYocC5jc3MoImJhY2tncm91bmQiLCIjRkY3RTc5IiksYj0hMCk7aWYoIiI9PWsudmFsKCl8fG51bGw9PWsudmFsKCkpay5jc3MoImJhY2tncm91bmQiLCIjRkY3RTc5IiksYj0hMDtpZigiIj09bC52YWwoKXx8bnVsbD09bC52YWwoKSlsLmNzcygiYmFja2dyb3VuZCIsCiIjRkY3RTc5IiksYj0hMDtpZigiIj09cS52YWwoKXx8bnVsbD09cS52YWwoKSlxLmNzcygiYmFja2dyb3VuZCIsIiNGRjdFNzkiKSxiPSEwOzA9PWImJmxhdW5jaFRyYWRlSW5Qb3B1cCgidHJhZGVpbmJhciIpfSk7aWYoIjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKXx8IiI9PXAudmFsKCl8fCJ1bmRlZmluZWQiPT09dHlwZW9mIHAudmFsKCl8fCIiPT1rLnZhbCgpfHwiIj09cS52YWwoKSl7dmFyIHk9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKSxyPSQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLHY9JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKSx6PSQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIiksbj0kKCIjdHJhZGVJbkJhclBvcHVwTml2IiksdD17fSxFPWQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcih3LnRtb2RlbD93LnRtb2RlbC50b0xvd2VyQ2FzZSgpOiIiKSxDPXcudHllYXI7aWYoMCE9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCTU9ERUxTRUxFQ1QiXScpLnZhbCgpKSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5uaXZNYWtlTW9kZWxTZWxlY3QiKS5vbigiY2hhbmdlIiwKZnVuY3Rpb24oKXsidmluIj09JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm5pdk1ha2VNb2RlbFNlbGVjdDpjaGVja2VkIikudmFsKCk\/KCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlRGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbERpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwWWVhckRpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIikpOigkKCIjdHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIikuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIiksJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIiksJCgiI3RyYWRlSW5CYXJQb3B1cFllYXJEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLAoiaW5saW5lLWJsb2NrIikpOyJ1bmRlZmluZWQiIT09dHlwZW9mIHRyYWRlaW5wb3B1cGQyYyYmdHJhZGVpbnBvcHVwZDJjLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0pO3kub24oImNoYW5nZSIsZnVuY3Rpb24oKXt5LnZhbCgkKHRoaXMpLnZhbCgpKTt6LmVtcHR5KCk7ci5lbXB0eSgpO3YuZW1wdHkoKTsiIiE9dGhpcy52YWx1ZSYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhckRhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOnRoaXMudmFsdWV9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7dD1iO3ouYXBwZW5kKEYpOyIiIT1uLmF0dHIoInZpblllYXIiKSYmKEM9bi5hdHRyKCJ2aW5ZZWFyIikpO2Zvcih2YXIgZiBpbiBiKWI9IiIsQyYmKGI9Zj09Qz8nc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiIpLHouYXBwZW5kKCI8b3B0aW9uICIrCmIrJyB2YWx1ZT0iJytmKyciPicrZisiPC9vcHRpb24+Iik7QyYmKHoudHJpZ2dlcigiY2hhbmdlIiksQz0hMSl9fSl9KTt6Lm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ei52YWwoJCh0aGlzKS52YWwoKSk7ci5lbXB0eSgpO3YuZW1wdHkoKTt2YXIgYj0kKHRoaXMpLnZhbCgpLGY9eS52YWwoKTtpZigxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKSQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PWg\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJNb2RlbD93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6Zix5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7Y29uc29sZS5sb2coZCk7ci5hcHBlbmQoQSk7Zm9yKHZhciBjPTA7YzxkLmxlbmd0aDtjKyspe3ZhciBtPWRbY10ubmFtZTtyLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iJyttKyciPicrbSsiPC9vcHRpb24+Iil9IiIhPQpuLmF0dHIoInZpbk1vZGVsIikmJihyLnZhbChuLmF0dHIoInZpbk1vZGVsIikpLHIudHJpZ2dlcigiY2hhbmdlIikpO24uYXR0cigidmluWWVhciIsIiIpO24uYXR0cigidmluTW9kZWwiLCIiKX19KTtlbHNlIGlmKDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ01vZGVsP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOmgsbWFrZTpmLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihkKXtjb25zb2xlLmxvZyhkKTtyLmFwcGVuZChBKTtmb3IodmFyIGM9MDtjPGQubGVuZ3RoO2MrKyl7dmFyIG09ZFtjXS5uYW1lO3IuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0iIiE9bi5hdHRyKCJ2aW5Nb2RlbCIpJiYoci52YWwobi5hdHRyKCJ2aW5Nb2RlbCIpKSwKci50cmlnZ2VyKCJjaGFuZ2UiKSk7bi5hdHRyKCJ2aW5ZZWFyIiwiIik7bi5hdHRyKCJ2aW5Nb2RlbCIsIiIpfX0pO2Vsc2UgaWYoMDxPYmplY3Qua2V5cyh0KS5sZW5ndGgmJiIiIT10aGlzLnZhbHVlKXtyLmFwcGVuZChBKTtmPXt9O2Zvcih2YXIgZT0wO2U8dFtiXS5sZW5ndGg7ZSsrKWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZlt0W2JdW2VdLm1vZGVsXSl7dmFyIGE9IiI7RSYmKGE9dFtiXVtlXS5tb2RlbD09RT8nc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiIpO3IuYXBwZW5kKCI8b3B0aW9uICIrYSsnIHZhbHVlPSInK3RbYl1bZV0ubW9kZWwrJyI+Jyt0W2JdW2VdLm1vZGVsKyI8L29wdGlvbj4iKTtmW3RbYl1bZV0ubW9kZWxdPXRbYl1bZV0ubW9kZWx9RSYmKHIudHJpZ2dlcigiY2hhbmdlIiksRT0hMSl9fSk7ci5vbigiY2hhbmdlIixmdW5jdGlvbigpe3IudmFsKCQodGhpcykudmFsKCkpO3YuZW1wdHkoKTt2YXIgYj16LnZhbCgpLGY9eS52YWwoKSxlPSQodGhpcykudmFsKCk7CmlmKDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09aD8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclRyaW0\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7bGFuZ3VhZ2U6aCxtYWtlOmYsbW9kZWw6ZSx5ZWFyOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7di5hcHBlbmQoRCk7Zm9yKHZhciBkPTAsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgbT1hW2NdLnN0eWxlKyIgIithW2NdLnNlcmllcyx4PWFbY10udXZjO2QrKzt2LmFwcGVuZCgnPG9wdGlvbiBkYXRhLXN0eWxlaWQ9IicreCsnIiB2YWx1ZT0iJyttKyciPicrbSsiPC9vcHRpb24+Iil9MT09ZCYmJCgib3B0aW9uOmVxKDEpIix2KS5wcm9wKCJzZWxlY3RlZCIsInNlbGVjdGVkIil9fSk7ZWxzZSBpZigxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpKSQuYWpheCh7dHlwZToiUE9TVCIsCnVybDooIkVOR0xJU0giPT1oPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVHJpbT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpoLG1ha2U6Zixtb2RlbDplLHllYXI6Yn0sc3VjY2VzczpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKTt2LmFwcGVuZChEKTtmb3IodmFyIGQ9MCxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBtPWFbY10ubmFtZSx4PWFbY10uaWQ7ZCsrO3YuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJyt4KyciIHZhbHVlPSInK20rJyI+JyttKyI8L29wdGlvbj4iKX0xPT1kJiYkKCJvcHRpb246ZXEoMSkiLHYpLnByb3AoInNlbGVjdGVkIiwhMCl9fSk7ZWxzZSBpZigwPE9iamVjdC5rZXlzKHQpLmxlbmd0aCYmIiIhPXRoaXMudmFsdWUpe3YuYXBwZW5kKEQpO2ZvcihlPWY9MDtlPHRbYl0ubGVuZ3RoO2UrKyl0W2JdW2VdLm1vZGVsPT10aGlzLnZhbHVlJiYoZisrLHYuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJysKdFtiXVtlXS5zdHlsZWlkKyciIHZhbHVlPSInK3RbYl1bZV0udHJpbSsnIj4nK3RbYl1bZV0udHJpbSsiPC9vcHRpb24+IikpOzE9PWYmJiQoIm9wdGlvbjplcSgxKSIsdikucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpfX0pO2lmKDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCl8fDE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpezEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCk\/KHYub24oImNoYW5nZSIsZnVuY3Rpb24oKXskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJWYWx1ZT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOnt1dmM6JCh0aGlzKS5maW5kKCI6Y2hlY2tlZCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LApzdWNjZXNzOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKGEpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7aWYoYS5hZGRfZGVkdWN0X2xpc3QubGVuZ3RoKXtmb3IodmFyIGQ9MDtkPGEuYWRkX2RlZHVjdF9saXN0Lmxlbmd0aDtkKyspJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrYS5hZGRfZGVkdWN0X2xpc3RbZF0udW9jKyciPicrYS5hZGRfZGVkdWN0X2xpc3RbZF0ubmFtZSsiPC9vcHRpb24+Iik7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5tdWx0aXNlbGVjdCh7aGVhZGVyOiExLG5vbmVTZWxlY3RlZFRleHQ6Ik9wdGlvbnMiLHNlbGVjdGVkVGV4dDpmdW5jdGlvbihjLG0seCl7cmV0dXJuICQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPwpjKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKTpjKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKSsoMTxjPyJzIjoiIil9LGNsYXNzZXM6InRyYWRlSW5CYXJNdWx0aXNlbGVjdCJ9KS5tdWx0aXNlbGVjdCgicmVmcmVzaCIpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5vcGVuVmVoaWNsZU9wdGlvbnMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5zaG93KCl9ZWxzZSAkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubXVsdGlzZWxlY3RWZWhpY2xlT3B0aW9ucyIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAub3BlblZlaGljbGVPcHRpb25zIikuc2hvdygpfX0pfSksbi5vbigicGFzdGUiLGZ1bmN0aW9uKCl7bGV0IGE9JCh0aGlzKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50cmlnZ2VyKCJrZXl1cCIpfSwKMjAwKX0pLG4ub24oImtleXVwIixmdW5jdGlvbigpeyQodGhpcykudmFsKCkmJjE3PD0kKHRoaXMpLnZhbCgpLmxlbmd0aCYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVmFsdWU\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7dmluOiQodGhpcykudmFsKCkscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihhKXthJiZhLm1vZGVsJiZhLm1vZGVsX3llYXI\/KG4uZmlyc3QoKS5hdHRyKCJ2aW5Nb2RlbCIsYS5tb2RlbCksbi5maXJzdCgpLmF0dHIoInZpblllYXIiLGEubW9kZWxfeWVhcikseS52YWwoYS5tYWtlKSx5LmZpcnN0KCkudHJpZ2dlcigiY2hhbmdlIiksZigpLGUoKSk6YigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KIlVucmVjb2duaXplZCBWSU4iOiJOSVYgbm9uIHJlY29ubnUiKX19KX0pKToxPT0kKCJpbnB1dFtuYW1lPWlzQWNjdXRyYWRlXSIpLnZhbCgpJiYodi5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ09wdGlvbnM\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7aWQ6JCh0aGlzKS5maW5kKCI6Y2hlY2tlZCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb24iKS5yZW1vdmUoKTtpZihhLmxlbmd0aCl7Zm9yKHZhciBkPQowO2Q8YS5sZW5ndGg7ZCsrKSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2FbZF0uaWQrJyI+JythW2RdLm5hbWUrIjwvb3B0aW9uPiIpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykubXVsdGlzZWxlY3Qoe2hlYWRlcjohMSxub25lU2VsZWN0ZWRUZXh0OiJPcHRpb25zIixzZWxlY3RlZFRleHQ6ZnVuY3Rpb24oYyxtLHgpe3JldHVybiAkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9jKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKTpjKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKSsoMTxjPyJzIjoiIil9LGNsYXNzZXM6InRyYWRlSW5CYXJNdWx0aXNlbGVjdCJ9KS5tdWx0aXNlbGVjdCgicmVmcmVzaCIpOwokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAub3BlblZlaGljbGVPcHRpb25zIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIikuc2hvdygpfWVsc2UgJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm9wZW5WZWhpY2xlT3B0aW9ucyIpLnNob3coKX19KX0pLG4ub24oInBhc3RlIixmdW5jdGlvbigpe2xldCBhPSQodGhpcyk7c2V0VGltZW91dChmdW5jdGlvbigpe2EudHJpZ2dlcigia2V5dXAiKX0sMjAwKX0pLG4ub24oImtleXVwIixmdW5jdGlvbigpeyQodGhpcykudmFsKCkmJjE3PD0kKHRoaXMpLnZhbCgpLmxlbmd0aCYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVmluP3dzd2lkdGg9MCIsCmRhdGFUeXBlOiJqc29uIixkYXRhOnt2aW46JCh0aGlzKS52YWwoKSxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGEpe2EmJmEubW9kZWwmJmEueWVhcj8obi5maXJzdCgpLmF0dHIoInZpbk1vZGVsIixhLm1vZGVsKSxuLmZpcnN0KCkuYXR0cigidmluWWVhciIsYS55ZWFyKSx5LnZhbChhLm1ha2UpLHkuZmlyc3QoKS50cmlnZ2VyKCJjaGFuZ2UiKSxmKCksZSgpKTpiKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJVbnJlY29nbml6ZWQgVklOIjoiTklWIG5vbiByZWNvbm51Iil9fSl9KSk7ZnVuY3Rpb24gYihhKXt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIik7aWYoZCl7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZFdhcm5pbmdNZXNzYWdlIik7YyYmYy5yZW1vdmUoKTsKYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Yy5pZD0icmVkV2FybmluZ01lc3NhZ2UiO2MudGV4dENvbnRlbnQ9YTtjLnN0eWxlLmNvbG9yPSJyZWQiO2Muc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtjLnN0eWxlLnRvcD0iNTAlIjtjLnN0eWxlLnJpZ2h0PSI4cHgiO2Muc3R5bGUubWFyZ2luVG9wPSI0cHgiO2Muc3R5bGUuZm9udFNpemU9IjExcHgiO2Muc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKC01MCUpIjtkLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7ZC5hcHBlbmRDaGlsZChjKX19ZnVuY3Rpb24gZigpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWRXYXJuaW5nTWVzc2FnZSIpO2EmJmEucmVtb3ZlKCl9ZnVuY3Rpb24gZSgpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuaXZNYWtlTW9kZWxTZWxlY3RNb2RlbCIpO2EmJmEuY2xpY2soKTsoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJhZGVJbkJhclBvcHVwVHJpbSIpKSYmCmEuZm9jdXMoKX19fX07Ci8qKiAvanMvdHJhZGVpbnBvcHVwLmpzICoqLwp2YXIgX19fZDJjX3RyYWRlaW5wb3B1cGpzX2Nfb249IjIwMjYtMDItMjAgMTE6MzA6MzMiOyd1c2Ugc3RyaWN0Jzt2YXIgdHJhZGVpbnBvcHVwZDJjPXtpbml0OmZ1bmN0aW9uKCl7fSxvbkJlZm9yZVN1Ym1pdDpmdW5jdGlvbihhKXtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iTkVXIjtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJuZXciO2Euc2V0dGluZ3MudmVoaWNsZVN0YXRlPSJuZXciO2lmKCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwiMCI9PSQoImlucHV0W25hbWU9dHJhZGVJbkhhc05ld0RlcF0iKS52YWwoKSllbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iVVNFRCIsZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0idXNlZCIsYS5zZXR0aW5ncy52ZWhpY2xlU3RhdGU9InVzZWQiO2VtYWlsSGFuZGxlci5tYWtlPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5tb2RlbD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCk7ZW1haWxIYW5kbGVyLnllYXI9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUxNQUtFIl0nKS52YWwoJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkpOwokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTE1PREVMIl0nKS52YWwoJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTFlFQVIiXScpLnZhbCgkKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iU1RPQ0tOVU1CRVIiXScpLnZhbCgkKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCkpOyQoIiN2ZWhpY2xlY29sb3IiKS5sZW5ndGgmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNPTE9SIl0nKS52YWwoJCgiI3ZlaGljbGVjb2xvciIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS52YWwoKSYmKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikudmFsKCkpLAplbWFpbEhhbmRsZXIuY2FyMl9tYWtlPSQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikudmFsKCkmJigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikudmFsKCkpLGVtYWlsSGFuZGxlci5jYXIyX21vZGVsPSQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS52YWwoKSYmKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSSU1FWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikudmFsKCkpLCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0gb3B0aW9uOnNlbGVjdGVkIikuYXR0cigiZGF0YS1zdHlsZWlkIikpLAplbWFpbEhhbmRsZXIuY2FyMl90cmltPSQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLnZhbCgpJiYoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS52YWwoKSksZW1haWxIYW5kbGVyLmNhcjJfeWVhcj0kKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwTml2IikubGVuZ3RoJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE5pdiIpLnZhbCgpJiYkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJWSU5FWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBOaXYiKS52YWwoKSk7ZW1haWxIYW5kbGVyLmNhcjJfb2RvbWV0ZXI9JCgiI3JlYmF0ZU1pbGVhZ2VfdHJhZGVJbkJhclBvcHVwIikudmFsKCk7CmEuc2V0dGluZ3MuY2xvc2VPblN1Ym1pdD0hMTtpZighJCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLmxlbmd0aCYmMD09JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKCkmJjEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpcmV0dXJuIHRoaXMub25CZWZvcmVTdWJtaXRDQkJDYWxsKGEpLCExO2lmKCEkKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikubGVuZ3RoJiYwPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoKSYmMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSlyZXR1cm4gdGhpcy5vbkJlZm9yZVN1Ym1pdEFjY3V0cmFkZUNhbGwoYSksITE7aWYoJCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLmxlbmd0aCYmMT09JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKCkmJgoxPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoKSYmMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSl0aGlzLm9uQmVmb3JlU3VibWl0Q0JCTWVzc2FnZShhKTtlbHNlIGlmKCQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS5sZW5ndGgmJjE9PSQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgpJiYxPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoKSYmMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSl0aGlzLm9uQmVmb3JlU3VibWl0QWNjdXRyYWRlTWVzc2FnZShhKTtpZigiMSI9PT0kKCJpbnB1dFtuYW1lPXN0ZXAzYWN0aXZlXSIpLnZhbCgpJiYiMCI9PT0kKCJpbnB1dFtuYW1lPXN0ZXAzZG9uZV0iKS52YWwoKSlyZXR1cm4gdGhpcy5pbml0VHJhZGVJblN0ZXAzKCksITE7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0PQohMH0sb25BZnRlclN1Ym1pdDpmdW5jdGlvbihhKXskKCJib2R5IikudHJpZ2dlcigiVHJhZGVJbkJhclBvcHVwV2lkZ2V0X29uU3VibWl0IixbXSk7YT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPWRlZmF1bHRTdWJtaXRNZXNhZ2VdIikudmFsKCk7MD09JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJBdmFpbGFibGVWYWx1ZXNdIikudmFsKCkmJjEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkmJihhPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9bm9WYWx1ZVN1Ym1pdE1lc2FnZV0iKS52YWwoKSk7bGV0IGw9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluTG93XSIpLnZhbCgpfHwwLGc9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoKXx8MCxiPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS52YWwoKXx8CjA7dmFyIGQ9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCk6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCk7aWYoMT09JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1SRUFMVElNRUVTVElNQVRFXSIpLnZhbCgpKXt2YXIgaD0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk7CmxldCBjPSc8c3BhbiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNnB4OyI+PGJyPicrZCsiPC9zcGFuPiIsbj0iIjskKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iMSI9PWg\/Yys9Ijxicj5Fc3RpbWF0ZWQgVmFsdWU6ICQiK2I6KGMrPSI8YnI+TWluaW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiK2wsYys9Ijxicj5NYXhpbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIrZyk6IjEiPT1oP2MrPSI8YnI+VmFsZXVyIGVzdGltw6llOiAiK2IrIiQiOihjKz0iPGJyPlZhbGV1ciBlc3RpbcOpZSBtaW5pbWFsZTogIitsKyIkIixjKz0iPGJyPlZhbGV1ciBlc3RpbcOpZSBtYXhpbWFsZTogIitnKyIkIik7bis9JzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O21hcmdpbi10b3A6MTBweDsiPicrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKSsKIjwvZGl2PiI7YSs9JzxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjIwcHg7Ij4nK2MrIjwvZGl2PiIrbn0kKCIjZW1haWxTdWNjZXNzTWVzc2FnZV9UcmFkZUluQmFyUG9wdXBDb250YWluZXIgcCIpLmh0bWwoIjxicj4iK2EpO2xldCBmPWlzTmFOKHBhcnNlSW50KGIpKT9nOmI7aXNOYU4ocGFyc2VJbnQoZikpfHwoYT1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJUcmFkZUluQWN0aW9uQm94IixvbkNvbXBsZXRlOmM9PntjLmRhdGFzZXQuY29tcGxfdHh0X2ZyPWMuZGF0YXNldC5jb21wbF90eHRfZnIucmVwbGFjZSgieyRUUkFERUNBUn0iLGQpLnJlcGxhY2UoInskVFJBREVWQUx9IixmKTtjLmRhdGFzZXQuY29tcGxfdHh0X2VuPWMuZGF0YXNldC5jb21wbF90eHRfZW4ucmVwbGFjZSgieyRUUkFERUNBUn0iLGQpLnJlcGxhY2UoInskVFJBREVWQUx9IixmKTt2YXIgbj17eWVhcjokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKSwKbWFrZTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSxtb2RlbDokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCksdHJpbTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKSx2YWx1ZTpwYXJzZUludChmLnJlcGxhY2UoIiwiLCIiKSl9O19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiLEpTT04uc3RyaW5naWZ5KG4pLDEpO2lmKDE+cGFyc2VJbnQoZikpe249JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRW5dIikudmFsKCk7bGV0IHI9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRnJdIikudmFsKCk7Yy5kYXRhc2V0LmNvbXBsX3R4dF9mcj1gJHtkfSB8ICR7cn1gO2MuZGF0YXNldC5jb21wbF90eHRfZW49YCR7ZH0gfCAke259YH19LGZvcmNlVXBkYXRlOiEwfX0pLApkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGEpKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluTG93XSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoMCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgwKTskKCIudHJhZGVJbkJhclN0ZXAxIikuc2hvdygpOyQoIi50cmFkZUluQmFyU3RlcDJUaXRsZSIpLnRleHQoJCgiLnRyYWRlSW5CYXJTdGVwMlRpdGxlIikudGV4dCgpLnJlcGxhY2UoIiAiK2QsIiIpKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXSIpLnJlbW92ZUNsYXNzKCJyZXFSYWRpbyIpOyQoIi50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKDApOwokKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikucHJvcCgiY2hlY2tlZCIsITEpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iUVVFU1RJT05TIl0nKS52YWwoIiIpfSxvbkJlZm9yZU9wZW46ZnVuY3Rpb24oKXtmb3IodmFyIGE9Z2V0VXJsVmFycygpLGw9T2JqZWN0LmtleXMoYSksZz1sLmxlbmd0aCxiPXt9O2ctLTspe3ZhciBkPWxbZ107YltkLnRvTG93ZXJDYXNlKCldPWFbZF19YT1iO3ZhciBoPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5NYWtlIl0nKS52YWwoKT8kKCdzZWxlY3RbbmFtZT0idHJhZGluTWFrZSJdJykudmFsKCk6ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyKGEudG1ha2U\/YS50bWFrZS50b0xvd2VyQ2FzZSgpOiIiKSxmPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJykudmFsKCk\/CiQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJykudmFsKCk6ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyKGEudG1vZGVsP2EudG1vZGVsLnRvTG93ZXJDYXNlKCk6IiIpO2w9JCgnc2VsZWN0W25hbWU9InRyYWRpblRyaW0iXScpLnZhbCgpPyQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5UcmltIl0nKS52YWwoKToiICI7Zz0kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJykudmFsKCk\/JCgnc2VsZWN0W25hbWU9InRyYWRpblRyaW0iXSBvcHRpb246c2VsZWN0ZWQnKS5hdHRyKCJkYXRhLXN0eWxlaWQiKToiICI7dmFyIGM9JCgnc2VsZWN0W25hbWU9InRyYWRpblllYXIiXScpLnZhbCgpPyQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5ZZWFyIl0nKS52YWwoKTphLnR5ZWFyO2E9JCgnaW5wdXRbbmFtZT0idHJhZGluVmluIl0nKS52YWwoKT8kKCdpbnB1dFtuYW1lPSJ0cmFkaW5WaW4iXScpLnZhbCgpOiIiOyQoInRyYWRlSW5TZWxlY3RlZE1ha2UiKS52YWwoaCk7JCgidHJhZGVJblNlbGVjdGVkTW9kZWwiKS52YWwoZik7CiQoInRyYWRlSW5TZWxlY3RlZFRyaW0iKS52YWwobCk7JCgidHJhZGVJblNlbGVjdGVkWWVhciIpLnZhbChjKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbChoKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoZik7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVFJJTUVYIl0nKS52YWwobCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoYyk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbChnKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJWSU5FWCJdJykudmFsKGEpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2Upe3ZhciBuO2E9bnVsbCE9KG49Y2xpZW50U3RvcmFnZS5nZXQoImZpcnN0bmFtZSIpKT9uOiIiO3ZhciByO249bnVsbCE9CihyPWNsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpKT9yOiIiO3I9YSsoIiIhPW4\/IiAiK2NsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpOiIiKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJGTkFNRSJdJykudmFsKHIpO3ZhciBlOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkVNQUlMUEhPTkUiXScpLnZhbChudWxsIT0oZT1jbGllbnRTdG9yYWdlLmdldCgiZW1haWwiKSk\/ZToiIik7dmFyIHU7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUwiXScpLnZhbChudWxsIT0odT1jbGllbnRTdG9yYWdlLmdldCgicGhvbmUiKSk\/dToiIil9ZW1haWxIYW5kbGVyLmNhcjJfbWFrZT1oO2VtYWlsSGFuZGxlci5jYXIyX21vZGVsPWY7ZW1haWxIYW5kbGVyLmNhcjJfdHJpbT1sO2VtYWlsSGFuZGxlci5jYXIyX3llYXI9YztlbWFpbEhhbmRsZXIuY2FyMl9vZG9tZXRlcj0kKCIjcmViYXRlTWlsZWFnZV90cmFkZUluQmFyUG9wdXAiKS52YWwoKTsKZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Ik5FVyI7aWYoInVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCIwIj09JCgiaW5wdXRbbmFtZT10cmFkZUluSGFzTmV3RGVwXSIpLnZhbCgpKWVtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJVU0VEIjtlPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIgIitjKyIgIitoKyIgIitmOiIgIitoKyIgIitmKyIgIitjOyQoIiN0cmFkZUluQmFyUG9wdXBTZWxlY3RlZFZlaGljbGUiKS5odG1sKGUpO0Nvb2tpZXMuZ2V0KCJwb3B1cFBhZ2VWaWV3cyIpfHxDb29raWVzLnNldCgicG9wdXBQYWdlVmlld3MiLCIwIixudWxsLCIvIik7aWYoIjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKXx8IiI9PWh8fCIiPT1mfHwiIj09Yyl7IjEiIT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmKCQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjYzNXB4IiksJCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwKIjYzNXB4IikpOyQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikuYWRkQ2xhc3MoInJlcXVpcmVkIik7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5lbXB0eSgpOyQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLmFkZENsYXNzKCJyZXF1aXJlZCIpOyQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLmVtcHR5KCk7JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS5hZGRDbGFzcygicmVxdWlyZWQiKTskKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLmVtcHR5KCk7InZpbiIhPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQk1PREVMU0VMRUNUIl0nKS52YWwoKT8oJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2VEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSwkKCIjdHJhZGVJbkJhclBvcHVwTW9kZWxEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSwkKCIjdHJhZGVJbkJhclBvcHVwWWVhckRpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsCiJpbmxpbmUtYmxvY2siKSk6JCgiI3RyYWRlSW5CYXJQb3B1cE5pdkRpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpOzAhPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQk1PREVMU0VMRUNUIl0nKS52YWwoKSYmKCQoJy5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdFt2YWx1ZT0iJyskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJNT0RFTFNFTEVDVCJdJykudmFsKCkrJyJdJykucHJvcCgiY2hlY2tlZCIsITApLCQoIi5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIiKS5zaG93KCkpOyQoIiN0cmFkZUluQmFyUG9wdXBUcmltRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIik7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hZGRDbGFzcygicmVxdWlyZWQiKTskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmVtcHR5KCk7ZT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KIiB0cmFkZS1pbiEiOiIgw6ljaGFuZ2UhIjskKCIjdHJhZGVJbkJhclBvcHVwU2VsZWN0ZWRWZWhpY2xlIikuaHRtbChlKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubml2TWFrZU1vZGVsU2VsZWN0IikubGVuZ3RoJiYkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubml2TWFrZU1vZGVsU2VsZWN0IikudHJpZ2dlcigiY2hhbmdlIik7dmFyIHE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkVOR0xJU0giOiJGUkVOQ0giOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PXE\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJEYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOnF9LHN1Y2Nlc3M6ZnVuY3Rpb24obSl7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IiI+JysoIkVOR0xJU0giPT1xPyJNYWtlIjoiTWFycXVlIikrIjwvb3B0aW9uPiIpOwpmb3IodmFyIGs9MDtrPG0ubGVuZ3RoO2srKyl7dmFyIHA9bVtrXS5tYWtlLnRvTG93ZXJDYXNlKCk9PWgudG9Mb3dlckNhc2UoKT8nc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiI7bGV0IHQ9MT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKT9tW2tdLm1ha2UudG9VcHBlckNhc2UoKTptW2tdLm1ha2U7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5hcHBlbmQoIjxvcHRpb24gIitwKycgdmFsdWU9IicrdCsnIj4nK21ba10ubWFrZSsiPC9vcHRpb24+Iil9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS50cmlnZ2VyKCJjaGFuZ2UiKTskKCIjdHJhZGVJbkJhclBvcHVwTml2IikubGVuZ3RoJiYkKCIjdHJhZGVJbkJhclBvcHVwTml2IikudHJpZ2dlcigia2V5dXAiKX19KX1lbHNlIiAiPT1sPygkKCIjdHJhZGVJbkJhclBvcHVwVHJpbURpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpLCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYWRkQ2xhc3MoInJlcXVpcmVkIiksCiQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuZW1wdHkoKSxxPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIiwxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpPyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PXE\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJUcmltP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOnEsbWFrZTpoLG1vZGVsOmYseWVhcjpjfSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09cT8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+Iik7Zm9yKHZhciBrPTA7azxtLmxlbmd0aDtrKyspe3ZhciBwPW1ba10uc3R5bGUrIiAiK21ba10uc2VyaWVzLHQ9bVtrXS51dmM7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1zdHlsZWlkPSInKwp0KyciIHZhbHVlPSInK3ArJyI+JytwKyI8L29wdGlvbj4iKX19fSk6MT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKT8kLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1xPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVHJpbT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpxLG1ha2U6aCxtb2RlbDpmLHllYXI6Y30sc3VjY2VzczpmdW5jdGlvbihtKXskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iIj4nKygiRU5HTElTSCI9PXE\/IlRyaW0iOiJWZXJzaW9uIikrIjwvb3B0aW9uPiIpO2Zvcih2YXIgaz0wO2s8bS5sZW5ndGg7aysrKXt2YXIgcD1tW2tdLm5hbWUsdD1tW2tdLmlkOyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJyt0KyciIHZhbHVlPSInK3ArJyI+JytwKyI8L29wdGlvbj4iKX19fSk6CiQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PXE\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJEYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOnEsbWFrZTpofSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09cT8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+Iik7Zm9yKHZhciBrPTA7azxtW2NdLmxlbmd0aDtrKyspbVtjXVtrXS5tb2RlbC50b0xvd2VyQ2FzZSgpPT1mLnRvTG93ZXJDYXNlKCkmJiQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK21bY11ba10udHJpbSsnIj4nK21bY11ba10udHJpbSsiPC9vcHRpb24+Iil9fSkpOigkKCIjdHJhZGVJbkJhclBvcHVwTWFrZURpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLnJlbW92ZUNsYXNzKCJyZXF1aXJlZCIpLAokKCIjdHJhZGVJbkJhclBvcHVwTW9kZWxEaXZDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikucmVtb3ZlQ2xhc3MoInJlcXVpcmVkIiksJCgiI3RyYWRlSW5CYXJQb3B1cFllYXJEaXZDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS5yZW1vdmVDbGFzcygicmVxdWlyZWQiKSwkKCIjdHJhZGVJbkJhclBvcHVwVHJpbURpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLnJlbW92ZUNsYXNzKCJyZXF1aXJlZCIpLDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCk\/KCQoIi5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cE5pdkRpdkNvbnRhaW5lciIpLmhpZGUoKSwkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJWYWx1ZT93c3dpZHRoPTAiLApkYXRhVHlwZToianNvbiIsZGF0YTp7dXZjOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoKSxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm9wZW5WZWhpY2xlT3B0aW9ucyIpLnNob3coKX19KSk6MT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSYmKCQoIi5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cE5pdkRpdkNvbnRhaW5lciIpLmhpZGUoKSwKJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nT3B0aW9ucz93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntpZDokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCkscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihtKXskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbiIpLnJlbW92ZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5vcGVuVmVoaWNsZU9wdGlvbnMiKS5zaG93KCl9fSkpKTsKYT1nZXRVcmxWYXJzKCk7ZT1hLmhhc093blByb3BlcnR5KCJ0cmFkZS12YWx1ZSIpJiYieWVzIj09YVsidHJhZGUtdmFsdWUiXTt1PWEuaGFzT3duUHJvcGVydHkoInRyYWRlLXZhbHVlIikmJiJubyI9PWFbInRyYWRlLXZhbHVlIl07cj0kKCdpbnB1dFtuYW1lPSJDQkJDaGVja1VzZXIiXScpLmxlbmd0aD9hdG9iKCQoJ2lucHV0W25hbWU9IkNCQkNoZWNrVXNlciJdJykudmFsKCkpOiIiO3V8fCI2Ni4xMzAuMTA3LjE1NyIhPXImJjEhPUNvb2tpZXMuZ2V0KCJEMkNVVUlEIikmJiFlfHwxPT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpfHwoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRk5BTUUiXScpLmhpZGUoKSwkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTFBIT05FIl0nKS5oaWRlKCksJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUwiXScpLmhpZGUoKSwkKCIudHJhZGVJbkJhckRlYWxlck1lc3NhZ2UiKS5zaG93KCkpOwokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT0iRU1BSUxQSE9ORSJdJykuZWFjaCgobSxrKT0+e0lNYXNrKGsse21hc2s6W3ttYXNrOiIwMDAgMDAwLTAwMDAifSx7bWFzazoiMSAwMDAgMDAwLTAwMDAifV19KX0pO3RoaXMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSxvbkJlZm9yZVZhbGlkYXRpb246ZnVuY3Rpb24oYSl7dmFyIGw9Z2V0VXJsVmFycygpO2E9bC5oYXNPd25Qcm9wZXJ0eSgidHJhZGUtdmFsdWUiKSYmInllcyI9PWxbInRyYWRlLXZhbHVlIl07bD1sLmhhc093blByb3BlcnR5KCJ0cmFkZS12YWx1ZSIpJiYibm8iPT1sWyJ0cmFkZS12YWx1ZSJdO3ZhciBnPSQoJ2lucHV0W25hbWU9IkNCQkNoZWNrVXNlciJdJykubGVuZ3RoP2F0b2IoJCgnaW5wdXRbbmFtZT0iQ0JCQ2hlY2tVc2VyIl0nKS52YWwoKSk6IiI7aWYoIWwmJigiNjYuMTMwLjEwNy4xNTciPT1nfHwxPT1Db29raWVzLmdldCgiRDJDVVVJRCIpfHxhKSYmMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSl7JCgiI3JlYmF0ZU1pbGVhZ2VfdHJhZGVJbkJhclBvcHVwIikucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpOwokKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS52YWwoKSYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS52YWwoKSk7JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS52YWwoKSYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS52YWwoKSYmKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSSU1FWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikudmFsKCkpLAokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIG9wdGlvbjpzZWxlY3RlZCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpKSk7JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikudmFsKCkmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikudmFsKCkpO2lmKDE+JCgiI3JlYmF0ZU1pbGVhZ2VfdHJhZGVJbkJhclBvcHVwIikudmFsKCkpcmV0dXJuICQoIiNyZWJhdGVNaWxlYWdlX3RyYWRlSW5CYXJQb3B1cCIpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSwhMTthPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9KS5nZXQoKS5qb2luKCIsICIpOwp2YXIgYj0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHR9KS5nZXQoKS5qb2luKCIsICIpO2w9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iS00iXScpLnZhbCgpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3V2YzokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCksb3B0aW9uczphLHZlaGljbGVLTTpsLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LApzdWNjZXNzOmZ1bmN0aW9uKGQpe3ZhciBoPWQuY2FuYWRpYW5fdHJhZGVpbl92YWx1ZXx8ZC5iYXNlX3RyYWRlaW5fYXZnfHwwLGY9ZC5jYW5hZGlhbl90cmFkZWluX2xvd3x8ZC5iYXNlX3RyYWRlaW5fcm91Z2h8fDA7ZD1kLmNhbmFkaWFuX3RyYWRlaW5faGlnaHx8ZC5iYXNlX3RyYWRlaW5fY2xlYW58fDA7aD0iJCIrRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGgpO2Y9IiQiK0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihmKTtkPSIkIitEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoZCk7dmFyIGM9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSSU1FWCJdJykudmFsKCk6CiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJUUklNRVgiXScpLnZhbCgpO2ImJihjKz0iICgiK2IrIikiKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJEZWFsZXJTdGVwTWFrZU1vZGVsWWVhciIpLnRleHQoYyk7IjEiPT0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk\/KCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQk1pblZhbHVlIikucGFyZW50KCkuaGlkZSgpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQk1heFZhbHVlIikucGFyZW50KCkuaGlkZSgpKToKJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyQ0JCQXZnVmFsdWUiKS5wYXJlbnQoKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyQ0JCTWluVmFsdWUiKS50ZXh0KGYpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQk1heFZhbHVlIikudGV4dChkKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJDQkJBdmdWYWx1ZSIpLnRleHQoaCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIikuc2hvdygpfX0pO3JldHVybiExfX0sb25CZWZvcmVTdWJtaXRDQkJDYWxsOmZ1bmN0aW9uKGEpe3ZhciBsPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9KS5nZXQoKS5qb2luKCIsICIpLApnPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH0pLmdldCgpLmpvaW4oIiwgIik7IiIhPWcmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlFVRVNUSU9OUyJdJykudmFsKGcpO2c9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iS00iXScpLnZhbCgpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbkJhclZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e3V2YzokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCksb3B0aW9uczpsLHZlaGljbGVLTTpnLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LApzdWNjZXNzOmZ1bmN0aW9uKGIpe3ZhciBkPWIuY2FuYWRpYW5fdHJhZGVpbl92YWx1ZXx8Yi5iYXNlX3RyYWRlaW5fYXZnfHwwLGg9Yi5jYW5hZGlhbl90cmFkZWluX2xvd3x8Yi5iYXNlX3RyYWRlaW5fcm91Z2h8fDA7Yj1iLmNhbmFkaWFuX3RyYWRlaW5faGlnaHx8Yi5iYXNlX3RyYWRlaW5fY2xlYW58fDA7dmFyIGY9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRSJdJykudmFsKCksYz0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJBRERFRFZBTFVFTUFLRVMiXScpLnZhbCgpLG49JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRVRZUEUiXScpLnZhbCgpLHI9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpOzAhPWYmJiIiIT1jJiYtMTxjLnNwbGl0KCI7IikuaW5kZXhPZigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKSYmCigiY2FzaCI9PW4\/KGQrPXBhcnNlSW50KGYpLGgrPXBhcnNlSW50KGYpLGIrPXBhcnNlSW50KGYpKToicGVyY2VudGFnZSI9PW4mJihmPTErZi8xMDAsZCo9ZixoKj1mLGIqPWYpKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIixkKTtpZigkKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS5sZW5ndGgpe2Y9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCk7Yz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKTtuPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKTtsZXQgaz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwoYyk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1vZGVsXSIpLnZhbChuKTsKJCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblllYXJdIikudmFsKGYpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5UcmltXSIpLnZhbChrKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVmFsdWVdIikudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIpKTskKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciKSk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIiwiIil9aWYoMT09YS5zZXR0aW5ncy5mb3JtdWx0aXN0ZXApe2xldCBrPWlzTmFOKHBhcnNlSW50KGQpKT8wOmQ7az1EMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoayk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMXSIpLnZhbCgpOwplbWFpbEhhbmRsZXIudXNlclBob25lPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxQSE9ORV0iKS52YWwoKTt2YXIgZTtkPW51bGwhPShlPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkpP2U6IiI7dmFyIHU7ZT1udWxsIT0odT1kLnNwbGl0KCIgIilbMF0pP3U6IiI7dmFyIHE7dT1udWxsIT0ocT1kLnNwbGl0KCIgIilbMV0pP3E6IiI7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9ZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPXU7dmFyIG09JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCk6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsKIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpO2lzTmFOKHBhcnNlSW50KGspKXx8KHE9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiVHJhZGVJbkFjdGlvbkJveCIsb25Db21wbGV0ZTpwPT57cC5kYXRhc2V0LmNvbXBsX3R4dF9mcj1wLmRhdGFzZXQuY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskVFJBREVDQVJ9IixtKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIsayk7cC5kYXRhc2V0LmNvbXBsX3R4dF9lbj1wLmRhdGFzZXQuY29tcGxfdHh0X2VuLnJlcGxhY2UoInskVFJBREVDQVJ9IixtKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIsayk7dmFyIHQ9e3llYXI6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCksbWFrZTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSwKbW9kZWw6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NT0RFTEVYXSIpLnZhbCgpLHRyaW06JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCksdmFsdWU6cGFyc2VJbnQoay5yZXBsYWNlKCIsIiwiIikpfTtfbG9jYWxTdG9yYWdlU2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIixKU09OLnN0cmluZ2lmeSh0KSwxKTtpZigxPnBhcnNlSW50KGspKXt0PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9emVyb1ZhbHVlTWVzc2FnZUVuXSIpLnZhbCgpO2xldCB2PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9emVyb1ZhbHVlTWVzc2FnZUZyXSIpLnZhbCgpO3AuZGF0YXNldC5jb21wbF90eHRfZnI9YCR7bX0gfCAke3Z9YDtwLmRhdGFzZXQuY29tcGxfdHh0X2VuPWAke219IHwgJHt0fWB9fSxmb3JjZVVwZGF0ZTohMH19KSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHEpKTthLnNldHRpbmdzLmZvcm11bHRpc3RlcD0KITE7YS5jbG9zZSgpfWVsc2UgJCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKDEpLCIxIj09cj9iPWg9InJlbW92ZWVtcHR5IjpkPSJyZW1vdmVlbXB0eSIsMDxofHwwPGJ8fDA8ZD8oJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkF2Z10iKS52YWwoRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGQpKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluTG93XSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoaCkpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5IaWdoXSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYikpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoMSksJCgiLnRyYWRlSW5CYXJTdGVwMSIpLmhpZGUoKSxtPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCkrCiIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSwkKCIudHJhZGVJbkJhclN0ZXAyVGl0bGUiKS50ZXh0KCQoIi50cmFkZUluQmFyU3RlcDJUaXRsZSIpLnRleHQoKSsiICIrbSksJCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF0iKS5hZGRDbGFzcygicmVxUmFkaW8iKSwkKCIudHJhZGVJbkJhclN0ZXAyIikuc2hvdygpKToocG9wdXBJc1N1Ym1pdHRpbmc9ITEsJCgiaW5wdXRbbmFtZT1zdGVwM2RvbmVdIikudmFsKDEpLAokKCIudHJhZGVJbkJhclBvcHVwU3VibWl0IikudHJpZ2dlcigiY2xpY2siKSl9fSl9LG9uQmVmb3JlU3VibWl0QWNjdXRyYWRlQ2FsbDpmdW5jdGlvbihhKXt2YXIgbD0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSkuZ2V0KCkuam9pbigiLCAiKSxnPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uOnNlbGVjdGVkIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH0pLmdldCgpLmpvaW4oIiwgIik7IiIhPWcmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlFVRVNUSU9OUyJdJykudmFsKGcpO2c9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iS00iXScpLnZhbCgpO3ZhciBiPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJDT0xPUkVYIl0nKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS5hdHRyKCJkYXRhLWlkIik7CiQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvZ2V0VHJhZGVJbk1uZ1ZhbHVlP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2lkOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoKSxvcHRpb25zOmwsa206Zyxjb2xvcjpiLHByb3ZpbmNlOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ImRlYWxlclByb3ZpbmNlVHJhZGVJbiJdJykudmFsKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7dmFyIGg9ZC5hdmd8fDAsZj1kLmxvd3x8MDtkPWQuaGlnaHx8MDt2YXIgYz0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJBRERFRFZBTFVFIl0nKS52YWwoKSxuPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQkFEREVEVkFMVUVNQUtFUyJdJykudmFsKCksCnI9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRVRZUEUiXScpLnZhbCgpLGU9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpOzAhPWMmJiIiIT1uJiYtMTxuLnNwbGl0KCI7IikuaW5kZXhPZigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKSYmKCJjYXNoIj09cj8oaCs9cGFyc2VJbnQoYyksZis9cGFyc2VJbnQoYyksZCs9cGFyc2VJbnQoYykpOiJwZXJjZW50YWdlIj09ciYmKGM9MStjLzEwMCxoKj1jLGYqPWMsZCo9YykpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciLGgpO2lmKCQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLmxlbmd0aCl7Yz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKTtuPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TUFLRUVYXSIpLnZhbCgpOwpyPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKTtsZXQgcD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwobik7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1vZGVsXSIpLnZhbChyKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluWWVhcl0iKS52YWwoYyk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblRyaW1dIikudmFsKHApOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5WYWx1ZV0iKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIikpOyQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIpKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciLAoiIil9aWYoMT09YS5zZXR0aW5ncy5mb3JtdWx0aXN0ZXApe2xldCBwPWlzTmFOKHBhcnNlSW50KGgpKT8wOmg7cD1EMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIocCk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMXSIpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTFBIT05FXSIpLnZhbCgpO3ZhciB1O2g9bnVsbCE9KHU9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1GTkFNRV0iKS52YWwoKSk\/dToiIjt2YXIgcTt1PW51bGwhPShxPWguc3BsaXQoIiAiKVswXSk\/cToiIjt2YXIgbTtxPW51bGwhPShtPWguc3BsaXQoIiAiKVsxXSk\/bToiIjtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT11O2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9cTt2YXIgaz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpKwoiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCk6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCk7aXNOYU4ocGFyc2VJbnQocCkpfHwobT1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJUcmFkZUluQWN0aW9uQm94IixvbkNvbXBsZXRlOnQ9Pnt0LmRhdGFzZXQuY29tcGxfdHh0X2ZyPXQuZGF0YXNldC5jb21wbF90eHRfZnIucmVwbGFjZSgieyRUUkFERUNBUn0iLGspLnJlcGxhY2UoInskVFJBREVWQUx9IixwKTt0LmRhdGFzZXQuY29tcGxfdHh0X2VuPQp0LmRhdGFzZXQuY29tcGxfdHh0X2VuLnJlcGxhY2UoInskVFJBREVDQVJ9IixrKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIscCk7dmFyIHY9e3llYXI6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCksbWFrZTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSxtb2RlbDokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCksdHJpbTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKSx2YWx1ZTpwYXJzZUludChwLnJlcGxhY2UoIiwiLCIiKSl9O19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiLEpTT04uc3RyaW5naWZ5KHYpLDEpO2lmKDE+cGFyc2VJbnQocCkpe3Y9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRW5dIikudmFsKCk7bGV0IHc9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRnJdIikudmFsKCk7CnQuZGF0YXNldC5jb21wbF90eHRfZnI9YCR7a30gfCAke3d9YDt0LmRhdGFzZXQuY29tcGxfdHh0X2VuPWAke2t9IHwgJHt2fWB9fSxmb3JjZVVwZGF0ZTohMH19KSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG0pKTthLnNldHRpbmdzLmZvcm11bHRpc3RlcD0hMTthLmNsb3NlKCl9ZWxzZSAkKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoMSksIjEiPT1lP2Q9Zj0icmVtb3ZlZW1wdHkiOmg9InJlbW92ZWVtcHR5IiwwPGZ8fDA8ZHx8MDxoPygkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoaCkpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5Mb3ddIikudmFsKEQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihmKSksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKEQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihkKSksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgxKSwKJCgiLnRyYWRlSW5CYXJTdGVwMSIpLmhpZGUoKSxrPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpLCQoIi50cmFkZUluQmFyU3RlcDJUaXRsZSIpLnRleHQoJCgiLnRyYWRlSW5CYXJTdGVwMlRpdGxlIikudGV4dCgpKyIgIitrKSwkKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXSIpLmFkZENsYXNzKCJyZXFSYWRpbyIpLAp0cmFkZWlucG9wdXBkMmMuc2V0SGVpZ2h0TW9iaWxlKDIpLCQoIi50cmFkZUluQmFyU3RlcDIiKS5zaG93KCkpOihwb3B1cElzU3VibWl0dGluZz0hMSwkKCJpbnB1dFtuYW1lPXN0ZXAzZG9uZV0iKS52YWwoMSksJCgiLnRyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnRyaWdnZXIoImNsaWNrIikpfX0pfSxvbkJlZm9yZVN1Ym1pdENCQk1lc3NhZ2U6ZnVuY3Rpb24oYSl7JCgiI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnByb3AoImRpc2FibGVkIiwhMCk7JCgiI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLmhpZGUoKTthPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxdIikudmFsKCk7dmFyIGw9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTFBIT05FXSIpLnZhbCgpLGc9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCksYj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSwKZD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCk7dmFyIGg9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLnZhbCgpLGY9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluTG93XSIpLnZhbCgpLGM9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoKTtnPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2crIiAiK2IrIiAiK2Q6YisiICIrZCsiICIrZztiPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ZGVhbGVyTmFtZVRyYWRlSW5dIikudmFsKCk7ZD0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk7dmFyIG49IiI7aWYoIlNNUyI9PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS52YWwoKSl2YXIgcj0KIlNNUyIsZT0iMSI9PWQ\/JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IlRoZSBDYW5hZGlhbiBCbGFjayBCb29rIGVzdGltYXRlZCB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2crIiBpcyAkIitoKyIuIFdlJ2xsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZGlzY3Vzcy4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOiJMYSB2YWxldXIgZCfDqWNoYW5nZSBlc3RpbcOpZSBDYW5hZGlhbiBCbGFjayBCb29rIHBvdXIgdm90cmUgIitnKyIgZXN0ICQiK2grIi4gTm91cyBjb21tdW5pcXVlcm9ucyBhdmVjIHZvdXMgc291cyBwZXUgcG91ciBlbiBkaXNjdXRlci4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOgokKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iVGhlIENhbmFkaWFuIEJsYWNrIEJvb2sgZXN0aW1hdGVkIHRyYWRlIHZhbHVlIGZvciB5b3VyICIrZysiIGlzIGJldHdlZW4gJCIrZisiIGFuZCAkIitjKyIuIFdlJ2xsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZGlzY3Vzcy4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOiJMYSB2YWxldXIgZCfDqWNoYW5nZSBlc3RpbcOpZSBDYW5hZGlhbiBCbGFjayBCb29rIHBvdXIgdm90cmUgIitnKyIgc2Ugc2l0dWUgZW50cmUgJCIrZisiIGV0ICQiK2MrIi4gTm91cyBjb21tdW5pcXVlcm9ucyBhdmVjIHZvdXMgc291cyBwZXUgcG91ciBlbiBkaXNjdXRlci4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOwplbHNlIHI9IkVNQUlMIixuPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJJTVBPUlRBTlQ6IFlvdXIgdHJhZGUgdmFsdWUgZm9yIHlvdXIgIitnOiJJTVBPUlRBTlQ6IExhIHZhbGV1ciBkJ8OpY2hhbmdlIGRlIHZvdHJlICIrZywkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8oZT0iSGkgIiskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUZOQU1FXSIpLnZhbCgpKyIsPGJyPjxicj4iLGU9ZSsoIkZvbGxvd2luZyB1cCBvbiB5b3VyIHJlY2VudCB0cmFkZSBlc3RpbWF0ZSByZXF1ZXN0IGZvciBhICIrZysiLCBoZXJlIGlzIHRoZSBlc3RpbWF0ZSBmcm9tIHRoZSBDYW5hZGlhbiBCbGFjayBCb29rOjxicj48YnI+IikrKCQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCkrIjxicj48YnI+IiksZT0iMSI9PWQ\/ZSsoIkVzdGltYXRlZCBWYWx1ZTogJCIrCmgrIjxicj4iKTplKygiTWluaW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiK2YrIjxicj5NYXhpbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIpKyhjKyI8YnI+IiksZSs9IihBY2NvcmRpbmcgdG8gQ2FuYWRpYW4gQmxhY2sgQm9vaywgbGVzcyByZWNvbmRpdGlvbmluZyBjb3N0cywgaWYgYXBwbGljYWJsZSk8YnI+PGJyPiIsZSs9IkEgcmVwcmVzZW50YXRpdmUgd2lsbCBjb250YWN0IHlvdSBzaG9ydGx5IHRvIGV4cGxhaW4gdGhlIGRldGFpbHMgb2YgdGhlIHZhbHVlcy48YnI+PGJyPiIsZSs9IlRoYW5rcyBmb3IgdHJ1c3RpbmcgIitiKyIhPGJyPjxicj4iKTooZT0iQm9uam91ciAiKyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkrIiw8YnI+PGJyPiIsZT1lKygiU3VpdGUgw6Agdm90cmUgZGVtYW5kZSBkJ2VzdGltYXRpb24gZGUgbGEgdmFsZXVyIGRlIHZvdHJlIMOpY2hhbmdlIHBvdXIgdW4gIitnKyIsIHZvaWNpIGwnw6l2YWx1YXRpb24gZGUgdm90cmUgdsOpaGljdWxlIHNlbG9uIGxlIENhbmFkaWFuIEJsYWNrIEJvb2s6PGJyPjxicj4iKSsKKCQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCkrIjxicj48YnI+IiksZT0iMSI9PWQ\/ZSsoIlZhbGV1ciBlc3RpbcOpZTogJCIraCsiPGJyPiIpOmUrKCJWYWxldXIgZXN0aW3DqWUgbWluaW1hbGU6ICQiK2YrIjxicj5WYWxldXIgZXN0aW3DqWUgbWF4aW1hbGU6ICQiKSsoYysiPGJyPiIpLGUrPSIoU2Vsb24gbGUgQ2FuYWRpYW4gQmxhY2sgQm9vaywgbW9pbnMgbGVzIGNvw7t0cyBkZSByZWNvbmRpdGlvbm5lbWVudCBzaSBhcHBsaWNhYmxlKTxicj48YnI+IixlKz0iVW4gY29uc2VpbGxlciBlbnRyZXJhIGVuIGNvbW11bmljYXRpb24gc291cyBwZXUgYXZlYyB2b3VzIGFmaW4gZGUgZGlzY3V0ZXIgZGUgY2V0dGUgdmFsZXVyIGV0IHZvdXMgZW4gZXhwbGlxdWVyIGxlcyBkw6l0YWlscy48YnI+PGJyPiIsZSs9Ik1lcmNpIGRlIGZhaXJlIGNvbmZpYW5jZSDDoCAiKwpiKyIhPGJyPjxicj4iKTtlPWJ0b2EoZSk7bj1idG9hKG4pO2VtYWlsSGFuZGxlci5vbkFmdGVyTGVhZENyZWF0ZWQ9e2FjdGlvbjpyLHN1YmplY3Q6bixtZXNzYWdlOmUsZW1haWw6YSxwaG9uZTpsfX0sb25CZWZvcmVTdWJtaXRBY2N1dHJhZGVNZXNzYWdlOmZ1bmN0aW9uKGEpeyQoIiN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wcm9wKCJkaXNhYmxlZCIsITApOyQoIiN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wYXJlbnQoKS5oaWRlKCk7YT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMXSIpLnZhbCgpO3ZhciBsPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxQSE9ORV0iKS52YWwoKSxnPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9WUVBUkVYXSIpLnZhbCgpLGI9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NQUtFRVhdIikudmFsKCksZD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCk7CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VFJJTUVYXSIpLnZhbCgpO3ZhciBoPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS52YWwoKSxmPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkxvd10iKS52YWwoKSxjPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKCk7Zz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9nKyIgIitiKyIgIitkOmIrIiAiK2QrIiAiK2c7Yj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPWRlYWxlck5hbWVUcmFkZUluXSIpLnZhbCgpO2Q9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpO3ZhciBuPSIiO2lmKCJTTVMiPT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikudmFsKCkpdmFyIHI9CiJTTVMiLGU9IjEiPT1kPyQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJBY2N1LVRyYWRlIGVzdGltYXRlZCB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2crIiBpcyAkIitoKyIuIFdlJ2xsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZGlzY3Vzcy4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOiJMYSB2YWxldXIgZCfDqWNoYW5nZSBBY2N1LVRyYWRlIGVzdGltw6llIHBvdXIgdm90cmUgIitnKyIgZXN0ICQiK2grIi4gTm91cyBjb21tdW5pcXVlcm9ucyBhdmVjIHZvdXMgc291cyBwZXUgcG91ciBlbiBkaXNjdXRlci4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOiQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPwoiQWNjdS1UcmFkZSBlc3RpbWF0ZWQgdHJhZGUgdmFsdWUgZm9yIHlvdXIgIitnKyIgaXMgYmV0d2VlbiAkIitmKyIgYW5kICQiK2MrIi4gV2UnbGwgY29udGFjdCB5b3Ugc2hvcnRseSB0byBkaXNjdXNzLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk6IkxhIHZhbGV1ciBkJ8OpY2hhbmdlIEFjY3UtVHJhZGUgZXN0aW3DqWUgcG91ciB2b3RyZSAiK2crIiBzZSBzaXR1ZSBlbnRyZSAkIitmKyIgZXQgJCIrYysiLiBOb3VzIGNvbW11bmlxdWVyb25zIGF2ZWMgdm91cyBzb3VzIHBldSBwb3VyIGVuIGRpc2N1dGVyLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk7ZWxzZSByPSJFTUFJTCIsbj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KIklNUE9SVEFOVDogWW91ciB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2c6IklNUE9SVEFOVDogTGEgdmFsZXVyIGQnw6ljaGFuZ2UgZGUgdm90cmUgIitnLCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyhlPSJIaSAiKyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkrIiw8YnI+PGJyPiIsZT1lKygiRm9sbG93aW5nIHVwIG9uIHlvdXIgcmVjZW50IHRyYWRlIGVzdGltYXRlIHJlcXVlc3QgZm9yIGEgIitnKyIsIGhlcmUgaXMgdGhlIGVzdGltYXRlIGZyb20gQWNjdS1UcmFkZTo8YnI+PGJyPiIpKygkKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpKyI8YnI+PGJyPiIpLGU9IjEiPT1kP2UrKCJFc3RpbWF0ZWQgVmFsdWU6ICQiK2grIjxicj4iKTplKygiTWluaW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiK2YrIjxicj5NYXhpbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIpKwooYysiPGJyPiIpLGUrPSIoQWNjb3JkaW5nIHRvIEFjY3UtVHJhZGUsIGxlc3MgcmVjb25kaXRpb25pbmcgY29zdHMsIGlmIGFwcGxpY2FibGUpPGJyPjxicj4iLGUrPSJBIHJlcHJlc2VudGF0aXZlIHdpbGwgY29udGFjdCB5b3Ugc2hvcnRseSB0byBleHBsYWluIHRoZSBkZXRhaWxzIG9mIHRoZSB2YWx1ZXMuPGJyPjxicj4iLGUrPSJUaGFua3MgZm9yIHRydXN0aW5nICIrYisiITxicj48YnI+Iik6KGU9IkJvbmpvdXIgIiskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUZOQU1FXSIpLnZhbCgpKyIsPGJyPjxicj4iLGU9ZSsoIlN1aXRlIMOgIHZvdHJlIGRlbWFuZGUgZCdlc3RpbWF0aW9uIGRlIGxhIHZhbGV1ciBkZSB2b3RyZSDDqWNoYW5nZSBwb3VyIHVuICIrZysiLCB2b2ljaSBsJ8OpdmFsdWF0aW9uIGRlIHZvdHJlIHbDqWhpY3VsZSBzZWxvbiBBY2N1LVRyYWRlOjxicj48YnI+IikrKCQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSsKJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpKyI8YnI+PGJyPiIpLGU9IjEiPT1kP2UrKCJWYWxldXIgZXN0aW3DqWU6ICQiK2grIjxicj4iKTplKygiVmFsZXVyIGVzdGltw6llIG1pbmltYWxlOiAkIitmKyI8YnI+VmFsZXVyIGVzdGltw6llIG1heGltYWxlOiAkIikrKGMrIjxicj4iKSxlKz0iKFNlbG9uIEFjY3UtVHJhZGUsIG1vaW5zIGxlcyBjb8O7dHMgZGUgcmVjb25kaXRpb25uZW1lbnQgc2kgYXBwbGljYWJsZSk8YnI+PGJyPiIsZSs9IlVuIGNvbnNlaWxsZXIgZW50cmVyYSBlbiBjb21tdW5pY2F0aW9uIHNvdXMgcGV1IGF2ZWMgdm91cyBhZmluIGRlIGRpc2N1dGVyIGRlIGNldHRlIHZhbGV1ciBldCB2b3VzIGVuIGV4cGxpcXVlciBsZXMgZMOpdGFpbHMuPGJyPjxicj4iLGUrPSJNZXJjaSBkZSBmYWlyZSBjb25maWFuY2Ugw6AgIitiKyIhPGJyPjxicj4iKTtlPWJ0b2EoZSk7bj1idG9hKG4pO2VtYWlsSGFuZGxlci5vbkFmdGVyTGVhZENyZWF0ZWQ9CnthY3Rpb246cixzdWJqZWN0Om4sbWVzc2FnZTplLGVtYWlsOmEscGhvbmU6bH19LGluaXRUcmFkZUluU3RlcDE6ZnVuY3Rpb24oKXskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluTG93XSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoMCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgwKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXSIpLnJlbW92ZUNsYXNzKCJyZXFSYWRpbyIpOyQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgwKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikucHJvcCgiY2hlY2tlZCIsITEpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7CiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlFVRVNUSU9OUyJdJykudmFsKCIiKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAxIikuc2hvdygpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMyIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA0IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0Iikuc2hvdygpO3RoaXMuc2V0SGVpZ2h0TW9iaWxlKDEpO3RoaXMudHJhZGVJbkJvdHRvbUxvZ29IZWlndCgpfSxpbml0VHJhZGVJblN0ZXAzOmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5TdGVwM1llcyIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKCl7dHJhZGVpbnBvcHVwZDJjLnRyYWRlSW5TdGVwM1llcygpO3JldHVybiExfSk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAxIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMyIpLnNob3coKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA0IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiIpLmhpZGUoKTt0aGlzLnNldEhlaWdodE1vYmlsZSgzKTskKCJpbnB1dFtuYW1lPXN0ZXAzZG9uZV0iKS52YWwoMSk7dGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LAp0cmFkZUluU3RlcDNZZXM6ZnVuY3Rpb24oKXt0aGlzLmluaXRUcmFkZUluU3RlcDQoKX0saW5pdFRyYWRlSW5TdGVwNDpmdW5jdGlvbigpeyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtICN0cmFkZUluQmFyUG9wdXBTdWJtaXQiKS5wYXJlbnQoKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNCIpLnNob3coKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA1IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDYiKS5oaWRlKCk7dGhpcy5zZXRIZWlnaHRNb2JpbGUoNCk7JCgiI3RyYWRlSW5TdGVwNFllcyIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKCl7aWYoIiI9PSQoIiN0cmFkZUluS2V5U2VsZWN0IikudmFsKCkpcmV0dXJuICQoIiN0cmFkZUluS2V5U2VsZWN0IikuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLCExO3RyYWRlaW5wb3B1cGQyYy50cmFkZUluU3RlcDRDb250aW51ZSgpO3JldHVybiExfSk7JCgiI3RyYWRlSW5LZXlTZWxlY3QiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQoIiN0cmFkZUluS2V5U2VsZWN0IikucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfSk7dGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LHRyYWRlSW5TdGVwNENvbnRpbnVlOmZ1bmN0aW9uKCl7IiI9PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VklORVhdIikudmFsKCk\/dGhpcy5pbml0VHJhZGVJblN0ZXA1KCk6dGhpcy5pbml0VHJhZGVJblN0ZXA2KCl9LGluaXRUcmFkZUluU3RlcDU6ZnVuY3Rpb24oKXskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOwokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAxIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMyIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA0IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUiKS5zaG93KCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiIpLmhpZGUoKTt0aGlzLnNldEhlaWdodE1vYmlsZSg1KTskKCIjdHJhZGVJblN0ZXA1WWVzIikub24oImNsaWNrIixmdW5jdGlvbigpe3RyYWRlaW5wb3B1cGQyYy50cmFkZUluU3RlcDVDb250aW51ZSgpO3JldHVybiExfSk7dGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LHRyYWRlSW5TdGVwNUNvbnRpbnVlOmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1WSU5FWF0iKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3N0ZXA1VmluIikudmFsKCkpOwp0aGlzLmluaXRUcmFkZUluU3RlcDYoKX0saW5pdFRyYWRlSW5TdGVwNjpmdW5jdGlvbigpeyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cF9saW5lMSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDEiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMiIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAzIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA2Iikuc2hvdygpO3RoaXMuc2V0SGVpZ2h0TW9iaWxlKDYpO3RoaXMuaW5pdEltYWdlVXBsb2FkKCk7CiQoIiN0cmFkZUluU3RlcDZZZXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5TdGVwNlllcyIpLmhpZGUoKTt0cmFkZWlucG9wdXBkMmMudXBsb2FkSW1hZ2VzVG9CYWNrZW5kKCl9KTt0aGlzLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0saW5pdEltYWdlVXBsb2FkOmZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhIikuZm9yRWFjaChhPT57Y29uc3QgbD1hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ImZpbGUiXScpLGc9YS5xdWVyeVNlbGVjdG9yKCIucGxhY2Vob2xkZXIiKSxiPWEucXVlcnlTZWxlY3RvcigiLmRlbGV0ZS1idG4iKSxkPWEucXVlcnlTZWxlY3RvcigiLmFkZC1pY29uIiksaD1hLmRhdGFzZXQub3ZlcmxheTtoJiYoYS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9YHVybCgke2h9KWApO2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bC52YWx1ZXx8bC5jbGljaygpfSk7CmwuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmPT57aWYoKGY9Zi50YXJnZXQuZmlsZXNbMF0pJiZmLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikpe2NvbnN0IGM9bmV3IEZpbGVSZWFkZXI7Yy5vbmxvYWQ9KCk9PntnLnNyYz1jLnJlc3VsdDtnLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjthLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ibm9uZSI7Yi5zdHlsZS5kaXNwbGF5PSJibG9jayI7ZC5zdHlsZS5kaXNwbGF5PSJub25lIn07Yy5yZWFkQXNEYXRhVVJMKGYpfWVsc2UgbC52YWx1ZT0iIn0pO2IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGY9PntmLnN0b3BQcm9wYWdhdGlvbigpO2wudmFsdWU9IiI7Zy5zcmM9IiI7Zy5zdHlsZS5kaXNwbGF5PSJub25lIjthLnN0eWxlLmJhY2tncm91bmRJbWFnZT1gdXJsKCR7aH0pYDtiLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Quc3R5bGUuZGlzcGxheT0iZmxleCI7cmV0dXJuITF9KTtiLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2cuc3R5bGUuZGlzcGxheT0KIm5vbmUifSl9LHVwbG9hZEltYWdlc1RvQmFja2VuZDpmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWQtYXJlYSIpO2NvbnN0IGw9bmV3IEZvcm1EYXRhO2xldCBnPSExO2EuZm9yRWFjaChiPT57Yj1iLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ImZpbGUiXScpOzA8Yi5maWxlcy5sZW5ndGgmJmIuZmlsZXNbMF0udHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmKGwuYXBwZW5kKCJpbWFnZXNbXSIsYi5maWxlc1swXSxiLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIikpLGc9ITApfSk7Zz8oYT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCIsJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09YT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvdXBsb2FkVHJhZGVJbkltYWdlcyIsY29udGVudFR5cGU6ITEscHJvY2Vzc0RhdGE6ITEsZGF0YTpsLHN1Y2Nlc3M6ZnVuY3Rpb24oYil7aWYoYi5sZW5ndGgpeyRkYXRhT2JqPQpKU09OLnBhcnNlKGIpOyRpbWFnZUV4VmFsdWU9IiI7Zm9yKGI9MDtiPCRkYXRhT2JqLmxlbmd0aDtiKyspJGltYWdlRXhWYWx1ZSs9JGRhdGFPYmpbYl0uZmlsZW5hbWUrIiA6ICIrJGRhdGFPYmpbYl0uZmlsZVVybCsiIFxuIjskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJUUkFERUlOSU1BR0VFWCJdJykudmFsKCRpbWFnZUV4VmFsdWUpfSQoIi50cmFkZUluQmFyUG9wdXBTdWJtaXQiKS50cmlnZ2VyKCJjbGljayIpfX0pKTokKCIudHJhZGVJbkJhclBvcHVwU3VibWl0IikudHJpZ2dlcigiY2xpY2siKX0sc2V0SGVpZ2h0TW9iaWxlKGEpe2lmKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkpc3dpdGNoKGEpe2Nhc2UgMjokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI1NDBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjUzMHB4Iik7YnJlYWs7Y2FzZSAzOiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsCiI2MDBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjU5MHB4Iik7YnJlYWs7Y2FzZSA0OiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjU0MHB4Iik7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiNTMwcHgiKTticmVhaztjYXNlIDU6JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmNzcygiaGVpZ2h0IiwiNTMwcHgiKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIikuY3NzKCJoZWlnaHQiLCI1MjBweCIpO2JyZWFrO2Nhc2UgNjokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI3NTBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjc0MHB4Iik7YnJlYWs7ZGVmYXVsdDokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI5NjBweCIpLCQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsCiI5NDBweCIpfX0sdHJhZGVJbkJvdHRvbUxvZ29IZWlndDpmdW5jdGlvbigpe2lmKCQoIi50cmFkZUluQm90dG9tTG9nbyIpLmxlbmd0aCl7dmFyIGE9JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpO2xldCBsPSQoIi50cmFkZUluQm90dG9tTG9nbyIpO2E9YS5pbm5lckhlaWdodCgpLWwucG9zaXRpb24oKS50b3A7JCgiLnRyYWRlSW5Cb3R0b21Mb2dvIikuaGVpZ2h0KGErInB4Iil9fX07Ci8qKiAvanMvcG9wdXBpemVyLmpzICoqLwp2YXIgX19fZDJjX3BvcHVwaXplcmpzX2Nfb249IjIwMjYtMDEtMTMgMTY6MzA6MDYiOyd1c2Ugc3RyaWN0Jztpc1NjcmF0Y2hBbmRTYXZlPSJ1bmRlZmluZWQiPT10eXBlb2YgaXNTY3JhdGNoQW5kU2F2ZT8iIjppc1NjcmF0Y2hBbmRTYXZlO3BvcHVwV2lkZ2V0X3BhZ2VWaWV3c0luY3JlbWVudGVkPSJ1bmRlZmluZWQiPT10eXBlb2YgcG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ\/IiI6cG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ7c2hvd1BvcHVwV2lkZ2V0PSJmdW5jdGlvbiIhPXR5cGVvZiBzaG93UG9wdXBXaWRnZXQ\/ZnVuY3Rpb24oKXt9OnNob3dQb3B1cFdpZGdldDthY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZD0iZnVuY3Rpb24iIT10eXBlb2YgYWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ\/ZnVuY3Rpb24oKXt9OmFjdGl2YXRlUG9wdXBCZWZvcmVMb2FkOwp2YXIgcG9wdXBJc1N1Ym1pdHRpbmc9ITEsQ1BvcHVwU3VwZXJ2aXNvcj1mdW5jdGlvbigpe3ZhciBjPXRoaXM7Yy5vbmxvYWRRdWV1ZT1bXTtjLmluZGV4PTA7Yy5pc0FuaW1hdGluZz0hMTtjLnBvcHVwcz1bXTtjLnJlZ2lzdGVyPWZ1bmN0aW9uKGEpe3ZhciBrPTA7MDxOdW1iZXIoYS5zZXR0aW5ncy5zaG93b25sb2FkKSYmITAhPT1hLnNldHRpbmdzLnNob3dvbmxvYWQmJihrPWEuc2V0dGluZ3Muc2hvd29ubG9hZCk7dmFyIGI9MTsxPGEuc2V0dGluZ3MucHJpb3JpdHkmJihiPWEuc2V0dGluZ3MucHJpb3JpdHkpOzEhPUNvb2tpZXMuZ2V0KCJub3VzZWRjdGEiKXx8InVzZWRjYXJzLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkmJiJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKT9jLm9ubG9hZFF1ZXVlLnB1c2goe3BvcHVwOmEsZGVsYXk6ayxwcmlvcml0eTpifSk6Y29uc29sZS5sb2coIk5vdCBzaG93aW5nIHBvcHVwIG9ubG9hZCwgYmVjYXVzZSBpdHMgYSB1c2VkIHBhZ2UgYW5kIHRoZSBjb29raWUgbm91c2VkY3RhIGlzIHNldCIpfTsKYy5yZXBvc2l0aW9uPWZ1bmN0aW9uKCl7aWYoIShwb3B1cGl6ZXJBY3RpdmUoKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuaXNBY3RpdmUmJm1vZGVsQ29uZmlnLmlzQWN0aXZlKCkpKXJldHVybiAkKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsImF1dG8iKSwhMTtpZihjLmlzQW5pbWF0aW5nKXJldHVybiExO3ZhciBhPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDokKHdpbmRvdykuaGVpZ2h0KCksaz0kKGRvY3VtZW50KS5zY3JvbGxUb3AoKSxiPS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPzU6MjA7JCgiLnJldmVhbC1tb2RhbCIpLmVhY2goZnVuY3Rpb24oZCxmKXtkPSQodGhpcyk7aWYoInZpc2libGUiPT1kLmNzcygidmlzaWJpbGl0eSIpKXtmPWQub2Zmc2V0KCkudG9wO3ZhciBoPWQub3V0ZXJIZWlnaHQoKSxsPWYraDtpZihhPGgrYnx8bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKGlQaG9uZXxpUG9kKS9nKSl7aWYoJCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLAoiYXV0byIpLGs+bHx8aythPGYpZj1rK2IsYy5pc0FuaW1hdGluZz0hMCxkLmFuaW1hdGUoe3RvcDpmKyJweCJ9LDIwMCxmdW5jdGlvbigpe2MuaXNBbmltYXRpbmc9ITF9KX1lbHNlIGY9aysoYS1oKS8yLGY9ZjxiP2I6ZixjLmlzQW5pbWF0aW5nPSEwLGQuYW5pbWF0ZSh7dG9wOmYrInB4In0sMjAwLGZ1bmN0aW9uKCl7Yy5pc0FuaW1hdGluZz0hMX0pfX0pfTtjLnNob3c9ZnVuY3Rpb24oKXtpZighKDA8JCgiI2Rpc2FibGVQb3B1cHMiKS5sZW5ndGgmJiIxIj09JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKSkmJihjLm9ubG9hZFF1ZXVlLnNvcnQoZnVuY3Rpb24oYSxrKXtpZihhLnByaW9yaXR5PmsucHJpb3JpdHkpcmV0dXJuIDE7aWYoYS5wcmlvcml0eTxrLnByaW9yaXR5KXJldHVybi0xO2lmKGEucHJpb3JpdHk9PWsucHJpb3JpdHkpcmV0dXJuIGEuZGVsYXk8ay5kZWxheT8xOi0xfSksKCJCVUlMREFORFBSSUNFIiE9cGFnZXx8Ii0xIiE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigic3RlcD1yZXN1bWUiKSkmJgowPGMub25sb2FkUXVldWUubGVuZ3RoKSl7Zm9yKGtleSBpbiBjLm9ubG9hZFF1ZXVlKWlmKDE9PWMub25sb2FkUXVldWVba2V5XS5wb3B1cC5zZXR0aW5ncy5lbmRQb3B1cFF1ZXVlKXJldHVybiBjLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAub3BlbihjLm9ubG9hZFF1ZXVlW2tleV0uZGVsYXkpLCExO2ZvcihrZXkgaW4gYy5vbmxvYWRRdWV1ZSljLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAub3BlbihjLm9ubG9hZFF1ZXVlW2tleV0uZGVsYXkpfX07dmFyIG09ZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJBY3RpdmUoKSlyZXR1cm4gc2V0VGltZW91dChtLDUwMCksITE7c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHBvcHVwaXplckFjdGl2ZSgpKXJldHVybiBtKCk7JC5wb3N0TWVzc2FnZSgiY2xvc2VQb3B1cCIsIioiLHdpbmRvdy5wYXJlbnQpfSwxRTMpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7MDwkKCIjYXV0b2F1YmFpbmVfcG9wdXAiKS5sZW5ndGgmJiJmYWxzZSIhPSQoIiNhdXRvYXViYWluZV9wb3B1cCIpLnZhbCgpJiYKbSgpfSw1RTMpfSxwb3B1cFN1cGVydmlzb3I9bmV3IENQb3B1cFN1cGVydmlzb3IscG9wdXBpemVyQWN0aXZlPWZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQ29uZmlnLnBvcHVwT3BlbilyZXR1cm4hMDt2YXIgYz0hMTskKCIucmV2ZWFsLW1vZGFsLCAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IikuZWFjaChmdW5jdGlvbigpe2lmKDEhPWMpe3ZhciBtPSQodGhpcyk7aWYoIW0uaXMoIjpoaWRkZW4iKSlzd2l0Y2gobS5jc3MoInZpc2liaWxpdHkiKSl7Y2FzZSAidW5kZWZpbmVkIjpjYXNlICJ2aXNpYmxlIjpjPSEwfX19KTtpZigkKCIucHBfb3ZlcmxheSIpLmlzKCI6dmlzaWJsZSIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubW9kYWwtb3ZlcmxheSIpKWM9ITA7cmV0dXJuIGN9LHBvcHVwaXplckNvbmZpZz17fTskLmV4dGVuZCghMCxwb3B1cGl6ZXJDb25maWcse3BvcHVwT3BlbjohMX0pOwp2YXIgcG9wdXBpemVyPWZ1bmN0aW9uKGMsbSl7dmFyIGE9dGhpcyxrPSJhdXRvIjtjP2EudGFyZ2V0PWM6Yz1hLnRhcmdldDthLnNldHRpbmdzPW07YS5zZXRUcmlnZ2VyPWZ1bmN0aW9uKGIpe2s9InN0cmluZyI9PXR5cGVvZiBiJiYiY2xpY2siPT1iLnRvTG93ZXJDYXNlKCk\/ImNsaWNrIjoiYXV0byI7YS5zZXR0aW5ncy50cmlnZ2VyPWs7cmV0dXJuIGF9O2EuaW5pdD1mdW5jdGlvbigpe3ZhciBiPSJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlSW5pdGlhbGl6ZSxkPSJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplO2lmKGEuaXNDb250ZW50TG9hZGVkKCl8fCFiJiYhZCl7aWYoYil7dmFyIGY9YS5zZXR0aW5ncy5vbkJlZm9yZUluaXRpYWxpemUuY2FsbChjLGEpO2lmKDA9PWYpcmV0dXJufWI9ITE7aWYoYS5zZXR0aW5ncy50aHJlc2hvbGQmJmEuc2V0dGluZ3MubWFpbnBvcHVwKXthLnNldHRpbmdzLnNob3dvbmxvYWQ9ITE7CmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplJiYoYj0hMCxmPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWYpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn10aHJlc2hvbGRFeGVjKGEuc2V0dGluZ3MudGhyZXNob2xkVmFsdWUvMTAwLGEuZXhlY09wZW4pfWlmKGEuc2V0dGluZ3Muc2Nyb2xsdXAmJmEuc2V0dGluZ3MubWFpbnBvcHVwKXthLnNldHRpbmdzLnNob3dvbmxvYWQ9ITE7aWYoZCYmKGI9ITAsZj1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplLmNhbGwoYyxhKSwwPT1mKSl7YS5zYXZlU2V0dGluZ3MoKTtyZXR1cm59c2Nyb2xsdXBFeGVjKGEuZXhlY09wZW4pfWMuYWRkQ2xhc3MoInJldmVhbC1tb2RhbCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hZGRlZENsYXNzZXMmJjA8YS5zZXR0aW5ncy5hZGRlZENsYXNzZXMubGVuZ3RoJiZjLmFkZENsYXNzKGEuc2V0dGluZ3MuYWRkZWRDbGFzc2VzKTsKJCgiZm9ybSIsYykub24oInN1Ym1pdCIsYS5zdWJtaXQpO2Y9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7YS5zZXR0aW5ncy5hbmltYXRpb24mJmYuZ2V0Q29udGV4dCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hbmltYXRpb24uZWZmZWN0JiYoYS5zZXR0aW5ncy5yZXZlYWwuYW5pbWF0aW9uPSJleHRlcm5hbEFuaW1hdGlvbiIsYy5hZGRDbGFzcyhhLnNldHRpbmdzLmFuaW1hdGlvbi5lZmZlY3QpKSwidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuYW5pbWF0aW9uLnNwZWVkJiZjLmFkZENsYXNzKGEuc2V0dGluZ3MuYW5pbWF0aW9uLnNwZWVkKSk7YS5zZXR0aW5ncy5pbml0aWFsaXplZD0hMDtjLnRyaWdnZXIoInBvcHVwaXplci5pbml0aWFsaXplZCIsYSk7aWYoZCYmIWImJihmPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWYpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn1hLnNhdmVTZXR0aW5ncygpO2Q9JCgiI2hpZGRlblNraXBPbmxvYWRQcmludHNjcmVlbiIpOwppZigwPGQubGVuZ3RoJiYiRE9fU0tJUF9QT1BVUCI9PWQudmFsKCkpcmV0dXJuITE7IWEuc2V0dGluZ3Muc2hvd29ubG9hZHx8bnVsbCE9Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpfHxudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpfHwxIT1hLnNldHRpbmdzLmNsb3NlQnV0dG9uJiYwIT1hLnNldHRpbmdzLmNsb3NlQnV0dG9ufHwoLTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9yZXF1ZXN0LyIpfHwtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL2RlbWFuZGVzLyIpKSYmLTE9PWEuc2V0dGluZ3MubmFtZS5pbmRleE9mKCJpbWFnZVBvcHVwIil8fHBvcHVwU3VwZXJ2aXNvci5yZWdpc3RlcihhKTskKGRvY3VtZW50KS5vZmYoImNsaWNrIiwiLiIrbS5yZXZlYWwuZGlzbWlzc21vZGFsY2xhc3MpLm9uKCJjbGljayIsIi4iK20ucmV2ZWFsLmRpc21pc3Ntb2RhbGNsYXNzLGZ1bmN0aW9uKGgpe2MudHJpZ2dlcigicG9wdXBpemVyLmNsb3NlIiwKYyl9KTskKGRvY3VtZW50KS5vZmYoImtleXVwIikub24oImtleXVwIixmdW5jdGlvbihoKXsyNz09PWgud2hpY2gmJmMudHJpZ2dlcigicG9wdXBpemVyLmNsb3NlIixjKX0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuc2V0dGluZ3MuZm9ybS5mcm9tQUEmJihlbWFpbEhhbmRsZXIuZnJvbUFBPWEuc2V0dGluZ3MuZm9ybS5mcm9tQUEpO3JldHVybiBhfWEubG9hZChhLmluaXQpfTthLm9uT3Blbj1mdW5jdGlvbigpe2EuaXNDb250ZW50TG9hZGVkKCl8fGEubG9hZCgpO2lmKCJhdXRvIj09ayYmbnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSlyZXR1cm4hMTtjLmZpbmQoIi5wb3B1cGl6ZXJCb2R5Iikuc2hvdygpO2lmKG51bGwhPUNvb2tpZXMuZ2V0KCJwb3B1cEZvcm1GaWxsZWQiKXx8bnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSljLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5yZW1vdmVDbGFzcygibW9kYWwtY2xvc2UtaGlkZSIpLApjLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5zaG93KCk7YS5jcmVhdGVDb25maXJtRm9ybSgpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlT3BlbiYmMD09YS5zZXR0aW5ncy5vbkJlZm9yZU9wZW4uY2FsbChjLGEpKXJldHVybiExO3ZhciBiPSIvcG9wdXAtIithLnRhcmdldC5maW5kKCIuZW1haWxTdWJqZWN0IikudGV4dCgpLnJlcGxhY2UoL1tcblxyXS9nLCIgIik7YS50YXJnZXQuZmluZCgiI2ltYWdlUG9wdXBMZWFkVHlwZSIpLmxlbmd0aCYmKGI9Ii9wb3B1cC0iK2EudGFyZ2V0LmZpbmQoIiNpbWFnZVBvcHVwTGVhZFR5cGUiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWQiKS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTthLnRhcmdldC5maW5kKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIiKS5sZW5ndGgmJihiPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/Ii9uZXVmcy9jYWxjdWxhdHJpY2UtcHJldC1hdXRvLXBvcHVwLmh0bWwiOiIvbmV3L2Nhci1sb2FuLWNhbGN1bGF0b3ItcG9wdXAuaHRtbCIpOwpnYVBhZ2VWaWV3KGIpO2dhNFBhZ2VWaWV3KGIpO2EubG9nRXZlbnQoInBvcHVwLm9wZW4iKTsibGl2ZSI9PSQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLnZhbCgpJiZnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiUG9wdXAtTGF1bmNoZWQiLGEuc2V0dGluZ3MubmFtZSx3aW5kb3cubG9jYXRpb24uaHJlZiwxKTthLnNldHRpbmdzLmNvdW50ZG93biYmYS5pbml0Q291bnRkb3duKCk7Yy5kYXRhKCJvcGVuIiwhMCk7cG9wdXBpemVyQ29uZmlnLnBvcHVwT3Blbj0hMDsib25PcGVuIj09YS5zZXR0aW5ncy5jb29raWVDcmVhdGUmJmEuc2V0Q29va2llKCk7Yj1jLmZpbmQoImZvcm0iKS5maXJzdCgpO2IuZmluZCgnaW5wdXQgW3R5cGU9InRleHQiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm9mZigiZm9jdXMgYmx1ciBjaGFuZ2UiKS5jc3MoImNvbG9yIiwiIzAwMCIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7dmFyIGQ9bmV3IEZvcm07ZC5tYXNrUGhvbmUoYy5maW5kKCJmb3JtIikuc2VsZWN0b3IrCiIgaW5wdXQucGhvbmUiKTtkLm1hc2tQaG9uZShjLmZpbmQoImZvcm0iKS5zZWxlY3RvcisiIGlucHV0Lm1vYmlsZSIpOzA8Yi5maW5kKCIucGhvbmUucmVxdWlyZWQiKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PTE6ZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PTA7YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQmJmVtYWlsSGFuZGxlci5sb2dGb3JtUmVxdWVzdCgiRm9ybUxvYWRlZCIsYS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQsYS5zZXR0aW5ncy5mb3JtLm9mZmVydHlwZSk7YS5zZXR0aW5ncy5yZXZlYWwuY2xvc2VkPWEub25DbG9zZTtjLnJldmVhbChhLnNldHRpbmdzLnJldmVhbCk7JCgiI2Zsb2F0UHJvbW9Ub3BCdG5Db250YWluZXIiKS5oaWRlKCk7JCgiI2NvbnRhaW5lckZsQiIpLmhpZGUoKTskKCIjdG9hc3QtY29udGFpbmVyIikuaGlkZSgpOyQoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmhpZGUoKTthLnNldHRpbmdzLmZvcm0uT0tCdXR0b25DbGFzcyYmKGI9CmEuc2V0dGluZ3MuZm9ybS5PS0J1dHRvbkNsYXNzLCIuIj09YlswXSYmKGI9Yi5zdWJzdHJpbmcoMSkpLCQoIi4iK2IsYykub2ZmKCJjbGljayIpLm9uKCJjbGljayIsYS5zdWJtaXQpKTthLnNldHRpbmdzLmZvcm0uQ2FuY2VsQnV0dG9uQ2xhc3MmJihiPWEuc2V0dGluZ3MuZm9ybS5DYW5jZWxCdXR0b25DbGFzcywiLiI9PWJbMF0mJihiPWIuc3Vic3RyaW5nKDEpKSwkKCIuIitiLGMpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGEuY2FuY2VsKSk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25PcGVuIixhKX07YS5vbkNsb3NlPWZ1bmN0aW9uKCl7Yy5kYXRhKCJvcGVuIiwhMSk7cG9wdXBpemVyQ29uZmlnLnBvcHVwT3Blbj0hMTthLnNldHRpbmdzLnN1Ym1pdHRlZHx8YS5sb2dFdmVudCgicG9wdXAuY2FuY2VsIik7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIiN0b2FzdC1jb250YWluZXIiKS5zaG93KCl9LDUwMCk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi5yZXZlYWwtbW9kYWwtYmciKS5sZW5ndGgmJgokKCIucmV2ZWFsLW1vZGFsLWJnIikucmVtb3ZlKCl9LDFFMyk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25DbG9zZSIsYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25DbG9zZSYmYS5zZXR0aW5ncy5vbkNsb3NlLmNhbGwoYyxhKX07YS5zdWJtaXQ9ZnVuY3Rpb24oKXtpZihwb3B1cElzU3VibWl0dGluZylyZXR1cm4hMTtwb3B1cElzU3VibWl0dGluZz0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cG9wdXBJc1N1Ym1pdHRpbmc9ITF9LDNFMyk7dmFyIGI9Yy5maW5kKCJmb3JtIikuZmlyc3QoKSxkPVtdLGY9IiIsaD0iIixsPVtdLHA9W10sZz0hMCx0PSIiLHo9IiIsQT0iIjtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVZhbGlkYXRpb24pc3dpdGNoKGEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0aW9uLmNhbGwoYixjLGEpKXtjYXNlICExOmNhc2UgMDpyZXR1cm4gcG9wdXBJc1N1Ym1pdHRpbmc9ITE7Y2FzZSAtMTpnPSExfWlmKGcpeyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIiwKc2Nyb2xsVG86ITF9KS5zdGFydCgpO2IuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtiLmZpbmQoImlucHV0LnJlcXVpcmVkLCBzZWxlY3QucmVxdWlyZWQsIHRleHRhcmVhLnJlcXVpcmVkIikucmVxdWlyZSgpO3ZhciB2PSExLEI9ITEsdz0hMTtiLmZpbmQoImlucHV0IikuZmlsdGVyKCIucmVxUmFkaW8iKS5yYWRpb09wdGlvbkNob3NlbigpO2IuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9JCh0aGlzKTtlLmhhc0NsYXNzKCJlbWFpbCIpJiYoZS5oYXNDbGFzcygicmVxdWlyZWQiKXx8MDxlLnZhbCgpLmxlbmd0aCkmJih3PSEwKTtpZihlLmhhc0NsYXNzKCJwaG9uZSIpfHxlLmhhc0NsYXNzKCJtb2JpbGUiKSlpZihCPSEwLGUuaGFzQ2xhc3MoInJlcXVpcmVkIil8fDA8ZS52YWwoKS5sZW5ndGgpdj0hMH0pOzA9PXYmJjA9PXcmJihCP3Y9ITA6dz0hMCk7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMpOwplLmhhc0NsYXNzKCJlbWFpbCIpJiZlLnZhbGlkRW1haWxBZGRyZXNzKCk7ZS5oYXNDbGFzcygicGhvbmUiKSYmZS52YWxpZGF0ZVBob25lKCk7ZS5oYXNDbGFzcygibW9iaWxlIikmJmUudmFsaWRhdGVNb2JpbGUoKX0pOzE+Yy5maW5kKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5sZW5ndGgmJmMuYXBwZW5kKCc8ZGl2IGNsYXNzPSJNaXNzaW5nVmFsaWRhdGlvbk1zZyI+PC9kaXY+Jyk7aWYoISQudmFsaWRpdHkuZW5kKCkudmFsaWQpcmV0dXJuICQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIsYykuc2hvdygpLCQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUpeyQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIsYykuaGlkZSgpOyQodGhpcykub2ZmKGUpfSksYS5sb2dFdmVudCgicG9wdXAudmFsaWRhdGlvbkZhaWxlZCIpLHBvcHVwSXNTdWJtaXR0aW5nPSExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3Jlc3VibWl0KXtnPSEwO3RyeXtnPWEuc2V0dGluZ3Mub25CZWZvcmVzdWJtaXQuY2FsbChjLAphKX1jYXRjaChlKXtjb25zb2xlLmxvZygiT24gYmVmb3JlIHN1Ym1pdCBmYWlsZWQsIHJldHVybmluZyB0cnVlLiIsZSl9aWYoMD09ZylyZXR1cm4gYS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0JiZhLmNsb3NlKCksITF9YS5sb2dFdmVudCgicG9wdXAuc3VibWl0Iik7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMpOyhlLmhhc0NsYXNzKCJlbWFpbCIpfHwiZW1haWwiPT09ZS5hdHRyKCJ0eXBlIikpJiZkLnB1c2goZS52YWwoKSk7ZS5oYXNDbGFzcygicG9zdGFsIikmJihmPWUudmFsKCkpO2UuaGFzQ2xhc3MoInRyYWRlaW4iKSYmKGg9ZS52YWwoKSk7KGUuaGFzQ2xhc3MoInBob25lIil8fGUuaGFzQ2xhc3MoIm1vYmlsZSIpfHwidGVsIj09PWUuYXR0cigidHlwZSIpKSYmcC5wdXNoKGUudmFsKCkpOyJ1bmRlZmluZWQiPT10eXBlb2YgZS5hdHRyKCJuYW1lIikmJmUuYXR0cigibmFtZSIsIiIpOyhlLmhhc0NsYXNzKCJuYW1lIil8fCJuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJgpsLnB1c2goZS52YWwoKSk7KGUuaGFzQ2xhc3MoImZpcnN0bmFtZSIpfHwiZmlyc3RuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwudW5zaGlmdChlLnZhbCgpKTsoZS5oYXNDbGFzcygibGFzdG5hbWUiKXx8Imxhc3RuYW1lIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwucHVzaChlLnZhbCgpKTtpZihlLmhhc0NsYXNzKCJjb21tZW50Iil8fCJjb21tZW50Ij09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSl0PWUudmFsKCk7aWYoZS5oYXNDbGFzcygiYWRkcmVzcyIpfHwiYWRkcmVzcyI9PWUuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpej1lLnZhbCgpO2lmKGUuaGFzQ2xhc3MoImJpcnRoZGF0ZSIpfHwiYmlydGhkYXRlIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSlBPWUudmFsKCl9KTtnPWIuc2VyaWFsaXplQXJyYXkoKTt2YXIgeD0kKCIuZW1haWxCb2R5IixjKS5odG1sKCkrIiIsdT0kKCIuZW1haWxTdWJqZWN0IixjKS5odG1sKCkrCiIiOyJQcmljZVZlaGljbGUiPT1hLnNldHRpbmdzLmZvcm0uZW1haWxpZCYmMD09Yi5maW5kKCJbbmFtZT1ub0NCQl0iKS52YWwoKSYmIlNNUyI9PWIuZmluZCgiI3RyYWRlSW5CYXJTbXNPckVtYWlsU21zOmNoZWNrZWQiKS52YWwoKSYmKHUrPSIgKFNNUykiKTt2YXIgcT1bXTtbXS5wdXNoLmFwcGx5KHEsZyk7W10ucHVzaC5hcHBseShxLGEuZ2xvYmFsUmVwbGFjZW1lbnRzKCkpOyQuZWFjaChxLGZ1bmN0aW9uKCl7dmFyIGU9bmV3IFJlZ0V4cCgie1xcJCIrdGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkrIn0iLCJnIiksbj10aGlzLnZhbHVlOyJTRUFSQ0hFRFZFSElDTEUiPT10aGlzLm5hbWUudG9VcHBlckNhc2UoKSYmKG49IjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIrbisiPC9zcGFuPiIpO3g9eC5yZXBsYWNlKGUsbik7dT11LnJlcGxhY2UoZSx0aGlzLnZhbHVlKX0pO2c9e3NlbmRUbzphLnNldHRpbmdzLmZvcm0uc2VuZFRvLHNlbmRUb0FERkZvcm1hdDphLnNldHRpbmdzLmZvcm0uc2VuZFRvQURGLApjb25kaXRpb246YS5zZXR0aW5ncy52ZWhpY2xlU3RhdGUsbWFpbElEOmEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkLHN1YmplY3Q6dSxib2R5OngsdXNlclBvc3RhbDpmLGFkZHJlc3M6eixiaXJ0aGRhdGU6QSx0cmFkZWluOmgscG9wdXBkaXY6IiIsdXNlckVtYWlsOmQuam9pbigiOyIpLHVzZXJOYW1lOmwuam9pbigiICIpLHVzZXJQaG9uZTpwLmpvaW4oIiwiKSxzbXM6YS5zZXR0aW5ncy5mb3JtLnNtcyxwb3B1cE9mZmVyVHlwZTphLnNldHRpbmdzLmZvcm0ub2ZmZXJ0eXBlLGNvbW1lbnRzOnR9OyQuZXh0ZW5kKCEwLGVtYWlsSGFuZGxlcixnKTsic3RyaW5nIj09dHlwZW9mIGVtYWlsSGFuZGxlci51c2VyTmFtZSYmKGc9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zy5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zy5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5wb3B1cGRpdj1hLnRhcmdldC5hdHRyKCJpZCIpOwppZihhLnNldHRpbmdzLmZpbGxmbGFnKXZhciBDPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDkwLCIvIik7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuZm9ybUZpbGxlZCIsYSl9O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlbWFpbEhhbmRsZXIuY2FsbGJhY2smJjA8ZW1haWxIYW5kbGVyLmNhbGxiYWNrLmxlbmd0aCl2YXIgRD1lbWFpbEhhbmRsZXIuY2FsbGJhY2s7dmFyIEU9ZnVuY3Rpb24oKXtyZXR1cm4hMH07ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlcnN1Ym1pdCYmKEU9YS5zZXR0aW5ncy5vbkFmdGVyc3VibWl0KTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD1mdW5jdGlvbigpe2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ZnVuY3Rpb24oZSl7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0PwphLmNsb3NlKCk6Yy5yZXZlYWwoYS5zZXR0aW5ncy5yZXZlYWwpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExO2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uRHVwbGljYXRlU2VuZD1mdW5jdGlvbigpe2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdCYmYS5jbG9zZSgpO2VtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpfTtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ZnVuY3Rpb24oZSl7dmFyIG49ITE7YS5zZXR0aW5ncy5mb3JtLnNob3dFbWFpbENvbmZpcm1hdGlvbiYmKG49Z2V0TWFpbFNlbnRIYW5kbGVyKCJfIitjLmF0dHIoImlkIikpLG4udGltZW91dENhbGxiYWNrPWZ1bmN0aW9uKCl7Yi50cmlnZ2VyKCJyZXNldCIpfSk7dmFyIEY9YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0O2lmKGUpYS5sb2dFdmVudCgicG9wdXAubGVhZF9zZW50IiksMD09RS5jYWxsKGMsYSkmJihGPSExKSwiZnVuY3Rpb24iPT10eXBlb2YgQyYmQygpLCJmdW5jdGlvbiI9PQp0eXBlb2YgRCYmRCgpLCJvblN1Ym1pdCI9PWEuc2V0dGluZ3MuY29va2llQ3JlYXRlJiZhLnNldENvb2tpZSgpLEYmJiJoaWRkZW4iIT1jLmNzcygidmlzaWJpbGl0eSIpJiZhLmNsb3NlKCJDT05TRU5UIiksYS5zZXR0aW5ncy5tYWlucG9wdXAmJihlbWFpbEhhbmRsZXIubWFpblByb21vPSEwKSxuP24uc2hvd1N1Y2Nlc3MoKTowPCQoImZvcm0jIitjLmF0dHIoImlkIikrIl9jb25maXJtIikubGVuZ3RoJiYkKCJmb3JtIyIrYy5hdHRyKCJpZCIpKyJfY29uZmlybSIpLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7bnx8KG49Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtuLnNob3dGYWlsKCl9Y2F0Y2goRyl7fX1zZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyl9O2Euc2F2ZVNldHRpbmdzKHtzdWJtaXR0ZWQ6ITB9KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRNYWlsJiYwPT1hLnNldHRpbmdzLm9uQmVmb3JlU2VuZE1haWwuY2FsbChjLAphKSlyZXR1cm4hMTthLnNldERlZmF1bHRBREYoKTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFERiYmKGc9YS5zZXR0aW5ncy5vbkFERi5jYWxsKGMsYSksIm9iamVjdCI9PXR5cGVvZiBnJiYkLmV4dGVuZChhLnNldHRpbmdzLkFERixnKSk7Zz0ibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpO3E9YS5zZXR0aW5ncy5BREY7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5Kyspe3ZhciByPWdbeV07ZW1haWxIYW5kbGVyW3JdPSIiIT1lbWFpbEhhbmRsZXJbcl0\/ZW1haWxIYW5kbGVyW3JdOnFbcl0\/cVtyXTplbWFpbEhhbmRsZXJbcl19ZW1haWxIYW5kbGVyLmJvZHk9YS5jbGVhbkJsYW5rVmFyaWFibGVzKGVtYWlsSGFuZGxlci5ib2R5KTthLnNob3dQdXJjaGFzZUludGVudFBvcHVwKCl8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLnNldHRpbmdzLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfTthLnNob3dQdXJjaGFzZUludGVudFBvcHVwPQpmdW5jdGlvbigpe2lmKGEuc2V0dGluZ3MucHVyY2hhc2VJbnRlbnRQb3B1cCl7dmFyIGI9JCgiI2ludGVyc3RpdGlhbFZlaGljbGVJbnRlbnQiKTtpZigxPmIubGVuZ3RofHxudWxsIT1Db29raWVzLmdldCgicHVyY2hhc2VfaW50ZW50IikpcmV0dXJuITE7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGQnYWNoYXQiLCJQb3B1cCB2dXMiLGEuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWwsMSk7Yy5jc3Moe29wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7Yi5maW5kKCJmb3JtIikub24oInN1Ym1pdCIsZnVuY3Rpb24oKXt2YXIgZD0kKHRoaXMpLGY9ZC5maW5kKCJpbnB1dCIpOyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIn0pLnN0YXJ0KCk7ZC5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHRleHRhcmVhIikubm9uSHRtbCgpO2YuZmlsdGVyKCIucmVxdWlyZWQiKS5yZXF1aXJlKCkubm9uSHRtbCgpO2YuZmlsdGVyKCIucmVxUmFkaW8iKS5yYWRpb09wdGlvbkNob3NlbigpOwppZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXtiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO3ZhciBoPXtwdXJjaGFzZV9pbnRlbnQ6ITB9O2Quc2VyaWFsaXplQXJyYXkoKS5tYXAoZnVuY3Rpb24obCxwLGcpe2hbbC5uYW1lXT1sLnZhbHVlfSk7Q29va2llcy5zZXQoInB1cmNoYXNlX2ludGVudCIsaC5wdXJjaGFzZV9pbnRlbnQsMzAsIi8iKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkludGVudGlvbnMgZCdhY2hhdCIsIlJlcG9uc2VzIixoLnB1cmNoYXNlX2ludGVudCwxKTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5zZXR0aW5ncy5ieXBhc3NDb25zZW50KX1yZXR1cm4hMX0pO2IucmV2ZWFsKHtjbG9zZV9vbl9iYWNrZ3JvdW5kX2NsaWNrOiExLGRpc21pc3NfbW9kYWxfY2xhc3M6Il9fTlVMTF9fIn0pO3JldHVybiEwfXJldHVybiExfTthLmdsb2JhbFJlcGxhY2VtZW50cz1mdW5jdGlvbigpe3ZhciBiPVtdOyQoImlucHV0W3R5cGU9aGlkZGVuXSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZz0KJCh0aGlzKS5hdHRyKCJuYW1lIik7Zz0idW5kZWZpbmVkIiE9dHlwZW9mIGc\/ZzokKHRoaXMpLmF0dHIoImlkIik7aWYoIWcpcmV0dXJuITA7dmFyIHQ9ITE7ImVtYWlsYnVpbGRhbmRwcmljZSI9PWcudG9Mb3dlckNhc2UoKSYmIiI9PSQodGhpcykudmFsKCkucmVwbGFjZSgvIC9nLCIiKSYmKHQ9ITApO3R8fCgiYnJhbmQiPT1nLnRvTG93ZXJDYXNlKCkmJmIucHVzaCh7bmFtZToibWFrZSIsdmFsdWU6JCh0aGlzKS52YWwoKX0pLGIucHVzaCh7bmFtZTpnLHZhbHVlOiQodGhpcykudmFsKCl9KSl9KTt2YXIgZD0iIjtpZigwPCQoIiNsYXN0dmlld2VkbWFrZSIpLmxlbmd0aCYmMDwkKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKS5sZW5ndGgpe3ZhciBmPSQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTtkPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpO3ZhciBoPSQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSxsPSQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpLHA9JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fAoiIjtkPWQrIiAiK2grIiAiK2wrKHAubGVuZ3RoPyIgIitwOiIiKTtkKz0wPGYubGVuZ3RoPyIgKFN0b2NrIyAiK2YrIikiOiIifWIucHVzaCh7bmFtZToiTEFTVFZFSElDTEVWSUVXRUQiLHZhbHVlOmR9KTtyZXR1cm4gYn07YS5jbGVhbkJsYW5rVmFyaWFibGVzPWZ1bmN0aW9uKGIpe3ZhciBkPWIucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLCIiKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZywiIikucmVwbGFjZSgve1wkUEFZTUVOVH0vZywiIikucmVwbGFjZSgve1wkUEFZTUVOVFRFUk19L2csIiIpLnJlcGxhY2UoL3tcJE9GRkVSfS9nLCIiKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZywiIikucmVwbGFjZSgve1wkQ09MT1J9L2csIiIpLnJlcGxhY2UoL3tcJEZOQU1FfS9nLAoiIikucmVwbGFjZSgve1wkTE5BTUV9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLCIiKS5yZXBsYWNlKC97XCRVU0VSUEhPTkV9L2csIiIpO21haWxQYWdlJiZiLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxtYWlsUGFnZS5iYW5kcExpbmsoKSk7cmV0dXJuIGR9O2EuY2FuY2VsPWZ1bmN0aW9uKCl7YS5jbG9zZSgiQ0FOQ0VMIil9O2Eub3Blbj1mdW5jdGlvbihiKXtpZigxPT1jLmRhdGEoIm9wZW4iKSlyZXR1cm4hMTsib2JqZWN0Ij09dHlwZW9mIGImJi0xIT0iY2xpY2sgdGFwIi5pbmRleE9mKGIudHlwZS50b0xvd2VyQ2FzZSgpKSYmKGs9ImNsaWNrIik7aWYoIWlzTmFOKGIpKXJldHVybiBzZXRUaW1lb3V0KGEub3BlbiwxRTMqYik7aWYoIWEuaXNDb250ZW50TG9hZGVkKCkpcmV0dXJuIGEubG9hZChhLm9wZW4pO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5uZXdWRFBWaWRlb0lzUGxheWluZyYmMT09d2luZG93Lm5ld1ZEUFZpZGVvSXNQbGF5aW5nJiYKImNsaWNrIiE9a3x8YS5pc0FjdGl2ZSgpKXJldHVybiBhLm9wZW4oNSk7YS5vbk9wZW4oKTtyZXR1cm4gYX07YS5leGVjT3Blbj1mdW5jdGlvbigpe251bGw9PUNvb2tpZXMuZ2V0KCJwb3B1cFNob3duRXhlYyIpJiYoQ29va2llcy5zZXQoInBvcHVwU2hvd25FeGVjIiwiMSIsbnVsbCx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLGEub3BlbigwKSl9O2EuaW5pdENvdW50ZG93bj1mdW5jdGlvbigpe3RyeXt2YXIgYj1uZXcgRGF0ZSgxRTMqYS5zZXR0aW5ncy5jb3VudGRvd24pO2lmKDA8Yy5maW5kKCIuY291bnRkb3duIikubGVuZ3RoKXt2YXIgZD1jLmZpbmQoIi5jb3VudGRvd24iKSxmPW5ldyBEYXRlLGg9Yi5nZXRUaW1lKCktZi5nZXRUaW1lKCk7aWYoMDxoKXt2YXIgbD1bTWF0aC5mbG9vcihoLzg2NEU1KSxNYXRoLmZsb29yKGglODY0RTUvMzZFNSksTWF0aC5mbG9vcihoJTg2NEU1JTM2RTUvNkU0KSxNYXRoLmZsb29yKGglODY0RTUlMzZFNSU2RTQvMUUzKV07Zm9yKGI9MDtiPApsLmxlbmd0aDtiKyspbFtiXT05PGxbYl0\/bFtiXS50b1N0cmluZygpOiIwIitsW2JdO3ZhciBwPWwuam9pbigiOiIpO2QuY291bnRkb3duKHtzdGFydFRpbWU6cCxpbWFnZToiL2ltYWdlcy9kaWdpdHNfc21hbGwucG5nIixkaWdpdFdpZHRoOjI5LGRpZ2l0SGVpZ2h0OjQzfSl9ZWxzZSBkLmhpZGUoKX19Y2F0Y2goZyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJihkZWJ1ZyhnKSxkZWJ1ZygiSW52YWxpZCBkYXRlICIsYS5zZXR0aW5ncy5jb3VudGRvd24pKX19O2EuY2xvc2U9ZnVuY3Rpb24oYil7aWYoIkNBTkNFTCI9PWImJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlQ2FuY2VsKXt2YXIgZD1hLnNldHRpbmdzLm9uQmVmb3JlQ2FuY2VsLmNhbGwoYyxhKTtpZigwPT1kKXJldHVybiExfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlQ2xvc2UmJihkPWEuc2V0dGluZ3Mub25CZWZvcmVDbG9zZS5jYWxsKGMsYSxiKSwwPT1kKSlyZXR1cm4hMTsKYy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX07YS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiBwb3B1cGl6ZXJBY3RpdmUoKX07YS5zZXRDb29raWU9ZnVuY3Rpb24oKXtDb29raWVzLnNldChhLnNldHRpbmdzLmNvb2tpZU5hbWUsIjEiLGEuc2V0dGluZ3MuY29va2llRHVyYXRpb24sIi8iKTt2YXIgYj1hLnNldHRpbmdzLmNvb2tpZU5hbWUudG9Mb3dlckNhc2UoKTtpZigicmViYXRlc2hvd24iPT1ifHwicmViYXRlb3RoZXJzaG93biI9PWImJiJ1c2VkIj09JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKSliPW5ldyBEYXRlLGIuc2V0VGltZShiLmdldFRpbWUoKSsxOEU0KSxDb29raWVzLnNldCgidXNlZFNsaWRlclBvcHVwRGlzcGxheWVkIiwiMSIsYiwiLyIpfTthLnNhdmVTZXR0aW5ncz1mdW5jdGlvbihiKXtiPSJ1bmRlZmluZWQiPT10eXBlb2YgYj97fTpiO2I9Im9iamVjdCIhPXR5cGVvZiBiP3t1c2VyRGVmaW5lZE5vbk9iamVjdDpifTpiO2MuZGF0YSgicG9wdXBTZXR0aW5ncyIsCiQuZXh0ZW5kKCEwLGEuc2V0dGluZ3MsYikpfTthLnNldERlZmF1bHRBREY9ZnVuY3Rpb24oKXt2YXIgYj0kKCIjcG9wdXBtYWtlIikudmFsKCksZD0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLGY9JCgiI3BvcHVweWVhciIpLnZhbCgpOzA8JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLmxlbmd0aCYmMDwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCkubGVuZ3RoJiYwPCQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpLmxlbmd0aCYmKGI9JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLGQ9JCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgpLGY9JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCkpO2Euc2V0dGluZ3MuQURGPXttYWtlOmIsbW9kZWw6ZCx5ZWFyOmYsc3RvY2tOdW1iZXI6JCgiI3BvcHVwc3RvY2tudW1iZXIiKS52YWwoKX19O2EubG9nRXZlbnQ9ZnVuY3Rpb24oYil7dmFyIGQ9YS5zZXR0aW5ncy5mb3JtO2Q9ZC5vZmZlcnR5cGU\/ZC5vZmZlcnR5cGU6IkVNQUlMSURfIitkLmVtYWlsaWQ7CmlmKCFiKXJldHVybiExOyQoYS50YXJnZXQpLnRyaWdnZXIoYik7aWYoInBvcHVwLmxlYWRfc2VudCI9PWIpe3ZhciBmPWsucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihsKXtyZXR1cm4gbC50b1VwcGVyQ2FzZSgpfSksaD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZixoLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGIsZCxhKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsZCkpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixkKX07YS5pc0NvbnRlbnRMb2FkZWQ9ZnVuY3Rpb24oKXtpZighYS50YXJnZXRbMF0uaGFzQXR0cmlidXRlKCJkYXRhLWxhenlsb2FkaWQiKSlyZXR1cm4hMDsKdmFyIGI9MD09PWEudGFyZ2V0Lmh0bWwoKS50cmltKCkubGVuZ3RoLGQ9YS5zZXR0aW5ncy5jb250ZW50TG9hZGVkfHwhMTtyZXR1cm4hYiYmZH07YS5sb2FkPWZ1bmN0aW9uKGIpe2EuaXNDb250ZW50TG9hZGVkKCk\/KGEuc2V0dGluZ3MuY29udGVudExvYWRlZD0hMCxiKCkpOiQuYWpheCh7dHlwZToiR0VUIixjYWNoZTohMCx1cmw6KCJFTkdMSVNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBvcHVwQ29udGVudCIsZGF0YTp7d3N3aWR0aDoiMCIsXzphLnNldHRpbmdzLmlkZW50LGlkOmEudGFyZ2V0LmRhdGEoImxhenlsb2FkaWQiKSxtYWtlOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpfHwiIixtb2RlbDokKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCl8fCIiLHllYXI6JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCl8fCIiLHRyaW06JCgiI2xhc3R2aWV3ZWR0cmltIikudmFsKCl8fCIiLApzdG9ja051bWJlcjokKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCl8fCIiLHZlaGljbGVJZDokKCIjdG9wY2FyaWQiKS52YWwoKXx8MH0sc3VjY2VzczpmdW5jdGlvbihkKXthLnRhcmdldC5odG1sKGQpO2Euc2V0dGluZ3MuY29udGVudExvYWRlZD0hMDsiZnVuY3Rpb24iPT09dHlwZW9mIGFkZE5vVHJhbnNsYXRlRW1haWxEZWYmJmFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKTtiKCl9fSl9O2EuY3JlYXRlQ29uZmlybUZvcm09ZnVuY3Rpb24oKXt2YXIgYj1hLnRhcmdldC5hdHRyKCJpZCIpKyJfY29uZmlybSI7MT4kKCIjY29uZmlybV9mb3JtcyIpLmxlbmd0aCYmJCgiYm9keSIpLmFwcGVuZCgkKCI8ZGl2PjwvZGl2PiIpLmF0dHIoImlkIiwiY29uZmlybV9mb3JtcyIpKTtpZigxPiQoIiMiK2IpLmxlbmd0aCYmYS5zZXR0aW5ncy5jb25maXJtRm9ybSYmMCE9PWEuc2V0dGluZ3MuY29uZmlybUZvcm0ubGVuZ3RoKXtiPSQoIjxmb3JtPjwvZm9ybT4iKS5hdHRyKCJpZCIsYikuYXR0cigibWV0aG9kIiwKIlBPU1QiKS5hdHRyKCJhY3Rpb24iLCIvY29uZmlybWF0aW9uLmh0bWwiKS5hdHRyKCJ0YXJnZXQiLCJpZnJhbWVndHJhY2siKTt2YXIgZD0kKCIjYXV0b2F1YmFpbmVfcG9wdXAiKTtkPVt7bmFtZToiZ3RhZ19jb252ZXJzaW9uIix2YWx1ZToiZ3RhZyJ9LHtuYW1lOiJsZWFkX2RlcGFydG1lbnQiLHZhbHVlOiIifSx7bmFtZToibGVhZFR5cGUiLHZhbHVlOiIifSx7bmFtZToicGFnZUlEIix2YWx1ZToiIn0se25hbWU6ImN1cnJlbnRVUkwiLHZhbHVlOiIifSx7bmFtZToiYnV0dG9uUG9zaXRpb24iLHZhbHVlOiIifSx7bmFtZToiZGVhbGVyTmFtZSIsdmFsdWU6IiJ9LHtuYW1lOiJpc0Z1bGxXaWR0aCIsdmFsdWU6IiJ9LHtuYW1lOiJpc01vYmlsZU5ld1ZEUCIsdmFsdWU6IiJ9LHtuYW1lOiJ0ZXN0bW9kZSIsdmFsdWU6IjAiLGNsYXNzOiJ0ZXN0bW9kZSJ9LHtuYW1lOiJmcm9tQXV0b0F1YmFpbmUiLHZhbHVlOjA8ZC5sZW5ndGgmJiJmYWxzZSIhPWQudmFsKCl9XTtbXS5wdXNoLmFwcGx5KGQsCmEuc2V0dGluZ3MuY29uZmlybUZvcm0pO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKSQoIjxpbnB1dCAvPiIpLmF0dHIoInR5cGUiLCJoaWRkZW4iKS5hdHRyKGRbZl0pLmFwcGVuZFRvKGIpOyQoIiNjb25maXJtX2Zvcm1zIikuYXBwZW5kKGIpO2Iub24oInN1Ym1pdCIsb25Db25maXJtU3VibWl0KX0xPiQoIiNndHJhY2tGcmFtZSIpLmxlbmd0aCYmJCgiPGlmcmFtZT48L2lmcmFtZT4iKS5hdHRyKHt3aWR0aDoxLGhlaWdodDoxLGZyYW1lQm9yZGVyOjAsaWQ6Imd0cmFja0ZyYW1lIixuYW1lOiJpZnJhbWVndHJhY2siLHN0eWxlOiJ3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsifSkuYXBwZW5kVG8oIiNjb25maXJtX2Zvcm1zIil9O3JldHVybiBhfTsKalF1ZXJ5KGZ1bmN0aW9uKGMpe3ZhciBtPWMoIiNzaXRlY29tcGlsZWlkIikubGVuZ3RoP2MoIiNzaXRlY29tcGlsZWlkIikudmFsKCk6TWF0aC5yb3VuZCgxRTcqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMTYpO2MuZm4ucG9wdXBpemU9ZnVuY3Rpb24oYSl7YT1hP2E6e307dmFyIGs9e3JldmVhbDp7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0sZm9ybTp7ZW1haWxpZDowLG9mZmVydHlwZTowLG5hbWU6MCxzZW5kVG86MCxzZW5kVG9BREY6MCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMX0sQURGOnttYWtlOiIiLG1vZGVsOiIiLHllYXI6IiIsc3RvY2tOdW1iZXI6IiJ9LGlkZW50Om0sZW5kUG9wdXBRdWV1ZTohMSxwcmlvcml0eToxLGFuaW1hdGlvbjohMSwKbm90cmFuc2Zvcm06ITEsZmlsbGZsYWc6ITEsc3VibWl0dGVkOiExLHNob3dvbmxvYWQ6ITEsY29va2llTmFtZTohMSxjb29raWVEdXJhdGlvbjo2MCxjbG9zZU9uU3VibWl0OiEwLGFkZGVkQ2xhc3NlczoiIn07aWYoMT09dGhpcy5sZW5ndGgpe3ZhciBiPXRoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIpP3RoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIpOnt9O3NldHRpbmdzPXt9O2MuZXh0ZW5kKCEwLHNldHRpbmdzLGssYixhKTshc2V0dGluZ3MuY29va2llTmFtZSYmMDx0aGlzLmF0dHIoImlkIikubGVuZ3RoJiYoc2V0dGluZ3MuY29va2llTmFtZT0iY3BwXyIrdGhpcy5hdHRyKCJpZCIpKTshc2V0dGluZ3MubmFtZSYmMDx0aGlzLmF0dHIoImlkIikubGVuZ3RoJiYoc2V0dGluZ3MubmFtZT10aGlzLmF0dHIoImlkIikucmVwbGFjZSgvQ29udGFpbmVyXGIvLCIiKSk7dGhpcy5kYXRhKCJwb3B1cFNldHRpbmdzIixzZXR0aW5ncyk7YT1uZXcgcG9wdXBpemVyKHRoaXMsc2V0dGluZ3MpOwpzZXR0aW5ncy5pbml0aWFsaXplZHx8KGEuaW5pdCgpLHBvcHVwU3VwZXJ2aXNvci5wb3B1cHMucHVzaChhKSk7cmV0dXJuIGF9cG9wdXBzPVtdO3RoaXMuZWFjaChmdW5jdGlvbigpe3BvcHVwcy5wdXNoKGModGhpcykucG9wdXBpemUoKSl9KTtyZXR1cm4gcG9wdXBzfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGE9bnVsbDtjKHdpbmRvdykub24oInRvdWNobW92ZSwgb25zY3JvbGwsIHNjcm9sbCBtb3VzZXdoZWVsIHJlc2l6ZSIsZnVuY3Rpb24oayl7Y2xlYXJUaW1lb3V0KGEpO2E9c2V0VGltZW91dChwb3B1cFN1cGVydmlzb3IucmVwb3NpdGlvbiwxRTMpfSl9LDFFMyl9KTsKLyoqIC9qcy92dGlwLmpzICoqLwp2YXIgX19fZDJjX3Z0aXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjQ3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY192dGlwanNfY19vbj0iMjAyNC0wMy0yNSAxMjozNTozOSI7InVzZSBzdHJpY3QiOwp0aGlzLnZ0aXA9ZnVuY3Rpb24oKXt0aGlzLnhPZmZzZXQ9LTEwO3RoaXMueU9mZnNldD0xMDskKCIudnRpcCIpLm9mZigpLm9uKCJob3ZlciIsZnVuY3Rpb24oYSl7dGhpcy50PXRoaXMudGl0bGU7dGhpcy50aXRsZT0iIjt0aGlzLnRvcD1hLnBhZ2VZK3lPZmZzZXQ7dGhpcy5sZWZ0PWEucGFnZVgreE9mZnNldDskKCJib2R5IikuYXBwZW5kKCc8cCBpZD0idnRpcCIgc3R5bGU9InotaW5kZXg6MTAwMDAwOyI+PGltZyBpZD0idnRpcEFycm93IiAvPicrdGhpcy50KyI8L3A+Iik7JCgicCN2dGlwICN2dGlwQXJyb3ciKS5hdHRyKCJzcmMiLCIvaW1hZ2VzL3NjcmF0Y2gvdnRpcF9hcnJvdy5wbmciKTskKCJwI3Z0aXAiKS5jc3MoInRvcCIsdGhpcy50b3ArInB4IikuY3NzKCJsZWZ0Iix0aGlzLmxlZnQrInB4IikuZmFkZUluKCJzbG93Iil9LGZ1bmN0aW9uKCl7dGhpcy50aXRsZT10aGlzLnQ7JCgicCN2dGlwIikuZmFkZU91dCgic2xvdyIpLnJlbW92ZSgpfSkub24oIm1vdXNlbW92ZSIsCmZ1bmN0aW9uKGEpe3RoaXMudG9wPWEucGFnZVkreU9mZnNldDt0aGlzLmxlZnQ9YS5wYWdlWCt4T2Zmc2V0OyQoInAjdnRpcCIpLmNzcygidG9wIix0aGlzLnRvcCsicHgiKS5jc3MoImxlZnQiLHRoaXMubGVmdCsicHgiKX0pfTtqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKGEpe3Z0aXAoKX0pOwovKiogL2pzL3dTY3JhdGNoUGFkLmpzICoqLwp2YXIgX19fZDJjX3dTY3JhdGNoUGFkanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzozNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfd1NjcmF0Y2hQYWRqc19jX29uPSIyMDI0LTA0LTEyIDE4OjMwOjA2IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihkKXtmdW5jdGlvbiBoKGIsYSl7dGhpcy5zcD1udWxsO3RoaXMuc2V0dGluZ3M9Yjt0aGlzLiRlbGVtPWE7dGhpcy5lbmFibGVkPSEwO3RoaXMuc2NyYXRjaD0hMTt0aGlzLmN0eD10aGlzLmNhbnZhcz1udWxsO3JldHVybiB0aGlzfWQuZm4ud1NjcmF0Y2hQYWQ9ZnVuY3Rpb24oYixhKXtpZigiZW5hYmxlIj09YilkKHRoaXMpLmRhdGEoIl93U2NyYXRjaFBhZCIpLmVuYWJsZSgpO2Vsc2V7aWYoIm9iamVjdCI9PT10eXBlb2YgYilhPWI7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGIpe3ZhciBjPVtdLGY9dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ZCh0aGlzKS5kYXRhKCJfd1NjcmF0Y2hQYWQiKTtlJiYoInJlc2V0Ij09PWI\/ZS5yZXNldCgpOiJjbGVhciI9PT1iP2UuY2xlYXIoKToiZW5hYmxlZCI9PT1iP2UuZW5hYmxlZD0hMD09PWE6dm9pZCAwIT09ZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3NbYl0mJih2b2lkIDAhPT1hP2Uuc2V0dGluZ3NbYl09CmE6Yy5wdXNoKGUuc2V0dGluZ3NbYl0pKSl9KTtyZXR1cm4gMT09PWMubGVuZ3RoP2NbMF06MDxjLmxlbmd0aD9jOmZ9YT1kLmV4dGVuZCh7fSxkLmZuLndTY3JhdGNoUGFkLmRlZmF1bHRTZXR0aW5ncyxhfHx7fSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQodGhpcyksZz1qUXVlcnkuZXh0ZW5kKCEwLHt9LGEpO2lmKCFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KXt2YXIgaz0iQnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1IGNhbnZhcywgcGxlYXNlIHVwZ3JhZGUgdG8gYSBtb3JlIG1vZGVybiBicm93c2VyLiI7ZCgiI3RleHREb2VzTm90U3VwcG9ydEhUTUw1IikubGVuZ3RoJiYoaz1kKCIjdGV4dERvZXNOb3RTdXBwb3J0SFRNTDUiKS52YWwoKSk7ZS5jc3MoInBhZGRpbmctdG9wIiwiNjBweCIpO2UuY3NzKCJoZWlnaHQiLCI1NXB4Iik7ZS5odG1sKGspOyJ1bmRlZmluZWQiIT10eXBlb2YgZy5pZFRvQWRkJiZkKCIjYmxvY2thZ2UiKwpnLmlkVG9BZGQpLmxlbmd0aCYmZCgiI2Jsb2NrYWdlIitnLmlkVG9BZGQpLmNzcygidG9wIixwYXJzZUludChkKCIjYmxvY2thZ2UiK2cuaWRUb0FkZCkuY3NzKCJ0b3AiKSkrMzArInB4Iik7cmV0dXJuITF9Zz1uZXcgaChnLGUpO2UuYXBwZW5kKGcuZ2VuZXJhdGUoKSk7Zy5waXhlbHM9Zy5jYW52YXMud2lkdGgqZy5jYW52YXMuaGVpZ2h0O2UuZGF0YSgiX3dTY3JhdGNoUGFkIixnKTtnLmluaXQoKX0pfX07ZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3M9e3dpZHRoOjYwMCxoZWlnaHQ6MTE1LGltYWdlOiIvaW1hZ2VzL3NjcmF0Y2gvc2xpZGUyLnBuZyIsaW1hZ2UyOiIvaW1hZ2VzL3BvcHVwcy9zdHlsZTIvc2NyYXRjaC5wbmciLGltYWdlRGlzYWJsZWQ6Ii9pbWFnZXMvcG9wdXBzL3N0eWxlMi9zY3JhdGNoX2Rpc2FibGVkLnBuZyIsY29sb3I6IiMzMzY2OTkiLG92ZXJsYXk6Im5vbmUiLHNpemU6MzAscmVhbHRpbWVQZXJjZW50OiExLHNjcmF0Y2hEb3duOm51bGwsc2NyYXRjaFVwOm51bGwsCnNjcmF0Y2hNb3ZlOm51bGwsY3Vyc29yOm51bGwsaWRUb0FkZDoiIixiYWNrZ3JvdW5kQ29sb3I6IiMwMTBhMjgiLGVuYWJsZWQ6ITB9O2gucHJvdG90eXBlPXtnZW5lcmF0ZTpmdW5jdGlvbigpe3RoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3RoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIik7dGhpcy5zcD1kKCI8ZGl2PjwvZGl2PiIpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLmFwcGVuZChkKHRoaXMuY2FudmFzKS5hdHRyKCJ3aWR0aCIsdGhpcy5zZXR0aW5ncy53aWR0aCsicHgiKS5hdHRyKCJoZWlnaHQiLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KyJweCIpLmF0dHIoInN0eWxlIiwicG9zaXRpb246YWJzb2x1dGU7bGVmdDotMnB4O3RvcDotMXB4O3otaW5kZXg6MTsiKSk7dGhpcy5zZXR0aW5ncy5lbmFibGVkJiZ0aGlzLmVuYWJsZSgpO3JldHVybiB0aGlzLnNwfSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlMiwKITApO3RoaXMuYmluZEJyb3dzZXIoKTt0aGlzLmJpbmRNb2JpbGUodGhpcy5zcCl9LGJpbmRCcm93c2VyOmZ1bmN0aW9uKGIpe3ZhciBhPXRoaXM7ZCh0aGlzLmNhbnZhcykub24oIm1vdXNlZG93biIsZnVuY3Rpb24oYyl7aWYoIWEuZW5hYmxlZClyZXR1cm4hMDtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLmNhbnZhc19vZmZzZXQ9ZChhLmNhbnZhcykub2Zmc2V0KCk7YS5zY3JhdGNoPSEwO2Euc2NyYXRjaEZ1bmMoYyxhLCJEb3duIil9KS5vbigibW91c2Vtb3ZlIixmdW5jdGlvbihjKXtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLnNjcmF0Y2gmJmEuc2NyYXRjaEZ1bmMoYyxhLCJNb3ZlIil9KS5vbigibW91c2V1cCIsZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5zY3JhdGNoJiYoYS5zY3JhdGNoPSExLGEuc2NyYXRjaEZ1bmMoYyxhLCJVcCIpKX0pfSxiaW5kTW9iaWxlOmZ1bmN0aW9uKGIpe2Iub24oInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIHRvdWNoY2FuY2VsIiwKZnVuY3Rpb24oKXt2YXIgYT1ldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtzd2l0Y2goZXZlbnQudHlwZSl7Y2FzZSAidG91Y2hzdGFydCI6dmFyIGM9Im1vdXNlZG93biI7YnJlYWs7Y2FzZSAidG91Y2htb3ZlIjpjPSJtb3VzZW1vdmUiO2JyZWFrO2Nhc2UgInRvdWNoZW5kIjpjPSJtb3VzZXVwIjticmVhaztkZWZhdWx0OnJldHVybn12YXIgZj1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpO2YuaW5pdE1vdXNlRXZlbnQoYywhMCwhMCx3aW5kb3csMSxhLnNjcmVlblgsYS5zY3JlZW5ZLGEuY2xpZW50WCxhLmNsaWVudFksITEsITEsITEsITEsMCxudWxsKTthLnRhcmdldC5kaXNwYXRjaEV2ZW50KGYpO2V2ZW50LnByZXZlbnREZWZhdWx0KCl9KX0saW5pdDpmdW5jdGlvbigpe3RoaXMuc3AuY3NzKCJ3aWR0aCIsdGhpcy5zZXR0aW5ncy53aWR0aC0yKTt0aGlzLnNwLmNzcygiaGVpZ2h0Iix0aGlzLnNldHRpbmdzLmhlaWdodC0yKTt0aGlzLnNwLmNzcygiY3Vyc29yIix0aGlzLnNldHRpbmdzLmN1cnNvcj8KJ3VybCgiJyt0aGlzLnNldHRpbmdzLmN1cnNvcisnIiksIGRlZmF1bHQnOiJkZWZhdWx0Iik7ZCh0aGlzLmNhbnZhcykuY3NzKHtjdXJzb3I6dGhpcy5zZXR0aW5ncy5jdXJzb3I\/J3VybCgiJyt0aGlzLnNldHRpbmdzLmN1cnNvcisnIiksIGRlZmF1bHQnOiJkZWZhdWx0In0pO3RoaXMuY2FudmFzLndpZHRoPXRoaXMuc2V0dGluZ3Mud2lkdGg7dGhpcy5jYW52YXMuaGVpZ2h0PXRoaXMuc2V0dGluZ3MuaGVpZ2h0O3RoaXMucGl4ZWxzPXRoaXMuY2FudmFzLndpZHRoKnRoaXMuY2FudmFzLmhlaWdodDt0aGlzLnNldHRpbmdzLmltYWdlMj8odGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZTIpLHRoaXMuc2V0dGluZ3MuZW5hYmxlZHx8dGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZURpc2FibGVkLCEwKSk6KCJub25lIiE9dGhpcy5zZXR0aW5ncy5vdmVybGF5Pyh0aGlzLnNldHRpbmdzLmltYWdlJiZ0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlKSwKdGhpcy5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPXRoaXMuc2V0dGluZ3Mub3ZlcmxheSk6dGhpcy5zZXRCZ0ltYWdlKCksdGhpcy5jdHguZmlsbFN0eWxlPXRoaXMuc2V0dGluZ3MuY29sb3IsdGhpcy5jdHguYmVnaW5QYXRoKCksdGhpcy5jdHgucmVjdCgwLDAsdGhpcy5zZXR0aW5ncy53aWR0aCx0aGlzLnNldHRpbmdzLmhlaWdodCksdGhpcy5jdHguZmlsbCgpKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIjt0aGlzLmluaXQoKX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuc2V0dGluZ3Mud2lkdGgsdGhpcy5zZXR0aW5ncy5oZWlnaHQpfSxzZXRCZ0ltYWdlOmZ1bmN0aW9uKCl7dGhpcy5zZXR0aW5ncy5pbWFnZSYmKHRoaXMuc3AuYWRkQ2xhc3MoInNjcmF0Y2hEaXZUZXh0IiksdGhpcy5zcC5jc3MoImJhY2tncm91bmQtY29sb3IiLHRoaXMuc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yKSwKdGhpcy5zcC5hcHBlbmQoIjxkaXYgaWQ9J3NjcmF0Y2hEaXZUZXh0Iit0aGlzLnNldHRpbmdzLmlkVG9BZGQrIicgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTozMHB4O2NvbG9yOiNmZmY7bWFyZ2luLWxlZnQ6MHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjBweDt6LWluZGV4OjA7Jz4iK2QoIiNzY3JhdGNoSW5wdXRUZXh0Iit0aGlzLnNldHRpbmdzLmlkVG9BZGQpLnZhbCgpKyI8L2Rpdj4iKSl9LGRyYXdJbWFnZTpmdW5jdGlvbihiLGEpe3ZhciBjPXRoaXMsZj1uZXcgSW1hZ2U7Zi5zcmM9YjtkKGYpLm9uKCJsb2FkIixmdW5jdGlvbigpe2MuY3R4LmRyYXdJbWFnZShmLDAsMCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiZhfHxjLnNldEJnSW1hZ2UoKX0pfSxzY3JhdGNoRnVuYzpmdW5jdGlvbihiLGEsYyl7Yi5wYWdlWD1NYXRoLmZsb29yKGIucGFnZVgtYS5jYW52YXNfb2Zmc2V0LmxlZnQpO2IucGFnZVk9Ck1hdGguZmxvb3IoYi5wYWdlWS1hLmNhbnZhc19vZmZzZXQudG9wKTthWyJzY3JhdGNoIitjXShiLGEpOyh0aGlzLnNldHRpbmdzLnJlYWx0aW1lUGVyY2VudHx8IlVwIj09YykmJmEuc2V0dGluZ3NbInNjcmF0Y2giK2NdJiZhLnNldHRpbmdzWyJzY3JhdGNoIitjXS5hcHBseShhLFtiLGEuc2NyYXRjaFBlcmNlbnRhZ2UoYSldKX0sc2NyYXRjaFBlcmNlbnRhZ2U6ZnVuY3Rpb24oYil7Zm9yKHZhciBhPTAsYz1iLmN0eC5nZXRJbWFnZURhdGEoMCwwLGIuY2FudmFzLndpZHRoLGIuY2FudmFzLmhlaWdodCksZj0wLGU9Yy5kYXRhLmxlbmd0aDtmPGU7Zis9NCkwPT1jLmRhdGFbZl0mJjA9PWMuZGF0YVtmKzFdJiYwPT1jLmRhdGFbZisyXSYmMD09Yy5kYXRhW2YrM10mJmErKztyZXR1cm4gYS9iLnBpeGVscyoxMDB9LHNjcmF0Y2hEb3duOmZ1bmN0aW9uKGIsYSl7YS5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdXQiO2EuY3R4LmxpbmVKb2luPSJyb3VuZCI7CmEuY3R4LmxpbmVDYXA9InJvdW5kIjthLmN0eC5zdHJva2VTdHlsZT1hLnNldHRpbmdzLmNvbG9yO2EuY3R4LmxpbmVXaWR0aD1hLnNldHRpbmdzLnNpemU7YS5jdHguYmVnaW5QYXRoKCk7YS5jdHguYXJjKGIucGFnZVgsYi5wYWdlWSxhLnNldHRpbmdzLnNpemUvMiwwLDIqTWF0aC5QSSwhMCk7YS5jdHguY2xvc2VQYXRoKCk7YS5jdHguZmlsbCgpO2EuY3R4LmJlZ2luUGF0aCgpO2EuY3R4Lm1vdmVUbyhiLnBhZ2VYLGIucGFnZVkpfSxzY3JhdGNoTW92ZTpmdW5jdGlvbihiLGEpe2EuY3R4LmxpbmVUbyhiLnBhZ2VYLGIucGFnZVkpO2EuY3R4LnN0cm9rZSgpfSxzY3JhdGNoVXA6ZnVuY3Rpb24oYixhKXthLmN0eC5jbG9zZVBhdGgoKX19fSkoalF1ZXJ5KTsKLyoqIC9qcy9zd2ZzdG9yZS5qcyAqKi8KdmFyIF9fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6MjEiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNzo1MyI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzU6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ0OjU4IjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MjozMSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBnKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSl0aHJvdyJTd2ZTdG9yZSBFcnJvcjogRnVuY3Rpb25zIGNhbm5vdCBiZSB1c2VkIGFzIGtleXMgb3IgdmFsdWVzLiI7fXZhciBoPTAsbT0vW15hLXowLTlfXS9naTt3aW5kb3cuU3dmU3RvcmU9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gZShkKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGIpO2IuaWQ9IlN3ZlN0b3JlXyIrYS5uYW1lc3BhY2UrIl8iK2grKztkfHwoYi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGIuc3R5bGUudG9wPSItMjAwMHB4IixiLnN0eWxlLmxlZnQ9Ii0yMDAwcHgiKTtyZXR1cm4gYn1hPWF8fHt9O3ZhciBmPXtzd2ZfdXJsOiJzdG9yYWdlLnN3ZiIsbmFtZXNwYWNlOiJzd2ZzdG9yZSIscGF0aDpudWxsLGRlYnVnOiExLHRpbWVvdXQ6MTAsb25yZWFkeTpudWxsLG9uZXJyb3I6bnVsbH07Zm9yKGMgaW4gZilmLmhhc093blByb3BlcnR5KGMpJiYKKGEuaGFzT3duUHJvcGVydHkoYyl8fChhW2NdPWZbY10pKTthLm5hbWVzcGFjZT1hLm5hbWVzcGFjZS5yZXBsYWNlKG0sIl8iKTtpZih3aW5kb3cuU3dmU3RvcmVbYS5uYW1lc3BhY2VdKXRocm93IlRoZXJlIGlzIGFscmVhZHkgYW4gaW5zdGFuY2Ugb2YgU3dmU3RvcmUgdXNpbmcgdGhlICciK2EubmFtZXNwYWNlKyInIG5hbWVzcGFjZS4gVXNlIHRoYXQgaW5zdGFuY2Ugb3Igc3BlY2lmeSBhbiBhbHRlcm5hdGUgbmFtZXNwYWNlIGluIHRoZSBjb25maWcuIjt0aGlzLmNvbmZpZz1hO2lmKGEuZGVidWcpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGUpe3ZhciBuPWUoITApO3dpbmRvdy5jb25zb2xlPXtsb2c6ZnVuY3Rpb24oZCl7dmFyIGI9ZSghMCk7Yi5pbm5lckhUTUw9ZDtuLmFwcGVuZENoaWxkKGIpfX19dGhpcy5sb2c9ZnVuY3Rpb24oZCxiLGspe2I9InN3ZlN0b3JlIj09PWI\/InN3ZiI6YjtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjb25zb2xlW2RdKWNvbnNvbGVbZF0oIlN3ZlN0b3JlIC0gIisKYS5uYW1lc3BhY2UrIiAoIitiKyIpOiAiK2spO2Vsc2UgY29uc29sZS5sb2coIlN3ZlN0b3JlIC0gIithLm5hbWVzcGFjZSsiOiAiK2QrIiAoIitiKyIpOiAiK2spfX1lbHNlIHRoaXMubG9nPWZ1bmN0aW9uKCl7fTt0aGlzLmxvZygiaW5mbyIsImpzIiwiSW5pdGlhbGl6aW5nLi4uIik7U3dmU3RvcmVbYS5uYW1lc3BhY2VdPXRoaXM7Zj1lKGEuZGVidWcpO3ZhciBjPSJTd2ZTdG9yZV8iK2EubmFtZXNwYWNlKyJfIitoKyssbD0ibG9nZm49U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLmxvZyZhbXA7b25sb2FkPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5vbmxvYWQmYW1wO29uZXJyb3I9U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLm9uZXJyb3ImYW1wOyIrKGEucGF0aD8iTFNPUGF0aD0iK2EucGF0aCsiJmFtcDsiOiIiKSsiTFNPTmFtZT0iK2EubmFtZXNwYWNlO2YuaW5uZXJIVE1MPSc8b2JqZWN0IGhlaWdodD0iMTAwIiB3aWR0aD0iNTAwIiBjb2RlYmFzZT0iaHR0cHM6Ly9kb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIiIGlkPSInKwpjKyciIGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCI+ICAgIDxwYXJhbSB2YWx1ZT0iJythLnN3Zl91cmwrJyIgbmFtZT0ibW92aWUiPiAgPHBhcmFtIHZhbHVlPSInK2wrJyIgbmFtZT0iRmxhc2hWYXJzIj4gICA8cGFyYW0gdmFsdWU9ImFsd2F5cyIgbmFtZT0iYWxsb3dTY3JpcHRBY2Nlc3MiPiAgPGVtYmVkIGhlaWdodD0iMzc1IiBhbGlnbj0ibWlkZGxlIiB3aWR0aD0iNTAwIiBwbHVnaW5zcGFnZT0iaHR0cHM6Ly93d3cubWFjcm9tZWRpYS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiIGZsYXNodmFycz0iJytsKyciIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBhbGxvd3NjcmlwdGFjY2Vzcz0iYWx3YXlzIiBxdWFsaXR5PSJoaWdoIiBsb29wPSJmYWxzZSIgcGxheT0idHJ1ZSIgbmFtZT0iJytjKyciIGJnY29sb3I9IiNmZmZmZmYiIHNyYz0iJythLnN3Zl91cmwrJyI+PC9vYmplY3Q+Jzt0aGlzLnN3Zj1kb2N1bWVudFtjXXx8CndpbmRvd1tjXTt0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtTd2ZTdG9yZVthLm5hbWVzcGFjZV0ubG9nKCJlcnJvciIsImpzIiwiVGltZW91dCByZWFjaGVkLCBhc3N1bWluZyAiK2Euc3dmX3VybCsiIGZhaWxlZCB0byBsb2FkIGFuZCBmaXJpbmcgdGhlIG9uZXJyb3IgY2FsbGJhY2suIik7aWYoYS5vbmVycm9yKWEub25lcnJvcigpfSwxRTMqYS50aW1lb3V0KX07U3dmU3RvcmUucHJvdG90eXBlPXt2ZXJzaW9uOiIxLjkiLHJlYWR5OiExLHNldDpmdW5jdGlvbihhLGUpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO2coZSk7dGhpcy5zd2Yuc2V0KGEsZSl9LGdldDpmdW5jdGlvbihhKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTtyZXR1cm4gdGhpcy5zd2YuZ2V0KGEpfSxnZXRBbGw6ZnVuY3Rpb24oKXt0aGlzLl9jaGVja1JlYWR5KCk7dmFyIGE9dGhpcy5zd2YuZ2V0QWxsKCk7YS5fX2ZsYXNoQnVnRml4JiZkZWxldGUgYS5fX2ZsYXNoQnVnRml4O3JldHVybiBhfSwKY2xlYXI6ZnVuY3Rpb24oYSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7dGhpcy5zd2YuY2xlYXIoYSl9LF9jaGVja1JlYWR5OmZ1bmN0aW9uKCl7aWYoIXRoaXMucmVhZHkpdGhyb3ciU3dmU3RvcmUgaXMgbm90IHlldCBmaW5pc2hlZCBpbml0aWFsaXppbmcuIFBhc3MgYSBjb25maWcub25yZWFkeSBjYWxsYmFjayBvciB3YWl0IHVudGlsIHRoaXMucmVhZHkgaXMgdHJ1ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBhIFN3ZlN0b3JlIGluc3RhbmNlLiI7fSxvbmxvYWQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5fdGltZW91dCk7YS5yZWFkeT0hMDthLnNldCgiX19mbGFzaEJ1Z0ZpeCIsIjEiKTtpZihhLmNvbmZpZy5vbnJlYWR5KWEuY29uZmlnLm9ucmVhZHkoKX0sMCl9LG9uZXJyb3I6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCk7aWYodGhpcy5jb25maWcub25lcnJvcil0aGlzLmNvbmZpZy5vbmVycm9yKCl9fX0pKCk7Ci8qKiAvanMvanF1ZXJ5LmNvdW50ZG93bi5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjMyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjEyIjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MDoxMCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIxLTEyLTE1IDEyOjUwOjM1IjsidXNlIHN0cmljdCI7CmpRdWVyeS5mbi5jb3VudGRvd249ZnVuY3Rpb24oaCl7aWYoMTx0aGlzLmxlbmd0aClyZXR1cm4gJCh0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5jb3VudGRvd24oaCl9KSx0aGlzO2lmKHRoaXMuZGF0YSgiY291bnRpbmciKSlyZXR1cm4gdGhpczt0aGlzLmRhdGEoImNvdW50aW5nIiwhMCk7dmFyIGE9e3N0ZXBUaW1lOjYwLGZvcm1hdDoiZGQ6aGg6bW06c3MiLHN0YXJ0VGltZToiMDE6MTI6MzI6NTUiLGRpZ2l0SW1hZ2VzOjYsZGlnaXRXaWR0aDo1MyxkaWdpdEhlaWdodDo3Nyx0aW1lckVuZDpmdW5jdGlvbigpe30saW1hZ2U6ImRpZ2l0cy5wbmcifSxjPVtdLGY9ZnVuY3Rpb24oYixkKXtyZXR1cm4gdm9pZCAwIT09ZD9jW2JdLmNzcyh7bWFyZ2luVG9wOmQrInB4In0pOnBhcnNlSW50KGNbYl0uY3NzKCJtYXJnaW5Ub3AiKS5yZXBsYWNlKCJweCIsIiIpKX0saz1mdW5jdGlvbihiKXtjW2JdLl9kaWdpdEluaXRpYWw9LShjW2JdLl9fbWF4KmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcyk7CnJldHVybiBmdW5jdGlvbiBlKCl7bXRvcD1mKGIpK2EuZGlnaXRIZWlnaHQ7aWYobXRvcD09YS5kaWdpdEhlaWdodClpZihmKGIsY1tiXS5fZGlnaXRJbml0aWFsKSwwPGIpayhiLTEpKCksMDxiJiZ2b2lkIDAhPT1jW2JdLl9fY29uZG1heCYmY1tiLTFdLl9kaWdpdEluaXRpYWw9PWYoYi0xKSYmZihiLC0oY1tiXS5fX2NvbmRtYXgqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKSk7ZWxzZXtjbGVhckludGVydmFsKGwpO2Zvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKWYoZywwKTthLnRpbWVyRW5kKCl9ZWxzZSBmKGIsbXRvcCksMCE9ZihiKS9hLmRpZ2l0SGVpZ2h0JWEuZGlnaXRJbWFnZXMmJnNldFRpbWVvdXQoZSxhLnN0ZXBUaW1lKSwwPT1tdG9wJiYoY1tiXS5fX2lzbWF4PSEwKX19OyQuZXh0ZW5kKGEsaCk7dGhpcy5jc3Moe2hlaWdodDphLmRpZ2l0SGVpZ2h0LG92ZXJmbG93OiJoaWRkZW4ifSk7KGZ1bmN0aW9uKGIpe2Zvcih2YXIgZD0wLGU9MDtlPGEuc3RhcnRUaW1lLmxlbmd0aDtlKyspe2lmKDA8PQpwYXJzZUludChhLnN0YXJ0VGltZVtlXSkpe2VsZW09JCgnPGRpdiBpZD0iY250XycrZSsnIiBjbGFzcz0iY250RGlnaXQiIC8+JykuY3NzKHtoZWlnaHQ6YS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKjEwLGZsb2F0OiJsZWZ0IixiYWNrZ3JvdW5kOiJ1cmwoJyIrYS5pbWFnZSsiJykiLHdpZHRoOmEuZGlnaXRXaWR0aH0pO2MucHVzaChlbGVtKTtmKGQsLShwYXJzZUludChhLnN0YXJ0VGltZVtlXSkqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKSk7Y1tkXS5fX21heD05O3N3aXRjaChhLmZvcm1hdFtlXSl7Y2FzZSAiaCI6Y1tkXS5fX21heD0wPT1kJTI\/Mjo5OzA9PWQlMiYmKGNbZF0uX19jb25kbWF4PTQpO2JyZWFrO2Nhc2UgImQiOmNbZF0uX19tYXg9OTticmVhaztjYXNlICJtIjpjYXNlICJzIjpjW2RdLl9fbWF4PTA9PWQlMj81Ojl9KytkfWVsc2UgZWxlbT0kKCc8ZGl2IGNsYXNzPSJjbnRTZXBhcmF0b3IiLz4nKS5jc3Moe2Zsb2F0OiJsZWZ0In0pLnRleHQoYS5zdGFydFRpbWVbZV0pOwpiLmFwcGVuZChlbGVtKX19KSh0aGlzKTt2YXIgbD1zZXRJbnRlcnZhbChrKGMubGVuZ3RoLTEpLDFFMyl9OwovKiogL2pzL2RhdGVVdGlscy5qcyAqKi8KdmFyIF9fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjQ2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjAxIjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzQ6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQxOjIzIjsidXNlIHN0cmljdCI7RGF0ZS5wcm90b3R5cGUuYW1vdW50QmV0d2Vlbj1mdW5jdGlvbihhLGIsYyxkKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YilyZXR1cm4gbnVsbDthPWEuZ2V0VGltZSgpO2I9Yi5nZXRUaW1lKCk7cmV0dXJuIE1hdGguZmxvb3IoKGItYS1kKS9jKX07Ci8qKiAvanMvanF1ZXJ5LnJldmVhbC5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlyZXZlYWxqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA2OjQyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlyZXZlYWxqc19jX29uPSIyMDI0LTA1LTE0IDEwOjMwOjA1IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihiKXtiKCJib2R5Iikub24oImNsaWNrIiwiYVtkYXRhLXJldmVhbC1pZF0iLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKTthPWIodGhpcykuYXR0cigiZGF0YS1yZXZlYWwtaWQiKTtiKCIjIithKS5yZXZlYWwoYih0aGlzKS5kYXRhKCkpfSk7Yi5mbi5yZXZlYWw9ZnVuY3Rpb24oYSl7YT1iLmV4dGVuZCh7fSx7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMCxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIixjbG9zZW9uZXNjYXBlOiEwfSxhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZigpeyJvYmplY3QiPT10eXBlb2YgcG9wdXBTdXBlcnZpc29yJiZzZXRUaW1lb3V0KHBvcHVwU3VwZXJ2aXNvci5yZXBvc2l0aW9uLDFFMyk7Zz0hMX12YXIgYz1iKHRoaXMpLGg9cGFyc2VJbnQoYy5jc3MoInRvcCIpKSxtPWMuaGVpZ2h0KCkraCxnPSExLApkPWIoIi5yZXZlYWwtbW9kYWwtYmciKTswPT1kLmxlbmd0aCYmKGQ9YignPGRpdiBjbGFzcz0icmV2ZWFsLW1vZGFsLWJnIiAvPicpLmluc2VydEFmdGVyKGMpKTtjLm9uKCJyZXZlYWw6b3BlbiIsZnVuY3Rpb24oKXt2YXIgaz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5pbm5lckhlaWdodD93aW5kb3cuaW5uZXJIZWlnaHQ6Yih3aW5kb3cpLmhlaWdodCgpLG49YihjKS5vdXRlckhlaWdodCgpO2IoYykub2Zmc2V0KCk7Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCk7dmFyIGw9L01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/NToyMCxlPShrLW4pLzIrbDtlPWU8bHx8azxuP2w6ZTswPGIoIiNkMmNfYm9keUNvbnRlbnQiKS5sZW5ndGgmJihlLT1iKCIjZDJjX2JvZHlDb250ZW50Iikub2Zmc2V0KCkudG9wKTswPGIoIi5zbG90TWFjaGluZUNvbnRhaW5lciIpLmxlbmd0aCYmYigiLnNsb3RNYWNoaW5lQ29udGFpbmVyIikuc2hvdygpO2Qub2ZmKCJjbGljay5tb2RhbEV2ZW50Iik7CmIoIi4iK2EuZGlzbWlzc21vZGFsY2xhc3MpLm9mZigiY2xpY2subW9kYWxFdmVudCIpO2d8fChnPSEwLCJmYWRlQW5kUG9wIj09YS5hbmltYXRpb24mJihjLmNzcyh7dG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLW0sb3BhY2l0eTowLHZpc2liaWxpdHk6InZpc2libGUifSksZC5mYWRlSW4oYS5hbmltYXRpb25zcGVlZC8yKSxjLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQvMikuYW5pbWF0ZSh7dG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2UrInB4IixvcGFjaXR5OjF9LGEuYW5pbWF0aW9uc3BlZWQsZigpKSksImZhZGUiPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHtvcGFjaXR5OjAsdmlzaWJpbGl0eToidmlzaWJsZSIsdG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2V9KSxkLmZhZGVJbihhLmFuaW1hdGlvbnNwZWVkLzIpLGMuZGVsYXkoYS5hbmltYXRpb25zcGVlZC8yKS5hbmltYXRlKHtvcGFjaXR5OjF9LGEuYW5pbWF0aW9uc3BlZWQsZigpKSksIm5vbmUiPT1hLmFuaW1hdGlvbiYmCihjLmNzcyh7dmlzaWJpbGl0eToidmlzaWJsZSIsdG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2V9KSxkLmNzcyh7ZGlzcGxheToiYmxvY2sifSksZigpKSwiZXh0ZXJuYWxBbmltYXRpb24iPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIix0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZSxkaXNwbGF5OiJub25lIn0pLnNob3coKSxkLmNzcyh7ZGlzcGxheToiYmxvY2sifSksZigpKSk7Yy5vZmYoInJldmVhbDpvcGVuIil9KTtjLm9uKCJyZXZlYWw6Y2xvc2UiLGZ1bmN0aW9uKCl7YigiYm9keSIpLmNzcygib3ZlcmZsb3ciLCJhdXRvIik7YigiLnNsb3RNYWNoaW5lQ29udGFpbmVyIikuaGlkZSgpO2lmKCFnJiYoZz0hMCwiZmFkZUFuZFBvcCI9PWEuYW5pbWF0aW9uJiYoZC5kZWxheShhLmFuaW1hdGlvbnNwZWVkKS5mYWRlT3V0KGEuYW5pbWF0aW9uc3BlZWQpLGMuYW5pbWF0ZSh7dG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLW0rInB4IixvcGFjaXR5OjB9LAphLmFuaW1hdGlvbnNwZWVkLzIsZnVuY3Rpb24oKXtjLmNzcyh7dG9wOmgsb3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtmKCl9KSksImZhZGUiPT1hLmFuaW1hdGlvbiYmKGQuZGVsYXkoYS5hbmltYXRpb25zcGVlZCkuZmFkZU91dChhLmFuaW1hdGlvbnNwZWVkKSxjLmFuaW1hdGUoe29wYWNpdHk6MH0sYS5hbmltYXRpb25zcGVlZCxmdW5jdGlvbigpe2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIix0b3A6aH0pO2YoKX0pKSwibm9uZSI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3Zpc2liaWxpdHk6ImhpZGRlbiIsdG9wOmh9KSxkLmNzcyh7ZGlzcGxheToibm9uZSJ9KSksImV4dGVybmFsQW5pbWF0aW9uIj09YS5hbmltYXRpb24pKWMuaGlkZSgpLm9uZSgiYW5pbWF0aW9uRW5kIixmdW5jdGlvbigpe2IodGhpcykuY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHRvcDpoLGRpc3BsYXk6Im5vbmUifSk7ZC5jc3Moe2Rpc3BsYXk6Im5vbmUifSl9KTtjLm9mZigicmV2ZWFsOmNsb3NlIik7CiJ1bmRlZmluZWQiIT10eXBlb2YgYS5jbG9zZWQmJmEuY2xvc2VkKCl9KTtjLnRyaWdnZXIoInJldmVhbDpvcGVuIik7YigiLiIrYS5kaXNtaXNzbW9kYWxjbGFzcykub24oImNsaWNrLm1vZGFsRXZlbnQgdG91Y2hzdGFydCIsZnVuY3Rpb24oKXtjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7YS5jbG9zZW9uYmFja2dyb3VuZGNsaWNrJiYoZC5jc3Moe2N1cnNvcjoicG9pbnRlciJ9KSxkLm9uKCJjbGljay5tb2RhbEV2ZW50IixmdW5jdGlvbigpe2MudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KSk7aWYoYS5jbG9zZW9uZXNjYXBlKWIoImJvZHkiKS5vbigia2V5dXAiLGZ1bmN0aW9uKGspezI3PT09ay53aGljaCYmYy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pfSl9fSkoalF1ZXJ5KTsKLyoqIC9qcy9qcXVlcnkucHJldHR5UGhvdG8yLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeXByZXR0eVBob3RvMmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6NDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeXByZXR0eVBob3RvMmpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6MzMiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIHkoKXt2YXIgZT1sb2NhdGlvbi5ocmVmO3JldHVybiBoYXNodGFnPS0xIT09ZS5pbmRleE9mKCIjcHJldHR5UGhvdG8iKT9kZWNvZGVVUkkoZS5zdWJzdHJpbmcoZS5pbmRleE9mKCIjcHJldHR5UGhvdG8iKSsxLGUubGVuZ3RoKSk6ITF9ZnVuY3Rpb24gbChlLHApe2U9ZS5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2U9KG5ldyBSZWdFeHAoIltcXD8mXSIrZSsiPShbXiYjXSopIikpLmV4ZWMocCk7cmV0dXJuIG51bGw9PWU\/IiI6ZVsxXX1hLnByZXR0eVBob3RvPXt2ZXJzaW9uOiIzLjEuNSJ9O2EuZm4ucHJldHR5UGhvdG89ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcCgpe2EoIi5wcF9sb2FkZXJJY29uIikuaGlkZSgpO3Byb2plY3RlZFRvcD1zY3JvbGxfcG9zLnNjcm9sbFRvcCsoay8yLWQuY29udGFpbmVySGVpZ2h0LzIpOzA+cHJvamVjdGVkVG9wJiYocHJvamVjdGVkVG9wPTApOyRwcHQuZmFkZVRvKGIuYW5pbWF0aW9uX3NwZWVkLAoxKTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLmFuaW1hdGUoe2hlaWdodDpkLmNvbnRlbnRIZWlnaHQsd2lkdGg6ZC5jb250ZW50V2lkdGh9LGIuYW5pbWF0aW9uX3NwZWVkKTskcHBfcGljX2hvbGRlci5hbmltYXRlKHt0b3A6cHJvamVjdGVkVG9wLGxlZnQ6MD5oLzItZC5jb250YWluZXJXaWR0aC8yPzA6aC8yLWQuY29udGFpbmVyV2lkdGgvMix3aWR0aDpkLmNvbnRhaW5lcldpZHRofSxiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9ob3ZlckNvbnRhaW5lciwjZnVsbFJlc0ltYWdlIikuaGVpZ2h0KGQuaGVpZ2h0KS53aWR0aChkLndpZHRoKTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZmFkZSIpLmZhZGVJbihiLmFuaW1hdGlvbl9zcGVlZCk7aXNTZXQmJiJpbWFnZSI9PXQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pPyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9ob3ZlckNvbnRhaW5lciIpLnNob3coKTokcHBfcGljX2hvbGRlci5maW5kKCIucHBfaG92ZXJDb250YWluZXIiKS5oaWRlKCk7CmIuYWxsb3dfZXhwYW5kJiYoZC5yZXNpemVkP2EoImEucHBfZXhwYW5kLGEucHBfY29udHJhY3QiKS5zaG93KCk6YSgiYS5wcF9leHBhbmQiKS5oaWRlKCkpOyFiLmF1dG9wbGF5X3NsaWRlc2hvd3x8cXx8dXx8YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO2IuY2hhbmdlcGljdHVyZWNhbGxiYWNrKCk7dT0hMH0pO2lzU2V0JiZiLm92ZXJsYXlfZ2FsbGVyeSYmImltYWdlIj09dChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk\/KGl0ZW1XaWR0aD01NyxuYXZXaWR0aD0iZmFjZWJvb2siPT1iLnRoZW1lfHwicHBfZGVmYXVsdCI9PWIudGhlbWU\/NTA6MzAsaXRlbXNQZXJQYWdlPU1hdGguZmxvb3IoKGQuY29udGFpbmVyV2lkdGgtMTAwLW5hdldpZHRoKS9pdGVtV2lkdGgpLGl0ZW1zUGVyUGFnZT1pdGVtc1BlclBhZ2U8cHBfaW1hZ2VzLmxlbmd0aD9pdGVtc1BlclBhZ2U6cHBfaW1hZ2VzLmxlbmd0aCx0b3RhbFBhZ2U9TWF0aC5jZWlsKHBwX2ltYWdlcy5sZW5ndGgvaXRlbXNQZXJQYWdlKS0KMSwwPT10b3RhbFBhZ2U\/KG5hdldpZHRoPTAsJHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X25leHQsLnBwX2Fycm93X3ByZXZpb3VzIikuaGlkZSgpKTokcHBfZ2FsbGVyeS5maW5kKCIucHBfYXJyb3dfbmV4dCwucHBfYXJyb3dfcHJldmlvdXMiKS5zaG93KCksZ2FsbGVyeVdpZHRoPWl0ZW1zUGVyUGFnZSppdGVtV2lkdGgsZnVsbEdhbGxlcnlXaWR0aD1wcF9pbWFnZXMubGVuZ3RoKml0ZW1XaWR0aCwkcHBfZ2FsbGVyeS5jc3MoIm1hcmdpbi1sZWZ0IiwtKGdhbGxlcnlXaWR0aC8yK25hdldpZHRoLzIpKS5maW5kKCJkaXY6Zmlyc3QiKS53aWR0aChnYWxsZXJ5V2lkdGgrNSkuZmluZCgidWwiKS53aWR0aChmdWxsR2FsbGVyeVdpZHRoKS5maW5kKCJsaS5zZWxlY3RlZCIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpLGdvVG9QYWdlPU1hdGguZmxvb3Ioc2V0X3Bvc2l0aW9uL2l0ZW1zUGVyUGFnZSk8dG90YWxQYWdlP01hdGguZmxvb3Ioc2V0X3Bvc2l0aW9uL2l0ZW1zUGVyUGFnZSk6CnRvdGFsUGFnZSxhLnByZXR0eVBob3RvLmNoYW5nZUdhbGxlcnlQYWdlKGdvVG9QYWdlKSwkcHBfZ2FsbGVyeV9saS5maWx0ZXIoIjplcSgiK3NldF9wb3NpdGlvbisiKSIpLmFkZENsYXNzKCJzZWxlY3RlZCIpKTokcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLm9mZigibW91c2VlbnRlciBtb3VzZWxlYXZlIik7ZS5hamF4Y2FsbGJhY2soKX1mdW5jdGlvbiB6KGMpeyRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyBvYmplY3QsI3BwX2Z1bGxfcmVzIGVtYmVkIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2ZhZGUiKS5mYWRlT3V0KGIuYW5pbWF0aW9uX3NwZWVkLGZ1bmN0aW9uKCl7YSgiLnBwX2xvYWRlckljb24iKS5zaG93KCk7YygpfSl9ZnVuY3Rpb24gRyhjKXsxPGM\/YSgiLnBwX25hdiIpLnNob3coKTphKCIucHBfbmF2IikuaGlkZSgpfWZ1bmN0aW9uIGcoYyxmKXtyZXNpemVkPSExO0EoYyxmKTtpbWFnZVdpZHRoPQpjO2ltYWdlSGVpZ2h0PWY7aWYoKG0+aHx8bj5rKSYmZG9yZXNpemUmJmIuYWxsb3dfcmVzaXplJiYhcil7cmVzaXplZD0hMDtmb3IoZml0dGluZz0hMTshZml0dGluZzspbT5oPyhpbWFnZVdpZHRoPWgtNTAsaW1hZ2VIZWlnaHQ9Zi9jKmltYWdlV2lkdGgpOm4+az8oaW1hZ2VIZWlnaHQ9ay01MCxpbWFnZVdpZHRoPWMvZippbWFnZUhlaWdodCk6Zml0dGluZz0hMCxuPWltYWdlSGVpZ2h0LG09aW1hZ2VXaWR0aDsobT5ofHxuPmspJiZnKG0sbik7QShpbWFnZVdpZHRoLGltYWdlSGVpZ2h0KX1yZXR1cm57d2lkdGg6TWF0aC5mbG9vcihpbWFnZVdpZHRoKSxoZWlnaHQ6TWF0aC5mbG9vcihpbWFnZUhlaWdodCksY29udGFpbmVySGVpZ2h0Ok1hdGguZmxvb3IobiksY29udGFpbmVyV2lkdGg6TWF0aC5mbG9vcihtKSsyKmIuaG9yaXpvbnRhbF9wYWRkaW5nLGNvbnRlbnRIZWlnaHQ6TWF0aC5mbG9vcih2KSxjb250ZW50V2lkdGg6TWF0aC5mbG9vcihCKSxyZXNpemVkfX1mdW5jdGlvbiBBKGMsCmYpe2M9cGFyc2VGbG9hdChjKTtmPXBhcnNlRmxvYXQoZik7JHBwX2RldGFpbHM9JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2RldGFpbHMiKTskcHBfZGV0YWlscy53aWR0aChjKTtkZXRhaWxzSGVpZ2h0PXBhcnNlRmxvYXQoJHBwX2RldGFpbHMuY3NzKCJtYXJnaW5Ub3AiKSkrcGFyc2VGbG9hdCgkcHBfZGV0YWlscy5jc3MoIm1hcmdpbkJvdHRvbSIpKTskcHBfZGV0YWlscz0kcHBfZGV0YWlscy5jbG9uZSgpLmFkZENsYXNzKGIudGhlbWUpLndpZHRoKGMpLmFwcGVuZFRvKGEoImJvZHkiKSkuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotMUU0fSk7ZGV0YWlsc0hlaWdodCs9JHBwX2RldGFpbHMuaGVpZ2h0KCk7ZGV0YWlsc0hlaWdodD0zND49ZGV0YWlsc0hlaWdodD8zNjpkZXRhaWxzSGVpZ2h0OyRwcF9kZXRhaWxzLnJlbW92ZSgpOyRwcF90aXRsZT0kcHBfcGljX2hvbGRlci5maW5kKCIucHB0Iik7JHBwX3RpdGxlLndpZHRoKGMpO3RpdGxlSGVpZ2h0PXBhcnNlRmxvYXQoJHBwX3RpdGxlLmNzcygibWFyZ2luVG9wIikpKwpwYXJzZUZsb2F0KCRwcF90aXRsZS5jc3MoIm1hcmdpbkJvdHRvbSIpKTskcHBfdGl0bGU9JHBwX3RpdGxlLmNsb25lKCkuYXBwZW5kVG8oYSgiYm9keSIpKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOi0xRTR9KTt0aXRsZUhlaWdodCs9JHBwX3RpdGxlLmhlaWdodCgpOyRwcF90aXRsZS5yZW1vdmUoKTt2PWYrZGV0YWlsc0hlaWdodDtCPWM7bj12K3RpdGxlSGVpZ2h0KyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF90b3AiKS5oZWlnaHQoKSskcHBfcGljX2hvbGRlci5maW5kKCIucHBfYm90dG9tIikuaGVpZ2h0KCk7bT1jfWZ1bmN0aW9uIHQoYyl7cmV0dXJuIGMubWF0Y2goL3lvdXR1YmVcLmNvbVwvd2F0Y2gvaSl8fGMubWF0Y2goL3lvdXR1XC5iZS9pKT8ieW91dHViZSI6Yy5tYXRjaCgvdmltZW9cLmNvbS9pKT8idmltZW8iOmMubWF0Y2goL1wubXA0L2kpPyJtcDQiOmMubWF0Y2goL2F2dTNkL2kpPyJhdnUzZCI6Yy5tYXRjaCgvXGIubW92XGIvaSk\/InF1aWNrdGltZSI6CmMubWF0Y2goL1xiLnN3ZlxiL2kpPyJmbGFzaCI6Yy5tYXRjaCgvXGJpZnJhbWU9dHJ1ZVxiL2kpPyJpZnJhbWUiOmMubWF0Y2goL1xiYWpheD10cnVlXGIvaSk\/ImFqYXgiOmMubWF0Y2goL1xiY3VzdG9tPXRydWVcYi9pKT8iY3VzdG9tIjoiIyI9PWMuc3Vic3RyKDAsMSk\/ImlubGluZSI6ImltYWdlIn1mdW5jdGlvbiB3KCl7ZG9yZXNpemUmJiJ1bmRlZmluZWQiIT10eXBlb2YgJHBwX3BpY19ob2xkZXImJihzY3JvbGxfcG9zPUMoKSxjb250ZW50SGVpZ2h0PSRwcF9waWNfaG9sZGVyLmhlaWdodCgpLGNvbnRlbnR3aWR0aD0kcHBfcGljX2hvbGRlci53aWR0aCgpLHByb2plY3RlZFRvcD1rLzIrc2Nyb2xsX3Bvcy5zY3JvbGxUb3AtY29udGVudEhlaWdodC8yLDA+cHJvamVjdGVkVG9wJiYocHJvamVjdGVkVG9wPTApLGNvbnRlbnRIZWlnaHQ+a3x8JHBwX3BpY19ob2xkZXIuY3NzKHt0b3A6cHJvamVjdGVkVG9wLGxlZnQ6aC8yK3Njcm9sbF9wb3Muc2Nyb2xsTGVmdC1jb250ZW50d2lkdGgvCjJ9KSl9ZnVuY3Rpb24gQygpe2lmKHNlbGYucGFnZVlPZmZzZXQpcmV0dXJue3Njcm9sbFRvcDpzZWxmLnBhZ2VZT2Zmc2V0LHNjcm9sbExlZnQ6c2VsZi5wYWdlWE9mZnNldH07aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKXJldHVybntzY3JvbGxUb3A6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCxzY3JvbGxMZWZ0OmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fTtpZihkb2N1bWVudC5ib2R5KXJldHVybntzY3JvbGxUb3A6ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Asc2Nyb2xsTGVmdDpkb2N1bWVudC5ib2R5LnNjcm9sbExlZnR9fWZ1bmN0aW9uIEQoYyl7Yi5zb2NpYWxfdG9vbHMmJihmYWNlYm9va19saWtlX2xpbms9Yi5zb2NpYWxfdG9vbHMucmVwbGFjZSgie2xvY2F0aW9uX2hyZWZ9IixlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZikpKTtiLm1hcmt1cD1iLm1hcmt1cC5yZXBsYWNlKCJ7cHBfc29jaWFsfSIsCiIiKTthKCJib2R5IikuYXBwZW5kKGIubWFya3VwKTskcHBfcGljX2hvbGRlcj1hKCIucHBfcGljX2hvbGRlciIpOyRwcHQ9YSgiLnBwdCIpOyRwcF9vdmVybGF5PWEoImRpdi5wcF9vdmVybGF5Iik7aWYoaXNTZXQmJmIub3ZlcmxheV9nYWxsZXJ5KXtjdXJyZW50R2FsbGVyeVBhZ2U9MDt0b0luamVjdD0iIjtmb3IoYz0wO2M8cHBfaW1hZ2VzLmxlbmd0aDtjKyspcHBfaW1hZ2VzW2NdLm1hdGNoKC9cYihqcGd8anBlZ3xwbmd8Z2lmKVxiL2dpKT8oY2xhc3NuYW1lPSIiLGltZ19zcmM9cHBfaW1hZ2VzW2NdKTooY2xhc3NuYW1lPSJkZWZhdWx0IixpbWdfc3JjPSIiKSx0b0luamVjdCs9IjxsaSBjbGFzcz0nIitjbGFzc25hbWUrIic+PGEgaHJlZj0nIyc+PGltZyBzcmM9JyIraW1nX3NyYysiJyB3aWR0aD0nNTAnIGFsdD0nJyAvPjwvYT48L2xpPiI7dG9JbmplY3Q9Yi5nYWxsZXJ5X21hcmt1cC5yZXBsYWNlKC97Z2FsbGVyeX0vZyx0b0luamVjdCk7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIikuYWZ0ZXIodG9JbmplY3QpOwokcHBfZ2FsbGVyeT1hKCIucHBfcGljX2hvbGRlciAucHBfZ2FsbGVyeSIpOyRwcF9nYWxsZXJ5X2xpPSRwcF9nYWxsZXJ5LmZpbmQoImxpIik7JHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X25leHQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZSgibmV4dCIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSk7JHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X3ByZXZpb3VzIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlR2FsbGVyeVBhZ2UoInByZXZpb3VzIik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KTskcHBfcGljX2hvbGRlci5maW5kKCIucHBfY29udGVudCIpLm9uKCJob3ZlciIsZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZ2FsbGVyeTpub3QoLmRpc2FibGVkKSIpLmZhZGVJbigpfSxmdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9nYWxsZXJ5Om5vdCguZGlzYWJsZWQpIikuZmFkZU91dCgpfSk7Cml0ZW1XaWR0aD01NzskcHBfZ2FsbGVyeV9saS5lYWNoKGZ1bmN0aW9uKGYpe2EodGhpcykuZmluZCgiYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoZik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KX0pfWIuc2xpZGVzaG93JiYoJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX25hdiIpLnByZXBlbmQoJzxhIGhyZWY9IiMiIGNsYXNzPSJwcF9wbGF5Ij5QbGF5PC9hPicpLCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9uYXYgLnBwX3BsYXkiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO3JldHVybiExfSkpOyRwcF9waWNfaG9sZGVyLmF0dHIoImNsYXNzIiwicHBfcGljX2hvbGRlciAiK2IudGhlbWUpOyRwcF9vdmVybGF5LmNzcyh7b3BhY2l0eTowLGhlaWdodDphKGRvY3VtZW50KS5oZWlnaHQoKSx3aWR0aDphKHdpbmRvdykud2lkdGgoKX0pLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLm1vZGFsfHwKYS5wcmV0dHlQaG90by5jbG9zZSgpfSk7YSgiYS5wcF9jbG9zZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNsb3NlKCk7cmV0dXJuITF9KTtpZihiLmFsbG93X2V4cGFuZClhKCJhLnBwX2V4cGFuZCIpLm9uKCJjbGljayIsZnVuY3Rpb24oZil7YSh0aGlzKS5oYXNDbGFzcygicHBfZXhwYW5kIik\/KGEodGhpcykucmVtb3ZlQ2xhc3MoInBwX2V4cGFuZCIpLmFkZENsYXNzKCJwcF9jb250cmFjdCIpLGRvcmVzaXplPSExKTooYSh0aGlzKS5yZW1vdmVDbGFzcygicHBfY29udHJhY3QiKS5hZGRDbGFzcygicHBfZXhwYW5kIiksZG9yZXNpemU9ITApO3ooZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLm9wZW4oKX0pO3JldHVybiExfSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3ByZXZpb3VzLCAucHBfbmF2IC5wcF9hcnJvd19wcmV2aW91cyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoInByZXZpb3VzIik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7CnJldHVybiExfSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX25leHQsIC5wcF9uYXYgLnBwX2Fycm93X25leHQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJuZXh0Iik7YS5wcmV0dHlQaG90by5zdG9wU2xpZGVzaG93KCk7cmV0dXJuITF9KTt3KCl9ZT1qUXVlcnkuZXh0ZW5kKHtob29rOiJyZWwiLGFuaW1hdGlvbl9zcGVlZDoiZmFzdCIsYWpheGNhbGxiYWNrOmZ1bmN0aW9uKCl7fSxzbGlkZXNob3c6NUUzLGF1dG9wbGF5X3NsaWRlc2hvdzohMSxvcGFjaXR5Oi44LHNob3dfdGl0bGU6ITAsYWxsb3dfcmVzaXplOiEwLGFsbG93X2V4cGFuZDohMCxkZWZhdWx0X3dpZHRoOjUwMCxkZWZhdWx0X2hlaWdodDozNDQsY291bnRlcl9zZXBhcmF0b3JfbGFiZWw6Ii8iLHRoZW1lOiJwcF9kZWZhdWx0Iixob3Jpem9udGFsX3BhZGRpbmc6MjAsaGlkZWZsYXNoOiExLHdtb2RlOiJvcGFxdWUiLGF1dG9wbGF5OiEwLG1vZGFsOiExLGRlZXBsaW5raW5nOiEwLApvdmVybGF5X2dhbGxlcnk6ITAsb3ZlcmxheV9nYWxsZXJ5X21heDozMCxrZXlib2FyZF9zaG9ydGN1dHM6ITAsY2hhbmdlcGljdHVyZWNhbGxiYWNrOmZ1bmN0aW9uKCl7fSxjYWxsYmFjazpmdW5jdGlvbigpe30saWU2X2ZhbGxiYWNrOiEwLG1hcmt1cDonPGRpdiBjbGFzcz0icHBfcGljX2hvbGRlciI+ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwdCI+Jm5ic3A7PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3RvcCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sZWZ0Ij48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX21pZGRsZSI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9yaWdodCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9jb250ZW50X2NvbnRhaW5lciI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sZWZ0Ij4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJwcF9leHBhbmQiIHRpdGxlPSJFeHBhbmQgdGhlIGltYWdlIj5FeHBhbmQ8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9yaWdodCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfY29udGVudCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2xvYWRlckljb24iPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9mYWRlIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9jbG9zZSIgaHJlZj0iIyI+Q2xvc2U8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9ob3ZlckNvbnRhaW5lciBqcXVlcnlwcDIiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9uZXh0IiBocmVmPSIjIj5uZXh0PC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJwcF9wcmV2aW91cyIgaHJlZj0iIyI+cHJldmlvdXM8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBwX2Z1bGxfcmVzIj48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2RldGFpbHMiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcF9kZXNjcmlwdGlvbiI+PC9wPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3NvY2lhbCI+e3BwX3NvY2lhbH08L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9ib3R0b20iPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbGVmdCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9taWRkbGUiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfcmlnaHQiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9vdmVybGF5Ij48L2Rpdj4nLApnYWxsZXJ5X21hcmt1cDonPGRpdiBjbGFzcz0icHBfZ2FsbGVyeSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InBwX2Fycm93X3ByZXZpb3VzIj5QcmV2aW91czwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2FsbGVyeX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0icHBfYXJyb3dfbmV4dCI+TmV4dDwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PicsaW1hZ2VfbWFya3VwOic8aW1nIGlkPSJmdWxsUmVzSW1hZ2UiIHNyYz0ie3BhdGh9IiAvPicsZmxhc2hfbWFya3VwOic8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCIgd2lkdGg9Int3aWR0aH0iIGhlaWdodD0ie2hlaWdodH0iPjxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9Int3bW9kZX0iIC8+PHBhcmFtIG5hbWU9ImFsbG93ZnVsbHNjcmVlbiIgdmFsdWU9InRydWUiIC8+PHBhcmFtIG5hbWU9ImFsbG93c2NyaXB0YWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjxwYXJhbSBuYW1lPSJtb3ZpZSIgdmFsdWU9IntwYXRofSIgLz48ZW1iZWQgc3JjPSJ7cGF0aH0iIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBhbGxvd2Z1bGxzY3JlZW49InRydWUiIGFsbG93c2NyaXB0YWNjZXNzPSJhbHdheXMiIHdpZHRoPSJ7d2lkdGh9IiBoZWlnaHQ9IntoZWlnaHR9IiB3bW9kZT0ie3dtb2RlfSI+PC9lbWJlZD48L29iamVjdD4nLApxdWlja3RpbWVfbWFya3VwOic8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOjAyQkYyNUQ1LThDMTctNEIyMy1CQzgwLUQzNDg4QUJEREM2QiIgY29kZWJhc2U9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3F0YWN0aXZleC9xdHBsdWdpbi5jYWIiIGhlaWdodD0ie2hlaWdodH0iIHdpZHRoPSJ7d2lkdGh9Ij48cGFyYW0gbmFtZT0ic3JjIiB2YWx1ZT0ie3BhdGh9Ij48cGFyYW0gbmFtZT0iYXV0b3BsYXkiIHZhbHVlPSJ7YXV0b3BsYXl9Ij48cGFyYW0gbmFtZT0idHlwZSIgdmFsdWU9InZpZGVvL3F1aWNrdGltZSI+PGVtYmVkIHNyYz0ie3BhdGh9IiBoZWlnaHQ9IntoZWlnaHR9IiB3aWR0aD0ie3dpZHRofSIgYXV0b3BsYXk9InthdXRvcGxheX0iIHR5cGU9InZpZGVvL3F1aWNrdGltZSIgcGx1Z2luc3BhZ2U9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3F1aWNrdGltZS9kb3dubG9hZC8iPjwvZW1iZWQ+PC9vYmplY3Q+JyxpZnJhbWVfbWFya3VwOic8aWZyYW1lIHNyYyA9IntwYXRofSIgd2lkdGg9Int3aWR0aH0iIGhlaWdodD0ie2hlaWdodH0iIGZyYW1lYm9yZGVyPSJubyI+PC9pZnJhbWU+JywKaW5saW5lX21hcmt1cDonPGRpdiBjbGFzcz0icHBfaW5saW5lIj57Y29udGVudH08L2Rpdj4nLG1wNF9tYXJrdXA6Jzx2aWRlbyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIiIHByZWxvYWQ9ImF1dG8iIGF1dG9wbGF5IGNvbnRyb2xzPSIiIGlkPSJwbGF5ZXIiIHN0eWxlPSJ3aWR0aDogMTAwJTsiPjxzb3VyY2UgdHlwZT0idmlkZW8vbXA0IiBzcmM9IntwYXRofSI+PC9zb3VyY2U+PC92aWRlbz4nLGN1c3RvbV9tYXJrdXA6IiIsc29jaWFsX3Rvb2xzOic8ZGl2IGNsYXNzPSJ0d2l0dGVyIj48YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vc2hhcmUiIGNsYXNzPSJ0d2l0dGVyLXNoYXJlLWJ1dHRvbiIgZGF0YS1jb3VudD0ibm9uZSI+VHdlZXQ8L2E+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3BsYXRmb3JtLnR3aXR0ZXIuY29tL3dpZGdldHMuanMiPlx4M2Mvc2NyaXB0PjwvZGl2PjxkaXYgY2xhc3M9ImZhY2Vib29rIj48aWZyYW1lIHNyYz0iLy93d3cuZmFjZWJvb2suY29tL3BsdWdpbnMvbGlrZS5waHA\/bG9jYWxlPWVuX1VTJmhyZWY9e2xvY2F0aW9uX2hyZWZ9JmFtcDtsYXlvdXQ9YnV0dG9uX2NvdW50JmFtcDtzaG93X2ZhY2VzPXRydWUmYW1wO3dpZHRoPTUwMCZhbXA7YWN0aW9uPWxpa2UmYW1wO2ZvbnQmYW1wO2NvbG9yc2NoZW1lPWxpZ2h0JmFtcDtoZWlnaHQ9MjMiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOm5vbmU7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6NTAwcHg7IGhlaWdodDoyM3B4OyIgYWxsb3dUcmFuc3BhcmVuY3k9InRydWUiPjwvaWZyYW1lPjwvZGl2Pid9LAplKTt2YXIgYj17fSx4PXRoaXMscj0hMSxkLHUsdixCLG4sbSxrPWEod2luZG93KS5oZWlnaHQoKSxoPWEod2luZG93KS53aWR0aCgpLHE7ZG9yZXNpemU9ITA7c2Nyb2xsX3Bvcz1DKCk7YSh3aW5kb3cpLm9mZigicmVzaXplLnByZXR0eXBob3RvIikub24oInJlc2l6ZS5wcmV0dHlwaG90byIsZnVuY3Rpb24oKXt3KCk7az1hKHdpbmRvdykuaGVpZ2h0KCk7aD1hKHdpbmRvdykud2lkdGgoKTsidW5kZWZpbmVkIiE9dHlwZW9mICRwcF9vdmVybGF5JiYkcHBfb3ZlcmxheS5oZWlnaHQoYShkb2N1bWVudCkuaGVpZ2h0KCkpLndpZHRoKGgpfSk7aWYoZS5rZXlib2FyZF9zaG9ydGN1dHMpYShkb2N1bWVudCkub2ZmKCJrZXlkb3duLnByZXR0eXBob3RvIikub24oImtleWRvd24ucHJldHR5cGhvdG8iLGZ1bmN0aW9uKGMpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJHBwX3BpY19ob2xkZXImJiRwcF9waWNfaG9sZGVyLmlzKCI6dmlzaWJsZSIpKXN3aXRjaChjLmtleUNvZGUpe2Nhc2UgMzc6YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJwcmV2aW91cyIpOwpjLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSAzOTphLnByZXR0eVBob3RvLmNoYW5nZVBhZ2UoIm5leHQiKTtjLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSAyNzpiLm1vZGFsfHxhLnByZXR0eVBob3RvLmNsb3NlKCksYy5wcmV2ZW50RGVmYXVsdCgpfX0pO2EucHJldHR5UGhvdG8uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe2I9ZTsicHBfZGVmYXVsdCI9PWIudGhlbWUmJihiLmhvcml6b250YWxfcGFkZGluZz0xNik7dGhlUmVsPWEodGhpcykuYXR0cihiLmhvb2spO2dhbGxlcnlSZWdFeHA9L1xbKD86LiopXF0vO3BwX2ltYWdlcz0oaXNTZXQ9Z2FsbGVyeVJlZ0V4cC5leGVjKHRoZVJlbCk\/ITA6ITEpP2pRdWVyeS5tYXAoeCxmdW5jdGlvbihjLGYpe2lmKC0xIT1hKGMpLmF0dHIoYi5ob29rKS5pbmRleE9mKHRoZVJlbCkpcmV0dXJuIGEoYykuYXR0cigiaHJlZiIpfSk6YS5tYWtlQXJyYXkoYSh0aGlzKS5hdHRyKCJocmVmIikpO3BwX3RpdGxlcz1pc1NldD9qUXVlcnkubWFwKHgsCmZ1bmN0aW9uKGMsZil7aWYoLTEhPWEoYykuYXR0cihiLmhvb2spLmluZGV4T2YodGhlUmVsKSlyZXR1cm4gYShjKS5maW5kKCJpbWciKS5hdHRyKCJhbHQiKT9hKGMpLmZpbmQoImltZyIpLmF0dHIoImFsdCIpOiIifSk6YS5tYWtlQXJyYXkoYSh0aGlzKS5maW5kKCJpbWciKS5hdHRyKCJhbHQiKSk7cHBfZGVzY3JpcHRpb25zPWlzU2V0P2pRdWVyeS5tYXAoeCxmdW5jdGlvbihjLGYpe2lmKC0xIT1hKGMpLmF0dHIoYi5ob29rKS5pbmRleE9mKHRoZVJlbCkpcmV0dXJuIGEoYykuYXR0cigidGl0bGUiKT9hKGMpLmF0dHIoInRpdGxlIik6IiJ9KTphLm1ha2VBcnJheShhKHRoaXMpLmF0dHIoInRpdGxlIikpO3BwX2ltYWdlcy5sZW5ndGg+Yi5vdmVybGF5X2dhbGxlcnlfbWF4JiYoYi5vdmVybGF5X2dhbGxlcnk9ITEpO3NldF9wb3NpdGlvbj1qUXVlcnkuaW5BcnJheShhKHRoaXMpLmF0dHIoImhyZWYiKSxwcF9pbWFnZXMpO3JlbF9pbmRleD1pc1NldD9zZXRfcG9zaXRpb246YSgiYVsiKwpiLmhvb2srIl49JyIrdGhlUmVsKyInXSIpLmluZGV4KGEodGhpcykpO0QodGhpcyk7aWYoYi5hbGxvd19yZXNpemUpYSh3aW5kb3cpLm9uKCJzY3JvbGwucHJldHR5cGhvdG8iLGZ1bmN0aW9uKCl7dygpfSk7YS5wcmV0dHlQaG90by5vcGVuKCk7cmV0dXJuITF9O2EucHJldHR5UGhvdG8ub3Blbj1mdW5jdGlvbihjLGYsRSxGKXsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPWUscHBfaW1hZ2VzPWEubWFrZUFycmF5KGMpLHBwX3RpdGxlcz1mP2EubWFrZUFycmF5KGYpOmEubWFrZUFycmF5KCIiKSxwcF9kZXNjcmlwdGlvbnM9RT9hLm1ha2VBcnJheShFKTphLm1ha2VBcnJheSgiIiksaXNTZXQ9MTxwcF9pbWFnZXMubGVuZ3RoPyEwOiExLHNldF9wb3NpdGlvbj1GP0Y6MCxEKGMudGFyZ2V0KSk7Yi5oaWRlZmxhc2gmJmEoIm9iamVjdCxlbWJlZCxpZnJhbWVbc3JjKj15b3V0dWJlXSxpZnJhbWVbc3JjKj12aW1lb10iKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKTtHKGEocHBfaW1hZ2VzKS5sZW5ndGgpOwphKCIucHBfbG9hZGVySWNvbiIpLnNob3coKTtiLmRlZXBsaW5raW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIHRoZVJlbCYmKGxvY2F0aW9uLmhhc2g9dGhlUmVsKyIvIityZWxfaW5kZXgrIi8iKTtiLnNvY2lhbF90b29scyYmKGZhY2Vib29rX2xpa2VfbGluaz1iLnNvY2lhbF90b29scy5yZXBsYWNlKCJ7bG9jYXRpb25faHJlZn0iLGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKSksJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX3NvY2lhbCIpLmh0bWwoZmFjZWJvb2tfbGlrZV9saW5rKSk7JHBwdC5pcygiOmhpZGRlbiIpJiYkcHB0LmNzcygib3BhY2l0eSIsMCkuc2hvdygpOyRwcF9vdmVybGF5LnNob3coKS5mYWRlVG8oYi5hbmltYXRpb25fc3BlZWQsYi5vcGFjaXR5KTskcHBfcGljX2hvbGRlci5maW5kKCIuY3VycmVudFRleHRIb2xkZXIiKS50ZXh0KHNldF9wb3NpdGlvbisxK2IuY291bnRlcl9zZXBhcmF0b3JfbGFiZWwrYShwcF9pbWFnZXMpLmxlbmd0aCk7InVuZGVmaW5lZCIhPQp0eXBlb2YgcHBfZGVzY3JpcHRpb25zW3NldF9wb3NpdGlvbl0mJiIiIT1wcF9kZXNjcmlwdGlvbnNbc2V0X3Bvc2l0aW9uXT8kcHBfcGljX2hvbGRlci5maW5kKCIucHBfZGVzY3JpcHRpb24iKS5zaG93KCkuaHRtbCh1bmVzY2FwZShwcF9kZXNjcmlwdGlvbnNbc2V0X3Bvc2l0aW9uXSkpOiRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9kZXNjcmlwdGlvbiIpLmhpZGUoKTttb3ZpZV93aWR0aD1wYXJzZUZsb2F0KGwoIndpZHRoIixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpP2woIndpZHRoIixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSk6Yi5kZWZhdWx0X3dpZHRoLnRvU3RyaW5nKCk7bW92aWVfaGVpZ2h0PXBhcnNlRmxvYXQobCgiaGVpZ2h0IixwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpP2woImhlaWdodCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOmIuZGVmYXVsdF9oZWlnaHQudG9TdHJpbmcoKTtyPSExOy0xIT1tb3ZpZV9oZWlnaHQuaW5kZXhPZigiJSIpJiYobW92aWVfaGVpZ2h0PQpwYXJzZUZsb2F0KGEod2luZG93KS5oZWlnaHQoKSpwYXJzZUZsb2F0KG1vdmllX2hlaWdodCkvMTAwLTE1MCkscj0hMCk7LTEhPW1vdmllX3dpZHRoLmluZGV4T2YoIiUiKSYmKG1vdmllX3dpZHRoPXBhcnNlRmxvYXQoYSh3aW5kb3cpLndpZHRoKCkqcGFyc2VGbG9hdChtb3ZpZV93aWR0aCkvMTAwLTE1MCkscj0hMCk7JHBwX3BpY19ob2xkZXIuZmFkZUluKGZ1bmN0aW9uKCl7Yi5zaG93X3RpdGxlJiYiIiE9cHBfdGl0bGVzW3NldF9wb3NpdGlvbl0mJiJ1bmRlZmluZWQiIT10eXBlb2YgcHBfdGl0bGVzW3NldF9wb3NpdGlvbl0\/JHBwdC5odG1sKHVuZXNjYXBlKHBwX3RpdGxlc1tzZXRfcG9zaXRpb25dKSk6JHBwdC5odG1sKCImbmJzcDsiKTtpbWdQcmVsb2FkZXI9IiI7c2tpcEluamVjdGlvbj0hMTtzd2l0Y2godChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkpe2Nhc2UgImltYWdlIjppbWdQcmVsb2FkZXI9bmV3IEltYWdlO25leHRJbWFnZT1uZXcgSW1hZ2U7aXNTZXQmJnNldF9wb3NpdGlvbjwKYShwcF9pbWFnZXMpLmxlbmd0aC0xJiYobmV4dEltYWdlLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uKzFdKTtwcmV2SW1hZ2U9bmV3IEltYWdlO2lzU2V0JiZwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uLTFdJiYocHJldkltYWdlLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uLTFdKTskcHBfcGljX2hvbGRlci5maW5kKCIjcHBfZnVsbF9yZXMiKVswXS5pbm5lckhUTUw9Yi5pbWFnZV9tYXJrdXAucmVwbGFjZSgve3BhdGh9L2cscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pO2ltZ1ByZWxvYWRlci5vbmxvYWQ9ZnVuY3Rpb24oKXtkPWcoaW1nUHJlbG9hZGVyLndpZHRoLGltZ1ByZWxvYWRlci5oZWlnaHQpO3AoKX07aW1nUHJlbG9hZGVyLm9uZXJyb3I9ZnVuY3Rpb24oKXthbGVydCgiSW1hZ2UgY2Fubm90IGJlIGxvYWRlZC4gTWFrZSBzdXJlIHRoZSBwYXRoIGlzIGNvcnJlY3QgYW5kIGltYWdlIGV4aXN0LiIpO2EucHJldHR5UGhvdG8uY2xvc2UoKX07aW1nUHJlbG9hZGVyLnNyYz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTsKYnJlYWs7Y2FzZSAieW91dHViZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7bW92aWVfaWQ9bCgidiIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOyIiPT1tb3ZpZV9pZCYmKG1vdmllX2lkPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dLnNwbGl0KCJ5b3V0dS5iZS8iKSxtb3ZpZV9pZD1tb3ZpZV9pZFsxXSwwPG1vdmllX2lkLmluZGV4T2YoIj8iKSYmKG1vdmllX2lkPW1vdmllX2lkLnN1YnN0cigwLG1vdmllX2lkLmluZGV4T2YoIj8iKSkpLDA8bW92aWVfaWQuaW5kZXhPZigiJiIpJiYobW92aWVfaWQ9bW92aWVfaWQuc3Vic3RyKDAsbW92aWVfaWQuaW5kZXhPZigiJiIpKSkpO21vdmllPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8iK21vdmllX2lkO2woInJlbCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pP21vdmllKz0iP3JlbD0iK2woInJlbCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOm1vdmllKz0iP3JlbD0xIjtiLmF1dG9wbGF5JiYobW92aWUrPSImYXV0b3BsYXk9MSIpOwp0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3t3bW9kZX0vZyxiLndtb2RlKS5yZXBsYWNlKC97cGF0aH0vZyxtb3ZpZSk7YnJlYWs7Y2FzZSAidmltZW8iOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO21vdmllX2lkPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO21vdmllPSJodHRwOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8iK21vdmllX2lkLm1hdGNoKC9odHRwKHM\/KTpcL1wvKHd3d1wuKT92aW1lby5jb21cLyhcZCspLylbM10rIj90aXRsZT0wJmFtcDtieWxpbmU9MCZhbXA7cG9ydHJhaXQ9MCI7Yi5hdXRvcGxheSYmKG1vdmllKz0iJmF1dG9wbGF5PTE7Iik7dmltZW9fd2lkdGg9ZC53aWR0aCsiL2VtYmVkLz9tb29nX3dpZHRoPSIrZC53aWR0aDt0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLHZpbWVvX3dpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLApkLmhlaWdodCkucmVwbGFjZSgve3BhdGh9L2csbW92aWUpO2JyZWFrO2Nhc2UgIm1wNCI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7bW92aWVfdXJsPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO3RvSW5qZWN0PWIubXA0X21hcmt1cC5yZXBsYWNlKC97cGF0aH0vZyxtb3ZpZV91cmwpO2JyZWFrO2Nhc2UgInF1aWNrdGltZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7ZC5oZWlnaHQrPTE1O2QuY29udGVudEhlaWdodCs9MTU7ZC5jb250YWluZXJIZWlnaHQrPTE1O3RvSW5qZWN0PWIucXVpY2t0aW1lX21hcmt1cC5yZXBsYWNlKC97d2lkdGh9L2csZC53aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZyxkLmhlaWdodCkucmVwbGFjZSgve3dtb2RlfS9nLGIud21vZGUpLnJlcGxhY2UoL3twYXRofS9nLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKS5yZXBsYWNlKC97YXV0b3BsYXl9L2csYi5hdXRvcGxheSk7YnJlYWs7Y2FzZSAiZmxhc2giOmQ9Zyhtb3ZpZV93aWR0aCwKbW92aWVfaGVpZ2h0KTtmbGFzaF92YXJzPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO2ZsYXNoX3ZhcnM9Zmxhc2hfdmFycy5zdWJzdHJpbmcocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0uaW5kZXhPZigiZmxhc2h2YXJzIikrMTAscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0ubGVuZ3RoKTtmaWxlbmFtZT1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTtmaWxlbmFtZT1maWxlbmFtZS5zdWJzdHJpbmcoMCxmaWxlbmFtZS5pbmRleE9mKCI\/IikpO3RvSW5qZWN0PWIuZmxhc2hfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyxkLndpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLGQuaGVpZ2h0KS5yZXBsYWNlKC97d21vZGV9L2csYi53bW9kZSkucmVwbGFjZSgve3BhdGh9L2csZmlsZW5hbWUrIj8iK2ZsYXNoX3ZhcnMpO2JyZWFrO2Nhc2UgImlmcmFtZSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7ZnJhbWVfdXJsPXBwX2ltYWdlc1tzZXRfcG9zaXRpb25dO2ZyYW1lX3VybD1mcmFtZV91cmwuc3Vic3RyKDAsCmZyYW1lX3VybC5pbmRleE9mKCJpZnJhbWUiKS0xKTt0b0luamVjdD1iLmlmcmFtZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3twYXRofS9nLGZyYW1lX3VybCk7YnJlYWs7Y2FzZSAiYWpheCI6ZG9yZXNpemU9ITE7ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7c2tpcEluamVjdGlvbj1kb3Jlc2l6ZT0hMDthLmdldChwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSxmdW5jdGlvbihIKXt0b0luamVjdD1iLmlubGluZV9tYXJrdXAucmVwbGFjZSgve2NvbnRlbnR9L2csSCk7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIilbMF0uaW5uZXJIVE1MPXRvSW5qZWN0O3AoKX0pO2JyZWFrO2Nhc2UgImN1c3RvbSI6ZD1nKG1vdmllX3dpZHRoLG1vdmllX2hlaWdodCk7dG9JbmplY3Q9Yi5jdXN0b21fbWFya3VwO2JyZWFrO2Nhc2UgImlubGluZSI6bXlDbG9uZT1hKHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKS5jbG9uZSgpLmFwcGVuZCgnPGJyIGNsZWFyPSJhbGwiIC8+JykuY3NzKHt3aWR0aDpiLmRlZmF1bHRfd2lkdGh9KS53cmFwSW5uZXIoJzxkaXYgaWQ9InBwX2Z1bGxfcmVzIj48ZGl2IGNsYXNzPSJwcF9pbmxpbmUiPjwvZGl2PjwvZGl2PicpLmFwcGVuZFRvKGEoImJvZHkiKSkuc2hvdygpLApkb3Jlc2l6ZT0hMSxkPWcoYShteUNsb25lKS53aWR0aCgpLGEobXlDbG9uZSkuaGVpZ2h0KCkpLGRvcmVzaXplPSEwLGEobXlDbG9uZSkucmVtb3ZlKCksdG9JbmplY3Q9Yi5pbmxpbmVfbWFya3VwLnJlcGxhY2UoL3tjb250ZW50fS9nLGEocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pLmh0bWwoKSl9aW1nUHJlbG9hZGVyfHxza2lwSW5qZWN0aW9ufHwoJHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIilbMF0uaW5uZXJIVE1MPXRvSW5qZWN0LHAoKSl9KTtyZXR1cm4hMX07YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlPWZ1bmN0aW9uKGMpe2N1cnJlbnRHYWxsZXJ5UGFnZT0wOyJwcmV2aW91cyI9PWM\/KHNldF9wb3NpdGlvbi0tLDA+c2V0X3Bvc2l0aW9uJiYoc2V0X3Bvc2l0aW9uPWEocHBfaW1hZ2VzKS5sZW5ndGgtMSkpOiJuZXh0Ij09Yz8oc2V0X3Bvc2l0aW9uKyssc2V0X3Bvc2l0aW9uPmEocHBfaW1hZ2VzKS5sZW5ndGgtMSYmKHNldF9wb3NpdGlvbj0wKSk6c2V0X3Bvc2l0aW9uPQpjO3JlbF9pbmRleD1zZXRfcG9zaXRpb247ZG9yZXNpemV8fChkb3Jlc2l6ZT0hMCk7Yi5hbGxvd19leHBhbmQmJmEoIi5wcF9jb250cmFjdCIpLnJlbW92ZUNsYXNzKCJwcF9jb250cmFjdCIpLmFkZENsYXNzKCJwcF9leHBhbmQiKTt6KGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5vcGVuKCl9KX07YS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZT1mdW5jdGlvbihjKXsibmV4dCI9PWM\/KGN1cnJlbnRHYWxsZXJ5UGFnZSsrLGN1cnJlbnRHYWxsZXJ5UGFnZT50b3RhbFBhZ2UmJihjdXJyZW50R2FsbGVyeVBhZ2U9MCkpOiJwcmV2aW91cyI9PWM\/KGN1cnJlbnRHYWxsZXJ5UGFnZS0tLDA+Y3VycmVudEdhbGxlcnlQYWdlJiYoY3VycmVudEdhbGxlcnlQYWdlPXRvdGFsUGFnZSkpOmN1cnJlbnRHYWxsZXJ5UGFnZT1jO3NsaWRlX3NwZWVkPSJuZXh0Ij09Y3x8InByZXZpb3VzIj09Yz9iLmFuaW1hdGlvbl9zcGVlZDowO3NsaWRlX3RvPWN1cnJlbnRHYWxsZXJ5UGFnZSppdGVtc1BlclBhZ2UqCml0ZW1XaWR0aDskcHBfZ2FsbGVyeS5maW5kKCJ1bCIpLmFuaW1hdGUoe2xlZnQ6LXNsaWRlX3RvfSxzbGlkZV9zcGVlZCl9O2EucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3c9ZnVuY3Rpb24oKXsidW5kZWZpbmVkIj09dHlwZW9mIHE\/KCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9wbGF5Iikub2ZmKCJjbGljayIpLnJlbW92ZUNsYXNzKCJwcF9wbGF5IikuYWRkQ2xhc3MoInBwX3BhdXNlIikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSkscT1zZXRJbnRlcnZhbChhLnByZXR0eVBob3RvLnN0YXJ0U2xpZGVzaG93LGIuc2xpZGVzaG93KSk6YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJuZXh0Iil9O2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdz1mdW5jdGlvbigpeyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9wYXVzZSIpLm9mZigiY2xpY2siKS5yZW1vdmVDbGFzcygicHBfcGF1c2UiKS5hZGRDbGFzcygicHBfcGxheSIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdygpO3JldHVybiExfSk7Y2xlYXJJbnRlcnZhbChxKTtxPXZvaWQgMH07YS5wcmV0dHlQaG90by5jbG9zZT1mdW5jdGlvbigpeyRwcF9vdmVybGF5LmlzKCI6YW5pbWF0ZWQiKXx8KGEucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpLCRwcF9waWNfaG9sZGVyLnN0b3AoKS5maW5kKCJvYmplY3QsZW1iZWQiKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKSxhKCJkaXYucHBfcGljX2hvbGRlcixkaXYucHB0LC5wcF9mYWRlIikuZmFkZU91dChiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpe2EodGhpcykucmVtb3ZlKCl9KSwkcHBfb3ZlcmxheS5mYWRlT3V0KGIuYW5pbWF0aW9uX3NwZWVkLGZ1bmN0aW9uKCl7Yi5oaWRlZmxhc2gmJmEoIm9iamVjdCxlbWJlZCxpZnJhbWVbc3JjKj15b3V0dWJlXSxpZnJhbWVbc3JjKj12aW1lb10iKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7YSh0aGlzKS5yZW1vdmUoKTsKYSh3aW5kb3cpLm9mZigic2Nyb2xsLnByZXR0eXBob3RvIik7LTEhPT1sb2NhdGlvbi5ocmVmLmluZGV4T2YoIiNwcmV0dHlQaG90byIpJiYobG9jYXRpb24uaGFzaD0icHJldHR5UGhvdG8iKTtiLmNhbGxiYWNrKCk7ZG9yZXNpemU9ITA7dT0hMTtkZWxldGUgYn0pKX07IXBwX2FscmVhZHlJbml0aWFsaXplZCYmeSgpJiYocHBfYWxyZWFkeUluaXRpYWxpemVkPSEwLGhhc2hSZWw9aGFzaEluZGV4PXkoKSxoYXNoSW5kZXg9aGFzaEluZGV4LnN1YnN0cmluZyhoYXNoSW5kZXguaW5kZXhPZigiLyIpKzEsaGFzaEluZGV4Lmxlbmd0aC0xKSxoYXNoUmVsPWhhc2hSZWwuc3Vic3RyaW5nKDAsaGFzaFJlbC5pbmRleE9mKCIvIikpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthKCJhWyIrZS5ob29rKyJePSciK2hhc2hSZWwrIiddOmVxKCIraGFzaEluZGV4KyIpIikudHJpZ2dlcigiY2xpY2siKX0sNTApKTtyZXR1cm4gdGhpcy5vZmYoImNsaWNrLnByZXR0eXBob3RvIikub24oImNsaWNrLnByZXR0eXBob3RvIiwKYS5wcmV0dHlQaG90by5pbml0aWFsaXplKX19KShqUXVlcnkpO3ZhciBwcF9hbHJlYWR5SW5pdGlhbGl6ZWQ9ITE7Ci8qKiAvanMvanF1ZXJ5LnRyYW5zaXRpb24ubWluLmpzICoqLwovKiEKICogalF1ZXJ5IFRyYW5zaXQgLSBDU1MzIHRyYW5zaXRpb25zIGFuZCB0cmFuc2Zvcm1hdGlvbnMKICogQ29weXJpZ2h0KGMpIDIwMTEgUmljbyBTdGEuIENydXogPHJpY29Acmljb3N0YWNydXouY29tPgogKiBNSVQgTGljZW5zZWQuCiAqCiAqIGh0dHA6Ly9yaWNvc3RhY3J1ei5jb20vanF1ZXJ5LnRyYW5zaXQKICogaHR0cDovL2dpdGh1Yi5jb20vcnN0YWNydXovanF1ZXJ5LnRyYW5zaXQKICovCihmdW5jdGlvbihkKXtmdW5jdGlvbiBrKGEpe3ZhciBiPVsiTW96IiwiV2Via2l0IiwiTyIsIm1zIl0sYz1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyKDEpO2lmKGEgaW4gaS5zdHlsZSlyZXR1cm4gYTtmb3IoYT0wO2E8Yi5sZW5ndGg7KythKXt2YXIgZD1iW2FdK2M7aWYoZCBpbiBpLnN0eWxlKXJldHVybiBkfX1mdW5jdGlvbiBqKGEpeyJzdHJpbmciPT09dHlwZW9mIGEmJnRoaXMucGFyc2UoYSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gcChhLGIsYyl7ITA9PT1iP2EucXVldWUoYyk6Yj9hLnF1ZXVlKGIsYyk6YygpfWZ1bmN0aW9uIG0oYSl7dmFyIGI9W107ZC5lYWNoKGEsZnVuY3Rpb24oYSl7YT1kLmNhbWVsQ2FzZShhKTthPWQudHJhbnNpdC5wcm9wZXJ0eU1hcFthXXx8YTthPXIoYSk7LTE9PT1kLmluQXJyYXkoYSxiKSYmYi5wdXNoKGEpfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gcShhLGIsYyxlKXthPW0oYSk7ZC5jc3NFYXNlW2NdJiYoYz1kLmNzc0Vhc2VbY10pOwp2YXIgaD0iIituKGIpKyIgIitjOzA8cGFyc2VJbnQoZSwxMCkmJihoKz0iICIrbihlKSk7dmFyIGY9W107ZC5lYWNoKGEsZnVuY3Rpb24oYSxiKXtmLnB1c2goYisiICIraCl9KTtyZXR1cm4gZi5qb2luKCIsICIpfWZ1bmN0aW9uIGYoYSxiKXtifHwoZC5jc3NOdW1iZXJbYV09ITApO2QudHJhbnNpdC5wcm9wZXJ0eU1hcFthXT1lLnRyYW5zZm9ybTtkLmNzc0hvb2tzW2FdPXtnZXQ6ZnVuY3Rpb24oYil7cmV0dXJuKGQoYikuY3NzKCJ0cmFuc2Zvcm0iKXx8bmV3IGopLmdldChhKX0sc2V0OmZ1bmN0aW9uKGIsZSl7dmFyIGg9ZChiKS5jc3MoInRyYW5zZm9ybSIpfHxuZXcgajtoLnNldEZyb21TdHJpbmcoYSxlKTtkKGIpLmNzcyh7dHJhbnNmb3JtOmh9KX19fWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGEucmVwbGFjZSgvKFtBLVpdKS9nLGZ1bmN0aW9uKGEpe3JldHVybiItIithLnRvTG93ZXJDYXNlKCl9KX1mdW5jdGlvbiBnKGEsYil7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYSYmIWEubWF0Y2goL15bXC0wLTlcLl0rJC8pPwphOiIiK2ErYn1mdW5jdGlvbiBuKGEpe2QuZnguc3BlZWRzW2FdJiYoYT1kLmZ4LnNwZWVkc1thXSk7cmV0dXJuIGcoYSwibXMiKX1kLnRyYW5zaXQ9e3ZlcnNpb246IjAuMS4zIixwcm9wZXJ0eU1hcDp7bWFyZ2luTGVmdDoibWFyZ2luIixtYXJnaW5SaWdodDoibWFyZ2luIixtYXJnaW5Cb3R0b206Im1hcmdpbiIsbWFyZ2luVG9wOiJtYXJnaW4iLHBhZGRpbmdMZWZ0OiJwYWRkaW5nIixwYWRkaW5nUmlnaHQ6InBhZGRpbmciLHBhZGRpbmdCb3R0b206InBhZGRpbmciLHBhZGRpbmdUb3A6InBhZGRpbmcifSxlbmFibGVkOiEwLHVzZVRyYW5zaXRpb25FbmQ6ITF9O3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9e30scz0tMTxuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2hyb21lIik7ZS50cmFuc2l0aW9uPWsoInRyYW5zaXRpb24iKTtlLnRyYW5zaXRpb25EZWxheT1rKCJ0cmFuc2l0aW9uRGVsYXkiKTtlLnRyYW5zZm9ybT1rKCJ0cmFuc2Zvcm0iKTsKZS50cmFuc2Zvcm1PcmlnaW49aygidHJhbnNmb3JtT3JpZ2luIik7aS5zdHlsZVtlLnRyYW5zZm9ybV09IiI7aS5zdHlsZVtlLnRyYW5zZm9ybV09InJvdGF0ZVkoOTBkZWcpIjtlLnRyYW5zZm9ybTNkPSIiIT09aS5zdHlsZVtlLnRyYW5zZm9ybV07ZC5leHRlbmQoZC5zdXBwb3J0LGUpO3ZhciBvPWUudHJhbnNpdGlvbkVuZD17TW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIixXZWJraXRUcmFuc2l0aW9uOiJ3ZWJraXRUcmFuc2l0aW9uRW5kIixtc1RyYW5zaXRpb246Ik1TVHJhbnNpdGlvbkVuZCJ9W2UudHJhbnNpdGlvbl18fG51bGwsaT1udWxsO2QuY3NzRWFzZT17X2RlZmF1bHQ6ImVhc2UiLCJpbiI6ImVhc2UtaW4iLG91dDoiZWFzZS1vdXQiLCJpbi1vdXQiOiJlYXNlLWluLW91dCIsc25hcDoiY3ViaWMtYmV6aWVyKDAsMSwuNSwxKSJ9O2QuY3NzSG9va3MudHJhbnNmb3JtPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGQoYSkuZGF0YSgidHJhbnNmb3JtIil9LApzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iO2MgaW5zdGFuY2VvZiBqfHwoYz1uZXcgaihjKSk7YS5zdHlsZVtlLnRyYW5zZm9ybV09IldlYmtpdFRyYW5zZm9ybSI9PT1lLnRyYW5zZm9ybSYmIXM\/Yy50b1N0cmluZyghMCk6Yy50b1N0cmluZygpO2QoYSkuZGF0YSgidHJhbnNmb3JtIixjKX19O2QuY3NzSG9va3MudHJhbnNmb3JtT3JpZ2luPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGVbZS50cmFuc2Zvcm1PcmlnaW5dfSxzZXQ6ZnVuY3Rpb24oYSxiKXthLnN0eWxlW2UudHJhbnNmb3JtT3JpZ2luXT1ifX07ZC5jc3NIb29rcy50cmFuc2l0aW9uPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGVbZS50cmFuc2l0aW9uXX0sc2V0OmZ1bmN0aW9uKGEsYil7YS5zdHlsZVtlLnRyYW5zaXRpb25dPWJ9fTtmKCJzY2FsZSIpO2YoInRyYW5zbGF0ZSIpO2YoInJvdGF0ZSIpO2YoInJvdGF0ZVgiKTtmKCJyb3RhdGVZIik7Zigicm90YXRlM2QiKTtmKCJwZXJzcGVjdGl2ZSIpOwpmKCJza2V3WCIpO2YoInNrZXdZIik7ZigieCIsITApO2YoInkiLCEwKTtqLnByb3RvdHlwZT17c2V0RnJvbVN0cmluZzpmdW5jdGlvbihhLGIpe3ZhciBjPSJzdHJpbmciPT09dHlwZW9mIGI\/Yi5zcGxpdCgiLCIpOmIuY29uc3RydWN0b3I9PT1BcnJheT9iOltiXTtjLnVuc2hpZnQoYSk7ai5wcm90b3R5cGUuc2V0LmFwcGx5KHRoaXMsYyl9LHNldDpmdW5jdGlvbihhKXt2YXIgYj1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoYXJndW1lbnRzLFsxXSk7dGhpcy5zZXR0ZXJbYV0\/dGhpcy5zZXR0ZXJbYV0uYXBwbHkodGhpcyxiKTp0aGlzW2FdPWIuam9pbigiLCIpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0dGVyW2FdP3RoaXMuZ2V0dGVyW2FdLmFwcGx5KHRoaXMpOnRoaXNbYV18fDB9LHNldHRlcjp7cm90YXRlOmZ1bmN0aW9uKGEpe3RoaXMucm90YXRlPWcoYSwiZGVnIil9LHJvdGF0ZVg6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGVYPWcoYSwiZGVnIil9LHJvdGF0ZVk6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGVZPQpnKGEsImRlZyIpfSxzY2FsZTpmdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJihiPWEpO3RoaXMuc2NhbGU9YSsiLCIrYn0sc2tld1g6ZnVuY3Rpb24oYSl7dGhpcy5za2V3WD1nKGEsImRlZyIpfSxza2V3WTpmdW5jdGlvbihhKXt0aGlzLnNrZXdZPWcoYSwiZGVnIil9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKGEpe3RoaXMucGVyc3BlY3RpdmU9ZyhhLCJweCIpfSx4OmZ1bmN0aW9uKGEpe3RoaXMuc2V0KCJ0cmFuc2xhdGUiLGEsbnVsbCl9LHk6ZnVuY3Rpb24oYSl7dGhpcy5zZXQoInRyYW5zbGF0ZSIsbnVsbCxhKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGEsYil7dm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWCYmKHRoaXMuX3RyYW5zbGF0ZVg9MCk7dm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWSYmKHRoaXMuX3RyYW5zbGF0ZVk9MCk7bnVsbCE9PWEmJih0aGlzLl90cmFuc2xhdGVYPWcoYSwicHgiKSk7bnVsbCE9PWImJih0aGlzLl90cmFuc2xhdGVZPWcoYiwicHgiKSk7dGhpcy50cmFuc2xhdGU9CnRoaXMuX3RyYW5zbGF0ZVgrIiwiK3RoaXMuX3RyYW5zbGF0ZVl9fSxnZXR0ZXI6e3g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNsYXRlWHx8MH0seTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2xhdGVZfHwwfSxzY2FsZTpmdW5jdGlvbigpe3ZhciBhPSh0aGlzLnNjYWxlfHwiMSwxIikuc3BsaXQoIiwiKTthWzBdJiYoYVswXT1wYXJzZUZsb2F0KGFbMF0pKTthWzFdJiYoYVsxXT1wYXJzZUZsb2F0KGFbMV0pKTtyZXR1cm4gYVswXT09PWFbMV0\/YVswXTphfSxyb3RhdGUzZDpmdW5jdGlvbigpe2Zvcih2YXIgYT0odGhpcy5yb3RhdGUzZHx8IjAsMCwwLDBkZWciKS5zcGxpdCgiLCIpLGI9MDszPj1iOysrYilhW2JdJiYoYVtiXT1wYXJzZUZsb2F0KGFbYl0pKTthWzNdJiYoYVszXT1nKGFbM10sImRlZyIpKTtyZXR1cm4gYX19LHBhcnNlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7YS5yZXBsYWNlKC8oW2EtekEtWjAtOV0rKVwoKC4qPylcKS9nLGZ1bmN0aW9uKGEsZCwKZSl7Yi5zZXRGcm9tU3RyaW5nKGQsZSl9KX0sdG9TdHJpbmc6ZnVuY3Rpb24oYSl7dmFyIGI9W10sYztmb3IoYyBpbiB0aGlzKWlmKHRoaXMuaGFzT3duUHJvcGVydHkoYykmJihlLnRyYW5zZm9ybTNkfHwhKCJyb3RhdGVYIj09PWN8fCJyb3RhdGVZIj09PWN8fCJwZXJzcGVjdGl2ZSI9PT1jfHwidHJhbnNmb3JtT3JpZ2luIj09PWMpKSkiXyIhPT1jWzBdJiYoYSYmInNjYWxlIj09PWM\/Yi5wdXNoKGMrIjNkKCIrdGhpc1tjXSsiLDEpIik6YSYmInRyYW5zbGF0ZSI9PT1jP2IucHVzaChjKyIzZCgiK3RoaXNbY10rIiwwKSIpOmIucHVzaChjKyIoIit0aGlzW2NdKyIpIikpO3JldHVybiBiLmpvaW4oIiAiKX19O2QuZm4udHJhbnNpdGlvbj1kLmZuLnRyYW5zaXQ9ZnVuY3Rpb24oYSxiLGMsZil7dmFyIGg9dGhpcyxnPTAsaT0hMDsiZnVuY3Rpb24iPT09dHlwZW9mIGImJihmPWIsYj12b2lkIDApOyJmdW5jdGlvbiI9PT10eXBlb2YgYyYmKGY9YyxjPXZvaWQgMCk7InVuZGVmaW5lZCIhPT0KdHlwZW9mIGEuZWFzaW5nJiYoYz1hLmVhc2luZyxkZWxldGUgYS5lYXNpbmcpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZHVyYXRpb24mJihiPWEuZHVyYXRpb24sZGVsZXRlIGEuZHVyYXRpb24pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuY29tcGxldGUmJihmPWEuY29tcGxldGUsZGVsZXRlIGEuY29tcGxldGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEucXVldWUmJihpPWEucXVldWUsZGVsZXRlIGEucXVldWUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZGVsYXkmJihnPWEuZGVsYXksZGVsZXRlIGEuZGVsYXkpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGImJihiPWQuZnguc3BlZWRzLl9kZWZhdWx0KTsidW5kZWZpbmVkIj09PXR5cGVvZiBjJiYoYz1kLmNzc0Vhc2UuX2RlZmF1bHQpO3ZhciBiPW4oYiksaj1xKGEsYixjLGcpLGw9ZC50cmFuc2l0LmVuYWJsZWQmJmUudHJhbnNpdGlvbj9wYXJzZUludChiLDEwKStwYXJzZUludChnLDEwKTowO2lmKDA9PT1sKXJldHVybiBwKGgsaSxmdW5jdGlvbihiKXtoLmNzcyhhKTsKZiYmZi5hcHBseShoKTtiJiZiKCl9KSxoO3ZhciBrPXt9LG09ZnVuY3Rpb24oYil7dmFyIGM9ZmFsc2UsZz1mdW5jdGlvbigpe2MmJmgub2ZmKG8sZyk7bD4wJiZoLmVhY2goZnVuY3Rpb24oKXt0aGlzLnN0eWxlW2UudHJhbnNpdGlvbl09a1t0aGlzXXx8bnVsbH0pO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmZi5hcHBseShoKTt0eXBlb2YgYj09PSJmdW5jdGlvbiImJmIoKX07aWYobD4wJiZvJiZkLnRyYW5zaXQudXNlVHJhbnNpdGlvbkVuZCl7Yz10cnVlO2gub24obyxnKX1lbHNlIHdpbmRvdy5zZXRUaW1lb3V0KGcsbCk7aC5lYWNoKGZ1bmN0aW9uKCl7bD4wJiYodGhpcy5zdHlsZVtlLnRyYW5zaXRpb25dPWopO2QodGhpcykuY3NzKGEpfSl9O3AoaCxpLGZ1bmN0aW9uKGEpe3ZhciBiPTA7ZS50cmFuc2l0aW9uPT09Ik1velRyYW5zaXRpb24iJiZiPDI1JiYoYj0yNSk7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXttKGEpfSxiKX0pO3JldHVybiB0aGlzfTtkLnRyYW5zaXQuZ2V0VHJhbnNpdGlvblZhbHVlPQpxfSkoalF1ZXJ5KTsvKkVPRiovOwovKiogL2pzL2pxdWVyeS50b3VjaFN3aXBlLm1pbi5qcyAqKi8KKGZ1bmN0aW9uKGcpe2cuZm4uc3dpcGU9ZnVuY3Rpb24obSl7aWYoIXRoaXMpcmV0dXJuIGZhbHNlO3ZhciBiPXtmaW5nZXJzOjEsdGhyZXNob2xkOjc1LHN3aXBlOm51bGwsc3dpcGVMZWZ0Om51bGwsc3dpcGVSaWdodDpudWxsLHN3aXBlVXA6bnVsbCxzd2lwZURvd246bnVsbCxzd2lwZVN0YXR1czpudWxsLGNsaWNrOm51bGwsdHJpZ2dlck9uVG91Y2hFbmQ6dHJ1ZSxhbGxvd1BhZ2VTY3JvbGw6ImF1dG8ifSxwPSJsZWZ0Iix2PSJyaWdodCIsdz0idXAiLHg9ImRvd24iLHk9Im5vbmUiLHo9Imhvcml6b250YWwiLEE9InZlcnRpY2FsIixHPSJhdXRvIixIPSJzdGFydCIsQj0ibW92ZSIscT0iZW5kIixuPSJjYW5jZWwiLGQ9Im9udG91Y2hzdGFydCJpbiB3aW5kb3csQz1kPyJ0b3VjaHN0YXJ0IjoibW91c2Vkb3duIixyPWQ\/InRvdWNobW92ZSI6Im1vdXNlbW92ZSIscz1kPyJ0b3VjaGVuZCI6Im1vdXNldXAiLGM9InN0YXJ0IjtpZihtLmFsbG93UGFnZVNjcm9sbD09dW5kZWZpbmVkJiYNCihtLnN3aXBlIT11bmRlZmluZWR8fG0uc3dpcGVTdGF0dXMhPXVuZGVmaW5lZCkpbS5hbGxvd1BhZ2VTY3JvbGw9eTttJiZnLmV4dGVuZChiLG0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBEKGEpe3ZhciBlPWQ\/YS50b3VjaGVzWzBdOmE7Yz1IO2lmKGQpaz1hLnRvdWNoZXMubGVuZ3RoO2Rpc3RhbmNlPTA7ZGlyZWN0aW9uPW51bGw7aWYoaz09Yi5maW5nZXJzfHwhZCl7aC54PWYueD1lLnBhZ2VYO2gueT1mLnk9ZS5wYWdlWTtiLnN3aXBlU3RhdHVzJiZvKGEsYyl9ZWxzZSBsKGEpO2lmKGQpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIocix0KTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHMsdSl9ZWxzZXtnKGRvY3VtZW50KS5vbihyLHQpO2coZG9jdW1lbnQpLm9uKHMsdSl9fWZ1bmN0aW9uIHQoYSl7aWYoIShjPT1xfHxjPT1uKSl7dmFyIGU9ZD9hLnRvdWNoZXNbMF06YTtmLng9ZS5wYWdlWDtmLnk9ZS5wYWdlWTtkaXJlY3Rpb249RSgpO2lmKGQpaz0NCmEudG91Y2hlcy5sZW5ndGg7Yz1CO2U9ZGlyZWN0aW9uO2lmKGIuYWxsb3dQYWdlU2Nyb2xsPT15KWEucHJldmVudERlZmF1bHQoKTtlbHNle3ZhciBpPWIuYWxsb3dQYWdlU2Nyb2xsPT1HO3N3aXRjaChlKXtjYXNlIHA6aWYoYi5zd2lwZUxlZnQmJml8fCFpJiZiLmFsbG93UGFnZVNjcm9sbCE9eilhLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSB2OmlmKGIuc3dpcGVSaWdodCYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT16KWEucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIHc6aWYoYi5zd2lwZVVwJiZpfHwhaSYmYi5hbGxvd1BhZ2VTY3JvbGwhPUEpYS5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgeDppZihiLnN3aXBlRG93biYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT1BKWEucHJldmVudERlZmF1bHQoKX19aWYoaz09Yi5maW5nZXJzfHwhZCl7ZGlzdGFuY2U9RigpO2Iuc3dpcGVTdGF0dXMmJm8oYSxjLGRpcmVjdGlvbixkaXN0YW5jZSk7aWYoIWIudHJpZ2dlck9uVG91Y2hFbmQpaWYoZGlzdGFuY2U+PQ0KYi50aHJlc2hvbGQpe2M9cTtvKGEsYyk7bChhKX19ZWxzZXtjPW47byhhLGMpO2woYSl9fX1mdW5jdGlvbiB1KGEpe2EucHJldmVudERlZmF1bHQoKTtkaXN0YW5jZT1GKCk7ZGlyZWN0aW9uPUUoKTtpZihiLnRyaWdnZXJPblRvdWNoRW5kKXtjPXE7aWYoKGs9PWIuZmluZ2Vyc3x8IWQpJiZmLnghPTApZGlzdGFuY2U+PWIudGhyZXNob2xkfHwoYz1uKTtlbHNlIGM9bjtvKGEsYyk7bChhKX1lbHNlIGlmKGM9PUIpe2M9bjtvKGEsYyk7bChhKX1pZihkKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHIsdCk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLHUpfWVsc2V7Zyhkb2N1bWVudCkub2ZmKHIsdCk7Zyhkb2N1bWVudCkub2ZmKHMsdSl9fWZ1bmN0aW9uIGwoKXtrPTA7aC54PTA7aC55PTA7Zi54PTA7Zi55PTB9ZnVuY3Rpb24gbyhhLGUpe2lmKGIuc3dpcGVTdGF0dXMpYi5zd2lwZVN0YXR1cy5jYWxsKGosYSxlLGRpcmVjdGlvbnx8bnVsbCxkaXN0YW5jZXx8DQowKTtpZihlPT1uKWlmKGIuY2xpY2smJihrPT0xfHwhZCkmJihpc05hTihkaXN0YW5jZSl8fGRpc3RhbmNlPT0wKSliLmNsaWNrLmNhbGwoaixhLGEudGFyZ2V0KTtpZihlPT1xKXtiLnN3aXBlJiZiLnN3aXBlLmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7c3dpdGNoKGRpcmVjdGlvbil7Y2FzZSBwOmIuc3dpcGVMZWZ0JiZiLnN3aXBlTGVmdC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgdjpiLnN3aXBlUmlnaHQmJmIuc3dpcGVSaWdodC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgdzpiLnN3aXBlVXAmJmIuc3dpcGVVcC5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpO2JyZWFrO2Nhc2UgeDpiLnN3aXBlRG93biYmYi5zd2lwZURvd24uY2FsbChqLGEsZGlyZWN0aW9uLGRpc3RhbmNlKX19fWZ1bmN0aW9uIEYoKXtyZXR1cm4gTWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3coZi54LWgueCwyKStNYXRoLnBvdyhmLnktDQpoLnksMikpKX1mdW5jdGlvbiBFKCl7dmFyIGE7YT1NYXRoLnJvdW5kKE1hdGguYXRhbjIoZi55LWgueSxoLngtZi54KSoxODAvTWF0aC5QSSk7aWYoYTwwKWE9MzYwLU1hdGguYWJzKGEpO2E9YTtyZXR1cm4gYTw9NDUmJmE+PTA\/cDphPD0zNjAmJmE+PTMxNT9wOmE+PTEzNSYmYTw9MjI1P3Y6YT40NSYmYTwxMzU\/eDp3fXZhciBqPWcodGhpcyksaz0wLGg9e3g6MCx5OjB9LGY9e3g6MCx5OjB9O2lmKGQpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihDLEQpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixsKX1lbHNle2oub24oQyxEKTtnKGRvY3VtZW50KS5vbigidG91Y2hjYW5jZWwiLGwpfX0pfX0pKGpRdWVyeSk7LypFT0YqLzsKLyoqIC9qcy9nb29nbGVtYXBzLmpzICoqLwp2YXIgX19fZDJjX2dvb2dsZW1hcHNqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjU0IjsndXNlIHN0cmljdCc7Y2xhc3MgR29vZ2xlTWFwc1dyYXBwZXJ7Y29uc3RydWN0b3IoYSl7dGhpcy5wcmV2aW91c0luZm9XaW5kb3c9ITE7dGhpcy5vcHRpb25zPXtlbGVtZW50OmEmJmEuZWxlbWVudD9hLmVsZW1lbnQ6IiIsY2VudGVyOmEmJmEuY2VudGVyP2EuY2VudGVyOntsYXQ6NDUuNDY3Mjc3LGxuZzotNzMuODM0NTI2fSxjZW50ZXJPZmZzZXQ6YSYmYS5jZW50ZXJPZmZzZXQ\/YS5jZW50ZXJPZmZzZXQ6e3g6MCx5OjB9LHpvb206YSYmYS56b29tP2Euem9vbTo5LGFkZHJlc3NlczphJiZhLmFkZHJlc3Nlcz9hLmFkZHJlc3NlczpbXSxvbkJlZm9yZUluaXQ6YSYmYS5vbkJlZm9yZUluaXQ\/YS5vbkJlZm9yZUluaXQ6ZnVuY3Rpb24oKXt9LG9uQWZ0ZXJJbml0OmEmJmEub25BZnRlckluaXQ\/YS5vbkFmdGVySW5pdDpmdW5jdGlvbigpe30sb25BZnRlck1hcmtlckNyZWF0ZWQ6YSYmYS5vbkFmdGVyTWFya2VyQ3JlYXRlZD9hLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKCl7fX19c3RhdGljIHNldEdvb2dsZU1hcCgpe3ZhciBhPQowLGU9ZnVuY3Rpb24oKXtnb29nbGUubWFwcy5NYXAucHJvdG90eXBlLnNldENlbnRlcldpdGhPZmZzZXQ9ZnVuY3Rpb24oayxnLGwpe3ZhciBjPXRoaXMsYj1uZXcgZ29vZ2xlLm1hcHMuT3ZlcmxheVZpZXc7Yi5vbkFkZD1mdW5jdGlvbigpe3ZhciBmPXRoaXMuZ2V0UHJvamVjdGlvbigpLGQ9Zi5mcm9tTGF0TG5nVG9Db250YWluZXJQaXhlbChrKTtkLngrPWc7ZC55Kz1sO2Muc2V0Q2VudGVyKGYuZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcoZCkpfTtiLmRyYXc9ZnVuY3Rpb24oKXt9O2Iuc2V0TWFwKHRoaXMpfX07aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlKWUoKTtlbHNlIHZhciBoPXNldEludGVydmFsKGZ1bmN0aW9uKCl7ND5hPyJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZT8oY2xlYXJJbnRlcnZhbChoKSxlKCkpOmErKzpjbGVhckludGVydmFsKGgpfSwxRTMpfWluaXQoKXt2YXIgYT10aGlzLGU9YS5vcHRpb25zLmNlbnRlck9mZnNldC54P2Eub3B0aW9ucy5jZW50ZXJPZmZzZXQueDoKMCxoPWEub3B0aW9ucy5jZW50ZXJPZmZzZXQueT9hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lnk6MCxrPW5ldyBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHM7YS5vcHRpb25zLm9uQmVmb3JlSW5pdCgpO2lmKGEub3B0aW9ucy5hZGRyZXNzZXMubGVuZ3RoKXt2YXIgZz1hLm9wdGlvbnMuY2VudGVyLGw9bmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyLGM9bmV3IGdvb2dsZS5tYXBzLk1hcChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhLm9wdGlvbnMuZWxlbWVudCkse3pvb206YS5vcHRpb25zLnpvb20sY2VudGVyOmEub3B0aW9ucy5jZW50ZXIsbWFwVHlwZUlkOmdvb2dsZS5tYXBzLk1hcFR5cGVJZC5ST0FETUFQLGdlc3R1cmVIYW5kbGluZzoiZ3JlZWR5IixzY3JvbGx3aGVlbDohMSxtYXBUeXBlQ29udHJvbDohMX0pO2dvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyT25jZShjLCJpZGxlIixmdW5jdGlvbigpe2Eub3B0aW9ucy5hZGRyZXNzZXMubWFwKGZ1bmN0aW9uKGIsZixkKXtmPWZ1bmN0aW9uKG4sCnEpe3RyeXtpZihxPT1nb29nbGUubWFwcy5HZW9jb2RlclN0YXR1cy5PSyl7ay5leHRlbmQoblswXS5nZW9tZXRyeS5sb2NhdGlvbik7Yy5maXRCb3VuZHMoayk7Yy5zZXRab29tKGEub3B0aW9ucy56b29tKTtnPWMuZ2V0Qm91bmRzKCkuZ2V0Q2VudGVyKCk7Yy5zZXRDZW50ZXJXaXRoT2Zmc2V0KGcsZSxoKTt2YXIgcD1uZXcgZ29vZ2xlLm1hcHMuSW5mb1dpbmRvdyh7Y29udGVudDpiLmluZm93aW5kb3d9KSxtPW5ldyBnb29nbGUubWFwcy5NYXJrZXIoe21hcDpjLHBvc2l0aW9uOm5bMF0uZ2VvbWV0cnkubG9jYXRpb24sdGl0bGU6Yi50aXRsZSxpY29uOmIuaWNvbn0pO20uYWRkTGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2EucHJldmlvdXNJbmZvV2luZG93JiZhLnByZXZpb3VzSW5mb1dpbmRvdy5jbG9zZSgpO2EucHJldmlvdXNJbmZvV2luZG93PXA7cC5vcGVuKGMsbSl9KTthLm9wdGlvbnMub25BZnRlck1hcmtlckNyZWF0ZWQoYixtKX19Y2F0Y2gocil7Y29uc29sZS5sb2cocil9fTsKYS5oYXNMYXQoYikmJmEuaGFzTG5nKGIpPyhkPW5ldyBnb29nbGUubWFwcy5MYXRMbmcoTnVtYmVyKGIuZ2VvbWV0cnkubG9jYXRpb24ubGF0KSxOdW1iZXIoYi5nZW9tZXRyeS5sb2NhdGlvbi5sbmcpKSxmKFt7Z2VvbWV0cnk6e2xvY2F0aW9uOmR9fV0sIk9LIikpOmwuZ2VvY29kZSh7YWRkcmVzczpiLmFkZHJlc3N9LGYpfSl9KTtnb29nbGUubWFwcy5ldmVudC5hZGREb21MaXN0ZW5lcih3aW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtjLnNldENlbnRlcldpdGhPZmZzZXQoZyxlLGgpfSl9YS5vcHRpb25zLm9uQWZ0ZXJJbml0KCl9X2hhc0xhdExuZ1Byb3AoYSxlKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eSgiZ2VvbWV0cnkiKSYmYS5nZW9tZXRyeS5oYXNPd25Qcm9wZXJ0eSgibG9jYXRpb24iKSYmYS5nZW9tZXRyeS5sb2NhdGlvbi5oYXNPd25Qcm9wZXJ0eShlKSYmImZhbHNlIiE9YS5nZW9tZXRyeS5sb2NhdGlvbltlXT8hMDohMX1oYXNMYXQoYSl7cmV0dXJuIHRoaXMuX2hhc0xhdExuZ1Byb3AoYSwKImxhdCIpfWhhc0xuZyhhKXtyZXR1cm4gdGhpcy5faGFzTGF0TG5nUHJvcChhLCJsbmciKX19OwovKiogL2pzL2Zvb3RlcldpZGdldC5qcyAqKi8KdmFyIF9fX2QyY19mb290ZXJXaWRnZXRqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjA3IjsndXNlIHN0cmljdCc7aW5WaWV3RXhlYygiI2Zvb3RlcldyYXBwZXIiLGZ1bmN0aW9uKCl7dmFyIGI9ZnVuY3Rpb24oKXt2YXIgYT0kKCIjdGFyZ2V0UGFnZSIpLnZhbCgpOyJ1bmRlZmluZWQiPT1hJiYoYT0iVU5LTk9XTiIpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJGb290ZXItTWFwLUxvYWQiLCJEZXNrdG9wIixhLDEpfTt0cnl7R29vZ2xlTWFwc1dyYXBwZXIuc2V0R29vZ2xlTWFwKCk7dmFyIGM9JCgiI2Zvb3Rlckdvb2dsZU1hcFpvb20iKS52YWwoKSxmPTE8cGFyc2VJbnQoYykmJjE4Pj1wYXJzZUludChjKT9wYXJzZUludChjKTo5LGU9bmV3IEdvb2dsZU1hcHNXcmFwcGVyKHtlbGVtZW50OiJmb290ZXJHb29nbGVNYXAiLGFkZHJlc3NlczoidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3Nlcz9mb290ZXJNYXBBZGRyZXNzZXM6W10sY2VudGVyT2Zmc2V0Ont4Oi0zNTAseTowfSx6b29tOmYsb25CZWZvcmVJbml0OmZ1bmN0aW9uKCl7YigpfSxvbkFmdGVySW5pdDpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT0KdHlwZW9mIGZvb3Rlck1hcEFkZHJlc3NlcyYmZm9vdGVyTWFwQWRkcmVzc2VzLmxlbmd0aCkkKGRvY3VtZW50KS5vbigiY2xpY2siLCIubWFwX2RlYWxlcl9saXN0X2l0ZW0iLGZ1bmN0aW9uKCl7JCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnNsaWRlVG9nZ2xlKCJzbG93Iik7JCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLnJlbW92ZUNsYXNzKCJmYS1hbmdsZS11cCIpOyQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5hZGRDbGFzcygiZmEtYW5nbGUtZG93biIpO3ZhciBhPSQodGhpcykuZmluZCgiLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIikuZXEoMCkuaGFzQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpOyQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5yZW1vdmVDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7YXx8KCQodGhpcykuZmluZCgiLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIikuZXEoMCkuc2xpZGVUb2dnbGUoInNsb3ciKSwKJCh0aGlzKS5maW5kKCIuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24iKS5lcSgwKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIiksJCh0aGlzKS5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikucmVtb3ZlQ2xhc3MoImZhLWFuZ2xlLWRvd24iKSwkKHRoaXMpLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5hZGRDbGFzcygiZmEtYW5nbGUtdXAiKSl9KTtlbHNlICQoIiNmb290ZXJHb29nbGVNYXBDb250YWluZXIiKS5oaWRlKCl9LG9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKGEsZyl7dmFyIGQ9YS5vcGVuaW5nSG91cnM\/YS5vcGVuaW5nSG91cnM6IiI7ZD0nPGRpdiBjbGFzcz0ibWFwX2RlYWxlcl9saXN0X2l0ZW0iIGRhdGEtdHM9IicrYS5zYWZlVGl0bGUrJyIgIGRhdGEtbmFtZT0iJythLnRpdGxlKyciPjxzcGFuIGNsYXNzPSJtYXJrZXJTcGFuIj48L3NwYW4+PHNwYW4gY2xhc3M9Im1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUiPicrCmEudGl0bGUrIjwvc3Bhbj4iKyhkPyc8c3BhbiBjbGFzcz0ibWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IGZhIGZhLWFuZ2xlLWRvd24iPjwvc3Bhbj4nOiIiKSskKCI8ZGl2PiIpLmh0bWwoZCkudGV4dCgpKyI8L2Rpdj4iOyQoIiNtYXBfZGVhbGVyX2xpc3QiKS5hcHBlbmQoZCk7JCgnW2RhdGEtdHM9IicrYS5zYWZlVGl0bGUrJyJdJykub24oImNsaWNrIixmdW5jdGlvbigpeyQoIi5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIikucmVtb3ZlQ2xhc3MoIm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWVfYWN0aXZlIik7JCh0aGlzKS5maW5kKCIubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZSIpLmFkZENsYXNzKCJtYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lX2FjdGl2ZSIpO2dvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIoZywiY2xpY2siKX0pfX0pOyQoIiNmb290ZXJHb29nbGVNYXAiKS5sZW5ndGg\/InVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlP2UuaW5pdCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmluaXQoKX0sCjFFMyk6JCgiI2Zvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyIikubGVuZ3RoJiZiKCl9Y2F0Y2goYSl7Y29uc29sZS5sb2coYSl9fSk7JChmdW5jdGlvbigpeyQoIi5jRXhwZW5kTGlzdCBCVVRUT04iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9JCh0aGlzKS5jbG9zZXN0KCJkaXYuY0Zvb3RlckNhckxpbmtzIik7Yi5sZW5ndGgmJihiLmhhc0NsYXNzKCJjTGlzdEV4cGVuZGVkIil8fGIuYWRkQ2xhc3MoImNMaXN0RXhwZW5kZWQiKS5maW5kKCIuY0V4cGVuZExpc3QiKS5oaWRlKCkpfSk7aWYoJCgiI2ZibGlrZS1jb250YWluZXIiKS5sZW5ndGgpe2IoLTEpO2Z1bmN0aW9uIGIoYyl7JCgiI2ZibGlrZS1jb250YWluZXIiKS5maW5kKCJpZnJhbWUiKS5hdHRyKCJ0YWJpbmRleCIsYyk7JCgiI2ZibGlrZS1jb250YWluZXIiKS5maW5kKCJpZnJhbWUiKS5hdHRyKCJ0YWJpbmRleCIpIT1jJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YihjKX0sMUUzKX19fSk7Ci8qKiAvanMvb3BlbmhvdXJzLmpzICoqLwp2YXIgX19fZDJjX29wZW5ob3Vyc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX29wZW5ob3Vyc2pzX2Nfb249IjIwMjUtMDMtMTggMTQ6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKdmFyIE9wZW5Ib3Vycz1mdW5jdGlvbihiKXtmdW5jdGlvbiBjKGQpe3ZhciBlPSQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5oYXNDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7JChkLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS50b2dnbGVDbGFzcygiZXhwYW5kZWQiKTskKHRoaXMpLnBhcmVudHMoYS5vcHRpb25zLmNvbnRhaW5lcikuZmluZCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnNsaWRlVG9nZ2xlKCJzbG93Iik7JCh0aGlzKS5wYXJlbnRzKGEub3B0aW9ucy5jb250YWluZXIpLmZpbmQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5yZW1vdmVDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIik7ZXx8KCQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5zbGlkZVRvZ2dsZSgic2xvdyIpLCQodGhpcykuc2libGluZ3MoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5lcSgwKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIikpfQp2YXIgYT10aGlzO2Eub3B0aW9ucz1iO2EuJGNvbnRhaW5lcj0kKGEub3B0aW9ucy5jb250YWluZXIpO2EuaW5pdD1mdW5jdGlvbigpe2EuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kIikub24oImNsaWNrIGF1dG9fb3BlbiIsYyk7MDxhLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZC5kZWZhdWx0X29wZW5lZCIpLmxlbmd0aD9hLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZC5kZWZhdWx0X29wZW5lZCIpLnRyaWdnZXIoImF1dG9fb3BlbiIpOjIhPSQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5sZW5ndGh8fDA8JCgiLmV4cGFuZGFibGVfY29udGVudCIpLmZpbmQoIi52aXNpdENvbnRhY3RIZWFkZXIiKS5sZW5ndGg\/YS5vcHRpb25zLmhhc093blByb3BlcnR5KCJhdXRvT3BlbiIpJiYhYS5vcHRpb25zLmF1dG9PcGVufHxhLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZCIpLmZpcnN0KCkudHJpZ2dlcigiYXV0b19vcGVuIik6CiQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5zbGlkZVRvZ2dsZSgic2xvdyIpLmFkZENsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKX07cmV0dXJuIGF9OwovKiogL2pzL2dlb0xvY2F0aW9uLmpzICoqLwp2YXIgX19fZDJjX2dlb0xvY2F0aW9uanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDoyNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZ2VvTG9jYXRpb25qc19jX29uPSIyMDI1LTAyLTI2IDA5OjMwOjExIjsidXNlIHN0cmljdCI7CnZhciBnZW9Mb2NhdG9yPWZ1bmN0aW9uKGYpe3ZhciBhPXRoaXM7YS5tYXBzQVBJS2V5PW51bGw7YS51c2VIVE1MNT0hMDthLmdlb2NvZGVMb2NhdGlvbj0hMDthLmF0dGVtcHRQYWdlTnVtPTA7YS50cmFja0xvY2F0aW9uR0E9ITE7YS5mb3JjZUdlb2xvY0F0dGVtcHQ9ITE7YS5zaG93UG9pbnRlck1lc3NhZ2U9ITA7YS50aW1lb3V0cz1bXTthLmJyb3dzZXI9IiI7YS5pc01vYmlsZT0iMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpO2EuZ2VvbG9jU3RhdHVzZXM9e09LOiJTVUNDRVNTIixSRUZVU0VEOiJSRUZVU0VEIixDT09LSUVfQUNDRVBURUQ6IlBSRV9BQ0NFUFRFRCIsQ09PS0lFX1JFRlVTRUQ6IlBSRV9SRUZVU0VEIixDQU5DRUxFRDoiQ0FOQ0VMRUQiLEZBSUw6IkZBSUxFRCJ9O2EuZ2VvbG9jRXJyb3JzPXtJTlZBTElEX1JFU1BPTlNFOiJJTlZBTElEX1JFU1BPTlNFIixDT05ORUNUSU9OX0ZBSUxFRDoiQ09OTkVDVElPTl9GQUlMRUQiLEdFT0xPQ19GQUlMRUQ6IkdFT0xPQ19GQUlMRUQiLApHRU9MT0NfUkVGVVNFRDoiR0VPTE9DX1JFRlVTRUQiLEdFT0NPREVfRkFJTEVEOiJHRU9DT0RFX0ZBSUxFRCJ9O2EuZ2VvbG9jUmVzdWx0PXtyZXN1bHQ6MCxnZW9sb2NfZGF0ZToiIixnZW9sb2Nfc3RhdHVzOmEuZ2VvbG9jU3RhdHVzZXMuRkFJTCxnZW9jb2RlX3N0YXR1czowLGxhdGl0dWRlOjAsbG9uZ2l0dWRlOjAsYWNjdXJhY3k6MCxwb3N0YWxfY29kZToiIixnZW9jb2RlX2FkZHJlc3M6IiIsZ2VvY29kZV9hZGRyZXNzX3N0cjoiIn07YS5nZW9sb2NDYWxsYmFjaz1mdW5jdGlvbigpe2YoYS5nZW9sb2NSZXN1bHQpO2Y9ZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiR2VvIGNhbGxiYWNrIGFscmVhZHkgZmlyZWQuIil9fTthLl9pbml0PWZ1bmN0aW9uKCl7YS5pc01vYmlsZSYmKGEuc2hvd1BvaW50ZXJNZXNzYWdlPSExKTtpZigwPGEuYXR0ZW1wdFBhZ2VOdW0pe3ZhciBiPW51bGwhPUNvb2tpZXMuZ2V0KCJnZW9sb2NQYWdlVmlld3MiKT9wYXJzZUludChDb29raWVzLmdldCgiZ2VvbG9jUGFnZVZpZXdzIikpKwoxOjE7Q29va2llcy5zZXQoImdlb2xvY1BhZ2VWaWV3cyIsYjxhLmF0dGVtcHRQYWdlTnVtP2I6MCxudWxsLCIvIik7aWYoYjxhLmF0dGVtcHRQYWdlTnVtKXJldHVybiBhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MCxhLmdlb2xvY1Jlc3VsdC5zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DQU5DRUxFRCxhLmdlb2xvY0NhbGxiYWNrKCksITF9aWYoIWEuZm9yY2VHZW9sb2NBdHRlbXB0JiZDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIikpcmV0dXJuIGI9SlNPTi5wYXJzZShDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIikpLCIxIj09Yi5hY2NlcHRlZD8oYS5nZW9sb2NSZXN1bHQucmVzdWx0PTEsYS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGU9Yi5nZW9sb2NfZGF0ZSxhLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ09PS0lFX0FDQ0VQVEVELGEuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlPWIubGF0aXRpdWRlLGEuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZT0KYi5sb25naXR1ZGUsYS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzPWIuYWRkcmVzcyxhLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyPWIuYWRkcmVzc19zdHIpOihhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MCxhLmdlb2xvY1Jlc3VsdC5zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DT09LSUVfUkVGVVNFRCksYS5nZW9sb2NDYWxsYmFjaygpLCExO2lmKCJodHRwczoiIT1sb2NhdGlvbi5wcm90b2NvbClyZXR1cm4gYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ0FOQ0VMRUQsYS5nZW9sb2NDYWxsYmFjaygpLCExO2lmKGx0X0lFOXx8IW5hdmlnYXRvci5nZW9sb2NhdGlvbilhLnVzZUhUTUw1PSExO25hdmlnYXRvci5icm93c2VyPWZ1bmN0aW9uKCl7dmFyIGM9bmF2aWdhdG9yLnVzZXJBZ2VudCxkPWMubWF0Y2goLyhvcGVyYXxjaHJvbWV8c2FmYXJpfGZpcmVmb3h8bXNpZXx0cmlkZW50KD89XC8pKVwvP1xzKihcZCspL2kpfHwKW107aWYoL3RyaWRlbnQvaS50ZXN0KGRbMV0pKXt2YXIgZT0vXGJydlsgOl0rKFxkKykvZy5leGVjKGMpfHxbXTtyZXR1cm4iSUV4cGxvcmVyICIrKGVbMV18fCIiKX1pZigiQ2hyb21lIj09PWRbMV0mJihlPWMubWF0Y2goL1xiT1BSXC8oXGQrKS8pLG51bGwhPWUpKXJldHVybiJPcGVyYSAiK2VbMV07ZD1kWzJdP1tkWzFdLGRbMl1dOltuYXZpZ2F0b3IuYXBwTmFtZSxuYXZpZ2F0b3IuYXBwVmVyc2lvbiwiLT8iXTtudWxsIT0oZT1jLm1hdGNoKC92ZXJzaW9uXC8oXGQrKS9pKSkmJmQuc3BsaWNlKDEsMSxlWzFdKTtyZXR1cm4gZC5qb2luKCIgIil9KCk7YS5icm93c2VyPW5hdmlnYXRvci5icm93c2VyO3JldHVybiEwfTthLmhhbmRsZUxvY2F0aW9uU3VjY2Vzcz1mdW5jdGlvbigpe3ZhciBiPSJMYXRpdHVkZTogIithLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZSsiOyBMb25naXR1ZGU6ICIrYS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlOzM8PWEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLmxlbmd0aCYmCihiPWEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlKTthLnRyYWNrTG9jYXRpb24oIkdlb2xvY2F0aW9uIiwiQWNjZXB0ZWQiLGIpO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2I9bmV3IERhdGU7Yi5zZXRIb3VycygyMyw1OSw1OSwwKTtDb29raWVzLnNldCgiZ2VvbG9jUHJvY2Vzc2VkIixKU09OLnN0cmluZ2lmeSh7YWNjZXB0ZWQ6MSxnZW9sb2NfZGF0ZTphLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZSxsYXRpdHVkZTphLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZSxsb25naXR1ZGU6YS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlLHBvc3RhbF9jb2RlOmEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLGFjY3VyYWN5OmEuZ2VvbG9jUmVzdWx0LmFjY3VyYWN5LGFkZHJlc3M6YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzLGFkZHJlc3Nfc3RyOmEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzc19zdHJ9KSxiLCIvIik7YS5nZW9sb2NDYWxsYmFjaygpfTsKYS5oYW5kbGVMb2NhdGlvbkVycm9yPWZ1bmN0aW9uKGIsYyl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9IiI7YS5nZW9sb2NSZXN1bHQucmVzdWx0PTA7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkZBSUw7c3dpdGNoKGIpe2Nhc2UgYS5nZW9sb2NFcnJvcnMuSU5WQUxJRF9SRVNQT05TRTpjPSJHZW9sb2MgZXJyb3IgbWVzYWdlOiBJbnZhbGlkIHJlc3BvbnNlIGRhdGEiO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuQ09OTkVDVElPTl9GQUlMRUQ6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogQ29uZWN0aW9uIGZhaWxlZCI7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9MT0NfUkVGVVNFRDphLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuUkVGVVNFRDticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19GQUlMRUQ6YnJlYWs7CmNhc2UgYS5nZW9sb2NFcnJvcnMuR0VPQ09ERV9GQUlMRUQ6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogSW52YWxpZCByZXNwb25zZSBkYXRhIjticmVhaztkZWZhdWx0OmM9IlVua25vd24gZXJyb3Igb2N1cnJlZCJ9YS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIkZhaWxlZCIsYyk7YS5nZW9sb2NDYWxsYmFjaygpfTthLmdldExvY2F0aW9uPWZ1bmN0aW9uKCl7YS5faW5pdCgpJiYoMD09YS51c2VIVE1MNT9hLmdldEdvb2dsZVNlcnZpY2VMb2NhdGlvbigpOmEuZ2V0SFRNTDVMb2NhdGlvbigpKX07YS5nZXRHb29nbGVTZXJ2aWNlTG9jYXRpb249ZnVuY3Rpb24oKXthLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpO3JldHVybiExfTthLmdldEhUTUw1TG9jYXRpb249ZnVuY3Rpb24oKXthLnNob3dHZW9sb2NNc2coKTtuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKGIpe2EuaGlkZUdlb2xvY01zZygpO2EuY2xlYXJTZXRUaW1lb3V0cygpOwphLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MTthLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuT0s7YS5nZW9sb2NSZXN1bHQubGF0aXR1ZGU9Yi5jb29yZHMubGF0aXR1ZGU7YS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlPWIuY29vcmRzLmxvbmdpdHVkZTthLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeT1iLmNvb3Jkcy5hY2N1cmFjeTtpZigxIT1hLmdlb2NvZGVMb2NhdGlvbilyZXR1cm4gYS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKSwhMTthLmxhdExvbmdHZW9jb2RlKGIuY29vcmRzLmxhdGl0dWRlLGIuY29vcmRzLmxvbmdpdHVkZSl9LGZ1bmN0aW9uKGIpe2NvbnNvbGUubG9nKGIpO3ZhciBjPSJHZW9sb2MgZXJyb3IgY29kZTogIitiLmNvZGUrIiwgZ2VvbG9jIGVycm9yIG1lc2FnZTogIitiLm1lc3NhZ2U7YS5oaWRlR2VvbG9jTXNnKCk7YS5jbGVhclNldFRpbWVvdXRzKCk7Q29va2llcy5zZXQoImdlb2xvY1Byb2Nlc3NlZCIsSlNPTi5zdHJpbmdpZnkoe2FjY2VwdGVkOjB9KSwKMSwiLyIpO3ZhciBkPWEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19SRUZVU0VEOzEhPXBhcnNlSW50KGIuY29kZSkmJihkPWEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19GQUlMRUQpO2EuaGFuZGxlTG9jYXRpb25FcnJvcihkLGMpfSx7dGltZW91dDoyNUUzfSl9O2EubGF0TG9uZ0dlb2NvZGU9ZnVuY3Rpb24oYixjKXthLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3M9YisifCIrYzthLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyPSJMYXRpdHVkZTogIitiKyI7IExvbmdpdHVkZTogIitjO2EuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCl9O2EudHJhY2tQb3N0YWw9ZnVuY3Rpb24oKXtpZigkY29va2llPUNvb2tpZXMuZ2V0KCJIVE1MNUdlbyIpKWlmKCRjb29raWU9SlNPTi5wYXJzZSgkY29va2llKSwkY29va2llLnBvc3RhbF9jb2RlKXJldHVybjtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSYmIiIhPT1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSl7dmFyIGI9CmEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlKyJ8IithLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/KCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSwiSFRNTDVHZW8ucG9zdGFsIiksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLCJIVE1MNUdlby5wb3N0YWwiKSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixhLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSwiSFRNTDVHZW8ucG9zdGFsIik7Yj1uZXcgRGF0ZTtiLnNldEhvdXJzKDIzLDU5LDU5LDApO0Nvb2tpZXMuc2V0KCJIVE1MNUdlbyIsSlNPTi5zdHJpbmdpZnkoe3Bvc3RhbF9jb2RlOjF9KSxiLCIvIil9fTsKYS5nZXRBZGRyZXNzQ29vcmQ9ZnVuY3Rpb24oYixjKXtyZXR1cm4hMX07YS50cmFja0xvY2F0aW9uPWZ1bmN0aW9uKGIsYyxkKXtpZighYS50cmFja0xvY2F0aW9uR0EpcmV0dXJuITF9O2EuY2xlYXJTZXRUaW1lb3V0cz1mdW5jdGlvbigpe2Zvcih2YXIgYj0wO2I8YS50aW1lb3V0cy5sZW5ndGg7YisrKWNsZWFyVGltZW91dChhLnRpbWVvdXRzW2JdKTthLnRpbWVvdXRzPVtdfTthLnNob3dHZW9sb2NNc2c9ZnVuY3Rpb24oKXtpZighYS5zaG93UG9pbnRlck1lc3NhZ2UpcmV0dXJuITE7YS5jbGVhclNldFRpbWVvdXRzKCk7dmFyIGI9c2V0VGltZW91dChmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKX0sM0U0KTthLnRpbWVvdXRzLnB1c2goYik7aWYoLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKXx8LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikpJCgiLmdlb2xvYy1tb2RhbC1iZyIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpO2NsZWFyVGltZW91dChiKX0pLAokKCIjZ2VvbG9jYXRpb25Nc2ciKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KSwkKCIjZ2VvbG9jYXRpb25Nc2dJRSIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpO2NsZWFyVGltZW91dChiKX0pO3ZhciBjPSJnZW9sb2NhdGlvbk1zZyIsZD0hMCxlPXt0b3A6IjAiLGxlZnQ6IjAifTtzd2l0Y2goITApe2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIklFIik6ZT17Ym90dG9tOiIwcHgiLGxlZnQ6IjQzJSJ9O2M9Imdlb2xvY2F0aW9uTXNnSUUiO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKTplPXt0b3A6IjkwcHgiLGxlZnQ6IjVweCJ9OyQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjc1cHgiKTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoInRvcCIsIjM1cHgiKTstMT09JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpLmluZGV4T2YoIldpbmRvd3MiKSYmCiQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjE3NXB4Iik7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiQ2hyb21lIik6ZT17dG9wOiI2NXB4IixsZWZ0OiIwcHgifTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIyMTBweCIpOy0xPT0kKCIjdHh0VXNlckFnZW50IikudmFsKCkuaW5kZXhPZigiV2luZG93cyIpJiYoZT17dG9wOiI3NXB4IixsZWZ0OiI1MHB4In0sJCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMjQwcHgiKSk7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiU2FmYXJpIik6ZT17dG9wOiI1MTVweCIsbGVmdDoiMzUlIn07ZD0hMDticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJPcGVyYSIpOmU9e3RvcDoiMCIsbGVmdDoiMCJ9O2Q9ITE7YnJlYWs7ZGVmYXVsdDplPXt0b3A6IjAiLGxlZnQ6IjAifSxkPSExfWQmJigidW5kZWZpbmVkIiE9dHlwZW9mICQoIi5yZXZlYWwtbW9kYWwtYmciKS52YWwoKSYmCiJibG9jayI9PSQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoImRpc3BsYXkiKSYmJCgiLnJldmVhbC1tb2RhbC1iZyIpLmhpZGUoKSwkKCIuZ2VvbG9jLW1vZGFsLWJnIikuc2hvdygpLCQoIiMiK2MpLmNzcyhlKSwkKCIjIitjKS5zaG93KCksInVuZGVmaW5lZCI9PXR5cGVvZiBzaXRlU2VjdGlvbiYmKHNpdGVTZWN0aW9uPSJVTkRFRklORUQiKSxhLnRyYWNrTG9jYXRpb24oIkdlb2xvY2F0aW9uIiwiU2VjdGlvbi0iK3NpdGVTZWN0aW9uLCIiKSl9O2EuaGlkZUdlb2xvY01zZz1mdW5jdGlvbihiKXtpZighYS5zaG93UG9pbnRlck1lc3NhZ2UpcmV0dXJuITE7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKWI9ITE7JCgiLmdlb2xvYy1tb2RhbC1iZyIpLmhpZGUoKTtifHwoJCgiI2dlb2xvY2F0aW9uTXNnIikuaGlkZSgpLCQoIiNnZW9sb2NhdGlvbk1zZ0lFIikuaGlkZSgpKX07YS5nZW9sb2NGYWlsPWZ1bmN0aW9uKCl7LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikmJgpsb2NhdGlvbi5yZWxvYWQoKTtvdmVybGF5T25seT0hMDtpZigtMTxhLmJyb3dzZXIuaW5kZXhPZigiRmlyZWZveCIpfHwtMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKSlvdmVybGF5T25seT0hMTthLmhpZGVHZW9sb2NNc2cob3ZlcmxheU9ubHkpO3JldHVybiExfTthLmdldERpc3RhbmNlPWZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYS5nZXREaXN0YW5jZUhhdmVyc2luZShiLGMpfTthLmdldERpc3RhbmNlSGF2ZXJzaW5lPWZ1bmN0aW9uKGIsYyl7dmFyIGQ9KGMubGF0LWIubGF0KSpNYXRoLlBJLzE4MCxlPShjLmxvbmctYi5sb25nKSpNYXRoLlBJLzE4MDtiPU1hdGguc2luKGQvMikqTWF0aC5zaW4oZC8yKStNYXRoLmNvcyhiLmxhdCpNYXRoLlBJLzE4MCkqTWF0aC5jb3MoYy5sYXQqTWF0aC5QSS8xODApKk1hdGguc2luKGUvMikqTWF0aC5zaW4oZS8yKTtyZXR1cm4oMTI3NTYyNzQqTWF0aC5hdGFuMihNYXRoLnNxcnQoYiksTWF0aC5zcXJ0KDEtYikpKS50b0ZpeGVkKDIpfTthLmdldERpc3RhbmNlR21hcHM9CmZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuZ2V0RGlzdGFuY2VIYXZlcnNpbmUoYixjKX19OwovKiogL2pzL3RvYXN0ci5qcyAqKi8KdmFyIF9fX2QyY190b2FzdHJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEyOjA5IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY190b2FzdHJqc19jX29uPSIyMDI0LTAzLTI2IDEyOjMwOjE1IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbih6KXt6KFsianF1ZXJ5Il0sZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihhLGMpe2F8fChhPWwoKSk7Zj1kKCIjIithLmNvbnRhaW5lcklkKTtpZihmLmxlbmd0aClyZXR1cm4gZjtjJiYoZj1kKCI8ZGl2Lz4iKS5hdHRyKCJpZCIsYS5jb250YWluZXJJZCkuYWRkQ2xhc3MoYS5wb3NpdGlvbkNsYXNzKS5hdHRyKCJhcmlhLWxpdmUiLCJwb2xpdGUiKS5hdHRyKCJyb2xlIiwiYWxlcnQiKS5jc3MoImNvbG9yIixhLmNvbG9yKSxmLmFwcGVuZFRvKGQoYS50YXJnZXQpKSk7cmV0dXJuIGZ9ZnVuY3Rpb24gQShhLGMsZSl7ZT1lJiZlLmZvcmNlP2UuZm9yY2U6ITE7cmV0dXJuIGEmJihlfHwwPT09ZCgiOmZvY3VzIixhKS5sZW5ndGgpPyhhW2MuaGlkZU1ldGhvZF0oe2R1cmF0aW9uOmMuaGlkZUR1cmF0aW9uLGVhc2luZzpjLmhpZGVFYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXt1KGEpfX0pLCEwKTohMX1mdW5jdGlvbiBFKCl7cmV0dXJue3RhcFRvRGlzbWlzczohMCwKdG9hc3RDbGFzczoidG9hc3QiLGNvbnRhaW5lcklkOiJ0b2FzdC1jb250YWluZXIiLGRlYnVnOiExLHNob3dNZXRob2Q6ImZhZGVJbiIsc2hvd0R1cmF0aW9uOjMwMCxzaG93RWFzaW5nOiJzd2luZyIsb25TaG93bjpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikuYWRkQ2xhc3MoIndpdGhUb2FzdGVyIik7ZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikuYWRkQ2xhc3MoIndpdGhUb2FzdGVyIil9LGhpZGVNZXRob2Q6ImZhZGVPdXQiLGhpZGVEdXJhdGlvbjoxRTMsaGlkZUVhc2luZzoic3dpbmciLG9uSGlkZGVuOmZ1bmN0aW9uKCl7ZCgiLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24iKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKTtkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKX0sb25DbG9zZTpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIik7CmQoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpfSxleHRlbmRlZFRpbWVPdXQ6MUUzLGljb25DbGFzc2VzOntlcnJvcjoidG9hc3QtZXJyb3IiLGluZm86InRvYXN0LWluZm8iLHN1Y2Nlc3M6InRvYXN0LXN1Y2Nlc3MiLHdhcm5pbmc6InRvYXN0LXdhcm5pbmcifSxpY29uQ2xhc3M6InRvYXN0LWluZm8iLGNvbG9yOiIjRkZGIixiZ0NvbG9yOiIiLHBvc2l0aW9uQ2xhc3M6InRvYXN0LXRvcC1yaWdodCIsdGltZU91dDo1RTMsdGl0bGVDbGFzczoidG9hc3QtdGl0bGUiLG1lc3NhZ2VDbGFzczoidG9hc3QtbWVzc2FnZSIsdGFyZ2V0OiJib2R5IixjbG9zZUh0bWw6JzxidXR0b24gdHlwZT0iYnV0dG9uIj4mdGltZXM7PC9idXR0b24+JyxuZXdlc3RPblRvcDohMCxwcmV2ZW50RHVwbGljYXRlczohMSxwcm9ncmVzc0JhcjohMX19ZnVuY3Rpb24gcihhKXtmdW5jdGlvbiBjKGspe2lmKCFkKCI6Zm9jdXMiLGcpLmxlbmd0aHx8aylyZXR1cm4gY2xlYXJUaW1lb3V0KGguaW50ZXJ2YWxJZCksCmdbYi5oaWRlTWV0aG9kXSh7ZHVyYXRpb246Yi5oaWRlRHVyYXRpb24sZWFzaW5nOmIuaGlkZUVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe3UoZyk7aWYoYi5vbkhpZGRlbiYmImhpZGRlbiIhPT1tLnN0YXRlKWIub25IaWRkZW4oKTttLnN0YXRlPSJoaWRkZW4iO20uZW5kVGltZT1uZXcgRGF0ZTtwJiZwKG0pfX0pfWZ1bmN0aW9uIGUoKXtpZigwPGIudGltZU91dHx8MDxiLmV4dGVuZGVkVGltZU91dCl2PXNldFRpbWVvdXQoYyxiLmV4dGVuZGVkVGltZU91dCksaC5tYXhIaWRlVGltZT1wYXJzZUZsb2F0KGIuZXh0ZW5kZWRUaW1lT3V0KSxoLmhpZGVFdGE9KG5ldyBEYXRlKS5nZXRUaW1lKCkraC5tYXhIaWRlVGltZX1mdW5jdGlvbiBGKCl7Y2xlYXJUaW1lb3V0KHYpO2guaGlkZUV0YT0wO2cuc3RvcCghMCwhMClbYi5zaG93TWV0aG9kXSh7ZHVyYXRpb246Yi5zaG93RHVyYXRpb24sZWFzaW5nOmIuc2hvd0Vhc2luZ30pfWZ1bmN0aW9uIEcoKXt2YXIgaz0oaC5oaWRlRXRhLShuZXcgRGF0ZSkuZ2V0VGltZSgpKS8KaC5tYXhIaWRlVGltZSoxMDA7dy53aWR0aChrKyIlIil9dmFyIGI9bCgpLHg9YS5pY29uQ2xhc3N8fGIuaWNvbkNsYXNzOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEub3B0aW9uc092ZXJyaWRlJiYoYj1kLmV4dGVuZChiLGEub3B0aW9uc092ZXJyaWRlKSx4PWEub3B0aW9uc092ZXJyaWRlLmljb25DbGFzc3x8eCk7YTp7aWYoYi5wcmV2ZW50RHVwbGljYXRlcylpZihhLm1lc3NhZ2U9PT15KXt2YXIgcT0hMDticmVhayBhfWVsc2UgeT1hLm1lc3NhZ2U7cT0hMX1pZighcSl7QisrO2Y9bihiLCEwKTt2YXIgdj1udWxsLGc9ZCgiPGRpdi8+Iik7cT1kKCI8ZGl2Lz4iKTt2YXIgQz1kKCI8ZGl2Lz4iKSx3PWQoIjxkaXYvPiIpLHQ9ZChiLmNsb3NlSHRtbCksaD17aW50ZXJ2YWxJZDpudWxsLGhpZGVFdGE6bnVsbCxtYXhIaWRlVGltZTpudWxsfSxtPXt0b2FzdElkOkIsc3RhdGU6InZpc2libGUiLHN0YXJ0VGltZTpuZXcgRGF0ZSxvcHRpb25zOmIsbWFwOmF9OzY8Yi5iZ0NvbG9yLmxlbmd0aCYmCmcuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIixiLmJnQ29sb3IpO2EuaWNvbkNsYXNzJiZnLmFkZENsYXNzKGIudG9hc3RDbGFzcykuYWRkQ2xhc3MoeCk7YS50aXRsZSYmKHEuYXBwZW5kKGEudGl0bGUpLmFkZENsYXNzKGIudGl0bGVDbGFzcyksZy5hcHBlbmQocSkpO2EubWVzc2FnZSYmKEMuYXBwZW5kKGEubWVzc2FnZSkuYWRkQ2xhc3MoYi5tZXNzYWdlQ2xhc3MpLGcuYXBwZW5kKEMpKTtiLmNsb3NlQnV0dG9uJiYodC5hZGRDbGFzcygidG9hc3QtY2xvc2UtYnV0dG9uIikuYXR0cigicm9sZSIsImJ1dHRvbiIpLGcucHJlcGVuZCh0KSk7Yi5wcm9ncmVzc0JhciYmKHcuYWRkQ2xhc3MoInRvYXN0LXByb2dyZXNzIiksZy5wcmVwZW5kKHcpKTtiLm5ld2VzdE9uVG9wP2YucHJlcGVuZChnKTpmLmFwcGVuZChnKTtnLmhpZGUoKTtnW2Iuc2hvd01ldGhvZF0oe2R1cmF0aW9uOmIuc2hvd0R1cmF0aW9uLGVhc2luZzpiLnNob3dFYXNpbmcsY29tcGxldGU6Yi5vblNob3dufSk7MDxiLnRpbWVPdXQmJgoodj1zZXRUaW1lb3V0KGMsYi50aW1lT3V0KSxoLm1heEhpZGVUaW1lPXBhcnNlRmxvYXQoYi50aW1lT3V0KSxoLmhpZGVFdGE9KG5ldyBEYXRlKS5nZXRUaW1lKCkraC5tYXhIaWRlVGltZSxiLnByb2dyZXNzQmFyJiYoaC5pbnRlcnZhbElkPXNldEludGVydmFsKEcsMTApKSk7KGZ1bmN0aW9uKCl7Zy5vbigibW91c2VlbnRlciIsRikub24oIm1vdXNlbGVhdmUiLGUpO2lmKCFiLm9uY2xpY2smJmIudGFwVG9EaXNtaXNzKWcub24oImNsaWNrIixjKTtpZihiLmNsb3NlQnV0dG9uJiZ0KXQub24oImNsaWNrIixmdW5jdGlvbihrKXtrLnN0b3BQcm9wYWdhdGlvbj9rLnN0b3BQcm9wYWdhdGlvbigpOnZvaWQgMCE9PWsuY2FuY2VsQnViYmxlJiYhMCE9PWsuY2FuY2VsQnViYmxlJiYoay5jYW5jZWxCdWJibGU9ITApO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQ2xvc2UpYi5vbkNsb3NlKCk7YyghMCl9KTtpZihiLm9uY2xpY2spZy5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5vbmNsaWNrKCk7CmMoKX0pfSkoKTtwJiZwKG0pO2IuZGVidWcmJmNvbnNvbGUmJmNvbnNvbGUubG9nKG0pO3JldHVybiBnfX1mdW5jdGlvbiBsKCl7cmV0dXJuIGQuZXh0ZW5kKHt9LEUoKSxELm9wdGlvbnMpfWZ1bmN0aW9uIHUoYSl7Znx8KGY9bigpKTthLmlzKCI6dmlzaWJsZSIpfHwoYS5yZW1vdmUoKSwwPT09Zi5jaGlsZHJlbigpLmxlbmd0aCYmKGYucmVtb3ZlKCkseT12b2lkIDApKX12YXIgZixwLEI9MCxEPXtjbGVhcjpmdW5jdGlvbihhLGMpe3ZhciBlPWwoKTtmfHxuKGUpO2lmKCFBKGEsZSxjKSlmb3IoYT1mLmNoaWxkcmVuKCksYz1hLmxlbmd0aC0xOzA8PWM7Yy0tKUEoZChhW2NdKSxlKX0scmVtb3ZlOmZ1bmN0aW9uKGEpe3ZhciBjPWwoKTtmfHxuKGMpO2EmJjA9PT1kKCI6Zm9jdXMiLGEpLmxlbmd0aD91KGEpOmYuY2hpbGRyZW4oKS5sZW5ndGgmJmYucmVtb3ZlKCl9LGVycm9yOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToiZXJyb3IiLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuZXJyb3IsCm1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LGdldENvbnRhaW5lcjpuLGluZm86ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJpbmZvIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLmluZm8sbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX0sb3B0aW9uczp7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oYSl7cD1hfSxzdWNjZXNzOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToic3VjY2VzcyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5zdWNjZXNzLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LHZlcnNpb246IjIuMS4xIix3YXJuaW5nOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToid2FybmluZyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy53YXJuaW5nLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9fSx5O3JldHVybiBEfSgpfSl9KSgiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmCmRlZmluZS5hbWQ\/ZGVmaW5lOmZ1bmN0aW9uKHosZCl7InVuZGVmaW5lZCIhPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1kKHJlcXVpcmUoImpxdWVyeSIpKTp3aW5kb3cudG9hc3RyPWQod2luZG93LmpRdWVyeSl9KTsKLyoqIC9qcy9odG1sMmNhbnZhcy5qcyAqKi8KdmFyIF9fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDY6MjYiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNDo1NCI7InVzZSBzdHJpY3QiO19fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzY6MzciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ2OjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyMi0wMi0wNyAyMjozMDowOCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oTixSLFEpe2Z1bmN0aW9uIHFhKGQscCxxKXt2YXIgaz1kLnJ1bnRpbWVTdHlsZSYmZC5ydW50aW1lU3R5bGVbcF0sYz1kLnN0eWxlO2lmKCEvXi0\/WzAtOV0rXC4\/WzAtOV0qKD86cHgpPyQvaS50ZXN0KHEpJiYvXi0\/XGQvLnRlc3QocSkpe3ZhciBuPWMubGVmdDtrJiYoZC5ydW50aW1lU3R5bGUubGVmdD1kLmN1cnJlbnRTdHlsZS5sZWZ0KTtjLmxlZnQ9ImZvbnRTaXplIj09PXA\/IjFlbSI6cXx8MDtxPWMucGl4ZWxMZWZ0KyJweCI7Yy5sZWZ0PW47ayYmKGQucnVudGltZVN0eWxlLmxlZnQ9ayl9cmV0dXJuL14odGhpbnxtZWRpdW18dGhpY2spJC9pLnRlc3QocSk\/cTpNYXRoLnJvdW5kKHBhcnNlRmxvYXQocSkpKyJweCJ9ZnVuY3Rpb24geGEoZCl7cmV0dXJuIHBhcnNlSW50KGQsMTApfWZ1bmN0aW9uIGphKGQpe3JldHVybi0xIT09ZC50b1N0cmluZygpLmluZGV4T2YoIiUiKX1mdW5jdGlvbiB5YShkLHApe3ZhciBxPVtdO3JldHVybntzdG9yYWdlOnEsd2lkdGg6ZCwKaGVpZ2h0OnAsY2xpcDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImNsaXAiLGFyZ3VtZW50c30pfSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJ0cmFuc2xhdGUiLGFyZ3VtZW50c30pfSxmaWxsOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToiZmlsbCIsYXJndW1lbnRzfSl9LHNhdmU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJzYXZlIixhcmd1bWVudHN9KX0scmVzdG9yZTpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6InJlc3RvcmUiLGFyZ3VtZW50c30pfSxmaWxsUmVjdDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImZpbGxSZWN0Iixhcmd1bWVudHN9KX0sY3JlYXRlUGF0dGVybjpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImNyZWF0ZVBhdHRlcm4iLGFyZ3VtZW50c30pfSwKZHJhd1NoYXBlOmZ1bmN0aW9uKCl7dmFyIGs9W107cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToiZHJhd1NoYXBlIixhcmd1bWVudHM6a30pO3JldHVybnttb3ZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6Im1vdmVUbyIsYXJndW1lbnRzfSl9LGxpbmVUbzpmdW5jdGlvbigpe2sucHVzaCh7bmFtZToibGluZVRvIixhcmd1bWVudHN9KX0sYXJjVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImFyY1RvIixhcmd1bWVudHN9KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbigpe2sucHVzaCh7bmFtZToiYmV6aWVyQ3VydmVUbyIsYXJndW1lbnRzfSl9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6InF1YWRyYXRpY0N1cnZlVG8iLGFyZ3VtZW50c30pfX19LGRyYXdJbWFnZTpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImRyYXdJbWFnZSIsYXJndW1lbnRzfSl9LGZpbGxUZXh0OmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsCm5hbWU6ImZpbGxUZXh0Iixhcmd1bWVudHN9KX0sc2V0VmFyaWFibGU6ZnVuY3Rpb24oayxjKXtxLnB1c2goe3R5cGU6InZhcmlhYmxlIixuYW1lOmssYXJndW1lbnRzOmN9KTtyZXR1cm4gY319fXZhciB4PXt9LHJhO3guVXRpbD17fTt4LlV0aWwubG9nPWZ1bmN0aW9uKGQpe3gubG9nZ2luZyYmTi5jb25zb2xlJiZOLmNvbnNvbGUubG9nJiZOLmNvbnNvbGUubG9nKGQpfTt4LlV0aWwudHJpbVRleHQ9ZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiBkP2QuYXBwbHkocCk6KChwfHwiIikrIiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX19KFN0cmluZy5wcm90b3R5cGUudHJpbSk7eC5VdGlsLmFzRmxvYXQ9ZnVuY3Rpb24oZCl7cmV0dXJuIHBhcnNlRmxvYXQoZCl9OyhmdW5jdGlvbigpe3ZhciBkPS8oKHJnYmF8cmdiKVwoW15cKV0rXCkoXHMtP1xkK3B4KXswLH0pL2cscD0vKC0\/XGQrcHgpfCgjLispfChyZ2JcKC4rXCkpfChyZ2JhXCguK1wpKS9nO3guVXRpbC5wYXJzZVRleHRTaGFkb3dzPQpmdW5jdGlvbihxKXtpZighcXx8Im5vbmUiPT09cSlyZXR1cm5bXTtxPXEubWF0Y2goZCk7Zm9yKHZhciBrPVtdLGM9MDtxJiZjPHEubGVuZ3RoO2MrKyl7dmFyIG49cVtjXS5tYXRjaChwKTtrLnB1c2goe2NvbG9yOm5bMF0sb2Zmc2V0WDpuWzFdP25bMV0ucmVwbGFjZSgicHgiLCIiKTowLG9mZnNldFk6blsyXT9uWzJdLnJlcGxhY2UoInB4IiwiIik6MCxibHVyOm5bM10\/blszXS5yZXBsYWNlKCJweCIsIiIpOjB9KX1yZXR1cm4ga319KSgpO3guVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZT1mdW5jdGlvbihkKXt2YXIgcCxxLGssYyxuPVtdLHQ9MCx2PTAsbCxlLEk9ZnVuY3Rpb24oKXtwJiYoJyInPT09Si5zdWJzdHIoMCwxKSYmKEo9Si5zdWJzdHIoMSxKLmxlbmd0aC0yKSksSiYmZS5wdXNoKEopLCItIj09PXAuc3Vic3RyKDAsMSkmJjA8KGs9cC5pbmRleE9mKCItIiwxKSsxKSYmKHE9cC5zdWJzdHIoMCxrKSxwPXAuc3Vic3RyKGspKSxuLnB1c2goe3ByZWZpeDpxLG1ldGhvZDpwLnRvTG93ZXJDYXNlKCksCnZhbHVlOmMsYXJnczplfSkpO2U9W107cD1xPUo9Yz0iIn07SSgpO2Zvcih2YXIgej0wLEU9ZC5sZW5ndGg7ejxFO3orKyl7dmFyIEs9ZFt6XTtpZighKDA9PT10JiYtMTwiIFxyXG5cdCIuaW5kZXhPZihLKSkpe3N3aXRjaChLKXtjYXNlICciJzpsP2w9PT1LJiYobD1udWxsKTpsPUs7YnJlYWs7Y2FzZSAiKCI6aWYoIWwpaWYoMD09PXQpe3Q9MTtjKz1LO2NvbnRpbnVlfWVsc2UgdisrO2JyZWFrO2Nhc2UgIikiOmlmKCFsJiYxPT09dClpZigwPT09dil7dD0wO2MrPUs7SSgpO2NvbnRpbnVlfWVsc2Ugdi0tO2JyZWFrO2Nhc2UgIiwiOmlmKCFsKWlmKDA9PT10KXtJKCk7Y29udGludWV9ZWxzZSBpZigxPT09dCYmMD09PXYmJiFwLm1hdGNoKC9edXJsJC9pKSl7ZS5wdXNoKEopO3ZhciBKPSIiO2MrPUs7Y29udGludWV9fWMrPUs7MD09PXQ\/cCs9SzpKKz1LfX1JKCk7cmV0dXJuIG59O3guVXRpbC5Cb3VuZHM9ZnVuY3Rpb24oZCl7dmFyIHA9e307aWYoZC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe3ZhciBxPQpkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3AudG9wPXEudG9wO3AuYm90dG9tPXEuYm90dG9tfHxxLnRvcCtxLmhlaWdodDtwLmxlZnQ9cS5sZWZ0O3Aud2lkdGg9ZC5vZmZzZXRXaWR0aDtwLmhlaWdodD1kLm9mZnNldEhlaWdodH1yZXR1cm4gcH07eC5VdGlsLk9mZnNldEJvdW5kcz1mdW5jdGlvbihkKXt2YXIgcD1kLm9mZnNldFBhcmVudD94LlV0aWwuT2Zmc2V0Qm91bmRzKGQub2Zmc2V0UGFyZW50KTp7dG9wOjAsbGVmdDowfTtyZXR1cm57dG9wOmQub2Zmc2V0VG9wK3AudG9wLGJvdHRvbTpkLm9mZnNldFRvcCtkLm9mZnNldEhlaWdodCtwLnRvcCxsZWZ0OmQub2Zmc2V0TGVmdCtwLmxlZnQsd2lkdGg6ZC5vZmZzZXRXaWR0aCxoZWlnaHQ6ZC5vZmZzZXRIZWlnaHR9fTt4LlV0aWwuZ2V0Q1NTPWZ1bmN0aW9uKGQscCxxKXt2b2lkIDAhPT1kJiYocmE9Ui5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGQsbnVsbCkpO3ZhciBrPXJhW3BdO2lmKC9eYmFja2dyb3VuZChTaXplfFBvc2l0aW9uKSQvLnRlc3QocCkpe2E6e2s9CihrfHwiIikuc3BsaXQoIiwiKTtrPWtbcXx8MF18fGtbMF18fCJhdXRvIjtrPXguVXRpbC50cmltVGV4dChrKS5zcGxpdCgiICIpO2lmKCJiYWNrZ3JvdW5kU2l6ZSIhPT1wfHwha1swXXx8IWtbMF0ubWF0Y2goL14oY292ZXJ8Y29udGFpbnxhdXRvKSQvKSl7a1swXT0tMT09PWtbMF0uaW5kZXhPZigiJSIpP3FhKGQscCsiWCIsa1swXSk6a1swXTtpZihrWzFdPT09USlpZigiYmFja2dyb3VuZFNpemUiPT09cCl7a1sxXT0iYXV0byI7ZD1rO2JyZWFrIGF9ZWxzZSBrWzFdPWtbMF07a1sxXT0tMT09PWtbMV0uaW5kZXhPZigiJSIpP3FhKGQscCsiWSIsa1sxXSk6a1sxXX1kPWt9cmV0dXJuIGR9cmV0dXJuL2JvcmRlcihUb3B8Qm90dG9tKShMZWZ0fFJpZ2h0KVJhZGl1cy8udGVzdChwKT8oZD1rLnNwbGl0KCIgIiksMT49ZC5sZW5ndGgmJihkWzFdPWRbMF0pLGQubWFwKHhhKSk6a307eC5VdGlsLnJlc2l6ZUJvdW5kcz1mdW5jdGlvbihkLHAscSxrLGMpe2QvPXA7YyYmImF1dG8iIT09Yz8KcS9rPGReImNvbnRhaW4iPT09Yz8ocT1rLGM9aypkKTooYz1xLHEvPWQpOihjPXEscT1rKTtyZXR1cm57d2lkdGg6YyxoZWlnaHQ6cX19O3guVXRpbC5CYWNrZ3JvdW5kUG9zaXRpb249ZnVuY3Rpb24oZCxwLHEsayxjKXtkPXguVXRpbC5nZXRDU1MoZCwiYmFja2dyb3VuZFBvc2l0aW9uIixrKTsxPT09ZC5sZW5ndGgmJihkPVtkWzBdLGRbMF1dKTtrPWphKGRbMF0pPyhwLndpZHRoLShjfHxxKS53aWR0aCkqKHBhcnNlRmxvYXQoZFswXSkvMTAwKTpwYXJzZUludChkWzBdLDEwKTtwPSJhdXRvIj09PWRbMV0\/ay9xLndpZHRoKnEuaGVpZ2h0OmphKGRbMV0pPyhwLmhlaWdodC0oY3x8cSkuaGVpZ2h0KSpwYXJzZUZsb2F0KGRbMV0pLzEwMDpwYXJzZUludChkWzFdLDEwKTsiYXV0byI9PT1kWzBdJiYoaz1wL3EuaGVpZ2h0KnEud2lkdGgpO3JldHVybntsZWZ0OmssdG9wOnB9fTt4LlV0aWwuQmFja2dyb3VuZFNpemU9ZnVuY3Rpb24oZCxwLHEsayl7ZD14LlV0aWwuZ2V0Q1NTKGQsImJhY2tncm91bmRTaXplIiwKayk7MT09PWQubGVuZ3RoJiYoZD1bZFswXSxkWzBdXSk7aWYoamEoZFswXSkpaz1wLndpZHRoKnBhcnNlRmxvYXQoZFswXSkvMTAwO2Vsc2V7aWYoL2NvbnRhaW58Y292ZXIvLnRlc3QoZFswXSkpcmV0dXJuIHguVXRpbC5yZXNpemVCb3VuZHMocS53aWR0aCxxLmhlaWdodCxwLndpZHRoLHAuaGVpZ2h0LGRbMF0pO2s9cGFyc2VJbnQoZFswXSwxMCl9cD0iYXV0byI9PT1kWzBdJiYiYXV0byI9PT1kWzFdP3EuaGVpZ2h0OiJhdXRvIj09PWRbMV0\/ay9xLndpZHRoKnEuaGVpZ2h0OmphKGRbMV0pP3AuaGVpZ2h0KnBhcnNlRmxvYXQoZFsxXSkvMTAwOnBhcnNlSW50KGRbMV0sMTApOyJhdXRvIj09PWRbMF0mJihrPXAvcS5oZWlnaHQqcS53aWR0aCk7cmV0dXJue3dpZHRoOmssaGVpZ2h0OnB9fTt4LlV0aWwuQmFja2dyb3VuZFJlcGVhdD1mdW5jdGlvbihkLHApe2Q9eC5VdGlsLmdldENTUyhkLCJiYWNrZ3JvdW5kUmVwZWF0Iikuc3BsaXQoIiwiKS5tYXAoeC5VdGlsLnRyaW1UZXh0KTtyZXR1cm4gZFtwXXx8CmRbMF19O3guVXRpbC5FeHRlbmQ9ZnVuY3Rpb24oZCxwKXtmb3IodmFyIHEgaW4gZClkLmhhc093blByb3BlcnR5KHEpJiYocFtxXT1kW3FdKTtyZXR1cm4gcH07eC5VdGlsLkNoaWxkcmVuPWZ1bmN0aW9uKGQpe3RyeXtpZihkLm5vZGVOYW1lJiYiSUZSQU1FIj09PWQubm9kZU5hbWUudG9VcHBlckNhc2UoKSl2YXIgcD1kLmNvbnRlbnREb2N1bWVudHx8ZC5jb250ZW50V2luZG93LmRvY3VtZW50O2Vsc2V7dmFyIHE9ZC5jaGlsZE5vZGVzO2Q9W107aWYobnVsbCE9PXEpe3ZhciBrPWQubGVuZ3RoLGM9MDtpZigibnVtYmVyIj09PXR5cGVvZiBxLmxlbmd0aClmb3IodmFyIG49cS5sZW5ndGg7YzxuO2MrKylkW2srK109cVtjXTtlbHNlIGZvcig7cVtjXSE9PVE7KWRbaysrXT1xW2MrK107ZC5sZW5ndGg9a31wPWR9ZD1wfWNhdGNoKHQpe3guVXRpbC5sb2coImh0bWwyY2FudmFzLlV0aWwuQ2hpbGRyZW4gZmFpbGVkIHdpdGggZXhjZXB0aW9uOiAiK3QubWVzc2FnZSksZD1bXX1yZXR1cm4gZH07CnguVXRpbC5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKGQpe3JldHVybiFkfHwidHJhbnNwYXJlbnQiPT09ZHx8InJnYmEoMCwgMCwgMCwgMCkiPT09ZH07eC5VdGlsLkZvbnQ9ZnVuY3Rpb24oKXt2YXIgZD17fTtyZXR1cm4gZnVuY3Rpb24ocCxxLGspe2lmKGRbcCsiLSIrcV0hPT1RKXJldHVybiBkW3ArIi0iK3FdO3ZhciBjPWsuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj1rLmNyZWF0ZUVsZW1lbnQoImltZyIpLHQ9ay5jcmVhdGVFbGVtZW50KCJzcGFuIik7Yy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Muc3R5bGUuZm9udEZhbWlseT1wO2Muc3R5bGUuZm9udFNpemU9cTtjLnN0eWxlLm1hcmdpbj0wO2Muc3R5bGUucGFkZGluZz0wO2suYm9keS5hcHBlbmRDaGlsZChjKTtuLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUJBUC8vL3dBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSI7bi53aWR0aD0xO24uaGVpZ2h0PTE7bi5zdHlsZS5tYXJnaW49MDtuLnN0eWxlLnBhZGRpbmc9CjA7bi5zdHlsZS52ZXJ0aWNhbEFsaWduPSJiYXNlbGluZSI7dC5zdHlsZS5mb250RmFtaWx5PXA7dC5zdHlsZS5mb250U2l6ZT1xO3Quc3R5bGUubWFyZ2luPTA7dC5zdHlsZS5wYWRkaW5nPTA7dC5hcHBlbmRDaGlsZChrLmNyZWF0ZVRleHROb2RlKCJIaWRkZW4gVGV4dCIpKTtjLmFwcGVuZENoaWxkKHQpO2MuYXBwZW5kQ2hpbGQobik7dmFyIHY9bi5vZmZzZXRUb3AtdC5vZmZzZXRUb3ArMTtjLnJlbW92ZUNoaWxkKHQpO2MuYXBwZW5kQ2hpbGQoay5jcmVhdGVUZXh0Tm9kZSgiSGlkZGVuIFRleHQiKSk7Yy5zdHlsZS5saW5lSGVpZ2h0PSJub3JtYWwiO24uc3R5bGUudmVydGljYWxBbGlnbj0ic3VwZXIiO249e2Jhc2VsaW5lOnYsbGluZVdpZHRoOjEsbWlkZGxlOm4ub2Zmc2V0VG9wLWMub2Zmc2V0VG9wKzF9O2RbcCsiLSIrcV09bjtrLmJvZHkucmVtb3ZlQ2hpbGQoYyk7cmV0dXJuIG59fSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGQoYyl7cmV0dXJuIGZ1bmN0aW9uKG4pe3RyeXtjLmFkZENvbG9yU3RvcChuLnN0b3AsCm4uY29sb3IpfWNhdGNoKHQpe3AubG9nKFsiZmFpbGVkIHRvIGFkZCBjb2xvciBzdG9wOiAiLHQsIjsgdHJpZWQgdG8gYWRkOiAiLG5dKX19fXZhciBwPXguVXRpbCxxPXt9O3guR2VuZXJhdGU9cTt2YXIgaz1bL14oLXdlYmtpdC1saW5lYXItZ3JhZGllbnQpXCgoW2EtelxzXSspKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sL14oLW8tbGluZWFyLWdyYWRpZW50KVwoKFthLXpcc10rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC13ZWJraXQtZ3JhZGllbnQpXCgobGluZWFyfHJhZGlhbCksXHMoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSxccyg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpKFtcd1xkXC5ccywlXChcKVwtXSspXCkkLywvXigtbW96LWxpbmVhci1ncmFkaWVudClcKCgoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3KylccyhbYS16XC1dKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywKL14oLW1vei1yYWRpYWwtZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSksXHMoXHcrKVxzPyhbYS16XC1dKikoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtby1yYWRpYWwtZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSksXHMoXHcrKVxzKFthLXpcLV0rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvXTtxLnBhcnNlR3JhZGllbnQ9ZnVuY3Rpb24oYyxuKXt2YXIgdCx2PWsubGVuZ3RoLGw7Zm9yKHQ9MDt0PHYmJiEobD1jLm1hdGNoKGtbdF0pKTt0Kz0xKTtpZihsKXN3aXRjaChsWzFdKXtjYXNlICItd2Via2l0LWxpbmVhci1ncmFkaWVudCI6Y2FzZSAiLW8tbGluZWFyLWdyYWRpZW50Ijp2YXIgZT17dHlwZToibGluZWFyIix4MDpudWxsLHkwOm51bGwseDE6bnVsbCx5MTpudWxsLGNvbG9yU3RvcHM6W119O2lmKGM9bFsyXS5tYXRjaCgvXHcrL2cpKWZvcih2PWMubGVuZ3RoLHQ9MDt0PHY7dCs9MSlzd2l0Y2goY1t0XSl7Y2FzZSAidG9wIjplLnkwPQowO2UueTE9bi5oZWlnaHQ7YnJlYWs7Y2FzZSAicmlnaHQiOmUueDA9bi53aWR0aDtlLngxPTA7YnJlYWs7Y2FzZSAiYm90dG9tIjplLnkwPW4uaGVpZ2h0O2UueTE9MDticmVhaztjYXNlICJsZWZ0IjplLngwPTAsZS54MT1uLndpZHRofW51bGw9PT1lLngwJiZudWxsPT09ZS54MSYmKGUueDA9ZS54MT1uLndpZHRoLzIpO251bGw9PT1lLnkwJiZudWxsPT09ZS55MSYmKGUueTA9ZS55MT1uLmhlaWdodC8yKTtpZihjPWxbM10ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSg\/OiV8cHgpKT8pKy9nKSl7dj1jLmxlbmd0aDt2YXIgST0xL01hdGgubWF4KHYtMSwxKTtmb3IodD0wO3Q8djt0Kz0xKXt2YXIgej1jW3RdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkpXHMqKFxkezEsM30pPyglfHB4KT8vKTt6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSksCmw9IiUiPT09elszXT9sLzEwMDpsL24ud2lkdGgpOmw9dCpJO2UuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzFdLHN0b3A6bH0pfX1icmVhaztjYXNlICItd2Via2l0LWdyYWRpZW50IjplPXt0eXBlOiJyYWRpYWwiPT09bFsyXT8iY2lyY2xlIjpsWzJdLHgwOjAseTA6MCx4MTowLHkxOjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzNdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8sXHMoXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLngwPWNbMV0qbi53aWR0aC8xMDAsZS55MD1jWzJdKm4uaGVpZ2h0LzEwMCxlLngxPWNbM10qbi53aWR0aC8xMDAsZS55MT1jWzRdKm4uaGVpZ2h0LzEwMDtpZihjPWxbNF0ubWF0Y2goLygoPzpmcm9tfHRvfGNvbG9yLXN0b3ApXCgoPzpbMC05XC5dKyxccyk\/KD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XClcKSkrL2cpKWZvcih2PWMubGVuZ3RoLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLyhmcm9tfHRvfGNvbG9yLXN0b3ApXCgoWzAtOVwuXSspPyg\/Oixccyk\/KCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVwpLyksCmw9cGFyc2VGbG9hdCh6WzJdKSwiZnJvbSI9PT16WzFdJiYobD0wKSwidG8iPT09elsxXSYmKGw9MSksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbM10sc3RvcDpsfSk7YnJlYWs7Y2FzZSAiLW1vei1saW5lYXItZ3JhZGllbnQiOmU9e3R5cGU6ImxpbmVhciIseDA6MCx5MDowLHgxOjAseTE6MCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goLyhcZHsxLDN9KSU\/XHMoXGR7MSwzfSklPy8pKWUueDA9Y1sxXSpuLndpZHRoLzEwMCxlLnkwPWNbMl0qbi5oZWlnaHQvMTAwLGUueDE9bi53aWR0aC1lLngwLGUueTE9bi5oZWlnaHQtZS55MDtpZihjPWxbM10ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSUpPykrL2cpKWZvcih2PWMubGVuZ3RoLEk9MS9NYXRoLm1heCh2LTEsMSksdD0wO3Q8djt0Kz0xKXo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJSk\/LyksCnpbMl0\/KGw9cGFyc2VGbG9hdCh6WzJdKSx6WzNdJiYobC89MTAwKSk6bD10KkksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbMV0sc3RvcDpsfSk7YnJlYWs7Y2FzZSAiLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQiOmNhc2UgIi1tb3otcmFkaWFsLWdyYWRpZW50IjpjYXNlICItby1yYWRpYWwtZ3JhZGllbnQiOmU9e3R5cGU6ImNpcmNsZSIseDA6MCx5MDowLHgxOm4ud2lkdGgseTE6bi5oZWlnaHQsY3g6MCxjeTowLHJ4OjAscnk6MCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goLyhcZHsxLDN9KSU\/XHMoXGR7MSwzfSklPy8pKWUuY3g9Y1sxXSpuLndpZHRoLzEwMCxlLmN5PWNbMl0qbi5oZWlnaHQvMTAwO2M9bFszXS5tYXRjaCgvXHcrLyk7ej1sWzRdLm1hdGNoKC9bYS16XC1dKi8pO2lmKGMmJnopc3dpdGNoKHpbMF0pe2Nhc2UgImZhcnRoZXN0LWNvcm5lciI6Y2FzZSAiY292ZXIiOmNhc2UgIiI6dD1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLmN5LAoyKSk7Yz1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3Y9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3o9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLmN5LDIpKTtlLnJ4PWUucnk9TWF0aC5tYXgodCxjLHYseik7YnJlYWs7Y2FzZSAiY2xvc2VzdC1jb3JuZXIiOnQ9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7Yz1NYXRoLnNxcnQoTWF0aC5wb3coZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3Y9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLnkxLWUuY3ksMikpO3o9TWF0aC5zcXJ0KE1hdGgucG93KGUueDEtZS5jeCwyKStNYXRoLnBvdyhlLmN5LDIpKTtlLnJ4PWUucnk9TWF0aC5taW4odCxjLHYseik7YnJlYWs7Y2FzZSAiZmFydGhlc3Qtc2lkZSI6ImNpcmNsZSI9PT1jWzBdP2Uucng9CmUucnk9TWF0aC5tYXgoZS5jeCxlLmN5LGUueDEtZS5jeCxlLnkxLWUuY3kpOihlLnR5cGU9Y1swXSxlLnJ4PU1hdGgubWF4KGUuY3gsZS54MS1lLmN4KSxlLnJ5PU1hdGgubWF4KGUuY3ksZS55MS1lLmN5KSk7YnJlYWs7Y2FzZSAiY2xvc2VzdC1zaWRlIjpjYXNlICJjb250YWluIjoiY2lyY2xlIj09PWNbMF0\/ZS5yeD1lLnJ5PU1hdGgubWluKGUuY3gsZS5jeSxlLngxLWUuY3gsZS55MS1lLmN5KTooZS50eXBlPWNbMF0sZS5yeD1NYXRoLm1pbihlLmN4LGUueDEtZS5jeCksZS5yeT1NYXRoLm1pbihlLmN5LGUueTEtZS5jeSkpfWlmKGM9bFs1XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKD86XHNcZHsxLDN9KD86JXxweCkpPykrL2cpKWZvcih2PWMubGVuZ3RoLEk9MS9NYXRoLm1heCh2LTEsMSksdD0wO3Q8djt0Kz0xKXo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJXxweCk\/LyksCnpbMl0\/KGw9cGFyc2VGbG9hdCh6WzJdKSxsPSIlIj09PXpbM10\/bC8xMDA6bC9uLndpZHRoKTpsPXQqSSxlLmNvbG9yU3RvcHMucHVzaCh7Y29sb3I6elsxXSxzdG9wOmx9KX1yZXR1cm4gZX07cS5HcmFkaWVudD1mdW5jdGlvbihjLG4pe2lmKDAhPT1uLndpZHRoJiYwIT09bi5oZWlnaHQpe3ZhciB0PVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdj10LmdldENvbnRleHQoIjJkIik7dC53aWR0aD1uLndpZHRoO3QuaGVpZ2h0PW4uaGVpZ2h0O2lmKGM9eC5HZW5lcmF0ZS5wYXJzZUdyYWRpZW50KGMsbikpc3dpdGNoKGMudHlwZSl7Y2FzZSAibGluZWFyIjp2YXIgbD12LmNyZWF0ZUxpbmVhckdyYWRpZW50KGMueDAsYy55MCxjLngxLGMueTEpO2MuY29sb3JTdG9wcy5mb3JFYWNoKGQobCkpO3YuZmlsbFN0eWxlPWw7di5maWxsUmVjdCgwLDAsbi53aWR0aCxuLmhlaWdodCk7YnJlYWs7Y2FzZSAiY2lyY2xlIjpsPXYuY3JlYXRlUmFkaWFsR3JhZGllbnQoYy5jeCxjLmN5LDAsYy5jeCwKYy5jeSxjLnJ4KTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTt2LmZpbGxTdHlsZT1sO3YuZmlsbFJlY3QoMCwwLG4ud2lkdGgsbi5oZWlnaHQpO2JyZWFrO2Nhc2UgImVsbGlwc2UiOm49Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt2YXIgZT1uLmdldENvbnRleHQoIjJkIik7bD1NYXRoLm1heChjLnJ4LGMucnkpO3ZhciBJPTIqbDtuLndpZHRoPW4uaGVpZ2h0PUk7bD1lLmNyZWF0ZVJhZGlhbEdyYWRpZW50KGMucngsYy5yeSwwLGMucngsYy5yeSxsKTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTtlLmZpbGxTdHlsZT1sO2UuZmlsbFJlY3QoMCwwLEksSSk7di5maWxsU3R5bGU9Yy5jb2xvclN0b3BzW2MuY29sb3JTdG9wcy5sZW5ndGgtMV0uY29sb3I7di5maWxsUmVjdCgwLDAsdC53aWR0aCx0LmhlaWdodCk7di5kcmF3SW1hZ2UobixjLmN4LWMucngsYy5jeS1jLnJ5LDIqYy5yeCwyKmMucnkpfXJldHVybiB0fX07cS5MaXN0QWxwaGE9ZnVuY3Rpb24oYyl7dmFyIG49IiI7CmRvIG49U3RyaW5nLmZyb21DaGFyQ29kZShjJTI2KzY0KStuLGMvPTI2O3doaWxlKDI2PDI2KmMpO3JldHVybiBufTtxLkxpc3RSb21hbj1mdW5jdGlvbihjKXt2YXIgbj0iTSBDTSBEIENEIEMgWEMgTCBYTCBYIElYIFYgSVYgSSIuc3BsaXQoIiAiKSx0PVsxRTMsOTAwLDUwMCw0MDAsMTAwLDkwLDUwLDQwLDEwLDksNSw0LDFdLHY9IiIsbCxlPW4ubGVuZ3RoO2lmKDA+PWN8fDRFMzw9YylyZXR1cm4gYztmb3IobD0wO2w8ZTtsKz0xKWZvcig7Yz49dFtsXTspYy09dFtsXSx2Kz1uW2xdO3JldHVybiB2fX0pKCk7eC5QYXJzZT1mdW5jdGlvbihkLHAscSl7ZnVuY3Rpb24gayhhKXtmdW5jdGlvbiBiKGgpe3ZhciByPWFhKGgsIjpiZWZvcmUiKSx3PWFhKGgsIjphZnRlciIpO3ImJmYucHVzaCh7dHlwZToiYmVmb3JlIixwc2V1ZG86cixlbDpofSk7dyYmZi5wdXNoKHt0eXBlOiJhZnRlciIscHNldWRvOncsZWw6aH0pfXZhciBmPVtdLGc9W107KGZ1bmN0aW9uKCl7Zm9yKHZhciBoPS86YmVmb3JlfDphZnRlci8sCnI9Ui5zdHlsZVNoZWV0cyx3PTAsbT1yLmxlbmd0aDt3PG07dysrKXRyeXtmb3IodmFyIEQ9clt3XS5jc3NSdWxlcyx1PTAsSD1ELmxlbmd0aDt1PEg7dSsrKWgudGVzdChEW3VdLnNlbGVjdG9yVGV4dCkmJmcucHVzaChEW3VdLnNlbGVjdG9yVGV4dCl9Y2F0Y2goTCl7fXc9MDtmb3IobT1nLmxlbmd0aDt3PG07dysrKWdbd109Z1t3XS5tYXRjaCgvKF5bXjpdKikvKVsxXX0pKCk7KGZ1bmN0aW9uKGgpe2g9Ui5xdWVyeVNlbGVjdG9yQWxsKGcuZmlsdGVyKGZ1bmN0aW9uKG0pe3JldHVybiBtPyEwOiExfSkuam9pbigiLCIpKTtmb3IodmFyIHI9MCx3PWgubGVuZ3RoO3I8dztyKyspYihoW3JdKX0pKGEpOyhmdW5jdGlvbigpe2YuZm9yRWFjaChmdW5jdGlvbihoKXtoPWguZWw7aC5jbGFzc0xpc3Q\/aC5jbGFzc0xpc3QuYWRkKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik6aC5jbGFzc05hbWUrPSIgX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCJ9KTsKZi5mb3JFYWNoKGZ1bmN0aW9uKGgpeyJiZWZvcmUiPT09aC50eXBlP2guZWwuaW5zZXJ0QmVmb3JlKGgucHNldWRvLGguZWwuZmlyc3RDaGlsZCk6aC5lbC5hcHBlbmRDaGlsZChoLnBzZXVkbyl9KX0pKCl9ZnVuY3Rpb24gYyhhLGIpe2E9cGFyc2VJbnQoQyhhLGIpLDEwKTtyZXR1cm4gaXNOYU4oYSk\/MDphfWZ1bmN0aW9uIG4oYSxiLGYsZyxoLHIpeyJ0cmFuc3BhcmVudCIhPT1yJiYoYS5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixyKSxhLmZpbGxSZWN0KGIsZixnLGgpKX1mdW5jdGlvbiB0KGEsYixmKXtpZigwPGEubGVuZ3RoKXJldHVybiBiK2YudG9VcHBlckNhc2UoKX1mdW5jdGlvbiB2KGEsYil7c3dpdGNoKGIpe2Nhc2UgImxvd2VyY2FzZSI6cmV0dXJuIGEudG9Mb3dlckNhc2UoKTtjYXNlICJjYXBpdGFsaXplIjpyZXR1cm4gYS5yZXBsYWNlKC8oXnxcc3w6fC18XCh8XCkpKFthLXpdKS9nLHQpO2Nhc2UgInVwcGVyY2FzZSI6cmV0dXJuIGEudG9VcHBlckNhc2UoKTtkZWZhdWx0OnJldHVybiBhfX0KZnVuY3Rpb24gbChhLGIsZixnKXt2YXIgaD1DKGIsImZvbnRXZWlnaHQiKSxyPUMoYiwiZm9udEZhbWlseSIpLHc9QyhiLCJmb250U2l6ZSIpLG09TS5wYXJzZVRleHRTaGFkb3dzKEMoYiwidGV4dFNoYWRvdyIpKTtzd2l0Y2gocGFyc2VJbnQoaCwxMCkpe2Nhc2UgNDAxOmg9ImJvbGQiO2JyZWFrO2Nhc2UgNDAwOmg9Im5vcm1hbCJ9YS5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixnKTthLnNldFZhcmlhYmxlKCJmb250IixbQyhiLCJmb250U3R5bGUiKSxDKGIsImZvbnRWYXJpYW50IiksaCx3LHJdLmpvaW4oIiAiKSk7YS5zZXRWYXJpYWJsZSgidGV4dEFsaWduIiwibGVmdCIpO20ubGVuZ3RoJiYoYS5zZXRWYXJpYWJsZSgic2hhZG93Q29sb3IiLG1bMF0uY29sb3IpLGEuc2V0VmFyaWFibGUoInNoYWRvd09mZnNldFgiLG1bMF0ub2Zmc2V0WCksYS5zZXRWYXJpYWJsZSgic2hhZG93T2Zmc2V0WSIsbVswXS5vZmZzZXRZKSxhLnNldFZhcmlhYmxlKCJzaGFkb3dCbHVyIixtWzBdLmJsdXIpKTsKaWYoIm5vbmUiIT09ZilyZXR1cm4gTS5Gb250KHIsdyxQKX1mdW5jdGlvbiBlKGEsYixmKXt2YXIgZz1mLmN0eCxoPUMoYSwiY29sb3IiKSxyPUMoYSwidGV4dERlY29yYXRpb24iKSx3PUMoYSwidGV4dEFsaWduIiksbT1iLEQ9MDtpZigwPE0udHJpbVRleHQoYi5ub2RlVmFsdWUpLmxlbmd0aCl7Yi5ub2RlVmFsdWU9dihiLm5vZGVWYWx1ZSxDKGEsInRleHRUcmFuc2Zvcm0iKSk7dz13LnJlcGxhY2UoWyItd2Via2l0LWF1dG8iXSxbImF1dG8iXSk7dmFyIHU9IXAubGV0dGVyUmVuZGVyaW5nJiYvXihsZWZ0fHJpZ2h0fGp1c3RpZnl8YXV0bykkLy50ZXN0KHcpJiYvXihub3JtYWx8bm9uZXwwcHgpJC8udGVzdChDKGEsImxldHRlclNwYWNpbmciKSk\/Yi5ub2RlVmFsdWUuc3BsaXQoLyhcYnwgKS8pOmIubm9kZVZhbHVlLnNwbGl0KCIiKSxIPWwoZyxhLHIsaCk7cC5jaGluZXNlJiZ1LmZvckVhY2goZnVuY3Rpb24oTCxGKXsvLipbXHU0RTAwLVx1OUZBNV0uKiQvLnRlc3QoTCkmJihMPQpMLnNwbGl0KCIiKSxMLnVuc2hpZnQoRiwxKSx1LnNwbGljZS5hcHBseSh1LEwpKX0pO3UuZm9yRWFjaChmdW5jdGlvbihMLEYpe3ZhciBWPUY8dS5sZW5ndGgtMTtGPWYudHJhbnNmb3JtLm1hdHJpeDtpZih6YS5yYW5nZUJvdW5kcyYmIUYpe2lmKCJub25lIiE9PXJ8fDAhPT1NLnRyaW1UZXh0KEwpLmxlbmd0aCl7Rj1tO1Y9RDt2YXIgUz1QLmNyZWF0ZVJhbmdlKCk7Uy5zZXRTdGFydChGLFYpO1Muc2V0RW5kKEYsVitMLmxlbmd0aCk7Uz1TLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfUQrPUwubGVuZ3RofWVsc2UgaWYobSYmInN0cmluZyI9PT10eXBlb2YgbS5ub2RlVmFsdWUpe1Y9Vj9tLnNwbGl0VGV4dChMLmxlbmd0aCk6bnVsbDt2YXIgWj1tO1M9Wi5wYXJlbnROb2RlO3ZhciBjYT1QLmNyZWF0ZUVsZW1lbnQoIndyYXBwZXIiKSxlYT1aLmNsb25lTm9kZSghMCk7Y2EuYXBwZW5kQ2hpbGQoWi5jbG9uZU5vZGUoITApKTtTLnJlcGxhY2VDaGlsZChjYSxaKTtGPUY\/TS5PZmZzZXRCb3VuZHMoY2EpOgpNLkJvdW5kcyhjYSk7Uy5yZXBsYWNlQ2hpbGQoZWEsY2EpO1M9RjttPVZ9aWYoRj1TKXN3aXRjaChWPUYubGVmdCxTPUYuYm90dG9tLG51bGwhPT1MJiYwPE0udHJpbVRleHQoTCkubGVuZ3RoJiZnLmZpbGxUZXh0KEwsVixTKSxyKXtjYXNlICJ1bmRlcmxpbmUiOm4oZyxGLmxlZnQsTWF0aC5yb3VuZChGLnRvcCtILmJhc2VsaW5lK0gubGluZVdpZHRoKSxGLndpZHRoLDEsaCk7YnJlYWs7Y2FzZSAib3ZlcmxpbmUiOm4oZyxGLmxlZnQsTWF0aC5yb3VuZChGLnRvcCksRi53aWR0aCwxLGgpO2JyZWFrO2Nhc2UgImxpbmUtdGhyb3VnaCI6bihnLEYubGVmdCxNYXRoLmNlaWwoRi50b3ArSC5taWRkbGUrSC5saW5lV2lkdGgpLEYud2lkdGgsMSxoKX19KX19ZnVuY3Rpb24gSShhLGIsZil7Yj1iLmN0eDt2YXIgZz1DKGEsImxpc3RTdHlsZVR5cGUiKTtpZigvXihkZWNpbWFsfGRlY2ltYWwtbGVhZGluZy16ZXJvfHVwcGVyLWFscGhhfHVwcGVyLWxhdGlufHVwcGVyLXJvbWFufGxvd2VyLWFscGhhfGxvd2VyLWdyZWVrfGxvd2VyLWxhdGlufGxvd2VyLXJvbWFuKSQvaS50ZXN0KGcpKXt2YXIgaD0KLTEscj0xLHc9YS5wYXJlbnROb2RlLmNoaWxkTm9kZXM7aWYoYS5wYXJlbnROb2RlKXtmb3IoO3dbKytoXSE9PWE7KTE9PT13W2hdLm5vZGVUeXBlJiZyKys7aD1yfWVsc2UgaD0tMTtzd2l0Y2goZyl7Y2FzZSAiZGVjaW1hbCI6dmFyIG09aDticmVhaztjYXNlICJkZWNpbWFsLWxlYWRpbmctemVybyI6bT0xPT09aC50b1N0cmluZygpLmxlbmd0aD8iMCIraC50b1N0cmluZygpOmgudG9TdHJpbmcoKTticmVhaztjYXNlICJ1cHBlci1yb21hbiI6bT14LkdlbmVyYXRlLkxpc3RSb21hbihoKTticmVhaztjYXNlICJsb3dlci1yb21hbiI6bT14LkdlbmVyYXRlLkxpc3RSb21hbihoKS50b0xvd2VyQ2FzZSgpO2JyZWFrO2Nhc2UgImxvd2VyLWFscGhhIjptPXguR2VuZXJhdGUuTGlzdEFscGhhKGgpLnRvTG93ZXJDYXNlKCk7YnJlYWs7Y2FzZSAidXBwZXItYWxwaGEiOm09eC5HZW5lcmF0ZS5MaXN0QWxwaGEoaCl9bSs9Ii4gIjtoPVAuY3JlYXRlRWxlbWVudCgiYm91bmRlbGVtZW50Iik7Cmguc3R5bGUuZGlzcGxheT0iaW5saW5lIjtyPWEuc3R5bGUubGlzdFN0eWxlVHlwZTthLnN0eWxlLmxpc3RTdHlsZVR5cGU9Im5vbmUiO2guYXBwZW5kQ2hpbGQoUC5jcmVhdGVUZXh0Tm9kZShtKSk7YS5pbnNlcnRCZWZvcmUoaCxhLmZpcnN0Q2hpbGQpO2c9TS5Cb3VuZHMoaCk7YS5yZW1vdmVDaGlsZChoKTthLnN0eWxlLmxpc3RTdHlsZVR5cGU9cjtsKGIsYSwibm9uZSIsQyhhLCJjb2xvciIpKTsiaW5zaWRlIj09PUMoYSwibGlzdFN0eWxlUG9zaXRpb24iKSYmKGIuc2V0VmFyaWFibGUoInRleHRBbGlnbiIsImxlZnQiKSxhPWYubGVmdCxmPWcuYm90dG9tLG51bGwhPT1tJiYwPE0udHJpbVRleHQobSkubGVuZ3RoJiZiLmZpbGxUZXh0KG0sYSxmKSl9fWZ1bmN0aW9uIHooYSl7cmV0dXJuKGE9ZFthXSkmJiEwPT09YS5zdWNjZWVkZWQ\/YS5pbWc6ITF9ZnVuY3Rpb24gRShhLGIpe3ZhciBmPU1hdGgubWF4KGEubGVmdCxiLmxlZnQpLGc9TWF0aC5tYXgoYS50b3AsYi50b3ApO3JldHVybntsZWZ0OmYsCnRvcDpnLHdpZHRoOk1hdGgubWluKGEubGVmdCthLndpZHRoLGIubGVmdCtiLndpZHRoKS1mLGhlaWdodDpNYXRoLm1pbihhLnRvcCthLmhlaWdodCxiLnRvcCtiLmhlaWdodCktZ319ZnVuY3Rpb24gSyhhLGIsZixnLGgpe3ZhciByPWMoYiwicGFkZGluZ0xlZnQiKSx3PWMoYiwicGFkZGluZ1RvcCIpLG09YyhiLCJwYWRkaW5nUmlnaHQiKTtiPWMoYiwicGFkZGluZ0JvdHRvbSIpO1UoYSxmLDAsMCxmLndpZHRoLGYuaGVpZ2h0LGcubGVmdCtyK2hbM10ud2lkdGgsZy50b3ArdytoWzBdLndpZHRoLGcud2lkdGgtKGhbMV0ud2lkdGgraFszXS53aWR0aCtyK20pLGcuaGVpZ2h0LShoWzBdLndpZHRoK2hbMl0ud2lkdGgrdytiKSl9ZnVuY3Rpb24gSihhKXtyZXR1cm5bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLm1hcChmdW5jdGlvbihiKXtyZXR1cm57d2lkdGg6YyhhLCJib3JkZXIiK2IrIldpZHRoIiksY29sb3I6QyhhLCJib3JkZXIiK2IrIkNvbG9yIil9fSl9ZnVuY3Rpb24gRyhhKXtyZXR1cm5bIlRvcExlZnQiLAoiVG9wUmlnaHQiLCJCb3R0b21SaWdodCIsIkJvdHRvbUxlZnQiXS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIEMoYSwiYm9yZGVyIitiKyJSYWRpdXMiKX0pfWZ1bmN0aW9uIE8oYSxiLGYsZyl7dmFyIGg9KE1hdGguc3FydCgyKS0xKS8zKjQscj1mKmg7aCo9ZztmPWErZjtnPWIrZztyZXR1cm57dG9wTGVmdDpUKHt4OmEseTpnfSx7eDphLHk6Zy1ofSx7eDpmLXIseTpifSx7eDpmLHk6Yn0pLHRvcFJpZ2h0OlQoe3g6YSx5OmJ9LHt4OmErcix5OmJ9LHt4OmYseTpnLWh9LHt4OmYseTpnfSksYm90dG9tUmlnaHQ6VCh7eDpmLHk6Yn0se3g6Zix5OmIraH0se3g6YStyLHk6Z30se3g6YSx5Omd9KSxib3R0b21MZWZ0OlQoe3g6Zix5Omd9LHt4OmYtcix5Omd9LHt4OmEseTpiK2h9LHt4OmEseTpifSl9fWZ1bmN0aW9uIFQoYSxiLGYsZyl7dmFyIGg9ZnVuY3Rpb24ocix3LG0pe3JldHVybnt4OnIueCsody54LXIueCkqbSx5OnIueSsody55LXIueSkqbX19O3JldHVybntzdGFydDphLHN0YXJ0Q29udHJvbDpiLAplbmRDb250cm9sOmYsZW5kOmcsc3ViZGl2aWRlOmZ1bmN0aW9uKHIpe3ZhciB3PWgoYSxiLHIpLG09aChiLGYsciksRD1oKGYsZyxyKSx1PWgodyxtLHIpO209aChtLEQscik7cj1oKHUsbSxyKTtyZXR1cm5bVChhLHcsdSxyKSxUKHIsbSxELGcpXX0sY3VydmVUbzpmdW5jdGlvbihyKXtyLnB1c2goWyJiZXppZXJDdXJ2ZSIsYi54LGIueSxmLngsZi55LGcueCxnLnldKX0sY3VydmVUb1JldmVyc2VkOmZ1bmN0aW9uKHIpe3IucHVzaChbImJlemllckN1cnZlIixmLngsZi55LGIueCxiLnksYS54LGEueV0pfX19ZnVuY3Rpb24gVyhhLGIsZixnLGgscix3KXswPGJbMF18fDA8YlsxXT8oYS5wdXNoKFsibGluZSIsZ1swXS5zdGFydC54LGdbMF0uc3RhcnQueV0pLGdbMF0uY3VydmVUbyhhKSxnWzFdLmN1cnZlVG8oYSkpOmEucHVzaChbImxpbmUiLHIsd10pOygwPGZbMF18fDA8ZlsxXSkmJmEucHVzaChbImxpbmUiLGhbMF0uc3RhcnQueCxoWzBdLnN0YXJ0LnldKX1mdW5jdGlvbiBiYShhLApiLGYsZyxoLHIsdyl7dmFyIG09W107MDxiWzBdfHwwPGJbMV0\/KG0ucHVzaChbImxpbmUiLGdbMV0uc3RhcnQueCxnWzFdLnN0YXJ0LnldKSxnWzFdLmN1cnZlVG8obSkpOm0ucHVzaChbImxpbmUiLGEuYzFbMF0sYS5jMVsxXV0pOzA8ZlswXXx8MDxmWzFdPyhtLnB1c2goWyJsaW5lIixyWzBdLnN0YXJ0LngsclswXS5zdGFydC55XSksclswXS5jdXJ2ZVRvKG0pLG0ucHVzaChbImxpbmUiLHdbMF0uZW5kLngsd1swXS5lbmQueV0pLHdbMF0uY3VydmVUb1JldmVyc2VkKG0pKToobS5wdXNoKFsibGluZSIsYS5jMlswXSxhLmMyWzFdXSksbS5wdXNoKFsibGluZSIsYS5jM1swXSxhLmMzWzFdXSkpOzA8YlswXXx8MDxiWzFdPyhtLnB1c2goWyJsaW5lIixoWzFdLmVuZC54LGhbMV0uZW5kLnldKSxoWzFdLmN1cnZlVG9SZXZlcnNlZChtKSk6bS5wdXNoKFsibGluZSIsYS5jNFswXSxhLmM0WzFdXSk7cmV0dXJuIG19ZnVuY3Rpb24geShhLGIsZil7dmFyIGc9Yi5sZWZ0LGg9Yi50b3Ascj0KYi53aWR0aCx3PWIuaGVpZ2h0LG09RyhhKSxEPWIubGVmdCx1PWIudG9wLEg9Yi53aWR0aCxMPWIuaGVpZ2h0LEY9bVswXVswXSxWPW1bMF1bMV0sUz1tWzFdWzBdLFo9bVsxXVsxXSxjYT1tWzJdWzBdLGVhPW1bMl1bMV0sWT1tWzNdWzBdLFg9bVszXVsxXSxvYT1ILVMsc2E9TC1lYSx0YT1ILWNhLGZhPUwtWCxrYT1PKEQsdSxGLFYpLnRvcExlZnQuc3ViZGl2aWRlKC41KTtGPU8oRCtmWzNdLndpZHRoLHUrZlswXS53aWR0aCxNYXRoLm1heCgwLEYtZlszXS53aWR0aCksTWF0aC5tYXgoMCxWLWZbMF0ud2lkdGgpKS50b3BMZWZ0LnN1YmRpdmlkZSguNSk7Vj1PKEQrb2EsdSxTLFopLnRvcFJpZ2h0LnN1YmRpdmlkZSguNSk7Uz1PKEQrTWF0aC5taW4ob2EsSCtmWzNdLndpZHRoKSx1K2ZbMF0ud2lkdGgsb2E+SCtmWzNdLndpZHRoPzA6Uy1mWzNdLndpZHRoLFotZlswXS53aWR0aCkudG9wUmlnaHQuc3ViZGl2aWRlKC41KTtaPU8oRCt0YSx1K3NhLGNhLGVhKS5ib3R0b21SaWdodC5zdWJkaXZpZGUoLjUpOwpIPU8oRCtNYXRoLm1pbih0YSxIK2ZbM10ud2lkdGgpLHUrTWF0aC5taW4oc2EsTCtmWzBdLndpZHRoKSxNYXRoLm1heCgwLGNhLWZbMV0ud2lkdGgpLE1hdGgubWF4KDAsZWEtZlsyXS53aWR0aCkpLmJvdHRvbVJpZ2h0LnN1YmRpdmlkZSguNSk7TD1PKEQsdStmYSxZLFgpLmJvdHRvbUxlZnQuc3ViZGl2aWRlKC41KTtEPU8oRCtmWzNdLndpZHRoLHUrZmEsTWF0aC5tYXgoMCxZLWZbM10ud2lkdGgpLE1hdGgubWF4KDAsWC1mWzJdLndpZHRoKSkuYm90dG9tTGVmdC5zdWJkaXZpZGUoLjUpO3U9W107c3dpdGNoKEMoYSwiYmFja2dyb3VuZENsaXAiKSl7Y2FzZSAiY29udGVudC1ib3giOmNhc2UgInBhZGRpbmctYm94IjpXKHUsbVswXSxtWzFdLEYsUyxiLmxlZnQrZlszXS53aWR0aCxiLnRvcCtmWzBdLndpZHRoKTtXKHUsbVsxXSxtWzJdLFMsSCxiLmxlZnQrYi53aWR0aC1mWzFdLndpZHRoLGIudG9wK2ZbMF0ud2lkdGgpO1codSxtWzJdLG1bM10sSCxELGIubGVmdCtiLndpZHRoLWZbMV0ud2lkdGgsCmIudG9wK2IuaGVpZ2h0LWZbMl0ud2lkdGgpO1codSxtWzNdLG1bMF0sRCxGLGIubGVmdCtmWzNdLndpZHRoLGIudG9wK2IuaGVpZ2h0LWZbMl0ud2lkdGgpO2JyZWFrO2RlZmF1bHQ6Vyh1LG1bMF0sbVsxXSxrYSxWLGIubGVmdCxiLnRvcCksVyh1LG1bMV0sbVsyXSxWLFosYi5sZWZ0K2Iud2lkdGgsYi50b3ApLFcodSxtWzJdLG1bM10sWixMLGIubGVmdCtiLndpZHRoLGIudG9wK2IuaGVpZ2h0KSxXKHUsbVszXSxtWzBdLEwsa2EsYi5sZWZ0LGIudG9wK2IuaGVpZ2h0KX1mYT17Y2xpcDp1LGJvcmRlcnM6W119O2ZvcihhPTA7ND5hO2ErKylpZigwPGZbYV0ud2lkdGgpe2I9Zzt1PWg7WT1yO1g9dy1mWzJdLndpZHRoO3N3aXRjaChhKXtjYXNlIDA6WD1mWzBdLndpZHRoO3ZhciBsYT1iYSh7YzE6W2IsdV0sYzI6W2IrWSx1XSxjMzpbYitZLWZbMV0ud2lkdGgsdStYXSxjNDpbYitmWzNdLndpZHRoLHUrWF19LG1bMF0sbVsxXSxrYSxGLFYsUyk7YnJlYWs7Y2FzZSAxOmI9ZytyLWZbMV0ud2lkdGg7Clk9ZlsxXS53aWR0aDtsYT1iYSh7YzE6W2IrWSx1XSxjMjpbYitZLHUrWCtmWzJdLndpZHRoXSxjMzpbYix1K1hdLGM0OltiLHUrZlswXS53aWR0aF19LG1bMV0sbVsyXSxWLFMsWixIKTticmVhaztjYXNlIDI6dT11K3ctZlsyXS53aWR0aDtYPWZbMl0ud2lkdGg7bGE9YmEoe2MxOltiK1ksdStYXSxjMjpbYix1K1hdLGMzOltiK2ZbM10ud2lkdGgsdV0sYzQ6W2IrWS1mWzNdLndpZHRoLHVdfSxtWzJdLG1bM10sWixILEwsRCk7YnJlYWs7Y2FzZSAzOlk9ZlszXS53aWR0aCxsYT1iYSh7YzE6W2IsdStYK2ZbMl0ud2lkdGhdLGMyOltiLHVdLGMzOltiK1ksdStmWzBdLndpZHRoXSxjNDpbYitZLHUrWF19LG1bM10sbVswXSxMLEQsa2EsRil9ZmEuYm9yZGVycy5wdXNoKHthcmdzOmxhLGNvbG9yOmZbYV0uY29sb3J9KX1yZXR1cm4gZmF9ZnVuY3Rpb24gQShhLGIpe3ZhciBmPWEuZHJhd1NoYXBlKCk7Yi5mb3JFYWNoKGZ1bmN0aW9uKGcsaCl7ZlswPT09aD8ibW92ZVRvIjpnWzBdKyJUbyJdLmFwcGx5KG51bGwsCmcuc2xpY2UoMSkpfSk7cmV0dXJuIGZ9ZnVuY3Rpb24gQihhLGIsZil7dmFyIGc9UC5jcmVhdGVFbGVtZW50KCJ2YWx1ZXdyYXAiKTsibGluZUhlaWdodCB0ZXh0QWxpZ24gZm9udEZhbWlseSBjb2xvciBmb250U2l6ZSBwYWRkaW5nTGVmdCBwYWRkaW5nVG9wIHdpZHRoIGhlaWdodCBib3JkZXIgYm9yZGVyTGVmdFdpZHRoIGJvcmRlclRvcFdpZHRoIi5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oaCl7dHJ5e2cuc3R5bGVbaF09QyhhLGgpfWNhdGNoKHIpe00ubG9nKCJodG1sMmNhbnZhczogUGFyc2U6IEV4Y2VwdGlvbiBjYXVnaHQgaW4gcmVuZGVyRm9ybVZhbHVlOiAiK3IubWVzc2FnZSl9fSk7Zy5zdHlsZS5ib3JkZXJDb2xvcj0iYmxhY2siO2cuc3R5bGUuYm9yZGVyU3R5bGU9InNvbGlkIjtnLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtnLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7aWYoL14oc3VibWl0fHJlc2V0fGJ1dHRvbnx0ZXh0fHBhc3N3b3JkKSQvLnRlc3QoYS50eXBlKXx8CiJTRUxFQ1QiPT09YS5ub2RlTmFtZSlnLnN0eWxlLmxpbmVIZWlnaHQ9QyhhLCJoZWlnaHQiKTtnLnN0eWxlLnRvcD1iLnRvcCsicHgiO2cuc3R5bGUubGVmdD1iLmxlZnQrInB4IjsoYj0iU0VMRUNUIj09PWEubm9kZU5hbWU\/KGEub3B0aW9uc1thLnNlbGVjdGVkSW5kZXhdfHwwKS50ZXh0OmEudmFsdWUpfHwoYj1hLnBsYWNlaG9sZGVyKTtiPVAuY3JlYXRlVGV4dE5vZGUoYik7Zy5hcHBlbmRDaGlsZChiKTttYS5hcHBlbmRDaGlsZChnKTtlKGEsYixmKTttYS5yZW1vdmVDaGlsZChnKX1mdW5jdGlvbiBVKGEpe2EuZHJhd0ltYWdlLmFwcGx5KGEsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX1mdW5jdGlvbiBhYShhLGIpe3ZhciBmPU4uZ2V0Q29tcHV0ZWRTdHlsZShhLGIpO2E9Ti5nZXRDb21wdXRlZFN0eWxlKGEpO2lmKGYmJmYuY29udGVudCYmIm5vbmUiIT09Zi5jb250ZW50JiYiLW1vei1hbHQtY29udGVudCIhPT1mLmNvbnRlbnQmJiJub25lIiE9PQpmLmRpc3BsYXkmJmEuY29udGVudCE9PWYuY29udGVudCl7YT1mLmNvbnRlbnQrIiI7aWYoIiciPT09YVswXXx8JyInPT09YVswXSlhPWEucmVwbGFjZSgvKF5bJyJdKXwoWyciXSQpL2csIiIpO2I9InVybCI9PT1hLnN1YnN0cigwLDMpO3ZhciBnPVIuY3JlYXRlRWxlbWVudChiPyJpbWciOiJzcGFuIik7Zy5jbGFzc05hbWU9Il9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1lbGVtZW50ICI7T2JqZWN0LmtleXMoZikuZmlsdGVyKGRhKS5mb3JFYWNoKGZ1bmN0aW9uKGgpe3RyeXtnLnN0eWxlW2hdPWZbaF19Y2F0Y2gocil7TS5sb2coWyJUcmllZCB0byBhc3NpZ24gcmVhZG9ubHkgcHJvcGVydHkgIixoLCJFcnJvcjoiLHJdKX19KTtiP2cuc3JjPU0ucGFyc2VCYWNrZ3JvdW5kSW1hZ2UoYSlbMF0uYXJnc1swXTpnLmlubmVySFRNTD1hO3JldHVybiBnfX1mdW5jdGlvbiBkYShhKXtyZXR1cm4gaXNOYU4oTi5wYXJzZUludChhLDEwKSl9ZnVuY3Rpb24gaGEoYSxiLGYsZyl7dmFyIGg9Ck1hdGgucm91bmQoZy5sZWZ0K2YubGVmdCk7Zj1NYXRoLnJvdW5kKGcudG9wK2YudG9wKTthLmNyZWF0ZVBhdHRlcm4oYik7YS50cmFuc2xhdGUoaCxmKTthLmZpbGwoKTthLnRyYW5zbGF0ZSgtaCwtZil9ZnVuY3Rpb24gbmEoYSxiLGYsZyxoLHIsdyxtKXt2YXIgRD1bXTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgpLE1hdGgucm91bmQocildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgrdyksTWF0aC5yb3VuZChyKV0pO0QucHVzaChbImxpbmUiLE1hdGgucm91bmQoaCt3KSxNYXRoLnJvdW5kKG0rcildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgpLE1hdGgucm91bmQobStyKV0pO0EoYSxEKTthLnNhdmUoKTthLmNsaXAoKTtoYShhLGIsZixnKTthLnJlc3RvcmUoKX1mdW5jdGlvbiBBYShhLGIsZil7Zm9yKHZhciBnPUMoYSwiYmFja2dyb3VuZEltYWdlIiksaD1NLnBhcnNlQmFja2dyb3VuZEltYWdlKGcpLHIsdz1oLmxlbmd0aDt3LS07KWlmKGc9aFt3XSxnLmFyZ3MmJgowIT09Zy5hcmdzLmxlbmd0aClpZihyPXooInVybCI9PT1nLm1ldGhvZD9nLmFyZ3NbMF06Zy52YWx1ZSkpe3ZhciBtPWE7Zz1iO3ZhciBEPWYsdT1yLEg9dyxMPU0uQmFja2dyb3VuZFNpemUobSxnLHUsSCk7cj1NLkJhY2tncm91bmRQb3NpdGlvbihtLGcsdSxILEwpO209TS5CYWNrZ3JvdW5kUmVwZWF0KG0sSCk7SD1MO2lmKHUud2lkdGghPT1ILndpZHRofHx1LmhlaWdodCE9PUguaGVpZ2h0KXt2YXIgRj1QLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0Yud2lkdGg9SC53aWR0aDtGLmhlaWdodD1ILmhlaWdodDtMPUYuZ2V0Q29udGV4dCgiMmQiKTtVKEwsdSwwLDAsdS53aWR0aCx1LmhlaWdodCwwLDAsSC53aWR0aCxILmhlaWdodCk7dT1GfXN3aXRjaChtKXtjYXNlICJyZXBlYXQteCI6Y2FzZSAicmVwZWF0IG5vLXJlcGVhdCI6bmEoRCx1LHIsZyxnLmxlZnQsZy50b3Arci50b3AsOTk5OTksdS5oZWlnaHQpO2JyZWFrO2Nhc2UgInJlcGVhdC15IjpjYXNlICJuby1yZXBlYXQgcmVwZWF0IjpuYShELAp1LHIsZyxnLmxlZnQrci5sZWZ0LGcudG9wLHUud2lkdGgsOTk5OTkpO2JyZWFrO2Nhc2UgIm5vLXJlcGVhdCI6bmEoRCx1LHIsZyxnLmxlZnQrci5sZWZ0LGcudG9wK3IudG9wLHUud2lkdGgsdS5oZWlnaHQpO2JyZWFrO2RlZmF1bHQ6aGEoRCx1LHIse3RvcDpnLnRvcCxsZWZ0OmcubGVmdCx3aWR0aDp1LndpZHRoLGhlaWdodDp1LmhlaWdodH0pfX1lbHNlIE0ubG9nKCJodG1sMmNhbnZhczogRXJyb3IgbG9hZGluZyBiYWNrZ3JvdW5kOiIsZyl9ZnVuY3Rpb24gQmEoYSl7cmV0dXJuIGEucmVwbGFjZSgicHgiLCIiKX1mdW5jdGlvbiBDYShhLGIpe2I9LyhtYXRyaXgpXCgoLispXCkvO3ZhciBmPUMoYSwidHJhbnNmb3JtIil8fEMoYSwiLXdlYmtpdC10cmFuc2Zvcm0iKXx8QyhhLCItbW96LXRyYW5zZm9ybSIpfHxDKGEsIi1tcy10cmFuc2Zvcm0iKXx8QyhhLCItby10cmFuc2Zvcm0iKTthPUMoYSwidHJhbnNmb3JtLW9yaWdpbiIpfHxDKGEsIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbiIpfHwKQyhhLCItbW96LXRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItbXMtdHJhbnNmb3JtLW9yaWdpbiIpfHxDKGEsIi1vLXRyYW5zZm9ybS1vcmlnaW4iKXx8IjBweCAwcHgiO2E9YS5zcGxpdCgiICIpLm1hcChCYSkubWFwKE0uYXNGbG9hdCk7aWYoZiYmIm5vbmUiIT09ZiYmKGI9Zi5tYXRjaChiKSkpc3dpdGNoKGJbMV0pe2Nhc2UgIm1hdHJpeCI6dmFyIGc9YlsyXS5zcGxpdCgiLCIpLm1hcChNLnRyaW1UZXh0KS5tYXAoTS5hc0Zsb2F0KX1yZXR1cm57b3JpZ2luOmEsbWF0cml4Omd9fWZ1bmN0aW9uIERhKGEsYixmLGcpe3ZhciBoPXlhKGI\/Zi53aWR0aDpNYXRoLm1heChNYXRoLm1heChQLmJvZHkuc2Nyb2xsV2lkdGgsUC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGgpLE1hdGgubWF4KFAuYm9keS5vZmZzZXRXaWR0aCxQLmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCksTWF0aC5tYXgoUC5ib2R5LmNsaWVudFdpZHRoLFAuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSksCmI\/Zi5oZWlnaHQ6TWF0aC5tYXgoTWF0aC5tYXgoUC5ib2R5LnNjcm9sbEhlaWdodCxQLmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpLE1hdGgubWF4KFAuYm9keS5vZmZzZXRIZWlnaHQsUC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0KSxNYXRoLm1heChQLmJvZHkuY2xpZW50SGVpZ2h0LFAuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkpKSxyPWguc2V0VmFyaWFibGUoImdsb2JhbEFscGhhIixDKGEsIm9wYWNpdHkiKSooYj9iLm9wYWNpdHk6MSkpO2c9e2N0eDpoLG9wYWNpdHk6cixjc3NQb3NpdGlvbjpDKGEsInBvc2l0aW9uIiksYm9yZGVyczpKKGEpLHRyYW5zZm9ybTpnLGNsaXA6YiYmYi5jbGlwP00uRXh0ZW5kKHt9LGIuY2xpcCk6bnVsbH07dmFyIHc9KHI9InN0YXRpYyIhPT1nLmNzc1Bvc2l0aW9uKT9DKGEsInpJbmRleCIpOiJhdXRvIixtPUMoYSwib3BhY2l0eSIpLEQ9Im5vbmUiIT09QyhhLCJjc3NGbG9hdCIpO2cuekluZGV4PWg9e2RlcHRoOjAsemluZGV4OncsCmNoaWxkcmVuOltdfTtoLmlzUG9zaXRpb25lZD1yO2guaXNGbG9hdGVkPUQ7aC5vcGFjaXR5PW07aC5vd25TdGFja2luZz0iYXV0byIhPT13fHwxPm07aC5kZXB0aD1iP2IuekluZGV4LmRlcHRoKzE6MDtiJiZiLnpJbmRleC5jaGlsZHJlbi5wdXNoKGcpOyEwPT09cC51c2VPdmVyZmxvdyYmITA9PT0vKGhpZGRlbnxzY3JvbGx8YXV0bykvLnRlc3QoQyhhLCJvdmVyZmxvdyIpKSYmITE9PT0vKEJPRFkpL2kudGVzdChhLm5vZGVOYW1lKSYmKGcuY2xpcD1nLmNsaXA\/RShnLmNsaXAsZik6Zik7cmV0dXJuIGd9ZnVuY3Rpb24gRWEoYSxiLGYpe2E9e2xlZnQ6Yi5sZWZ0K2FbM10ud2lkdGgsdG9wOmIudG9wK2FbMF0ud2lkdGgsd2lkdGg6Yi53aWR0aC0oYVsxXS53aWR0aCthWzNdLndpZHRoKSxoZWlnaHQ6Yi5oZWlnaHQtKGFbMF0ud2lkdGgrYVsyXS53aWR0aCl9O2YmJihhPUUoYSxmKSk7cmV0dXJuIGF9ZnVuY3Rpb24gRmEoYSxiKXthPWIubWF0cml4P00uT2Zmc2V0Qm91bmRzKGEpOgpNLkJvdW5kcyhhKTtiLm9yaWdpblswXSs9YS5sZWZ0O2Iub3JpZ2luWzFdKz1hLnRvcDtyZXR1cm4gYX1mdW5jdGlvbiB1YShhLGIsZil7dmFyIGc9Q2EoYSxiKSxoPUZhKGEsZykscjtiPURhKGEsYixoLGcpO2c9Yi5ib3JkZXJzO3ZhciB3PWIuY3R4LG09RWEoZyxoLGIuY2xpcCksRD15KGEsaCxnKSx1PXZhLnRlc3QoYS5ub2RlTmFtZSk\/IiNlZmVmZWYiOkMoYSwiYmFja2dyb3VuZENvbG9yIik7QSh3LEQuY2xpcCk7dy5zYXZlKCk7dy5jbGlwKCk7MDxtLmhlaWdodCYmMDxtLndpZHRoJiYhZj8obih3LGgubGVmdCxoLnRvcCxoLndpZHRoLGguaGVpZ2h0LHUpLEFhKGEsbSx3KSk6ZiYmKGIuYmFja2dyb3VuZENvbG9yPXUpO3cucmVzdG9yZSgpO0QuYm9yZGVycy5mb3JFYWNoKGZ1bmN0aW9uKEgpe3ZhciBMPUguYXJncztIPUguY29sb3I7InRyYW5zcGFyZW50IiE9PUgmJih3LnNldFZhcmlhYmxlKCJmaWxsU3R5bGUiLEgpLEEodyxMKSx3LmZpbGwoKSl9KTtzd2l0Y2goYS5ub2RlTmFtZSl7Y2FzZSAiSU1HIjoocj0KeihhLmdldEF0dHJpYnV0ZSgic3JjIikpKT9LKHcsYSxyLGgsZyk6TS5sb2coImh0bWwyY2FudmFzOiBFcnJvciBsb2FkaW5nIDxpbWc+OiIrYS5nZXRBdHRyaWJ1dGUoInNyYyIpKTticmVhaztjYXNlICJJTlBVVCI6L14odGV4dHx1cmx8ZW1haWx8c3VibWl0fGJ1dHRvbnxyZXNldCkkLy50ZXN0KGEudHlwZSkmJjA8KGEudmFsdWV8fGEucGxhY2Vob2xkZXJ8fCIiKS5sZW5ndGgmJkIoYSxoLGIpO2JyZWFrO2Nhc2UgIlRFWFRBUkVBIjowPChhLnZhbHVlfHxhLnBsYWNlaG9sZGVyfHwiIikubGVuZ3RoJiZCKGEsaCxiKTticmVhaztjYXNlICJTRUxFQ1QiOjA8KGEub3B0aW9uc3x8YS5wbGFjZWhvbGRlcnx8IiIpLmxlbmd0aCYmQihhLGgsYik7YnJlYWs7Y2FzZSAiTEkiOkkoYSxiLG0pO2JyZWFrO2Nhc2UgIkNBTlZBUyI6Syh3LGEsYSxoLGcpfXJldHVybiBifWZ1bmN0aW9uIEdhKGEpe3JldHVybiJub25lIiE9PUMoYSwiZGlzcGxheSIpJiYiaGlkZGVuIiE9PUMoYSwidmlzaWJpbGl0eSIpJiYKIWEuaGFzQXR0cmlidXRlKCJkYXRhLWh0bWwyY2FudmFzLWlnbm9yZSIpfWZ1bmN0aW9uIEhhKGEsYixmKXtmfHwoZj1mdW5jdGlvbigpe30pO2lmKEdhKGEpJiYoYj11YShhLGIsITEpfHxiLCF2YS50ZXN0KGEubm9kZU5hbWUpKSlyZXR1cm4gd2EoYSxiLGYpO2YoKX1mdW5jdGlvbiB3YShhLGIsZil7ZnVuY3Rpb24gZyhtKXttLm5vZGVUeXBlPT09bS5FTEVNRU5UX05PREU\/SGEobSxiLGgpOihtLm5vZGVUeXBlPT09bS5URVhUX05PREUmJmUoYSxtLGIpLGgoKSl9ZnVuY3Rpb24gaChtKXswPj0tLXcmJihNLmxvZygiZmluaXNoZWQgcmVuZGVyaW5nICIrci5sZW5ndGgrIiBjaGlsZHJlbi4iKSxmKCkpfXZhciByPU0uQ2hpbGRyZW4oYSksdz1yLmxlbmd0aCsxO2goKTtwLmFzeW5jP3IuZm9yRWFjaChmdW5jdGlvbihtKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZyhtKX0sMCl9KTpyLmZvckVhY2goZyl9Ti5zY3JvbGwoMCwwKTt2YXIgaWE9cC5lbGVtZW50cz09PVE\/Ui5ib2R5OnAuZWxlbWVudHNbMF0sClA9aWEub3duZXJEb2N1bWVudCxNPXguVXRpbCx6YT1NLlN1cHBvcnQocCxQKSx2YT1uZXcgUmVnRXhwKCIoIitwLmlnbm9yZUVsZW1lbnRzKyIpIiksbWE9UC5ib2R5LEM9TS5nZXRDU1MscGE9UC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3BhLmlubmVySFRNTD0nLl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQ6YmVmb3JlIHsgY29udGVudDogIiIgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9Ll9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQ6YWZ0ZXIgeyBjb250ZW50OiAiIiAhaW1wb3J0YW50OyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0nO21hLmFwcGVuZENoaWxkKHBhKTtkPWR8fHt9OyhmdW5jdGlvbigpe3ZhciBhPUMoUi5kb2N1bWVudEVsZW1lbnQsImJhY2tncm91bmRDb2xvciIpLGI9TS5pc1RyYW5zcGFyZW50KGEpJiZpYT09PVIuYm9keSxmPXVhKGlhLG51bGwsITEsYik7ayhpYSk7d2EoaWEsZixmdW5jdGlvbigpe2ImJgooYT1mLmJhY2tncm91bmRDb2xvcik7bWEucmVtb3ZlQ2hpbGQocGEpO2Zvcih2YXIgZz1SLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1lbGVtZW50Iik7Zy5sZW5ndGg7KWdbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnWzBdKTtmb3IoZz1SLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQiKTtnLmxlbmd0aDspe3ZhciBoPWdbMF07aC5jbGFzc0xpc3Q\/aC5jbGFzc0xpc3QucmVtb3ZlKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik6aC5jbGFzc05hbWU9aC5jbGFzc05hbWUucmVwbGFjZSgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIsIiIpLnRyaW0oKX1NLmxvZygiRG9uZSBwYXJzaW5nLCBtb3ZpbmcgdG8gUmVuZGVyLiIpO3Eoe2JhY2tncm91bmRDb2xvcjphLHN0YWNrOmZ9KX0pfSkoKX07eC5QcmVsb2FkPWZ1bmN0aW9uKGQpe2Z1bmN0aW9uIHAoKXtlLmxvZygiaHRtbDJjYW52YXM6IHN0YXJ0OiBpbWFnZXM6ICIrCmwubnVtTG9hZGVkKyIgLyAiK2wubnVtVG90YWwrIiAoZmFpbGVkOiAiK2wubnVtRmFpbGVkKyIpIik7IWwuZmlyc3RSdW4mJmwubnVtTG9hZGVkPj1sLm51bVRvdGFsJiYoZS5sb2coIkZpbmlzaGVkIGxvYWRpbmcgaW1hZ2VzOiAjICIrbC5udW1Ub3RhbCsiIChmYWlsZWQ6ICIrbC5udW1GYWlsZWQrIikiKSwiZnVuY3Rpb24iPT09dHlwZW9mIGQuY29tcGxldGUmJmQuY29tcGxldGUobCkpfWZ1bmN0aW9uIHEoeSxBLEIpe3ZhciBVPWQucHJveHk7Ry5ocmVmPXk7eT1HLmhyZWY7dmFyIGFhPSJodG1sMmNhbnZhc18iK0krKztCLmNhbGxiYWNrbmFtZT1hYTtVPS0xPFUuaW5kZXhPZigiPyIpP1UrIiYiOlUrIj8iO1UrPSJ1cmw9IitlbmNvZGVVUklDb21wb25lbnQoeSkrIiZjYWxsYmFjaz0iK2FhO3ZhciBkYT1FLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO05bYWFdPWZ1bmN0aW9uKGhhKXsiZXJyb3I6Ij09PWhhLnN1YnN0cmluZygwLDYpPyhCLnN1Y2NlZWRlZD0hMSxsLm51bUxvYWRlZCsrLApsLm51bUZhaWxlZCsrLHAoKSk6KHYoQSxCKSxBLnNyYz1oYSk7TlthYV09UTt0cnl7ZGVsZXRlIE5bYWFdfWNhdGNoKG5hKXt9ZGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkYSk7ZGE9bnVsbDtkZWxldGUgQi5zY3JpcHQ7ZGVsZXRlIEIuY2FsbGJhY2tuYW1lfTtkYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKTtkYS5zZXRBdHRyaWJ1dGUoInNyYyIsVSk7Qi5zY3JpcHQ9ZGE7Ti5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRhKX1mdW5jdGlvbiBrKHksQSl7QT1OLmdldENvbXB1dGVkU3R5bGUoeSxBKTt2YXIgQj1BLmNvbnRlbnQ7InVybCI9PT1CLnN1YnN0cigwLDMpJiZiYS5sb2FkSW1hZ2UoeC5VdGlsLnBhcnNlQmFja2dyb3VuZEltYWdlKEIpWzBdLmFyZ3NbMF0pO24oQS5iYWNrZ3JvdW5kSW1hZ2UseSl9ZnVuY3Rpb24gYyh5KXtyZXR1cm4geSYmeS5tZXRob2QmJnkuYXJncyYmMDx5LmFyZ3MubGVuZ3RofWZ1bmN0aW9uIG4oeSxBKXt2YXIgQjsKeC5VdGlsLnBhcnNlQmFja2dyb3VuZEltYWdlKHkpLmZpbHRlcihjKS5mb3JFYWNoKGZ1bmN0aW9uKFUpe2lmKCJ1cmwiPT09VS5tZXRob2QpYmEubG9hZEltYWdlKFUuYXJnc1swXSk7ZWxzZSBpZihVLm1ldGhvZC5tYXRjaCgvXC0\/Z3JhZGllbnQkLykpe0I9PT1RJiYoQj14LlV0aWwuQm91bmRzKEEpKTtVPVUudmFsdWU7dmFyIGFhPXguR2VuZXJhdGUuR3JhZGllbnQoVSxCKTthYSE9PVEmJihsW1VdPXtpbWc6YWEsc3VjY2VlZGVkOiEwfSxsLm51bVRvdGFsKyssbC5udW1Mb2FkZWQrKyxwKCkpfX0pfWZ1bmN0aW9uIHQoeSl7dmFyIEE9ITE7dHJ5e2lmKG51bGwhPT15LmdldEF0dHJpYnV0ZSgiaGlkZGVuIil8fCJub25lIj09PWdldENvbXB1dGVkU3R5bGUoeSkuZ2V0UHJvcGVydHlWYWx1ZSgiZGlzcGxheSIpKXJldHVybjtlLkNoaWxkcmVuKHkpLmZvckVhY2godCl9Y2F0Y2goQil7fXRyeXtBPXkubm9kZVR5cGV9Y2F0Y2goQil7QT0hMSxlLmxvZygiaHRtbDJjYW52YXM6IGZhaWxlZCB0byBhY2Nlc3Mgc29tZSBlbGVtZW50J3Mgbm9kZVR5cGUgLSBFeGNlcHRpb246ICIrCkIubWVzc2FnZSl9aWYoMT09PUF8fEE9PT1RKXtrKHksIjpiZWZvcmUiKTtrKHksIjphZnRlciIpO3RyeXtuKGUuZ2V0Q1NTKHksImJhY2tncm91bmRJbWFnZSIpLHkpfWNhdGNoKEIpe2UubG9nKCJodG1sMmNhbnZhczogZmFpbGVkIHRvIGdldCBiYWNrZ3JvdW5kLWltYWdlIC0gRXhjZXB0aW9uOiAiK0IubWVzc2FnZSl9bih5KX19ZnVuY3Rpb24gdih5LEEpe3kub25sb2FkPWZ1bmN0aW9uKCl7QS50aW1lciE9PVEmJk4uY2xlYXJUaW1lb3V0KEEudGltZXIpO2wubnVtTG9hZGVkKys7QS5zdWNjZWVkZWQ9ITA7eS5vbmVycm9yPXkub25sb2FkPW51bGw7cCgpfTt5Lm9uZXJyb3I9ZnVuY3Rpb24oKXtpZigiYW5vbnltb3VzIj09PXkuY3Jvc3NPcmlnaW4mJihOLmNsZWFyVGltZW91dChBLnRpbWVyKSxkLnByb3h5KSl7dmFyIEI9eS5zcmM7eT1uZXcgSW1hZ2U7QS5pbWc9eTt5LnNyYz1CO3EoeS5zcmMseSxBKX1lbHNlIGwubnVtTG9hZGVkKyssbC5udW1GYWlsZWQrKyxBLnN1Y2NlZWRlZD0KITEseS5vbmVycm9yPXkub25sb2FkPW51bGwscCgpfX12YXIgbD17bnVtTG9hZGVkOjAsbnVtRmFpbGVkOjAsbnVtVG90YWw6MCxjbGVhbnVwRG9uZTohMX0sZT14LlV0aWwsST0wLHo9ZC5lbGVtZW50c1swXXx8Ui5ib2R5LEU9ei5vd25lckRvY3VtZW50LEs9ei5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIiksSj1LLmxlbmd0aCxHPUUuY3JlYXRlRWxlbWVudCgiYSIpLE89KG5ldyBJbWFnZSkuY3Jvc3NPcmlnaW4hPT1RLFQ7Ry5ocmVmPU4ubG9jYXRpb24uaHJlZjt2YXIgVz1HLnByb3RvY29sK0cuaG9zdCxiYT17bG9hZEltYWdlOmZ1bmN0aW9uKHkpe2lmKHkmJmxbeV09PT1RKXt2YXIgQT1uZXcgSW1hZ2U7aWYoeS5tYXRjaCgvZGF0YTppbWFnZVwvLio7YmFzZTY0LC9pKSl7QS5zcmM9eS5yZXBsYWNlKC91cmxcKFsnIl17MCx9fFsnIl17MCx9XCkkL2lnLCIiKTt2YXIgQj1sW3ldPXtpbWc6QX07bC5udW1Ub3RhbCsrO3YoQSxCKX1lbHNlIEcuaHJlZj15LEcuaHJlZj1HLmhyZWYsCkcucHJvdG9jb2wrRy5ob3N0PT09V3x8ITA9PT1kLmFsbG93VGFpbnQ\/KEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyx2KEEsQiksQS5zcmM9eSk6TyYmIWQuYWxsb3dUYWludCYmZC51c2VDT1JTPyhBLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyx2KEEsQiksQS5zcmM9eSk6ZC5wcm94eSYmKEI9bFt5XT17aW1nOkF9LGwubnVtVG90YWwrKyxxKHksQSxCKSl9fSxjbGVhbnVwRE9NOmZ1bmN0aW9uKHkpe3ZhciBBO2lmKCFsLmNsZWFudXBEb25lKXt5JiYic3RyaW5nIj09PXR5cGVvZiB5P2UubG9nKCJodG1sMmNhbnZhczogQ2xlYW51cCBiZWNhdXNlOiAiK3kpOmUubG9nKCJodG1sMmNhbnZhczogQ2xlYW51cCBhZnRlciB0aW1lb3V0OiAiK2QudGltZW91dCsiIG1zLiIpO2ZvcihBIGluIGwpaWYobC5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIEI9bFtBXTtpZigib2JqZWN0Ij09PXR5cGVvZiBCJiZCLmNhbGxiYWNrbmFtZSYmQi5zdWNjZWVkZWQ9PT0KUSl7TltCLmNhbGxiYWNrbmFtZV09UTt0cnl7ZGVsZXRlIE5bQi5jYWxsYmFja25hbWVdfWNhdGNoKFUpe31CLnNjcmlwdCYmQi5zY3JpcHQucGFyZW50Tm9kZSYmKEIuc2NyaXB0LnNldEF0dHJpYnV0ZSgic3JjIiwiYWJvdXQ6YmxhbmsiKSxCLnNjcmlwdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEIuc2NyaXB0KSk7bC5udW1Mb2FkZWQrKztsLm51bUZhaWxlZCsrO2UubG9nKCJodG1sMmNhbnZhczogQ2xlYW5lZCB1cCBmYWlsZWQgaW1nOiAnIitBKyInIFN0ZXBzOiAiK2wubnVtTG9hZGVkKyIgLyAiK2wubnVtVG90YWwpfX1OLnN0b3AhPT1RP04uc3RvcCgpOlIuZXhlY0NvbW1hbmQhPT1RJiZSLmV4ZWNDb21tYW5kKCJTdG9wIiwhMSk7Ui5jbG9zZSE9PVEmJlIuY2xvc2UoKTtsLmNsZWFudXBEb25lPSEwO3kmJiJzdHJpbmciPT09dHlwZW9mIHl8fHAoKX19LHJlbmRlcmluZ0RvbmU6ZnVuY3Rpb24oKXtUJiZOLmNsZWFyVGltZW91dChUKX19OzA8ZC50aW1lb3V0JiYoVD1OLnNldFRpbWVvdXQoYmEuY2xlYW51cERPTSwKZC50aW1lb3V0KSk7ZS5sb2coImh0bWwyY2FudmFzOiBQcmVsb2FkIHN0YXJ0czogZmluZGluZyBiYWNrZ3JvdW5kLWltYWdlcyIpO2wuZmlyc3RSdW49ITA7dCh6KTtlLmxvZygiaHRtbDJjYW52YXM6IFByZWxvYWQ6IEZpbmRpbmcgaW1hZ2VzIik7Zm9yKHo9MDt6PEo7eis9MSliYS5sb2FkSW1hZ2UoS1t6XS5nZXRBdHRyaWJ1dGUoInNyYyIpKTtsLmZpcnN0UnVuPSExO2UubG9nKCJodG1sMmNhbnZhczogUHJlbG9hZDogRG9uZS4iKTtsLm51bVRvdGFsPT09bC5udW1Mb2FkZWQmJnAoKTtyZXR1cm4gYmF9O3guUmVuZGVyZXI9ZnVuY3Rpb24oZCxwKXtmdW5jdGlvbiBxKGssYyl7cmV0dXJuImNoaWxkcmVuIj09PWs\/LTE6ImNoaWxkcmVuIj09PWM\/MTprLWN9cmV0dXJuIGZ1bmN0aW9uKGspe2lmKCJzdHJpbmciPT09dHlwZW9mIHAucmVuZGVyZXImJnguUmVuZGVyZXJba10hPT1RKWs9eC5SZW5kZXJlcltrXShwKTtlbHNlIGlmKCJmdW5jdGlvbiI9PT10eXBlb2YgaylrPWsocCk7CmVsc2UgdGhyb3cgRXJyb3IoIlVua25vd24gcmVuZGVyZXIiKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGspdGhyb3cgRXJyb3IoIkludmFsaWQgcmVuZGVyZXIgZGVmaW5lZCIpO3JldHVybiBrfShwLnJlbmRlcmVyKShkLHAsUixmdW5jdGlvbihrKXtmdW5jdGlvbiBjKHQpe09iamVjdC5rZXlzKHQpLnNvcnQocSkuZm9yRWFjaChmdW5jdGlvbih2KXt2YXIgbD1bXSxlPVtdLEk9W10sej1bXTt0W3ZdLmZvckVhY2goZnVuY3Rpb24oRSl7RS5ub2RlLnpJbmRleC5pc1Bvc2l0aW9uZWR8fDE+RS5ub2RlLnpJbmRleC5vcGFjaXR5P0kucHVzaChFKTpFLm5vZGUuekluZGV4LmlzRmxvYXRlZD9lLnB1c2goRSk6bC5wdXNoKEUpfSk7KGZ1bmN0aW9uIEooSyl7Sy5mb3JFYWNoKGZ1bmN0aW9uKEcpe3oucHVzaChHKTtHLmNoaWxkcmVuJiZKKEcuY2hpbGRyZW4pfSl9KShsLmNvbmNhdChlLEkpKTt6LmZvckVhY2goZnVuY3Rpb24oSyl7Sy5jb250ZXh0P2MoSy5jb250ZXh0KTpuLnB1c2goSy5ub2RlKX0pfSl9CnZhciBuPVtdO2s9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gdihlLEkseil7dmFyIEU9ImF1dG8iPT09SS56SW5kZXguemluZGV4PzA6TnVtYmVyKEkuekluZGV4LnppbmRleCksSz1lLEo9SS56SW5kZXguaXNQb3NpdGlvbmVkLEc9SS56SW5kZXguaXNGbG9hdGVkLE89e25vZGU6SX0sVD16O2lmKEkuekluZGV4Lm93blN0YWNraW5nKUs9Ty5jb250ZXh0PXtjaGlsZHJlbjpbe25vZGU6SSxjaGlsZHJlbjpbXX1dfSxUPVE7ZWxzZSBpZihKfHxHKVQ9Ty5jaGlsZHJlbj1bXTswPT09RSYmej96LnB1c2goTyk6KGVbRV18fChlW0VdPVtdKSxlW0VdLnB1c2goTykpO0kuekluZGV4LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oVyl7dihLLFcsVCl9KX12YXIgbD17fTt2KGwsdCk7cmV0dXJuIGx9KGspO2Moayk7cmV0dXJuIG59KGQuc3RhY2spLHgpfTt4LlV0aWwuU3VwcG9ydD1mdW5jdGlvbihkLHApe2Z1bmN0aW9uIHEoKXt2YXIgaz1uZXcgSW1hZ2UsYz1wLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLApuPWMuZ2V0Q29udGV4dD09PVE\/ITE6Yy5nZXRDb250ZXh0KCIyZCIpO2lmKCExPT09bilyZXR1cm4hMTtjLndpZHRoPWMuaGVpZ2h0PTEwO2suc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGZvcmVpZ25PYmplY3Qgd2lkdGg9JzEwJyBoZWlnaHQ9JzEwJz48ZGl2IHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyBzdHlsZT0nd2lkdGg6MTA7aGVpZ2h0OjEwOyc+c3VwPC9kaXY+PC9mb3JlaWduT2JqZWN0Pjwvc3ZnPiI7dHJ5e24uZHJhd0ltYWdlKGssMCwwKSxjLnRvRGF0YVVSTCgpfWNhdGNoKHQpe3JldHVybiExfXguVXRpbC5sb2coImh0bWwyY2FudmFzOiBQYXJzZTogU1ZHIHBvd2VyZWQgcmVuZGVyaW5nIGF2YWlsYWJsZSIpO3JldHVybiEwfXJldHVybntyYW5nZUJvdW5kczpmdW5jdGlvbigpe3ZhciBrPSExO2lmKHAuY3JlYXRlUmFuZ2Upe3ZhciBjPQpwLmNyZWF0ZVJhbmdlKCk7aWYoYy5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe3ZhciBuPXAuY3JlYXRlRWxlbWVudCgiYm91bmR0ZXN0Iik7bi5zdHlsZS5oZWlnaHQ9IjEyM3B4IjtuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtwLmJvZHkuYXBwZW5kQ2hpbGQobik7Yy5zZWxlY3ROb2RlKG4pO2M9Yy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtjPWMuaGVpZ2h0OzEyMz09PWMmJihrPSEwKTtwLmJvZHkucmVtb3ZlQ2hpbGQobil9fXJldHVybiBrfSgpLHN2Z1JlbmRlcmluZzpkLnN2Z1JlbmRlcmluZyYmcSgpfX07Ti5odG1sMmNhbnZhcz1mdW5jdGlvbihkLHApe2Q9ZC5sZW5ndGg\/ZDpbZF07dmFyIHEsaz17bG9nZ2luZzohMSxlbGVtZW50czpkLGJhY2tncm91bmQ6IiNmZmYiLHByb3h5Om51bGwsdGltZW91dDowLHVzZUNPUlM6ITEsYWxsb3dUYWludDohMSxzdmdSZW5kZXJpbmc6ITEsaWdub3JlRWxlbWVudHM6IklGUkFNRXxPQkpFQ1R8UEFSQU0iLHVzZU92ZXJmbG93OiEwLGxldHRlclJlbmRlcmluZzohMSwKY2hpbmVzZTohMSxhc3luYzohMSx3aWR0aDpudWxsLGhlaWdodDpudWxsLHRhaW50VGVzdDohMCxyZW5kZXJlcjoiQ2FudmFzIn07az14LlV0aWwuRXh0ZW5kKHAsayk7eC5sb2dnaW5nPWsubG9nZ2luZztrLmNvbXBsZXRlPWZ1bmN0aW9uKGMpeyJmdW5jdGlvbiI9PT10eXBlb2Ygay5vbnByZWxvYWRlZCYmITE9PT1rLm9ucHJlbG9hZGVkKGMpfHx4LlBhcnNlKGMsayxmdW5jdGlvbihuKXtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGsub25wYXJzZWR8fCExIT09ay5vbnBhcnNlZChuKSlpZihxPXguUmVuZGVyZXIobixrKSwiZnVuY3Rpb24iPT09dHlwZW9mIGsub25yZW5kZXJlZClrLm9ucmVuZGVyZWQocSl9KX07Ti5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eC5QcmVsb2FkKGspfSwwKTtyZXR1cm57cmVuZGVyOmZ1bmN0aW9uKGMsbil7cmV0dXJuIHguUmVuZGVyZXIoYyx4LlV0aWwuRXh0ZW5kKG4saykpfSxwYXJzZTpmdW5jdGlvbihjLG4pe3JldHVybiB4LlBhcnNlKGMseC5VdGlsLkV4dGVuZChuLAprKSl9LHByZWxvYWQ6ZnVuY3Rpb24oYyl7cmV0dXJuIHguUHJlbG9hZCh4LlV0aWwuRXh0ZW5kKGMsaykpfSxsb2c6eC5VdGlsLmxvZ319O04uaHRtbDJjYW52YXMubG9nPXguVXRpbC5sb2c7Ti5odG1sMmNhbnZhcy5SZW5kZXJlcj17Q2FudmFzOlF9O3guUmVuZGVyZXIuQ2FudmFzPWZ1bmN0aW9uKGQpe2Z1bmN0aW9uIHAodixsKXt2LmJlZ2luUGF0aCgpO2wuZm9yRWFjaChmdW5jdGlvbihlKXt2W2UubmFtZV0uYXBwbHkodixlLmFyZ3VtZW50cyl9KTt2LmNsb3NlUGF0aCgpfWQ9ZHx8e307dmFyIHE9W10saz1SLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGM9ay5nZXRDb250ZXh0KCIyZCIpLG49eC5VdGlsLHQ9ZC5jYW52YXN8fFIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIGZ1bmN0aW9uKHYsbCxlLEkseil7dmFyIEU9dC5nZXRDb250ZXh0KCIyZCIpLEs9di5zdGFjazt0LndpZHRoPXQuc3R5bGUud2lkdGg9bC53aWR0aHx8Sy5jdHgud2lkdGg7dC5oZWlnaHQ9dC5zdHlsZS5oZWlnaHQ9CmwuaGVpZ2h0fHxLLmN0eC5oZWlnaHQ7Sz1FLmZpbGxTdHlsZTtFLmZpbGxTdHlsZT1uLmlzVHJhbnNwYXJlbnQodi5iYWNrZ3JvdW5kQ29sb3IpJiZsLmJhY2tncm91bmQhPT1RP2wuYmFja2dyb3VuZDp2LmJhY2tncm91bmRDb2xvcjtFLmZpbGxSZWN0KDAsMCx0LndpZHRoLHQuaGVpZ2h0KTtFLmZpbGxTdHlsZT1LO0kuZm9yRWFjaChmdW5jdGlvbihKKXtFLnRleHRCYXNlbGluZT0iYm90dG9tIjtFLnNhdmUoKTtKLnRyYW5zZm9ybS5tYXRyaXgmJihFLnRyYW5zbGF0ZShKLnRyYW5zZm9ybS5vcmlnaW5bMF0sSi50cmFuc2Zvcm0ub3JpZ2luWzFdKSxFLnRyYW5zZm9ybS5hcHBseShFLEoudHJhbnNmb3JtLm1hdHJpeCksRS50cmFuc2xhdGUoLUoudHJhbnNmb3JtLm9yaWdpblswXSwtSi50cmFuc2Zvcm0ub3JpZ2luWzFdKSk7Si5jbGlwJiYoRS5iZWdpblBhdGgoKSxFLnJlY3QoSi5jbGlwLmxlZnQsSi5jbGlwLnRvcCxKLmNsaXAud2lkdGgsSi5jbGlwLmhlaWdodCksRS5jbGlwKCkpOwpKLmN0eC5zdG9yYWdlJiZKLmN0eC5zdG9yYWdlLmZvckVhY2goZnVuY3Rpb24oRyl7dmFyIE89RTtzd2l0Y2goRy50eXBlKXtjYXNlICJ2YXJpYWJsZSI6T1tHLm5hbWVdPUcuYXJndW1lbnRzO2JyZWFrO2Nhc2UgImZ1bmN0aW9uIjpzd2l0Y2goRy5uYW1lKXtjYXNlICJjcmVhdGVQYXR0ZXJuIjppZigwPEcuYXJndW1lbnRzWzBdLndpZHRoJiYwPEcuYXJndW1lbnRzWzBdLmhlaWdodCl0cnl7Ty5maWxsU3R5bGU9Ty5jcmVhdGVQYXR0ZXJuKEcuYXJndW1lbnRzWzBdLCJyZXBlYXQiKX1jYXRjaChXKXtuLmxvZygiaHRtbDJjYW52YXM6IFJlbmRlcmVyOiBFcnJvciBjcmVhdGluZyBwYXR0ZXJuIixXLm1lc3NhZ2UpfWJyZWFrO2Nhc2UgImRyYXdTaGFwZSI6cChPLEcuYXJndW1lbnRzKTticmVhaztjYXNlICJkcmF3SW1hZ2UiOmlmKDA8Ry5hcmd1bWVudHNbOF0mJjA8Ry5hcmd1bWVudHNbN10pe3ZhciBUO2lmKCEoVD0hZC50YWludFRlc3QpJiYoVD1kLnRhaW50VGVzdCkpYTp7aWYoLTE9PT0KcS5pbmRleE9mKEcuYXJndW1lbnRzWzBdLnNyYykpe2MuZHJhd0ltYWdlKEcuYXJndW1lbnRzWzBdLDAsMCk7dHJ5e2MuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpfWNhdGNoKFcpe2s9Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtjPWsuZ2V0Q29udGV4dCgiMmQiKTtUPSExO2JyZWFrIGF9cS5wdXNoKEcuYXJndW1lbnRzWzBdLnNyYyl9VD0hMH1UJiZPLmRyYXdJbWFnZS5hcHBseShPLEcuYXJndW1lbnRzKX1icmVhaztkZWZhdWx0Ok9bRy5uYW1lXS5hcHBseShPLEcuYXJndW1lbnRzKX19fSk7RS5yZXN0b3JlKCl9KTtuLmxvZygiaHRtbDJjYW52YXM6IFJlbmRlcmVyOiBDYW52YXMgcmVuZGVyZXIgZG9uZSAtIHJldHVybmluZyBjYW52YXMgb2JqIik7cmV0dXJuIDE9PT1sLmVsZW1lbnRzLmxlbmd0aCYmIm9iamVjdCI9PT10eXBlb2YgbC5lbGVtZW50c1swXSYmIkJPRFkiIT09bC5lbGVtZW50c1swXS5ub2RlTmFtZT8odj16LlV0aWwuQm91bmRzKGwuZWxlbWVudHNbMF0pLGU9ZS5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSwKZS53aWR0aD1NYXRoLmNlaWwodi53aWR0aCksZS5oZWlnaHQ9TWF0aC5jZWlsKHYuaGVpZ2h0KSxFPWUuZ2V0Q29udGV4dCgiMmQiKSxFLmRyYXdJbWFnZSh0LHYubGVmdCx2LnRvcCx2LndpZHRoLHYuaGVpZ2h0LDAsMCx2LndpZHRoLHYuaGVpZ2h0KSx0PW51bGwsZSk6dH19fSkod2luZG93LGRvY3VtZW50KTsKLyoqIC9qcy9kMmN0Y2svdXByb2ZpbGUuZmluYWwubWluLmpzICoqLwphY3RpdmVVc2VyUHJvZmlsZU1uZz17b25yZWFkeTpudWxsLG9ubm90Zm91bmQ6bnVsbCxkaXNhYmxlZDohMSx1aWQ6bnVsbCxhY3RpdmVTdGVwOjAsc3dmU3RvcmU6ITEscmVnaXN0ZXJlZFBhZ2VWaWV3czpudWxsLHJlZ2lzdGVyZWRFdmVudHM6bnVsbCxzZXNzaW9uaWQ6bnVsbCxyZWdpc3RlcmVkQ2FsbGJhY2tzOm51bGwscmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M6bnVsbCxwYWdlVmlld0NvdW50Om51bGwsX19wcm9wZXJ0aWVzOm51bGwsanF1ZXJ5QWN0aXZlOiEwLGlzRDJDU2l0ZTohMCxfX3Jlc2V0Vjo5LHJlc2V0U2Vjb25kUGFzczohMSxfX291dHB1dERpdk1zZzohMSxfX291dHB1dENvbnNvbGVNc2c6ITEsYWpheE1uZzp7YXN5bmM6ITAsX2xhc3RYOm51bGwseDpmdW5jdGlvbigpe3RyeXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBYTUxIdHRwUmVxdWVzdClyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0O2Zvcih2YXIgYT1bIk1TWE1MMi5YbWxIdHRwLjUuMCIsCgkJCSJNU1hNTDIuWG1sSHR0cC40LjAiLCJNU1hNTDIuWG1sSHR0cC4zLjAiLCJNU1hNTDIuWG1sSHR0cC4yLjAiLCJNaWNyb3NvZnQuWG1sSHR0cCJdLGIsZD0wO2Q8YS5sZW5ndGg7ZCsrKXRyeXtiPW5ldyBBY3RpdmVYT2JqZWN0KGFbZF0pO2JyZWFrfWNhdGNoKGMpe319Y2F0Y2goYyl7fXJldHVybiBifSxfc2VuZDpmdW5jdGlvbihhLGIsZCxjLGUsaCl7dHJ5e3ZhciBmPXRoaXMueCgpO3RoaXMuX2xhc3RYPWY7Zi5vcGVuKGQsYSxlKTt0cnl7Zi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24ocSl7InVuZGVmaW5lZCIhPXR5cGVvZiBoJiZudWxsIT1oJiZoKGYsZi5zdGF0dXNUZXh0LEVycm9yKGYucmVzcG9uc2VUZXh0KSl9KX1jYXRjaChxKXt9Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT1mLnJlYWR5U3RhdGU\/YihmLnJlc3BvbnNlVGV4dCk6InVuZGVmaW5lZCIhPXR5cGVvZiBoJiZudWxsIT1oJiZoKGYsZi5zdGF0dXNUZXh0LEVycm9yKGYucmVzcG9uc2VUZXh0KSl9OwoJCQkiUE9TVCI9PWQmJmYuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7Zi5zZW5kKGMpfWNhdGNoKHEpeyJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLCJ1bmtub3duIixxKX19LGFqYXg6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0cnl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLnR5cGUmJihhLnR5cGU9IkdFVCIpLCJ1bmRlZmluZWQiPT10eXBlb2YgYS5kYXRhJiYoYS5kYXRhPXt9KSx3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuYWpheCkkLmFqYXgoYSkuZG9uZShmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZG9uZSYmYS5kb25lKGMpfSkuZmFpbChmdW5jdGlvbihjLGUsaCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmZhaWwmJmEuZmFpbChjLGUsaCl9KS5hbHdheXMoZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuYWx3YXlzJiZhLmFsd2F5cygpfSkuZG9uZShmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9CgkJdHlwZW9mIGEuc3VjY2VzcyYmYS5zdWNjZXNzKGMpfSkuYWx3YXlzKGZ1bmN0aW9uKGMsZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNvbXBsZXRlJiZhLmNvbXBsZXRlKGIuX2xhc3RYLCJ1bmRlZmluZWQiIT10eXBlb2YgYi5fbGFzdFguc3RhdHVzVGV4dD9iLl9sYXN0WC5zdGF0dXNUZXh0OiIiKX0pO2Vsc2V7dmFyIGQ9Yi5fZ2V0OyJwb3N0Ij09YS50eXBlLnRvTG93ZXJDYXNlKCkmJihkPWIuX3Bvc3QpO2QoYS51cmwsYS5kYXRhLGZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5kb25lJiZhLmRvbmUoYyk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnN1Y2Nlc3MmJmEuc3VjY2VzcyhjKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuY29tcGxldGUmJmEuY29tcGxldGUoKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuYWx3YXlzJiZhLmFsd2F5cygpfSxiLmFzeW5jLGZ1bmN0aW9uKGMsZSxoKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZmFpbCYmYS5mYWlsKGMsZSxoKX0pfX1jYXRjaChjKXtjb25zb2xlJiYKCQljb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgYWNjZXNzaW5nIGFqYXhNbmcuZ2V0OiAlcyIsYy5tZXNzYWdlKX19LF9nZXQ6ZnVuY3Rpb24oYSxiLGQsYyxlKXt2YXIgaD1bXSxmO2ZvcihmIGluIGIpaC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChmKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGJbZl0pKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0hMDthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLl9zZW5kKGErIj8iK2guam9pbigiJiIpLGQsIkdFVCIsbnVsbCxjLGUpfSxfcG9zdDpmdW5jdGlvbihhLGIsZCxjLGUpe3ZhciBoPVtdLGY7Zm9yKGYgaW4gYiloLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGYpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYltmXSkpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPSEwO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuX3NlbmQoYSxkLCJQT1NUIixoLmpvaW4oIiYiKSwKCQkJYyxlKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7dHJ5e2lmKHdpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5nZXRTY3JpcHQpJC5nZXRTY3JpcHQoYSxiKTtlbHNle3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO2QuYXN5bmM9MTtkLm9ubG9hZD1kLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihlLGgpe2lmKGh8fCFkLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoZC5yZWFkeVN0YXRlKSlkLm9ubG9hZD1kLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGQ9dm9pZCAwLCFoJiZiJiZzZXRUaW1lb3V0KGIsMCl9O2Quc3JjPWE7Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkLGMpfX1jYXRjaChlKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmV0cmlldmluZyBqcyBzY3JpcHQuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbjogJXMiLAoJCQllLm1lc3NhZ2UpfX19LGNvb2tpZU1uZzp7cmVhZENvb2tpZVZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7dHJ5e2lmKHdpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWUpYj0kLmNvb2tpZShhKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPW51bGwpO2Vsc2V7YSs9Ij0iO2Zvcih2YXIgZD1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxjPTA7YzxkLmxlbmd0aDtjKyspe2Zvcih2YXIgZT1kW2NdOyIgIj09ZS5jaGFyQXQoMCk7KWU9ZS5zdWJzdHJpbmcoMSxlLmxlbmd0aCk7aWYoMD09ZS5pbmRleE9mKGEpKXtiPWUuc3Vic3RyaW5nKGEubGVuZ3RoLGUubGVuZ3RoKTticmVha319fX1jYXRjaChoKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmVhZGluZyBjb29raWU6ICVzIixoLm1lc3NhZ2UpfXJldHVybiBifSxzZXRDb29raWVWYWx1ZTpmdW5jdGlvbihhLGIsZCxjKXt0cnl7aWYoITAhPT10aGlzLmRpc2FibGVkKXtpZigidW5kZWZpbmVkIj09CgkJCXR5cGVvZiBkfHxudWxsPT1kKWQ9Ii8iO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPTA7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1udWxsKTt2YXIgZT1uZXcgRGF0ZTtlLnNldFRpbWUoZS5nZXRUaW1lKCkrODY0RTUqYyk7d2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZT8kLmNvb2tpZShhLGIse3BhdGg6ZCxzZWN1cmU6ITAsZXhwaXJlczowPT1jPyIiOmV9KTooZXhwaXJlcz0wIT1jPyI7IGV4cGlyZXM9IitlLnRvR01UU3RyaW5nKCk6IiIsZG9jdW1lbnQuY29va2llPWErIj0iK2IrZXhwaXJlcysiOyBzZWN1cmU7IHBhdGg9IitkLGImJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5sb2dDb29raWUoYSxiLGMsZCkpfX1jYXRjaChoKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3Igc2V0dGluZyBjb29raWU6ICVzIixoLm1lc3NhZ2UpfX0sZGVsZXRlQ29va2llOmZ1bmN0aW9uKGEpe3RyeXt3aW5kb3cualF1ZXJ5JiYKCQkidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llPygkLmNvb2tpZShhLG51bGwpLCQuY29va2llKGEsbnVsbCx7cGF0aDoiLyJ9KSk6dGhpcy5zZXRDb29raWVWYWx1ZShhLG51bGwsLTEpfWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBkZWxldGluZyBjb29raWU6ICVzIixiLm1lc3NhZ2UpfX0sbG9nQ29va2llOmZ1bmN0aW9uKGEsYixkLGMsZSl7InVuZGVmaW5lZCI9PT10eXBlb2YgZSYmKGU9NSk7InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj9lJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmxvZ0Nvb2tpZShhLGIsZCxjLGUtMSl9LDEwMCk6d2luZG93LkNvb2tpZUxvZ2dlci5sb2coYSxiLGQsYyl9fSxfX3VzZVByb3h5OmZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLmlzRDJDU2l0ZT8hMTohMH0sX2lzQm90OmZ1bmN0aW9uKCl7cmV0dXJuL2JvdHxnb29nbGVib3R8Y3Jhd2xlcnxzcGlkZXJ8cm9ib3R8Y3Jhd2xpbmcvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPwoJCSEwOiExfSxnZXRTdGF0c1VSSTpmdW5jdGlvbigpe3ZhciBhPSIvcHJveHlfc2QyYy8iO3RyeXshMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZSYmKGE9Imh0dHA6Ly9zdGF0cy5kMmNtZWRpYS5jYS8iLCJodHRwczoiPT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wmJihhPSJodHRwczovL3NzbHN0YXRzLmQyY21lZGlhLmNhLyIpKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIGdldFN0YXRzVVJJOiAlcyIsYi5tZXNzYWdlKSxhPSJodHRwczovL3NzbHN0YXRzLmQyY21lZGlhLmNhLyJ9cmV0dXJuIGF9LGdldEZQVVJJOmZ1bmN0aW9uKCl7aWYoITA9PT10aGlzLmRpc2FibGVkKXJldHVybiIiO3ZhciBhPSIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMiO3RyeXthPSExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlP251bGwhPXdpbmRvdy5sb2NhdGlvbiYmInVuZGVmaW5lZCIhPQoJdHlwZW9mIHdpbmRvdy5sb2NhdGlvbi5ocmVmJiYtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY3JtMi5kMmNtZWRpYS5jYSIpPyJodHRwczovL2NybTIuZDJjbWVkaWEuY2EvYXNzZXRzL2pzL2QyY3Rjay9mcHJpbnQudjIuanMiOiJodHRwczovL3d3dy5hdXRvYXViYWluZS5jb20vanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMiOiEwPT09dGhpcy5fX291dHB1dERpdk1zZz8iL2pzL2QyY3Rjay9mcHJpbnQudjIuanMiOiIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMifWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gZ2V0RlBVUkk6ICVzIixiLm1lc3NhZ2UpLGE9Ii9qcy9kMmN0Y2svZnByaW50LnYyLm1pbi5qcyJ9cmV0dXJuIGF9LGdldFNlc3Npb25JRDpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkOwoJCXZhciBhPXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwwPT1hKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9d2luZG93LmFjdGl2ZVNlc3Npb25JRCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ7YT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1c2lkIik7cmV0dXJuIG51bGwhPWE\/KGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1hLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCk6MH0scmVnaXN0ZXJDYWxsYmFjazpmdW5jdGlvbihhKXtpZighMD09PXRoaXMuZGlzYWJsZWQpe2lmKG51bGwhPWEpdHJ5e2EoKX1jYXRjaChiKXt9cmV0dXJuITF9bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3M9W10pOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYKCW51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ\/YSgpOmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MucHVzaChhKX0scmVnaXN0ZXJTZXNzaW9uQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7aWYoITA9PT10aGlzLmRpc2FibGVkKXtpZihudWxsIT1hKXRyeXthKCl9Y2F0Y2goYil7fXJldHVybiExfW51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M9W10pOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQmJjAhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD9hKCk6YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MucHVzaChhKX0sCglfX25vdGlmeVVVSUQ6ZnVuY3Rpb24oKXt0cnl7aWYoITA9PT10aGlzLmRpc2FibGVkKXt0cnl7YigpfWNhdGNoKGQpe31yZXR1cm4hMX1pZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzKXtmb3IodmFyIGE9MDthPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MubGVuZ3RoO2ErKyl7dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrc1thXTtiKCl9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcz1udWxsfX1jYXRjaChkKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIF9fbm90aWZ5VVVJRDogJXMiLGQubWVzc2FnZSl9fSxfX25vdGlmeVNlc3Npb25JRDpmdW5jdGlvbigpe2lmKCEwPT09dGhpcy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKTsKCQlpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fCIwIj09YXx8MD09YSl2YXIgYj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3RyeXtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcz9jbGVhckludGVydmFsKGIpOjAhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSYmKGNsZWFySW50ZXJ2YWwoYiksYWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKSl9Y2F0Y2goZCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJOb3RpZnkgc2Vzc2lvbmlkIGZhaWxlZCB3aXRoOiAlcyIsZC5tZXNzYWdlKX19LDUwMCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MpdHJ5e2ZvcihhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcy5sZW5ndGg7YSsrKSgwLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzW2FdKSgpOwoJCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcz1udWxsfWNhdGNoKGQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gX19ub3RpZnlTZXNzaW9uSUQ6ICVzIixkLm1lc3NhZ2UpfX0sbG9nTXNnOmZ1bmN0aW9uKGEpe3RyeXtpZighMD09PXRoaXMuZGlzYWJsZWQpcmV0dXJuITE7ITA9PT10aGlzLl9fb3V0cHV0RGl2TXNnJiYkKGRvY3VtZW50LmJvZHkpLmFwcGVuZCgiPGRpdj4iK2ErIjwvZGl2PiIpOyEwPT09dGhpcy5fX291dHB1dENvbnNvbGVNc2cmJmNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZyhhKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIG1lc3NhZ2UgbG9nZ2luZy4gSG93IGlyb25pYzogJXMiLGIubWVzc2FnZSl9fSxjaGVja1NjaGVkdWxlZFJlc2V0OmZ1bmN0aW9uKCl7dmFyIGE9CgkJITE7dHJ5e2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF9yc3QiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWIpYj0wO2IhPXRoaXMuX19yZXNldFYmJihhPSEwLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF9yc3QiLHRoaXMuX19yZXNldFYsIi8iLDRFMykpfWNhdGNoKGQpe3RoaXMubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGluIHNjaGVkdWxlZCByZXNldCBjaGVjazogIitkLm1lc3NhZ2UpfXJldHVybiBhfSxnZXRBY3RpdmVQcm9maWxlaWQ6ZnVuY3Rpb24oKXtpZihudWxsIT10aGlzLnVpZClyZXR1cm4gbnVsbD09d2luZG93LmFjdGl2ZVByb2ZpbGVJRCYmKHdpbmRvdy5hY3RpdmVQcm9maWxlSUQ9dGhpcy51aWQpLHRoaXMudWlkO2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuIG51bGw7CgkJdmFyIGE9dGhpcy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIik7aWYobnVsbCE9YSYmMDxhLmxlbmd0aClyZXR1cm4gdGhpcy5hY3RpdmVQcm9maWxlSUQ9dGhpcy51aWQ9YSx0aGlzLl9fZmlyZVJlYWR5RXZlbnQoKSx0aGlzLnVpZDthPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfdmxkMyIpO2lmKG51bGwhPWEmJjAhPWEubGVuZ3RoKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRVc2VyRGF0YUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRMb2NhbFN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7CgkJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEdsb2JhbFN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkU2Vzc2lvblN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRnJvbUxvY2FsREIoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRkxWQ29va2llKCl9ZWxzZSBzZXRUaW1lb3V0KCJhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgzKSIsCgkJCTUwMCk7cmV0dXJuIG51bGx9LGVuc3VyZVZhbGlkSUQ6ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nfHwic3RyaW5nIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmMD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkLmxlbmd0aClhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9bnVsbH0sc2V0QWN0aXZlUHJvZmlsZWlkOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfHwhMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldERCQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0UE5HQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RVRhZ0Nvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFVzZXJEYXRhQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0TG9jYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0R2xvYmFsU3RvcmFnZUNvb2tpZSgpOwoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFNlc3Npb25TdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RkxWQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlVVUlEKCl9LF9fY29udGludWVMb2FkOmZ1bmN0aW9uKGEpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2ZpcmVSZWFkeUV2ZW50KCk7ZWxzZSBzd2l0Y2goYSl7Y2FzZSAxOmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEVUYWdDb29raWUoKTticmVhaztjYXNlIDI6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkUE5HQ29va2llKCk7YnJlYWs7ZGVmYXVsdDphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2ZpcmVOb3RGb3VuZCgpfX0sX19maXJlUmVhZHlFdmVudDpmdW5jdGlvbigpe2lmKG51bGwhPQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ucmVhZHkpYWN0aXZlVXNlclByb2ZpbGVNbmcub25yZWFkeShhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfSxfX2ZpcmVOb3RGb3VuZDpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ubm90Zm91bmQpYWN0aXZlVXNlclByb2ZpbGVNbmcub25ub3Rmb3VuZCgpfSxzZXRGTFZDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zJiYib2JqZWN0Ij09dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXXx8d2luZG93LkFjdGl2ZVhPYmplY3QmJjAhPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpKXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmUmJgoJCShhY3RpdmVVc2VyUHJvZmlsZU1uZy5zd2ZTdG9yZT0hMCwidW5kZWZpbmVkIj09dHlwZW9mIFN3ZlN0b3JlKSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5nZXRTY3JpcHQoIi9qcy9zd2ZzdG9yZS5qcyIsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RkxWQ29va2llKTtyZXR1cm59dHJ5e3ZhciBhPW5ldyBTd2ZTdG9yZSh7bmFtZXNwYWNlOiJ1cHJvZmlsZSIsc3dmX3VybDoiL2ZsYXNoL3N0b3JhZ2Uuc3dmIixvbnJlYWR5OmZ1bmN0aW9uKCl7YS5zZXQoInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKX0sb25lcnJvcjpmdW5jdGlvbigpe319KX1jYXRjaChiKXsidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJm51bGwhPWNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHNldCBGTFYgQ29va2llLiBFcnJvcjogIitiLm1lc3NhZ2UpfX19Y2F0Y2goYil7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZudWxsIT1jb25zb2xlJiZjb25zb2xlLmxvZyYmCgljb25zb2xlLmxvZygiTUFJTjogVW5hYmxlIHRvIHNldCBGTFYgQ29va2llLiBFcnJvcjogIitiLm1lc3NhZ2UpfX19LF9fbG9hZEZMVkNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zJiYib2JqZWN0Ij09dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXXx8d2luZG93LkFjdGl2ZVhPYmplY3QmJjAhPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpKXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmUmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5zd2ZTdG9yZT0hMCwidW5kZWZpbmVkIj09dHlwZW9mIFN3ZlN0b3JlKSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5nZXRTY3JpcHQoIi9qcy9zd2ZzdG9yZS5qcyIsCgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRkxWQ29va2llKTtyZXR1cm59dHJ5e3ZhciBhPW5ldyBTd2ZTdG9yZSh7bmFtZXNwYWNlOiJ1cHJvZmlsZSIsc3dmX3VybDoiL2ZsYXNoL3N0b3JhZ2Uuc3dmIixvbnJlYWR5OmZ1bmN0aW9uKCl7dmFyIGI9YS5nZXQoInVpZCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgYiYmbnVsbCE9YiYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1iKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX0sb25lcnJvcjpmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDEpfX0pfWNhdGNoKGIpe319ZWxzZSBhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX19LF9fbG9hZEZyb21Mb2NhbERCOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cub3BlbkRhdGFiYXNlJiYKCWRhdGFiYXNlLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKGEpe2EuZXhlY3V0ZVNxbCgiU0VMRUNUIHZhbHVlIEZST00gdXByb2ZpbGUgV0hFUkUgbmFtZT0\/IixbInVpZCJdLGZ1bmN0aW9uKGIsZCl7MTw9ZC5yb3dzLmxlbmd0aCYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1kLnJvd3MuaXRlbSgwKS52YWx1ZSl9LGZ1bmN0aW9uKGIsZCl7fSl9KX1jYXRjaChhKXt9fX0sc2V0REJDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZih3aW5kb3cub3BlbkRhdGFiYXNlKXt2YXIgYT13aW5kb3cub3BlbkRhdGFiYXNlKCJzcWxpdGVfdXByb2ZpbGUiLCIiLCJ1cHJvZmlsZSIsMTA0ODU3Nik7InVuZGVmaW5lZCIhPXR5cGVvZiB2YWx1ZSYmYS50cmFuc2FjdGlvbihmdW5jdGlvbihiKXtiLmV4ZWN1dGVTcWwoIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHVwcm9maWxlKGlkIElOVEVHRVIgTk9UIE5VTEwgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCwgdWlkIFRFWFQgTk9UIE5VTEwsIHZhbHVlIFRFWFQgTk9UIE5VTEwsIFVOSVFVRSAodWlkKSkiLAoJCVtdLGZ1bmN0aW9uKGQsYyl7fSxmdW5jdGlvbihkLGMpe30pO2IuZXhlY3V0ZVNxbCgiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyB1cHJvZmlsZSh1aWQsIHZhbHVlKSBWQUxVRVMoPywgPykiLFsidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWRdLGZ1bmN0aW9uKGQsYyl7fSxmdW5jdGlvbihkLGMpe30pfSl9fWNhdGNoKGIpe319fSxfX2xvYWRQTkdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e2lmKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Euc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjthLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7YS53aWR0aD0yMDA7YS5oZWlnaHQ9MTt2YXIgYj1hLmdldENvbnRleHQoIjJkIiksZD1uZXcgSW1hZ2U7CgkJZC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Quc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtkLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTEucG5nIjtkLm9uZXJyb3I9ZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgzKX07ZC5vbmxvYWQ9ZnVuY3Rpb24oKXt0cnl7Yi5kcmF3SW1hZ2UoZCwwLDApO2Zvcih2YXIgYz1iLmdldEltYWdlRGF0YSgwLDAsMjAwLDEpLmRhdGEsZT0iIixoPTAsZj1jLmxlbmd0aDtoPGYmJjAhPWNbaF07aCs9NCl7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2hdKTtpZigwPT1jW2grMV0pYnJlYWs7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2grMV0pO2lmKDA9PWNbaCsyXSlicmVhaztlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGNbaCsyXSl9MDxlLmxlbmd0aCYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1lKX1jYXRjaChxKXt9YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMyl9fX1jYXRjaChjKXt9fX0sCglzZXRQTkdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBhPW5ldyBJbWFnZTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Euc3JjPSIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMS5wbmc\/dmFsPSIrYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfX0sX19sb2FkRVRhZ0Nvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0aGlzLmFqYXhNbmcuYWpheCh7dXJsOiIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMi5wbmciLHR5cGU6IkdFVCIsc3VjY2VzczpmdW5jdGlvbihhKXthY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9YX0sCgkJY29tcGxldGU6ZnVuY3Rpb24oYSxiKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgyKX19KX19LHNldEVUYWdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBhPW5ldyBJbWFnZTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Euc3JjPSIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMi5wbmc\/dmFsPSIrYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfX0sX19sb2FkVXNlckRhdGFDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3ZhciBhPXRoaXMuY3JlYXRlRWxlbSgiZGl2IiwidXNlcmRhdGFfZWwiLAoJCTEpO2Euc3R5bGUuYmVoYXZpb3I9InVybCgjZGVmYXVsdCN1c2VyRGF0YSkiO2EubG9hZCgidWlkIik7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWEuZ2V0QXR0cmlidXRlKCJ1aWQiKX1jYXRjaChiKXt9fX0sc2V0VXNlckRhdGFDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt2YXIgYT10aGlzLmNyZWF0ZUVsZW0oImRpdiIsInVzZXJkYXRhX2VsIiwxKTthLnN0eWxlLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjdXNlckRhdGEpIjthLnNldEF0dHJpYnV0ZSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpO2Euc2F2ZSgidWlkIil9Y2F0Y2goYil7fX19LF9fbG9hZExvY2FsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidWlkIikpfWNhdGNoKGEpe319fSxzZXRMb2NhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpfWNhdGNoKGEpe319fSxfX2xvYWRHbG9iYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZih3aW5kb3cuZ2xvYmFsU3RvcmFnZSlyZXR1cm4gdGhpcy5nZXRIb3N0KCksCgkJZXZhbCgiYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkID0gZ2xvYmFsU3RvcmFnZVtob3N0XS51aWQiKX1jYXRjaChhKXt9fX0sc2V0R2xvYmFsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5nbG9iYWxTdG9yYWdlJiYodGhpcy5nZXRIb3N0KCksZXZhbCgiZ2xvYmFsU3RvcmFnZVtob3N0XS51aWQgPSBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQiKSl9Y2F0Y2goYSl7fX19LF9fbG9hZFNlc3Npb25TdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9CgkJd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oInVpZCIpKX1jYXRjaChhKXt9fX0sc2V0U2Vzc2lvblN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl9Y2F0Y2goYSl7fX19LHJlZ2lzdGVyUGFnZVZpZXc6ZnVuY3Rpb24oKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiEwO251bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3MmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzPVtdKTtmb3IodmFyIGE9MDthPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3MubGVuZ3RoO2ErKylpZih3aW5kb3cubG9jYXRpb24uaHJlZj09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3c1thXSlyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzLnB1c2god2luZG93LmxvY2F0aW9uLmhyZWYpO3JldHVybiEwfSxyZWdpc3RlclBhZ2VWaWV3RXZlbnQ6ZnVuY3Rpb24oYSxiLGQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITA7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkfHxudWxsPT1kKWQ9IiI7YT1hKyJ8fHwiK2IrInx8fCIrZDtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cz1bXSk7Zm9yKGI9MDtiPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHMubGVuZ3RoO2IrKylpZihhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzW2JdKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHMucHVzaChhKTsKCQlyZXR1cm4hMH0sbG9nUGFnZVZpZXdFdmVudDpmdW5jdGlvbihhLGIsZCl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXdFdmVudChhLGIpKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGR8fG51bGw9PWQpZD0iIjtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWR8fDA9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclNlc3Npb25DYWxsYmFjayhmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSxiLGQpfSk7ZWxzZXt2YXIgYz0wO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93Lmxhc3RWaWV3SUQpe3ZhciBlPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV2aWV3Iik7CgkJbnVsbCE9ZSYmKGM9ZSl9ZWxzZSBjPXdpbmRvdy5sYXN0UGFnZVZpZXdJRDsidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWN8fDA9PWM\/Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gaWRlbnRpZnkgbGFzdCB2aWV3IGlkIik6KGU9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKSxjPXtzaWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCksYWN0aW9uOiJldmVudCIsdmlld2lkOmMsZXZlbnQ6YSxlY2F0ZWdvcnk6YixhZGRlZEluZm86InVuZGVmaW5lZCIhPXR5cGVvZiBkP2Q6IiJ9LGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmUrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IlBPU1QiLGRhdGE6Y30pKX19fX0sbG9nUGFnZVZpZXdFeDpmdW5jdGlvbigpe3RyeXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXcoKSl7aWYoITA9PT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0VXJsVmFycyYmKGE9Z2V0VXJsVmFycygpKTtnZXRDdXN0b21WUkI9ZnVuY3Rpb24oayx3KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGN1c3RvbV92YXJpYWJsZXMmJm51bGwhPWN1c3RvbV92YXJpYWJsZXMpZm9yKHZhciB1IGluIGN1c3RvbV92YXJpYWJsZXMpe2lmKHUubmFtZT09aylyZXR1cm4gdS52YWx1ZX1lbHNlIHJldHVybiB3fTtnZXRDS1ZhbHVlPWZ1bmN0aW9uKGssdyl7dmFyIHU9Z2V0Q3VzdG9tVlJCKGssbnVsbCk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB1JiZudWxsIT11KXJldHVybiB1O3U9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZShrKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHV8fG51bGw9PXU\/bnVsbD09YXx8InVuZGVmaW5lZCI9PXR5cGVvZiBhW2tdPyJ1bmRlZmluZWQiPT10eXBlb2Ygdz8KCQkiIjp3OmFba106dX07Z2V0VVJMVmFsdWU9ZnVuY3Rpb24oayx3KXtrPWsucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtrPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2srIj0oW14mI10qKSIpKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtrPW51bGw9PWs\/bnVsbDprWzFdO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Yga3x8bnVsbD09a3x8MD09ay50b1N0cmluZygpLmxlbmd0aD93Omt9O3ZhciBiPSIiLGQ9MCxjPSJGUkVOQ0giLGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGg9ZnVuY3Rpb24oayl7dmFyIHc9e21ha2U6IiIsbW9kZWw6IiIseWVhcjoiIixwcmljZTowLHNpdGVpZDowLGRlYWxlcmlkOjAsbGFuZ3VhZ2U6IkZSRU5DSCJ9O2lmKCFrKXJldHVybiB3O2s9ay5zcGxpdCgvWzsmXS8pO2Zvcih2YXIgdT0wO3U8ay5sZW5ndGg7dSsrKXt2YXIgQj1rW3VdLnNwbGl0KCI9Iik7aWYoQiYmMj09Qi5sZW5ndGgpe3ZhciBFPQoJCXVuZXNjYXBlKEJbMF0pO0I9dW5lc2NhcGUoQlsxXSk7Qj1CLnJlcGxhY2UoL1wrL2csIiAiKTt3W0VdPUJ9fXJldHVybiB3fTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGUmJm51bGwhPWUpZm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBxPWVbZl07aWYoLTEhPXEuc3JjLmluZGV4T2YoIi91cGxpZ2h0LmpzPyIpKXt2YXIgcD1xLnNyYy5yZXBsYWNlKC9eW15cP10rXD8\/LywiIikseT1oKHApO3ZhciBsPXkubWFrZTt2YXIgQz15Lm1vZGVsO2I9eS55ZWFyO3ZhciBBPXkuc2l0ZWlkO3ZhciB6PXkuZGVhbGVyaWQ7ZD15LnByaWNlO2M9eS5sYW5ndWFnZTticmVha319dmFyIG09YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCk7ZT0wO2lmKCJ1bmRlZmluZWQiPT1tfHwwPT1tKXttPTA7dmFyIHI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZF90bXAiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIHJ8fG51bGw9PXIpe3ZhciB4PQoJCW5ldyBEYXRlO3guc2V0VGltZSh4LmdldFRpbWUoKSs3MkU1KTt2YXIgZz0iOyBleHBpcmVzPSIreC50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT0idXNpZF90bXA9MSIrZysiOyBwYXRoPS8ifWVsc2UgZT0hMH12YXIgbj13aW5kb3cubG9jYXRpb24uaHJlZjtpZigtMTxuLmluZGV4T2YoInN0ZXA9cmVzdW1lIikpe3ZhciB0PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInNlc3NpZCIpO24rPSImc2Vzc2lkPSIrKCJ1bmRlZmluZWQiIT10eXBlb2YgdHx8bnVsbCE9dD90OiJOVUxMIil9dmFyIHY9e3NpZDptLHV1aWQ6d2luZG93LmFjdGl2ZVByb2ZpbGVJRCxzaXRlaWQ6QSxkZWFsZXJpZDp6LHV0bVNvdXJjZTpnZXRVUkxWYWx1ZSgidXRtX3NvdXJjZSIsIiIpLHV0bUNhbXBhaWduOmdldFVSTFZhbHVlKCJ1dG1fY2FtcGFpZ24iLCJvcmdhbmljIiksdXRtS2V5d29yZDpnZXRDS1ZhbHVlKCJ1dG1fa2V5d29yZCIpLHV0bUxhbmRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2xhbmRpbmciKSwKCQl1dG1Tb3VyY2VSZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIiksdXRtQ2FtcGFpZ25SZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSxtYWtlOmwsbW9kZWw6Qyx5ZWFyOmlzTmFOKGIpPyhuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTpiLGxhbmd1YWdlOmMscGFnZToidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQYWdlPyIiOndpbmRvdy5hY3RpdmVQYWdlLHByaWNlOmQsc2xvb2t1cDplLGhyZWY6bn0sRD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpO3Y9SlNPTi5zdHJpbmdpZnkodik7dj12LnJlcGxhY2VBbGwoIi8iLCJcXC8iKTt0aGlzLmFqYXhNbmcuYWpheCh7dXJsOkQrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLGRhdGE6dixkb25lOmZ1bmN0aW9uKGspe3RyeXtpZigic3RyaW5nIj09dHlwZW9mIGsmJihrPUpTT04ucGFyc2UoaykpLCJ1bmRlZmluZWQiIT10eXBlb2YgayYmCgkJbnVsbCE9ayYmKGsuY29uc3RydWN0b3I9PVtdLmNvbnN0cnVjdG9yfHxrLmNvbnN0cnVjdG9yPT17fS5jb25zdHJ1Y3Rvcikpe209ay5zZXNzaW9uaWQ7bGFzdFZpZXdJRD1rLnZpZXdpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fbG9hZFByb3BlcnRpZXMoay5wcm9wZXJ0aWVzKTt3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPW07d2luZG93Lmxhc3RQYWdlVmlld0lEPWxhc3RWaWV3SUQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPW07dmFyIHc9bmV3IERhdGU7dy5zZXRUaW1lKHcuZ2V0VGltZSgpKzcyRTUpO3ZhciB1PSI7IGV4cGlyZXM9Iit3LnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPSJ1c2lkPSIrbSt1KyI7IHBhdGg9LyI7ZG9jdW1lbnQuY29va2llPSJ1dmlldz0iK2xhc3RWaWV3SUQrdSsiOyBwYXRoPS8iO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9kZWxldGVDb29raWUoInVzaWRfdG1wIik7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKX19Y2F0Y2goQil7fXRyeXtudWxsIT0KCQlzaXRlV2Vic29ja2V0TGlzdGVuZXIuc2l0ZWlkJiZzaXRlV2Vic29ja2V0TGlzdGVuZXIuY29ubmVjdCgpfWNhdGNoKEIpe319fSl9fWNhdGNoKGspe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHN0YXQgcGFnZSBkdWUgdG8gZXJyb3I6ICIray5tZXNzYWdlKX19LGxvZ1BhZ2VWaWV3OmZ1bmN0aW9uKCl7dHJ5e2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJQYWdlVmlldygpKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKCExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlKXJldHVybiB0aGlzLmxvZ1BhZ2VWaWV3RXgoKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhJiZudWxsIT1hKWZvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWlmKC0xIT0KCQlhW2JdLnNyYy5pbmRleE9mKCIvdXBsaWdodC5qcz8iKSlyZXR1cm4gdGhpcy5sb2dQYWdlVmlld0V4KCk7dmFyIGQ9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGdldFVybFZhcnMmJihkPWdldFVybFZhcnMoKSk7Z2V0Q3VzdG9tVlJCPWZ1bmN0aW9uKGcsbil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21fdmFyaWFibGVzJiZudWxsIT1jdXN0b21fdmFyaWFibGVzKWZvcih2YXIgdCBpbiBjdXN0b21fdmFyaWFibGVzKXtpZih0Lm5hbWU9PWcpcmV0dXJuIHQudmFsdWV9ZWxzZSByZXR1cm4gbn07Z2V0Q0tWYWx1ZT1mdW5jdGlvbihnLG4pe3ZhciB0PW51bGw7dHJ5e3ZhciB2PWdldEN1c3RvbVZSQihnLG51bGwpOyJ1bmRlZmluZWQiIT10eXBlb2YgdiYmbnVsbCE9diYmKHQ9dik7aWYobnVsbD09dCYmKHQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZShnKSxudWxsPT10KSl7aWYobnVsbD09ZHx8InVuZGVmaW5lZCI9PXR5cGVvZiBkW2ddKXJldHVybiJ1bmRlZmluZWQiPT0KCXR5cGVvZiBuPyIiOm47dD1kW2ddfX1jYXRjaChEKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmV0cmlldmluZyBja1ZhbHVlIC0tICVzIixELm1lc3NhZ2UpfXJldHVybiB0fTtnZXRVUkxWYWx1ZT1mdW5jdGlvbihnLG4pe2c9Zy5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2c9KG5ldyBSZWdFeHAoIltcXD8mXSIrZysiPShbXiYjXSopIikpLmV4ZWMod2luZG93LmxvY2F0aW9uLmhyZWYpO2c9bnVsbD09Zz9udWxsOmdbMV07cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBnfHxudWxsPT1nfHwwPT1nLnRvU3RyaW5nKCkubGVuZ3RoP246Z307YT1mdW5jdGlvbigpe2lmKCExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlKXJldHVybltdO3ZhciBnPVtdO3RyeXt2YXIgbj1bXSx0PWZ1bmN0aW9uKGssdyl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjIitrKS5hdHRyKCJpZCIpJiYKCShrPSQoIiMiK2spLnZhbCgpLCJzdHJpbmciPT10eXBlb2YgayYmMDxrLmxlbmd0aCYmLTE9PWsuaW5kZXhPZigiIyMiKSk\/azp3fTtuLnB1c2goInBvcHVwIik7bi5wdXNoKCJwaG9uZSIpO24ucHVzaCgibGFzdHZpZXdlZCIpO24ucHVzaCgiZXhwcmVzc2NhciIpO2Zvcih2YXIgdj0wO3Y8bi5sZW5ndGg7disrKXt2YXIgRD10KG5bdl0rIm1ha2UiLG51bGwpO2lmKG51bGwhPUQpe2cucHVzaChEKTtnLnB1c2godChuW3ZdKyJtb2RlbCIsbnVsbCkpO2cucHVzaCh0KG5bdl0rInllYXIiLG51bGwpKTticmVha319fWNhdGNoKGspe2c9W10sZy5wdXNoKCIiKSxnLnB1c2goIiIpLGcucHVzaCgiIil9MD09Zy5sZW5ndGgmJmcucHVzaCgiIik7MT09Zy5sZW5ndGgmJmcucHVzaCgiIik7Mj09Zy5sZW5ndGgmJmcucHVzaCgiIik7cmV0dXJuIGd9O3ZhciBjPWI9IiIsZT0iIjt0cnl7dmFyIGg9YSgpO2I9MDxoLmxlbmd0aD9oWzBdOmI7Yz0xPGgubGVuZ3RoP2hbMV06YztlPTI8aC5sZW5ndGg\/CgkJaFsyXTplfWNhdGNoKGcpe2U9Yz1iPSIifXRyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaENyaXRlcmlhJiZudWxsIT1zZWFyY2hDcml0ZXJpYSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1ifHwwPT1iLmxlbmd0aCliPS0xPT1zZWFyY2hDcml0ZXJpYS5tYWtlPyIiOnNlYXJjaENyaXRlcmlhLm1ha2U7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jfHwwPT1jLmxlbmd0aCljPS0xPT1zZWFyY2hDcml0ZXJpYS5tb2RlbD8iIjpzZWFyY2hDcml0ZXJpYS5tb2RlbDtpZigidW5kZWZpbmVkIj09dHlwZW9mIGV8fG51bGw9PWV8fDA9PWUubGVuZ3RoKWU9LTE9PXNlYXJjaENyaXRlcmlhLnllYXI\/IiI6c2VhcmNoQ3JpdGVyaWEueWVhcn1pZihudWxsPT1ifHwwPT1iLmxlbmd0aCkidW5kZWZpbmVkIiE9dHlwZW9mIG1ha2UmJm51bGwhPW1ha2UmJjA8bWFrZS5sZW5ndGgmJiIwIiE9bWFrZT9iPW1ha2U6KGI9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLCJ1bmRlZmluZWQiPT0KCXR5cGVvZiBiJiYoYj0kKCIjYWN0aXZlTWFrZSIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPSQoIiNjYXJNYWtlIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9JCgnaW5wdXRbbmFtZT0ibWFrZSJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9Z2V0Q0tWYWx1ZSgibWFrZSIsIiIpKSk7aWYobnVsbD09Y3x8MD09Yy5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbCYmbnVsbCE9bW9kZWwmJjA8bW9kZWwubGVuZ3RoJiYiMCIhPW1vZGVsP2M9bW9kZWw6KGM9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoIiNhY3RpdmVNb2RlbCIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoIiNjYXJNb2RlbCIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoJ2lucHV0W25hbWU9Im1vZGVsIl0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz1nZXRDS1ZhbHVlKCJtb2RlbCIsCgkJIiIpKSk7aWYobnVsbD09ZXx8MD09ZS5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiB5ZWFyJiZudWxsIT15ZWFyJiYhaXNOYU4oeWVhcikmJjA8eWVhci5sZW5ndGgmJiIwIiE9eWVhcj9lPXllYXI6KGU9JCgiI3BvcHVweWVhciIpLnZhbCgpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgiI2FjdGl2ZVllYXIiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCIjY2FyWWVhciIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoIiN5ZWFyIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgnaW5wdXRbbmFtZT0ieW1heFRleHQiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoJ2lucHV0W25hbWU9InltaW5UZXh0Il0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT1nZXRDS1ZhbHVlKCJ5ZWFyIiwobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpKSl9Y2F0Y2goZyl7Y29uc29sZSYmY29uc29sZS5sb2cmJgoJY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgaWRlbnRpZnlpbmcgbWFrZS1tb2RlbC15ZWFyOiAiK2cubWVzc2FnZSksbnVsbD09YiYmKGI9IiIpLG51bGw9PWMmJihjPSIiKSxudWxsPT1lJiYoZT0iIil9dmFyIGY9MDtpZighMSE9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSl7aWYoIlVTRURDQVJTIj09d2luZG93LmFjdGl2ZVBhZ2Upe3ZhciBxPTA7JCgiZGl2LmJveDE3MCBkaXYubWFpbl9waWNib3ggZGl2LmJveDJfZGV0YWlsc19taWQgZGl2LmJveDJfZGV0YWlsc190ZXh0IHNwYW4iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS50ZXh0KCk7LTEhPWcuaW5kZXhPZigiJCIpJiYocSsrLGYrPXBhcnNlSW50KGcucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpfSk7Zj0wPHE\/Zi9xOjA7aXNOYU4oZikmJihmPTApfTAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY3VycmVudENhclByaWNlIikuYXR0cigiaWQiKXx8CgkoZj1wYXJzZUludCgkKCIjY3VycmVudENhclByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNjYXJQcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNjYXJQcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2V4cHJlc3NjYXJwcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNleHByZXNzY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09Cgl0eXBlb2YgJCgiI2NhcnByb29mY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FycHJvb2ZjYXJwcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI3NlYXJjaFJlc3VsdHNBdmdQcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNzZWFyY2hSZXN1bHRzQXZnUHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoJ2lucHV0W25hbWU9InBtaW4iXScpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoJ2lucHV0W25hbWU9InBtaW4iXScpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgnaW5wdXRbbmFtZT0icG1heCJdJykuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgnaW5wdXRbbmFtZT0icG1heCJdJykudmFsKCkucmVwbGFjZSgiJCIsCgkJIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FyUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj0kKCIjY2FyUHJpY2UiKS5oYXNDbGFzcygiYm94Ml9kZXRhaWxzX3RleHQyNSIpP3BhcnNlSW50KCQoIiNjYXJQcmljZSIpLmNoaWxkcmVuKCI6Zmlyc3QiKS50ZXh0KCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSk6cGFyc2VJbnQoJCgiI2NhclByaWNlIikudGV4dCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTtpc05hTihmKSYmKGY9MCk7dmFyIHA9MCx5PTA7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlU2l0ZUlEJiZudWxsIT13aW5kb3cuYWN0aXZlU2l0ZUlEJiYwIT13aW5kb3cuYWN0aXZlU2l0ZUlEP3A9d2luZG93LmFjdGl2ZVNpdGVJRDoocD0kKCIjc2l0ZUlEIikudmFsKCksInVuZGVmaW5lZCI9PXR5cGVvZiBwJiYocD0kKCIjdG9wc2l0ZWlkIikudmFsKCkpLCJ1bmRlZmluZWQiPT0KCXR5cGVvZiBwJiYocD0wKSk7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlRGVhbGVySUQmJih5PXdpbmRvdy5hY3RpdmVTaXRlSUQpO3ZhciBsPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLEM9MDtpZigidW5kZWZpbmVkIj09bHx8MD09bHx8IjAiPT1sKWlmKGw9MCwidW5kZWZpbmVkIj09dHlwZW9mICQuY29va2llKCJ1c2lkX3RtcCIpKXt2YXIgQT1uZXcgRGF0ZTtBLnNldFRpbWUoQS5nZXRUaW1lKCkrNzJFNSk7dmFyIHo9IjsgZXhwaXJlcz0iK0EudG9HTVRTdHJpbmcoKTtkb2N1bWVudC5jb29raWU9InVzaWRfdG1wPTEiK3orIjsgcGF0aD0vIn1lbHNlIEM9ITA7dmFyIG09d2luZG93LmxvY2F0aW9uLmhyZWY7LTE8bS5pbmRleE9mKCJzdGVwPXJlc3VtZSIpJiYobSs9IiZzZXNzaWQ9IisoInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZSgic2Vzc2lkIik\/JC5jb29raWUoInNlc3NpZCIpOiJOVUxMIikpfXZhciByPXtzaWQ6bCx1dWlkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpLAoJCXNpdGVpZDpwLGRlYWxlcmlkOnksdXRtU291cmNlOmdldFVSTFZhbHVlKCJ1dG1fc291cmNlIiwiIiksdXRtQ2FtcGFpZ246Z2V0VVJMVmFsdWUoInV0bV9jYW1wYWlnbiIsIm9yZ2FuaWMiKSx1dG1LZXl3b3JkOmdldENLVmFsdWUoInV0bV9rZXl3b3JkIiksdXRtTGFuZGluZzpnZXRDS1ZhbHVlKCJ1dG1fbGFuZGluZyIpLHV0bVNvdXJjZVJldGFyZ2V0aW5nOmdldENLVmFsdWUoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKSx1dG1DYW1wYWlnblJldGFyZ2V0aW5nOmdldENLVmFsdWUoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpLG1ha2U6Yixtb2RlbDpjLHllYXI6aXNOYU4oZSk\/KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOmUsbGFuZ3VhZ2U6JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLHBhZ2U6InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUGFnZT8iIjp3aW5kb3cuYWN0aXZlUGFnZSxwcmljZTpmLHNsb29rdXA6QyxocmVmOm19LHg9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTsKCQlyPUpTT04uc3RyaW5naWZ5KHIpO3I9ci5yZXBsYWNlQWxsKCIvIiwiXFwvIik7dGhpcy5hamF4TW5nLmFqYXgoe3R5cGU6IlBPU1QiLHVybDp4KyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIsZGF0YTpyLGRvbmU6ZnVuY3Rpb24oZyl7InN0cmluZyI9PXR5cGVvZiBnJiYoZz1KU09OLnBhcnNlKGcpKTsidW5kZWZpbmVkIj09dHlwZW9mIGd8fG51bGw9PWd8fGcuY29uc3RydWN0b3IhPVtdLmNvbnN0cnVjdG9yJiZnLmNvbnN0cnVjdG9yIT17fS5jb25zdHJ1Y3Rvcnx8KGw9Zy5zZXNzaW9uaWQsbGFzdFZpZXdJRD1nLnZpZXdpZCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5fbG9hZFByb3BlcnRpZXMoZy5wcm9wZXJ0aWVzKSx3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPWwsd2luZG93Lmxhc3RQYWdlVmlld0lEPWxhc3RWaWV3SUQsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPWwsYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1c2lkIiwKCQkJCWwsIi8iLDIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXZpZXciLGxhc3RWaWV3SUQsIi8iLDIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVzaWRfdG1wIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKSl9LGZhaWw6ZnVuY3Rpb24oZyxuLHQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGxvZyBwYWdlIHZpZXcuIEVycm9yOiAiK3QubWVzc2FnZSl9LGFsd2F5czpmdW5jdGlvbigpe319KX19Y2F0Y2goZyl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gc3RhdCBwYWdlIGR1ZSB0byBlcnJvcjogIitnLm1lc3NhZ2UpfX0sX2xvYWRQcm9wZXJ0aWVzOmZ1bmN0aW9uKGEpe3RyeXsidW5kZWZpbmVkIiE9dHlwZW9mIGEmJm51bGwhPWEmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXM9YSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5wYWdlVmlld0NvdW50PQoJCWEucGFnZXZpZXdzKX1jYXRjaChiKXt9fSxnZXRQcm9wZXJ0eTpmdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzfHxudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXM\/bnVsbDoidW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllc1thXT8idW5kZWZpbmVkIiE9dHlwZW9mIGI\/YjoiIjphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXNbYV19LGFkZFByb3BlcnR5OmZ1bmN0aW9uKGEsYixkKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fDA9PWEubGVuZ3RofHwidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWJ8fCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRClyZXR1cm4gbnVsbDsidW5kZWZpbmVkIj09dHlwZW9mIGQmJihkPSJVUERBVEUiKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpOwoJCXRoaXMuYWpheE1uZy5hamF4KHt0eXBlOiJHRVQiLGFjdGlvbjoiYWRkcHJvcGVydHkiLHV1aWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0QWN0aXZlUHJvZmlsZWlkKCksc2lkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLHBuYW1lOmEscHZhbHVlOmIscG1vZGU6ZH0pO3JldHVybiEwfSx0YWdCcm93c2VyOmZ1bmN0aW9uKGEsYil7dHJ5e3ZhciBkPWEsYz10aGlzO2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hKWQ9ZnVuY3Rpb24oaCl7dHJ5e3ZhciBmPW5ldyBTdHJpbmcoaCk7Zj1mLnRyaW0oKTtpZigwPGYubGVuZ3RoKXtjLmxvZ01zZygiVGFnZ2VkIHdpdGggdXVpZCA9PiAiK2YpO3ZhciBxPWMuZ2V0QWN0aXZlUHJvZmlsZWlkKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWYudHJpbSgpO251bGwhPXEmJiJ1bmRlZmluZWQiIT10eXBlb2YgcS5sZW5ndGgmJgoJMDxxLmxlbmd0aCYmYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkIT1xJiZjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF92MSIscSwiLyIsMTgwKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkLCIvIiw1RTMpO2MuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX3ZsZDMiLCEwLCIvIiw1RTMpO2Muc2V0QWN0aXZlUHJvZmlsZWlkKCl9fWNhdGNoKHApe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIHJldHVybmVkIGZyb20gdGFnZ2luZzogIitwLm1lc3NhZ2UpfX07dGhpcy5sb2dNc2coIkdlbmVyYXRpbmcgZmluZ2VycHJpbnQiKTt2YXIgZT10aGlzLmdldEZQVVJJKCk7Yy5hamF4TW5nLmdldFNjcmlwdChlLGZ1bmN0aW9uKCl7dHJ5e3ZhciBoPWZ1bmN0aW9uKGwpe3RyeXtjLmxvZ01zZygiRmluZ2VycHJpbnRlZDogIitsKTt2YXIgQz1jLmdldEFjdGl2ZVByb2ZpbGVpZCgpLEE9ZW5jb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pOwoJCWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgbHx8bnVsbD09bClyZXR1cm4hMTt2YXIgej0hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGUmJjM9PXdpbmRvdy5hY3RpdmVTaXRlSUQmJih6PSEwKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVmcCIsbCwiLyIsNUUzKTt2YXIgbT17ZDpBLGZwMTpsLnN1YnN0cmluZygwLDgpLGZwMjpsLnN1YnN0cmluZyg4LDE2KSxmcDM6bC5zdWJzdHJpbmcoMTYsMjQpLGZwNDpsLnN1YnN0cmluZygyNCwzMiksdWlkOkMsYWN0aW9uOiJ1cGdyYWRlZnAiLGRibTp6LHY6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19yZXNldFZ9LHI9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTtjLmxvZ01zZyhyKyJzZXJ2aWNlL2QyYy51cGdyYWRlLnY2LmZwLmpzIik7Yy5sb2dNc2coSlNPTi5zdHJpbmdpZnkobSkpO2MuYWpheE1uZy5hamF4KHt1cmw6cisic2VydmljZS9kMmMudXBncmFkZS52Ni5mcC5qcyIsdHlwZToiR0VUIixkYXRhOm0sCgkJCWRvbmU6ZnVuY3Rpb24oeCl7dHJ5e2MubG9nTXNnKCJVVUlEIGFmdGVyIHVwcm9maWxlIHVwZGF0ZTogIit4KSwidW5kZWZpbmVkIiE9dHlwZW9mIGQmJm51bGwhPWQ\/ZCh4KTpjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZCIseCwiLyIsNUUzKSwidW5kZWZpbmVkIiE9dHlwZW9mIGImJm51bGwhPWImJmIoKX1jYXRjaChnKXt9fX0pfWNhdGNoKHgpe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGV4ZWN1dGluZyB0YWdNZSBzdGVwOiAiK3gubWVzc2FnZSl9fSxmPSExO3RyeXtuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIldpbiIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIiksbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJMaW51eCIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiQW5kcm9pZCIpLC0xIT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoImxpa2UgTWFjIikmJihmPSEwKSxsb2NhdGlvbi5wcm90b2NvbC5pbmRleE9mKCJodHRwcyIpfWNhdGNoKGwpe312YXIgcT0KCQl7cHJlcHJvY2Vzc29yOm51bGwsYXVkaW86e3RpbWVvdXQ6MUUzLGV4Y2x1ZGVJT1MxMTpmfSxmb250czp7c3dmQ29udGFpbmVySWQ6ImRjdGtkaXZmcDIiLHN3ZlBhdGg6ImZsYXNoL2NvbXBpbGVkL0ZvbnRMaXN0LnN3ZiIsdXNlckRlZmluZWRGb250czpbXSxleHRlbmRlZEpzRm9udHM6ITF9LHNjcmVlbjp7ZGV0ZWN0U2NyZWVuT3JpZW50YXRpb246ITB9LHBsdWdpbnM6e3NvcnRQbHVnaW5zRm9yOlsvcGFsZW1vb24vaV0sZXhjbHVkZUlFOiExfSxleHRyYUNvbXBvbmVudHM6W10sTk9UX0FWQUlMQUJMRToibm90IGF2YWlsYWJsZSIsRVJST1I6ImVycm9yIixFWENMVURFRDoiZXhjbHVkZWQifSxwPSExO251bGwhPXdpbmRvdyYmbnVsbCE9d2luZG93LmxvY2F0aW9uJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5sb2NhdGlvbi5ocmVmJiYoLTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiZDJjZGVidWc9MSIpfHwtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY3JtMi5kMmNtZWRpYS5jYSIpKSYmCgkocD0hMCk7dmFyIHk9ZnVuY3Rpb24obCl7dHJ5e3ZhciBDPWZ1bmN0aW9uKHope3o9ei5tYXAoZnVuY3Rpb24obSl7dmFyIHI9IiI7dHJ5e3N3aXRjaChwJiZjb25zb2xlLmxvZyhtLmtleS50b0xvd2VyQ2FzZSgpKSxtLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlICJjYW52YXMiOmNhc2UgIndlYmdsIjpjYXNlICJhZGJsb2NrIjpyPSIiO2JyZWFrO2Nhc2UgInVzZXJhZ2VudCI6aWYoMDxtLnZhbHVlLmxlbmd0aCYmLTEhPW0udmFsdWUuaW5kZXhPZigiICIpKWZvcih2YXIgeD1tLnZhbHVlLnNwbGl0KCIgIiksZz0wO2c8eC5sZW5ndGg7ZysrKXt2YXIgbj14W2ddO2lmKC0xIT1uLmluZGV4T2YoIi8iKSl7dmFyIHQ9bi5zcGxpdCgiLyIpO3IrPXRbMF19ZWxzZS0xPT1uLmluZGV4T2YoIi4iKSYmKHIrPW4pfXAmJmNvbnNvbGUubG9nKCJVc2VyIEFnZW50IC0tICIrcik7YnJlYWs7ZGVmYXVsdDoidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkobS52YWx1ZSl8fAoJbS52YWx1ZS5jb25zdHJ1Y3Rvcj09PUFycmF5PyhtLnZhbHVlLnNvcnQoKSxyPW0udmFsdWUuam9pbigpKTpyPW0udmFsdWV9fWNhdGNoKHYpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiRlAgRmFpbGVkIC0tICVzIC0gJW8iLHYubWVzc2FnZSxtKX1pZigidW5kZWZpbmVkIj09dHlwZW9mIHJ8fG51bGw9PXIpcj0iIjtyZXR1cm4gcn0pO3ouc29ydCgpO3JldHVybiB6fShsKTtwJiZjb25zb2xlLmxvZygidG8gaGFzaDogJW8iLEMpO3ZhciBBPUZpbmdlcnByaW50Mi54NjRoYXNoMTI4KEMuam9pbigiIiksMzEpO3AmJmNvbnNvbGUubG9nKCJGUCA9PiAlcyIsQSk7aChBKTtjLmxvZ01zZygiRmluZ2VycHJpbnQ6ICIrQSl9Y2F0Y2goeil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJGUDIgRmFpbGVkIC0tICVzIix6Lm1lc3NhZ2UpfX07d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2s\/cmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpe3RyeXtGaW5nZXJwcmludDIuZ2V0KHEsCgkJeSl9Y2F0Y2gobCl7Yy5sb2dNc2coIjEuVW5hYmxlIHRvIGluc3RhbnRpYXRlIEZQMi4gRXJyb3I6ICIrbC5tZXNzYWdlKX19KTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHJ5e0ZpbmdlcnByaW50Mi5nZXQocSx5KX1jYXRjaChsKXtjLmxvZ01zZygiMi5VbmFibGUgdG8gaW5zdGFudGlhdGUgRlAyLiBFcnJvcjogIitsLm1lc3NhZ2UpfX0sNTAwKX1jYXRjaChsKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgZmlyc3Qgc3RlcDogIitsLm1lc3NhZ2UpfX0pfWNhdGNoKGgpe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGV4ZWN1dGluZyBmaXJzdCBzdGVwOiAiK2gubWVzc2FnZSl9fSx1cGRhdGVGUDpmdW5jdGlvbigpe3RyeXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RoaXMubG9nTXNnKCJTdGFydGluZyBTYWZhcmkgUnVuIik7aWYoITE9PT10aGlzLnJlc2V0U2Vjb25kUGFzcyl7dGhpcy5yZXNldFNlY29uZFBhc3M9CgkJITA7dGhpcy5sb2dNc2coIlN0YXJ0aW5nIGZpcnN0IHBhc3MiKTt2YXIgYT10aGlzLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWQiKSxiPXRoaXMuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF9pb3NfMiIpO3RoaXMubG9nTXNnKCJVVUlELiAiK2ErIiAtLSBJT1NSRVNFVC4gIitiKTtudWxsPT1hfHxudWxsPT1iPyh0aGlzLmxvZ01zZygiRHJvcHBpbmcgcmVzZXQgY29va2llIiksdGhpcy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfaW9zXzIiLDEsIi8iLDVFMyksdGhpcy50YWdCcm93c2VyKG51bGwpKToodGhpcy5sb2dNc2coIlNlY29uZCBwYXNzLCBub3RoaW5nIHRvIGRvIiksd2luZG93Ll9fX2QyY0NUS01ldGhvZCgpKX1lbHNlIHdpbmRvdy5fX19kMmNDVEtNZXRob2QoKX1jYXRjaChkKXt0aGlzLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciB1cGRhdGluZyBtb2JpbGUgY29va2llOiAiK2QubWVzc2FnZSl9fX07CndpbmRvdy5fX19kMmNDVEtNZXRob2Q9ZnVuY3Rpb24oKXt0cnl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpJiYhMCE9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmU9d2luZG93LmpRdWVyeT8hMDohMTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wc2l0ZWlkIik7aWYobnVsbD09YXx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLnZhbHVlfHxpc05hTihhLnZhbHVlKSlhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dNc2coIkxvYWRpbmcgZnBzeXN0ZW0gb24gbm9uIGQyYyB3ZWJzaXRlIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlPSExO2Vsc2UgdHJ5e3dpbmRvdy5hY3RpdmVTaXRlSUQ9cGFyc2VJbnQoYS52YWx1ZSl9Y2F0Y2gocCl7d2luZG93LmFjdGl2ZVNpdGVJRD12b2lkIDB9dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY2hlY2tTY2hlZHVsZWRSZXNldCgpLGQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZCIpOwoJaWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlU2Vzc2lvbklEfHxudWxsPT13aW5kb3cuYWN0aXZlU2Vzc2lvbklEKXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9MDtudWxsPT1kfHxpc05hTihkKXx8KHdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9ZCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF92bGQiKTt2YXIgYz1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpLGU9ZnVuY3Rpb24oKXt0cnl7InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuc3RhdEV4ZWN1dGVkJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXc\/KGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3KCksd2luZG93LnN0YXRFeGVjdXRlZD0hMCk6YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5hamF4KHt1cmw6YysKCQkJInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IkdFVCIsZGF0YTp7YWN0aW9uOiJ1bmtub3duIixtc2c6IjEuRWl0aGVyIGFjdGl2ZVVzZXJQcm9maWxlTW5nIGlzIG5vdCBkZWZpbmVkIG9yIGxvZ1BhZ2VWaWV3IGlzIG5vdCBkZWZpbmVkIn19KSl9Y2F0Y2gocCl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nTXNnKHAubWVzc2FnZSksYWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5hamF4KHt1cmw6Yysic2VydmljZS9zZXNzaW9uTW5nLnBocCIsdHlwZToiR0VUIixkYXRhOnthY3Rpb246InVua25vd24iLG1zZzpwLm1lc3NhZ2V9fSl9fSxoPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWQiKSxmPW51bGw9PWh8fDA9PWgubGVuZ3RoPyExOiEwO2g9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF92bGQzIik7dmFyIHE9bnVsbD09aHx8MD09aC5sZW5ndGg\/ITE6ITA7aWYoIWImJmYmJgoJCXEpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2soZSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEfHxudWxsPT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEKXdpbmRvdy5hY3RpdmVQcm9maWxlSUQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0QWN0aXZlUHJvZmlsZWlkKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlVVUlEKCl9ZWxzZSBhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9bnVsbCx3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPW51bGwsYWN0aXZlVXNlclByb2ZpbGVNbmcudGFnQnJvd3NlcihudWxsLGZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJDYWxsYmFjayhlKX0pfX1jYXRjaChwKXtjPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCksYWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5fZ2V0KGMrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHA\/YWN0aW9uPXVua25vd24mbXNnPTIuIisKCWVuY29kZVVSSUNvbXBvbmVudChwLm1lc3NhZ2UpKSxjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIjEuIFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCBsb2FkaW5nIHVwcm9maWxlLmZpbmFsLmpzLiBFcnJvcjogIitwLm1lc3NhZ2UpfX07CnRyeXtsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZUludGVybmFsU2Vzc2lvbiIpO2lmKG51bGwhPWEmJiIxIj09YS52YWx1ZSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQ9ITA7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPW51bGw7bGV0IGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3RvcHNpdGVpZCIpO251bGwhPWImJihiPXBhcnNlSW50KGIudmFsdWUpKTtpc05hTihiKXx8MjM1IT1iPyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidWlkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF9yc3QiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXZpZXciKSwKCWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVzaWQiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfdjEiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3ZsZDMiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWZwIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF9pb3NfMiIpKTpjb25zb2xlLmxvZygiYnlwYXNzaW5nIGNvb2tpZSBwdXJnZSIpfWVsc2UibG9hZGluZyIhPWRvY3VtZW50LnJlYWR5U3RhdGU\/d2luZG93Ll9fX2QyY0NUS01ldGhvZCgpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXI\/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsd2luZG93Ll9fX2QyY0NUS01ldGhvZCk6Cglkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpeyJjb21wbGV0ZSI9PWRvY3VtZW50LnJlYWR5U3RhdGUmJndpbmRvdy5fX19kMmNDVEtNZXRob2QoKX0pfWNhdGNoKGEpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiNS4gVW5leHBlY3RlZCBlcnJvciBvY2N1cmVkIGxvYWRpbmcgdXByb2ZpbGUuZmluYWwuanMuIEVycm9yOiAiK2EubWVzc2FnZSl9OwovKiogL2pzL211bHRpRGVhbGVyU2VsZWN0LmpzICoqLwp2YXIgX19fZDJjX211bHRpRGVhbGVyU2VsZWN0anNfY19vbj0iMjAyNi0wMi0xMyAxMzozMDoxMSI7J3VzZSBzdHJpY3QnO3ZhciBtdWx0aURlYWxlclNlbGVjdD17c2V0U2VsZWN0OmZ1bmN0aW9uKGQsZyl7aWYoZCl7ZC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoInZhbGlkaXR5LWVycm9uZW91cyIpO3ZhciBhPWQucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzZWxlY3RbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJyk7YSYmKGEudmFsdWU9ZC5kYXRhc2V0LnZhbHVlLCJ1bmRlZmluZWQiPT09dHlwZW9mIGcmJmEuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNoYW5nZSIpKSl9fSxmaWx0ZXI6ZD0+e2Z1bmN0aW9uIGcoKXthJiYwPGEubGVuZ3RoJiYoYS5maW5kKCJvcHRpb25bZGF0YS1icmFuZHNdIikuc2hvdygpLGEuZmluZCgib3B0aW9uW2RhdGEtYnJhbmRzXSIpLnByb3AoImRpc2FibGVkIiwhMSkpfWxldCBhPWQ7cmV0dXJue3Nob3dBbGw6ZyxieU1ha2U6Yj0+e2lmKGEmJjA8YS5sZW5ndGgmJihnKCksYiYmInN0cmluZyI9PT10eXBlb2YgYiYmIiIhPT0KYi50cmltKCkpKXtiPWIudHJpbSgpLnRvTG93ZXJDYXNlKCk7dmFyIGU9ITEsaz1mdW5jdGlvbihjKXtjPT09YiYmKGU9ITApO3JldHVybiBjPT09Yn0sZj0wO2EuZmluZCgib3B0aW9uW2RhdGEtYnJhbmRzXSIpLmVhY2goZnVuY3Rpb24oYyxoKXtjPSQoaCkuZGF0YSgiYnJhbmRzIikudG9Mb3dlckNhc2UoKTsiIj09PWM\/KCQoaCkuaGlkZSgpLCQoaCkucHJvcCgiZGlzYWJsZWQiLCEwKSxmKyspOmMudG9Mb3dlckNhc2UoKS5zcGxpdCgiLCIpLnNvbWUoayl8fCJhbGwiPT09Y3x8KCQoaCkuaGlkZSgpLCQoaCkucHJvcCgiZGlzYWJsZWQiLCEwKSxmKyspfSk7ZSYmKGEuZmluZCgnb3B0aW9uW2RhdGEtYnJhbmRzPSJhbGwiXScpLmhpZGUoKSxhLmZpbmQoJ29wdGlvbltkYXRhLWJyYW5kcz0iYWxsIl0nKS5wcm9wKCJkaXNhYmxlZCIsITApKTthLmZpbmQoIm9wdGlvbltkYXRhLWJyYW5kc10iKS5sZW5ndGg9PT1mJiZnKCl9fSxoYXNPbmx5T25lOigpPT57aWYoIShhJiYwPGEubGVuZ3RoKSlyZXR1cm4hMTsKdmFyIGI9MCxlPW51bGw7YS5maW5kKCJvcHRpb25bZGF0YS1icmFuZHNdIikuZWFjaChmdW5jdGlvbihrLGYpeyJub25lIiE9PSQoZikuY3NzKCJkaXNwbGF5IikmJihiKyssZT0kKGYpKX0pO3JldHVybiAxPT09YiYmbnVsbCE9PWU\/ZTohMX19fX07Ci8qKiAvanMvcG9wdXAuanMgKiovCnZhciBfX19kMmNfcG9wdXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjI3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19wb3B1cGpzX2Nfb249IjIwMjQtMDMtMTUgMTA6MzA6MTAiOyJ1c2Ugc3RyaWN0Ijt2YXIgYWN0aXZhdGVkUG9wdXBEaXZJRD0iIixtYWluUG9wdXBEaXZJRD0iIixwb3B1cE9uQWZ0ZXJTdWJtaXRDbG9zZT0hMSxpc1BvcHVwSW5pdGlhbGl6ZWQ9ITE7CmZ1bmN0aW9uIHNob3dQb3B1cFdpZGdldChhLGI9ITApe3ZhciBjPSExPT09Yj8hMTohMDtpZihpc1Ntc1RleHRVc0Zvcm0oKSYmYilyZXR1cm4gc2hvd1Ntc1RleHRVc0Zvcm0oYyksITE7aWYoITE9PT1pc1BvcHVwSW5pdGlhbGl6ZWQpcmV0dXJuITE7YT1hP2E6e307c2V0dGluZ3M9e3Nob3dNYWluUG9wdXA6ITEsZG9Ob3RSZWRpcmVjdDohMSxldmVudFR5cGU6ImNsaWNrIixkZWxheTohMX07JC5leHRlbmQoc2V0dGluZ3MsYSk7YT1zZXR0aW5ncy5kb05vdFJlZGlyZWN0O2I9c2V0dGluZ3MuZXZlbnRUeXBlO2M9c2V0dGluZ3MuZGVsYXk7dmFyIGQ9MDxhY3RpdmF0ZWRQb3B1cERpdklELmxlbmd0aD9hY3RpdmF0ZWRQb3B1cERpdklEOiExOyEwPT09c2V0dGluZ3Muc2hvd01haW5Qb3B1cCYmMDxtYWluUG9wdXBEaXZJRC5sZW5ndGgmJihkPW1haW5Qb3B1cERpdklEKTtpZihkJiYwPGQubGVuZ3RoKSQoIiMiK2QpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcihiKS5vcGVuKGMpO2Vsc2UgaWYoImZ1bmN0aW9uIj09PQp0eXBlb2Ygc2hvd1BvcHVwV2lkZ2V0T0xEKXNob3dQb3B1cFdpZGdldE9MRCghMSk7ZWxzZSBpZighMT09PWEpMDwkKCIjcHJvbW9TZWN0aW9ubmFibGVkIikubGVuZ3RoJiYiMCIhPSQoIiNwcm9tb1NlY3Rpb25uYWJsZWQiKS52YWwoKT93aW5kb3cubG9jYXRpb24uaHJlZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iL291ci1wcm9tb3Rpb25zLmh0bWwiOiIvcHJvbW90aW9ucy5odG1sIjp3aW5kb3cubG9jYXRpb24uaHJlZj0iLyI7ZWxzZSByZXR1cm4hMX1mdW5jdGlvbiBwb3B1cFBvc3RNZXNzYWdlT25BdXRvYXViYWluZSgpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXskLnBvc3RNZXNzYWdlKCJjbG9zZVBvcHVwIiwiKiIscGFyZW50KX0sMUUzKX0KZnVuY3Rpb24gcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoYSxiLGMsZCxlLGYsZyl7aXNQb3B1cEluaXRpYWxpemVkPSEwO2MmJihtYWluUG9wdXBEaXZJRD1mK2QpO3JldHVybiBiPT1hJiZjfHwicmVzZXQiPT1iJiZjPyhhY3RpdmF0ZWRQb3B1cERpdklEPWYrZCwidXNlZGNhcnMuaHRtbCIhPWV8fGc\/Im5ld2NhcnMuaHRtbCIhPWV8fGc\/ITA6KGNvbnNvbGUubG9nKCJwb3B1cC5qcyBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSAtIG5ld2NhcnMgcmV0dXJucyBmYWxzZS4gUG9wdXAgbWF5IGJlIGNhbmNlbGxlZC4iKSwhMSk6KHRoaXMuY29uc29sZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJwb3B1cC5qcyBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSAtIHVzZWRjYXJzICByZXR1cm5zIGZhbHNlLiBQb3B1cCBtYXkgYmUgY2FuY2VsbGVkLiIpLCExKSk6ITF9CmZ1bmN0aW9uIHBvcHVwY2xvc2VQREYoYSxiKXskKCIjcG9wdXBkaXZwZGYiK2EpLmxlbmd0aCYmJCgiI3BvcHVwZGl2cGRmIithKS5jc3MoImRpc3BsYXkiLCJub25lIik7JCgiI3BvcHVwZGlmcGRmbW9kYWwiKS5sZW5ndGgmJiQoIiNwb3B1cGRpZnBkZm1vZGFsIikucmVtb3ZlKCk7JCgiI3BvcHVwZGl2cGRmaWZyYW1lIikubGVuZ3RoJiYkKCIjcG9wdXBkaXZwZGZpZnJhbWUiKS5yZW1vdmUoKTtiJiZwb3B1cFBvc3RNZXNzYWdlT25BdXRvYXViYWluZSgpfWZ1bmN0aW9uIHByaW50UERGSUZyYW1lKCl7d2luZG93LmZyYW1lcy5wb3B1cGRpdnBkZmlmcmFtZS5wcmludE1lKCl9ZnVuY3Rpb24gcG9wdXBUcmltKGEpe3JldHVybiBhLnJlcGxhY2UoL15ccyt8XHMrJC9nbSwiIil9CmZ1bmN0aW9uIHNob3dQb3B1cFdpZGdldEFkZFZlaGljbGUoYSl7JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoYSl9KTtzaG93UG9wdXBXaWRnZXQoKX1mdW5jdGlvbiBzaG93U3BlY2lhbFNjaGVkdWxlT25sb2FkKCl7dmFyIGE9JCgiI3NwZWNpYWxTY2hlZHVsZSIpOzA8YS5sZW5ndGgmJmEucG9wdXBpemUoe3Nob3dvbmxvYWQ6ITAsY29va2llTmFtZToic3BTY2hlZHVsZURpc3BsYXllZCIsY29va2llQ3JlYXRlOiJvbk9wZW4iLGNsb3NlQnV0dG9uOiEwfSl9ZnVuY3Rpb24gc2hvd1NwZWNpYWxTY2hlZHVsZSgpeyQoIiNzcGVjaWFsU2NoZWR1bGUiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfWZ1bmN0aW9uIHNob3dUcmFkZUJvb3N0UG9wdXAoKXskKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gaXNTbXNUZXh0VXNGb3JtKCl7bGV0IGE9WyJuZXdjYXJkZXRhaWwuaHRtbCIsIm5ld2NhcnMuaHRtbCJdLGI9WyJjYXJkZXRhaWwuaHRtbCIsInVzZWRjYXJzLmh0bWwiXTtyZXR1cm4iMSI9PSQoIiNEaXNjb3VudFBvcHVwTmV3UmViYXRlU2hvd1RleHRVcyIpLnZhbCgpJiZhLmluY2x1ZGVzKCQoIiNQQUdFSUQiKS52YWwoKSl8fCIxIj09JCgiI0Rpc2NvdW50UG9wdXBVc2VkUmViYXRlU2hvd1RleHRVcyIpLnZhbCgpJiZiLmluY2x1ZGVzKCQoIiNQQUdFSUQiKS52YWwoKSk\/ITA6ITF9ZnVuY3Rpb24gc2hvd1Ntc1RleHRVc0Zvcm0oYT0hMCl7JCgiI2lzTW9iaWxlIikubGVuZ3RoJiYiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpJiYhMSE9PWE\/ZGVhbGVyTGluZVNtcygpOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzbGlkZWl0ICNvcGVuLWl0ZW0iKS5jaGVja2VkPSEwfTsKLyoqIC9qcy9zY3JhdGNoYW5kc2F2ZS5qcyAqKi8KdmFyIF9fX2QyY19zY3JhdGNoYW5kc2F2ZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6MjMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3NjcmF0Y2hhbmRzYXZlanNfY19vbj0iMjAyNC0wMy0yNSAxMjozNTowOSI7InVzZSBzdHJpY3QiOwp2YXIgc2NyYXRjaEFuZFNhdmU9e3NjcmF0Y2hBbmRTYXZlX215U3dmU3RvcmU6bnVsbCxzY3JhdGNoUGFkSW1nOiIvaW1hZ2VzL3BvcHVwcy9zdHlsZTIvc2NyYXRjaC5wbmciLHNjcmF0Y2hQYWRJbWdEaXNhYmxlZDoiL2ltYWdlcy9wb3B1cHMvc3R5bGUyL3NjcmF0Y2hfZGlzYWJsZWQucG5nIixjb250YWluZXJJRDoic2NyYXRjaEFuZFNhdmVQb3B1cENvbnRhaW5lciIscGFyc2VEYXRlOmZ1bmN0aW9uKGEpe2E9YS5zcGxpdCgiLSIpO3JldHVybiBuZXcgRGF0ZShhWzBdLGFbMV0tMSxhWzJdKX0sZGF5ZGlmZjpmdW5jdGlvbihhLGIpe3JldHVybihiLWEpLzg2NEU1fSxwcmludElGcmFtZVNjcmF0Y2hBbmRTYXZlOmZ1bmN0aW9uKCl7JCgiIyIrJCgnW2lkKj0ic2NyYXRjaEFuZFNhdmVQb3B1cENvbnRhaW5lciJdOnZpc2libGUnKS5hdHRyKCJpZCIpKyIgLnNjcmF0Y2hib2R5VG9QcmludCIpLnByaW50VGhpcyh7aGVhZGVyOic8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7ZmxvYXQ6bGVmdDt3aWR0aDoxNTBweDsiPicrCiQoIi5sb2dvIikuaHRtbCgpKyc8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7ZmxvYXQ6cmlnaHQ7d2lkdGg6MzUwcHg7Ij4nKyQoIi52LWNhcmQiKS5odG1sKCkrIjwvZGl2PiIsZGVidWc6ITEsaW1wb3J0U3R5bGU6ITAsY29weVRhZ0NsYXNzZXM6ITAsZm9vdGVyOiQoIiNzY3JhdGNoQW5kU2F2ZU5vdGUiKS5odG1sKCl9KX0scG9zaXRpb25TY3JhdGNoQW5kU2F2ZVRleHQ6ZnVuY3Rpb24oYSl7dmFyIGI9JCgiIyIrc2NyYXRjaEFuZFNhdmUuY29udGFpbmVySUQrYSksYz1iLmZpbmQoIiNzY3JhdGNoRGl2VGV4dCIrYSksZT1iLmZpbmQoIiNzY3JhdGNoRGl2VGV4dE9sZEJyb3dzZXIiK2EpO2lmKChudWxsPT1jLmhlaWdodCgpfHwxMD49Yy5oZWlnaHQoKSkmJihudWxsPT1lLmhlaWdodCgpfHwxMD49ZS5oZWlnaHQoKSkpc2V0VGltZW91dChmdW5jdGlvbigpe3NjcmF0Y2hBbmRTYXZlLnBvc2l0aW9uU2NyYXRjaEFuZFNhdmVUZXh0KGEpfSwxMDApO2Vsc2V7dmFyIGQ9CiQuYnJvd3Nlci5jaHJvbWU\/MjUwOjI1OSxmPWIuZmluZCgiI3NjcmF0Y2hEaXZUZXh0UHJpbnQiK2EpO251bGwhPWUuaGVpZ2h0KCkmJjEwPGUuaGVpZ2h0KCkmJihjPWUsZD0zMTApO2IuZmluZCgiI2Jsb2NrYWdlIithKS5jc3MoInRvcCIsZCtiLmZpbmQoIiNzY3JhdGNoU3BhblRpdGxlIithKS5oZWlnaHQoKSsicHgiKTtjLmNzcygidG9wIiw1NS1jLmhlaWdodCgpLzIrInB4Iik7Zi5jc3MoInRvcCIsMTctZi5oZWlnaHQoKS8yKyJweCIpO2MuY3NzKHt3aWR0aDoiMTAwJSIsImJveC1zaXppbmciOiJib3JkZXItYm94In0pfX0saW5pdFNjcmF0Y2hQYWQ6ZnVuY3Rpb24oYSxiLGMsZSl7aWYoc2NyYXRjaEFuZFNhdmUuZG9lc0Nvb2tpZUV4aXN0KCkpc2NyYXRjaEFuZFNhdmUuc2hvd0ludGVydmFsUGFydGljaXBhdGlvbk1lc3NhZ2UoYSk7ZWxzZSBpZihiJiYiMSI9PSQoIiNvbGRCcm93c2VyT3JUYWJsZXQiK2EpLnZhbCgpKSQoIiN3U2NyYXRjaFBhZCIrYSkubGVuZ3RoJiYkKCIjd1NjcmF0Y2hQYWQiKwphKS5jc3MoImRpc3BsYXkiLCJub25lIiksJCgiI3dTY3JhdGNoUGFkT2xkQnJvd3NlciIrYSkubGVuZ3RoJiYkKCIjd1NjcmF0Y2hQYWRPbGRCcm93c2VyIithKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKTtlbHNlIGlmKGI9JCgiI3dTY3JhdGNoUGFkIithKSxiLmxlbmd0aCl7Yi5lbXB0eSgpO3ZhciBkPSJ1bmRlZmluZWQiIT09Yi5kYXRhKCJ3aWR0aCIpJiYiIiE9PWIuZGF0YSgid2lkdGgiKT9iLmRhdGEoIndpZHRoIik6NjAwLGY9InVuZGVmaW5lZCIhPT1iLmRhdGEoImhlaWdodCIpJiYiIiE9PWIuZGF0YSgiaGVpZ2h0Iik\/Yi5kYXRhKCJoZWlnaHQiKToxMTU7Yi53U2NyYXRjaFBhZCh7aWRUb0FkZDphLHdpZHRoOmQsaGVpZ2h0OmYsYmFja2dyb3VuZENvbG9yOmMsZW5hYmxlZDplLGltYWdlMjpzY3JhdGNoQW5kU2F2ZS5zY3JhdGNoUGFkSW1nLGltYWdlRGlzYWJsZWQ6c2NyYXRjaEFuZFNhdmUuc2NyYXRjaFBhZEltZ0Rpc2FibGVkLHNjcmF0Y2hVcDpmdW5jdGlvbihnLApoKXtzY3JhdGNoQW5kU2F2ZS5zaG93Rm9ybUFmdGVyU2NyYXRjaChhLGgpfSxzY3JhdGNoTW92ZTpmdW5jdGlvbihnLGgpe3NjcmF0Y2hBbmRTYXZlLnNob3dGb3JtQWZ0ZXJTY3JhdGNoKGEsaCl9fSl9fSxzaG93SW50ZXJ2YWxQYXJ0aWNpcGF0aW9uTWVzc2FnZTpmdW5jdGlvbihhKXskKCIjc2NyYXRjaEFuZFNhdmVpc0VuYWJsZWQiK2EpLnZhbCgwKTt2YXIgYj0kKCI8ZGl2PjwvZGl2PiIpLmF0dHIoImNsYXNzIiwiaW50ZXJ2YWwtcGFydGljaXBhdGlvbiIpLmh0bWwoJCgiI3NjcmF0Y2hBbmRTYXZlTWF4VGltZSIrYSkudmFsKCkpLGM9eyJ6LWluZGV4IjoiMTAwMCJ9OyQoIi5zY3JhdGNoYm9keVRvUHJpbnQgLmJ1dHRvblByaW50IikuaGlkZSgpOyQoIi5zY3JhdGNoYm9keVRvUHJpbnQgLmJ1dHRvblByaW50T3ZlcmxheSIpLmhpZGUoKTskKCIjd1NjcmF0Y2hQYWQiK2EpLmVtcHR5KCkuY3NzKGMpLmh0bWwoYi5jbG9uZSgpLmF0dHIoImlkIiwic2NyYXRjaERpdlRleHQiK2EpKTsKJCgiI3dTY3JhdGNoUGFkT2xkQnJvd3NlciIrYSkuZW1wdHkoKS5jc3MoYykuaHRtbChiLmNsb25lKCkuYXR0cigiaWQiLCJzY3JhdGNoRGl2VGV4dE9sZEJyb3dzZXIiK2EpKTskKCIuZm9ybXRhYmxlIikuaGlkZSgpOyQoIiNwcmludEJ0bl9ibnAiKS5oaWRlKCk7JCgiI3ByaW50QnRuT3ZlcmxheV9ibnAiKS5oaWRlKCk7JCgiI3NjcmF0Y2hBbmRTYXZlQ291bnRkb3duX3VzZWQiKS5oaWRlKCk7JCgiI3NjcmF0Y2hBbmRTYXZlQ291bnRkb3duX25ldyIpLmhpZGUoKTskKCIuc2NyYXRjaGJvZHlUb1ByaW50IC50ZXh0YXJlYSIpLmhpZGUoKTskKCIuYnV0dG9uT25lIikucHJvcCgiZGlzYWJsZWQiLCEwKTskKCIjc2NyYXRjaEFuZFNhdmVDYXJJbWFnZSIpLmxlbmd0aCYmJCgiI3NjcmF0Y2hBbmRTYXZlQ2FySW1hZ2UiKS5jc3MoImRpc3BsYXkiLCJub25lIil9LGNyZWF0ZVNjcmF0Y2hBbmRTYXZlQ29va2llOmZ1bmN0aW9uKGEsYixjKXtDb29raWVzLnNldCgic2NyYXRjaGFuZHNhdmUiLAoiMSIscGFyc2VJbnQoYSksIi8iKX0sZG9lc0Nvb2tpZUV4aXN0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPUNvb2tpZXMuZ2V0KCJzY3JhdGNoYW5kc2F2ZSIpfSxsb2FkU2NyYXRjaEFuZFNhdmVGbGFzaENvb2tpZTpmdW5jdGlvbihhLGIsYyxlLGQsZil7bnVsbD09c2NyYXRjaEFuZFNhdmUuc2NyYXRjaEFuZFNhdmVfbXlTd2ZTdG9yZSYmKHNjcmF0Y2hBbmRTYXZlLnNjcmF0Y2hBbmRTYXZlX215U3dmU3RvcmU9bmV3IFN3ZlN0b3JlKHtuYW1lc3BhY2U6InNjcmF0Y2hBbmRTYXZlMiIsc3dmX3VybDoiL2ZsYXNoL3N0b3JhZ2Uuc3dmIixvbnJlYWR5OmZ1bmN0aW9uKCl7aWYobnVsbCE9c2NyYXRjaEFuZFNhdmUuc2NyYXRjaEFuZFNhdmVfbXlTd2ZTdG9yZS5nZXQoInNjcmF0Y2hhbmRzYXZlIikmJjA8c2NyYXRjaEFuZFNhdmUuc2NyYXRjaEFuZFNhdmVfbXlTd2ZTdG9yZS5nZXQoInNjcmF0Y2hhbmRzYXZlIikubGVuZ3RoKXt2YXIgZz1zY3JhdGNoQW5kU2F2ZS5zY3JhdGNoQW5kU2F2ZV9teVN3ZlN0b3JlLmdldCgic2NyYXRjaGFuZHNhdmUiKS5zcGxpdCgiOzsiKTsKaWYoMz09Zy5sZW5ndGgpe3ZhciBoPWdbMF0sbD1zY3JhdGNoQW5kU2F2ZS5kYXlkaWZmKHNjcmF0Y2hBbmRTYXZlLnBhcnNlRGF0ZShnWzFdKSxzY3JhdGNoQW5kU2F2ZS5wYXJzZURhdGUoYykpLGs9Z1syXTtsPGg\/KHNjcmF0Y2hBbmRTYXZlLmNyZWF0ZVNjcmF0Y2hBbmRTYXZlQ29va2llKGIsYyxrKSxzY3JhdGNoQW5kU2F2ZS5zaG93SW50ZXJ2YWxQYXJ0aWNpcGF0aW9uTWVzc2FnZShhKSk6InskdGV4dFRvU2hvd30iPT1rPygkKCIjd1NjcmF0Y2hQYWQiK3BvcHVwV2lkZ2V0X2lkVG9BZGQpLmVtcHR5KCksJCgiI3dTY3JhdGNoUGFkIithKS53U2NyYXRjaFBhZCh7aWRUb0FkZDphLGJhY2tncm91bmRDb2xvcjpkLGVuYWJsZWQ6ZixpbWFnZTI6c2NyYXRjaEFuZFNhdmUuc2NyYXRjaFBhZEltZyxpbWFnZURpc2FibGVkOnNjcmF0Y2hBbmRTYXZlLnNjcmF0Y2hQYWRJbWdEaXNhYmxlZH0pLHNjcmF0Y2hBbmRTYXZlLmNyZWF0ZVNjcmF0Y2hBbmRTYXZlQ29va2llKGIsYyxrKSwidW5kZWZpbmVkIiE9CnR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxvY2thZ2UiK3BvcHVwV2lkZ2V0X2lkVG9BZGQpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2NrYWdlIitwb3B1cFdpZGdldF9pZFRvQWRkKS5zdHlsZS5kaXNwbGF5PSJub25lIiksInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJpbnRCdG5PdmVybGF5Iitwb3B1cFdpZGdldF9pZFRvQWRkKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmludEJ0bk92ZXJsYXkiK3BvcHVwV2lkZ2V0X2lkVG9BZGQpLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JhdGNoQW5kU2F2ZUNvdW50ZG93biIrcG9wdXBXaWRnZXRfaWRUb0FkZCkmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NyYXRjaEFuZFNhdmVDb3VudGRvd24iK3BvcHVwV2lkZ2V0X2lkVG9BZGQpLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSwidW5kZWZpbmVkIiE9CnR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJpbnRCdG4iK3BvcHVwV2lkZ2V0X2lkVG9BZGQpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByaW50QnRuIitwb3B1cFdpZGdldF9pZFRvQWRkKS5zdHlsZS5kaXNwbGF5PSJibG9jayIpLCQoIiNzY3JhdGNoQW5kU2F2ZUlGcmFtZSIpLmNvbnRlbnRzKCkuZmluZCgiYm9keSIpLmVtcHR5KCksJCgiI3NjcmF0Y2hBbmRTYXZlSUZyYW1lIikuY29udGVudHMoKS5maW5kKCJib2R5IikuYXBwZW5kKCQoIiNzY3JhdGNoQW5kU2F2ZVByaW50YWJsZURpdiIrcG9wdXBXaWRnZXRfaWRUb0FkZCkuaHRtbCgpKSwkKCIjd1NjcmF0Y2hQYWQiK2EpLmZpbmQoImNhbnZhcyIpLnJlbW92ZSgpLCQoIiN3U2NyYXRjaFBhZCIrYSkuY3NzKCJoZWlnaHQiLCJhdXRvIiksJCgiI3dTY3JhdGNoUGFkIithKS5jc3MoInRvcCIsIjBweCIpKTpudWxsIT1Db29raWVzLmdldCgic2NyYXRjaGFuZHNhdmUiKT9zY3JhdGNoQW5kU2F2ZS5jcmVhdGVTY3JhdGNoQW5kU2F2ZUNvb2tpZShiLApjLGspOigkKCIjd1NjcmF0Y2hQYWQiK2EpLmVtcHR5KCksJCgiI3dTY3JhdGNoUGFkIithKS53U2NyYXRjaFBhZCh7aWRUb0FkZDphLGJhY2tncm91bmRDb2xvcjpkLGVuYWJsZWQ6ZixpbWFnZTI6c2NyYXRjaEFuZFNhdmUuc2NyYXRjaFBhZEltZyxpbWFnZURpc2FibGVkOnNjcmF0Y2hBbmRTYXZlLnNjcmF0Y2hQYWRJbWdEaXNhYmxlZH0pKX1lbHNlIHNjcmF0Y2hBbmRTYXZlLmNyZWF0ZVNjcmF0Y2hBbmRTYXZlQ29va2llKGIsYyxrKSxzY3JhdGNoQW5kU2F2ZS5zaG93SW50ZXJ2YWxQYXJ0aWNpcGF0aW9uTWVzc2FnZShhKX19fSkpfSxzaG93Rm9ybUFmdGVyU2NyYXRjaDpmdW5jdGlvbihhLGIpezM1PmJ8fCgiMSIhPT0kKCIjc2NyYXRjaEZpcnN0RW5hYmxlZCIrYSkudmFsKCk\/c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBjPSQoIiMiK3NjcmF0Y2hBbmRTYXZlLmNvbnRhaW5lcklEK2EpO2MuZmluZCgiLmNvbnRlbnQtYm94IikuaGlkZSgpO2MuZmluZCgiLmZvb3RlciIpLmhpZGUoKTsKc2NyYXRjaEFuZFNhdmUuc2hvd1N1Y2Nlc3NNZXNzYWdlKGMsIiIpfSwyRTMpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIuc2NyYXRjaC1maXJzdCIpLmFkZENsYXNzKCJzY3JhdGNoZWQiKX0sMkUzKSl9LG9uQWZ0ZXJJbml0aWFsaXplOmZ1bmN0aW9uKGEsYixjLGUsZCl7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpJiYiY2FyZGV0YWlsLmh0bWwiPT1lJiYibmV3Ij09YyYmKGEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkPSJSZWJhdGVDb3Vwb25OZXdJbnZlbnRvcnkiKTtiPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKGMsZC50b0FjdGl2ZSxkLm1haW5Qb3B1cCxiLGUsInNjcmF0Y2hBbmRTYXZlUG9wdXBDb250YWluZXIiLGQuc2hvd09uR2VuZXJhbFNSUCk7InRydWUiPT1kLm9uTG9hZEpTJiZiJiYhQ29va2llcy5nZXQoInV1aWQiKSYmKGEuc2V0dGluZ3Muc2hvd29ubG9hZD0KMTApOyJ1bmRlZmluZWQiIT09dHlwZW9mICQoIiNtYWtlbW9kZWwiKS5hdHRyKCJpZCIpJiYiMSI9PT0kKCIjbWFrZW1vZGVsIikudmFsKCkmJihhLnNldHRpbmdzLnNob3dvbmxvYWQ9ITEpO2M9JCgnaW5wdXRbbmFtZT0iZm9yY2VUb0ZpbGxQb3B1cF8nK2MrJyInKTtpZigic2VtIj09PWMudmFsKCl8fCJhbGwiPT09Yy52YWwoKSlhLnNldHRpbmdzLmNvb2tpZU5hbWU9InNob3dJbnZlbnRyb3lGb3JtRmlsbGVkIixhLnNldHRpbmdzLmNvb2tpZUNyZWF0ZT0ib25TdWJtaXQiLGEuc2V0dGluZ3Muc2hvd29ubG9hZD0wPGQuZGVsYXk\/ZC5kZWxheTohMCwkKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIixhLnRhcmdldFswXSkuaGlkZSgpO3JldHVybiJ0cnVlIj09ZC5pc0Zyb21BQT8oQ29va2llcy5yZW1vdmUoZC5jb29raWVOYW1lLCIvIiksZW1haWxIYW5kbGVyLmZyb21BQT0xLGVtYWlsSGFuZGxlci5tYWtlPSQoIiNhYXBvcHVwbWFrZSIpLnZhbCgpLGVtYWlsSGFuZGxlci5tb2RlbD0kKCIjYWFwb3B1cG1vZGVsIikudmFsKCksCmVtYWlsSGFuZGxlci55ZWFyPSQoIiNhYXBvcHVweWVhciIpLnZhbCgpLGVtYWlsSGFuZGxlci5wcmljZT0kKCIjYWFwb3B1cHByaWNlIikudmFsKCksZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPSQoIiNhYXBvcHVwc3RvY2tubyIpLnZhbCgpLGVtYWlsSGFuZGxlci5jYXJpZD0kKCIjYWFwb3B1cGNhcmlkIikudmFsKCksZW1haWxIYW5kbGVyLm93bmVySUQ9JCgiI2FhcG9wdXBvd25lcmlkIikudmFsKCksITApOmJ9LG9uQmVmb3JlT3BlbjpmdW5jdGlvbihhLGIsYyl7c2NyYXRjaEFuZFNhdmUuaW5pdFNjcmF0Y2hQYWQoYSxiLm9sZEJyb3dzZXJFbmFibGVkLGIuYmFja2dyb3VuZENvbG9yLGIuc2NyYXRjaFBhZEVuYWJsZWQpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtzY3JhdGNoQW5kU2F2ZS5wb3NpdGlvblNjcmF0Y2hBbmRTYXZlVGV4dChhKX0sMTAwKTtDb29raWVzLmdldCgicG9wdXBQYWdlVmlld3MiKXx8Q29va2llcy5zZXQoInBvcHVwUGFnZVZpZXdzIiwiMCIsbnVsbCwiLyIpOwokKCIjcG9wdXBEZXBhcnRtZW50IikubGVuZ3RofHwkKGRvY3VtZW50LmJvZHkpLmFwcGVuZCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwRGVwYXJ0bWVudCIgdmFsdWU9IicrYysnIiAvPicpO3JldHVybiEwfSxvbkJlZm9yZVZhbGlkYXRpb246ZnVuY3Rpb24oYSl7cmV0dXJuImRlbW8iPT09JCgiI3JlYmF0ZUVtYWlsIithKS52YWwoKSYmImRlbW8iPT09JCgiI3JlYmF0ZU5hbWUiK2EpLnZhbCgpPy0xOjF9LG9uQmVmb3JlU3VibWl0OmZ1bmN0aW9uKGEsYil7aWYoImRlbW8iPT09JCgiI3JlYmF0ZUVtYWlsIithKS52YWwoKSYmImRlbW8iPT09JCgiI3JlYmF0ZU5hbWUiK2EpLnZhbCgpKXJldHVybiBzY3JhdGNoQW5kU2F2ZS5lbmFibGVTY3JhdGNoUGFkKGEsYiksITE7JCgiLnNjcmF0Y2gtZmlyc3Quc2NyYXRjaGVkIikuZmluZCgiLmZvcm10YWJsZSIpLmhpZGUoKX0sb25BZnRlclN1Ym1pdDpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZD0kKCIjIitzY3JhdGNoQW5kU2F2ZS5jb250YWluZXJJRCsKYSk7ZC5maW5kKCIuc2NyYXRjaC1maXJzdC5zY3JhdGNoZWQiKS5sZW5ndGgmJiIxIj09PSQoIiNzY3JhdGNoRmlyc3RFbmFibGVkIithKS52YWwoKT9zY3JhdGNoQW5kU2F2ZS5zaG93U3VjY2Vzc01lc3NhZ2UoZCxiKTpzY3JhdGNoQW5kU2F2ZS5kb2VzQ29va2llRXhpc3QoKXx8c2NyYXRjaEFuZFNhdmUuZW5hYmxlU2NyYXRjaFBhZChkLGEsYik7ZSYmQ29va2llcy5zZXQoInVzZWRQdXB1cFN1Ym1pdHRlZCIsMSxudWxsLCIvIik7c2NyYXRjaEFuZFNhdmUuY3JlYXRlU2NyYXRjaEFuZFNhdmVDb29raWUoYy5leHBpcmVzLGMuY3VycmVudERhdGUsYy50ZXh0VG9TaG93KX0sb25DbG9zZTpmdW5jdGlvbihhLGIsYyl7InRydWUiPT1jJiYiQ09OU0VOVCIhPT1iJiZwb3B1cFBvc3RNZXNzYWdlT25BdXRvYXViYWluZSgpOyQoIiNwb3B1cERlcGFydG1lbnQiKS5yZW1vdmUoKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnNjcmF0Y2gtZmlyc3Quc2NyYXRjaGVkIikucmVtb3ZlQ2xhc3MoInNjcmF0Y2hlZCIpfSwKM0UzKX0sZW5hYmxlU2NyYXRjaFBhZDpmdW5jdGlvbihhLGIsYyl7YS5maW5kKGMpLnByb3AoImRpc2FibGVkIiwhMCkuaGlkZSgpO2EuZmluZCgiI3dTY3JhdGNoUGFkIitiKS53U2NyYXRjaFBhZCgiZW5hYmxlIik7YS5maW5kKCIjYmxvY2thZ2UiK2IpLmhpZGUoKTthLmZpbmQoIiNwcmludEJ0bk92ZXJsYXkiK2IpLmhpZGUoKTthLmZpbmQoIiNzY3JhdGNoQW5kU2F2ZUNvdW50ZG93biIrYikuaGlkZSgpO2EuZmluZCgiI3ByaW50QnRuIitiKS5zaG93KCk7YS5maW5kKCIjc2NyYXRjaERpdlRleHRPbGRCcm93c2VyIitiKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7YS5maW5kKCIjc2NyYXRjaEFuZFNhdmVJRnJhbWUiKS5jb250ZW50cygpLmZpbmQoImJvZHkiKS5hcHBlbmQoYS5maW5kKCIjc2NyYXRjaEFuZFNhdmVQcmludGFibGVEaXYiK2IpLmh0bWwoKSl9LHNob3dTdWNjZXNzTWVzc2FnZTpmdW5jdGlvbihhLGIpe2EuZmluZCgiLmZvcm10YWJsZSIpLnNob3coKTthLmZpbmQoInRhYmxlIHRib2R5IikuY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4ifSk7CmEuZmluZCgiLnNjcmF0Y2gtZmlyc3RfX3RpdGxlIikuaGlkZSgpO2EuZmluZCgiLnNjcmF0Y2gtZmlyc3RfX2Rlc2MiKS5oaWRlKCk7YS5maW5kKGIpLnByb3AoImRpc2FibGVkIiwhMCkuaGlkZSgpO2EuZmluZCgiLmVtYWlsU2VudE1zZyIpLnNob3coKX19OyQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgiLmJsb2NrYWdlIikubGVuZ3RoJiYoJCgiLmJsb2NrYWdlIikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLCQoIi5ibG9ja2FnZSIpLmNzcygiZGlzcGxheSIsImJsb2NrIiksJCgiLmJsb2NrYWdlIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lIikpfSk7Ci8qKiAvanMvbmViQ2FsL25lYkRhdGVGbi5qcyAqKi8KdmFyIF9fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA0OjI0IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDI0LTAxLTMxIDE0OjMxOjU3IjsidXNlIHN0cmljdCI7X19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzI6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0MjoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDIxLTEyLTE1IDEyOjM4OjM5IjsidXNlIHN0cmljdCI7Y29uc3QgbmViRGF0ZUZuPXt9OwokKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyQubmViTGFuZz17bW9udGhOYW1lczoiSmFudmllciBGJmVhY3V0ZTt2cmllciBNYXJzIEF2cmlsIE1haSBKdWluIEp1aWxsZXQgQW8mdWNpcmM7dCBTZXB0ZW1icmUgT2N0b2JyZSBOb3ZlbWJyZSBEJmVhY3V0ZTtjZW1icmUiLnNwbGl0KCIgIiksbW9udGhOYW1lc1Nob3J0OiJKYW52LiBGJmVhY3V0ZTt2ci4gTWFycyBBdnIuIE1haSBKdWluIEp1aWwuIEFvJnVjaXJjO3QgU2VwdC4gT2N0LiBOb3YuIEQmZWFjdXRlO2MuIi5zcGxpdCgiICIpLGRheU5hbWVzOiJEaW1hbmNoZSBMdW5kaSBNYXJkaSBNZXJjcmVkaSBKZXVkaSBWZW5kcmVkaSBTYW1lZGkiLnNwbGl0KCIgIiksZGF5TmFtZXNTaG9ydDoiRGltIEx1biBNYXIgTWVyIEpldSBWZW4gU2FtIi5zcGxpdCgiICIpLGRheU5hbWVzTWluOiJEaSBMdSBNYSBNZSBKZSBWZSBTYSIuc3BsaXQoIiAiKSx3ZWVrSGVhZGVyOiJTbSIsZGF0ZUZvcm1hdDoieS1NLWQiLGZpcnN0RGF5OjEsCmlzUlRMOiExLHNob3dNb250aEFmdGVyWWVhcjohMSx5ZWFyU3VmZml4OiIiLGludmFsaWREYXRlRm9ybWF0OiJpbnZhbGlkX2RhdGUifTokLm5lYkxhbmc9e21vbnRoTmFtZXM6IkphbnVhcnkgRmVicnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksbW9udGhOYW1lc1Nob3J0OiJKYW4uIEZlYi4gTWFyLiBBcHIuIE1heSBKdW4uIEp1bC4gQXVnLiBTZXB0LiBPY3QuIE5vdi4gRGVjLiIuc3BsaXQoIiAiKSxkYXlOYW1lczoiU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2RheSBGcmlkYXkgU2F0dXJkYXkiLnNwbGl0KCIgIiksZGF5TmFtZXNTaG9ydDoiU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0Ii5zcGxpdCgiICIpLGRheU5hbWVzTWluOiJTdSBNbyBUdSBXZSBUaCBGciBTYSIuc3BsaXQoIiAiKSx3ZWVrSGVhZGVyOiJTbSIsZGF0ZUZvcm1hdDoieS1NLWQiLApmaXJzdERheToxLGlzUlRMOiExLHNob3dNb250aEFmdGVyWWVhcjohMSx5ZWFyU3VmZml4OiIiLGludmFsaWREYXRlRm9ybWF0OiJpbnZhbGlkX2RhdGUifTtEYXRlLkxaPWZ1bmN0aW9uKGEpe3JldHVybigwPmF8fDk8YT8iIjoiMCIpK2F9O25lYkRhdGVGbi5MWj1mdW5jdGlvbihhKXtyZXR1cm4oMD5hfHw5PGE\/IiI6IjAiKSthfTtEYXRlLnByZWZlckFtZXJpY2FuRm9ybWF0PSEwO25lYkRhdGVGbi5jbGVhclRpbWU9ZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIERhdGUmJihhLnNldEhvdXJzKDApLGEuc2V0TWludXRlcygwKSxhLnNldFNlY29uZHMoMCksYS5zZXRNaWxsaXNlY29uZHMoMCkpO3JldHVybiBhfTsKRGF0ZS5wcm90b3R5cGUudG9NeXNxbEZvcm1hdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEZ1bGxZZWFyKCkrIi0iK0RhdGUuTFooMSt0aGlzLmdldE1vbnRoKCkpKyItIitEYXRlLkxaKHRoaXMuZ2V0RGF0ZSgpKSsiICIrRGF0ZS5MWih0aGlzLmdldEhvdXJzKCkpKyI6IitEYXRlLkxaKHRoaXMuZ2V0TWludXRlcygpKSsiOiIrRGF0ZS5MWih0aGlzLmdldFNlY29uZHMoKSl9O0RhdGUucHJvdG90eXBlLmlzTGVhcFllYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMjk9PShuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksMSwyOSkpLmdldERhdGUoKX07RGF0ZS5wcm90b3R5cGUuZ2V0TGFzdERheU9mTW9udGhDYWw9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLHRoaXMuZ2V0TW9udGgoKSsxLDApKS5nZXREYXRlKCl9O0RhdGUucHJvdG90eXBlLnNldERheT1mdW5jdGlvbihhKXt0aGlzLnNldERhdGUoYSk7cmV0dXJuIHRoaXN9OwpEYXRlLnByb3RvdHlwZS5zZXRNb249ZnVuY3Rpb24oYSl7dGhpcy5zZXRNb250aChhKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuc2V0WWVhcj1mdW5jdGlvbihhKXt0aGlzLnNldEZ1bGxZZWFyKGEpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5hZGREYXk9ZnVuY3Rpb24oYSl7dGhpcy5zZXREYXRlKHRoaXMuZ2V0RGF0ZSgpK2EpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5hZGRNb249ZnVuY3Rpb24oYSl7dGhpcy5zZXRNb250aCh0aGlzLmdldE1vbnRoKCkrYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmFkZFllYXI9ZnVuY3Rpb24oYSl7dGhpcy5zZXRGdWxsWWVhcih0aGlzLmdldEZ1bGxZZWFyKCkrYSk7cmV0dXJuIHRoaXN9O0RhdGUucGFyc2VEYXRlVGltZT1mdW5jdGlvbihhKXthPWEuc3BsaXQoL1stIDpdLyk7cmV0dXJuIG5ldyBEYXRlKGFbMF0sYVsxXS0xLGFbMl0sYVszXSxhWzRdLGFbNV0pfTsKbmViRGF0ZUZuLnBhcnNlU3RyaW5nPWZ1bmN0aW9uKGEsZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgZXx8bnVsbD09PWV8fCIiPT09ZSl7ZT1bIk0vZC95IiwiTS1kLXkiLCJNLmQueSIsIk0vZCIsIk0tZCJdO3ZhciBjPVsiZC9NL3kiLCJkLU0teSIsImQuTS55IiwiZC9NIiwiZC1NIl07ZT1bInktTS1kO01NTSBkLCB5O01NTSBkLHk7eS1NTU0tZDtkLU1NTS15O01NTSBkO01NTS1kO2QtTU1NIi5zcGxpdCgiOyIpLERhdGUucHJlZmVyQW1lcmljYW5Gb3JtYXQ\/ZTpjLERhdGUucHJlZmVyQW1lcmljYW5Gb3JtYXQ\/YzplXTtmb3IoYz0wO2M8ZS5sZW5ndGg7YysrKWZvcih2YXIgaD1lW2NdLGs9MDtrPGgubGVuZ3RoO2srKyl7dmFyIG49bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEsaFtrXSk7aWYobnVsbCE9PW4pcmV0dXJuIG59cmV0dXJuIG51bGx9dGhpcy5pc0ludGVnZXI9ZnVuY3Rpb24odSl7Zm9yKHZhciBxPTA7cTx1Lmxlbmd0aDtxKyspaWYoLTE9PSIxMjM0NTY3ODkwIi5pbmRleE9mKHUuY2hhckF0KHEpKSlyZXR1cm4hMTsKcmV0dXJuITB9O3RoaXMuZ2V0SW50PWZ1bmN0aW9uKHUscSx5LHcpe2Zvcig7dz49eTt3LS0pe3ZhciB4PXUuc3Vic3RyaW5nKHEscSt3KTtpZih4Lmxlbmd0aDx5KWJyZWFrO2lmKHRoaXMuaXNJbnRlZ2VyKHgpKXJldHVybiB4fXJldHVybiBudWxsfTthKz0iIjtlKz0iIjtoPWM9MDt2YXIgbT0iIixiPSIiLGw9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLGc9MSxkPTEsZj0wLHI9MCx0PTAsdj0iIjttPVtdO2ZvcihiPTA7aDxlLmxlbmd0aDspe209ZS5jaGFyQXQoaCk7Zm9yKGI9IiI7ZS5jaGFyQXQoaCk9PW0mJmg8ZS5sZW5ndGg7KWIrPWUuY2hhckF0KGgrKyk7aWYoInl5eXkiPT1ifHwieXkiPT1ifHwieSI9PWIpeyJ5eXl5Ij09YiYmKG49az00KTsieXkiPT1iJiYobj1rPTIpOyJ5Ij09YiYmKGs9MixuPTQpO2w9dGhpcy5nZXRJbnQoYSxjLGssbik7aWYobnVsbD09PWwpcmV0dXJuIG51bGw7Yys9bC5sZW5ndGg7Mj09bC5sZW5ndGgmJihsPTcwPGw\/MTkwMCsobC0wKToyRTMrCihsLTApKX1lbHNlIGlmKCJNTU0iPT1ifHwiTk5OIj09Yil7Zz0wO209Ik1NTSI9PWI\/JC5uZWJMYW5nLm1vbnRoTmFtZXMuY29uY2F0KCQubmViTGFuZy5tb250aE5hbWVzU2hvcnQpOiQubmViTGFuZy5tb250aE5hbWVzU2hvcnQ7Zm9yKGI9MDtiPG0ubGVuZ3RoO2IrKyl7dmFyIHA9bVtiXTtpZihhLnN1YnN0cmluZyhjLGMrcC5sZW5ndGgpLnRvTG93ZXJDYXNlKCk9PXAudG9Mb3dlckNhc2UoKSl7Zz1iJTEyKzE7Yys9cC5sZW5ndGg7YnJlYWt9fWlmKDE+Z3x8MTI8ZylyZXR1cm4gbnVsbH1lbHNlIGlmKCJFRSI9PWJ8fCJFIj09Yilmb3IobT0iRUUiPT1iPyQubmViTGFuZy5kYXlOYW1lczokLm5lYkxhbmcuZGF5TmFtZXNTaG9ydCxiPTA7YjxtLmxlbmd0aDtiKyspe2lmKHA9bVtiXSxhLnN1YnN0cmluZyhjLGMrcC5sZW5ndGgpLnRvTG93ZXJDYXNlKCk9PXAudG9Mb3dlckNhc2UoKSl7Yys9cC5sZW5ndGg7YnJlYWt9fWVsc2UgaWYoIk1NIj09Ynx8Ik0iPT1iKXtnPXRoaXMuZ2V0SW50KGEsCmMsYi5sZW5ndGgsMik7aWYobnVsbD09PWd8fDE+Z3x8MTI8ZylyZXR1cm4gbnVsbDtjKz1nLmxlbmd0aH1lbHNlIGlmKCJkZCI9PWJ8fCJkIj09Yil7ZD10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PWR8fDE+ZHx8MzE8ZClyZXR1cm4gbnVsbDtjKz1kLmxlbmd0aH1lbHNlIGlmKCJoaCI9PWJ8fCJoIj09Yil7Zj10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PWZ8fDE+Znx8MTI8ZilyZXR1cm4gbnVsbDtjKz1mLmxlbmd0aH1lbHNlIGlmKCJISCI9PWJ8fCJIIj09Yil7Zj10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PWZ8fDA+Znx8MjM8ZilyZXR1cm4gbnVsbDtjKz1mLmxlbmd0aH1lbHNlIGlmKCJLSyI9PWJ8fCJLIj09Yil7Zj10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PWZ8fDA+Znx8MTE8ZilyZXR1cm4gbnVsbDtjKz1mLmxlbmd0aDtmKyt9ZWxzZSBpZigia2siPT1ifHwiayI9PWIpe2Y9dGhpcy5nZXRJbnQoYSwKYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MT5mfHwyNDxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RoO2YtLX1lbHNlIGlmKCJtbSI9PWJ8fCJtIj09Yil7cj10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PXJ8fDA+cnx8NTk8cilyZXR1cm4gbnVsbDtjKz1yLmxlbmd0aH1lbHNlIGlmKCJzcyI9PWJ8fCJzIj09Yil7dD10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PXR8fDA+dHx8NTk8dClyZXR1cm4gbnVsbDtjKz10Lmxlbmd0aH1lbHNlIGlmKCJhIj09Yil7aWYoImFtIj09YS5zdWJzdHJpbmcoYyxjKzIpLnRvTG93ZXJDYXNlKCkpdj0iQU0iO2Vsc2UgaWYoInBtIj09YS5zdWJzdHJpbmcoYyxjKzIpLnRvTG93ZXJDYXNlKCkpdj0iUE0iO2Vsc2UgcmV0dXJuIG51bGw7Yys9Mn1lbHNle2lmKGEuc3Vic3RyaW5nKGMsYytiLmxlbmd0aCkhPWIpcmV0dXJuIG51bGw7Yys9Yi5sZW5ndGh9fWlmKGMhPWEubGVuZ3RoKXJldHVybiBudWxsO2lmKDI9PQpnKWlmKDA9PT1sJTQmJjAhPT1sJTEwMHx8MD09PWwlNDAwKXtpZigyOTxkKXJldHVybiBudWxsfWVsc2UgaWYoMjg8ZClyZXR1cm4gbnVsbDtpZigzMDxkJiYoND09Z3x8Nj09Z3x8OT09Z3x8MTE9PWcpKXJldHVybiBudWxsOzEyPmYmJiJQTSI9PXY\/Zj1mLTArMTI6MTE8ZiYmIkFNIj09diYmKGYtPTEyKTtyZXR1cm4gbmV3IERhdGUobCxnLTEsZCxmLHIsdCl9O0RhdGUuaXNWYWxpZD1mdW5jdGlvbihhLGUpe3JldHVybiBudWxsIT09bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEsZSl9O0RhdGUucHJvdG90eXBlLmRpZmY9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hPyExOnRoaXMuZ2V0VGltZSgpPT1hLmdldFRpbWUoKT8wOnRoaXMuZ2V0VGltZSgpPmEuZ2V0VGltZSgpPy0xOjF9OwpEYXRlLnByb3RvdHlwZS5mb3JtYXQ9ZnVuY3Rpb24oYSl7YSs9IiI7dmFyIGU9IiIsYz0wLGg9dGhpcy5nZXRGdWxsWWVhcigpKyIiLGs9dGhpcy5nZXRNb250aCgpKzEsbj10aGlzLmdldERhdGUoKSxtPXRoaXMuZ2V0RGF5KCksYj10aGlzLmdldEhvdXJzKCksbD10aGlzLmdldE1pbnV0ZXMoKSxnPXRoaXMuZ2V0U2Vjb25kcygpLGQ9e307ND5oLmxlbmd0aCYmKGg9IiIrKCtoKzE5MDApKTtkLnk9IiIraDtkLnl5eXk9aDtkLnl5PWguc3Vic3RyaW5nKDIsNCk7ZC5NPWs7ZC5NTT1EYXRlLkxaKGspO2QuTU1NPSQubmViTGFuZy5tb250aE5hbWVzW2stMV07ZC5OTk49JC5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydFtrLTFdO2QuZD1uO2QuZGQ9RGF0ZS5MWihuKTtkLkU9JC5uZWJMYW5nLmRheU5hbWVzU2hvcnRbbV07ZC5FRT0kLm5lYkxhbmcuZGF5TmFtZXNbbV07ZC5IPWI7ZC5ISD1EYXRlLkxaKGIpO2QuaD0wPT09Yj8xMjoxMjxiP2ItMTI6YjtkLmhoPURhdGUuTFooZC5oKTtkLks9CmQuaC0xO2Quaz1kLkgrMTtkLktLPURhdGUuTFooZC5LKTtkLmtrPURhdGUuTFooZC5rKTtkLmE9MTE8Yj8iUE0iOiJBTSI7ZC5tPWw7ZC5tbT1EYXRlLkxaKGwpO2Qucz1nO2ZvcihkLnNzPURhdGUuTFooZyk7YzxhLmxlbmd0aDspe2g9YS5jaGFyQXQoYyk7Zm9yKGs9IiI7YS5jaGFyQXQoYyk9PWgmJmM8YS5sZW5ndGg7KWsrPWEuY2hhckF0KGMrKyk7ZT0idW5kZWZpbmVkIiE9dHlwZW9mIGRba10\/ZStkW2tdOmUra31yZXR1cm4gZX07CkRhdGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGUpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGF8fG51bGw9PT1hfHwidW5kZWZpbmVkIj09PXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gdGhpcztlPStlO2lmKCJ5Ij09YSl0aGlzLnNldEZ1bGxZZWFyKHRoaXMuZ2V0RnVsbFllYXIoKStlKTtlbHNlIGlmKCJNIj09YSl0aGlzLnNldE1vbnRoKHRoaXMuZ2V0TW9udGgoKStlKTtlbHNlIGlmKCJkIj09YSl0aGlzLnNldERhdGUodGhpcy5nZXREYXRlKCkrZSk7ZWxzZSBpZigidyI9PWEpZm9yKGE9MDxlPzE6LTE7MCE9PWU7KXtmb3IodGhpcy5hZGQoImQiLGEpOzA9PT10aGlzLmdldERheSgpfHw2PT09dGhpcy5nZXREYXkoKTspdGhpcy5hZGQoImQiLGEpO2UtPWF9ZWxzZSJoIj09YT90aGlzLnNldEhvdXJzKHRoaXMuZ2V0SG91cnMoKStlKToibSI9PWE\/dGhpcy5zZXRNaW51dGVzKHRoaXMuZ2V0TWludXRlcygpK2UpOiJzIj09YSYmdGhpcy5zZXRTZWNvbmRzKHRoaXMuZ2V0U2Vjb25kcygpKwplKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy5nZXRUaW1lKCkpfTsKLyoqIC9qcy9uZWJDYWwvbmViQ2FsLmpzICoqLwp2YXIgX19fZDJjX25lYkNhbGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDQ6MjIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX25lYkNhbGpzX2Nfb249IjIwMjQtMDQtMTYgMTE6MzA6MDciOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGUpe2UubmViQ2FsPWZ1bmN0aW9uKGgsZyl7dmFyIGw9e3NsaWRlRHVyYXRpb246NTAwLGZhZGVEdXJhdGlvbjoyMDAsdG9nZ2xlRHVyYXRpb246MjAwLHByZWZpbGw6ITEsZGVmYXVsdERhdGU6dm9pZCAwLGxpbmtXaXRoSW5wdXQ6ITAsa2V5TmF2aWdhdGlvbjohMCx0aGVtZToiZGVmYXVsdCIsZGVmYXVsdFZpZXc6Im1vbnRoIixzdGFydE1vbmRheTohMSxhbHdheXNTaG93OiExLGluamVjdEluc2lkZVRhcmdldDohMSxmb3JtYXQ6Inl5eXktTU0tZGQiLGFsaWduWDoibWlkZGxlIixhbGlnblk6ImJvdHRvbSIsb2Zmc2V0WDoyMCxvZmZzZXRZOjAscG9ydHJhaXQ6ITAscGlja2FibGU6ITAsdG9nZ2xlcjp2b2lkIDAsZGlzYWxsb3dVc2VySW5wdXQ6ITEsbWluRGF0ZTp2b2lkIDAsbWF4RGF0ZTp2b2lkIDAsZXhjbHVkZWRXZWVrZGF5czp2b2lkIDAsZXhjbHVkZWREYXRlczp2b2lkIDAsY3JlYXRlSGlkZGVuSW5wdXQ6ITEsaGlkZGVuSW5wdXROYW1lOiJkYXRlIixoaWRkZW5JbnB1dEZvcm1hdDoiJXQiLApvblNlbGVjdDohMSxvblZpZXdDaGFuZ2U6ITF9LGE9dGhpczthLm9wdGlvbnM9e307YS50YXJnZXQ9ZShoKTthLmluaXQ9ZnVuY3Rpb24oKXthLm9wdGlvbnM9ZS5leHRlbmQoe30sbCxnKTthLnRvZGF5PW5lYkRhdGVGbi5jbGVhclRpbWUobmV3IERhdGUpO2EudHJhbnNpdGlvbmluZz0hMTt2b2lkIDAhPT1hLm9wdGlvbnMuZGVmYXVsdERhdGU\/YS5zZWxlY3RlZERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS5vcHRpb25zLmRlZmF1bHREYXRlKSk6YS5vcHRpb25zLmxpbmtXaXRoSW5wdXQmJnZvaWQgMCE9PWEudGFyZ2V0LnZhbCgpJiYwIT09YS50YXJnZXQudmFsKCkmJihhLnNlbGVjdGVkRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLnRhcmdldC52YWwoKSkpKTtpZih2b2lkIDA9PT1hLnNlbGVjdGVkRGF0ZXx8bnVsbD09PWEuc2VsZWN0ZWREYXRlKWEuc2VsZWN0ZWREYXRlPWEudG9kYXkuY2xvbmUoKTsKYS5lbGVtZW50PWUoJzxkaXYgY2xhc3M9Im5lYkNhbCAnK2Eub3B0aW9ucy50aGVtZSsnIiBzdHlsZT0iZGlzcGxheTogJysoYS5vcHRpb25zLmFsd2F5c1Nob3c\/ImJsb2NrIjoibm9uZSIpKyciPjxkaXYgY2xhc3M9ImNhbC13cmFwcGVyIj48ZGl2IGNsYXNzPSJjYWwtaGVhZGVyIj48ZGl2IGNsYXNzPSJjYWwtYXJyb3ctbGVmdCI+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWFycm93LXJpZ2h0Ij48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtbGFiZWwgY2FsLWNsaWNrYWJsZSI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWJvZHkiPjxkaXYgY2xhc3M9ImNhbC1pbm5lciI+PGRpdiBjbGFzcz0iY2FsLWNvbnRhaW5lciBhIj48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtY29udGFpbmVyIGIiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1mb290ZXIiPjwvZGl2PjwvZGl2PjwvZGl2PicpO2Eub3B0aW9ucy5pbmplY3RJbnNpZGVUYXJnZXQ\/KGEuZWxlbWVudC5hZGRDbGFzcygiaW5saW5lIiksCmEuZWxlbWVudC5hcHBlbmRUbyhhLnRhcmdldCkpOihhLmVsZW1lbnQuYXBwZW5kVG8oZSgiYm9keSIpKSxhLnBvc2l0aW9uKCksZSh3aW5kb3cpLm9uKCJyZXNpemUiLGEucG9zaXRpb24pKTthLmN1cnJlbnRDb250YWluZXI9YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmEiKS5jc3MoInotaW5kZXgiLDk5OSk7YS50ZW1wQ29udGFpbmVyPWEuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5iIikuY3NzKCJ6LWluZGV4Iiw5OTgpO2EuaGVhZGVyPWEuZWxlbWVudC5maW5kKCIuY2FsLWhlYWRlciIpO2EubGFiZWw9YS5oZWFkZXIuZmluZCgiLmNhbC1sYWJlbCIpO2EuYXJyb3dMZWZ0PWEuaGVhZGVyLmZpbmQoIi5jYWwtYXJyb3ctbGVmdCIpO2EuYXJyb3dSaWdodD1hLmhlYWRlci5maW5kKCIuY2FsLWFycm93LXJpZ2h0Iik7YS5sYWJlbC5vbigiY2xpY2siLGEubGV2ZWxVcCk7YS5hcnJvd0xlZnQub24oImNsaWNrIixhLnNsaWRlTGVmdCk7YS5hcnJvd1JpZ2h0Lm9uKCJjbGljayIsCmEuc2xpZGVSaWdodCk7dm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJihhLm9wdGlvbnMubWluRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLm9wdGlvbnMubWluRGF0ZSkpKTt2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmKGEub3B0aW9ucy5tYXhEYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEub3B0aW9ucy5tYXhEYXRlKSkpO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZERhdGVzKXt2YXIgYj1bXTthLm9wdGlvbnMuZXhjbHVkZWREYXRlcy5lYWNoKGZ1bmN0aW9uKGMpe2IuaW5jbHVkZShhLmZvcm1hdChuZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhjKSksIiV0IikpfSk7YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXM9Yn1hLm9wdGlvbnMuY3JlYXRlSGlkZGVuSW5wdXQmJihhLmhpZGRlbklucHV0PShuZXcgRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJoaWRkZW4iLApuYW1lOmEub3B0aW9ucy5oaWRkZW5JbnB1dE5hbWV9KSkuYXBwZW5kVG8oYS50YXJnZXQpKTshYS5vcHRpb25zLmRpc2FsbG93VXNlcklucHV0JiZhLm9wdGlvbnMubGlua1dpdGhJbnB1dCYmImlucHV0Ij09YS50YXJnZXQuYXR0cigidGFnIikmJmEudGFyZ2V0LmFkZEV2ZW50KCJrZXl1cCIsZnVuY3Rpb24oKXthLnNldERhdGUoYS50YXJnZXQuYXR0cigidmFsdWUiKSwhMSl9KTt2b2lkIDAhPT1hLm9wdGlvbnMudG9nZ2xlciYmKGEub3B0aW9ucy50b2dnbGVyPWUoYS5vcHRpb25zLnRvZ2dsZXIpKTsodm9pZCAwIT09YS5vcHRpb25zLnRvZ2dsZXI\/YS5vcHRpb25zLnRvZ2dsZXI6YS50YXJnZXQpLm9uKCJmb2N1cyIsYS5zaG93KS5vbigiY2xpY2siLGEuc2hvdyk7aWYoIWEub3B0aW9ucy5hbHdheXNTaG93KWUoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGEub3V0c2lkZUNsaWNrKTsiSU5QVVQiPT1hLnRhcmdldC5wcm9wKCJ0YWdOYW1lIikmJihhLnRhcmdldC50cmlnZ2VyKCJrZXlkb3duIiwKYS5vbktleURvd24pLGEudGFyZ2V0LnRyaWdnZXIoImtleXVwIixhLm9uS2V5VXApLGEub3B0aW9ucy5kaXNhbGxvd1VzZXJJbnB1dCYmYS50YXJnZXQuYWRkRXZlbnQoImNvbnRleHRtZW51IiwkbGFtYmRhKCExKSkpO2Euc2VsZWN0ZWREYXRlPWEuY29ycmVjdERhdGUoYS5zZWxlY3RlZERhdGUpO2Eub3B0aW9ucy5wcmVmaWxsJiZhLnBpY2soKTthLnZpZXdEYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUoYS5zZWxlY3RlZERhdGUuY2xvbmUoKS5zZXREYXkoMSkpO2Eudmlldz1hLm9wdGlvbnMuZGVmYXVsdFZpZXc7YS5yZW5kZXIoKX07YS5yZW5kZXI9ZnVuY3Rpb24oKXthLmN1cnJlbnRDb250YWluZXIuZW1wdHkoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJkZWNhZGUiOmEucmVuZGVyRGVjYWRlKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7ZGVmYXVsdDphLnJlbmRlck1vbnRoKCl9cmV0dXJuIGF9O2EucmVuZGVyTW9udGg9ZnVuY3Rpb24oKXthLnZpZXc9CiJtb250aCI7YS5jdXJyZW50Q29udGFpbmVyLmVtcHR5KCkuYWRkQ2xhc3MoImNhbC1tb250aCIpO2Eub3B0aW9ucy5waWNrYWJsZSYmYS5jdXJyZW50Q29udGFpbmVyLmFkZENsYXNzKCJjYWwtcGlja2FibGUiKTt2YXIgYj1lLm5lYkxhbmcsYz1hLnZpZXdEYXRlLmdldERheSgpLShhLm9wdGlvbnMuc3RhcnRNb25kYXk\/MTowKTstMT09YyYmKGM9Nik7YS5sYWJlbC5odG1sKGIubW9udGhOYW1lc1thLnZpZXdEYXRlLmdldE1vbnRoKCldKyIgIithLnZpZXdEYXRlLmZvcm1hdCgieXl5eSIpKTtmb3IodmFyIGQ9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lciksZj1hLm9wdGlvbnMuc3RhcnRNb25kYXk\/MTowO2Y8KGEub3B0aW9ucy5zdGFydE1vbmRheT84OjcpO2YrKyl7dmFyIGs9ZSgiPGRpdj48L2Rpdj4iKS5odG1sKGIuZGF5TmFtZXNTaG9ydFthLm9wdGlvbnMuc3RhcnRNb25kYXkmJjc9PWY\/MDpmXSkuYXBwZW5kVG8oZCk7CmsuaHRtbChrLmh0bWwoKSl9ZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKTtiPWEudmlld0RhdGUuY2xvbmUoKS5hZGQoIk0iLC0xKS5nZXRMYXN0RGF5T2ZNb250aENhbCgpO2ZvcihmPTA7ZjxjO2YrKylhLmluamVjdERheShkLGEudmlld0RhdGUuY2xvbmUoKS5hZGQoIk0iLC0xKS5zZXREYXkoYi0oYy1mKSsxKSwhMCk7Zm9yKGY9MTtmPD1hLnZpZXdEYXRlLmdldExhc3REYXlPZk1vbnRoQ2FsKCk7ZisrKWEuaW5qZWN0RGF5KGQsYS52aWV3RGF0ZS5jbG9uZSgpLnNldERheShmKSksNz09ZC5jaGlsZHJlbigpLmxlbmd0aCYmKGQ9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lcikpO2I9OC1kLmNoaWxkcmVuKCkubGVuZ3RoO2M9YS52aWV3RGF0ZS5jbG9uZSgpLmFkZCgiTSIsMSkuc2V0RGF5KDEpO2ZvcihmPTE7ZjxiO2YrKylhLmluamVjdERheShkLApjLmNsb25lKCkuc2V0RGF5KGYpLCEwKTtmb3IoYj1hLmN1cnJlbnRDb250YWluZXIuZmluZCgiLmNhbC1yb3ciKS5sZW5ndGg7Nz5iO2IrKylmb3IoZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSxrPTA7Nz5rO2srKylhLmluamVjdERheShkLGMuY2xvbmUoKS5zZXREYXkoZiksITApLGYrKzthLnJlbmRlckFmdGVyKCl9O2EuaW5qZWN0RGF5PWZ1bmN0aW9uKGIsYyxkKXtiPWUoIjxkaXY+PC9kaXY+IikuaHRtbChjLmdldERhdGUoKSkuYXBwZW5kVG8oYik7Yi5kYXRhKCJkYXRlIixjKTtkJiZiLmFkZENsYXNzKCJjYWwtb3V0c2lkZSIpO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiZhLm9wdGlvbnMubWluRGF0ZT5jfHx2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmYS5vcHRpb25zLm1heERhdGU8Y3x8dm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMmJmEub3B0aW9ucy5leGNsdWRlZFdlZWtkYXlzLmNvbnRhaW5zKGMuZm9ybWF0KCJFIikudG9JbnQoKSl8fAp2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWREYXRlcyYmYS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMuY29udGFpbnMoYS5mb3JtYXQoYywiJXQiKSkpYi5hZGRDbGFzcygiY2FsLW5vbi1zZWxlY3RhYmxlIik7ZWxzZSBpZihhLm9wdGlvbnMucGlja2FibGUpYi5vbigiY2xpY2siLGEucGljayk7Yy5mb3JtYXQoImQiKT09YS50b2RheS5mb3JtYXQoImQiKSYmYi5hZGRDbGFzcygiY2FsLXRvZGF5Iik7ZHx8Yy5mb3JtYXQoImQiKSE9YS5zZWxlY3RlZERhdGUuZm9ybWF0KCJkIil8fGIuYWRkQ2xhc3MoImNhbC1zZWxlY3RlZCIpfTthLnJlbmRlclllYXI9ZnVuY3Rpb24oKXthLnZpZXc9InllYXIiO2EuY3VycmVudENvbnRhaW5lci5hZGRDbGFzcygiY2FsLXllYXItZGVjYWRlICIrKGEub3B0aW9ucy5wb3J0cmFpdD8iY2FsLXBvcnRyYWl0IjoiY2FsLWxhbmRzY2FwZSIpKTt2YXIgYj1lLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0O2EubGFiZWwuaHRtbChhLnZpZXdEYXRlLmZvcm1hdCgieXl5eSIpKTsKZm9yKHZhciBjPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpLGQ9MTsxMz5kO2QrKyl7dmFyIGY9ZSgiPGRpdj48L2Rpdj4iKS5odG1sKGJbZC0xXSkuYXBwZW5kVG8oYyksaz1hLnZpZXdEYXRlLmNsb25lKCkuc2V0TW9uKGQtMSk7Zi5kYXRhKCJkYXRlIixrKTtpZih2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmYS5vcHRpb25zLm1pbkRhdGUuY2xvbmUoKS5zZXREYXkoMSk+a3x8dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJmEub3B0aW9ucy5tYXhEYXRlLmNsb25lKCkuc2V0RGF5KDEpPGspZi5hZGRDbGFzcygiY2FsLW5vbi1zZWxlY3RhYmxlIik7ZWxzZSBmLm9uKCJjbGljayIsYS5sZXZlbERvd24pO2QtMT09YS50b2RheS5nZXRNb250aCgpJiZhLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCk9PWEudG9kYXkuZ2V0RnVsbFllYXIoKSYmZi5hZGRDbGFzcygiY2FsLXRvZGF5Iik7ZC0xPT1hLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpJiYKYS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpPT1hLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtc2VsZWN0ZWQiKTtkJShhLm9wdGlvbnMucG9ydHJhaXQ\/Mzo0KXx8MTI9PWR8fChjPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpKX1hLnJlbmRlckFmdGVyKCl9O2EucmVuZGVyRGVjYWRlPWZ1bmN0aW9uKCl7YS5sYWJlbC5yZW1vdmVDbGFzcygiY2FsLWNsaWNrYWJsZSIpO2Eudmlldz0iZGVjYWRlIjthLmN1cnJlbnRDb250YWluZXIuYWRkQ2xhc3MoImNhbC15ZWFyLWRlY2FkZSAiKyhhLm9wdGlvbnMucG9ydHJhaXQ\/ImNhbC1wb3J0cmFpdCI6ImNhbC1sYW5kc2NhcGUiKSk7dmFyIGI7Zm9yKGI9cGFyc2VJbnQoYS52aWV3RGF0ZS5mb3JtYXQoInl5eXkiKSk7YiUxMjspYi0tO2EubGFiZWwuaHRtbChiKyIgJiMxNTA7ICIrKGIrMTEpKTtmb3IodmFyIGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lciksCmQ9YjtkPGIrMTI7ZCsrKXt2YXIgZj1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoZCkuYXBwZW5kVG8oYyksaz1hLnZpZXdEYXRlLmNsb25lKCkuc2V0WWVhcihkKTtmLmRhdGEoImRhdGUiLGspO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiZhLm9wdGlvbnMubWluRGF0ZS5nZXRGdWxsWWVhcigpPmR8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiZhLm9wdGlvbnMubWF4RGF0ZS5nZXRGdWxsWWVhcigpPGQpZi5hZGRDbGFzcygiY2FsLW5vbi1zZWxlY3RhYmxlIik7ZWxzZSBmLm9uKCJjbGljayIsYS5sZXZlbERvd24pO2Q9PWEudG9kYXkuZ2V0RnVsbFllYXIoKSYmZi5hZGRDbGFzcygiY2FsLXRvZGF5Iik7ZD09YS5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSYmZi5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIik7KGQrMSklKGEub3B0aW9ucy5wb3J0cmFpdD8zOjQpfHxkPT1iKzExfHwoYz1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSl9YS5yZW5kZXJBZnRlcigpfTsKYS5yZW5kZXJBZnRlcj1mdW5jdGlvbigpe2Zvcih2YXIgYj1hLmN1cnJlbnRDb250YWluZXIuZmluZCgiLmNhbC1yb3ciKSxjPTA7YzxiLmxlbmd0aDtjKyspZShiW2NdKS5hZGRDbGFzcygiY2FsLXJvdyAiKyJhYmNkZWZnIi5zcGxpdCgiIilbY10rIiAiKyhjJTI\/ImNhbC1ldmVuIjoiY2FsLW9kZCIpKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5vcHRpb25zLm9uVmlld0NoYW5nZSlhLm9wdGlvbnMub25WaWV3Q2hhbmdlKGEudmlldyxhLnNlbGVjdGVkRGF0ZSxhLnZpZXdEYXRlKX07YS5zbGlkZUxlZnQ9ZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmcmJihhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuc3RvcCgpLGEudHJhbnNpdGlvbmluZz0hMSk7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEudmlld0RhdGUuYWRkKCJNIiwtMSk7YnJlYWs7Y2FzZSAieWVhciI6YS52aWV3RGF0ZS5hZGQoInkiLAotMSk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnZpZXdEYXRlLnNldEZ1bGxZZWFyKGEudmlld0RhdGUuZ2V0RnVsbFllYXIoKS0xMil9YS5yZW5kZXIoKTthLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmNzcyh7bGVmdDotYS5jdXJyZW50Q29udGFpbmVyLndpZHRoKCl9KS5hbmltYXRlKHtsZWZ0OjB9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uKTthLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5hbmltYXRlKHtsZWZ0OmEudGVtcENvbnRhaW5lci53aWR0aCgpfSxhLm9wdGlvbnMuc2xpZGVEdXJhdGlvbixmdW5jdGlvbigpe2UodGhpcykuY3NzKHtsZWZ0OjB9KTthLnRyYW5zaXRpb25pbmc9ITF9KX07YS5zbGlkZVJpZ2h0PWZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nJiYoYS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuc3RvcCgpLGEudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLnN0b3AoKSxhLnRyYW5zaXRpb25pbmc9ITEpO2Euc3dpdGNoQ29udGFpbmVycygpOwpzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS52aWV3RGF0ZS5hZGQoIk0iLDEpO2JyZWFrO2Nhc2UgInllYXIiOmEudmlld0RhdGUuYWRkKCJ5IiwxKTticmVhaztjYXNlICJkZWNhZGUiOmEudmlld0RhdGUuc2V0RnVsbFllYXIoYS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpKzEyKX1hLnJlbmRlcigpO2EudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuY3NzKHtsZWZ0OmEuY3VycmVudENvbnRhaW5lci53aWR0aCgpfSkuYW5pbWF0ZSh7bGVmdDowfSxhLm9wdGlvbnMuc2xpZGVEdXJhdGlvbik7YS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuYW5pbWF0ZSh7bGVmdDotYS50ZW1wQ29udGFpbmVyLndpZHRoKCl9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3Moe2xlZnQ6MH0pO2EudHJhbnNpdGlvbmluZz0hMX0pfTthLmxldmVsRG93bj1mdW5jdGlvbihiKXtpZighYS50cmFuc2l0aW9uaW5nKXthLnN3aXRjaENvbnRhaW5lcnMoKTsKYS52aWV3RGF0ZT1lKGIudGFyZ2V0KS5kYXRhKCJkYXRlIik7c3dpdGNoKGEudmlldyl7Y2FzZSAieWVhciI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJZZWFyKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0hMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS5sZXZlbFVwPWZ1bmN0aW9uKCl7aWYoImRlY2FkZSIhPWEudmlldyYmIWEudHJhbnNpdGlvbmluZyl7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEucmVuZGVyWWVhcigpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyRGVjYWRlKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0KITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2EuY2hhbmdlVmlldz1mdW5jdGlvbihiKXtpZighYS50cmFuc2l0aW9uaW5nJiZiIT1hLnZpZXcpe2Euc3dpdGNoQ29udGFpbmVycygpO3N3aXRjaChiKXtjYXNlICJtb250aCI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLnVwZGF0ZU1pbkRhdGU9ZnVuY3Rpb24oYil7aWYoIWEudHJhbnNpdGlvbmluZyYmKGI9bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGIpLG51bGwhPT1iKSl7YS5vcHRpb25zLm1pbkRhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShiKTsKYS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEucmVuZGVyTW9udGgoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlclllYXIoKTticmVhaztjYXNlICJkZWNhZGUiOmEucmVuZGVyRGVjYWRlKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0hMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS51cGRhdGVNYXhEYXRlPWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcmJihiPW5lYkRhdGVGbi5wYXJzZVN0cmluZyhiKSxudWxsIT09Yikpe2Eub3B0aW9ucy5tYXhEYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUoYik7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEucmVuZGVyTW9udGgoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlclllYXIoKTsKYnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlckRlY2FkZSgpfWEudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuZmFkZUluKGEub3B0aW9ucy5mYWRlRHVyYXRpb24sZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmc9ITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2Euc3dpdGNoQ29udGFpbmVycz1mdW5jdGlvbigpe2EuY3VycmVudENvbnRhaW5lcj1hLmN1cnJlbnRDb250YWluZXIuaGFzQ2xhc3MoImEiKT9hLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYiIpOmEuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5hIik7YS50ZW1wQ29udGFpbmVyPWEudGVtcENvbnRhaW5lci5oYXNDbGFzcygiYSIpP2EuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5iIik6YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmEiKTthLmN1cnJlbnRDb250YWluZXIuZW1wdHkoKS5yZW1vdmVDbGFzcygiY2FsLW1vbnRoIGNhbC15ZWFyLWRlY2FkZSAiKwooYS5vcHRpb25zLnBvcnRyYWl0PyJjYWwtcG9ydHJhaXQiOiJjYWwtbGFuZHNjYXBlIikpLmNzcyh7b3BhY2l0eToxLGRpc3BsYXk6ImJsb2NrIiwiei1pbmRleCI6OTk5fSk7YS50ZW1wQ29udGFpbmVyLmNzcygiei1pbmRleCIsOTk4KTthLmxhYmVsLmFkZENsYXNzKCJjYWwtY2xpY2thYmxlIik7YS5hcnJvd0xlZnQuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpO2EuYXJyb3dSaWdodC5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIil9O2EucG9zaXRpb249ZnVuY3Rpb24oKXt2YXIgYj1hLnRhcmdldC5nZXRDb29yZGluYXRlcygpO3N3aXRjaChhLm9wdGlvbnMuYWxpZ25YKXtjYXNlICJsZWZ0Ijp2YXIgYz1iLmxlZnQ7YnJlYWs7Y2FzZSAibWlkZGxlIjpjPWIubGVmdCtiLndpZHRoLzItYS5lbGVtZW50LndpZHRoKCkvMjticmVhaztkZWZhdWx0OmNhc2UgInJpZ2h0IjpjPWIubGVmdCtiLndpZHRofXN3aXRjaChhLm9wdGlvbnMuYWxpZ25ZKXtjYXNlICJib3R0b20iOmI9Yi50b3ArCmIuaGVpZ2h0O2JyZWFrO2Nhc2UgInRvcCI6Yj1iLnRvcC1hLmVsZW1lbnQuZ2V0SGVpZ2h0KCk7YnJlYWs7ZGVmYXVsdDpjYXNlICJjZWlsaW5nIjpiPWIudG9wfWMrPXBhcnNlSW50KGEub3B0aW9ucy5vZmZzZXRYKTtiKz1wYXJzZUludChhLm9wdGlvbnMub2Zmc2V0WSk7YS5lbGVtZW50LmNzcyh7dG9wOmIsbGVmdDpjfSl9O2Euc2hvdz1mdW5jdGlvbigpe2EudmlzaWJsZXx8YS5vcHRpb25zLmFsd2F5c1Nob3d8fChhLnZpc2libGU9ITAsYS5lbGVtZW50LmZhZGVJbihhLm9wdGlvbnMudG9nZ2xlRHVyYXRpb24pLGEucG9zaXRpb24oKSl9O2EuaGlkZT1mdW5jdGlvbigpe2EudmlzaWJsZSYmIWEub3B0aW9ucy5hbHdheXNTaG93JiYoYS52aXNpYmxlPSExLGEuZWxlbWVudC5mYWRlT3V0KGEub3B0aW9ucy50b2dnbGVEdXJhdGlvbikpfTthLnRvZ2dsZT1mdW5jdGlvbigpe2EudmlzaWJsZT9hLmhpZGUoKTphLnNob3coKX07YS5vdXRzaWRlQ2xpY2s9ZnVuY3Rpb24oYil7aWYoYS52aXNpYmxlKXt2YXIgYz0KYS5lbGVtZW50LmdldENvb3JkaW5hdGVzKCksZD1hLnRhcmdldC5nZXRDb29yZGluYXRlcygpOyhiLnBhZ2VYPGMubGVmdHx8Yi5wYWdlWD5jLmxlZnQrYy53aWR0aHx8Yi5wYWdlWTxjLnRvcHx8Yi5wYWdlWT5jLnRvcCtjLmhlaWdodCkmJihiLnBhZ2VYPGQubGVmdHx8Yi5wYWdlWD5kLmxlZnQrZC53aWR0aHx8Yi5wYWdlWTxkLnRvcHx8Yi5wYWdlWT5kLnRvcCtkLmhlaWdodCkmJmEuaGlkZSgpfX07YS5waWNrPWZ1bmN0aW9uKGIpe3ZvaWQgMCE9PWImJihhLnNlbGVjdGVkRGF0ZT1lKGIudGFyZ2V0KS5kYXRhKCJkYXRlIiksYS5lbGVtZW50LmZpbmQoIi5jYWwtc2VsZWN0ZWQiKS5yZW1vdmVDbGFzcygiY2FsLXNlbGVjdGVkIiksZShiLnRhcmdldCkuYWRkQ2xhc3MoImNhbC1zZWxlY3RlZCIpLGUoYi50YXJnZXQpLmhhc0NsYXNzKCJjYWwtb3V0c2lkZSIpP2Eub3B0aW9ucy5hbHdheXNTaG93PzA8YS5zZWxlY3RlZERhdGUuZGlmZihhLnZpZXdEYXRlKT9hLnNsaWRlTGVmdCgpOgphLnNsaWRlUmlnaHQoKTooYS52aWV3RGF0ZT1hLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLnNldERheSgxKSxzZXRUaW1lb3V0KGEucmVuZGVyLDMwMCkpOnNldFRpbWVvdXQoYS5oaWRlLDE1MCkpO2I9YS5mb3JtYXQoYS5zZWxlY3RlZERhdGUpO2I9ZSgiPHRleHRhcmVhIC8+IikuaHRtbChiKS50ZXh0KCk7aWYoIWEub3B0aW9ucy5pbmplY3RJbnNpZGVUYXJnZXQpc3dpdGNoKGEudGFyZ2V0LnByb3AoInRhZ05hbWUiKS50b0xvd2VyQ2FzZSgpKXtjYXNlICJpbnB1dCI6YS50YXJnZXQudmFsKGIpO2JyZWFrO2RlZmF1bHQ6YS50YXJnZXQuaHRtbChiKX12b2lkIDAhPT1hLmhpZGRlbklucHV0JiZhLmhpZGRlbklucHV0LnNldCgidmFsdWUiLGEuZm9ybWF0KGEuc2VsZWN0ZWREYXRlLGEub3B0aW9ucy5oaWRkZW5JbnB1dEZvcm1hdCkpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9wdGlvbnMub25TZWxlY3QpYS5vcHRpb25zLm9uU2VsZWN0KGEuc2VsZWN0ZWREYXRlKTtyZXR1cm4gYX07CmEuZm9ybWF0PWZ1bmN0aW9uKGIsYyl7dm9pZCAwPT09YyYmKGM9dGhpcy5vcHRpb25zLmZvcm1hdCk7aWYodm9pZCAwIT09YilyZXR1cm4gYz1jLnJlcGxhY2UoLyUoW2EteiVdKS9naSxmdW5jdGlvbihkLGYpe3N3aXRjaChmKXtjYXNlICJEIjpyZXR1cm4gYi5nZXQoImRhdGUiKTtjYXNlICJuIjpyZXR1cm4gYi5nZXQoIm1vIikrMTtjYXNlICJ0IjpyZXR1cm4gcGFyc2VJbnQoYi5nZXRUaW1lKCkvMUUzKX1yZXR1cm4iJSIrZn0pLGIuZm9ybWF0KGMpfTthLm9uS2V5RG93bj1mdW5jdGlvbihiKXtpZihhLm9wdGlvbnMua2V5TmF2aWdhdGlvbil7dmFyIGM9YS5zZWxlY3RlZERhdGUuY2xvbmUoKSxkPSEwLGY9ITE7c3dpdGNoKGIud2hpY2gpe2Nhc2UgMzc6Yy5hZGQoImQiLC0xKTtmPSEwO2Q9ITE7YnJlYWs7Y2FzZSAzOTpjLmFkZCgiZCIsMSk7Zj0hMDticmVhaztjYXNlIDM4OmMuYWRkKCJNIiwtMSk7Zj0hMDtkPSExO2JyZWFrO2Nhc2UgNDA6Yy5hZGQoIk0iLDEpO2Y9ITA7YnJlYWs7CmNhc2UgOTpzZXRUaW1lb3V0KGEuaGlkZSwxNTApfWYmJihjPWEuY29ycmVjdERhdGUoYyxkKSwwIT09YS5zZWxlY3RlZERhdGUuZGlmZihjKSYmYS5zZXREYXRlKGMpKX1pZihhLm9wdGlvbnMuZGlzYWxsb3dVc2VySW5wdXQpcmV0dXJuITF9O2Eub25LZXlVcD1mdW5jdGlvbigpey9eXGR7NH0tXGR7Mn0tXGR7Mn0kLy50ZXN0KGEudGFyZ2V0LnZhbCgpKSYmKGEuc2V0RGF0ZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS50YXJnZXQudmFsKCkpKSxhLnRhcmdldC5yZW1vdmVDbGFzcygiaW52YWxpZElucHV0IHRvb2x0aXAiKS5yZW1vdmVBdHRyKCJ0aXRsZSIpKTsvXlxkezJ9LS8udGVzdChhLnRhcmdldC52YWwoKSl8fC9eXGR7NH0tKDFbMy05XXwoWzItOV1bMC05XSkpLy50ZXN0KGEudGFyZ2V0LnZhbCgpKT9hLnRhcmdldC5hZGRDbGFzcygiaW52YWxpZElucHV0IikuYXR0cigidGl0bGUiLGUubmViTGFuZy5pbnZhbGlkRGF0ZUZvcm1hdCkudG9vbHRpcCh7dG9vbHRpcENsYXNzOiJhbGJ1bV90b29sdGlwIiwKcG9zaXRpb246e215OiJjZW50ZXIgdG9wKzMwIixhdDoiIn0sc2hvdzp7ZWZmZWN0OiJmYWRlSW4iLGR1cmF0aW9uOjUwMH0sY2xvc2U6ZnVuY3Rpb24oKXtlKHRoaXMpLnJlbW92ZSgpfX0pOmEudGFyZ2V0LnJlbW92ZUNsYXNzKCJpbnZhbGlkSW5wdXQgdG9vbHRpcCIpLnJlbW92ZUF0dHIoInRpdGxlIil9O2EuY29ycmVjdERhdGU9ZnVuY3Rpb24oYixjKXt2b2lkIDA9PT1jJiYoYz0hMCk7dm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJjA8Yi5kaWZmKGEub3B0aW9ucy5taW5EYXRlKT9iPWEub3B0aW9ucy5taW5EYXRlLmNsb25lKCk6dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJjA+Yi5kaWZmKGEub3B0aW9ucy5tYXhEYXRlKSYmKGI9YS5vcHRpb25zLm1heERhdGUuY2xvbmUoKSk7Zm9yKHZhciBkPTA7dm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMmJmEub3B0aW9ucy5leGNsdWRlZFdlZWtkYXlzLmNvbnRhaW5zKGIuZm9ybWF0KCJFIikudG9JbnQoKSl8fAp2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmMDxiLmRpZmYoYS5vcHRpb25zLm1pbkRhdGUpfHx2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmMD5iLmRpZmYoYS5vcHRpb25zLm1heERhdGUpfHx2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWREYXRlcyYmYS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMuY29udGFpbnMoYS5mb3JtYXQoYiwiJXQiKSk7KXtpZigzMT09ZCljPSFjO2Vsc2UgaWYoNjI9PWQpe2I9YS5vcHRpb25zLm1pbkRhdGUuY2xvbmUoKTticmVha31jP2IuYWRkKCJkIiwxKTpiLmFkZCgiZCIsLTEpO2QrK31yZXR1cm4gYn07YS5zZXREYXRlPWZ1bmN0aW9uKGIsYyl7dm9pZCAwPT09YyYmKGM9ITApO2I9bmViRGF0ZUZuLmNsZWFyVGltZSgiZGF0ZSI9PXR5cGVvZiBiP2I6bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGIpKTtudWxsIT09YiYmKGEuc2VsZWN0ZWREYXRlPWEuY29ycmVjdERhdGUoYiksYS52aWV3RGF0ZT1hLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLnNldERheSgxKSwKYS5yZW5kZXIoKSxjJiZhLnBpY2soKSk7cmV0dXJuIGF9O2EuZ2V0RGF0ZT1mdW5jdGlvbigpe3JldHVybiBhLnNlbGVjdGVkRGF0ZX07YS5pbml0KCl9O2UuZm4ubmViQ2FsPWZ1bmN0aW9uKGgsZyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKHZvaWQgMD09PWUodGhpcykuZGF0YSgibmViQ2FsIikpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgaHx8Im9iamVjdCI9PXR5cGVvZiBoKXt2YXIgbD1uZXcgZS5uZWJDYWwodGhpcyxoKTtlKHRoaXMpLmRhdGEoIm5lYkNhbCIsbCl9fWVsc2Ugc3dpdGNoKGgpe2Nhc2UgImNoYW5nZVZpZXciOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLmNoYW5nZVZpZXcoZyk7YnJlYWs7Y2FzZSAibWluRGF0ZSI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikudXBkYXRlTWluRGF0ZShnKTticmVhaztjYXNlICJtYXhEYXRlIjppZigidW5kZWZpbmVkIj09CnR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikudXBkYXRlTWF4RGF0ZShnKTticmVhaztjYXNlICJzZXREYXRlIjppZigidW5kZWZpbmVkIj09dHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS5zZXREYXRlKGcpO2JyZWFrO2Nhc2UgInJlcG9zaXRpb24iOmUodGhpcykuZGF0YSgibmViQ2FsIikucG9zaXRpb24oKX19KX07ZS5mbi5nZXRDb29yZGluYXRlcz1mdW5jdGlvbihoKXtoPWUodGhpcykub2Zmc2V0KCk7dmFyIGc9ZSh0aGlzKS53aWR0aCgpLGw9ZSh0aGlzKS5oZWlnaHQoKSxhPWUod2luZG93KS53aWR0aCgpLWgubGVmdC1nLGI9ZSh3aW5kb3cpLmhlaWdodCgpLWgudG9wLWw7cmV0dXJue3RvcDpoLnRvcCxsZWZ0OmgubGVmdCx3aWR0aDpnLGhlaWdodDpsLHJpZ2h0OmEsYm90dG9tOmJ9fX0pKGpRdWVyeSk7Ci8qKiAvanMvdnVlL3Z1ZS5taW4uanMgKiovCi8qIQ0KICogVnVlLmpzIHYyLjYuMTENCiAqIChjKSAyMDE0LTIwMTkgRXZhbiBZb3UNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4NCiAqLw0KIWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGU9ZXx8c2VsZikuVnVlPXQoKX0odGhpcyxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiB0KGUpe3JldHVybiBudWxsPT1lfWZ1bmN0aW9uIG4oZSl7cmV0dXJuIG51bGwhPWV9ZnVuY3Rpb24gcihlKXtyZXR1cm4hMD09PWV9ZnVuY3Rpb24gaShlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV8fCJudW1iZXIiPT10eXBlb2YgZXx8InN5bWJvbCI9PXR5cGVvZiBlfHwiYm9vbGVhbiI9PXR5cGVvZiBlfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV9dmFyIGE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBzKGUpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09YS5jYWxsKGUpfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9cGFyc2VGbG9hdChTdHJpbmcoZSkpO3JldHVybiB0Pj0wJiZNYXRoLmZsb29yKHQpPT09dCYmaXNGaW5pdGUoZSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbihlKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbiYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY2F0Y2h9ZnVuY3Rpb24gbChlKXtyZXR1cm4gbnVsbD09ZT8iIjpBcnJheS5pc0FycmF5KGUpfHxzKGUpJiZlLnRvU3RyaW5nPT09YT9KU09OLnN0cmluZ2lmeShlLG51bGwsMik6U3RyaW5nKGUpfWZ1bmN0aW9uIGYoZSl7dmFyIHQ9cGFyc2VGbG9hdChlKTtyZXR1cm4gaXNOYU4odCk\/ZTp0fWZ1bmN0aW9uIHAoZSx0KXtmb3IodmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPWUuc3BsaXQoIiwiKSxpPTA7aTxyLmxlbmd0aDtpKyspbltyW2ldXT0hMDtyZXR1cm4gdD9mdW5jdGlvbihlKXtyZXR1cm4gbltlLnRvTG93ZXJDYXNlKCldfTpmdW5jdGlvbihlKXtyZXR1cm4gbltlXX19dmFyIGQ9cCgic2xvdCxjb21wb25lbnQiLCEwKSx2PXAoImtleSxyZWYsc2xvdCxzbG90LXNjb3BlLGlzIik7ZnVuY3Rpb24gaChlLHQpe2lmKGUubGVuZ3RoKXt2YXIgbj1lLmluZGV4T2YodCk7aWYobj4tMSlyZXR1cm4gZS5zcGxpY2UobiwxKX19dmFyIG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB5KGUsdCl7cmV0dXJuIG0uY2FsbChlLHQpfWZ1bmN0aW9uIGcoZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHRbbl18fCh0W25dPWUobikpfX12YXIgXz0vLShcdykvZyxiPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShfLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/dC50b1VwcGVyQ2FzZSgpOiIifSl9KSwkPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0pLHc9L1xCKFtBLVpdKS9nLEM9ZyhmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKHcsIi0kMSIpLnRvTG93ZXJDYXNlKCl9KTt2YXIgeD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZD9mdW5jdGlvbihlLHQpe3JldHVybiBlLmJpbmQodCl9OmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByP3I+MT9lLmFwcGx5KHQsYXJndW1lbnRzKTplLmNhbGwodCxuKTplLmNhbGwodCl9cmV0dXJuIG4uX2xlbmd0aD1lLmxlbmd0aCxufTtmdW5jdGlvbiBrKGUsdCl7dD10fHwwO2Zvcih2YXIgbj1lLmxlbmd0aC10LHI9bmV3IEFycmF5KG4pO24tLTspcltuXT1lW24rdF07cmV0dXJuIHJ9ZnVuY3Rpb24gQShlLHQpe2Zvcih2YXIgbiBpbiB0KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBPKGUpe2Zvcih2YXIgdD17fSxuPTA7bjxlLmxlbmd0aDtuKyspZVtuXSYmQSh0LGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIFMoZSx0LG4pe312YXIgVD1mdW5jdGlvbihlLHQsbil7cmV0dXJuITF9LEU9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9O2Z1bmN0aW9uIE4oZSx0KXtpZihlPT09dClyZXR1cm4hMDt2YXIgbj1vKGUpLHI9byh0KTtpZighbnx8IXIpcmV0dXJuIW4mJiFyJiZTdHJpbmcoZSk9PT1TdHJpbmcodCk7dHJ5e3ZhciBpPUFycmF5LmlzQXJyYXkoZSksYT1BcnJheS5pc0FycmF5KHQpO2lmKGkmJmEpcmV0dXJuIGUubGVuZ3RoPT09dC5sZW5ndGgmJmUuZXZlcnkoZnVuY3Rpb24oZSxuKXtyZXR1cm4gTihlLHRbbl0pfSk7aWYoZSBpbnN0YW5jZW9mIERhdGUmJnQgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBlLmdldFRpbWUoKT09PXQuZ2V0VGltZSgpO2lmKGl8fGEpcmV0dXJuITE7dmFyIHM9T2JqZWN0LmtleXMoZSksYz1PYmplY3Qua2V5cyh0KTtyZXR1cm4gcy5sZW5ndGg9PT1jLmxlbmd0aCYmcy5ldmVyeShmdW5jdGlvbihuKXtyZXR1cm4gTihlW25dLHRbbl0pfSl9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGooZSx0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylpZihOKGVbbl0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gRChlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBMPSJkYXRhLXNlcnZlci1yZW5kZXJlZCIsTT1bImNvbXBvbmVudCIsImRpcmVjdGl2ZSIsImZpbHRlciJdLEk9WyJiZWZvcmVDcmVhdGUiLCJjcmVhdGVkIiwiYmVmb3JlTW91bnQiLCJtb3VudGVkIiwiYmVmb3JlVXBkYXRlIiwidXBkYXRlZCIsImJlZm9yZURlc3Ryb3kiLCJkZXN0cm95ZWQiLCJhY3RpdmF0ZWQiLCJkZWFjdGl2YXRlZCIsImVycm9yQ2FwdHVyZWQiLCJzZXJ2ZXJQcmVmZXRjaCJdLEY9e29wdGlvbk1lcmdlU3RyYXRlZ2llczpPYmplY3QuY3JlYXRlKG51bGwpLHNpbGVudDohMSxwcm9kdWN0aW9uVGlwOiExLGRldnRvb2xzOiExLHBlcmZvcm1hbmNlOiExLGVycm9ySGFuZGxlcjpudWxsLHdhcm5IYW5kbGVyOm51bGwsaWdub3JlZEVsZW1lbnRzOltdLGtleUNvZGVzOk9iamVjdC5jcmVhdGUobnVsbCksaXNSZXNlcnZlZFRhZzpULGlzUmVzZXJ2ZWRBdHRyOlQsaXNVbmtub3duRWxlbWVudDpULGdldFRhZ05hbWVzcGFjZTpTLHBhcnNlUGxhdGZvcm1UYWdOYW1lOkUsbXVzdFVzZVByb3A6VCxhc3luYzohMCxfbGlmZWN5Y2xlSG9va3M6SX0sUD0vYS16QS1aXHUwMEI3XHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMzdEXHUwMzdGLVx1MUZGRlx1MjAwQy1cdTIwMERcdTIwM0YtXHUyMDQwXHUyMDcwLVx1MjE4Rlx1MkMwMC1cdTJGRUZcdTMwMDEtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRkQvO2Z1bmN0aW9uIFIoZSx0LG4scil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEhcix3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX12YXIgSD1uZXcgUmVnRXhwKCJbXiIrUC5zb3VyY2UrIi4kX1xcZF0iKTt2YXIgQixVPSJfX3Byb3RvX18iaW57fSx6PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LFY9InVuZGVmaW5lZCIhPXR5cGVvZiBXWEVudmlyb25tZW50JiYhIVdYRW52aXJvbm1lbnQucGxhdGZvcm0sSz1WJiZXWEVudmlyb25tZW50LnBsYXRmb3JtLnRvTG93ZXJDYXNlKCksSj16JiZ3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLHE9SiYmL21zaWV8dHJpZGVudC8udGVzdChKKSxXPUomJkouaW5kZXhPZigibXNpZSA5LjAiKT4wLFo9SiYmSi5pbmRleE9mKCJlZGdlLyIpPjAsRz0oSiYmSi5pbmRleE9mKCJhbmRyb2lkIiksSiYmL2lwaG9uZXxpcGFkfGlwb2R8aW9zLy50ZXN0KEopfHwiaW9zIj09PUspLFg9KEomJi9jaHJvbWVcL1xkKy8udGVzdChKKSxKJiYvcGhhbnRvbWpzLy50ZXN0KEopLEomJkoubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykpLFk9e30ud2F0Y2gsUT0hMTtpZih6KXRyeXt2YXIgZWU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGVlLCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7UT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdC1wYXNzaXZlIixudWxsLGVlKX1jYXRjaChlKXt9dmFyIHRlPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PUImJihCPSF6JiYhViYmInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJihnbG9iYWwucHJvY2VzcyYmInNlcnZlciI9PT1nbG9iYWwucHJvY2Vzcy5lbnYuVlVFX0VOVikpLEJ9LG5lPXomJndpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO2Z1bmN0aW9uIHJlKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYvbmF0aXZlIGNvZGUvLnRlc3QoZS50b1N0cmluZygpKX12YXIgaWUsb2U9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnJlKFN5bWJvbCkmJiJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmcmUoUmVmbGVjdC5vd25LZXlzKTtpZT0idW5kZWZpbmVkIiE9dHlwZW9mIFNldCYmcmUoU2V0KT9TZXQ6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5zZXQ9T2JqZWN0LmNyZWF0ZShudWxsKX1yZXR1cm4gZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiEwPT09dGhpcy5zZXRbZV19LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt0aGlzLnNldFtlXT0hMH0sZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNldD1PYmplY3QuY3JlYXRlKG51bGwpfSxlfSgpO3ZhciBhZT1TLHNlPTAsY2U9ZnVuY3Rpb24oKXt0aGlzLmlkPXNlKyssdGhpcy5zdWJzPVtdfTtjZS5wcm90b3R5cGUuYWRkU3ViPWZ1bmN0aW9uKGUpe3RoaXMuc3Vicy5wdXNoKGUpfSxjZS5wcm90b3R5cGUucmVtb3ZlU3ViPWZ1bmN0aW9uKGUpe2godGhpcy5zdWJzLGUpfSxjZS5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7Y2UudGFyZ2V0JiZjZS50YXJnZXQuYWRkRGVwKHRoaXMpfSxjZS5wcm90b3R5cGUubm90aWZ5PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuc3Vicy5zbGljZSgpLHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspZVt0XS51cGRhdGUoKX0sY2UudGFyZ2V0PW51bGw7dmFyIHVlPVtdO2Z1bmN0aW9uIGxlKGUpe3VlLnB1c2goZSksY2UudGFyZ2V0PWV9ZnVuY3Rpb24gZmUoKXt1ZS5wb3AoKSxjZS50YXJnZXQ9dWVbdWUubGVuZ3RoLTFdfXZhciBwZT1mdW5jdGlvbihlLHQsbixyLGksbyxhLHMpe3RoaXMudGFnPWUsdGhpcy5kYXRhPXQsdGhpcy5jaGlsZHJlbj1uLHRoaXMudGV4dD1yLHRoaXMuZWxtPWksdGhpcy5ucz12b2lkIDAsdGhpcy5jb250ZXh0PW8sdGhpcy5mbkNvbnRleHQ9dm9pZCAwLHRoaXMuZm5PcHRpb25zPXZvaWQgMCx0aGlzLmZuU2NvcGVJZD12b2lkIDAsdGhpcy5rZXk9dCYmdC5rZXksdGhpcy5jb21wb25lbnRPcHRpb25zPWEsdGhpcy5jb21wb25lbnRJbnN0YW5jZT12b2lkIDAsdGhpcy5wYXJlbnQ9dm9pZCAwLHRoaXMucmF3PSExLHRoaXMuaXNTdGF0aWM9ITEsdGhpcy5pc1Jvb3RJbnNlcnQ9ITAsdGhpcy5pc0NvbW1lbnQ9ITEsdGhpcy5pc0Nsb25lZD0hMSx0aGlzLmlzT25jZT0hMSx0aGlzLmFzeW5jRmFjdG9yeT1zLHRoaXMuYXN5bmNNZXRhPXZvaWQgMCx0aGlzLmlzQXN5bmNQbGFjZWhvbGRlcj0hMX0sZGU9e2NoaWxkOntjb25maWd1cmFibGU6ITB9fTtkZS5jaGlsZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocGUucHJvdG90eXBlLGRlKTt2YXIgdmU9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9IiIpO3ZhciB0PW5ldyBwZTtyZXR1cm4gdC50ZXh0PWUsdC5pc0NvbW1lbnQ9ITAsdH07ZnVuY3Rpb24gaGUoZSl7cmV0dXJuIG5ldyBwZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxTdHJpbmcoZSkpfWZ1bmN0aW9uIG1lKGUpe3ZhciB0PW5ldyBwZShlLnRhZyxlLmRhdGEsZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5zbGljZSgpLGUudGV4dCxlLmVsbSxlLmNvbnRleHQsZS5jb21wb25lbnRPcHRpb25zLGUuYXN5bmNGYWN0b3J5KTtyZXR1cm4gdC5ucz1lLm5zLHQuaXNTdGF0aWM9ZS5pc1N0YXRpYyx0LmtleT1lLmtleSx0LmlzQ29tbWVudD1lLmlzQ29tbWVudCx0LmZuQ29udGV4dD1lLmZuQ29udGV4dCx0LmZuT3B0aW9ucz1lLmZuT3B0aW9ucyx0LmZuU2NvcGVJZD1lLmZuU2NvcGVJZCx0LmFzeW5jTWV0YT1lLmFzeW5jTWV0YSx0LmlzQ2xvbmVkPSEwLHR9dmFyIHllPUFycmF5LnByb3RvdHlwZSxnZT1PYmplY3QuY3JlYXRlKHllKTtbInB1c2giLCJwb3AiLCJzaGlmdCIsInVuc2hpZnQiLCJzcGxpY2UiLCJzb3J0IiwicmV2ZXJzZSJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9eWVbZV07UihnZSxlLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLHI9YXJndW1lbnRzLmxlbmd0aDtyLS07KW5bcl09YXJndW1lbnRzW3JdO3ZhciBpLG89dC5hcHBseSh0aGlzLG4pLGE9dGhpcy5fX29iX187c3dpdGNoKGUpe2Nhc2UicHVzaCI6Y2FzZSJ1bnNoaWZ0IjppPW47YnJlYWs7Y2FzZSJzcGxpY2UiOmk9bi5zbGljZSgyKX1yZXR1cm4gaSYmYS5vYnNlcnZlQXJyYXkoaSksYS5kZXAubm90aWZ5KCksb30pfSk7dmFyIF9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGdlKSxiZT0hMDtmdW5jdGlvbiAkZShlKXtiZT1lfXZhciB3ZT1mdW5jdGlvbihlKXt2YXIgdDt0aGlzLnZhbHVlPWUsdGhpcy5kZXA9bmV3IGNlLHRoaXMudm1Db3VudD0wLFIoZSwiX19vYl9fIix0aGlzKSxBcnJheS5pc0FycmF5KGUpPyhVPyh0PWdlLGUuX19wcm90b19fPXQpOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe3ZhciBvPW5bcl07UihlLG8sdFtvXSl9fShlLGdlLF9lKSx0aGlzLm9ic2VydmVBcnJheShlKSk6dGhpcy53YWxrKGUpfTtmdW5jdGlvbiBDZShlLHQpe3ZhciBuO2lmKG8oZSkmJiEoZSBpbnN0YW5jZW9mIHBlKSlyZXR1cm4geShlLCJfX29iX18iKSYmZS5fX29iX18gaW5zdGFuY2VvZiB3ZT9uPWUuX19vYl9fOmJlJiYhdGUoKSYmKEFycmF5LmlzQXJyYXkoZSl8fHMoZSkpJiZPYmplY3QuaXNFeHRlbnNpYmxlKGUpJiYhZS5faXNWdWUmJihuPW5ldyB3ZShlKSksdCYmbiYmbi52bUNvdW50Kyssbn1mdW5jdGlvbiB4ZShlLHQsbixyLGkpe3ZhciBvPW5ldyBjZSxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtpZighYXx8ITEhPT1hLmNvbmZpZ3VyYWJsZSl7dmFyIHM9YSYmYS5nZXQsYz1hJiZhLnNldDtzJiYhY3x8MiE9PWFyZ3VtZW50cy5sZW5ndGh8fChuPWVbdF0pO3ZhciB1PSFpJiZDZShuKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1zP3MuY2FsbChlKTpuO3JldHVybiBjZS50YXJnZXQmJihvLmRlcGVuZCgpLHUmJih1LmRlcC5kZXBlbmQoKSxBcnJheS5pc0FycmF5KHQpJiZmdW5jdGlvbiBlKHQpe2Zvcih2YXIgbj12b2lkIDAscj0wLGk9dC5sZW5ndGg7cjxpO3IrKykobj10W3JdKSYmbi5fX29iX18mJm4uX19vYl9fLmRlcC5kZXBlbmQoKSxBcnJheS5pc0FycmF5KG4pJiZlKG4pfSh0KSkpLHR9LHNldDpmdW5jdGlvbih0KXt2YXIgcj1zP3MuY2FsbChlKTpuO3Q9PT1yfHx0IT10JiZyIT1yfHxzJiYhY3x8KGM\/Yy5jYWxsKGUsdCk6bj10LHU9IWkmJkNlKHQpLG8ubm90aWZ5KCkpfX0pfX1mdW5jdGlvbiBrZShlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSYmYyh0KSlyZXR1cm4gZS5sZW5ndGg9TWF0aC5tYXgoZS5sZW5ndGgsdCksZS5zcGxpY2UodCwxLG4pLG47aWYodCBpbiBlJiYhKHQgaW4gT2JqZWN0LnByb3RvdHlwZSkpcmV0dXJuIGVbdF09bixuO3ZhciByPWUuX19vYl9fO3JldHVybiBlLl9pc1Z1ZXx8ciYmci52bUNvdW50P246cj8oeGUoci52YWx1ZSx0LG4pLHIuZGVwLm5vdGlmeSgpLG4pOihlW3RdPW4sbil9ZnVuY3Rpb24gQWUoZSx0KXtpZihBcnJheS5pc0FycmF5KGUpJiZjKHQpKWUuc3BsaWNlKHQsMSk7ZWxzZXt2YXIgbj1lLl9fb2JfXztlLl9pc1Z1ZXx8biYmbi52bUNvdW50fHx5KGUsdCkmJihkZWxldGUgZVt0XSxuJiZuLmRlcC5ub3RpZnkoKSl9fXdlLnByb3RvdHlwZS53YWxrPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1PYmplY3Qua2V5cyhlKSxuPTA7bjx0Lmxlbmd0aDtuKyspeGUoZSx0W25dKX0sd2UucHJvdG90eXBlLm9ic2VydmVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPWUubGVuZ3RoO3Q8bjt0KyspQ2UoZVt0XSl9O3ZhciBPZT1GLm9wdGlvbk1lcmdlU3RyYXRlZ2llcztmdW5jdGlvbiBTZShlLHQpe2lmKCF0KXJldHVybiBlO2Zvcih2YXIgbixyLGksbz1vZT9SZWZsZWN0Lm93bktleXModCk6T2JqZWN0LmtleXModCksYT0wO2E8by5sZW5ndGg7YSsrKSJfX29iX18iIT09KG49b1thXSkmJihyPWVbbl0saT10W25dLHkoZSxuKT9yIT09aSYmcyhyKSYmcyhpKSYmU2UocixpKTprZShlLG4saSkpO3JldHVybiBlfWZ1bmN0aW9uIFRlKGUsdCxuKXtyZXR1cm4gbj9mdW5jdGlvbigpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QuY2FsbChuLG4pOnQsaT0iZnVuY3Rpb24iPT10eXBlb2YgZT9lLmNhbGwobixuKTplO3JldHVybiByP1NlKHIsaSk6aX06dD9lP2Z1bmN0aW9uKCl7cmV0dXJuIFNlKCJmdW5jdGlvbiI9PXR5cGVvZiB0P3QuY2FsbCh0aGlzLHRoaXMpOnQsImZ1bmN0aW9uIj09dHlwZW9mIGU\/ZS5jYWxsKHRoaXMsdGhpcyk6ZSl9OnQ6ZX1mdW5jdGlvbiBFZShlLHQpe3ZhciBuPXQ\/ZT9lLmNvbmNhdCh0KTpBcnJheS5pc0FycmF5KHQpP3Q6W3RdOmU7cmV0dXJuIG4\/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyktMT09PXQuaW5kZXhPZihlW25dKSYmdC5wdXNoKGVbbl0pO3JldHVybiB0fShuKTpufWZ1bmN0aW9uIE5lKGUsdCxuLHIpe3ZhciBpPU9iamVjdC5jcmVhdGUoZXx8bnVsbCk7cmV0dXJuIHQ\/QShpLHQpOml9T2UuZGF0YT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4\/VGUoZSx0LG4pOnQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0P2U6VGUoZSx0KX0sSS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09lW2VdPUVlfSksTS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09lW2UrInMiXT1OZX0pLE9lLndhdGNoPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGU9PT1ZJiYoZT12b2lkIDApLHQ9PT1ZJiYodD12b2lkIDApLCF0KXJldHVybiBPYmplY3QuY3JlYXRlKGV8fG51bGwpO2lmKCFlKXJldHVybiB0O3ZhciBpPXt9O2Zvcih2YXIgbyBpbiBBKGksZSksdCl7dmFyIGE9aVtvXSxzPXRbb107YSYmIUFycmF5LmlzQXJyYXkoYSkmJihhPVthXSksaVtvXT1hP2EuY29uY2F0KHMpOkFycmF5LmlzQXJyYXkocyk\/czpbc119cmV0dXJuIGl9LE9lLnByb3BzPU9lLm1ldGhvZHM9T2UuaW5qZWN0PU9lLmNvbXB1dGVkPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFlKXJldHVybiB0O3ZhciBpPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEEoaSxlKSx0JiZBKGksdCksaX0sT2UucHJvdmlkZT1UZTt2YXIgamU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD9lOnR9O2Z1bmN0aW9uIERlKGUsdCxuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9dC5vcHRpb25zKSxmdW5jdGlvbihlLHQpe3ZhciBuPWUucHJvcHM7aWYobil7dmFyIHIsaSxvPXt9O2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHI9bi5sZW5ndGg7ci0tOykic3RyaW5nIj09dHlwZW9mKGk9bltyXSkmJihvW2IoaSldPXt0eXBlOm51bGx9KTtlbHNlIGlmKHMobikpZm9yKHZhciBhIGluIG4paT1uW2FdLG9bYihhKV09cyhpKT9pOnt0eXBlOml9O2UucHJvcHM9b319KHQpLGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5pbmplY3Q7aWYobil7dmFyIHI9ZS5pbmplY3Q9e307aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKylyW25baV1dPXtmcm9tOm5baV19O2Vsc2UgaWYocyhuKSlmb3IodmFyIG8gaW4gbil7dmFyIGE9bltvXTtyW29dPXMoYSk\/QSh7ZnJvbTpvfSxhKTp7ZnJvbTphfX19fSh0KSxmdW5jdGlvbihlKXt2YXIgdD1lLmRpcmVjdGl2ZXM7aWYodClmb3IodmFyIG4gaW4gdCl7dmFyIHI9dFtuXTsiZnVuY3Rpb24iPT10eXBlb2YgciYmKHRbbl09e2JpbmQ6cix1cGRhdGU6cn0pfX0odCksIXQuX2Jhc2UmJih0LmV4dGVuZHMmJihlPURlKGUsdC5leHRlbmRzLG4pKSx0Lm1peGlucykpZm9yKHZhciByPTAsaT10Lm1peGlucy5sZW5ndGg7cjxpO3IrKyllPURlKGUsdC5taXhpbnNbcl0sbik7dmFyIG8sYT17fTtmb3IobyBpbiBlKWMobyk7Zm9yKG8gaW4gdCl5KGUsbyl8fGMobyk7ZnVuY3Rpb24gYyhyKXt2YXIgaT1PZVtyXXx8amU7YVtyXT1pKGVbcl0sdFtyXSxuLHIpfXJldHVybiBhfWZ1bmN0aW9uIExlKGUsdCxuLHIpe2lmKCJzdHJpbmciPT10eXBlb2Ygbil7dmFyIGk9ZVt0XTtpZih5KGksbikpcmV0dXJuIGlbbl07dmFyIG89YihuKTtpZih5KGksbykpcmV0dXJuIGlbb107dmFyIGE9JChvKTtyZXR1cm4geShpLGEpP2lbYV06aVtuXXx8aVtvXXx8aVthXX19ZnVuY3Rpb24gTWUoZSx0LG4scil7dmFyIGk9dFtlXSxvPSF5KG4sZSksYT1uW2VdLHM9UGUoQm9vbGVhbixpLnR5cGUpO2lmKHM+LTEpaWYobyYmIXkoaSwiZGVmYXVsdCIpKWE9ITE7ZWxzZSBpZigiIj09PWF8fGE9PT1DKGUpKXt2YXIgYz1QZShTdHJpbmcsaS50eXBlKTsoYzwwfHxzPGMpJiYoYT0hMCl9aWYodm9pZCAwPT09YSl7YT1mdW5jdGlvbihlLHQsbil7aWYoIXkodCwiZGVmYXVsdCIpKXJldHVybjt2YXIgcj10LmRlZmF1bHQ7aWYoZSYmZS4kb3B0aW9ucy5wcm9wc0RhdGEmJnZvaWQgMD09PWUuJG9wdGlvbnMucHJvcHNEYXRhW25dJiZ2b2lkIDAhPT1lLl9wcm9wc1tuXSlyZXR1cm4gZS5fcHJvcHNbbl07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHImJiJGdW5jdGlvbiIhPT1JZSh0LnR5cGUpP3IuY2FsbChlKTpyfShyLGksZSk7dmFyIHU9YmU7JGUoITApLENlKGEpLCRlKHUpfXJldHVybiBhfWZ1bmN0aW9uIEllKGUpe3ZhciB0PWUmJmUudG9TdHJpbmcoKS5tYXRjaCgvXlxzKmZ1bmN0aW9uIChcdyspLyk7cmV0dXJuIHQ\/dFsxXToiIn1mdW5jdGlvbiBGZShlLHQpe3JldHVybiBJZShlKT09PUllKHQpfWZ1bmN0aW9uIFBlKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIEZlKHQsZSk\/MDotMTtmb3IodmFyIG49MCxyPXQubGVuZ3RoO248cjtuKyspaWYoRmUodFtuXSxlKSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBSZShlLHQsbil7bGUoKTt0cnl7aWYodClmb3IodmFyIHI9dDtyPXIuJHBhcmVudDspe3ZhciBpPXIuJG9wdGlvbnMuZXJyb3JDYXB0dXJlZDtpZihpKWZvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKXRyeXtpZighMT09PWlbb10uY2FsbChyLGUsdCxuKSlyZXR1cm59Y2F0Y2goZSl7QmUoZSxyLCJlcnJvckNhcHR1cmVkIGhvb2siKX19QmUoZSx0LG4pfWZpbmFsbHl7ZmUoKX19ZnVuY3Rpb24gSGUoZSx0LG4scixpKXt2YXIgbzt0cnl7KG89bj9lLmFwcGx5KHQsbik6ZS5jYWxsKHQpKSYmIW8uX2lzVnVlJiZ1KG8pJiYhby5faGFuZGxlZCYmKG8uY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIFJlKGUscixpKyIgKFByb21pc2UvYXN5bmMpIil9KSxvLl9oYW5kbGVkPSEwKX1jYXRjaChlKXtSZShlLHIsaSl9cmV0dXJuIG99ZnVuY3Rpb24gQmUoZSx0LG4pe2lmKEYuZXJyb3JIYW5kbGVyKXRyeXtyZXR1cm4gRi5lcnJvckhhbmRsZXIuY2FsbChudWxsLGUsdCxuKX1jYXRjaCh0KXt0IT09ZSYmVWUodCxudWxsLCJjb25maWcuZXJyb3JIYW5kbGVyIil9VWUoZSx0LG4pfWZ1bmN0aW9uIFVlKGUsdCxuKXtpZigheiYmIVZ8fCJ1bmRlZmluZWQiPT10eXBlb2YgY29uc29sZSl0aHJvdyBlO2NvbnNvbGUuZXJyb3IoZSl9dmFyIHplLFZlPSExLEtlPVtdLEplPSExO2Z1bmN0aW9uIHFlKCl7SmU9ITE7dmFyIGU9S2Uuc2xpY2UoMCk7S2UubGVuZ3RoPTA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmcmUoUHJvbWlzZSkpe3ZhciBXZT1Qcm9taXNlLnJlc29sdmUoKTt6ZT1mdW5jdGlvbigpe1dlLnRoZW4ocWUpLEcmJnNldFRpbWVvdXQoUyl9LFZlPSEwfWVsc2UgaWYocXx8InVuZGVmaW5lZCI9PXR5cGVvZiBNdXRhdGlvbk9ic2VydmVyfHwhcmUoTXV0YXRpb25PYnNlcnZlcikmJiJbb2JqZWN0IE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcl0iIT09TXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpKXplPSJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0SW1tZWRpYXRlJiZyZShzZXRJbW1lZGlhdGUpP2Z1bmN0aW9uKCl7c2V0SW1tZWRpYXRlKHFlKX06ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KHFlLDApfTtlbHNle3ZhciBaZT0xLEdlPW5ldyBNdXRhdGlvbk9ic2VydmVyKHFlKSxYZT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoWmUpKTtHZS5vYnNlcnZlKFhlLHtjaGFyYWN0ZXJEYXRhOiEwfSksemU9ZnVuY3Rpb24oKXtaZT0oWmUrMSklMixYZS5kYXRhPVN0cmluZyhaZSl9LFZlPSEwfWZ1bmN0aW9uIFllKGUsdCl7dmFyIG47aWYoS2UucHVzaChmdW5jdGlvbigpe2lmKGUpdHJ5e2UuY2FsbCh0KX1jYXRjaChlKXtSZShlLHQsIm5leHRUaWNrIil9ZWxzZSBuJiZuKHQpfSksSmV8fChKZT0hMCx6ZSgpKSwhZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBQcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtuPWV9KX12YXIgUWU9bmV3IGllO2Z1bmN0aW9uIGV0KGUpeyFmdW5jdGlvbiBlKHQsbil7dmFyIHIsaTt2YXIgYT1BcnJheS5pc0FycmF5KHQpO2lmKCFhJiYhbyh0KXx8T2JqZWN0LmlzRnJvemVuKHQpfHx0IGluc3RhbmNlb2YgcGUpcmV0dXJuO2lmKHQuX19vYl9fKXt2YXIgcz10Ll9fb2JfXy5kZXAuaWQ7aWYobi5oYXMocykpcmV0dXJuO24uYWRkKHMpfWlmKGEpZm9yKHI9dC5sZW5ndGg7ci0tOyllKHRbcl0sbik7ZWxzZSBmb3IoaT1PYmplY3Qua2V5cyh0KSxyPWkubGVuZ3RoO3ItLTspZSh0W2lbcl1dLG4pfShlLFFlKSxRZS5jbGVhcigpfXZhciB0dD1nKGZ1bmN0aW9uKGUpe3ZhciB0PSImIj09PWUuY2hhckF0KDApLG49In4iPT09KGU9dD9lLnNsaWNlKDEpOmUpLmNoYXJBdCgwKSxyPSIhIj09PShlPW4\/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCk7cmV0dXJue25hbWU6ZT1yP2Uuc2xpY2UoMSk6ZSxvbmNlOm4sY2FwdHVyZTpyLHBhc3NpdmU6dH19KTtmdW5jdGlvbiBudChlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT1hcmd1bWVudHMscj1uLmZucztpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gSGUocixudWxsLGFyZ3VtZW50cyx0LCJ2LW9uIGhhbmRsZXIiKTtmb3IodmFyIGk9ci5zbGljZSgpLG89MDtvPGkubGVuZ3RoO28rKylIZShpW29dLG51bGwsZSx0LCJ2LW9uIGhhbmRsZXIiKX1yZXR1cm4gbi5mbnM9ZSxufWZ1bmN0aW9uIHJ0KGUsbixpLG8sYSxzKXt2YXIgYyx1LGwsZjtmb3IoYyBpbiBlKXU9ZVtjXSxsPW5bY10sZj10dChjKSx0KHUpfHwodChsKT8odCh1LmZucykmJih1PWVbY109bnQodSxzKSkscihmLm9uY2UpJiYodT1lW2NdPWEoZi5uYW1lLHUsZi5jYXB0dXJlKSksaShmLm5hbWUsdSxmLmNhcHR1cmUsZi5wYXNzaXZlLGYucGFyYW1zKSk6dSE9PWwmJihsLmZucz11LGVbY109bCkpO2ZvcihjIGluIG4pdChlW2NdKSYmbygoZj10dChjKSkubmFtZSxuW2NdLGYuY2FwdHVyZSl9ZnVuY3Rpb24gaXQoZSxpLG8pe3ZhciBhO2UgaW5zdGFuY2VvZiBwZSYmKGU9ZS5kYXRhLmhvb2t8fChlLmRhdGEuaG9vaz17fSkpO3ZhciBzPWVbaV07ZnVuY3Rpb24gYygpe28uYXBwbHkodGhpcyxhcmd1bWVudHMpLGgoYS5mbnMsYyl9dChzKT9hPW50KFtjXSk6bihzLmZucykmJnIocy5tZXJnZWQpPyhhPXMpLmZucy5wdXNoKGMpOmE9bnQoW3MsY10pLGEubWVyZ2VkPSEwLGVbaV09YX1mdW5jdGlvbiBvdChlLHQscixpLG8pe2lmKG4odCkpe2lmKHkodCxyKSlyZXR1cm4gZVtyXT10W3JdLG98fGRlbGV0ZSB0W3JdLCEwO2lmKHkodCxpKSlyZXR1cm4gZVtyXT10W2ldLG98fGRlbGV0ZSB0W2ldLCEwfXJldHVybiExfWZ1bmN0aW9uIGF0KGUpe3JldHVybiBpKGUpP1toZShlKV06QXJyYXkuaXNBcnJheShlKT9mdW5jdGlvbiBlKG8sYSl7dmFyIHM9W107dmFyIGMsdSxsLGY7Zm9yKGM9MDtjPG8ubGVuZ3RoO2MrKyl0KHU9b1tjXSl8fCJib29sZWFuIj09dHlwZW9mIHV8fChsPXMubGVuZ3RoLTEsZj1zW2xdLEFycmF5LmlzQXJyYXkodSk\/dS5sZW5ndGg+MCYmKHN0KCh1PWUodSwoYXx8IiIpKyJfIitjKSlbMF0pJiZzdChmKSYmKHNbbF09aGUoZi50ZXh0K3VbMF0udGV4dCksdS5zaGlmdCgpKSxzLnB1c2guYXBwbHkocyx1KSk6aSh1KT9zdChmKT9zW2xdPWhlKGYudGV4dCt1KToiIiE9PXUmJnMucHVzaChoZSh1KSk6c3QodSkmJnN0KGYpP3NbbF09aGUoZi50ZXh0K3UudGV4dCk6KHIoby5faXNWTGlzdCkmJm4odS50YWcpJiZ0KHUua2V5KSYmbihhKSYmKHUua2V5PSJfX3ZsaXN0IithKyJfIitjKyJfXyIpLHMucHVzaCh1KSkpO3JldHVybiBzfShlKTp2b2lkIDB9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIG4oZSkmJm4oZS50ZXh0KSYmITE9PT1lLmlzQ29tbWVudH1mdW5jdGlvbiBjdChlLHQpe2lmKGUpe2Zvcih2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9b2U\/UmVmbGVjdC5vd25LZXlzKGUpOk9iamVjdC5rZXlzKGUpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXTtpZigiX19vYl9fIiE9PW8pe2Zvcih2YXIgYT1lW29dLmZyb20scz10O3M7KXtpZihzLl9wcm92aWRlZCYmeShzLl9wcm92aWRlZCxhKSl7bltvXT1zLl9wcm92aWRlZFthXTticmVha31zPXMuJHBhcmVudH1pZighcyYmImRlZmF1bHQiaW4gZVtvXSl7dmFyIGM9ZVtvXS5kZWZhdWx0O25bb109ImZ1bmN0aW9uIj09dHlwZW9mIGM\/Yy5jYWxsKHQpOmN9fX1yZXR1cm4gbn19ZnVuY3Rpb24gdXQoZSx0KXtpZighZXx8IWUubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgbj17fSxyPTAsaT1lLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1lW3JdLGE9by5kYXRhO2lmKGEmJmEuYXR0cnMmJmEuYXR0cnMuc2xvdCYmZGVsZXRlIGEuYXR0cnMuc2xvdCxvLmNvbnRleHQhPT10JiZvLmZuQ29udGV4dCE9PXR8fCFhfHxudWxsPT1hLnNsb3QpKG4uZGVmYXVsdHx8KG4uZGVmYXVsdD1bXSkpLnB1c2gobyk7ZWxzZXt2YXIgcz1hLnNsb3QsYz1uW3NdfHwobltzXT1bXSk7InRlbXBsYXRlIj09PW8udGFnP2MucHVzaC5hcHBseShjLG8uY2hpbGRyZW58fFtdKTpjLnB1c2gobyl9fWZvcih2YXIgdSBpbiBuKW5bdV0uZXZlcnkobHQpJiZkZWxldGUgblt1XTtyZXR1cm4gbn1mdW5jdGlvbiBsdChlKXtyZXR1cm4gZS5pc0NvbW1lbnQmJiFlLmFzeW5jRmFjdG9yeXx8IiAiPT09ZS50ZXh0fWZ1bmN0aW9uIGZ0KHQsbixyKXt2YXIgaSxvPU9iamVjdC5rZXlzKG4pLmxlbmd0aD4wLGE9dD8hIXQuJHN0YWJsZTohbyxzPXQmJnQuJGtleTtpZih0KXtpZih0Ll9ub3JtYWxpemVkKXJldHVybiB0Ll9ub3JtYWxpemVkO2lmKGEmJnImJnIhPT1lJiZzPT09ci4ka2V5JiYhbyYmIXIuJGhhc05vcm1hbClyZXR1cm4gcjtmb3IodmFyIGMgaW4gaT17fSx0KXRbY10mJiIkIiE9PWNbMF0mJihpW2NdPXB0KG4sYyx0W2NdKSl9ZWxzZSBpPXt9O2Zvcih2YXIgdSBpbiBuKXUgaW4gaXx8KGlbdV09ZHQobix1KSk7cmV0dXJuIHQmJk9iamVjdC5pc0V4dGVuc2libGUodCkmJih0Ll9ub3JtYWxpemVkPWkpLFIoaSwiJHN0YWJsZSIsYSksUihpLCIka2V5IixzKSxSKGksIiRoYXNOb3JtYWwiLG8pLGl9ZnVuY3Rpb24gcHQoZSx0LG4pe3ZhciByPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD9uLmFwcGx5KG51bGwsYXJndW1lbnRzKTpuKHt9KTtyZXR1cm4oZT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJiFBcnJheS5pc0FycmF5KGUpP1tlXTphdChlKSkmJigwPT09ZS5sZW5ndGh8fDE9PT1lLmxlbmd0aCYmZVswXS5pc0NvbW1lbnQpP3ZvaWQgMDplfTtyZXR1cm4gbi5wcm94eSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7Z2V0OnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxyfWZ1bmN0aW9uIGR0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGVbdF19fWZ1bmN0aW9uIHZ0KGUsdCl7dmFyIHIsaSxhLHMsYztpZihBcnJheS5pc0FycmF5KGUpfHwic3RyaW5nIj09dHlwZW9mIGUpZm9yKHI9bmV3IEFycmF5KGUubGVuZ3RoKSxpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKXJbaV09dChlW2ldLGkpO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlKSxpPTA7aTxlO2krKylyW2ldPXQoaSsxLGkpO2Vsc2UgaWYobyhlKSlpZihvZSYmZVtTeW1ib2wuaXRlcmF0b3JdKXtyPVtdO2Zvcih2YXIgdT1lW1N5bWJvbC5pdGVyYXRvcl0oKSxsPXUubmV4dCgpOyFsLmRvbmU7KXIucHVzaCh0KGwudmFsdWUsci5sZW5ndGgpKSxsPXUubmV4dCgpfWVsc2UgZm9yKHM9T2JqZWN0LmtleXMoZSkscj1uZXcgQXJyYXkocy5sZW5ndGgpLGk9MCxhPXMubGVuZ3RoO2k8YTtpKyspYz1zW2ldLHJbaV09dChlW2NdLGMsaSk7cmV0dXJuIG4ocil8fChyPVtdKSxyLl9pc1ZMaXN0PSEwLHJ9ZnVuY3Rpb24gaHQoZSx0LG4scil7dmFyIGksbz10aGlzLiRzY29wZWRTbG90c1tlXTtvPyhuPW58fHt9LHImJihuPUEoQSh7fSxyKSxuKSksaT1vKG4pfHx0KTppPXRoaXMuJHNsb3RzW2VdfHx0O3ZhciBhPW4mJm4uc2xvdDtyZXR1cm4gYT90aGlzLiRjcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIse3Nsb3Q6YX0saSk6aX1mdW5jdGlvbiBtdChlKXtyZXR1cm4gTGUodGhpcy4kb3B0aW9ucywiZmlsdGVycyIsZSl8fEV9ZnVuY3Rpb24geXQoZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT8tMT09PWUuaW5kZXhPZih0KTplIT09dH1mdW5jdGlvbiBndChlLHQsbixyLGkpe3ZhciBvPUYua2V5Q29kZXNbdF18fG47cmV0dXJuIGkmJnImJiFGLmtleUNvZGVzW3RdP3l0KGkscik6bz95dChvLGUpOnI\/QyhyKSE9PXQ6dm9pZCAwfWZ1bmN0aW9uIF90KGUsdCxuLHIsaSl7aWYobilpZihvKG4pKXt2YXIgYTtBcnJheS5pc0FycmF5KG4pJiYobj1PKG4pKTt2YXIgcz1mdW5jdGlvbihvKXtpZigiY2xhc3MiPT09b3x8InN0eWxlIj09PW98fHYobykpYT1lO2Vsc2V7dmFyIHM9ZS5hdHRycyYmZS5hdHRycy50eXBlO2E9cnx8Ri5tdXN0VXNlUHJvcCh0LHMsbyk\/ZS5kb21Qcm9wc3x8KGUuZG9tUHJvcHM9e30pOmUuYXR0cnN8fChlLmF0dHJzPXt9KX12YXIgYz1iKG8pLHU9QyhvKTtjIGluIGF8fHUgaW4gYXx8KGFbb109bltvXSxpJiYoKGUub258fChlLm9uPXt9KSlbInVwZGF0ZToiK29dPWZ1bmN0aW9uKGUpe25bb109ZX0pKX07Zm9yKHZhciBjIGluIG4pcyhjKX1lbHNlO3JldHVybiBlfWZ1bmN0aW9uIGJ0KGUsdCl7dmFyIG49dGhpcy5fc3RhdGljVHJlZXN8fCh0aGlzLl9zdGF0aWNUcmVlcz1bXSkscj1uW2VdO3JldHVybiByJiYhdD9yOih3dChyPW5bZV09dGhpcy4kb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnNbZV0uY2FsbCh0aGlzLl9yZW5kZXJQcm94eSxudWxsLHRoaXMpLCJfX3N0YXRpY19fIitlLCExKSxyKX1mdW5jdGlvbiAkdChlLHQsbil7cmV0dXJuIHd0KGUsIl9fb25jZV9fIit0KyhuPyJfIituOiIiKSwhMCksZX1mdW5jdGlvbiB3dChlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdJiYic3RyaW5nIiE9dHlwZW9mIGVbcl0mJkN0KGVbcl0sdCsiXyIrcixuKTtlbHNlIEN0KGUsdCxuKX1mdW5jdGlvbiBDdChlLHQsbil7ZS5pc1N0YXRpYz0hMCxlLmtleT10LGUuaXNPbmNlPW59ZnVuY3Rpb24geHQoZSx0KXtpZih0KWlmKHModCkpe3ZhciBuPWUub249ZS5vbj9BKHt9LGUub24pOnt9O2Zvcih2YXIgciBpbiB0KXt2YXIgaT1uW3JdLG89dFtyXTtuW3JdPWk\/W10uY29uY2F0KGksbyk6b319ZWxzZTtyZXR1cm4gZX1mdW5jdGlvbiBrdChlLHQsbixyKXt0PXR8fHskc3RhYmxlOiFufTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpXTtBcnJheS5pc0FycmF5KG8pP2t0KG8sdCxuKTpvJiYoby5wcm94eSYmKG8uZm4ucHJveHk9ITApLHRbby5rZXldPW8uZm4pfXJldHVybiByJiYodC4ka2V5PXIpLHR9ZnVuY3Rpb24gQXQoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTIpe3ZhciByPXRbbl07InN0cmluZyI9PXR5cGVvZiByJiZyJiYoZVt0W25dXT10W24rMV0pfXJldHVybiBlfWZ1bmN0aW9uIE90KGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP3QrZTplfWZ1bmN0aW9uIFN0KGUpe2UuX289JHQsZS5fbj1mLGUuX3M9bCxlLl9sPXZ0LGUuX3Q9aHQsZS5fcT1OLGUuX2k9aixlLl9tPWJ0LGUuX2Y9bXQsZS5faz1ndCxlLl9iPV90LGUuX3Y9aGUsZS5fZT12ZSxlLl91PWt0LGUuX2c9eHQsZS5fZD1BdCxlLl9wPU90fWZ1bmN0aW9uIFR0KHQsbixpLG8sYSl7dmFyIHMsYz10aGlzLHU9YS5vcHRpb25zO3kobywiX3VpZCIpPyhzPU9iamVjdC5jcmVhdGUobykpLl9vcmlnaW5hbD1vOihzPW8sbz1vLl9vcmlnaW5hbCk7dmFyIGw9cih1Ll9jb21waWxlZCksZj0hbDt0aGlzLmRhdGE9dCx0aGlzLnByb3BzPW4sdGhpcy5jaGlsZHJlbj1pLHRoaXMucGFyZW50PW8sdGhpcy5saXN0ZW5lcnM9dC5vbnx8ZSx0aGlzLmluamVjdGlvbnM9Y3QodS5pbmplY3QsbyksdGhpcy5zbG90cz1mdW5jdGlvbigpe3JldHVybiBjLiRzbG90c3x8ZnQodC5zY29wZWRTbG90cyxjLiRzbG90cz11dChpLG8pKSxjLiRzbG90c30sT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInNjb3BlZFNsb3RzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQodC5zY29wZWRTbG90cyx0aGlzLnNsb3RzKCkpfX0pLGwmJih0aGlzLiRvcHRpb25zPXUsdGhpcy4kc2xvdHM9dGhpcy5zbG90cygpLHRoaXMuJHNjb3BlZFNsb3RzPWZ0KHQuc2NvcGVkU2xvdHMsdGhpcy4kc2xvdHMpKSx1Ll9zY29wZUlkP3RoaXMuX2M9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9UHQocyxlLHQsbixyLGYpO3JldHVybiBpJiYhQXJyYXkuaXNBcnJheShpKSYmKGkuZm5TY29wZUlkPXUuX3Njb3BlSWQsaS5mbkNvbnRleHQ9byksaX06dGhpcy5fYz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gUHQocyxlLHQsbixyLGYpfX1mdW5jdGlvbiBFdChlLHQsbixyLGkpe3ZhciBvPW1lKGUpO3JldHVybiBvLmZuQ29udGV4dD1uLG8uZm5PcHRpb25zPXIsdC5zbG90JiYoKG8uZGF0YXx8KG8uZGF0YT17fSkpLnNsb3Q9dC5zbG90KSxvfWZ1bmN0aW9uIE50KGUsdCl7Zm9yKHZhciBuIGluIHQpZVtiKG4pXT10W25dfVN0KFR0LnByb3RvdHlwZSk7dmFyIGp0PXtpbml0OmZ1bmN0aW9uKGUsdCl7aWYoZS5jb21wb25lbnRJbnN0YW5jZSYmIWUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkJiZlLmRhdGEua2VlcEFsaXZlKXt2YXIgcj1lO2p0LnByZXBhdGNoKHIscil9ZWxzZXsoZS5jb21wb25lbnRJbnN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciByPXtfaXNDb21wb25lbnQ6ITAsX3BhcmVudFZub2RlOmUscGFyZW50OnR9LGk9ZS5kYXRhLmlubGluZVRlbXBsYXRlO24oaSkmJihyLnJlbmRlcj1pLnJlbmRlcixyLnN0YXRpY1JlbmRlckZucz1pLnN0YXRpY1JlbmRlckZucyk7cmV0dXJuIG5ldyBlLmNvbXBvbmVudE9wdGlvbnMuQ3RvcihyKX0oZSxXdCkpLiRtb3VudCh0P2UuZWxtOnZvaWQgMCx0KX19LHByZXBhdGNoOmZ1bmN0aW9uKHQsbil7dmFyIHI9bi5jb21wb25lbnRPcHRpb25zOyFmdW5jdGlvbih0LG4scixpLG8pe3ZhciBhPWkuZGF0YS5zY29wZWRTbG90cyxzPXQuJHNjb3BlZFNsb3RzLGM9ISEoYSYmIWEuJHN0YWJsZXx8cyE9PWUmJiFzLiRzdGFibGV8fGEmJnQuJHNjb3BlZFNsb3RzLiRrZXkhPT1hLiRrZXkpLHU9ISEob3x8dC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW58fGMpO3QuJG9wdGlvbnMuX3BhcmVudFZub2RlPWksdC4kdm5vZGU9aSx0Ll92bm9kZSYmKHQuX3Zub2RlLnBhcmVudD1pKTtpZih0LiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbj1vLHQuJGF0dHJzPWkuZGF0YS5hdHRyc3x8ZSx0LiRsaXN0ZW5lcnM9cnx8ZSxuJiZ0LiRvcHRpb25zLnByb3BzKXskZSghMSk7Zm9yKHZhciBsPXQuX3Byb3BzLGY9dC4kb3B0aW9ucy5fcHJvcEtleXN8fFtdLHA9MDtwPGYubGVuZ3RoO3ArKyl7dmFyIGQ9ZltwXSx2PXQuJG9wdGlvbnMucHJvcHM7bFtkXT1NZShkLHYsbix0KX0kZSghMCksdC4kb3B0aW9ucy5wcm9wc0RhdGE9bn1yPXJ8fGU7dmFyIGg9dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO3QuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycz1yLHF0KHQscixoKSx1JiYodC4kc2xvdHM9dXQobyxpLmNvbnRleHQpLHQuJGZvcmNlVXBkYXRlKCkpfShuLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2Usci5wcm9wc0RhdGEsci5saXN0ZW5lcnMsbixyLmNoaWxkcmVuKX0saW5zZXJ0OmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5jb250ZXh0LHI9ZS5jb21wb25lbnRJbnN0YW5jZTtyLl9pc01vdW50ZWR8fChyLl9pc01vdW50ZWQ9ITAsWXQociwibW91bnRlZCIpKSxlLmRhdGEua2VlcEFsaXZlJiYobi5faXNNb3VudGVkPygodD1yKS5faW5hY3RpdmU9ITEsZW4ucHVzaCh0KSk6WHQociwhMCkpfSxkZXN0cm95OmZ1bmN0aW9uKGUpe3ZhciB0PWUuY29tcG9uZW50SW5zdGFuY2U7dC5faXNEZXN0cm95ZWR8fChlLmRhdGEua2VlcEFsaXZlP2Z1bmN0aW9uIGUodCxuKXtpZihuJiYodC5fZGlyZWN0SW5hY3RpdmU9ITAsR3QodCkpKXJldHVybjtpZighdC5faW5hY3RpdmUpe3QuX2luYWN0aXZlPSEwO2Zvcih2YXIgcj0wO3I8dC4kY2hpbGRyZW4ubGVuZ3RoO3IrKyllKHQuJGNoaWxkcmVuW3JdKTtZdCh0LCJkZWFjdGl2YXRlZCIpfX0odCwhMCk6dC4kZGVzdHJveSgpKX19LER0PU9iamVjdC5rZXlzKGp0KTtmdW5jdGlvbiBMdChpLGEscyxjLGwpe2lmKCF0KGkpKXt2YXIgZj1zLiRvcHRpb25zLl9iYXNlO2lmKG8oaSkmJihpPWYuZXh0ZW5kKGkpKSwiZnVuY3Rpb24iPT10eXBlb2YgaSl7dmFyIHA7aWYodChpLmNpZCkmJnZvaWQgMD09PShpPWZ1bmN0aW9uKGUsaSl7aWYocihlLmVycm9yKSYmbihlLmVycm9yQ29tcCkpcmV0dXJuIGUuZXJyb3JDb21wO2lmKG4oZS5yZXNvbHZlZCkpcmV0dXJuIGUucmVzb2x2ZWQ7dmFyIGE9SHQ7YSYmbihlLm93bmVycykmJi0xPT09ZS5vd25lcnMuaW5kZXhPZihhKSYmZS5vd25lcnMucHVzaChhKTtpZihyKGUubG9hZGluZykmJm4oZS5sb2FkaW5nQ29tcCkpcmV0dXJuIGUubG9hZGluZ0NvbXA7aWYoYSYmIW4oZS5vd25lcnMpKXt2YXIgcz1lLm93bmVycz1bYV0sYz0hMCxsPW51bGwsZj1udWxsO2EuJG9uKCJob29rOmRlc3Ryb3llZCIsZnVuY3Rpb24oKXtyZXR1cm4gaChzLGEpfSk7dmFyIHA9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1zLmxlbmd0aDt0PG47dCsrKXNbdF0uJGZvcmNlVXBkYXRlKCk7ZSYmKHMubGVuZ3RoPTAsbnVsbCE9PWwmJihjbGVhclRpbWVvdXQobCksbD1udWxsKSxudWxsIT09ZiYmKGNsZWFyVGltZW91dChmKSxmPW51bGwpKX0sZD1EKGZ1bmN0aW9uKHQpe2UucmVzb2x2ZWQ9QnQodCxpKSxjP3MubGVuZ3RoPTA6cCghMCl9KSx2PUQoZnVuY3Rpb24odCl7bihlLmVycm9yQ29tcCkmJihlLmVycm9yPSEwLHAoITApKX0pLG09ZShkLHYpO3JldHVybiBvKG0pJiYodShtKT90KGUucmVzb2x2ZWQpJiZtLnRoZW4oZCx2KTp1KG0uY29tcG9uZW50KSYmKG0uY29tcG9uZW50LnRoZW4oZCx2KSxuKG0uZXJyb3IpJiYoZS5lcnJvckNvbXA9QnQobS5lcnJvcixpKSksbihtLmxvYWRpbmcpJiYoZS5sb2FkaW5nQ29tcD1CdChtLmxvYWRpbmcsaSksMD09PW0uZGVsYXk\/ZS5sb2FkaW5nPSEwOmw9c2V0VGltZW91dChmdW5jdGlvbigpe2w9bnVsbCx0KGUucmVzb2x2ZWQpJiZ0KGUuZXJyb3IpJiYoZS5sb2FkaW5nPSEwLHAoITEpKX0sbS5kZWxheXx8MjAwKSksbihtLnRpbWVvdXQpJiYoZj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zj1udWxsLHQoZS5yZXNvbHZlZCkmJnYobnVsbCl9LG0udGltZW91dCkpKSksYz0hMSxlLmxvYWRpbmc\/ZS5sb2FkaW5nQ29tcDplLnJlc29sdmVkfX0ocD1pLGYpKSlyZXR1cm4gZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbz12ZSgpO3JldHVybiBvLmFzeW5jRmFjdG9yeT1lLG8uYXN5bmNNZXRhPXtkYXRhOnQsY29udGV4dDpuLGNoaWxkcmVuOnIsdGFnOml9LG99KHAsYSxzLGMsbCk7YT1hfHx7fSwkbihpKSxuKGEubW9kZWwpJiZmdW5jdGlvbihlLHQpe3ZhciByPWUubW9kZWwmJmUubW9kZWwucHJvcHx8InZhbHVlIixpPWUubW9kZWwmJmUubW9kZWwuZXZlbnR8fCJpbnB1dCI7KHQuYXR0cnN8fCh0LmF0dHJzPXt9KSlbcl09dC5tb2RlbC52YWx1ZTt2YXIgbz10Lm9ufHwodC5vbj17fSksYT1vW2ldLHM9dC5tb2RlbC5jYWxsYmFjaztuKGEpPyhBcnJheS5pc0FycmF5KGEpPy0xPT09YS5pbmRleE9mKHMpOmEhPT1zKSYmKG9baV09W3NdLmNvbmNhdChhKSk6b1tpXT1zfShpLm9wdGlvbnMsYSk7dmFyIGQ9ZnVuY3Rpb24oZSxyLGkpe3ZhciBvPXIub3B0aW9ucy5wcm9wcztpZighdChvKSl7dmFyIGE9e30scz1lLmF0dHJzLGM9ZS5wcm9wcztpZihuKHMpfHxuKGMpKWZvcih2YXIgdSBpbiBvKXt2YXIgbD1DKHUpO290KGEsYyx1LGwsITApfHxvdChhLHMsdSxsLCExKX1yZXR1cm4gYX19KGEsaSk7aWYocihpLm9wdGlvbnMuZnVuY3Rpb25hbCkpcmV0dXJuIGZ1bmN0aW9uKHQscixpLG8sYSl7dmFyIHM9dC5vcHRpb25zLGM9e30sdT1zLnByb3BzO2lmKG4odSkpZm9yKHZhciBsIGluIHUpY1tsXT1NZShsLHUscnx8ZSk7ZWxzZSBuKGkuYXR0cnMpJiZOdChjLGkuYXR0cnMpLG4oaS5wcm9wcykmJk50KGMsaS5wcm9wcyk7dmFyIGY9bmV3IFR0KGksYyxhLG8sdCkscD1zLnJlbmRlci5jYWxsKG51bGwsZi5fYyxmKTtpZihwIGluc3RhbmNlb2YgcGUpcmV0dXJuIEV0KHAsaSxmLnBhcmVudCxzKTtpZihBcnJheS5pc0FycmF5KHApKXtmb3IodmFyIGQ9YXQocCl8fFtdLHY9bmV3IEFycmF5KGQubGVuZ3RoKSxoPTA7aDxkLmxlbmd0aDtoKyspdltoXT1FdChkW2hdLGksZi5wYXJlbnQscyk7cmV0dXJuIHZ9fShpLGQsYSxzLGMpO3ZhciB2PWEub247aWYoYS5vbj1hLm5hdGl2ZU9uLHIoaS5vcHRpb25zLmFic3RyYWN0KSl7dmFyIG09YS5zbG90O2E9e30sbSYmKGEuc2xvdD1tKX0hZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuaG9va3x8KGUuaG9vaz17fSksbj0wO248RHQubGVuZ3RoO24rKyl7dmFyIHI9RHRbbl0saT10W3JdLG89anRbcl07aT09PW98fGkmJmkuX21lcmdlZHx8KHRbcl09aT9NdChvLGkpOm8pfX0oYSk7dmFyIHk9aS5vcHRpb25zLm5hbWV8fGw7cmV0dXJuIG5ldyBwZSgidnVlLWNvbXBvbmVudC0iK2kuY2lkKyh5PyItIit5OiIiKSxhLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHMse0N0b3I6aSxwcm9wc0RhdGE6ZCxsaXN0ZW5lcnM6dix0YWc6bCxjaGlsZHJlbjpjfSxwKX19fWZ1bmN0aW9uIE10KGUsdCl7dmFyIG49ZnVuY3Rpb24obixyKXtlKG4sciksdChuLHIpfTtyZXR1cm4gbi5fbWVyZ2VkPSEwLG59dmFyIEl0PTEsRnQ9MjtmdW5jdGlvbiBQdChlLGEscyxjLHUsbCl7cmV0dXJuKEFycmF5LmlzQXJyYXkocyl8fGkocykpJiYodT1jLGM9cyxzPXZvaWQgMCkscihsKSYmKHU9RnQpLGZ1bmN0aW9uKGUsaSxhLHMsYyl7aWYobihhKSYmbihhLl9fb2JfXykpcmV0dXJuIHZlKCk7bihhKSYmbihhLmlzKSYmKGk9YS5pcyk7aWYoIWkpcmV0dXJuIHZlKCk7QXJyYXkuaXNBcnJheShzKSYmImZ1bmN0aW9uIj09dHlwZW9mIHNbMF0mJigoYT1hfHx7fSkuc2NvcGVkU2xvdHM9e2RlZmF1bHQ6c1swXX0scy5sZW5ndGg9MCk7Yz09PUZ0P3M9YXQocyk6Yz09PUl0JiYocz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylpZihBcnJheS5pc0FycmF5KGVbdF0pKXJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGUpO3JldHVybiBlfShzKSk7dmFyIHUsbDtpZigic3RyaW5nIj09dHlwZW9mIGkpe3ZhciBmO2w9ZS4kdm5vZGUmJmUuJHZub2RlLm5zfHxGLmdldFRhZ05hbWVzcGFjZShpKSx1PUYuaXNSZXNlcnZlZFRhZyhpKT9uZXcgcGUoRi5wYXJzZVBsYXRmb3JtVGFnTmFtZShpKSxhLHMsdm9pZCAwLHZvaWQgMCxlKTphJiZhLnByZXx8IW4oZj1MZShlLiRvcHRpb25zLCJjb21wb25lbnRzIixpKSk\/bmV3IHBlKGksYSxzLHZvaWQgMCx2b2lkIDAsZSk6THQoZixhLGUscyxpKX1lbHNlIHU9THQoaSxhLGUscyk7cmV0dXJuIEFycmF5LmlzQXJyYXkodSk\/dTpuKHUpPyhuKGwpJiZmdW5jdGlvbiBlKGksbyxhKXtpLm5zPW87ImZvcmVpZ25PYmplY3QiPT09aS50YWcmJihvPXZvaWQgMCxhPSEwKTtpZihuKGkuY2hpbGRyZW4pKWZvcih2YXIgcz0wLGM9aS5jaGlsZHJlbi5sZW5ndGg7czxjO3MrKyl7dmFyIHU9aS5jaGlsZHJlbltzXTtuKHUudGFnKSYmKHQodS5ucyl8fHIoYSkmJiJzdmciIT09dS50YWcpJiZlKHUsbyxhKX19KHUsbCksbihhKSYmZnVuY3Rpb24oZSl7byhlLnN0eWxlKSYmZXQoZS5zdHlsZSk7byhlLmNsYXNzKSYmZXQoZS5jbGFzcyl9KGEpLHUpOnZlKCl9KGUsYSxzLGMsdSl9dmFyIFJ0LEh0PW51bGw7ZnVuY3Rpb24gQnQoZSx0KXtyZXR1cm4oZS5fX2VzTW9kdWxlfHxvZSYmIk1vZHVsZSI9PT1lW1N5bWJvbC50b1N0cmluZ1RhZ10pJiYoZT1lLmRlZmF1bHQpLG8oZSk\/dC5leHRlbmQoZSk6ZX1mdW5jdGlvbiBVdChlKXtyZXR1cm4gZS5pc0NvbW1lbnQmJmUuYXN5bmNGYWN0b3J5fWZ1bmN0aW9uIHp0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF07aWYobihyKSYmKG4oci5jb21wb25lbnRPcHRpb25zKXx8VXQocikpKXJldHVybiByfX1mdW5jdGlvbiBWdChlLHQpe1J0LiRvbihlLHQpfWZ1bmN0aW9uIEt0KGUsdCl7UnQuJG9mZihlLHQpfWZ1bmN0aW9uIEp0KGUsdCl7dmFyIG49UnQ7cmV0dXJuIGZ1bmN0aW9uIHIoKXtudWxsIT09dC5hcHBseShudWxsLGFyZ3VtZW50cykmJm4uJG9mZihlLHIpfX1mdW5jdGlvbiBxdChlLHQsbil7UnQ9ZSxydCh0LG58fHt9LFZ0LEt0LEp0LGUpLFJ0PXZvaWQgMH12YXIgV3Q9bnVsbDtmdW5jdGlvbiBadChlKXt2YXIgdD1XdDtyZXR1cm4gV3Q9ZSxmdW5jdGlvbigpe1d0PXR9fWZ1bmN0aW9uIEd0KGUpe2Zvcig7ZSYmKGU9ZS4kcGFyZW50KTspaWYoZS5faW5hY3RpdmUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gWHQoZSx0KXtpZih0KXtpZihlLl9kaXJlY3RJbmFjdGl2ZT0hMSxHdChlKSlyZXR1cm59ZWxzZSBpZihlLl9kaXJlY3RJbmFjdGl2ZSlyZXR1cm47aWYoZS5faW5hY3RpdmV8fG51bGw9PT1lLl9pbmFjdGl2ZSl7ZS5faW5hY3RpdmU9ITE7Zm9yKHZhciBuPTA7bjxlLiRjaGlsZHJlbi5sZW5ndGg7bisrKVh0KGUuJGNoaWxkcmVuW25dKTtZdChlLCJhY3RpdmF0ZWQiKX19ZnVuY3Rpb24gWXQoZSx0KXtsZSgpO3ZhciBuPWUuJG9wdGlvbnNbdF0scj10KyIgaG9vayI7aWYobilmb3IodmFyIGk9MCxvPW4ubGVuZ3RoO2k8bztpKyspSGUobltpXSxlLG51bGwsZSxyKTtlLl9oYXNIb29rRXZlbnQmJmUuJGVtaXQoImhvb2s6Iit0KSxmZSgpfXZhciBRdD1bXSxlbj1bXSx0bj17fSxubj0hMSxybj0hMSxvbj0wO3ZhciBhbj0wLHNuPURhdGUubm93O2lmKHomJiFxKXt2YXIgY249d2luZG93LnBlcmZvcm1hbmNlO2NuJiYiZnVuY3Rpb24iPT10eXBlb2YgY24ubm93JiZzbigpPmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLnRpbWVTdGFtcCYmKHNuPWZ1bmN0aW9uKCl7cmV0dXJuIGNuLm5vdygpfSl9ZnVuY3Rpb24gdW4oKXt2YXIgZSx0O2Zvcihhbj1zbigpLHJuPSEwLFF0LnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5pZC10LmlkfSksb249MDtvbjxRdC5sZW5ndGg7b24rKykoZT1RdFtvbl0pLmJlZm9yZSYmZS5iZWZvcmUoKSx0PWUuaWQsdG5bdF09bnVsbCxlLnJ1bigpO3ZhciBuPWVuLnNsaWNlKCkscj1RdC5zbGljZSgpO29uPVF0Lmxlbmd0aD1lbi5sZW5ndGg9MCx0bj17fSxubj1ybj0hMSxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLl9pbmFjdGl2ZT0hMCxYdChlW3RdLCEwKX0obiksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7Zm9yKDt0LS07KXt2YXIgbj1lW3RdLHI9bi52bTtyLl93YXRjaGVyPT09biYmci5faXNNb3VudGVkJiYhci5faXNEZXN0cm95ZWQmJll0KHIsInVwZGF0ZWQiKX19KHIpLG5lJiZGLmRldnRvb2xzJiZuZS5lbWl0KCJmbHVzaCIpfXZhciBsbj0wLGZuPWZ1bmN0aW9uKGUsdCxuLHIsaSl7dGhpcy52bT1lLGkmJihlLl93YXRjaGVyPXRoaXMpLGUuX3dhdGNoZXJzLnB1c2godGhpcykscj8odGhpcy5kZWVwPSEhci5kZWVwLHRoaXMudXNlcj0hIXIudXNlcix0aGlzLmxhenk9ISFyLmxhenksdGhpcy5zeW5jPSEhci5zeW5jLHRoaXMuYmVmb3JlPXIuYmVmb3JlKTp0aGlzLmRlZXA9dGhpcy51c2VyPXRoaXMubGF6eT10aGlzLnN5bmM9ITEsdGhpcy5jYj1uLHRoaXMuaWQ9Kytsbix0aGlzLmFjdGl2ZT0hMCx0aGlzLmRpcnR5PXRoaXMubGF6eSx0aGlzLmRlcHM9W10sdGhpcy5uZXdEZXBzPVtdLHRoaXMuZGVwSWRzPW5ldyBpZSx0aGlzLm5ld0RlcElkcz1uZXcgaWUsdGhpcy5leHByZXNzaW9uPSIiLCJmdW5jdGlvbiI9PXR5cGVvZiB0P3RoaXMuZ2V0dGVyPXQ6KHRoaXMuZ2V0dGVyPWZ1bmN0aW9uKGUpe2lmKCFILnRlc3QoZSkpe3ZhciB0PWUuc3BsaXQoIi4iKTtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKCFlKXJldHVybjtlPWVbdFtuXV19cmV0dXJuIGV9fX0odCksdGhpcy5nZXR0ZXJ8fCh0aGlzLmdldHRlcj1TKSksdGhpcy52YWx1ZT10aGlzLmxhenk\/dm9pZCAwOnRoaXMuZ2V0KCl9O2ZuLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgZTtsZSh0aGlzKTt2YXIgdD10aGlzLnZtO3RyeXtlPXRoaXMuZ2V0dGVyLmNhbGwodCx0KX1jYXRjaChlKXtpZighdGhpcy51c2VyKXRocm93IGU7UmUoZSx0LCdnZXR0ZXIgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZmluYWxseXt0aGlzLmRlZXAmJmV0KGUpLGZlKCksdGhpcy5jbGVhbnVwRGVwcygpfXJldHVybiBlfSxmbi5wcm90b3R5cGUuYWRkRGVwPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaWQ7dGhpcy5uZXdEZXBJZHMuaGFzKHQpfHwodGhpcy5uZXdEZXBJZHMuYWRkKHQpLHRoaXMubmV3RGVwcy5wdXNoKGUpLHRoaXMuZGVwSWRzLmhhcyh0KXx8ZS5hZGRTdWIodGhpcykpfSxmbi5wcm90b3R5cGUuY2xlYW51cERlcHM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5kZXBzLmxlbmd0aDtlLS07KXt2YXIgdD10aGlzLmRlcHNbZV07dGhpcy5uZXdEZXBJZHMuaGFzKHQuaWQpfHx0LnJlbW92ZVN1Yih0aGlzKX12YXIgbj10aGlzLmRlcElkczt0aGlzLmRlcElkcz10aGlzLm5ld0RlcElkcyx0aGlzLm5ld0RlcElkcz1uLHRoaXMubmV3RGVwSWRzLmNsZWFyKCksbj10aGlzLmRlcHMsdGhpcy5kZXBzPXRoaXMubmV3RGVwcyx0aGlzLm5ld0RlcHM9bix0aGlzLm5ld0RlcHMubGVuZ3RoPTB9LGZuLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmxhenk\/dGhpcy5kaXJ0eT0hMDp0aGlzLnN5bmM\/dGhpcy5ydW4oKTpmdW5jdGlvbihlKXt2YXIgdD1lLmlkO2lmKG51bGw9PXRuW3RdKXtpZih0blt0XT0hMCxybil7Zm9yKHZhciBuPVF0Lmxlbmd0aC0xO24+b24mJlF0W25dLmlkPmUuaWQ7KW4tLTtRdC5zcGxpY2UobisxLDAsZSl9ZWxzZSBRdC5wdXNoKGUpO25ufHwobm49ITAsWWUodW4pKX19KHRoaXMpfSxmbi5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7aWYodGhpcy5hY3RpdmUpe3ZhciBlPXRoaXMuZ2V0KCk7aWYoZSE9PXRoaXMudmFsdWV8fG8oZSl8fHRoaXMuZGVlcCl7dmFyIHQ9dGhpcy52YWx1ZTtpZih0aGlzLnZhbHVlPWUsdGhpcy51c2VyKXRyeXt0aGlzLmNiLmNhbGwodGhpcy52bSxlLHQpfWNhdGNoKGUpe1JlKGUsdGhpcy52bSwnY2FsbGJhY2sgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZWxzZSB0aGlzLmNiLmNhbGwodGhpcy52bSxlLHQpfX19LGZuLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5nZXQoKSx0aGlzLmRpcnR5PSExfSxmbi5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl0aGlzLmRlcHNbZV0uZGVwZW5kKCl9LGZuLnByb3RvdHlwZS50ZWFyZG93bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt0aGlzLnZtLl9pc0JlaW5nRGVzdHJveWVkfHxoKHRoaXMudm0uX3dhdGNoZXJzLHRoaXMpO2Zvcih2YXIgZT10aGlzLmRlcHMubGVuZ3RoO2UtLTspdGhpcy5kZXBzW2VdLnJlbW92ZVN1Yih0aGlzKTt0aGlzLmFjdGl2ZT0hMX19O3ZhciBwbj17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OlMsc2V0OlN9O2Z1bmN0aW9uIGRuKGUsdCxuKXtwbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t0XVtuXX0scG4uc2V0PWZ1bmN0aW9uKGUpe3RoaXNbdF1bbl09ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixwbil9ZnVuY3Rpb24gdm4oZSl7ZS5fd2F0Y2hlcnM9W107dmFyIHQ9ZS4kb3B0aW9uczt0LnByb3BzJiZmdW5jdGlvbihlLHQpe3ZhciBuPWUuJG9wdGlvbnMucHJvcHNEYXRhfHx7fSxyPWUuX3Byb3BzPXt9LGk9ZS4kb3B0aW9ucy5fcHJvcEtleXM9W107ZS4kcGFyZW50JiYkZSghMSk7dmFyIG89ZnVuY3Rpb24obyl7aS5wdXNoKG8pO3ZhciBhPU1lKG8sdCxuLGUpO3hlKHIsbyxhKSxvIGluIGV8fGRuKGUsIl9wcm9wcyIsbyl9O2Zvcih2YXIgYSBpbiB0KW8oYSk7JGUoITApfShlLHQucHJvcHMpLHQubWV0aG9kcyYmZnVuY3Rpb24oZSx0KXtlLiRvcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWVbbl09ImZ1bmN0aW9uIiE9dHlwZW9mIHRbbl0\/Uzp4KHRbbl0sZSl9KGUsdC5tZXRob2RzKSx0LmRhdGE\/ZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucy5kYXRhO3ModD1lLl9kYXRhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUsdCl7bGUoKTt0cnl7cmV0dXJuIGUuY2FsbCh0LHQpfWNhdGNoKGUpe3JldHVybiBSZShlLHQsImRhdGEoKSIpLHt9fWZpbmFsbHl7ZmUoKX19KHQsZSk6dHx8e30pfHwodD17fSk7dmFyIG49T2JqZWN0LmtleXModCkscj1lLiRvcHRpb25zLnByb3BzLGk9KGUuJG9wdGlvbnMubWV0aG9kcyxuLmxlbmd0aCk7Zm9yKDtpLS07KXt2YXIgbz1uW2ldO3ImJnkocixvKXx8KGE9dm9pZCAwLDM2IT09KGE9KG8rIiIpLmNoYXJDb2RlQXQoMCkpJiY5NSE9PWEmJmRuKGUsIl9kYXRhIixvKSl9dmFyIGE7Q2UodCwhMCl9KGUpOkNlKGUuX2RhdGE9e30sITApLHQuY29tcHV0ZWQmJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fY29tcHV0ZWRXYXRjaGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGUoKTtmb3IodmFyIGkgaW4gdCl7dmFyIG89dFtpXSxhPSJmdW5jdGlvbiI9PXR5cGVvZiBvP286by5nZXQ7cnx8KG5baV09bmV3IGZuKGUsYXx8UyxTLGhuKSksaSBpbiBlfHxtbihlLGksbyl9fShlLHQuY29tcHV0ZWQpLHQud2F0Y2gmJnQud2F0Y2ghPT1ZJiZmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KXt2YXIgcj10W25dO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspX24oZSxuLHJbaV0pO2Vsc2UgX24oZSxuLHIpfX0oZSx0LndhdGNoKX12YXIgaG49e2xhenk6ITB9O2Z1bmN0aW9uIG1uKGUsdCxuKXt2YXIgcj0hdGUoKTsiZnVuY3Rpb24iPT10eXBlb2Ygbj8ocG4uZ2V0PXI\/eW4odCk6Z24obikscG4uc2V0PVMpOihwbi5nZXQ9bi5nZXQ\/ciYmITEhPT1uLmNhY2hlP3luKHQpOmduKG4uZ2V0KTpTLHBuLnNldD1uLnNldHx8UyksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxwbil9ZnVuY3Rpb24geW4oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY29tcHV0ZWRXYXRjaGVycyYmdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1tlXTtpZih0KXJldHVybiB0LmRpcnR5JiZ0LmV2YWx1YXRlKCksY2UudGFyZ2V0JiZ0LmRlcGVuZCgpLHQudmFsdWV9fWZ1bmN0aW9uIGduKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyx0aGlzKX19ZnVuY3Rpb24gX24oZSx0LG4scil7cmV0dXJuIHMobikmJihyPW4sbj1uLmhhbmRsZXIpLCJzdHJpbmciPT10eXBlb2YgbiYmKG49ZVtuXSksZS4kd2F0Y2godCxuLHIpfXZhciBibj0wO2Z1bmN0aW9uICRuKGUpe3ZhciB0PWUub3B0aW9ucztpZihlLnN1cGVyKXt2YXIgbj0kbihlLnN1cGVyKTtpZihuIT09ZS5zdXBlck9wdGlvbnMpe2Uuc3VwZXJPcHRpb25zPW47dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLm9wdGlvbnMscj1lLnNlYWxlZE9wdGlvbnM7Zm9yKHZhciBpIGluIG4pbltpXSE9PXJbaV0mJih0fHwodD17fSksdFtpXT1uW2ldKTtyZXR1cm4gdH0oZSk7ciYmQShlLmV4dGVuZE9wdGlvbnMsciksKHQ9ZS5vcHRpb25zPURlKG4sZS5leHRlbmRPcHRpb25zKSkubmFtZSYmKHQuY29tcG9uZW50c1t0Lm5hbWVdPWUpfX1yZXR1cm4gdH1mdW5jdGlvbiB3bihlKXt0aGlzLl9pbml0KGUpfWZ1bmN0aW9uIENuKGUpe2UuY2lkPTA7dmFyIHQ9MTtlLmV4dGVuZD1mdW5jdGlvbihlKXtlPWV8fHt9O3ZhciBuPXRoaXMscj1uLmNpZCxpPWUuX0N0b3J8fChlLl9DdG9yPXt9KTtpZihpW3JdKXJldHVybiBpW3JdO3ZhciBvPWUubmFtZXx8bi5vcHRpb25zLm5hbWUsYT1mdW5jdGlvbihlKXt0aGlzLl9pbml0KGUpfTtyZXR1cm4oYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPWEsYS5jaWQ9dCsrLGEub3B0aW9ucz1EZShuLm9wdGlvbnMsZSksYS5zdXBlcj1uLGEub3B0aW9ucy5wcm9wcyYmZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWRuKGUucHJvdG90eXBlLCJfcHJvcHMiLG4pfShhKSxhLm9wdGlvbnMuY29tcHV0ZWQmJmZ1bmN0aW9uKGUpe3ZhciB0PWUub3B0aW9ucy5jb21wdXRlZDtmb3IodmFyIG4gaW4gdCltbihlLnByb3RvdHlwZSxuLHRbbl0pfShhKSxhLmV4dGVuZD1uLmV4dGVuZCxhLm1peGluPW4ubWl4aW4sYS51c2U9bi51c2UsTS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2FbZV09bltlXX0pLG8mJihhLm9wdGlvbnMuY29tcG9uZW50c1tvXT1hKSxhLnN1cGVyT3B0aW9ucz1uLm9wdGlvbnMsYS5leHRlbmRPcHRpb25zPWUsYS5zZWFsZWRPcHRpb25zPUEoe30sYS5vcHRpb25zKSxpW3JdPWEsYX19ZnVuY3Rpb24geG4oZSl7cmV0dXJuIGUmJihlLkN0b3Iub3B0aW9ucy5uYW1lfHxlLnRhZyl9ZnVuY3Rpb24ga24oZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLmluZGV4T2YodCk+LTE6InN0cmluZyI9PXR5cGVvZiBlP2Uuc3BsaXQoIiwiKS5pbmRleE9mKHQpPi0xOihuPWUsIltvYmplY3QgUmVnRXhwXSI9PT1hLmNhbGwobikmJmUudGVzdCh0KSk7dmFyIG59ZnVuY3Rpb24gQW4oZSx0KXt2YXIgbj1lLmNhY2hlLHI9ZS5rZXlzLGk9ZS5fdm5vZGU7Zm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb107aWYoYSl7dmFyIHM9eG4oYS5jb21wb25lbnRPcHRpb25zKTtzJiYhdChzKSYmT24obixvLHIsaSl9fX1mdW5jdGlvbiBPbihlLHQsbixyKXt2YXIgaT1lW3RdOyFpfHxyJiZpLnRhZz09PXIudGFnfHxpLmNvbXBvbmVudEluc3RhbmNlLiRkZXN0cm95KCksZVt0XT1udWxsLGgobix0KX0hZnVuY3Rpb24odCl7dC5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztuLl91aWQ9Ym4rKyxuLl9pc1Z1ZT0hMCx0JiZ0Ll9pc0NvbXBvbmVudD9mdW5jdGlvbihlLHQpe3ZhciBuPWUuJG9wdGlvbnM9T2JqZWN0LmNyZWF0ZShlLmNvbnN0cnVjdG9yLm9wdGlvbnMpLHI9dC5fcGFyZW50Vm5vZGU7bi5wYXJlbnQ9dC5wYXJlbnQsbi5fcGFyZW50Vm5vZGU9cjt2YXIgaT1yLmNvbXBvbmVudE9wdGlvbnM7bi5wcm9wc0RhdGE9aS5wcm9wc0RhdGEsbi5fcGFyZW50TGlzdGVuZXJzPWkubGlzdGVuZXJzLG4uX3JlbmRlckNoaWxkcmVuPWkuY2hpbGRyZW4sbi5fY29tcG9uZW50VGFnPWkudGFnLHQucmVuZGVyJiYobi5yZW5kZXI9dC5yZW5kZXIsbi5zdGF0aWNSZW5kZXJGbnM9dC5zdGF0aWNSZW5kZXJGbnMpfShuLHQpOm4uJG9wdGlvbnM9RGUoJG4obi5jb25zdHJ1Y3RvciksdHx8e30sbiksbi5fcmVuZGVyUHJveHk9bixuLl9zZWxmPW4sZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucyxuPXQucGFyZW50O2lmKG4mJiF0LmFic3RyYWN0KXtmb3IoO24uJG9wdGlvbnMuYWJzdHJhY3QmJm4uJHBhcmVudDspbj1uLiRwYXJlbnQ7bi4kY2hpbGRyZW4ucHVzaChlKX1lLiRwYXJlbnQ9bixlLiRyb290PW4\/bi4kcm9vdDplLGUuJGNoaWxkcmVuPVtdLGUuJHJlZnM9e30sZS5fd2F0Y2hlcj1udWxsLGUuX2luYWN0aXZlPW51bGwsZS5fZGlyZWN0SW5hY3RpdmU9ITEsZS5faXNNb3VudGVkPSExLGUuX2lzRGVzdHJveWVkPSExLGUuX2lzQmVpbmdEZXN0cm95ZWQ9ITF9KG4pLGZ1bmN0aW9uKGUpe2UuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLGUuX2hhc0hvb2tFdmVudD0hMTt2YXIgdD1lLiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7dCYmcXQoZSx0KX0obiksZnVuY3Rpb24odCl7dC5fdm5vZGU9bnVsbCx0Ll9zdGF0aWNUcmVlcz1udWxsO3ZhciBuPXQuJG9wdGlvbnMscj10LiR2bm9kZT1uLl9wYXJlbnRWbm9kZSxpPXImJnIuY29udGV4dDt0LiRzbG90cz11dChuLl9yZW5kZXJDaGlsZHJlbixpKSx0LiRzY29wZWRTbG90cz1lLHQuX2M9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIFB0KHQsZSxuLHIsaSwhMSl9LHQuJGNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSxuLHIsaSl7cmV0dXJuIFB0KHQsZSxuLHIsaSwhMCl9O3ZhciBvPXImJnIuZGF0YTt4ZSh0LCIkYXR0cnMiLG8mJm8uYXR0cnN8fGUsbnVsbCwhMCkseGUodCwiJGxpc3RlbmVycyIsbi5fcGFyZW50TGlzdGVuZXJzfHxlLG51bGwsITApfShuKSxZdChuLCJiZWZvcmVDcmVhdGUiKSxmdW5jdGlvbihlKXt2YXIgdD1jdChlLiRvcHRpb25zLmluamVjdCxlKTt0JiYoJGUoITEpLE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obil7eGUoZSxuLHRbbl0pfSksJGUoITApKX0obiksdm4obiksZnVuY3Rpb24oZSl7dmFyIHQ9ZS4kb3B0aW9ucy5wcm92aWRlO3QmJihlLl9wcm92aWRlZD0iZnVuY3Rpb24iPT10eXBlb2YgdD90LmNhbGwoZSk6dCl9KG4pLFl0KG4sImNyZWF0ZWQiKSxuLiRvcHRpb25zLmVsJiZuLiRtb3VudChuLiRvcHRpb25zLmVsKX19KHduKSxmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RhdGF9fSxuPXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvcHN9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIiRkYXRhIix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIiRwcm9wcyIsbiksZS5wcm90b3R5cGUuJHNldD1rZSxlLnByb3RvdHlwZS4kZGVsZXRlPUFlLGUucHJvdG90eXBlLiR3YXRjaD1mdW5jdGlvbihlLHQsbil7aWYocyh0KSlyZXR1cm4gX24odGhpcyxlLHQsbik7KG49bnx8e30pLnVzZXI9ITA7dmFyIHI9bmV3IGZuKHRoaXMsZSx0LG4pO2lmKG4uaW1tZWRpYXRlKXRyeXt0LmNhbGwodGhpcyxyLnZhbHVlKX1jYXRjaChlKXtSZShlLHRoaXMsJ2NhbGxiYWNrIGZvciBpbW1lZGlhdGUgd2F0Y2hlciAiJytyLmV4cHJlc3Npb24rJyInKX1yZXR1cm4gZnVuY3Rpb24oKXtyLnRlYXJkb3duKCl9fX0od24pLGZ1bmN0aW9uKGUpe3ZhciB0PS9eaG9vazovO2UucHJvdG90eXBlLiRvbj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIGk9MCxvPWUubGVuZ3RoO2k8bztpKyspci4kb24oZVtpXSxuKTtlbHNlKHIuX2V2ZW50c1tlXXx8KHIuX2V2ZW50c1tlXT1bXSkpLnB1c2gobiksdC50ZXN0KGUpJiYoci5faGFzSG9va0V2ZW50PSEwKTtyZXR1cm4gcn0sZS5wcm90b3R5cGUuJG9uY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2Z1bmN0aW9uIHIoKXtuLiRvZmYoZSxyKSx0LmFwcGx5KG4sYXJndW1lbnRzKX1yZXR1cm4gci5mbj10LG4uJG9uKGUsciksbn0sZS5wcm90b3R5cGUuJG9mZj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIG4uX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLG47aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciByPTAsaT1lLmxlbmd0aDtyPGk7cisrKW4uJG9mZihlW3JdLHQpO3JldHVybiBufXZhciBvLGE9bi5fZXZlbnRzW2VdO2lmKCFhKXJldHVybiBuO2lmKCF0KXJldHVybiBuLl9ldmVudHNbZV09bnVsbCxuO2Zvcih2YXIgcz1hLmxlbmd0aDtzLS07KWlmKChvPWFbc10pPT09dHx8by5mbj09PXQpe2Euc3BsaWNlKHMsMSk7YnJlYWt9cmV0dXJuIG59LGUucHJvdG90eXBlLiRlbWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2V2ZW50c1tlXTtpZih0KXt0PXQubGVuZ3RoPjE\/ayh0KTp0O2Zvcih2YXIgbj1rKGFyZ3VtZW50cywxKSxyPSdldmVudCBoYW5kbGVyIGZvciAiJytlKyciJyxpPTAsbz10Lmxlbmd0aDtpPG87aSsrKUhlKHRbaV0sdGhpcyxuLHRoaXMscil9cmV0dXJuIHRoaXN9fSh3biksZnVuY3Rpb24oZSl7ZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1uLiRlbCxpPW4uX3Zub2RlLG89WnQobik7bi5fdm5vZGU9ZSxuLiRlbD1pP24uX19wYXRjaF9fKGksZSk6bi5fX3BhdGNoX18obi4kZWwsZSx0LCExKSxvKCksciYmKHIuX192dWVfXz1udWxsKSxuLiRlbCYmKG4uJGVsLl9fdnVlX189biksbi4kdm5vZGUmJm4uJHBhcmVudCYmbi4kdm5vZGU9PT1uLiRwYXJlbnQuX3Zub2RlJiYobi4kcGFyZW50LiRlbD1uLiRlbCl9LGUucHJvdG90eXBlLiRmb3JjZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX3dhdGNoZXImJnRoaXMuX3dhdGNoZXIudXBkYXRlKCl9LGUucHJvdG90eXBlLiRkZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZighZS5faXNCZWluZ0Rlc3Ryb3llZCl7WXQoZSwiYmVmb3JlRGVzdHJveSIpLGUuX2lzQmVpbmdEZXN0cm95ZWQ9ITA7dmFyIHQ9ZS4kcGFyZW50OyF0fHx0Ll9pc0JlaW5nRGVzdHJveWVkfHxlLiRvcHRpb25zLmFic3RyYWN0fHxoKHQuJGNoaWxkcmVuLGUpLGUuX3dhdGNoZXImJmUuX3dhdGNoZXIudGVhcmRvd24oKTtmb3IodmFyIG49ZS5fd2F0Y2hlcnMubGVuZ3RoO24tLTspZS5fd2F0Y2hlcnNbbl0udGVhcmRvd24oKTtlLl9kYXRhLl9fb2JfXyYmZS5fZGF0YS5fX29iX18udm1Db3VudC0tLGUuX2lzRGVzdHJveWVkPSEwLGUuX19wYXRjaF9fKGUuX3Zub2RlLG51bGwpLFl0KGUsImRlc3Ryb3llZCIpLGUuJG9mZigpLGUuJGVsJiYoZS4kZWwuX192dWVfXz1udWxsKSxlLiR2bm9kZSYmKGUuJHZub2RlLnBhcmVudD1udWxsKX19fSh3biksZnVuY3Rpb24oZSl7U3QoZS5wcm90b3R5cGUpLGUucHJvdG90eXBlLiRuZXh0VGljaz1mdW5jdGlvbihlKXtyZXR1cm4gWWUoZSx0aGlzKX0sZS5wcm90b3R5cGUuX3JlbmRlcj1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcyxuPXQuJG9wdGlvbnMscj1uLnJlbmRlcixpPW4uX3BhcmVudFZub2RlO2kmJih0LiRzY29wZWRTbG90cz1mdChpLmRhdGEuc2NvcGVkU2xvdHMsdC4kc2xvdHMsdC4kc2NvcGVkU2xvdHMpKSx0LiR2bm9kZT1pO3RyeXtIdD10LGU9ci5jYWxsKHQuX3JlbmRlclByb3h5LHQuJGNyZWF0ZUVsZW1lbnQpfWNhdGNoKG4pe1JlKG4sdCwicmVuZGVyIiksZT10Ll92bm9kZX1maW5hbGx5e0h0PW51bGx9cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJjE9PT1lLmxlbmd0aCYmKGU9ZVswXSksZSBpbnN0YW5jZW9mIHBlfHwoZT12ZSgpKSxlLnBhcmVudD1pLGV9fSh3bik7dmFyIFNuPVtTdHJpbmcsUmVnRXhwLEFycmF5XSxUbj17S2VlcEFsaXZlOntuYW1lOiJrZWVwLWFsaXZlIixhYnN0cmFjdDohMCxwcm9wczp7aW5jbHVkZTpTbixleGNsdWRlOlNuLG1heDpbU3RyaW5nLE51bWJlcl19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhY2hlPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5rZXlzPVtdfSxkZXN0cm95ZWQ6ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5jYWNoZSlPbih0aGlzLmNhY2hlLGUsdGhpcy5rZXlzKX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy4kd2F0Y2goImluY2x1ZGUiLGZ1bmN0aW9uKHQpe0FuKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGtuKHQsZSl9KX0pLHRoaXMuJHdhdGNoKCJleGNsdWRlIixmdW5jdGlvbih0KXtBbihlLGZ1bmN0aW9uKGUpe3JldHVybiFrbih0LGUpfSl9KX0scmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy4kc2xvdHMuZGVmYXVsdCx0PXp0KGUpLG49dCYmdC5jb21wb25lbnRPcHRpb25zO2lmKG4pe3ZhciByPXhuKG4pLGk9dGhpcy5pbmNsdWRlLG89dGhpcy5leGNsdWRlO2lmKGkmJighcnx8IWtuKGkscikpfHxvJiZyJiZrbihvLHIpKXJldHVybiB0O3ZhciBhPXRoaXMuY2FjaGUscz10aGlzLmtleXMsYz1udWxsPT10LmtleT9uLkN0b3IuY2lkKyhuLnRhZz8iOjoiK24udGFnOiIiKTp0LmtleTthW2NdPyh0LmNvbXBvbmVudEluc3RhbmNlPWFbY10uY29tcG9uZW50SW5zdGFuY2UsaChzLGMpLHMucHVzaChjKSk6KGFbY109dCxzLnB1c2goYyksdGhpcy5tYXgmJnMubGVuZ3RoPnBhcnNlSW50KHRoaXMubWF4KSYmT24oYSxzWzBdLHMsdGhpcy5fdm5vZGUpKSx0LmRhdGEua2VlcEFsaXZlPSEwfXJldHVybiB0fHxlJiZlWzBdfX19OyFmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY29uZmlnIix0KSxlLnV0aWw9e3dhcm46YWUsZXh0ZW5kOkEsbWVyZ2VPcHRpb25zOkRlLGRlZmluZVJlYWN0aXZlOnhlfSxlLnNldD1rZSxlLmRlbGV0ZT1BZSxlLm5leHRUaWNrPVllLGUub2JzZXJ2YWJsZT1mdW5jdGlvbihlKXtyZXR1cm4gQ2UoZSksZX0sZS5vcHRpb25zPU9iamVjdC5jcmVhdGUobnVsbCksTS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Uub3B0aW9uc1t0KyJzIl09T2JqZWN0LmNyZWF0ZShudWxsKX0pLGUub3B0aW9ucy5fYmFzZT1lLEEoZS5vcHRpb25zLmNvbXBvbmVudHMsVG4pLGZ1bmN0aW9uKGUpe2UudXNlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2luc3RhbGxlZFBsdWdpbnN8fCh0aGlzLl9pbnN0YWxsZWRQbHVnaW5zPVtdKTtpZih0LmluZGV4T2YoZSk+LTEpcmV0dXJuIHRoaXM7dmFyIG49ayhhcmd1bWVudHMsMSk7cmV0dXJuIG4udW5zaGlmdCh0aGlzKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5pbnN0YWxsP2UuaW5zdGFsbC5hcHBseShlLG4pOiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLmFwcGx5KG51bGwsbiksdC5wdXNoKGUpLHRoaXN9fShlKSxmdW5jdGlvbihlKXtlLm1peGluPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9wdGlvbnM9RGUodGhpcy5vcHRpb25zLGUpLHRoaXN9fShlKSxDbihlKSxmdW5jdGlvbihlKXtNLmZvckVhY2goZnVuY3Rpb24odCl7ZVt0XT1mdW5jdGlvbihlLG4pe3JldHVybiBuPygiY29tcG9uZW50Ij09PXQmJnMobikmJihuLm5hbWU9bi5uYW1lfHxlLG49dGhpcy5vcHRpb25zLl9iYXNlLmV4dGVuZChuKSksImRpcmVjdGl2ZSI9PT10JiYiZnVuY3Rpb24iPT10eXBlb2YgbiYmKG49e2JpbmQ6bix1cGRhdGU6bn0pLHRoaXMub3B0aW9uc1t0KyJzIl1bZV09bixuKTp0aGlzLm9wdGlvbnNbdCsicyJdW2VdfX0pfShlKX0od24pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3bi5wcm90b3R5cGUsIiRpc1NlcnZlciIse2dldDp0ZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3bi5wcm90b3R5cGUsIiRzc3JDb250ZXh0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHZub2RlJiZ0aGlzLiR2bm9kZS5zc3JDb250ZXh0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3biwiRnVuY3Rpb25hbFJlbmRlckNvbnRleHQiLHt2YWx1ZTpUdH0pLHduLnZlcnNpb249IjIuNi4xMSI7dmFyIEVuPXAoInN0eWxlLGNsYXNzIiksTm49cCgiaW5wdXQsdGV4dGFyZWEsb3B0aW9uLHNlbGVjdCxwcm9ncmVzcyIpLGpuPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4idmFsdWUiPT09biYmTm4oZSkmJiJidXR0b24iIT09dHx8InNlbGVjdGVkIj09PW4mJiJvcHRpb24iPT09ZXx8ImNoZWNrZWQiPT09biYmImlucHV0Ij09PWV8fCJtdXRlZCI9PT1uJiYidmlkZW8iPT09ZX0sRG49cCgiY29udGVudGVkaXRhYmxlLGRyYWdnYWJsZSxzcGVsbGNoZWNrIiksTG49cCgiZXZlbnRzLGNhcmV0LHR5cGluZyxwbGFpbnRleHQtb25seSIpLE1uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEhuKHQpfHwiZmFsc2UiPT09dD8iZmFsc2UiOiJjb250ZW50ZWRpdGFibGUiPT09ZSYmTG4odCk\/dDoidHJ1ZSJ9LEluPXAoImFsbG93ZnVsbHNjcmVlbixhc3luYyxhdXRvZm9jdXMsYXV0b3BsYXksY2hlY2tlZCxjb21wYWN0LGNvbnRyb2xzLGRlY2xhcmUsZGVmYXVsdCxkZWZhdWx0Y2hlY2tlZCxkZWZhdWx0bXV0ZWQsZGVmYXVsdHNlbGVjdGVkLGRlZmVyLGRpc2FibGVkLGVuYWJsZWQsZm9ybW5vdmFsaWRhdGUsaGlkZGVuLGluZGV0ZXJtaW5hdGUsaW5lcnQsaXNtYXAsaXRlbXNjb3BlLGxvb3AsbXVsdGlwbGUsbXV0ZWQsbm9ocmVmLG5vcmVzaXplLG5vc2hhZGUsbm92YWxpZGF0ZSxub3dyYXAsb3BlbixwYXVzZW9uZXhpdCxyZWFkb25seSxyZXF1aXJlZCxyZXZlcnNlZCxzY29wZWQsc2VhbWxlc3Msc2VsZWN0ZWQsc29ydGFibGUsdHJhbnNsYXRlLHRydWVzcGVlZCx0eXBlbXVzdG1hdGNoLHZpc2libGUiKSxGbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsUG49ZnVuY3Rpb24oZSl7cmV0dXJuIjoiPT09ZS5jaGFyQXQoNSkmJiJ4bGluayI9PT1lLnNsaWNlKDAsNSl9LFJuPWZ1bmN0aW9uKGUpe3JldHVybiBQbihlKT9lLnNsaWNlKDYsZS5sZW5ndGgpOiIifSxIbj1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZXx8ITE9PT1lfTtmdW5jdGlvbiBCbihlKXtmb3IodmFyIHQ9ZS5kYXRhLHI9ZSxpPWU7bihpLmNvbXBvbmVudEluc3RhbmNlKTspKGk9aS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpJiZpLmRhdGEmJih0PVVuKGkuZGF0YSx0KSk7Zm9yKDtuKHI9ci5wYXJlbnQpOylyJiZyLmRhdGEmJih0PVVuKHQsci5kYXRhKSk7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYobihlKXx8bih0KSlyZXR1cm4gem4oZSxWbih0KSk7cmV0dXJuIiJ9KHQuc3RhdGljQ2xhc3MsdC5jbGFzcyl9ZnVuY3Rpb24gVW4oZSx0KXtyZXR1cm57c3RhdGljQ2xhc3M6em4oZS5zdGF0aWNDbGFzcyx0LnN0YXRpY0NsYXNzKSxjbGFzczpuKGUuY2xhc3MpP1tlLmNsYXNzLHQuY2xhc3NdOnQuY2xhc3N9fWZ1bmN0aW9uIHpuKGUsdCl7cmV0dXJuIGU\/dD9lKyIgIit0OmU6dHx8IiJ9ZnVuY3Rpb24gVm4oZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9IiIsaT0wLG89ZS5sZW5ndGg7aTxvO2krKyluKHQ9Vm4oZVtpXSkpJiYiIiE9PXQmJihyJiYocis9IiAiKSxyKz10KTtyZXR1cm4gcn0oZSk6byhlKT9mdW5jdGlvbihlKXt2YXIgdD0iIjtmb3IodmFyIG4gaW4gZSllW25dJiYodCYmKHQrPSIgIiksdCs9bik7cmV0dXJuIHR9KGUpOiJzdHJpbmciPT10eXBlb2YgZT9lOiIifXZhciBLbj17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsbWF0aDoiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCJ9LEpuPXAoImh0bWwsYm9keSxiYXNlLGhlYWQsbGluayxtZXRhLHN0eWxlLHRpdGxlLGFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxmb290ZXIsaGVhZGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhncm91cCxuYXYsc2VjdGlvbixkaXYsZGQsZGwsZHQsZmlnY2FwdGlvbixmaWd1cmUscGljdHVyZSxocixpbWcsbGksbWFpbixvbCxwLHByZSx1bCxhLGIsYWJicixiZGksYmRvLGJyLGNpdGUsY29kZSxkYXRhLGRmbixlbSxpLGtiZCxtYXJrLHEscnAscnQscnRjLHJ1YnkscyxzYW1wLHNtYWxsLHNwYW4sc3Ryb25nLHN1YixzdXAsdGltZSx1LHZhcix3YnIsYXJlYSxhdWRpbyxtYXAsdHJhY2ssdmlkZW8sZW1iZWQsb2JqZWN0LHBhcmFtLHNvdXJjZSxjYW52YXMsc2NyaXB0LG5vc2NyaXB0LGRlbCxpbnMsY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsdGgsdHIsYnV0dG9uLGRhdGFsaXN0LGZpZWxkc2V0LGZvcm0saW5wdXQsbGFiZWwsbGVnZW5kLG1ldGVyLG9wdGdyb3VwLG9wdGlvbixvdXRwdXQscHJvZ3Jlc3Msc2VsZWN0LHRleHRhcmVhLGRldGFpbHMsZGlhbG9nLG1lbnUsbWVudWl0ZW0sc3VtbWFyeSxjb250ZW50LGVsZW1lbnQsc2hhZG93LHRlbXBsYXRlLGJsb2NrcXVvdGUsaWZyYW1lLHRmb290IikscW49cCgic3ZnLGFuaW1hdGUsY2lyY2xlLGNsaXBwYXRoLGN1cnNvcixkZWZzLGRlc2MsZWxsaXBzZSxmaWx0ZXIsZm9udC1mYWNlLGZvcmVpZ25PYmplY3QsZyxnbHlwaCxpbWFnZSxsaW5lLG1hcmtlcixtYXNrLG1pc3NpbmctZ2x5cGgscGF0aCxwYXR0ZXJuLHBvbHlnb24scG9seWxpbmUscmVjdCxzd2l0Y2gsc3ltYm9sLHRleHQsdGV4dHBhdGgsdHNwYW4sdXNlLHZpZXciLCEwKSxXbj1mdW5jdGlvbihlKXtyZXR1cm4gSm4oZSl8fHFuKGUpfTtmdW5jdGlvbiBabihlKXtyZXR1cm4gcW4oZSk\/InN2ZyI6Im1hdGgiPT09ZT8ibWF0aCI6dm9pZCAwfXZhciBHbj1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBYbj1wKCJ0ZXh0LG51bWJlcixwYXNzd29yZCxzZWFyY2gsZW1haWwsdGVsLHVybCIpO2Z1bmN0aW9uIFluKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKTtyZXR1cm4gdHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iil9cmV0dXJuIGV9dmFyIFFuPU9iamVjdC5mcmVlemUoe2NyZWF0ZUVsZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiJzZWxlY3QiIT09ZT9uOih0LmRhdGEmJnQuZGF0YS5hdHRycyYmdm9pZCAwIT09dC5kYXRhLmF0dHJzLm11bHRpcGxlJiZuLnNldEF0dHJpYnV0ZSgibXVsdGlwbGUiLCJtdWx0aXBsZSIpLG4pfSxjcmVhdGVFbGVtZW50TlM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKEtuW2VdLHQpfSxjcmVhdGVUZXh0Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9LGNyZWF0ZUNvbW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZSl9LGluc2VydEJlZm9yZTpmdW5jdGlvbihlLHQsbil7ZS5pbnNlcnRCZWZvcmUodCxuKX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oZSx0KXtlLnJlbW92ZUNoaWxkKHQpfSxhcHBlbmRDaGlsZDpmdW5jdGlvbihlLHQpe2UuYXBwZW5kQ2hpbGQodCl9LHBhcmVudE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZX0sbmV4dFNpYmxpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubmV4dFNpYmxpbmd9LHRhZ05hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFnTmFtZX0sc2V0VGV4dENvbnRlbnQ6ZnVuY3Rpb24oZSx0KXtlLnRleHRDb250ZW50PXR9LHNldFN0eWxlU2NvcGU6ZnVuY3Rpb24oZSx0KXtlLnNldEF0dHJpYnV0ZSh0LCIiKX19KSxlcj17Y3JlYXRlOmZ1bmN0aW9uKGUsdCl7dHIodCl9LHVwZGF0ZTpmdW5jdGlvbihlLHQpe2UuZGF0YS5yZWYhPT10LmRhdGEucmVmJiYodHIoZSwhMCksdHIodCkpfSxkZXN0cm95OmZ1bmN0aW9uKGUpe3RyKGUsITApfX07ZnVuY3Rpb24gdHIoZSx0KXt2YXIgcj1lLmRhdGEucmVmO2lmKG4ocikpe3ZhciBpPWUuY29udGV4dCxvPWUuY29tcG9uZW50SW5zdGFuY2V8fGUuZWxtLGE9aS4kcmVmczt0P0FycmF5LmlzQXJyYXkoYVtyXSk\/aChhW3JdLG8pOmFbcl09PT1vJiYoYVtyXT12b2lkIDApOmUuZGF0YS5yZWZJbkZvcj9BcnJheS5pc0FycmF5KGFbcl0pP2Fbcl0uaW5kZXhPZihvKTwwJiZhW3JdLnB1c2gobyk6YVtyXT1bb106YVtyXT1vfX12YXIgbnI9bmV3IHBlKCIiLHt9LFtdKSxycj1bImNyZWF0ZSIsImFjdGl2YXRlIiwidXBkYXRlIiwicmVtb3ZlIiwiZGVzdHJveSJdO2Z1bmN0aW9uIGlyKGUsaSl7cmV0dXJuIGUua2V5PT09aS5rZXkmJihlLnRhZz09PWkudGFnJiZlLmlzQ29tbWVudD09PWkuaXNDb21tZW50JiZuKGUuZGF0YSk9PT1uKGkuZGF0YSkmJmZ1bmN0aW9uKGUsdCl7aWYoImlucHV0IiE9PWUudGFnKXJldHVybiEwO3ZhciByLGk9bihyPWUuZGF0YSkmJm4ocj1yLmF0dHJzKSYmci50eXBlLG89bihyPXQuZGF0YSkmJm4ocj1yLmF0dHJzKSYmci50eXBlO3JldHVybiBpPT09b3x8WG4oaSkmJlhuKG8pfShlLGkpfHxyKGUuaXNBc3luY1BsYWNlaG9sZGVyKSYmZS5hc3luY0ZhY3Rvcnk9PT1pLmFzeW5jRmFjdG9yeSYmdChpLmFzeW5jRmFjdG9yeS5lcnJvcikpfWZ1bmN0aW9uIG9yKGUsdCxyKXt2YXIgaSxvLGE9e307Zm9yKGk9dDtpPD1yOysraSluKG89ZVtpXS5rZXkpJiYoYVtvXT1pKTtyZXR1cm4gYX12YXIgYXI9e2NyZWF0ZTpzcix1cGRhdGU6c3IsZGVzdHJveTpmdW5jdGlvbihlKXtzcihlLG5yKX19O2Z1bmN0aW9uIHNyKGUsdCl7KGUuZGF0YS5kaXJlY3RpdmVzfHx0LmRhdGEuZGlyZWN0aXZlcykmJmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG89ZT09PW5yLGE9dD09PW5yLHM9dXIoZS5kYXRhLmRpcmVjdGl2ZXMsZS5jb250ZXh0KSxjPXVyKHQuZGF0YS5kaXJlY3RpdmVzLHQuY29udGV4dCksdT1bXSxsPVtdO2ZvcihuIGluIGMpcj1zW25dLGk9Y1tuXSxyPyhpLm9sZFZhbHVlPXIudmFsdWUsaS5vbGRBcmc9ci5hcmcsZnIoaSwidXBkYXRlIix0LGUpLGkuZGVmJiZpLmRlZi5jb21wb25lbnRVcGRhdGVkJiZsLnB1c2goaSkpOihmcihpLCJiaW5kIix0LGUpLGkuZGVmJiZpLmRlZi5pbnNlcnRlZCYmdS5wdXNoKGkpKTtpZih1Lmxlbmd0aCl7dmFyIGY9ZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPHUubGVuZ3RoO24rKylmcih1W25dLCJpbnNlcnRlZCIsdCxlKX07bz9pdCh0LCJpbnNlcnQiLGYpOmYoKX1sLmxlbmd0aCYmaXQodCwicG9zdHBhdGNoIixmdW5jdGlvbigpe2Zvcih2YXIgbj0wO248bC5sZW5ndGg7bisrKWZyKGxbbl0sImNvbXBvbmVudFVwZGF0ZWQiLHQsZSl9KTtpZighbylmb3IobiBpbiBzKWNbbl18fGZyKHNbbl0sInVuYmluZCIsZSxlLGEpfShlLHQpfXZhciBjcj1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIHVyKGUsdCl7dmFyIG4scixpPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoIWUpcmV0dXJuIGk7Zm9yKG49MDtuPGUubGVuZ3RoO24rKykocj1lW25dKS5tb2RpZmllcnN8fChyLm1vZGlmaWVycz1jciksaVtscihyKV09cixyLmRlZj1MZSh0LiRvcHRpb25zLCJkaXJlY3RpdmVzIixyLm5hbWUpO3JldHVybiBpfWZ1bmN0aW9uIGxyKGUpe3JldHVybiBlLnJhd05hbWV8fGUubmFtZSsiLiIrT2JqZWN0LmtleXMoZS5tb2RpZmllcnN8fHt9KS5qb2luKCIuIil9ZnVuY3Rpb24gZnIoZSx0LG4scixpKXt2YXIgbz1lLmRlZiYmZS5kZWZbdF07aWYobyl0cnl7byhuLmVsbSxlLG4scixpKX1jYXRjaChyKXtSZShyLG4uY29udGV4dCwiZGlyZWN0aXZlICIrZS5uYW1lKyIgIit0KyIgaG9vayIpfX12YXIgcHI9W2VyLGFyXTtmdW5jdGlvbiBkcihlLHIpe3ZhciBpPXIuY29tcG9uZW50T3B0aW9ucztpZighKG4oaSkmJiExPT09aS5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzfHx0KGUuZGF0YS5hdHRycykmJnQoci5kYXRhLmF0dHJzKSkpe3ZhciBvLGEscz1yLmVsbSxjPWUuZGF0YS5hdHRyc3x8e30sdT1yLmRhdGEuYXR0cnN8fHt9O2ZvcihvIGluIG4odS5fX29iX18pJiYodT1yLmRhdGEuYXR0cnM9QSh7fSx1KSksdSlhPXVbb10sY1tvXSE9PWEmJnZyKHMsbyxhKTtmb3IobyBpbihxfHxaKSYmdS52YWx1ZSE9PWMudmFsdWUmJnZyKHMsInZhbHVlIix1LnZhbHVlKSxjKXQodVtvXSkmJihQbihvKT9zLnJlbW92ZUF0dHJpYnV0ZU5TKEZuLFJuKG8pKTpEbihvKXx8cy5yZW1vdmVBdHRyaWJ1dGUobykpfX1mdW5jdGlvbiB2cihlLHQsbil7ZS50YWdOYW1lLmluZGV4T2YoIi0iKT4tMT9ocihlLHQsbik6SW4odCk\/SG4obik\/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6KG49ImFsbG93ZnVsbHNjcmVlbiI9PT10JiYiRU1CRUQiPT09ZS50YWdOYW1lPyJ0cnVlIjp0LGUuc2V0QXR0cmlidXRlKHQsbikpOkRuKHQpP2Uuc2V0QXR0cmlidXRlKHQsTW4odCxuKSk6UG4odCk\/SG4obik\/ZS5yZW1vdmVBdHRyaWJ1dGVOUyhGbixSbih0KSk6ZS5zZXRBdHRyaWJ1dGVOUyhGbix0LG4pOmhyKGUsdCxuKX1mdW5jdGlvbiBocihlLHQsbil7aWYoSG4obikpZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtpZihxJiYhVyYmIlRFWFRBUkVBIj09PWUudGFnTmFtZSYmInBsYWNlaG9sZGVyIj09PXQmJiIiIT09biYmIWUuX19pZXBoKXt2YXIgcj1mdW5jdGlvbih0KXt0LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHIpfTtlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixyKSxlLl9faWVwaD0hMH1lLnNldEF0dHJpYnV0ZSh0LG4pfX12YXIgbXI9e2NyZWF0ZTpkcix1cGRhdGU6ZHJ9O2Z1bmN0aW9uIHlyKGUscil7dmFyIGk9ci5lbG0sbz1yLmRhdGEsYT1lLmRhdGE7aWYoISh0KG8uc3RhdGljQ2xhc3MpJiZ0KG8uY2xhc3MpJiYodChhKXx8dChhLnN0YXRpY0NsYXNzKSYmdChhLmNsYXNzKSkpKXt2YXIgcz1CbihyKSxjPWkuX3RyYW5zaXRpb25DbGFzc2VzO24oYykmJihzPXpuKHMsVm4oYykpKSxzIT09aS5fcHJldkNsYXNzJiYoaS5zZXRBdHRyaWJ1dGUoImNsYXNzIixzKSxpLl9wcmV2Q2xhc3M9cyl9fXZhciBncixfcixiciwkcix3cixDcix4cj17Y3JlYXRlOnlyLHVwZGF0ZTp5cn0sa3I9L1tcdykuK1wtXyRcXV0vO2Z1bmN0aW9uIEFyKGUpe3ZhciB0LG4scixpLG8sYT0hMSxzPSExLGM9ITEsdT0hMSxsPTAsZj0wLHA9MCxkPTA7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKylpZihuPXQsdD1lLmNoYXJDb2RlQXQociksYSkzOT09PXQmJjkyIT09biYmKGE9ITEpO2Vsc2UgaWYocykzND09PXQmJjkyIT09biYmKHM9ITEpO2Vsc2UgaWYoYyk5Nj09PXQmJjkyIT09biYmKGM9ITEpO2Vsc2UgaWYodSk0Nz09PXQmJjkyIT09biYmKHU9ITEpO2Vsc2UgaWYoMTI0IT09dHx8MTI0PT09ZS5jaGFyQ29kZUF0KHIrMSl8fDEyND09PWUuY2hhckNvZGVBdChyLTEpfHxsfHxmfHxwKXtzd2l0Y2godCl7Y2FzZSAzNDpzPSEwO2JyZWFrO2Nhc2UgMzk6YT0hMDticmVhaztjYXNlIDk2OmM9ITA7YnJlYWs7Y2FzZSA0MDpwKys7YnJlYWs7Y2FzZSA0MTpwLS07YnJlYWs7Y2FzZSA5MTpmKys7YnJlYWs7Y2FzZSA5MzpmLS07YnJlYWs7Y2FzZSAxMjM6bCsrO2JyZWFrO2Nhc2UgMTI1OmwtLX1pZig0Nz09PXQpe2Zvcih2YXIgdj1yLTEsaD12b2lkIDA7dj49MCYmIiAiPT09KGg9ZS5jaGFyQXQodikpO3YtLSk7aCYma3IudGVzdChoKXx8KHU9ITApfX1lbHNlIHZvaWQgMD09PWk\/KGQ9cisxLGk9ZS5zbGljZSgwLHIpLnRyaW0oKSk6bSgpO2Z1bmN0aW9uIG0oKXsob3x8KG89W10pKS5wdXNoKGUuc2xpY2UoZCxyKS50cmltKCkpLGQ9cisxfWlmKHZvaWQgMD09PWk\/aT1lLnNsaWNlKDAscikudHJpbSgpOjAhPT1kJiZtKCksbylmb3Iocj0wO3I8by5sZW5ndGg7cisrKWk9T3IoaSxvW3JdKTtyZXR1cm4gaX1mdW5jdGlvbiBPcihlLHQpe3ZhciBuPXQuaW5kZXhPZigiKCIpO2lmKG48MClyZXR1cm4nX2YoIicrdCsnIikoJytlKyIpIjt2YXIgcj10LnNsaWNlKDAsbiksaT10LnNsaWNlKG4rMSk7cmV0dXJuJ19mKCInK3IrJyIpKCcrZSsoIikiIT09aT8iLCIraTppKX1mdW5jdGlvbiBTcihlLHQpe2NvbnNvbGUuZXJyb3IoIltWdWUgY29tcGlsZXJdOiAiK2UpfWZ1bmN0aW9uIFRyKGUsdCl7cmV0dXJuIGU\/ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF19KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KTpbXX1mdW5jdGlvbiBFcihlLHQsbixyLGkpeyhlLnByb3BzfHwoZS5wcm9wcz1bXSkpLnB1c2goUnIoe25hbWU6dCx2YWx1ZTpuLGR5bmFtaWM6aX0scikpLGUucGxhaW49ITF9ZnVuY3Rpb24gTnIoZSx0LG4scixpKXsoaT9lLmR5bmFtaWNBdHRyc3x8KGUuZHluYW1pY0F0dHJzPVtdKTplLmF0dHJzfHwoZS5hdHRycz1bXSkpLnB1c2goUnIoe25hbWU6dCx2YWx1ZTpuLGR5bmFtaWM6aX0scikpLGUucGxhaW49ITF9ZnVuY3Rpb24ganIoZSx0LG4scil7ZS5hdHRyc01hcFt0XT1uLGUuYXR0cnNMaXN0LnB1c2goUnIoe25hbWU6dCx2YWx1ZTpufSxyKSl9ZnVuY3Rpb24gRHIoZSx0LG4scixpLG8sYSxzKXsoZS5kaXJlY3RpdmVzfHwoZS5kaXJlY3RpdmVzPVtdKSkucHVzaChScih7bmFtZTp0LHJhd05hbWU6bix2YWx1ZTpyLGFyZzppLGlzRHluYW1pY0FyZzpvLG1vZGlmaWVyczphfSxzKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBMcihlLHQsbil7cmV0dXJuIG4\/Il9wKCIrdCsnLCInK2UrJyIpJzplK3R9ZnVuY3Rpb24gTXIodCxuLHIsaSxvLGEscyxjKXt2YXIgdTsoaT1pfHxlKS5yaWdodD9jP249IigiK24rIik9PT0nY2xpY2snPydjb250ZXh0bWVudSc6KCIrbisiKSI6ImNsaWNrIj09PW4mJihuPSJjb250ZXh0bWVudSIsZGVsZXRlIGkucmlnaHQpOmkubWlkZGxlJiYoYz9uPSIoIituKyIpPT09J2NsaWNrJz8nbW91c2V1cCc6KCIrbisiKSI6ImNsaWNrIj09PW4mJihuPSJtb3VzZXVwIikpLGkuY2FwdHVyZSYmKGRlbGV0ZSBpLmNhcHR1cmUsbj1McigiISIsbixjKSksaS5vbmNlJiYoZGVsZXRlIGkub25jZSxuPUxyKCJ+IixuLGMpKSxpLnBhc3NpdmUmJihkZWxldGUgaS5wYXNzaXZlLG49THIoIiYiLG4sYykpLGkubmF0aXZlPyhkZWxldGUgaS5uYXRpdmUsdT10Lm5hdGl2ZUV2ZW50c3x8KHQubmF0aXZlRXZlbnRzPXt9KSk6dT10LmV2ZW50c3x8KHQuZXZlbnRzPXt9KTt2YXIgbD1Scih7dmFsdWU6ci50cmltKCksZHluYW1pYzpjfSxzKTtpIT09ZSYmKGwubW9kaWZpZXJzPWkpO3ZhciBmPXVbbl07QXJyYXkuaXNBcnJheShmKT9vP2YudW5zaGlmdChsKTpmLnB1c2gobCk6dVtuXT1mP28\/W2wsZl06W2YsbF06bCx0LnBsYWluPSExfWZ1bmN0aW9uIElyKGUsdCxuKXt2YXIgcj1GcihlLCI6Iit0KXx8RnIoZSwidi1iaW5kOiIrdCk7aWYobnVsbCE9cilyZXR1cm4gQXIocik7aWYoITEhPT1uKXt2YXIgaT1GcihlLHQpO2lmKG51bGwhPWkpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGkpfX1mdW5jdGlvbiBGcihlLHQsbil7dmFyIHI7aWYobnVsbCE9KHI9ZS5hdHRyc01hcFt0XSkpZm9yKHZhciBpPWUuYXR0cnNMaXN0LG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYoaVtvXS5uYW1lPT09dCl7aS5zcGxpY2UobywxKTticmVha31yZXR1cm4gbiYmZGVsZXRlIGUuYXR0cnNNYXBbdF0scn1mdW5jdGlvbiBQcihlLHQpe2Zvcih2YXIgbj1lLmF0dHJzTGlzdCxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1uW3JdO2lmKHQudGVzdChvLm5hbWUpKXJldHVybiBuLnNwbGljZShyLDEpLG99fWZ1bmN0aW9uIFJyKGUsdCl7cmV0dXJuIHQmJihudWxsIT10LnN0YXJ0JiYoZS5zdGFydD10LnN0YXJ0KSxudWxsIT10LmVuZCYmKGUuZW5kPXQuZW5kKSksZX1mdW5jdGlvbiBIcihlLHQsbil7dmFyIHI9bnx8e30saT1yLm51bWJlcixvPSIkJHYiO3IudHJpbSYmKG89Iih0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KSIpLGkmJihvPSJfbigiK28rIikiKTt2YXIgYT1Ccih0LG8pO2UubW9kZWw9e3ZhbHVlOiIoIit0KyIpIixleHByZXNzaW9uOkpTT04uc3RyaW5naWZ5KHQpLGNhbGxiYWNrOiJmdW5jdGlvbiAoJCR2KSB7IithKyJ9In19ZnVuY3Rpb24gQnIoZSx0KXt2YXIgbj1mdW5jdGlvbihlKXtpZihlPWUudHJpbSgpLGdyPWUubGVuZ3RoLGUuaW5kZXhPZigiWyIpPDB8fGUubGFzdEluZGV4T2YoIl0iKTxnci0xKXJldHVybigkcj1lLmxhc3RJbmRleE9mKCIuIikpPi0xP3tleHA6ZS5zbGljZSgwLCRyKSxrZXk6JyInK2Uuc2xpY2UoJHIrMSkrJyInfTp7ZXhwOmUsa2V5Om51bGx9O19yPWUsJHI9d3I9Q3I9MDtmb3IoOyF6cigpOylWcihicj1VcigpKT9Kcihicik6OTE9PT1iciYmS3IoYnIpO3JldHVybntleHA6ZS5zbGljZSgwLHdyKSxrZXk6ZS5zbGljZSh3cisxLENyKX19KGUpO3JldHVybiBudWxsPT09bi5rZXk\/ZSsiPSIrdDoiJHNldCgiK24uZXhwKyIsICIrbi5rZXkrIiwgIit0KyIpIn1mdW5jdGlvbiBVcigpe3JldHVybiBfci5jaGFyQ29kZUF0KCsrJHIpfWZ1bmN0aW9uIHpyKCl7cmV0dXJuICRyPj1ncn1mdW5jdGlvbiBWcihlKXtyZXR1cm4gMzQ9PT1lfHwzOT09PWV9ZnVuY3Rpb24gS3IoZSl7dmFyIHQ9MTtmb3Iod3I9JHI7IXpyKCk7KWlmKFZyKGU9VXIoKSkpSnIoZSk7ZWxzZSBpZig5MT09PWUmJnQrKyw5Mz09PWUmJnQtLSwwPT09dCl7Q3I9JHI7YnJlYWt9fWZ1bmN0aW9uIEpyKGUpe2Zvcih2YXIgdD1lOyF6cigpJiYoZT1VcigpKSE9PXQ7KTt9dmFyIHFyLFdyPSJfX3IiLFpyPSJfX2MiO2Z1bmN0aW9uIEdyKGUsdCxuKXt2YXIgcj1xcjtyZXR1cm4gZnVuY3Rpb24gaSgpe251bGwhPT10LmFwcGx5KG51bGwsYXJndW1lbnRzKSYmUXIoZSxpLG4scil9fXZhciBYcj1WZSYmIShYJiZOdW1iZXIoWFsxXSk8PTUzKTtmdW5jdGlvbiBZcihlLHQsbixyKXtpZihYcil7dmFyIGk9YW4sbz10O3Q9by5fd3JhcHBlcj1mdW5jdGlvbihlKXtpZihlLnRhcmdldD09PWUuY3VycmVudFRhcmdldHx8ZS50aW1lU3RhbXA+PWl8fGUudGltZVN0YW1wPD0wfHxlLnRhcmdldC5vd25lckRvY3VtZW50IT09ZG9jdW1lbnQpcmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfX1xci5hZGRFdmVudExpc3RlbmVyKGUsdCxRP3tjYXB0dXJlOm4scGFzc2l2ZTpyfTpuKX1mdW5jdGlvbiBRcihlLHQsbixyKXsocnx8cXIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Ll93cmFwcGVyfHx0LG4pfWZ1bmN0aW9uIGVpKGUscil7aWYoIXQoZS5kYXRhLm9uKXx8IXQoci5kYXRhLm9uKSl7dmFyIGk9ci5kYXRhLm9ufHx7fSxvPWUuZGF0YS5vbnx8e307cXI9ci5lbG0sZnVuY3Rpb24oZSl7aWYobihlW1dyXSkpe3ZhciB0PXE\/ImNoYW5nZSI6ImlucHV0IjtlW3RdPVtdLmNvbmNhdChlW1dyXSxlW3RdfHxbXSksZGVsZXRlIGVbV3JdfW4oZVtacl0pJiYoZS5jaGFuZ2U9W10uY29uY2F0KGVbWnJdLGUuY2hhbmdlfHxbXSksZGVsZXRlIGVbWnJdKX0oaSkscnQoaSxvLFlyLFFyLEdyLHIuY29udGV4dCkscXI9dm9pZCAwfX12YXIgdGksbmk9e2NyZWF0ZTplaSx1cGRhdGU6ZWl9O2Z1bmN0aW9uIHJpKGUscil7aWYoIXQoZS5kYXRhLmRvbVByb3BzKXx8IXQoci5kYXRhLmRvbVByb3BzKSl7dmFyIGksbyxhPXIuZWxtLHM9ZS5kYXRhLmRvbVByb3BzfHx7fSxjPXIuZGF0YS5kb21Qcm9wc3x8e307Zm9yKGkgaW4gbihjLl9fb2JfXykmJihjPXIuZGF0YS5kb21Qcm9wcz1BKHt9LGMpKSxzKWkgaW4gY3x8KGFbaV09IiIpO2ZvcihpIGluIGMpe2lmKG89Y1tpXSwidGV4dENvbnRlbnQiPT09aXx8ImlubmVySFRNTCI9PT1pKXtpZihyLmNoaWxkcmVuJiYoci5jaGlsZHJlbi5sZW5ndGg9MCksbz09PXNbaV0pY29udGludWU7MT09PWEuY2hpbGROb2Rlcy5sZW5ndGgmJmEucmVtb3ZlQ2hpbGQoYS5jaGlsZE5vZGVzWzBdKX1pZigidmFsdWUiPT09aSYmIlBST0dSRVNTIiE9PWEudGFnTmFtZSl7YS5fdmFsdWU9bzt2YXIgdT10KG8pPyIiOlN0cmluZyhvKTtpaShhLHUpJiYoYS52YWx1ZT11KX1lbHNlIGlmKCJpbm5lckhUTUwiPT09aSYmcW4oYS50YWdOYW1lKSYmdChhLmlubmVySFRNTCkpeyh0aT10aXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHN2Zz4iK28rIjwvc3ZnPiI7Zm9yKHZhciBsPXRpLmZpcnN0Q2hpbGQ7YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKDtsLmZpcnN0Q2hpbGQ7KWEuYXBwZW5kQ2hpbGQobC5maXJzdENoaWxkKX1lbHNlIGlmKG8hPT1zW2ldKXRyeXthW2ldPW99Y2F0Y2goZSl7fX19fWZ1bmN0aW9uIGlpKGUsdCl7cmV0dXJuIWUuY29tcG9zaW5nJiYoIk9QVElPTiI9PT1lLnRhZ05hbWV8fGZ1bmN0aW9uKGUsdCl7dmFyIG49ITA7dHJ5e249ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWV9Y2F0Y2goZSl7fXJldHVybiBuJiZlLnZhbHVlIT09dH0oZSx0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgcj1lLnZhbHVlLGk9ZS5fdk1vZGlmaWVycztpZihuKGkpKXtpZihpLm51bWJlcilyZXR1cm4gZihyKSE9PWYodCk7aWYoaS50cmltKXJldHVybiByLnRyaW0oKSE9PXQudHJpbSgpfXJldHVybiByIT09dH0oZSx0KSl9dmFyIG9pPXtjcmVhdGU6cmksdXBkYXRlOnJpfSxhaT1nKGZ1bmN0aW9uKGUpe3ZhciB0PXt9LG49LzooLispLztyZXR1cm4gZS5zcGxpdCgvOyg\/IVteKF0qXCkpL2cpLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHI9ZS5zcGxpdChuKTtyLmxlbmd0aD4xJiYodFtyWzBdLnRyaW0oKV09clsxXS50cmltKCkpfX0pLHR9KTtmdW5jdGlvbiBzaShlKXt2YXIgdD1jaShlLnN0eWxlKTtyZXR1cm4gZS5zdGF0aWNTdHlsZT9BKGUuc3RhdGljU3R5bGUsdCk6dH1mdW5jdGlvbiBjaShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9PKGUpOiJzdHJpbmciPT10eXBlb2YgZT9haShlKTplfXZhciB1aSxsaT0vXi0tLyxmaT0vXHMqIWltcG9ydGFudCQvLHBpPWZ1bmN0aW9uKGUsdCxuKXtpZihsaS50ZXN0KHQpKWUuc3R5bGUuc2V0UHJvcGVydHkodCxuKTtlbHNlIGlmKGZpLnRlc3QobikpZS5zdHlsZS5zZXRQcm9wZXJ0eShDKHQpLG4ucmVwbGFjZShmaSwiIiksImltcG9ydGFudCIpO2Vsc2V7dmFyIHI9dmkodCk7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MCxvPW4ubGVuZ3RoO2k8bztpKyspZS5zdHlsZVtyXT1uW2ldO2Vsc2UgZS5zdHlsZVtyXT1ufX0sZGk9WyJXZWJraXQiLCJNb3oiLCJtcyJdLHZpPWcoZnVuY3Rpb24oZSl7aWYodWk9dWl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJmaWx0ZXIiIT09KGU9YihlKSkmJmUgaW4gdWkpcmV0dXJuIGU7Zm9yKHZhciB0PWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSxuPTA7bjxkaS5sZW5ndGg7bisrKXt2YXIgcj1kaVtuXSt0O2lmKHIgaW4gdWkpcmV0dXJuIHJ9fSk7ZnVuY3Rpb24gaGkoZSxyKXt2YXIgaT1yLmRhdGEsbz1lLmRhdGE7aWYoISh0KGkuc3RhdGljU3R5bGUpJiZ0KGkuc3R5bGUpJiZ0KG8uc3RhdGljU3R5bGUpJiZ0KG8uc3R5bGUpKSl7dmFyIGEscyxjPXIuZWxtLHU9by5zdGF0aWNTdHlsZSxsPW8ubm9ybWFsaXplZFN0eWxlfHxvLnN0eWxlfHx7fSxmPXV8fGwscD1jaShyLmRhdGEuc3R5bGUpfHx7fTtyLmRhdGEubm9ybWFsaXplZFN0eWxlPW4ocC5fX29iX18pP0Eoe30scCk6cDt2YXIgZD1mdW5jdGlvbihlLHQpe3ZhciBuLHI9e307aWYodClmb3IodmFyIGk9ZTtpLmNvbXBvbmVudEluc3RhbmNlOykoaT1pLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSkmJmkuZGF0YSYmKG49c2koaS5kYXRhKSkmJkEocixuKTsobj1zaShlLmRhdGEpKSYmQShyLG4pO2Zvcih2YXIgbz1lO289by5wYXJlbnQ7KW8uZGF0YSYmKG49c2koby5kYXRhKSkmJkEocixuKTtyZXR1cm4gcn0ociwhMCk7Zm9yKHMgaW4gZil0KGRbc10pJiZwaShjLHMsIiIpO2ZvcihzIGluIGQpKGE9ZFtzXSkhPT1mW3NdJiZwaShjLHMsbnVsbD09YT8iIjphKX19dmFyIG1pPXtjcmVhdGU6aGksdXBkYXRlOmhpfSx5aT0vXHMrLztmdW5jdGlvbiBnaShlLHQpe2lmKHQmJih0PXQudHJpbSgpKSlpZihlLmNsYXNzTGlzdCl0LmluZGV4T2YoIiAiKT4tMT90LnNwbGl0KHlpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNsYXNzTGlzdC5hZGQodCl9KTplLmNsYXNzTGlzdC5hZGQodCk7ZWxzZXt2YXIgbj0iICIrKGUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIikrIiAiO24uaW5kZXhPZigiICIrdCsiICIpPDAmJmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsKG4rdCkudHJpbSgpKX19ZnVuY3Rpb24gX2koZSx0KXtpZih0JiYodD10LnRyaW0oKSkpaWYoZS5jbGFzc0xpc3QpdC5pbmRleE9mKCIgIik+LTE\/dC5zcGxpdCh5aSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QucmVtb3ZlKHQpfSk6ZS5jbGFzc0xpc3QucmVtb3ZlKHQpLGUuY2xhc3NMaXN0Lmxlbmd0aHx8ZS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik7ZWxzZXtmb3IodmFyIG49IiAiKyhlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpKyIgIixyPSIgIit0KyIgIjtuLmluZGV4T2Yocik+PTA7KW49bi5yZXBsYWNlKHIsIiAiKTsobj1uLnRyaW0oKSk\/ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIixuKTplLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKX19ZnVuY3Rpb24gYmkoZSl7aWYoZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlKXt2YXIgdD17fTtyZXR1cm4hMSE9PWUuY3NzJiZBKHQsJGkoZS5uYW1lfHwidiIpKSxBKHQsZSksdH1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU\/JGkoZSk6dm9pZCAwfX12YXIgJGk9ZyhmdW5jdGlvbihlKXtyZXR1cm57ZW50ZXJDbGFzczplKyItZW50ZXIiLGVudGVyVG9DbGFzczplKyItZW50ZXItdG8iLGVudGVyQWN0aXZlQ2xhc3M6ZSsiLWVudGVyLWFjdGl2ZSIsbGVhdmVDbGFzczplKyItbGVhdmUiLGxlYXZlVG9DbGFzczplKyItbGVhdmUtdG8iLGxlYXZlQWN0aXZlQ2xhc3M6ZSsiLWxlYXZlLWFjdGl2ZSJ9fSksd2k9eiYmIVcsQ2k9InRyYW5zaXRpb24iLHhpPSJhbmltYXRpb24iLGtpPSJ0cmFuc2l0aW9uIixBaT0idHJhbnNpdGlvbmVuZCIsT2k9ImFuaW1hdGlvbiIsU2k9ImFuaW1hdGlvbmVuZCI7d2kmJih2b2lkIDA9PT13aW5kb3cub250cmFuc2l0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXR0cmFuc2l0aW9uZW5kJiYoa2k9IldlYmtpdFRyYW5zaXRpb24iLEFpPSJ3ZWJraXRUcmFuc2l0aW9uRW5kIiksdm9pZCAwPT09d2luZG93Lm9uYW5pbWF0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQmJihPaT0iV2Via2l0QW5pbWF0aW9uIixTaT0id2Via2l0QW5pbWF0aW9uRW5kIikpO3ZhciBUaT16P3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU\/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6c2V0VGltZW91dDpmdW5jdGlvbihlKXtyZXR1cm4gZSgpfTtmdW5jdGlvbiBFaShlKXtUaShmdW5jdGlvbigpe1RpKGUpfSl9ZnVuY3Rpb24gTmkoZSx0KXt2YXIgbj1lLl90cmFuc2l0aW9uQ2xhc3Nlc3x8KGUuX3RyYW5zaXRpb25DbGFzc2VzPVtdKTtuLmluZGV4T2YodCk8MCYmKG4ucHVzaCh0KSxnaShlLHQpKX1mdW5jdGlvbiBqaShlLHQpe2UuX3RyYW5zaXRpb25DbGFzc2VzJiZoKGUuX3RyYW5zaXRpb25DbGFzc2VzLHQpLF9pKGUsdCl9ZnVuY3Rpb24gRGkoZSx0LG4pe3ZhciByPU1pKGUsdCksaT1yLnR5cGUsbz1yLnRpbWVvdXQsYT1yLnByb3BDb3VudDtpZighaSlyZXR1cm4gbigpO3ZhciBzPWk9PT1DaT9BaTpTaSxjPTAsdT1mdW5jdGlvbigpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihzLGwpLG4oKX0sbD1mdW5jdGlvbih0KXt0LnRhcmdldD09PWUmJisrYz49YSYmdSgpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YzxhJiZ1KCl9LG8rMSksZS5hZGRFdmVudExpc3RlbmVyKHMsbCl9dmFyIExpPS9cYih0cmFuc2Zvcm18YWxsKSgsfCQpLztmdW5jdGlvbiBNaShlLHQpe3ZhciBuLHI9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSksaT0ocltraSsiRGVsYXkiXXx8IiIpLnNwbGl0KCIsICIpLG89KHJba2krIkR1cmF0aW9uIl18fCIiKS5zcGxpdCgiLCAiKSxhPUlpKGksbykscz0ocltPaSsiRGVsYXkiXXx8IiIpLnNwbGl0KCIsICIpLGM9KHJbT2krIkR1cmF0aW9uIl18fCIiKS5zcGxpdCgiLCAiKSx1PUlpKHMsYyksbD0wLGY9MDtyZXR1cm4gdD09PUNpP2E+MCYmKG49Q2ksbD1hLGY9by5sZW5ndGgpOnQ9PT14aT91PjAmJihuPXhpLGw9dSxmPWMubGVuZ3RoKTpmPShuPShsPU1hdGgubWF4KGEsdSkpPjA\/YT51P0NpOnhpOm51bGwpP249PT1DaT9vLmxlbmd0aDpjLmxlbmd0aDowLHt0eXBlOm4sdGltZW91dDpsLHByb3BDb3VudDpmLGhhc1RyYW5zZm9ybTpuPT09Q2kmJkxpLnRlc3QocltraSsiUHJvcGVydHkiXSl9fWZ1bmN0aW9uIElpKGUsdCl7Zm9yKDtlLmxlbmd0aDx0Lmxlbmd0aDspZT1lLmNvbmNhdChlKTtyZXR1cm4gTWF0aC5tYXguYXBwbHkobnVsbCx0Lm1hcChmdW5jdGlvbih0LG4pe3JldHVybiBGaSh0KStGaShlW25dKX0pKX1mdW5jdGlvbiBGaShlKXtyZXR1cm4gMWUzKk51bWJlcihlLnNsaWNlKDAsLTEpLnJlcGxhY2UoIiwiLCIuIikpfWZ1bmN0aW9uIFBpKGUscil7dmFyIGk9ZS5lbG07bihpLl9sZWF2ZUNiKSYmKGkuX2xlYXZlQ2IuY2FuY2VsbGVkPSEwLGkuX2xlYXZlQ2IoKSk7dmFyIGE9YmkoZS5kYXRhLnRyYW5zaXRpb24pO2lmKCF0KGEpJiYhbihpLl9lbnRlckNiKSYmMT09PWkubm9kZVR5cGUpe2Zvcih2YXIgcz1hLmNzcyxjPWEudHlwZSx1PWEuZW50ZXJDbGFzcyxsPWEuZW50ZXJUb0NsYXNzLHA9YS5lbnRlckFjdGl2ZUNsYXNzLGQ9YS5hcHBlYXJDbGFzcyx2PWEuYXBwZWFyVG9DbGFzcyxoPWEuYXBwZWFyQWN0aXZlQ2xhc3MsbT1hLmJlZm9yZUVudGVyLHk9YS5lbnRlcixnPWEuYWZ0ZXJFbnRlcixfPWEuZW50ZXJDYW5jZWxsZWQsYj1hLmJlZm9yZUFwcGVhciwkPWEuYXBwZWFyLHc9YS5hZnRlckFwcGVhcixDPWEuYXBwZWFyQ2FuY2VsbGVkLHg9YS5kdXJhdGlvbixrPVd0LEE9V3QuJHZub2RlO0EmJkEucGFyZW50OylrPUEuY29udGV4dCxBPUEucGFyZW50O3ZhciBPPSFrLl9pc01vdW50ZWR8fCFlLmlzUm9vdEluc2VydDtpZighT3x8JHx8IiI9PT0kKXt2YXIgUz1PJiZkP2Q6dSxUPU8mJmg\/aDpwLEU9TyYmdj92OmwsTj1PJiZifHxtLGo9TyYmImZ1bmN0aW9uIj09dHlwZW9mICQ\/JDp5LEw9TyYmd3x8ZyxNPU8mJkN8fF8sST1mKG8oeCk\/eC5lbnRlcjp4KSxGPSExIT09cyYmIVcsUD1CaShqKSxSPWkuX2VudGVyQ2I9RChmdW5jdGlvbigpe0YmJihqaShpLEUpLGppKGksVCkpLFIuY2FuY2VsbGVkPyhGJiZqaShpLFMpLE0mJk0oaSkpOkwmJkwoaSksaS5fZW50ZXJDYj1udWxsfSk7ZS5kYXRhLnNob3d8fGl0KGUsImluc2VydCIsZnVuY3Rpb24oKXt2YXIgdD1pLnBhcmVudE5vZGUsbj10JiZ0Ll9wZW5kaW5nJiZ0Ll9wZW5kaW5nW2Uua2V5XTtuJiZuLnRhZz09PWUudGFnJiZuLmVsbS5fbGVhdmVDYiYmbi5lbG0uX2xlYXZlQ2IoKSxqJiZqKGksUil9KSxOJiZOKGkpLEYmJihOaShpLFMpLE5pKGksVCksRWkoZnVuY3Rpb24oKXtqaShpLFMpLFIuY2FuY2VsbGVkfHwoTmkoaSxFKSxQfHwoSGkoSSk\/c2V0VGltZW91dChSLEkpOkRpKGksYyxSKSkpfSkpLGUuZGF0YS5zaG93JiYociYmcigpLGomJmooaSxSKSksRnx8UHx8UigpfX19ZnVuY3Rpb24gUmkoZSxyKXt2YXIgaT1lLmVsbTtuKGkuX2VudGVyQ2IpJiYoaS5fZW50ZXJDYi5jYW5jZWxsZWQ9ITAsaS5fZW50ZXJDYigpKTt2YXIgYT1iaShlLmRhdGEudHJhbnNpdGlvbik7aWYodChhKXx8MSE9PWkubm9kZVR5cGUpcmV0dXJuIHIoKTtpZighbihpLl9sZWF2ZUNiKSl7dmFyIHM9YS5jc3MsYz1hLnR5cGUsdT1hLmxlYXZlQ2xhc3MsbD1hLmxlYXZlVG9DbGFzcyxwPWEubGVhdmVBY3RpdmVDbGFzcyxkPWEuYmVmb3JlTGVhdmUsdj1hLmxlYXZlLGg9YS5hZnRlckxlYXZlLG09YS5sZWF2ZUNhbmNlbGxlZCx5PWEuZGVsYXlMZWF2ZSxnPWEuZHVyYXRpb24sXz0hMSE9PXMmJiFXLGI9QmkodiksJD1mKG8oZyk\/Zy5sZWF2ZTpnKSx3PWkuX2xlYXZlQ2I9RChmdW5jdGlvbigpe2kucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLl9wZW5kaW5nJiYoaS5wYXJlbnROb2RlLl9wZW5kaW5nW2Uua2V5XT1udWxsKSxfJiYoamkoaSxsKSxqaShpLHApKSx3LmNhbmNlbGxlZD8oXyYmamkoaSx1KSxtJiZtKGkpKToocigpLGgmJmgoaSkpLGkuX2xlYXZlQ2I9bnVsbH0pO3k\/eShDKTpDKCl9ZnVuY3Rpb24gQygpe3cuY2FuY2VsbGVkfHwoIWUuZGF0YS5zaG93JiZpLnBhcmVudE5vZGUmJigoaS5wYXJlbnROb2RlLl9wZW5kaW5nfHwoaS5wYXJlbnROb2RlLl9wZW5kaW5nPXt9KSlbZS5rZXldPWUpLGQmJmQoaSksXyYmKE5pKGksdSksTmkoaSxwKSxFaShmdW5jdGlvbigpe2ppKGksdSksdy5jYW5jZWxsZWR8fChOaShpLGwpLGJ8fChIaSgkKT9zZXRUaW1lb3V0KHcsJCk6RGkoaSxjLHcpKSl9KSksdiYmdihpLHcpLF98fGJ8fHcoKSl9fWZ1bmN0aW9uIEhpKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmIWlzTmFOKGUpfWZ1bmN0aW9uIEJpKGUpe2lmKHQoZSkpcmV0dXJuITE7dmFyIHI9ZS5mbnM7cmV0dXJuIG4ocik\/QmkoQXJyYXkuaXNBcnJheShyKT9yWzBdOnIpOihlLl9sZW5ndGh8fGUubGVuZ3RoKT4xfWZ1bmN0aW9uIFVpKGUsdCl7ITAhPT10LmRhdGEuc2hvdyYmUGkodCl9dmFyIHppPWZ1bmN0aW9uKGUpe3ZhciBvLGEscz17fSxjPWUubW9kdWxlcyx1PWUubm9kZU9wcztmb3Iobz0wO288cnIubGVuZ3RoOysrbylmb3Ioc1tycltvXV09W10sYT0wO2E8Yy5sZW5ndGg7KythKW4oY1thXVtycltvXV0pJiZzW3JyW29dXS5wdXNoKGNbYV1bcnJbb11dKTtmdW5jdGlvbiBsKGUpe3ZhciB0PXUucGFyZW50Tm9kZShlKTtuKHQpJiZ1LnJlbW92ZUNoaWxkKHQsZSl9ZnVuY3Rpb24gZihlLHQsaSxvLGEsYyxsKXtpZihuKGUuZWxtKSYmbihjKSYmKGU9Y1tsXT1tZShlKSksZS5pc1Jvb3RJbnNlcnQ9IWEsIWZ1bmN0aW9uKGUsdCxpLG8pe3ZhciBhPWUuZGF0YTtpZihuKGEpKXt2YXIgYz1uKGUuY29tcG9uZW50SW5zdGFuY2UpJiZhLmtlZXBBbGl2ZTtpZihuKGE9YS5ob29rKSYmbihhPWEuaW5pdCkmJmEoZSwhMSksbihlLmNvbXBvbmVudEluc3RhbmNlKSlyZXR1cm4gZChlLHQpLHYoaSxlLmVsbSxvKSxyKGMpJiZmdW5jdGlvbihlLHQscixpKXtmb3IodmFyIG8sYT1lO2EuY29tcG9uZW50SW5zdGFuY2U7KWlmKGE9YS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUsbihvPWEuZGF0YSkmJm4obz1vLnRyYW5zaXRpb24pKXtmb3Iobz0wO288cy5hY3RpdmF0ZS5sZW5ndGg7KytvKXMuYWN0aXZhdGVbb10obnIsYSk7dC5wdXNoKGEpO2JyZWFrfXYocixlLmVsbSxpKX0oZSx0LGksbyksITB9fShlLHQsaSxvKSl7dmFyIGY9ZS5kYXRhLHA9ZS5jaGlsZHJlbixtPWUudGFnO24obSk\/KGUuZWxtPWUubnM\/dS5jcmVhdGVFbGVtZW50TlMoZS5ucyxtKTp1LmNyZWF0ZUVsZW1lbnQobSxlKSxnKGUpLGgoZSxwLHQpLG4oZikmJnkoZSx0KSx2KGksZS5lbG0sbykpOnIoZS5pc0NvbW1lbnQpPyhlLmVsbT11LmNyZWF0ZUNvbW1lbnQoZS50ZXh0KSx2KGksZS5lbG0sbykpOihlLmVsbT11LmNyZWF0ZVRleHROb2RlKGUudGV4dCksdihpLGUuZWxtLG8pKX19ZnVuY3Rpb24gZChlLHQpe24oZS5kYXRhLnBlbmRpbmdJbnNlcnQpJiYodC5wdXNoLmFwcGx5KHQsZS5kYXRhLnBlbmRpbmdJbnNlcnQpLGUuZGF0YS5wZW5kaW5nSW5zZXJ0PW51bGwpLGUuZWxtPWUuY29tcG9uZW50SW5zdGFuY2UuJGVsLG0oZSk\/KHkoZSx0KSxnKGUpKToodHIoZSksdC5wdXNoKGUpKX1mdW5jdGlvbiB2KGUsdCxyKXtuKGUpJiYobihyKT91LnBhcmVudE5vZGUocik9PT1lJiZ1Lmluc2VydEJlZm9yZShlLHQscik6dS5hcHBlbmRDaGlsZChlLHQpKX1mdW5jdGlvbiBoKGUsdCxuKXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKWYodFtyXSxuLGUuZWxtLG51bGwsITAsdCxyKTtlbHNlIGkoZS50ZXh0KSYmdS5hcHBlbmRDaGlsZChlLmVsbSx1LmNyZWF0ZVRleHROb2RlKFN0cmluZyhlLnRleHQpKSl9ZnVuY3Rpb24gbShlKXtmb3IoO2UuY29tcG9uZW50SW5zdGFuY2U7KWU9ZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7cmV0dXJuIG4oZS50YWcpfWZ1bmN0aW9uIHkoZSx0KXtmb3IodmFyIHI9MDtyPHMuY3JlYXRlLmxlbmd0aDsrK3Ipcy5jcmVhdGVbcl0obnIsZSk7bihvPWUuZGF0YS5ob29rKSYmKG4oby5jcmVhdGUpJiZvLmNyZWF0ZShucixlKSxuKG8uaW5zZXJ0KSYmdC5wdXNoKGUpKX1mdW5jdGlvbiBnKGUpe3ZhciB0O2lmKG4odD1lLmZuU2NvcGVJZCkpdS5zZXRTdHlsZVNjb3BlKGUuZWxtLHQpO2Vsc2UgZm9yKHZhciByPWU7cjspbih0PXIuY29udGV4dCkmJm4odD10LiRvcHRpb25zLl9zY29wZUlkKSYmdS5zZXRTdHlsZVNjb3BlKGUuZWxtLHQpLHI9ci5wYXJlbnQ7bih0PVd0KSYmdCE9PWUuY29udGV4dCYmdCE9PWUuZm5Db250ZXh0JiZuKHQ9dC4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZShlLmVsbSx0KX1mdW5jdGlvbiBfKGUsdCxuLHIsaSxvKXtmb3IoO3I8PWk7KytyKWYobltyXSxvLGUsdCwhMSxuLHIpfWZ1bmN0aW9uIGIoZSl7dmFyIHQscixpPWUuZGF0YTtpZihuKGkpKWZvcihuKHQ9aS5ob29rKSYmbih0PXQuZGVzdHJveSkmJnQoZSksdD0wO3Q8cy5kZXN0cm95Lmxlbmd0aDsrK3Qpcy5kZXN0cm95W3RdKGUpO2lmKG4odD1lLmNoaWxkcmVuKSlmb3Iocj0wO3I8ZS5jaGlsZHJlbi5sZW5ndGg7KytyKWIoZS5jaGlsZHJlbltyXSl9ZnVuY3Rpb24gJChlLHQscil7Zm9yKDt0PD1yOysrdCl7dmFyIGk9ZVt0XTtuKGkpJiYobihpLnRhZyk\/KHcoaSksYihpKSk6bChpLmVsbSkpfX1mdW5jdGlvbiB3KGUsdCl7aWYobih0KXx8bihlLmRhdGEpKXt2YXIgcixpPXMucmVtb3ZlLmxlbmd0aCsxO2ZvcihuKHQpP3QubGlzdGVuZXJzKz1pOnQ9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKCl7MD09LS1uLmxpc3RlbmVycyYmbChlKX1yZXR1cm4gbi5saXN0ZW5lcnM9dCxufShlLmVsbSxpKSxuKHI9ZS5jb21wb25lbnRJbnN0YW5jZSkmJm4ocj1yLl92bm9kZSkmJm4oci5kYXRhKSYmdyhyLHQpLHI9MDtyPHMucmVtb3ZlLmxlbmd0aDsrK3Ipcy5yZW1vdmVbcl0oZSx0KTtuKHI9ZS5kYXRhLmhvb2spJiZuKHI9ci5yZW1vdmUpP3IoZSx0KTp0KCl9ZWxzZSBsKGUuZWxtKX1mdW5jdGlvbiBDKGUsdCxyLGkpe2Zvcih2YXIgbz1yO288aTtvKyspe3ZhciBhPXRbb107aWYobihhKSYmaXIoZSxhKSlyZXR1cm4gb319ZnVuY3Rpb24geChlLGksbyxhLGMsbCl7aWYoZSE9PWkpe24oaS5lbG0pJiZuKGEpJiYoaT1hW2NdPW1lKGkpKTt2YXIgcD1pLmVsbT1lLmVsbTtpZihyKGUuaXNBc3luY1BsYWNlaG9sZGVyKSluKGkuYXN5bmNGYWN0b3J5LnJlc29sdmVkKT9PKGUuZWxtLGksbyk6aS5pc0FzeW5jUGxhY2Vob2xkZXI9ITA7ZWxzZSBpZihyKGkuaXNTdGF0aWMpJiZyKGUuaXNTdGF0aWMpJiZpLmtleT09PWUua2V5JiYocihpLmlzQ2xvbmVkKXx8cihpLmlzT25jZSkpKWkuY29tcG9uZW50SW5zdGFuY2U9ZS5jb21wb25lbnRJbnN0YW5jZTtlbHNle3ZhciBkLHY9aS5kYXRhO24odikmJm4oZD12Lmhvb2spJiZuKGQ9ZC5wcmVwYXRjaCkmJmQoZSxpKTt2YXIgaD1lLmNoaWxkcmVuLHk9aS5jaGlsZHJlbjtpZihuKHYpJiZtKGkpKXtmb3IoZD0wO2Q8cy51cGRhdGUubGVuZ3RoOysrZClzLnVwZGF0ZVtkXShlLGkpO24oZD12Lmhvb2spJiZuKGQ9ZC51cGRhdGUpJiZkKGUsaSl9dChpLnRleHQpP24oaCkmJm4oeSk\/aCE9PXkmJmZ1bmN0aW9uKGUscixpLG8sYSl7Zm9yKHZhciBzLGMsbCxwPTAsZD0wLHY9ci5sZW5ndGgtMSxoPXJbMF0sbT1yW3ZdLHk9aS5sZW5ndGgtMSxnPWlbMF0sYj1pW3ldLHc9IWE7cDw9diYmZDw9eTspdChoKT9oPXJbKytwXTp0KG0pP209clstLXZdOmlyKGgsZyk\/KHgoaCxnLG8saSxkKSxoPXJbKytwXSxnPWlbKytkXSk6aXIobSxiKT8oeChtLGIsbyxpLHkpLG09clstLXZdLGI9aVstLXldKTppcihoLGIpPyh4KGgsYixvLGkseSksdyYmdS5pbnNlcnRCZWZvcmUoZSxoLmVsbSx1Lm5leHRTaWJsaW5nKG0uZWxtKSksaD1yWysrcF0sYj1pWy0teV0pOmlyKG0sZyk\/KHgobSxnLG8saSxkKSx3JiZ1Lmluc2VydEJlZm9yZShlLG0uZWxtLGguZWxtKSxtPXJbLS12XSxnPWlbKytkXSk6KHQocykmJihzPW9yKHIscCx2KSksdChjPW4oZy5rZXkpP3NbZy5rZXldOkMoZyxyLHAsdikpP2YoZyxvLGUsaC5lbG0sITEsaSxkKTppcihsPXJbY10sZyk\/KHgobCxnLG8saSxkKSxyW2NdPXZvaWQgMCx3JiZ1Lmluc2VydEJlZm9yZShlLGwuZWxtLGguZWxtKSk6ZihnLG8sZSxoLmVsbSwhMSxpLGQpLGc9aVsrK2RdKTtwPnY\/XyhlLHQoaVt5KzFdKT9udWxsOmlbeSsxXS5lbG0saSxkLHksbyk6ZD55JiYkKHIscCx2KX0ocCxoLHksbyxsKTpuKHkpPyhuKGUudGV4dCkmJnUuc2V0VGV4dENvbnRlbnQocCwiIiksXyhwLG51bGwseSwwLHkubGVuZ3RoLTEsbykpOm4oaCk\/JChoLDAsaC5sZW5ndGgtMSk6bihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsIiIpOmUudGV4dCE9PWkudGV4dCYmdS5zZXRUZXh0Q29udGVudChwLGkudGV4dCksbih2KSYmbihkPXYuaG9vaykmJm4oZD1kLnBvc3RwYXRjaCkmJmQoZSxpKX19fWZ1bmN0aW9uIGsoZSx0LGkpe2lmKHIoaSkmJm4oZS5wYXJlbnQpKWUucGFyZW50LmRhdGEucGVuZGluZ0luc2VydD10O2Vsc2UgZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDsrK28pdFtvXS5kYXRhLmhvb2suaW5zZXJ0KHRbb10pfXZhciBBPXAoImF0dHJzLGNsYXNzLHN0YXRpY0NsYXNzLHN0YXRpY1N0eWxlLGtleSIpO2Z1bmN0aW9uIE8oZSx0LGksbyl7dmFyIGEscz10LnRhZyxjPXQuZGF0YSx1PXQuY2hpbGRyZW47aWYobz1vfHxjJiZjLnByZSx0LmVsbT1lLHIodC5pc0NvbW1lbnQpJiZuKHQuYXN5bmNGYWN0b3J5KSlyZXR1cm4gdC5pc0FzeW5jUGxhY2Vob2xkZXI9ITAsITA7aWYobihjKSYmKG4oYT1jLmhvb2spJiZuKGE9YS5pbml0KSYmYSh0LCEwKSxuKGE9dC5jb21wb25lbnRJbnN0YW5jZSkpKXJldHVybiBkKHQsaSksITA7aWYobihzKSl7aWYobih1KSlpZihlLmhhc0NoaWxkTm9kZXMoKSlpZihuKGE9YykmJm4oYT1hLmRvbVByb3BzKSYmbihhPWEuaW5uZXJIVE1MKSl7aWYoYSE9PWUuaW5uZXJIVE1MKXJldHVybiExfWVsc2V7Zm9yKHZhciBsPSEwLGY9ZS5maXJzdENoaWxkLHA9MDtwPHUubGVuZ3RoO3ArKyl7aWYoIWZ8fCFPKGYsdVtwXSxpLG8pKXtsPSExO2JyZWFrfWY9Zi5uZXh0U2libGluZ31pZighbHx8ZilyZXR1cm4hMX1lbHNlIGgodCx1LGkpO2lmKG4oYykpe3ZhciB2PSExO2Zvcih2YXIgbSBpbiBjKWlmKCFBKG0pKXt2PSEwLHkodCxpKTticmVha30hdiYmYy5jbGFzcyYmZXQoYy5jbGFzcyl9fWVsc2UgZS5kYXRhIT09dC50ZXh0JiYoZS5kYXRhPXQudGV4dCk7cmV0dXJuITB9cmV0dXJuIGZ1bmN0aW9uKGUsaSxvLGEpe2lmKCF0KGkpKXt2YXIgYyxsPSExLHA9W107aWYodChlKSlsPSEwLGYoaSxwKTtlbHNle3ZhciBkPW4oZS5ub2RlVHlwZSk7aWYoIWQmJmlyKGUsaSkpeChlLGkscCxudWxsLG51bGwsYSk7ZWxzZXtpZihkKXtpZigxPT09ZS5ub2RlVHlwZSYmZS5oYXNBdHRyaWJ1dGUoTCkmJihlLnJlbW92ZUF0dHJpYnV0ZShMKSxvPSEwKSxyKG8pJiZPKGUsaSxwKSlyZXR1cm4gayhpLHAsITApLGU7Yz1lLGU9bmV3IHBlKHUudGFnTmFtZShjKS50b0xvd2VyQ2FzZSgpLHt9LFtdLHZvaWQgMCxjKX12YXIgdj1lLmVsbSxoPXUucGFyZW50Tm9kZSh2KTtpZihmKGkscCx2Ll9sZWF2ZUNiP251bGw6aCx1Lm5leHRTaWJsaW5nKHYpKSxuKGkucGFyZW50KSlmb3IodmFyIHk9aS5wYXJlbnQsZz1tKGkpO3k7KXtmb3IodmFyIF89MDtfPHMuZGVzdHJveS5sZW5ndGg7KytfKXMuZGVzdHJveVtfXSh5KTtpZih5LmVsbT1pLmVsbSxnKXtmb3IodmFyIHc9MDt3PHMuY3JlYXRlLmxlbmd0aDsrK3cpcy5jcmVhdGVbd10obnIseSk7dmFyIEM9eS5kYXRhLmhvb2suaW5zZXJ0O2lmKEMubWVyZ2VkKWZvcih2YXIgQT0xO0E8Qy5mbnMubGVuZ3RoO0ErKylDLmZuc1tBXSgpfWVsc2UgdHIoeSk7eT15LnBhcmVudH1uKGgpPyQoW2VdLDAsMCk6bihlLnRhZykmJmIoZSl9fXJldHVybiBrKGkscCxsKSxpLmVsbX1uKGUpJiZiKGUpfX0oe25vZGVPcHM6UW4sbW9kdWxlczpbbXIseHIsbmksb2ksbWksej97Y3JlYXRlOlVpLGFjdGl2YXRlOlVpLHJlbW92ZTpmdW5jdGlvbihlLHQpeyEwIT09ZS5kYXRhLnNob3c\/UmkoZSx0KTp0KCl9fTp7fV0uY29uY2F0KHByKX0pO1cmJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UmJmUudm1vZGVsJiZYaShlLCJpbnB1dCIpfSk7dmFyIFZpPXtpbnNlcnRlZDpmdW5jdGlvbihlLHQsbixyKXsic2VsZWN0Ij09PW4udGFnPyhyLmVsbSYmIXIuZWxtLl92T3B0aW9ucz9pdChuLCJwb3N0cGF0Y2giLGZ1bmN0aW9uKCl7VmkuY29tcG9uZW50VXBkYXRlZChlLHQsbil9KTpLaShlLHQsbi5jb250ZXh0KSxlLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsV2kpKTooInRleHRhcmVhIj09PW4udGFnfHxYbihlLnR5cGUpKSYmKGUuX3ZNb2RpZmllcnM9dC5tb2RpZmllcnMsdC5tb2RpZmllcnMubGF6eXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsWmkpLGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLEdpKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsR2kpLFcmJihlLnZtb2RlbD0hMCkpKX0sY29tcG9uZW50VXBkYXRlZDpmdW5jdGlvbihlLHQsbil7aWYoInNlbGVjdCI9PT1uLnRhZyl7S2koZSx0LG4uY29udGV4dCk7dmFyIHI9ZS5fdk9wdGlvbnMsaT1lLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsV2kpO2lmKGkuc29tZShmdW5jdGlvbihlLHQpe3JldHVybiFOKGUsclt0XSl9KSkoZS5tdWx0aXBsZT90LnZhbHVlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHFpKGUsaSl9KTp0LnZhbHVlIT09dC5vbGRWYWx1ZSYmcWkodC52YWx1ZSxpKSkmJlhpKGUsImNoYW5nZSIpfX19O2Z1bmN0aW9uIEtpKGUsdCxuKXtKaShlLHQsbiksKHF8fFopJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7SmkoZSx0LG4pfSwwKX1mdW5jdGlvbiBKaShlLHQsbil7dmFyIHI9dC52YWx1ZSxpPWUubXVsdGlwbGU7aWYoIWl8fEFycmF5LmlzQXJyYXkocikpe2Zvcih2YXIgbyxhLHM9MCxjPWUub3B0aW9ucy5sZW5ndGg7czxjO3MrKylpZihhPWUub3B0aW9uc1tzXSxpKW89aihyLFdpKGEpKT4tMSxhLnNlbGVjdGVkIT09byYmKGEuc2VsZWN0ZWQ9byk7ZWxzZSBpZihOKFdpKGEpLHIpKXJldHVybiB2b2lkKGUuc2VsZWN0ZWRJbmRleCE9PXMmJihlLnNlbGVjdGVkSW5kZXg9cykpO2l8fChlLnNlbGVjdGVkSW5kZXg9LTEpfX1mdW5jdGlvbiBxaShlLHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiFOKHQsZSl9KX1mdW5jdGlvbiBXaShlKXtyZXR1cm4iX3ZhbHVlImluIGU\/ZS5fdmFsdWU6ZS52YWx1ZX1mdW5jdGlvbiBaaShlKXtlLnRhcmdldC5jb21wb3Npbmc9ITB9ZnVuY3Rpb24gR2koZSl7ZS50YXJnZXQuY29tcG9zaW5nJiYoZS50YXJnZXQuY29tcG9zaW5nPSExLFhpKGUudGFyZ2V0LCJpbnB1dCIpKX1mdW5jdGlvbiBYaShlLHQpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIik7bi5pbml0RXZlbnQodCwhMCwhMCksZS5kaXNwYXRjaEV2ZW50KG4pfWZ1bmN0aW9uIFlpKGUpe3JldHVybiFlLmNvbXBvbmVudEluc3RhbmNlfHxlLmRhdGEmJmUuZGF0YS50cmFuc2l0aW9uP2U6WWkoZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpfXZhciBRaT17bW9kZWw6Vmksc2hvdzp7YmluZDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPShuPVlpKG4pKS5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbixvPWUuX192T3JpZ2luYWxEaXNwbGF5PSJub25lIj09PWUuc3R5bGUuZGlzcGxheT8iIjplLnN0eWxlLmRpc3BsYXk7ciYmaT8obi5kYXRhLnNob3c9ITAsUGkobixmdW5jdGlvbigpe2Uuc3R5bGUuZGlzcGxheT1vfSkpOmUuc3R5bGUuZGlzcGxheT1yP286Im5vbmUifSx1cGRhdGU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQudmFsdWU7IXIhPSF0Lm9sZFZhbHVlJiYoKG49WWkobikpLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uPyhuLmRhdGEuc2hvdz0hMCxyP1BpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9ZS5fX3ZPcmlnaW5hbERpc3BsYXl9KTpSaShuLGZ1bmN0aW9uKCl7ZS5zdHlsZS5kaXNwbGF5PSJub25lIn0pKTplLnN0eWxlLmRpc3BsYXk9cj9lLl9fdk9yaWdpbmFsRGlzcGxheToibm9uZSIpfSx1bmJpbmQ6ZnVuY3Rpb24oZSx0LG4scixpKXtpfHwoZS5zdHlsZS5kaXNwbGF5PWUuX192T3JpZ2luYWxEaXNwbGF5KX19fSxlbz17bmFtZTpTdHJpbmcsYXBwZWFyOkJvb2xlYW4sY3NzOkJvb2xlYW4sbW9kZTpTdHJpbmcsdHlwZTpTdHJpbmcsZW50ZXJDbGFzczpTdHJpbmcsbGVhdmVDbGFzczpTdHJpbmcsZW50ZXJUb0NsYXNzOlN0cmluZyxsZWF2ZVRvQ2xhc3M6U3RyaW5nLGVudGVyQWN0aXZlQ2xhc3M6U3RyaW5nLGxlYXZlQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhckNsYXNzOlN0cmluZyxhcHBlYXJBY3RpdmVDbGFzczpTdHJpbmcsYXBwZWFyVG9DbGFzczpTdHJpbmcsZHVyYXRpb246W051bWJlcixTdHJpbmcsT2JqZWN0XX07ZnVuY3Rpb24gdG8oZSl7dmFyIHQ9ZSYmZS5jb21wb25lbnRPcHRpb25zO3JldHVybiB0JiZ0LkN0b3Iub3B0aW9ucy5hYnN0cmFjdD90byh6dCh0LmNoaWxkcmVuKSk6ZX1mdW5jdGlvbiBubyhlKXt2YXIgdD17fSxuPWUuJG9wdGlvbnM7Zm9yKHZhciByIGluIG4ucHJvcHNEYXRhKXRbcl09ZVtyXTt2YXIgaT1uLl9wYXJlbnRMaXN0ZW5lcnM7Zm9yKHZhciBvIGluIGkpdFtiKG8pXT1pW29dO3JldHVybiB0fWZ1bmN0aW9uIHJvKGUsdCl7aWYoL1xkLWtlZXAtYWxpdmUkLy50ZXN0KHQudGFnKSlyZXR1cm4gZSgia2VlcC1hbGl2ZSIse3Byb3BzOnQuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGF9KX12YXIgaW89ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFnfHxVdChlKX0sb289ZnVuY3Rpb24oZSl7cmV0dXJuInNob3ciPT09ZS5uYW1lfSxhbz17bmFtZToidHJhbnNpdGlvbiIscHJvcHM6ZW8sYWJzdHJhY3Q6ITAscmVuZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLiRzbG90cy5kZWZhdWx0O2lmKG4mJihuPW4uZmlsdGVyKGlvKSkubGVuZ3RoKXt2YXIgcj10aGlzLm1vZGUsbz1uWzBdO2lmKGZ1bmN0aW9uKGUpe2Zvcig7ZT1lLnBhcmVudDspaWYoZS5kYXRhLnRyYW5zaXRpb24pcmV0dXJuITB9KHRoaXMuJHZub2RlKSlyZXR1cm4gbzt2YXIgYT10byhvKTtpZighYSlyZXR1cm4gbztpZih0aGlzLl9sZWF2aW5nKXJldHVybiBybyhlLG8pO3ZhciBzPSJfX3RyYW5zaXRpb24tIit0aGlzLl91aWQrIi0iO2Eua2V5PW51bGw9PWEua2V5P2EuaXNDb21tZW50P3MrImNvbW1lbnQiOnMrYS50YWc6aShhLmtleSk\/MD09PVN0cmluZyhhLmtleSkuaW5kZXhPZihzKT9hLmtleTpzK2Eua2V5OmEua2V5O3ZhciBjPShhLmRhdGF8fChhLmRhdGE9e30pKS50cmFuc2l0aW9uPW5vKHRoaXMpLHU9dGhpcy5fdm5vZGUsbD10byh1KTtpZihhLmRhdGEuZGlyZWN0aXZlcyYmYS5kYXRhLmRpcmVjdGl2ZXMuc29tZShvbykmJihhLmRhdGEuc2hvdz0hMCksbCYmbC5kYXRhJiYhZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5rZXk9PT1lLmtleSYmdC50YWc9PT1lLnRhZ30oYSxsKSYmIVV0KGwpJiYoIWwuY29tcG9uZW50SW5zdGFuY2V8fCFsLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZS5pc0NvbW1lbnQpKXt2YXIgZj1sLmRhdGEudHJhbnNpdGlvbj1BKHt9LGMpO2lmKCJvdXQtaW4iPT09cilyZXR1cm4gdGhpcy5fbGVhdmluZz0hMCxpdChmLCJhZnRlckxlYXZlIixmdW5jdGlvbigpe3QuX2xlYXZpbmc9ITEsdC4kZm9yY2VVcGRhdGUoKX0pLHJvKGUsbyk7aWYoImluLW91dCI9PT1yKXtpZihVdChhKSlyZXR1cm4gdTt2YXIgcCxkPWZ1bmN0aW9uKCl7cCgpfTtpdChjLCJhZnRlckVudGVyIixkKSxpdChjLCJlbnRlckNhbmNlbGxlZCIsZCksaXQoZiwiZGVsYXlMZWF2ZSIsZnVuY3Rpb24oZSl7cD1lfSl9fXJldHVybiBvfX19LHNvPUEoe3RhZzpTdHJpbmcsbW92ZUNsYXNzOlN0cmluZ30sZW8pO2Z1bmN0aW9uIGNvKGUpe2UuZWxtLl9tb3ZlQ2ImJmUuZWxtLl9tb3ZlQ2IoKSxlLmVsbS5fZW50ZXJDYiYmZS5lbG0uX2VudGVyQ2IoKX1mdW5jdGlvbiB1byhlKXtlLmRhdGEubmV3UG9zPWUuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWZ1bmN0aW9uIGxvKGUpe3ZhciB0PWUuZGF0YS5wb3Msbj1lLmRhdGEubmV3UG9zLHI9dC5sZWZ0LW4ubGVmdCxpPXQudG9wLW4udG9wO2lmKHJ8fGkpe2UuZGF0YS5tb3ZlZD0hMDt2YXIgbz1lLmVsbS5zdHlsZTtvLnRyYW5zZm9ybT1vLldlYmtpdFRyYW5zZm9ybT0idHJhbnNsYXRlKCIrcisicHgsIitpKyJweCkiLG8udHJhbnNpdGlvbkR1cmF0aW9uPSIwcyJ9fWRlbGV0ZSBzby5tb2RlO3ZhciBmbz17VHJhbnNpdGlvbjphbyxUcmFuc2l0aW9uR3JvdXA6e3Byb3BzOnNvLGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuX3VwZGF0ZTt0aGlzLl91cGRhdGU9ZnVuY3Rpb24obixyKXt2YXIgaT1adChlKTtlLl9fcGF0Y2hfXyhlLl92bm9kZSxlLmtlcHQsITEsITApLGUuX3Zub2RlPWUua2VwdCxpKCksdC5jYWxsKGUsbixyKX19LHJlbmRlcjpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy50YWd8fHRoaXMuJHZub2RlLmRhdGEudGFnfHwic3BhbiIsbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGhpcy5wcmV2Q2hpbGRyZW49dGhpcy5jaGlsZHJlbixpPXRoaXMuJHNsb3RzLmRlZmF1bHR8fFtdLG89dGhpcy5jaGlsZHJlbj1bXSxhPW5vKHRoaXMpLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGM9aVtzXTtjLnRhZyYmbnVsbCE9Yy5rZXkmJjAhPT1TdHJpbmcoYy5rZXkpLmluZGV4T2YoIl9fdmxpc3QiKSYmKG8ucHVzaChjKSxuW2Mua2V5XT1jLChjLmRhdGF8fChjLmRhdGE9e30pKS50cmFuc2l0aW9uPWEpfWlmKHIpe2Zvcih2YXIgdT1bXSxsPVtdLGY9MDtmPHIubGVuZ3RoO2YrKyl7dmFyIHA9cltmXTtwLmRhdGEudHJhbnNpdGlvbj1hLHAuZGF0YS5wb3M9cC5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbltwLmtleV0\/dS5wdXNoKHApOmwucHVzaChwKX10aGlzLmtlcHQ9ZSh0LG51bGwsdSksdGhpcy5yZW1vdmVkPWx9cmV0dXJuIGUodCxudWxsLG8pfSx1cGRhdGVkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcmV2Q2hpbGRyZW4sdD10aGlzLm1vdmVDbGFzc3x8KHRoaXMubmFtZXx8InYiKSsiLW1vdmUiO2UubGVuZ3RoJiZ0aGlzLmhhc01vdmUoZVswXS5lbG0sdCkmJihlLmZvckVhY2goY28pLGUuZm9yRWFjaCh1byksZS5mb3JFYWNoKGxvKSx0aGlzLl9yZWZsb3c9ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUuZGF0YS5tb3ZlZCl7dmFyIG49ZS5lbG0scj1uLnN0eWxlO05pKG4sdCksci50cmFuc2Zvcm09ci5XZWJraXRUcmFuc2Zvcm09ci50cmFuc2l0aW9uRHVyYXRpb249IiIsbi5hZGRFdmVudExpc3RlbmVyKEFpLG4uX21vdmVDYj1mdW5jdGlvbiBlKHIpe3ImJnIudGFyZ2V0IT09bnx8ciYmIS90cmFuc2Zvcm0kLy50ZXN0KHIucHJvcGVydHlOYW1lKXx8KG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihBaSxlKSxuLl9tb3ZlQ2I9bnVsbCxqaShuLHQpKX0pfX0pKX0sbWV0aG9kczp7aGFzTW92ZTpmdW5jdGlvbihlLHQpe2lmKCF3aSlyZXR1cm4hMTtpZih0aGlzLl9oYXNNb3ZlKXJldHVybiB0aGlzLl9oYXNNb3ZlO3ZhciBuPWUuY2xvbmVOb2RlKCk7ZS5fdHJhbnNpdGlvbkNsYXNzZXMmJmUuX3RyYW5zaXRpb25DbGFzc2VzLmZvckVhY2goZnVuY3Rpb24oZSl7X2kobixlKX0pLGdpKG4sdCksbi5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLiRlbC5hcHBlbmRDaGlsZChuKTt2YXIgcj1NaShuKTtyZXR1cm4gdGhpcy4kZWwucmVtb3ZlQ2hpbGQobiksdGhpcy5faGFzTW92ZT1yLmhhc1RyYW5zZm9ybX19fX07d24uY29uZmlnLm11c3RVc2VQcm9wPWpuLHduLmNvbmZpZy5pc1Jlc2VydmVkVGFnPVduLHduLmNvbmZpZy5pc1Jlc2VydmVkQXR0cj1Fbix3bi5jb25maWcuZ2V0VGFnTmFtZXNwYWNlPVpuLHduLmNvbmZpZy5pc1Vua25vd25FbGVtZW50PWZ1bmN0aW9uKGUpe2lmKCF6KXJldHVybiEwO2lmKFduKGUpKXJldHVybiExO2lmKGU9ZS50b0xvd2VyQ2FzZSgpLG51bGwhPUduW2VdKXJldHVybiBHbltlXTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiBlLmluZGV4T2YoIi0iKT4tMT9HbltlXT10LmNvbnN0cnVjdG9yPT09d2luZG93LkhUTUxVbmtub3duRWxlbWVudHx8dC5jb25zdHJ1Y3Rvcj09PXdpbmRvdy5IVE1MRWxlbWVudDpHbltlXT0vSFRNTFVua25vd25FbGVtZW50Ly50ZXN0KHQudG9TdHJpbmcoKSl9LEEod24ub3B0aW9ucy5kaXJlY3RpdmVzLFFpKSxBKHduLm9wdGlvbnMuY29tcG9uZW50cyxmbyksd24ucHJvdG90eXBlLl9fcGF0Y2hfXz16P3ppOlMsd24ucHJvdG90eXBlLiRtb3VudD1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIGUuJGVsPXQsZS4kb3B0aW9ucy5yZW5kZXJ8fChlLiRvcHRpb25zLnJlbmRlcj12ZSksWXQoZSwiYmVmb3JlTW91bnQiKSxyPWZ1bmN0aW9uKCl7ZS5fdXBkYXRlKGUuX3JlbmRlcigpLG4pfSxuZXcgZm4oZSxyLFMse2JlZm9yZTpmdW5jdGlvbigpe2UuX2lzTW91bnRlZCYmIWUuX2lzRGVzdHJveWVkJiZZdChlLCJiZWZvcmVVcGRhdGUiKX19LCEwKSxuPSExLG51bGw9PWUuJHZub2RlJiYoZS5faXNNb3VudGVkPSEwLFl0KGUsIm1vdW50ZWQiKSksZX0odGhpcyxlPWUmJno\/WW4oZSk6dm9pZCAwLHQpfSx6JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ri5kZXZ0b29scyYmbmUmJm5lLmVtaXQoImluaXQiLHduKX0sMCk7dmFyIHBvPS9ce1x7KCg\/Oi58XHI\/XG4pKz8pXH1cfS9nLHZvPS9bLS4qKz9eJHt9KCl8W1xdXC9cXF0vZyxobz1nKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0ucmVwbGFjZSh2bywiXFwkJiIpLG49ZVsxXS5yZXBsYWNlKHZvLCJcXCQmIik7cmV0dXJuIG5ldyBSZWdFeHAodCsiKCg\/Oi58XFxuKSs\/KSIrbiwiZyIpfSk7dmFyIG1vPXtzdGF0aWNLZXlzOlsic3RhdGljQ2xhc3MiXSx0cmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7dC53YXJuO3ZhciBuPUZyKGUsImNsYXNzIik7biYmKGUuc3RhdGljQ2xhc3M9SlNPTi5zdHJpbmdpZnkobikpO3ZhciByPUlyKGUsImNsYXNzIiwhMSk7ciYmKGUuY2xhc3NCaW5kaW5nPXIpfSxnZW5EYXRhOmZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiBlLnN0YXRpY0NsYXNzJiYodCs9InN0YXRpY0NsYXNzOiIrZS5zdGF0aWNDbGFzcysiLCIpLGUuY2xhc3NCaW5kaW5nJiYodCs9ImNsYXNzOiIrZS5jbGFzc0JpbmRpbmcrIiwiKSx0fX07dmFyIHlvLGdvPXtzdGF0aWNLZXlzOlsic3RhdGljU3R5bGUiXSx0cmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7dC53YXJuO3ZhciBuPUZyKGUsInN0eWxlIik7biYmKGUuc3RhdGljU3R5bGU9SlNPTi5zdHJpbmdpZnkoYWkobikpKTt2YXIgcj1JcihlLCJzdHlsZSIsITEpO3ImJihlLnN0eWxlQmluZGluZz1yKX0sZ2VuRGF0YTpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZS5zdGF0aWNTdHlsZSYmKHQrPSJzdGF0aWNTdHlsZToiK2Uuc3RhdGljU3R5bGUrIiwiKSxlLnN0eWxlQmluZGluZyYmKHQrPSJzdHlsZTooIitlLnN0eWxlQmluZGluZysiKSwiKSx0fX0sX289ZnVuY3Rpb24oZSl7cmV0dXJuKHlvPXlvfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPWUseW8udGV4dENvbnRlbnR9LGJvPXAoImFyZWEsYmFzZSxicixjb2wsZW1iZWQsZnJhbWUsaHIsaW1nLGlucHV0LGlzaW5kZXgsa2V5Z2VuLGxpbmssbWV0YSxwYXJhbSxzb3VyY2UsdHJhY2ssd2JyIiksJG89cCgiY29sZ3JvdXAsZGQsZHQsbGksb3B0aW9ucyxwLHRkLHRmb290LHRoLHRoZWFkLHRyLHNvdXJjZSIpLHdvPXAoImFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxiYXNlLGJsb2NrcXVvdGUsYm9keSxjYXB0aW9uLGNvbCxjb2xncm91cCxkZCxkZXRhaWxzLGRpYWxvZyxkaXYsZGwsZHQsZmllbGRzZXQsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGZvcm0saDEsaDIsaDMsaDQsaDUsaDYsaGVhZCxoZWFkZXIsaGdyb3VwLGhyLGh0bWwsbGVnZW5kLGxpLG1lbnVpdGVtLG1ldGEsb3B0Z3JvdXAsb3B0aW9uLHBhcmFtLHJwLHJ0LHNvdXJjZSxzdHlsZSxzdW1tYXJ5LHRib2R5LHRkLHRmb290LHRoLHRoZWFkLHRpdGxlLHRyLHRyYWNrIiksQ289L15ccyooW15ccyInPD5cLz1dKykoPzpccyooPSlccyooPzoiKFteIl0qKSIrfCcoW14nXSopJyt8KFteXHMiJz08PmBdKykpKT8vLHhvPS9eXHMqKCg\/OnYtW1x3LV0rOnxAfDp8IylcW1tePV0rXF1bXlxzIic8PlwvPV0qKSg\/OlxzKig9KVxzKig\/OiIoW14iXSopIit8JyhbXiddKiknK3woW15ccyInPTw+YF0rKSkpPy8sa289IlthLXpBLVpfXVtcXC1cXC4wLTlfYS16QS1aIitQLnNvdXJjZSsiXSoiLEFvPSIoKD86IitrbysiXFw6KT8iK2tvKyIpIixPbz1uZXcgUmVnRXhwKCJePCIrQW8pLFNvPS9eXHMqKFwvPyk+LyxUbz1uZXcgUmVnRXhwKCJePFxcLyIrQW8rIltePl0qPiIpLEVvPS9ePCFET0NUWVBFIFtePl0rPi9pLE5vPS9ePCFcLS0vLGpvPS9ePCFcWy8sRG89cCgic2NyaXB0LHN0eWxlLHRleHRhcmVhIiwhMCksTG89e30sTW89eyImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJnF1b3Q7IjonIicsIiZhbXA7IjoiJiIsIiYjMTA7IjoiXG4iLCImIzk7IjoiXHQiLCImIzM5OyI6IicifSxJbz0vJig\/Omx0fGd0fHF1b3R8YW1wfCMzOSk7L2csRm89LyYoPzpsdHxndHxxdW90fGFtcHwjMzl8IzEwfCM5KTsvZyxQbz1wKCJwcmUsdGV4dGFyZWEiLCEwKSxSbz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZQbyhlKSYmIlxuIj09PXRbMF19O2Z1bmN0aW9uIEhvKGUsdCl7dmFyIG49dD9GbzpJbztyZXR1cm4gZS5yZXBsYWNlKG4sZnVuY3Rpb24oZSl7cmV0dXJuIE1vW2VdfSl9dmFyIEJvLFVvLHpvLFZvLEtvLEpvLHFvLFdvLFpvPS9eQHxedi1vbjovLEdvPS9edi18XkB8Xjp8XiMvLFhvPS8oW1xzXFNdKj8pXHMrKD86aW58b2YpXHMrKFtcc1xTXSopLyxZbz0vLChbXixcfVxdXSopKD86LChbXixcfVxdXSopKT8kLyxRbz0vXlwofFwpJC9nLGVhPS9eXFsuKlxdJC8sdGE9LzooLiopJC8sbmE9L146fF5cLnxedi1iaW5kOi8scmE9L1wuW14uXF1dKyg\/PVteXF1dKiQpL2csaWE9L152LXNsb3QoOnwkKXxeIy8sb2E9L1tcclxuXS8sYWE9L1xzKy9nLHNhPWcoX28pLGNhPSJfZW1wdHlfIjtmdW5jdGlvbiB1YShlLHQsbil7cmV0dXJue3R5cGU6MSx0YWc6ZSxhdHRyc0xpc3Q6dCxhdHRyc01hcDptYSh0KSxyYXdBdHRyc01hcDp7fSxwYXJlbnQ6bixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gbGEoZSx0KXtCbz10Lndhcm58fFNyLEpvPXQuaXNQcmVUYWd8fFQscW89dC5tdXN0VXNlUHJvcHx8VCxXbz10LmdldFRhZ05hbWVzcGFjZXx8VDt0LmlzUmVzZXJ2ZWRUYWc7em89VHIodC5tb2R1bGVzLCJ0cmFuc2Zvcm1Ob2RlIiksVm89VHIodC5tb2R1bGVzLCJwcmVUcmFuc2Zvcm1Ob2RlIiksS289VHIodC5tb2R1bGVzLCJwb3N0VHJhbnNmb3JtTm9kZSIpLFVvPXQuZGVsaW1pdGVyczt2YXIgbixyLGk9W10sbz0hMSE9PXQucHJlc2VydmVXaGl0ZXNwYWNlLGE9dC53aGl0ZXNwYWNlLHM9ITEsYz0hMTtmdW5jdGlvbiB1KGUpe2lmKGwoZSksc3x8ZS5wcm9jZXNzZWR8fChlPWZhKGUsdCkpLGkubGVuZ3RofHxlPT09bnx8bi5pZiYmKGUuZWxzZWlmfHxlLmVsc2UpJiZkYShuLHtleHA6ZS5lbHNlaWYsYmxvY2s6ZX0pLHImJiFlLmZvcmJpZGRlbilpZihlLmVsc2VpZnx8ZS5lbHNlKWE9ZSwodT1mdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aDtmb3IoO3QtLTspe2lmKDE9PT1lW3RdLnR5cGUpcmV0dXJuIGVbdF07ZS5wb3AoKX19KHIuY2hpbGRyZW4pKSYmdS5pZiYmZGEodSx7ZXhwOmEuZWxzZWlmLGJsb2NrOmF9KTtlbHNle2lmKGUuc2xvdFNjb3BlKXt2YXIgbz1lLnNsb3RUYXJnZXR8fCciZGVmYXVsdCInOyhyLnNjb3BlZFNsb3RzfHwoci5zY29wZWRTbG90cz17fSkpW29dPWV9ci5jaGlsZHJlbi5wdXNoKGUpLGUucGFyZW50PXJ9dmFyIGEsdTtlLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLnNsb3RTY29wZX0pLGwoZSksZS5wcmUmJihzPSExKSxKbyhlLnRhZykmJihjPSExKTtmb3IodmFyIGY9MDtmPEtvLmxlbmd0aDtmKyspS29bZl0oZSx0KX1mdW5jdGlvbiBsKGUpe2lmKCFjKWZvcih2YXIgdDsodD1lLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKSYmMz09PXQudHlwZSYmIiAiPT09dC50ZXh0OyllLmNoaWxkcmVuLnBvcCgpfXJldHVybiBmdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyLGk9W10sbz10LmV4cGVjdEhUTUwsYT10LmlzVW5hcnlUYWd8fFQscz10LmNhbkJlTGVmdE9wZW5UYWd8fFQsYz0wO2U7KXtpZihuPWUsciYmRG8ocikpe3ZhciB1PTAsbD1yLnRvTG93ZXJDYXNlKCksZj1Mb1tsXXx8KExvW2xdPW5ldyBSZWdFeHAoIihbXFxzXFxTXSo\/KSg8LyIrbCsiW14+XSo+KSIsImkiKSkscD1lLnJlcGxhY2UoZixmdW5jdGlvbihlLG4scil7cmV0dXJuIHU9ci5sZW5ndGgsRG8obCl8fCJub3NjcmlwdCI9PT1sfHwobj1uLnJlcGxhY2UoLzwhXC0tKFtcc1xTXSo\/KS0tPi9nLCIkMSIpLnJlcGxhY2UoLzwhXFtDREFUQVxbKFtcc1xTXSo\/KV1dPi9nLCIkMSIpKSxSbyhsLG4pJiYobj1uLnNsaWNlKDEpKSx0LmNoYXJzJiZ0LmNoYXJzKG4pLCIifSk7Yys9ZS5sZW5ndGgtcC5sZW5ndGgsZT1wLEEobCxjLXUsYyl9ZWxzZXt2YXIgZD1lLmluZGV4T2YoIjwiKTtpZigwPT09ZCl7aWYoTm8udGVzdChlKSl7dmFyIHY9ZS5pbmRleE9mKCItLVx4M2UiKTtpZih2Pj0wKXt0LnNob3VsZEtlZXBDb21tZW50JiZ0LmNvbW1lbnQoZS5zdWJzdHJpbmcoNCx2KSxjLGMrdiszKSxDKHYrMyk7Y29udGludWV9fWlmKGpvLnRlc3QoZSkpe3ZhciBoPWUuaW5kZXhPZigiXT4iKTtpZihoPj0wKXtDKGgrMik7Y29udGludWV9fXZhciBtPWUubWF0Y2goRW8pO2lmKG0pe0MobVswXS5sZW5ndGgpO2NvbnRpbnVlfXZhciB5PWUubWF0Y2goVG8pO2lmKHkpe3ZhciBnPWM7Qyh5WzBdLmxlbmd0aCksQSh5WzFdLGcsYyk7Y29udGludWV9dmFyIF89eCgpO2lmKF8pe2soXyksUm8oXy50YWdOYW1lLGUpJiZDKDEpO2NvbnRpbnVlfX12YXIgYj12b2lkIDAsJD12b2lkIDAsdz12b2lkIDA7aWYoZD49MCl7Zm9yKCQ9ZS5zbGljZShkKTshKFRvLnRlc3QoJCl8fE9vLnRlc3QoJCl8fE5vLnRlc3QoJCl8fGpvLnRlc3QoJCl8fCh3PSQuaW5kZXhPZigiPCIsMSkpPDApOylkKz13LCQ9ZS5zbGljZShkKTtiPWUuc3Vic3RyaW5nKDAsZCl9ZDwwJiYoYj1lKSxiJiZDKGIubGVuZ3RoKSx0LmNoYXJzJiZiJiZ0LmNoYXJzKGIsYy1iLmxlbmd0aCxjKX1pZihlPT09bil7dC5jaGFycyYmdC5jaGFycyhlKTticmVha319ZnVuY3Rpb24gQyh0KXtjKz10LGU9ZS5zdWJzdHJpbmcodCl9ZnVuY3Rpb24geCgpe3ZhciB0PWUubWF0Y2goT28pO2lmKHQpe3ZhciBuLHIsaT17dGFnTmFtZTp0WzFdLGF0dHJzOltdLHN0YXJ0OmN9O2ZvcihDKHRbMF0ubGVuZ3RoKTshKG49ZS5tYXRjaChTbykpJiYocj1lLm1hdGNoKHhvKXx8ZS5tYXRjaChDbykpOylyLnN0YXJ0PWMsQyhyWzBdLmxlbmd0aCksci5lbmQ9YyxpLmF0dHJzLnB1c2gocik7aWYobilyZXR1cm4gaS51bmFyeVNsYXNoPW5bMV0sQyhuWzBdLmxlbmd0aCksaS5lbmQ9YyxpfX1mdW5jdGlvbiBrKGUpe3ZhciBuPWUudGFnTmFtZSxjPWUudW5hcnlTbGFzaDtvJiYoInAiPT09ciYmd28obikmJkEocikscyhuKSYmcj09PW4mJkEobikpO2Zvcih2YXIgdT1hKG4pfHwhIWMsbD1lLmF0dHJzLmxlbmd0aCxmPW5ldyBBcnJheShsKSxwPTA7cDxsO3ArKyl7dmFyIGQ9ZS5hdHRyc1twXSx2PWRbM118fGRbNF18fGRbNV18fCIiLGg9ImEiPT09biYmImhyZWYiPT09ZFsxXT90LnNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjp0LnNob3VsZERlY29kZU5ld2xpbmVzO2ZbcF09e25hbWU6ZFsxXSx2YWx1ZTpIbyh2LGgpfX11fHwoaS5wdXNoKHt0YWc6bixsb3dlckNhc2VkVGFnOm4udG9Mb3dlckNhc2UoKSxhdHRyczpmLHN0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkscj1uKSx0LnN0YXJ0JiZ0LnN0YXJ0KG4sZix1LGUuc3RhcnQsZS5lbmQpfWZ1bmN0aW9uIEEoZSxuLG8pe3ZhciBhLHM7aWYobnVsbD09biYmKG49YyksbnVsbD09byYmKG89YyksZSlmb3Iocz1lLnRvTG93ZXJDYXNlKCksYT1pLmxlbmd0aC0xO2E+PTAmJmlbYV0ubG93ZXJDYXNlZFRhZyE9PXM7YS0tKTtlbHNlIGE9MDtpZihhPj0wKXtmb3IodmFyIHU9aS5sZW5ndGgtMTt1Pj1hO3UtLSl0LmVuZCYmdC5lbmQoaVt1XS50YWcsbixvKTtpLmxlbmd0aD1hLHI9YSYmaVthLTFdLnRhZ31lbHNlImJyIj09PXM\/dC5zdGFydCYmdC5zdGFydChlLFtdLCEwLG4sbyk6InAiPT09cyYmKHQuc3RhcnQmJnQuc3RhcnQoZSxbXSwhMSxuLG8pLHQuZW5kJiZ0LmVuZChlLG4sbykpfUEoKX0oZSx7d2FybjpCbyxleHBlY3RIVE1MOnQuZXhwZWN0SFRNTCxpc1VuYXJ5VGFnOnQuaXNVbmFyeVRhZyxjYW5CZUxlZnRPcGVuVGFnOnQuY2FuQmVMZWZ0T3BlblRhZyxzaG91bGREZWNvZGVOZXdsaW5lczp0LnNob3VsZERlY29kZU5ld2xpbmVzLHNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjp0LnNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZixzaG91bGRLZWVwQ29tbWVudDp0LmNvbW1lbnRzLG91dHB1dFNvdXJjZVJhbmdlOnQub3V0cHV0U291cmNlUmFuZ2Usc3RhcnQ6ZnVuY3Rpb24oZSxvLGEsbCxmKXt2YXIgcD1yJiZyLm5zfHxXbyhlKTtxJiYic3ZnIj09PXAmJihvPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07eWEudGVzdChyLm5hbWUpfHwoci5uYW1lPXIubmFtZS5yZXBsYWNlKGdhLCIiKSx0LnB1c2gocikpfXJldHVybiB0fShvKSk7dmFyIGQsdj11YShlLG8scik7cCYmKHYubnM9cCksInN0eWxlIiE9PShkPXYpLnRhZyYmKCJzY3JpcHQiIT09ZC50YWd8fGQuYXR0cnNNYXAudHlwZSYmInRleHQvamF2YXNjcmlwdCIhPT1kLmF0dHJzTWFwLnR5cGUpfHx0ZSgpfHwodi5mb3JiaWRkZW49ITApO2Zvcih2YXIgaD0wO2g8Vm8ubGVuZ3RoO2grKyl2PVZvW2hdKHYsdCl8fHY7c3x8KCFmdW5jdGlvbihlKXtudWxsIT1GcihlLCJ2LXByZSIpJiYoZS5wcmU9ITApfSh2KSx2LnByZSYmKHM9ITApKSxKbyh2LnRhZykmJihjPSEwKSxzP2Z1bmN0aW9uKGUpe3ZhciB0PWUuYXR0cnNMaXN0LG49dC5sZW5ndGg7aWYobilmb3IodmFyIHI9ZS5hdHRycz1uZXcgQXJyYXkobiksaT0wO2k8bjtpKyspcltpXT17bmFtZTp0W2ldLm5hbWUsdmFsdWU6SlNPTi5zdHJpbmdpZnkodFtpXS52YWx1ZSl9LG51bGwhPXRbaV0uc3RhcnQmJihyW2ldLnN0YXJ0PXRbaV0uc3RhcnQscltpXS5lbmQ9dFtpXS5lbmQpO2Vsc2UgZS5wcmV8fChlLnBsYWluPSEwKX0odik6di5wcm9jZXNzZWR8fChwYSh2KSxmdW5jdGlvbihlKXt2YXIgdD1GcihlLCJ2LWlmIik7aWYodCllLmlmPXQsZGEoZSx7ZXhwOnQsYmxvY2s6ZX0pO2Vsc2V7bnVsbCE9RnIoZSwidi1lbHNlIikmJihlLmVsc2U9ITApO3ZhciBuPUZyKGUsInYtZWxzZS1pZiIpO24mJihlLmVsc2VpZj1uKX19KHYpLGZ1bmN0aW9uKGUpe251bGwhPUZyKGUsInYtb25jZSIpJiYoZS5vbmNlPSEwKX0odikpLG58fChuPXYpLGE\/dSh2KToocj12LGkucHVzaCh2KSl9LGVuZDpmdW5jdGlvbihlLHQsbil7dmFyIG89aVtpLmxlbmd0aC0xXTtpLmxlbmd0aC09MSxyPWlbaS5sZW5ndGgtMV0sdShvKX0sY2hhcnM6ZnVuY3Rpb24oZSx0LG4pe2lmKHImJighcXx8InRleHRhcmVhIiE9PXIudGFnfHxyLmF0dHJzTWFwLnBsYWNlaG9sZGVyIT09ZSkpe3ZhciBpLHUsbCxmPXIuY2hpbGRyZW47aWYoZT1jfHxlLnRyaW0oKT8ic2NyaXB0Ij09PShpPXIpLnRhZ3x8InN0eWxlIj09PWkudGFnP2U6c2EoZSk6Zi5sZW5ndGg\/YT8iY29uZGVuc2UiPT09YSYmb2EudGVzdChlKT8iIjoiICI6bz8iICI6IiI6IiIpY3x8ImNvbmRlbnNlIiE9PWF8fChlPWUucmVwbGFjZShhYSwiICIpKSwhcyYmIiAiIT09ZSYmKHU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10P2hvKHQpOnBvO2lmKG4udGVzdChlKSl7Zm9yKHZhciByLGksbyxhPVtdLHM9W10sYz1uLmxhc3RJbmRleD0wO3I9bi5leGVjKGUpOyl7KGk9ci5pbmRleCk+YyYmKHMucHVzaChvPWUuc2xpY2UoYyxpKSksYS5wdXNoKEpTT04uc3RyaW5naWZ5KG8pKSk7dmFyIHU9QXIoclsxXS50cmltKCkpO2EucHVzaCgiX3MoIit1KyIpIikscy5wdXNoKHsiQGJpbmRpbmciOnV9KSxjPWkrclswXS5sZW5ndGh9cmV0dXJuIGM8ZS5sZW5ndGgmJihzLnB1c2gobz1lLnNsaWNlKGMpKSxhLnB1c2goSlNPTi5zdHJpbmdpZnkobykpKSx7ZXhwcmVzc2lvbjphLmpvaW4oIisiKSx0b2tlbnM6c319fShlLFVvKSk\/bD17dHlwZToyLGV4cHJlc3Npb246dS5leHByZXNzaW9uLHRva2Vuczp1LnRva2Vucyx0ZXh0OmV9OiIgIj09PWUmJmYubGVuZ3RoJiYiICI9PT1mW2YubGVuZ3RoLTFdLnRleHR8fChsPXt0eXBlOjMsdGV4dDplfSksbCYmZi5wdXNoKGwpfX0sY29tbWVudDpmdW5jdGlvbihlLHQsbil7aWYocil7dmFyIGk9e3R5cGU6Myx0ZXh0OmUsaXNDb21tZW50OiEwfTtyLmNoaWxkcmVuLnB1c2goaSl9fX0pLG59ZnVuY3Rpb24gZmEoZSx0KXt2YXIgbixyOyhyPUlyKG49ZSwia2V5IikpJiYobi5rZXk9ciksZS5wbGFpbj0hZS5rZXkmJiFlLnNjb3BlZFNsb3RzJiYhZS5hdHRyc0xpc3QubGVuZ3RoLGZ1bmN0aW9uKGUpe3ZhciB0PUlyKGUsInJlZiIpO3QmJihlLnJlZj10LGUucmVmSW5Gb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9ZTtmb3IoO3Q7KXtpZih2b2lkIDAhPT10LmZvcilyZXR1cm4hMDt0PXQucGFyZW50fXJldHVybiExfShlKSl9KGUpLGZ1bmN0aW9uKGUpe3ZhciB0OyJ0ZW1wbGF0ZSI9PT1lLnRhZz8odD1GcihlLCJzY29wZSIpLGUuc2xvdFNjb3BlPXR8fEZyKGUsInNsb3Qtc2NvcGUiKSk6KHQ9RnIoZSwic2xvdC1zY29wZSIpKSYmKGUuc2xvdFNjb3BlPXQpO3ZhciBuPUlyKGUsInNsb3QiKTtuJiYoZS5zbG90VGFyZ2V0PSciIic9PT1uPyciZGVmYXVsdCInOm4sZS5zbG90VGFyZ2V0RHluYW1pYz0hKCFlLmF0dHJzTWFwWyI6c2xvdCJdJiYhZS5hdHRyc01hcFsidi1iaW5kOnNsb3QiXSksInRlbXBsYXRlIj09PWUudGFnfHxlLnNsb3RTY29wZXx8TnIoZSwic2xvdCIsbixmdW5jdGlvbihlLHQpe3JldHVybiBlLnJhd0F0dHJzTWFwWyI6Iit0XXx8ZS5yYXdBdHRyc01hcFsidi1iaW5kOiIrdF18fGUucmF3QXR0cnNNYXBbdF19KGUsInNsb3QiKSkpO2lmKCJ0ZW1wbGF0ZSI9PT1lLnRhZyl7dmFyIHI9UHIoZSxpYSk7aWYocil7dmFyIGk9dmEociksbz1pLm5hbWUsYT1pLmR5bmFtaWM7ZS5zbG90VGFyZ2V0PW8sZS5zbG90VGFyZ2V0RHluYW1pYz1hLGUuc2xvdFNjb3BlPXIudmFsdWV8fGNhfX1lbHNle3ZhciBzPVByKGUsaWEpO2lmKHMpe3ZhciBjPWUuc2NvcGVkU2xvdHN8fChlLnNjb3BlZFNsb3RzPXt9KSx1PXZhKHMpLGw9dS5uYW1lLGY9dS5keW5hbWljLHA9Y1tsXT11YSgidGVtcGxhdGUiLFtdLGUpO3Auc2xvdFRhcmdldD1sLHAuc2xvdFRhcmdldER5bmFtaWM9ZixwLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGUpe2lmKCFlLnNsb3RTY29wZSlyZXR1cm4gZS5wYXJlbnQ9cCwhMH0pLHAuc2xvdFNjb3BlPXMudmFsdWV8fGNhLGUuY2hpbGRyZW49W10sZS5wbGFpbj0hMX19fShlKSxmdW5jdGlvbihlKXsic2xvdCI9PT1lLnRhZyYmKGUuc2xvdE5hbWU9SXIoZSwibmFtZSIpKX0oZSksZnVuY3Rpb24oZSl7dmFyIHQ7KHQ9SXIoZSwiaXMiKSkmJihlLmNvbXBvbmVudD10KTtudWxsIT1GcihlLCJpbmxpbmUtdGVtcGxhdGUiKSYmKGUuaW5saW5lVGVtcGxhdGU9ITApfShlKTtmb3IodmFyIGk9MDtpPHpvLmxlbmd0aDtpKyspZT16b1tpXShlLHQpfHxlO3JldHVybiBmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscyxjLHU9ZS5hdHRyc0xpc3Q7Zm9yKHQ9MCxuPXUubGVuZ3RoO3Q8bjt0KyspaWYocj1pPXVbdF0ubmFtZSxvPXVbdF0udmFsdWUsR28udGVzdChyKSlpZihlLmhhc0JpbmRpbmdzPSEwLChhPWhhKHIucmVwbGFjZShHbywiIikpKSYmKHI9ci5yZXBsYWNlKHJhLCIiKSksbmEudGVzdChyKSlyPXIucmVwbGFjZShuYSwiIiksbz1BcihvKSwoYz1lYS50ZXN0KHIpKSYmKHI9ci5zbGljZSgxLC0xKSksYSYmKGEucHJvcCYmIWMmJiJpbm5lckh0bWwiPT09KHI9YihyKSkmJihyPSJpbm5lckhUTUwiKSxhLmNhbWVsJiYhYyYmKHI9YihyKSksYS5zeW5jJiYocz1CcihvLCIkZXZlbnQiKSxjP01yKGUsJyJ1cGRhdGU6IisoJytyKyIpIixzLG51bGwsITEsMCx1W3RdLCEwKTooTXIoZSwidXBkYXRlOiIrYihyKSxzLG51bGwsITEsMCx1W3RdKSxDKHIpIT09YihyKSYmTXIoZSwidXBkYXRlOiIrQyhyKSxzLG51bGwsITEsMCx1W3RdKSkpKSxhJiZhLnByb3B8fCFlLmNvbXBvbmVudCYmcW8oZS50YWcsZS5hdHRyc01hcC50eXBlLHIpP0VyKGUscixvLHVbdF0sYyk6TnIoZSxyLG8sdVt0XSxjKTtlbHNlIGlmKFpvLnRlc3Qocikpcj1yLnJlcGxhY2UoWm8sIiIpLChjPWVhLnRlc3QocikpJiYocj1yLnNsaWNlKDEsLTEpKSxNcihlLHIsbyxhLCExLDAsdVt0XSxjKTtlbHNle3ZhciBsPShyPXIucmVwbGFjZShHbywiIikpLm1hdGNoKHRhKSxmPWwmJmxbMV07Yz0hMSxmJiYocj1yLnNsaWNlKDAsLShmLmxlbmd0aCsxKSksZWEudGVzdChmKSYmKGY9Zi5zbGljZSgxLC0xKSxjPSEwKSksRHIoZSxyLGksbyxmLGMsYSx1W3RdKX1lbHNlIE5yKGUscixKU09OLnN0cmluZ2lmeShvKSx1W3RdKSwhZS5jb21wb25lbnQmJiJtdXRlZCI9PT1yJiZxbyhlLnRhZyxlLmF0dHJzTWFwLnR5cGUscikmJkVyKGUsciwidHJ1ZSIsdVt0XSl9KGUpLGV9ZnVuY3Rpb24gcGEoZSl7dmFyIHQ7aWYodD1GcihlLCJ2LWZvciIpKXt2YXIgbj1mdW5jdGlvbihlKXt2YXIgdD1lLm1hdGNoKFhvKTtpZighdClyZXR1cm47dmFyIG49e307bi5mb3I9dFsyXS50cmltKCk7dmFyIHI9dFsxXS50cmltKCkucmVwbGFjZShRbywiIiksaT1yLm1hdGNoKFlvKTtpPyhuLmFsaWFzPXIucmVwbGFjZShZbywiIikudHJpbSgpLG4uaXRlcmF0b3IxPWlbMV0udHJpbSgpLGlbMl0mJihuLml0ZXJhdG9yMj1pWzJdLnRyaW0oKSkpOm4uYWxpYXM9cjtyZXR1cm4gbn0odCk7biYmQShlLG4pfX1mdW5jdGlvbiBkYShlLHQpe2UuaWZDb25kaXRpb25zfHwoZS5pZkNvbmRpdGlvbnM9W10pLGUuaWZDb25kaXRpb25zLnB1c2godCl9ZnVuY3Rpb24gdmEoZSl7dmFyIHQ9ZS5uYW1lLnJlcGxhY2UoaWEsIiIpO3JldHVybiB0fHwiIyIhPT1lLm5hbWVbMF0mJih0PSJkZWZhdWx0IiksZWEudGVzdCh0KT97bmFtZTp0LnNsaWNlKDEsLTEpLGR5bmFtaWM6ITB9OntuYW1lOiciJyt0KyciJyxkeW5hbWljOiExfX1mdW5jdGlvbiBoYShlKXt2YXIgdD1lLm1hdGNoKHJhKTtpZih0KXt2YXIgbj17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe25bZS5zbGljZSgxKV09ITB9KSxufX1mdW5jdGlvbiBtYShlKXtmb3IodmFyIHQ9e30sbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0W2Vbbl0ubmFtZV09ZVtuXS52YWx1ZTtyZXR1cm4gdH12YXIgeWE9L154bWxuczpOU1xkKy8sZ2E9L15OU1xkKzovO2Z1bmN0aW9uIF9hKGUpe3JldHVybiB1YShlLnRhZyxlLmF0dHJzTGlzdC5zbGljZSgpLGUucGFyZW50KX12YXIgYmE9W21vLGdvLHtwcmVUcmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7aWYoImlucHV0Ij09PWUudGFnKXt2YXIgbixyPWUuYXR0cnNNYXA7aWYoIXJbInYtbW9kZWwiXSlyZXR1cm47aWYoKHJbIjp0eXBlIl18fHJbInYtYmluZDp0eXBlIl0pJiYobj1JcihlLCJ0eXBlIikpLHIudHlwZXx8bnx8IXJbInYtYmluZCJdfHwobj0iKCIrclsidi1iaW5kIl0rIikudHlwZSIpLG4pe3ZhciBpPUZyKGUsInYtaWYiLCEwKSxvPWk\/IiYmKCIraSsiKSI6IiIsYT1udWxsIT1GcihlLCJ2LWVsc2UiLCEwKSxzPUZyKGUsInYtZWxzZS1pZiIsITApLGM9X2EoZSk7cGEoYyksanIoYywidHlwZSIsImNoZWNrYm94IiksZmEoYyx0KSxjLnByb2Nlc3NlZD0hMCxjLmlmPSIoIituKyIpPT09J2NoZWNrYm94JyIrbyxkYShjLHtleHA6Yy5pZixibG9jazpjfSk7dmFyIHU9X2EoZSk7RnIodSwidi1mb3IiLCEwKSxqcih1LCJ0eXBlIiwicmFkaW8iKSxmYSh1LHQpLGRhKGMse2V4cDoiKCIrbisiKT09PSdyYWRpbyciK28sYmxvY2s6dX0pO3ZhciBsPV9hKGUpO3JldHVybiBGcihsLCJ2LWZvciIsITApLGpyKGwsIjp0eXBlIixuKSxmYShsLHQpLGRhKGMse2V4cDppLGJsb2NrOmx9KSxhP2MuZWxzZT0hMDpzJiYoYy5lbHNlaWY9cyksY319fX1dO3ZhciAkYSx3YSxDYT17ZXhwZWN0SFRNTDohMCxtb2R1bGVzOmJhLGRpcmVjdGl2ZXM6e21vZGVsOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LnZhbHVlLGk9dC5tb2RpZmllcnMsbz1lLnRhZyxhPWUuYXR0cnNNYXAudHlwZTtpZihlLmNvbXBvbmVudClyZXR1cm4gSHIoZSxyLGkpLCExO2lmKCJzZWxlY3QiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPSd2YXIgJCRzZWxlY3RlZFZhbCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCgkZXZlbnQudGFyZ2V0Lm9wdGlvbnMsZnVuY3Rpb24obyl7cmV0dXJuIG8uc2VsZWN0ZWR9KS5tYXAoZnVuY3Rpb24obyl7dmFyIHZhbCA9ICJfdmFsdWUiIGluIG8gPyBvLl92YWx1ZSA6IG8udmFsdWU7cmV0dXJuICcrKG4mJm4ubnVtYmVyPyJfbih2YWwpIjoidmFsIikrIn0pOyI7cj1yKyIgIitCcih0LCIkZXZlbnQudGFyZ2V0Lm11bHRpcGxlID8gJCRzZWxlY3RlZFZhbCA6ICQkc2VsZWN0ZWRWYWxbMF0iKSxNcihlLCJjaGFuZ2UiLHIsbnVsbCwhMCl9KGUscixpKTtlbHNlIGlmKCJpbnB1dCI9PT1vJiYiY2hlY2tib3giPT09YSkhZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4mJm4ubnVtYmVyLGk9SXIoZSwidmFsdWUiKXx8Im51bGwiLG89SXIoZSwidHJ1ZS12YWx1ZSIpfHwidHJ1ZSIsYT1JcihlLCJmYWxzZS12YWx1ZSIpfHwiZmFsc2UiO0VyKGUsImNoZWNrZWQiLCJBcnJheS5pc0FycmF5KCIrdCsiKT9faSgiK3QrIiwiK2krIik+LTEiKygidHJ1ZSI9PT1vPyI6KCIrdCsiKSI6IjpfcSgiK3QrIiwiK28rIikiKSksTXIoZSwiY2hhbmdlIiwidmFyICQkYT0iK3QrIiwkJGVsPSRldmVudC50YXJnZXQsJCRjPSQkZWwuY2hlY2tlZD8oIitvKyIpOigiK2ErIik7aWYoQXJyYXkuaXNBcnJheSgkJGEpKXt2YXIgJCR2PSIrKHI\/Il9uKCIraSsiKSI6aSkrIiwkJGk9X2koJCRhLCQkdik7aWYoJCRlbC5jaGVja2VkKXskJGk8MCYmKCIrQnIodCwiJCRhLmNvbmNhdChbJCR2XSkiKSsiKX1lbHNleyQkaT4tMSYmKCIrQnIodCwiJCRhLnNsaWNlKDAsJCRpKS5jb25jYXQoJCRhLnNsaWNlKCQkaSsxKSkiKSsiKX19ZWxzZXsiK0JyKHQsIiQkYyIpKyJ9IixudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoImlucHV0Ij09PW8mJiJyYWRpbyI9PT1hKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9biYmbi5udW1iZXIsaT1JcihlLCJ2YWx1ZSIpfHwibnVsbCI7RXIoZSwiY2hlY2tlZCIsIl9xKCIrdCsiLCIrKGk9cj8iX24oIitpKyIpIjppKSsiKSIpLE1yKGUsImNoYW5nZSIsQnIodCxpKSxudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoImlucHV0Ij09PW98fCJ0ZXh0YXJlYSI9PT1vKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5hdHRyc01hcC50eXBlLGk9bnx8e30sbz1pLmxhenksYT1pLm51bWJlcixzPWkudHJpbSxjPSFvJiYicmFuZ2UiIT09cix1PW8\/ImNoYW5nZSI6InJhbmdlIj09PXI\/V3I6ImlucHV0IixsPSIkZXZlbnQudGFyZ2V0LnZhbHVlIjtzJiYobD0iJGV2ZW50LnRhcmdldC52YWx1ZS50cmltKCkiKSxhJiYobD0iX24oIitsKyIpIik7dmFyIGY9QnIodCxsKTtjJiYoZj0iaWYoJGV2ZW50LnRhcmdldC5jb21wb3NpbmcpcmV0dXJuOyIrZiksRXIoZSwidmFsdWUiLCIoIit0KyIpIiksTXIoZSx1LGYsbnVsbCwhMCksKHN8fGEpJiZNcihlLCJibHVyIiwiJGZvcmNlVXBkYXRlKCkiKX0oZSxyLGkpO2Vsc2UgaWYoIUYuaXNSZXNlcnZlZFRhZyhvKSlyZXR1cm4gSHIoZSxyLGkpLCExO3JldHVybiEwfSx0ZXh0OmZ1bmN0aW9uKGUsdCl7dC52YWx1ZSYmRXIoZSwidGV4dENvbnRlbnQiLCJfcygiK3QudmFsdWUrIikiLHQpfSxodG1sOmZ1bmN0aW9uKGUsdCl7dC52YWx1ZSYmRXIoZSwiaW5uZXJIVE1MIiwiX3MoIit0LnZhbHVlKyIpIix0KX19LGlzUHJlVGFnOmZ1bmN0aW9uKGUpe3JldHVybiJwcmUiPT09ZX0saXNVbmFyeVRhZzpibyxtdXN0VXNlUHJvcDpqbixjYW5CZUxlZnRPcGVuVGFnOiRvLGlzUmVzZXJ2ZWRUYWc6V24sZ2V0VGFnTmFtZXNwYWNlOlpuLHN0YXRpY0tleXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuY29uY2F0KHQuc3RhdGljS2V5c3x8W10pfSxbXSkuam9pbigiLCIpfShiYSl9LHhhPWcoZnVuY3Rpb24oZSl7cmV0dXJuIHAoInR5cGUsdGFnLGF0dHJzTGlzdCxhdHRyc01hcCxwbGFpbixwYXJlbnQsY2hpbGRyZW4sYXR0cnMsc3RhcnQsZW5kLHJhd0F0dHJzTWFwIisoZT8iLCIrZToiIikpfSk7ZnVuY3Rpb24ga2EoZSx0KXtlJiYoJGE9eGEodC5zdGF0aWNLZXlzfHwiIiksd2E9dC5pc1Jlc2VydmVkVGFnfHxULGZ1bmN0aW9uIGUodCl7dC5zdGF0aWM9ZnVuY3Rpb24oZSl7aWYoMj09PWUudHlwZSlyZXR1cm4hMTtpZigzPT09ZS50eXBlKXJldHVybiEwO3JldHVybiEoIWUucHJlJiYoZS5oYXNCaW5kaW5nc3x8ZS5pZnx8ZS5mb3J8fGQoZS50YWcpfHwhd2EoZS50YWcpfHxmdW5jdGlvbihlKXtmb3IoO2UucGFyZW50Oyl7aWYoInRlbXBsYXRlIiE9PShlPWUucGFyZW50KS50YWcpcmV0dXJuITE7aWYoZS5mb3IpcmV0dXJuITB9cmV0dXJuITF9KGUpfHwhT2JqZWN0LmtleXMoZSkuZXZlcnkoJGEpKSl9KHQpO2lmKDE9PT10LnR5cGUpe2lmKCF3YSh0LnRhZykmJiJzbG90IiE9PXQudGFnJiZudWxsPT10LmF0dHJzTWFwWyJpbmxpbmUtdGVtcGxhdGUiXSlyZXR1cm47Zm9yKHZhciBuPTAscj10LmNoaWxkcmVuLmxlbmd0aDtuPHI7bisrKXt2YXIgaT10LmNoaWxkcmVuW25dO2UoaSksaS5zdGF0aWN8fCh0LnN0YXRpYz0hMSl9aWYodC5pZkNvbmRpdGlvbnMpZm9yKHZhciBvPTEsYT10LmlmQ29uZGl0aW9ucy5sZW5ndGg7bzxhO28rKyl7dmFyIHM9dC5pZkNvbmRpdGlvbnNbb10uYmxvY2s7ZShzKSxzLnN0YXRpY3x8KHQuc3RhdGljPSExKX19fShlKSxmdW5jdGlvbiBlKHQsbil7aWYoMT09PXQudHlwZSl7aWYoKHQuc3RhdGljfHx0Lm9uY2UpJiYodC5zdGF0aWNJbkZvcj1uKSx0LnN0YXRpYyYmdC5jaGlsZHJlbi5sZW5ndGgmJigxIT09dC5jaGlsZHJlbi5sZW5ndGh8fDMhPT10LmNoaWxkcmVuWzBdLnR5cGUpKXJldHVybiB2b2lkKHQuc3RhdGljUm9vdD0hMCk7aWYodC5zdGF0aWNSb290PSExLHQuY2hpbGRyZW4pZm9yKHZhciByPTAsaT10LmNoaWxkcmVuLmxlbmd0aDtyPGk7cisrKWUodC5jaGlsZHJlbltyXSxufHwhIXQuZm9yKTtpZih0LmlmQ29uZGl0aW9ucylmb3IodmFyIG89MSxhPXQuaWZDb25kaXRpb25zLmxlbmd0aDtvPGE7bysrKWUodC5pZkNvbmRpdGlvbnNbb10uYmxvY2ssbil9fShlLCExKSl9dmFyIEFhPS9eKFtcdyRfXSt8XChbXildKj9cKSlccyo9PnxeZnVuY3Rpb24oPzpccytbXHckXSspP1xzKlwoLyxPYT0vXChbXildKj9cKTsqJC8sU2E9L15bQS1aYS16XyRdW1x3JF0qKD86XC5bQS1aYS16XyRdW1x3JF0qfFxbJ1teJ10qPyddfFxbIlteIl0qPyJdfFxbXGQrXXxcW1tBLVphLXpfJF1bXHckXSpdKSokLyxUYT17ZXNjOjI3LHRhYjo5LGVudGVyOjEzLHNwYWNlOjMyLHVwOjM4LGxlZnQ6MzcscmlnaHQ6MzksZG93bjo0MCxkZWxldGU6WzgsNDZdfSxFYT17ZXNjOlsiRXNjIiwiRXNjYXBlIl0sdGFiOiJUYWIiLGVudGVyOiJFbnRlciIsc3BhY2U6WyIgIiwiU3BhY2ViYXIiXSx1cDpbIlVwIiwiQXJyb3dVcCJdLGxlZnQ6WyJMZWZ0IiwiQXJyb3dMZWZ0Il0scmlnaHQ6WyJSaWdodCIsIkFycm93UmlnaHQiXSxkb3duOlsiRG93biIsIkFycm93RG93biJdLGRlbGV0ZTpbIkJhY2tzcGFjZSIsIkRlbGV0ZSIsIkRlbCJdfSxOYT1mdW5jdGlvbihlKXtyZXR1cm4iaWYoIitlKyIpcmV0dXJuIG51bGw7In0samE9e3N0b3A6IiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiLHByZXZlbnQ6IiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyIsc2VsZjpOYSgiJGV2ZW50LnRhcmdldCAhPT0gJGV2ZW50LmN1cnJlbnRUYXJnZXQiKSxjdHJsOk5hKCIhJGV2ZW50LmN0cmxLZXkiKSxzaGlmdDpOYSgiISRldmVudC5zaGlmdEtleSIpLGFsdDpOYSgiISRldmVudC5hbHRLZXkiKSxtZXRhOk5hKCIhJGV2ZW50Lm1ldGFLZXkiKSxsZWZ0Ok5hKCInYnV0dG9uJyBpbiAkZXZlbnQgJiYgJGV2ZW50LmJ1dHRvbiAhPT0gMCIpLG1pZGRsZTpOYSgiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDEiKSxyaWdodDpOYSgiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDIiKX07ZnVuY3Rpb24gRGEoZSx0KXt2YXIgbj10PyJuYXRpdmVPbjoiOiJvbjoiLHI9IiIsaT0iIjtmb3IodmFyIG8gaW4gZSl7dmFyIGE9TGEoZVtvXSk7ZVtvXSYmZVtvXS5keW5hbWljP2krPW8rIiwiK2ErIiwiOnIrPSciJytvKyciOicrYSsiLCJ9cmV0dXJuIHI9InsiK3Iuc2xpY2UoMCwtMSkrIn0iLGk\/bisiX2QoIityKyIsWyIraS5zbGljZSgwLC0xKSsiXSkiOm4rcn1mdW5jdGlvbiBMYShlKXtpZighZSlyZXR1cm4iZnVuY3Rpb24oKXt9IjtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJbIitlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gTGEoZSl9KS5qb2luKCIsIikrIl0iO3ZhciB0PVNhLnRlc3QoZS52YWx1ZSksbj1BYS50ZXN0KGUudmFsdWUpLHI9U2EudGVzdChlLnZhbHVlLnJlcGxhY2UoT2EsIiIpKTtpZihlLm1vZGlmaWVycyl7dmFyIGk9IiIsbz0iIixhPVtdO2Zvcih2YXIgcyBpbiBlLm1vZGlmaWVycylpZihqYVtzXSlvKz1qYVtzXSxUYVtzXSYmYS5wdXNoKHMpO2Vsc2UgaWYoImV4YWN0Ij09PXMpe3ZhciBjPWUubW9kaWZpZXJzO28rPU5hKFsiY3RybCIsInNoaWZ0IiwiYWx0IiwibWV0YSJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hY1tlXX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4iJGV2ZW50LiIrZSsiS2V5In0pLmpvaW4oInx8IikpfWVsc2UgYS5wdXNoKHMpO3JldHVybiBhLmxlbmd0aCYmKGkrPWZ1bmN0aW9uKGUpe3JldHVybiJpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJiIrZS5tYXAoTWEpLmpvaW4oIiYmIikrIilyZXR1cm4gbnVsbDsifShhKSksbyYmKGkrPW8pLCJmdW5jdGlvbigkZXZlbnQpeyIraSsodD8icmV0dXJuICIrZS52YWx1ZSsiKCRldmVudCkiOm4\/InJldHVybiAoIitlLnZhbHVlKyIpKCRldmVudCkiOnI\/InJldHVybiAiK2UudmFsdWU6ZS52YWx1ZSkrIn0ifXJldHVybiB0fHxuP2UudmFsdWU6ImZ1bmN0aW9uKCRldmVudCl7Iisocj8icmV0dXJuICIrZS52YWx1ZTplLnZhbHVlKSsifSJ9ZnVuY3Rpb24gTWEoZSl7dmFyIHQ9cGFyc2VJbnQoZSwxMCk7aWYodClyZXR1cm4iJGV2ZW50LmtleUNvZGUhPT0iK3Q7dmFyIG49VGFbZV0scj1FYVtlXTtyZXR1cm4iX2soJGV2ZW50LmtleUNvZGUsIitKU09OLnN0cmluZ2lmeShlKSsiLCIrSlNPTi5zdHJpbmdpZnkobikrIiwkZXZlbnQua2V5LCIrSlNPTi5zdHJpbmdpZnkocikrIikifXZhciBJYT17b246ZnVuY3Rpb24oZSx0KXtlLndyYXBMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuIl9nKCIrZSsiLCIrdC52YWx1ZSsiKSJ9fSxiaW5kOmZ1bmN0aW9uKGUsdCl7ZS53cmFwRGF0YT1mdW5jdGlvbihuKXtyZXR1cm4iX2IoIituKyIsJyIrZS50YWcrIicsIit0LnZhbHVlKyIsIisodC5tb2RpZmllcnMmJnQubW9kaWZpZXJzLnByb3A\/InRydWUiOiJmYWxzZSIpKyh0Lm1vZGlmaWVycyYmdC5tb2RpZmllcnMuc3luYz8iLHRydWUiOiIiKSsiKSJ9fSxjbG9hazpTfSxGYT1mdW5jdGlvbihlKXt0aGlzLm9wdGlvbnM9ZSx0aGlzLndhcm49ZS53YXJufHxTcix0aGlzLnRyYW5zZm9ybXM9VHIoZS5tb2R1bGVzLCJ0cmFuc2Zvcm1Db2RlIiksdGhpcy5kYXRhR2VuRm5zPVRyKGUubW9kdWxlcywiZ2VuRGF0YSIpLHRoaXMuZGlyZWN0aXZlcz1BKEEoe30sSWEpLGUuZGlyZWN0aXZlcyk7dmFyIHQ9ZS5pc1Jlc2VydmVkVGFnfHxUO3RoaXMubWF5YmVDb21wb25lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuISFlLmNvbXBvbmVudHx8IXQoZS50YWcpfSx0aGlzLm9uY2VJZD0wLHRoaXMuc3RhdGljUmVuZGVyRm5zPVtdLHRoaXMucHJlPSExfTtmdW5jdGlvbiBQYShlLHQpe3ZhciBuPW5ldyBGYSh0KTtyZXR1cm57cmVuZGVyOiJ3aXRoKHRoaXMpe3JldHVybiAiKyhlP1JhKGUsbik6J19jKCJkaXYiKScpKyJ9IixzdGF0aWNSZW5kZXJGbnM6bi5zdGF0aWNSZW5kZXJGbnN9fWZ1bmN0aW9uIFJhKGUsdCl7aWYoZS5wYXJlbnQmJihlLnByZT1lLnByZXx8ZS5wYXJlbnQucHJlKSxlLnN0YXRpY1Jvb3QmJiFlLnN0YXRpY1Byb2Nlc3NlZClyZXR1cm4gSGEoZSx0KTtpZihlLm9uY2UmJiFlLm9uY2VQcm9jZXNzZWQpcmV0dXJuIEJhKGUsdCk7aWYoZS5mb3ImJiFlLmZvclByb2Nlc3NlZClyZXR1cm4gemEoZSx0KTtpZihlLmlmJiYhZS5pZlByb2Nlc3NlZClyZXR1cm4gVWEoZSx0KTtpZigidGVtcGxhdGUiIT09ZS50YWd8fGUuc2xvdFRhcmdldHx8dC5wcmUpe2lmKCJzbG90Ij09PWUudGFnKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPWUuc2xvdE5hbWV8fCciZGVmYXVsdCInLHI9cWEoZSx0KSxpPSJfdCgiK24rKHI\/IiwiK3I6IiIpLG89ZS5hdHRyc3x8ZS5keW5hbWljQXR0cnM\/R2EoKGUuYXR0cnN8fFtdKS5jb25jYXQoZS5keW5hbWljQXR0cnN8fFtdKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6YihlLm5hbWUpLHZhbHVlOmUudmFsdWUsZHluYW1pYzplLmR5bmFtaWN9fSkpOm51bGwsYT1lLmF0dHJzTWFwWyJ2LWJpbmQiXTshbyYmIWF8fHJ8fChpKz0iLG51bGwiKTtvJiYoaSs9IiwiK28pO2EmJihpKz0obz8iIjoiLG51bGwiKSsiLCIrYSk7cmV0dXJuIGkrIikifShlLHQpO3ZhciBuO2lmKGUuY29tcG9uZW50KW49ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQuaW5saW5lVGVtcGxhdGU\/bnVsbDpxYSh0LG4sITApO3JldHVybiJfYygiK2UrIiwiK1ZhKHQsbikrKHI\/IiwiK3I6IiIpKyIpIn0oZS5jb21wb25lbnQsZSx0KTtlbHNle3ZhciByOyghZS5wbGFpbnx8ZS5wcmUmJnQubWF5YmVDb21wb25lbnQoZSkpJiYocj1WYShlLHQpKTt2YXIgaT1lLmlubGluZVRlbXBsYXRlP251bGw6cWEoZSx0LCEwKTtuPSJfYygnIitlLnRhZysiJyIrKHI\/IiwiK3I6IiIpKyhpPyIsIitpOiIiKSsiKSJ9Zm9yKHZhciBvPTA7bzx0LnRyYW5zZm9ybXMubGVuZ3RoO28rKyluPXQudHJhbnNmb3Jtc1tvXShlLG4pO3JldHVybiBufXJldHVybiBxYShlLHQpfHwidm9pZCAwIn1mdW5jdGlvbiBIYShlLHQpe2Uuc3RhdGljUHJvY2Vzc2VkPSEwO3ZhciBuPXQucHJlO3JldHVybiBlLnByZSYmKHQucHJlPWUucHJlKSx0LnN0YXRpY1JlbmRlckZucy5wdXNoKCJ3aXRoKHRoaXMpe3JldHVybiAiK1JhKGUsdCkrIn0iKSx0LnByZT1uLCJfbSgiKyh0LnN0YXRpY1JlbmRlckZucy5sZW5ndGgtMSkrKGUuc3RhdGljSW5Gb3I\/Iix0cnVlIjoiIikrIikifWZ1bmN0aW9uIEJhKGUsdCl7aWYoZS5vbmNlUHJvY2Vzc2VkPSEwLGUuaWYmJiFlLmlmUHJvY2Vzc2VkKXJldHVybiBVYShlLHQpO2lmKGUuc3RhdGljSW5Gb3Ipe2Zvcih2YXIgbj0iIixyPWUucGFyZW50O3I7KXtpZihyLmZvcil7bj1yLmtleTticmVha31yPXIucGFyZW50fXJldHVybiBuPyJfbygiK1JhKGUsdCkrIiwiK3Qub25jZUlkKysrIiwiK24rIikiOlJhKGUsdCl9cmV0dXJuIEhhKGUsdCl9ZnVuY3Rpb24gVWEoZSx0LG4scil7cmV0dXJuIGUuaWZQcm9jZXNzZWQ9ITAsZnVuY3Rpb24gZSh0LG4scixpKXtpZighdC5sZW5ndGgpcmV0dXJuIGl8fCJfZSgpIjt2YXIgbz10LnNoaWZ0KCk7cmV0dXJuIG8uZXhwPyIoIitvLmV4cCsiKT8iK2Eoby5ibG9jaykrIjoiK2UodCxuLHIsaSk6IiIrYShvLmJsb2NrKTtmdW5jdGlvbiBhKGUpe3JldHVybiByP3IoZSxuKTplLm9uY2U\/QmEoZSxuKTpSYShlLG4pfX0oZS5pZkNvbmRpdGlvbnMuc2xpY2UoKSx0LG4scil9ZnVuY3Rpb24gemEoZSx0LG4scil7dmFyIGk9ZS5mb3Isbz1lLmFsaWFzLGE9ZS5pdGVyYXRvcjE\/IiwiK2UuaXRlcmF0b3IxOiIiLHM9ZS5pdGVyYXRvcjI\/IiwiK2UuaXRlcmF0b3IyOiIiO3JldHVybiBlLmZvclByb2Nlc3NlZD0hMCwocnx8Il9sIikrIigoIitpKyIpLGZ1bmN0aW9uKCIrbythK3MrIil7cmV0dXJuICIrKG58fFJhKShlLHQpKyJ9KSJ9ZnVuY3Rpb24gVmEoZSx0KXt2YXIgbj0ieyIscj1mdW5jdGlvbihlLHQpe3ZhciBuPWUuZGlyZWN0aXZlcztpZighbilyZXR1cm47dmFyIHIsaSxvLGEscz0iZGlyZWN0aXZlczpbIixjPSExO2ZvcihyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXtvPW5bcl0sYT0hMDt2YXIgdT10LmRpcmVjdGl2ZXNbby5uYW1lXTt1JiYoYT0hIXUoZSxvLHQud2FybikpLGEmJihjPSEwLHMrPSd7bmFtZToiJytvLm5hbWUrJyIscmF3TmFtZToiJytvLnJhd05hbWUrJyInKyhvLnZhbHVlPyIsdmFsdWU6KCIrby52YWx1ZSsiKSxleHByZXNzaW9uOiIrSlNPTi5zdHJpbmdpZnkoby52YWx1ZSk6IiIpKyhvLmFyZz8iLGFyZzoiKyhvLmlzRHluYW1pY0FyZz9vLmFyZzonIicrby5hcmcrJyInKToiIikrKG8ubW9kaWZpZXJzPyIsbW9kaWZpZXJzOiIrSlNPTi5zdHJpbmdpZnkoby5tb2RpZmllcnMpOiIiKSsifSwiKX1pZihjKXJldHVybiBzLnNsaWNlKDAsLTEpKyJdIn0oZSx0KTtyJiYobis9cisiLCIpLGUua2V5JiYobis9ImtleToiK2Uua2V5KyIsIiksZS5yZWYmJihuKz0icmVmOiIrZS5yZWYrIiwiKSxlLnJlZkluRm9yJiYobis9InJlZkluRm9yOnRydWUsIiksZS5wcmUmJihuKz0icHJlOnRydWUsIiksZS5jb21wb25lbnQmJihuKz0ndGFnOiInK2UudGFnKyciLCcpO2Zvcih2YXIgaT0wO2k8dC5kYXRhR2VuRm5zLmxlbmd0aDtpKyspbis9dC5kYXRhR2VuRm5zW2ldKGUpO2lmKGUuYXR0cnMmJihuKz0iYXR0cnM6IitHYShlLmF0dHJzKSsiLCIpLGUucHJvcHMmJihuKz0iZG9tUHJvcHM6IitHYShlLnByb3BzKSsiLCIpLGUuZXZlbnRzJiYobis9RGEoZS5ldmVudHMsITEpKyIsIiksZS5uYXRpdmVFdmVudHMmJihuKz1EYShlLm5hdGl2ZUV2ZW50cywhMCkrIiwiKSxlLnNsb3RUYXJnZXQmJiFlLnNsb3RTY29wZSYmKG4rPSJzbG90OiIrZS5zbG90VGFyZ2V0KyIsIiksZS5zY29wZWRTbG90cyYmKG4rPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmZvcnx8T2JqZWN0LmtleXModCkuc29tZShmdW5jdGlvbihlKXt2YXIgbj10W2VdO3JldHVybiBuLnNsb3RUYXJnZXREeW5hbWljfHxuLmlmfHxuLmZvcnx8S2Eobil9KSxpPSEhZS5pZjtpZighcilmb3IodmFyIG89ZS5wYXJlbnQ7bzspe2lmKG8uc2xvdFNjb3BlJiZvLnNsb3RTY29wZSE9PWNhfHxvLmZvcil7cj0hMDticmVha31vLmlmJiYoaT0hMCksbz1vLnBhcmVudH12YXIgYT1PYmplY3Qua2V5cyh0KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIEphKHRbZV0sbil9KS5qb2luKCIsIik7cmV0dXJuInNjb3BlZFNsb3RzOl91KFsiK2ErIl0iKyhyPyIsbnVsbCx0cnVlIjoiIikrKCFyJiZpPyIsbnVsbCxmYWxzZSwiK2Z1bmN0aW9uKGUpe3ZhciB0PTUzODEsbj1lLmxlbmd0aDtmb3IoO247KXQ9MzMqdF5lLmNoYXJDb2RlQXQoLS1uKTtyZXR1cm4gdD4+PjB9KGEpOiIiKSsiKSJ9KGUsZS5zY29wZWRTbG90cyx0KSsiLCIpLGUubW9kZWwmJihuKz0ibW9kZWw6e3ZhbHVlOiIrZS5tb2RlbC52YWx1ZSsiLGNhbGxiYWNrOiIrZS5tb2RlbC5jYWxsYmFjaysiLGV4cHJlc3Npb246IitlLm1vZGVsLmV4cHJlc3Npb24rIn0sIiksZS5pbmxpbmVUZW1wbGF0ZSl7dmFyIG89ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNoaWxkcmVuWzBdO2lmKG4mJjE9PT1uLnR5cGUpe3ZhciByPVBhKG4sdC5vcHRpb25zKTtyZXR1cm4iaW5saW5lVGVtcGxhdGU6e3JlbmRlcjpmdW5jdGlvbigpeyIrci5yZW5kZXIrIn0sc3RhdGljUmVuZGVyRm5zOlsiK3Iuc3RhdGljUmVuZGVyRm5zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24oKXsiK2UrIn0ifSkuam9pbigiLCIpKyJdfSJ9fShlLHQpO28mJihuKz1vKyIsIil9cmV0dXJuIG49bi5yZXBsYWNlKC8sJC8sIiIpKyJ9IixlLmR5bmFtaWNBdHRycyYmKG49Il9iKCIrbisnLCInK2UudGFnKyciLCcrR2EoZS5keW5hbWljQXR0cnMpKyIpIiksZS53cmFwRGF0YSYmKG49ZS53cmFwRGF0YShuKSksZS53cmFwTGlzdGVuZXJzJiYobj1lLndyYXBMaXN0ZW5lcnMobikpLG59ZnVuY3Rpb24gS2EoZSl7cmV0dXJuIDE9PT1lLnR5cGUmJigic2xvdCI9PT1lLnRhZ3x8ZS5jaGlsZHJlbi5zb21lKEthKSl9ZnVuY3Rpb24gSmEoZSx0KXt2YXIgbj1lLmF0dHJzTWFwWyJzbG90LXNjb3BlIl07aWYoZS5pZiYmIWUuaWZQcm9jZXNzZWQmJiFuKXJldHVybiBVYShlLHQsSmEsIm51bGwiKTtpZihlLmZvciYmIWUuZm9yUHJvY2Vzc2VkKXJldHVybiB6YShlLHQsSmEpO3ZhciByPWUuc2xvdFNjb3BlPT09Y2E\/IiI6U3RyaW5nKGUuc2xvdFNjb3BlKSxpPSJmdW5jdGlvbigiK3IrIil7cmV0dXJuICIrKCJ0ZW1wbGF0ZSI9PT1lLnRhZz9lLmlmJiZuPyIoIitlLmlmKyIpPyIrKHFhKGUsdCl8fCJ1bmRlZmluZWQiKSsiOnVuZGVmaW5lZCI6cWEoZSx0KXx8InVuZGVmaW5lZCI6UmEoZSx0KSkrIn0iLG89cj8iIjoiLHByb3h5OnRydWUiO3JldHVybiJ7a2V5OiIrKGUuc2xvdFRhcmdldHx8JyJkZWZhdWx0IicpKyIsZm46IitpK28rIn0ifWZ1bmN0aW9uIHFhKGUsdCxuLHIsaSl7dmFyIG89ZS5jaGlsZHJlbjtpZihvLmxlbmd0aCl7dmFyIGE9b1swXTtpZigxPT09by5sZW5ndGgmJmEuZm9yJiYidGVtcGxhdGUiIT09YS50YWcmJiJzbG90IiE9PWEudGFnKXt2YXIgcz1uP3QubWF5YmVDb21wb25lbnQoYSk\/IiwxIjoiLDAiOiIiO3JldHVybiIiKyhyfHxSYSkoYSx0KStzfXZhciBjPW4\/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MCxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWVbcl07aWYoMT09PWkudHlwZSl7aWYoV2EoaSl8fGkuaWZDb25kaXRpb25zJiZpLmlmQ29uZGl0aW9ucy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBXYShlLmJsb2NrKX0pKXtuPTI7YnJlYWt9KHQoaSl8fGkuaWZDb25kaXRpb25zJiZpLmlmQ29uZGl0aW9ucy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUuYmxvY2spfSkpJiYobj0xKX19cmV0dXJuIG59KG8sdC5tYXliZUNvbXBvbmVudCk6MCx1PWl8fFphO3JldHVybiJbIitvLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdShlLHQpfSkuam9pbigiLCIpKyJdIisoYz8iLCIrYzoiIil9fWZ1bmN0aW9uIFdhKGUpe3JldHVybiB2b2lkIDAhPT1lLmZvcnx8InRlbXBsYXRlIj09PWUudGFnfHwic2xvdCI9PT1lLnRhZ31mdW5jdGlvbiBaYShlLHQpe3JldHVybiAxPT09ZS50eXBlP1JhKGUsdCk6Mz09PWUudHlwZSYmZS5pc0NvbW1lbnQ\/KHI9ZSwiX2UoIitKU09OLnN0cmluZ2lmeShyLnRleHQpKyIpIik6Il92KCIrKDI9PT0obj1lKS50eXBlP24uZXhwcmVzc2lvbjpYYShKU09OLnN0cmluZ2lmeShuLnRleHQpKSkrIikiO3ZhciBuLHJ9ZnVuY3Rpb24gR2EoZSl7Zm9yKHZhciB0PSIiLG49IiIscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdLG89WGEoaS52YWx1ZSk7aS5keW5hbWljP24rPWkubmFtZSsiLCIrbysiLCI6dCs9JyInK2kubmFtZSsnIjonK28rIiwifXJldHVybiB0PSJ7Iit0LnNsaWNlKDAsLTEpKyJ9IixuPyJfZCgiK3QrIixbIituLnNsaWNlKDAsLTEpKyJdKSI6dH1mdW5jdGlvbiBYYShlKXtyZXR1cm4gZS5yZXBsYWNlKC9cdTIwMjgvZywiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCJcXHUyMDI5Iil9bmV3IFJlZ0V4cCgiXFxiIisiZG8saWYsZm9yLGxldCxuZXcsdHJ5LHZhcixjYXNlLGVsc2Usd2l0aCxhd2FpdCxicmVhayxjYXRjaCxjbGFzcyxjb25zdCxzdXBlcix0aHJvdyx3aGlsZSx5aWVsZCxkZWxldGUsZXhwb3J0LGltcG9ydCxyZXR1cm4sc3dpdGNoLGRlZmF1bHQsZXh0ZW5kcyxmaW5hbGx5LGNvbnRpbnVlLGRlYnVnZ2VyLGZ1bmN0aW9uLGFyZ3VtZW50cyIuc3BsaXQoIiwiKS5qb2luKCJcXGJ8XFxiIikrIlxcYiIpO2Z1bmN0aW9uIFlhKGUsdCl7dHJ5e3JldHVybiBuZXcgRnVuY3Rpb24oZSl9Y2F0Y2gobil7cmV0dXJuIHQucHVzaCh7ZXJyOm4sY29kZTplfSksU319ZnVuY3Rpb24gUWEoZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZnVuY3Rpb24obixyLGkpeyhyPUEoe30scikpLndhcm47ZGVsZXRlIHIud2Fybjt2YXIgbz1yLmRlbGltaXRlcnM\/U3RyaW5nKHIuZGVsaW1pdGVycykrbjpuO2lmKHRbb10pcmV0dXJuIHRbb107dmFyIGE9ZShuLHIpLHM9e30sYz1bXTtyZXR1cm4gcy5yZW5kZXI9WWEoYS5yZW5kZXIsYykscy5zdGF0aWNSZW5kZXJGbnM9YS5zdGF0aWNSZW5kZXJGbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBZYShlLGMpfSksdFtvXT1zfX12YXIgZXMsdHMsbnM9KGVzPWZ1bmN0aW9uKGUsdCl7dmFyIG49bGEoZS50cmltKCksdCk7ITEhPT10Lm9wdGltaXplJiZrYShuLHQpO3ZhciByPVBhKG4sdCk7cmV0dXJue2FzdDpuLHJlbmRlcjpyLnJlbmRlcixzdGF0aWNSZW5kZXJGbnM6ci5zdGF0aWNSZW5kZXJGbnN9fSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7dmFyIHI9T2JqZWN0LmNyZWF0ZShlKSxpPVtdLG89W107aWYobilmb3IodmFyIGEgaW4gbi5tb2R1bGVzJiYoci5tb2R1bGVzPShlLm1vZHVsZXN8fFtdKS5jb25jYXQobi5tb2R1bGVzKSksbi5kaXJlY3RpdmVzJiYoci5kaXJlY3RpdmVzPUEoT2JqZWN0LmNyZWF0ZShlLmRpcmVjdGl2ZXN8fG51bGwpLG4uZGlyZWN0aXZlcykpLG4pIm1vZHVsZXMiIT09YSYmImRpcmVjdGl2ZXMiIT09YSYmKHJbYV09blthXSk7ci53YXJuPWZ1bmN0aW9uKGUsdCxuKXsobj9vOmkpLnB1c2goZSl9O3ZhciBzPWVzKHQudHJpbSgpLHIpO3JldHVybiBzLmVycm9ycz1pLHMudGlwcz1vLHN9cmV0dXJue2NvbXBpbGU6dCxjb21waWxlVG9GdW5jdGlvbnM6UWEodCl9fSkoQ2EpLHJzPShucy5jb21waWxlLG5zLmNvbXBpbGVUb0Z1bmN0aW9ucyk7ZnVuY3Rpb24gaXMoZSl7cmV0dXJuKHRzPXRzfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPWU\/JzxhIGhyZWY9IlxuIi8+JzonPGRpdiBhPSJcbiIvPicsdHMuaW5uZXJIVE1MLmluZGV4T2YoIiYjMTA7Iik+MH12YXIgb3M9ISF6JiZpcyghMSksYXM9ISF6JiZpcyghMCksc3M9ZyhmdW5jdGlvbihlKXt2YXIgdD1ZbihlKTtyZXR1cm4gdCYmdC5pbm5lckhUTUx9KSxjcz13bi5wcm90b3R5cGUuJG1vdW50O3JldHVybiB3bi5wcm90b3R5cGUuJG1vdW50PWZ1bmN0aW9uKGUsdCl7aWYoKGU9ZSYmWW4oZSkpPT09ZG9jdW1lbnQuYm9keXx8ZT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudClyZXR1cm4gdGhpczt2YXIgbj10aGlzLiRvcHRpb25zO2lmKCFuLnJlbmRlcil7dmFyIHI9bi50ZW1wbGF0ZTtpZihyKWlmKCJzdHJpbmciPT10eXBlb2YgcikiIyI9PT1yLmNoYXJBdCgwKSYmKHI9c3MocikpO2Vsc2V7aWYoIXIubm9kZVR5cGUpcmV0dXJuIHRoaXM7cj1yLmlubmVySFRNTH1lbHNlIGUmJihyPWZ1bmN0aW9uKGUpe2lmKGUub3V0ZXJIVE1MKXJldHVybiBlLm91dGVySFRNTDt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChlLmNsb25lTm9kZSghMCkpLHQuaW5uZXJIVE1MfShlKSk7aWYocil7dmFyIGk9cnMocix7b3V0cHV0U291cmNlUmFuZ2U6ITEsc2hvdWxkRGVjb2RlTmV3bGluZXM6b3Msc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOmFzLGRlbGltaXRlcnM6bi5kZWxpbWl0ZXJzLGNvbW1lbnRzOm4uY29tbWVudHN9LHRoaXMpLG89aS5yZW5kZXIsYT1pLnN0YXRpY1JlbmRlckZucztuLnJlbmRlcj1vLG4uc3RhdGljUmVuZGVyRm5zPWF9fXJldHVybiBjcy5jYWxsKHRoaXMsZSx0KX0sd24uY29tcGlsZT1ycyx3bn0pOwovKiogL2pzL3Z1ZS92dWUtdGhlLW1hc2suanMgKiovCnZhciBfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MzgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDI0LTAxLTMxIDE0OjMzOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIzLTAxLTEyIDExOjQwOjU1IjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIzLTAxLTEyIDEwOjUwOjQxIjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIxLTEyLTE1IDEyOjUxOjI0IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihoLGMpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9YygpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFtdLGMpOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLlZ1ZVRoZU1hc2s9YygpOmguVnVlVGhlTWFzaz1jKCl9KSh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGgpe2Z1bmN0aW9uIGMoZCl7aWYoYVtkXSlyZXR1cm4gYVtkXS5leHBvcnRzO3ZhciBlPWFbZF09e2k6ZCxsOiExLGV4cG9ydHM6e319O3JldHVybiBoW2RdLmNhbGwoZS5leHBvcnRzLGUsZS5leHBvcnRzLGMpLGUubD0hMCxlLmV4cG9ydHN9dmFyIGE9e307cmV0dXJuIGMubT1oLGMuYz1hLGMuaT1mdW5jdGlvbihkKXtyZXR1cm4gZH0sYy5kPWZ1bmN0aW9uKGQsZSxsKXtjLm8oZCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZSx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsCmdldDpsfSl9LGMubj1mdW5jdGlvbihkKXt2YXIgZT1kJiZkLl9fZXNNb2R1bGU\/ZnVuY3Rpb24oKXtyZXR1cm4gZC5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBkfTtyZXR1cm4gYy5kKGUsImEiLGUpLGV9LGMubz1mdW5jdGlvbihkLGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxlKX0sYy5wPSIuIixjKGMucz0xMCl9KFtmdW5jdGlvbihoLGMpe2guZXhwb3J0cz17IiMiOntwYXR0ZXJuOi9cZC99LFg6e3BhdHRlcm46L1swLTlhLXpBLVpdL30sUzp7cGF0dGVybjovW2EtekEtWl0vfSxBOntwYXR0ZXJuOi9bYS16QS1aXS8sdHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvTG9jYWxlVXBwZXJDYXNlKCl9fSxhOntwYXR0ZXJuOi9bYS16QS1aXS8sdHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvTG9jYWxlTG93ZXJDYXNlKCl9fSwiISI6e2VzY2FwZTohMH19fSxmdW5jdGlvbihoLGMsYSl7ZnVuY3Rpb24gZChiKXt2YXIgZj0KZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIGYuaW5pdEV2ZW50KGIsITAsITApLGZ9dmFyIGU9YSgyKTtoPWEoMCk7dmFyIGw9YS5uKGgpO2MuYT1mdW5jdGlvbihiLGYpe3ZhciBnPWYudmFsdWU7aWYoKEFycmF5LmlzQXJyYXkoZyl8fCJzdHJpbmciPT10eXBlb2YgZykmJihnPXttYXNrOmcsdG9rZW5zOmwuYX0pLCJJTlBVVCIhPT1iLnRhZ05hbWUudG9Mb2NhbGVVcHBlckNhc2UoKSl7Zj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpO2lmKDEhPT1mLmxlbmd0aCl0aHJvdyBFcnJvcigidi1tYXNrIGRpcmVjdGl2ZSByZXF1aXJlcyAxIGlucHV0LCBmb3VuZCAiK2YubGVuZ3RoKTtiPWZbMF19Yi5vbmlucHV0PWZ1bmN0aW9uKG0pe2lmKG0uaXNUcnVzdGVkKXt2YXIgaz1iLnNlbGVjdGlvbkVuZDttPWIudmFsdWVbay0xXTtmb3IoYi52YWx1ZT1hLmkoZS5hKShiLnZhbHVlLGcubWFzaywhMCxnLnRva2Vucyk7azxiLnZhbHVlLmxlbmd0aCYmYi52YWx1ZS5jaGFyQXQoay0KMSkhPT1tOylrKys7Yj09PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihiLnNldFNlbGVjdGlvblJhbmdlKGssayksc2V0VGltZW91dChmdW5jdGlvbigpe2Iuc2V0U2VsZWN0aW9uUmFuZ2UoayxrKX0sMCkpO2IuZGlzcGF0Y2hFdmVudChkKCJpbnB1dCIpKX19O2Y9YS5pKGUuYSkoYi52YWx1ZSxnLm1hc2ssITAsZy50b2tlbnMpO2YhPT1iLnZhbHVlJiYoYi52YWx1ZT1mLGIuZGlzcGF0Y2hFdmVudChkKCJpbnB1dCIpKSl9fSxmdW5jdGlvbihoLGMsYSl7dmFyIGQ9YSg2KSxlPWEoNSk7Yy5hPWZ1bmN0aW9uKGwsYil7dmFyIGY9ISgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxnPWFyZ3VtZW50c1szXTtyZXR1cm4gQXJyYXkuaXNBcnJheShiKT9hLmkoZS5hKShkLmEsYixnKShsLGIsZixnKTphLmkoZC5hKShsLGIsZixnKX19LGZ1bmN0aW9uKGgsYyxhKXtmdW5jdGlvbiBkKGcpe2cuY29tcG9uZW50KGIuYS5uYW1lLGIuYSk7CmcuZGlyZWN0aXZlKCJtYXNrIixsLmEpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtoPWEoMCk7dmFyIGU9YS5uKGgpLGw9YSgxKTtoPWEoNyk7dmFyIGI9YS5uKGgpO2EuZChjLCJUaGVNYXNrIixmdW5jdGlvbigpe3JldHVybiBiLmF9KTthLmQoYywibWFzayIsZnVuY3Rpb24oKXtyZXR1cm4gbC5hfSk7YS5kKGMsInRva2VucyIsZnVuY3Rpb24oKXtyZXR1cm4gZS5hfSk7YS5kKGMsInZlcnNpb24iLGZ1bmN0aW9uKCl7cmV0dXJuIGZ9KTt2YXIgZj0iMC4xMS4xIjtjLmRlZmF1bHQ9ZDsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LlZ1ZSYmd2luZG93LlZ1ZS51c2UoZCl9LGZ1bmN0aW9uKGgsYyxhKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7aD1hKDEpO3ZhciBkPWEoMCksZT1hLm4oZCksbD1hKDIpO2MuZGVmYXVsdD17bmFtZToiVGhlTWFzayIscHJvcHM6e3ZhbHVlOltTdHJpbmcsCk51bWJlcl0sbWFzazp7dHlwZTpbU3RyaW5nLEFycmF5XSxyZXF1aXJlZDohMH0sbWFza2VkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sdG9rZW5zOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuYX19fSxkaXJlY3RpdmVzOnttYXNrOmguYX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntsYXN0VmFsdWU6bnVsbCxkaXNwbGF5OnRoaXMudmFsdWV9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24oYil7YiE9PXRoaXMubGFzdFZhbHVlJiYodGhpcy5kaXNwbGF5PWIpfSxtYXNrZWQ6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2godGhpcy5kaXNwbGF5KX19LGNvbXB1dGVkOntjb25maWc6ZnVuY3Rpb24oKXtyZXR1cm57bWFzazp0aGlzLm1hc2ssdG9rZW5zOnRoaXMudG9rZW5zLG1hc2tlZDp0aGlzLm1hc2tlZH19fSxtZXRob2RzOntvbklucHV0OmZ1bmN0aW9uKGIpe2IuaXNUcnVzdGVkfHx0aGlzLnJlZnJlc2goYi50YXJnZXQudmFsdWUpfSxyZWZyZXNoOmZ1bmN0aW9uKGIpe3RoaXMuZGlzcGxheT0KYjtiPWEuaShsLmEpKGIsdGhpcy5tYXNrLHRoaXMubWFza2VkLHRoaXMudG9rZW5zKTtiIT09dGhpcy5sYXN0VmFsdWUmJih0aGlzLmxhc3RWYWx1ZT1iLHRoaXMuJGVtaXQoImlucHV0IixiKSl9fX19LGZ1bmN0aW9uKGgsYyxhKXtjLmE9ZnVuY3Rpb24oZCxlLGwpe3JldHVybiBlPWUuc29ydChmdW5jdGlvbihiLGYpe3JldHVybiBiLmxlbmd0aC1mLmxlbmd0aH0pLGZ1bmN0aW9uKGIsZil7Zm9yKHZhciBnPSEoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sbT0wO208ZS5sZW5ndGg7KXt2YXIgaz1lW21dO20rKzt2YXIgbj1lW21dO2lmKCEobiYmZChiLG4sITAsbCkubGVuZ3RoPmsubGVuZ3RoKSlyZXR1cm4gZChiLGssZyxsKX1yZXR1cm4iIn19fSxmdW5jdGlvbihoLGMsYSl7Yy5hPWZ1bmN0aW9uKGQsZSl7dmFyIGw9ISgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxiPQphcmd1bWVudHNbM107ZD1kfHwiIjtlPWV8fCIiO2Zvcih2YXIgZj0wLGc9MCxtPSIiO2Y8ZS5sZW5ndGgmJmc8ZC5sZW5ndGg7KXt2YXIgaz1lW2ZdLG49YltrXSxwPWRbZ107biYmIW4uZXNjYXBlPyhuLnBhdHRlcm4udGVzdChwKSYmKG0rPW4udHJhbnNmb3JtP24udHJhbnNmb3JtKHApOnAsZisrKSxnKyspOihuJiZuLmVzY2FwZSYmKGYrKyxrPWVbZl0pLGwmJihtKz1rKSxwPT09ayYmZysrLGYrKyl9Zm9yKGc9IiI7ZjxlLmxlbmd0aCYmbDspe2s9ZVtmXTtpZihiW2tdKXtnPSIiO2JyZWFrfWcrPWs7ZisrfXJldHVybiBtK2d9fSxmdW5jdGlvbihoLGMsYSl7Yz1hKDgpKGEoNCksYSg5KSxudWxsLG51bGwpO2guZXhwb3J0cz1jLmV4cG9ydHN9LGZ1bmN0aW9uKGgsYyl7aC5leHBvcnRzPWZ1bmN0aW9uKGEsZCxlLGwpe3ZhciBiLGY9YT1hfHx7fSxnPXR5cGVvZiBhLmRlZmF1bHQ7Im9iamVjdCIhPT1nJiYiZnVuY3Rpb24iIT09Z3x8KGI9YSxmPWEuZGVmYXVsdCk7YT0iZnVuY3Rpb24iPT0KdHlwZW9mIGY\/Zi5vcHRpb25zOmY7aWYoZCYmKGEucmVuZGVyPWQucmVuZGVyLGEuc3RhdGljUmVuZGVyRm5zPWQuc3RhdGljUmVuZGVyRm5zKSxlJiYoYS5fc2NvcGVJZD1lKSxsKXt2YXIgbT1hLmNvbXB1dGVkfHwoYS5jb21wdXRlZD17fSk7T2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihrKXt2YXIgbj1sW2tdO21ba109ZnVuY3Rpb24oKXtyZXR1cm4gbn19KX1yZXR1cm57ZXNNb2R1bGU6YixleHBvcnRzOmYsb3B0aW9uczphfX19LGZ1bmN0aW9uKGgsYyl7aC5leHBvcnRzPXtyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRjcmVhdGVFbGVtZW50O3JldHVybih0aGlzLl9zZWxmLl9jfHxhKSgiaW5wdXQiLHtkaXJlY3RpdmVzOlt7bmFtZToibWFzayIscmF3TmFtZToidi1tYXNrIix2YWx1ZTp0aGlzLmNvbmZpZyxleHByZXNzaW9uOiJjb25maWcifV0sYXR0cnM6e3R5cGU6InRleHQifSxkb21Qcm9wczp7dmFsdWU6dGhpcy5kaXNwbGF5fSxvbjp7aW5wdXQ6dGhpcy5vbklucHV0fX0pfSwKc3RhdGljUmVuZGVyRm5zOltdfX0sZnVuY3Rpb24oaCxjLGEpe2guZXhwb3J0cz1hKDMpfV0pfSk7Ci8qKiAvanMvZmluYW5jZV9tdWx0aXN0ZXAuanMgKiovCnZhciBfX19kMmNfZmluYW5jZW11bHRpc3RlcGpzX2Nfb249IjIwMjYtMDMtMDYgMDk6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYixoLG0pe2lmKGI9PUFycmF5LnByb3RvdHlwZXx8Yj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYjtiW2hdPW0udmFsdWU7cmV0dXJuIGJ9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihiKXtiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYiwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGg9MDtoPGIubGVuZ3RoOysraCl7dmFyIG09YltoXTtpZihtJiZtLk1hdGg9PU1hdGgpcmV0dXJuIG19dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihiLGgpe3ZhciBtPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdO2lmKG51bGw9PW0pcmV0dXJuIGJbaF07bT1iW21dO3JldHVybiB2b2lkIDAhPT1tP206YltoXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihiLGgsbSxuKXtoJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYixoLG0sbik6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYixoLG0sbikpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYixoLG0sbil7bT0kanNjb21wLmdsb2JhbDtiPWIuc3BsaXQoIi4iKTtmb3Iobj0wO248Yi5sZW5ndGgtMTtuKyspe3ZhciBxPWJbbl07aWYoIShxIGluIG0pKXJldHVybjttPW1bcV19Yj1iW2IubGVuZ3RoLTFdO249bVtiXTtoPWgobik7aCE9biYmbnVsbCE9aCYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShtLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYixoLG0sbil7dmFyIHE9Yi5zcGxpdCgiLiIpO2I9MT09PXEubGVuZ3RoO249cVswXTtuPSFiJiZuIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgdj0wO3Y8cS5sZW5ndGgtMTt2Kyspe3ZhciB5PXFbdl07aWYoISh5IGluIG4pKXJldHVybjtuPW5beV19cT1xW3EubGVuZ3RoLTFdO209JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PW0\/bltxXTpudWxsO2g9aChtKTtudWxsIT1oJiYoYj8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLHEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSk6aCE9PW0mJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtxXSYmKG09MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW3FdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKHEpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK20rIiQiK3EpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkobiwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtxXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGI9e2E6ITB9LGg9e307dHJ5e3JldHVybiBoLl9fcHJvdG9fXz1iLGguYX1jYXRjaChtKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGIsaCl7Yi5fX3Byb3RvX189aDtpZihiLl9fcHJvdG9fXyE9PWgpdGhyb3cgbmV3IFR5cGVFcnJvcihiKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYn06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGIpe3ZhciBoPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGg8Yi5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YltoKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYil7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChiKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihiKXt2YXIgaD0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGg\/aC5jYWxsKGIpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihiKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYil7aWYoIShiIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitiKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLnlpZWxkUmVzdWx0PWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246Yixpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYixoKXt0aGlzLm5leHRBZGRyZXNzPWg7cmV0dXJue3ZhbHVlOmJ9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihiLGgpe2I9JGpzY29tcC5tYWtlSXRlcmF0b3IoYik7dmFyIG09Yi5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8obSk7aWYobS5kb25lKXRoaXMueWllbGRSZXN1bHQ9bS52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWg7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1iLHRoaXMueWllbGQobS52YWx1ZSxoKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihiKXt0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIsaCl7dGhpcy5jYXRjaEFkZHJlc3NfPWI7dm9pZCAwIT1oJiYodGhpcy5maW5hbGx5QWRkcmVzc189aCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGIsaCl7dGhpcy5uZXh0QWRkcmVzcz1iO3RoaXMuY2F0Y2hBZGRyZXNzXz1ofHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO2I9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGgsbSl7bT90aGlzLmZpbmFsbHlDb250ZXh0c19bbV09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWh8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGgpe2g9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShofHwwKVswXTtpZihoPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8aCl7aWYoaC5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1oLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188aC5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9aC5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihiKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihiKXt0aGlzLm9iamVjdF89Yjt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgaCBpbiBiKXRoaXMucHJvcGVydGllc18ucHVzaChoKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGI9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihiIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYn1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89Yn07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGg9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihoKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBoP2hbInJldHVybiJdOmZ1bmN0aW9uKG0pe3JldHVybnt2YWx1ZTptLGRvbmU6ITB9fSxiLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGIsaCxtKXt0cnl7dmFyIG49Yi5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8saCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8obik7aWYoIW4uZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLG47dmFyIHE9bi52YWx1ZX1jYXRjaCh2KXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKHYpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO20uY2FsbCh0aGlzLmNvbnRleHRfLHEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGI9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihiKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goaCl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oaCl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2I9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYi5pc0V4Y2VwdGlvbil0aHJvdyBiLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6Yi5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWZ1bmN0aW9uKGgpe3JldHVybiBiLm5leHRfKGgpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGgpe3JldHVybiBiLnRocm93XyhoKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oaCl7cmV0dXJuIGIucmV0dXJuXyhoKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYixoKXtoPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGgpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZiLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihoLGIucHJvdG90eXBlKTtyZXR1cm4gaH07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihiKXtmdW5jdGlvbiBoKG4pe3JldHVybiBiLm5leHQobil9ZnVuY3Rpb24gbShuKXtyZXR1cm4gYi50aHJvdyhuKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obixxKXtmdW5jdGlvbiB2KHkpe3kuZG9uZT9uKHkudmFsdWUpOlByb21pc2UucmVzb2x2ZSh5LnZhbHVlKS50aGVuKGgsbSkudGhlbih2LHEpfXYoYi5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYigpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKSl9OwpmdW5jdGlvbiBpbml0aWFsaXplRmluYW5jZU11bHRpU3RlcChiKXtmdW5jdGlvbiBoKGQpe3N3aXRjaChkKXtjYXNlICJFbWFpbCBwcm92aWRlZCI6Y2FzZSAiUGhvbmUgcHJvdmlkZWQiOk98fCgkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikudHJpZ2dlcigicG9wdXBpemVyLnN1Ym1pdHRlZCIpLE89ITApfSJmdW5jdGlvbiI9PT10eXBlb2YgZ2FUcmFjayYmZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJVc2VkLVNSUC1GaW5hbmNlLVBvcHVwIixkLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpfWZ1bmN0aW9uIG0oZCl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEJhbm5lclNlYXJjaEJhck1ha2VzP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3R5cGU6ZC50b0xvd2VyQ2FzZSgpfSxzdWNjZXNzOmZ1bmN0aW9uKGMpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcE1ha2Ugb3B0aW9uOmZpcnN0IiwKYilbMF0ub3V0ZXJIVE1MKTskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChjLGZ1bmN0aW9uKGUsZil7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrZi5tYWtlKyciPicrZi50aXRsZTIrIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24gbihkLGMpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRCYW5uZXJTZWFyY2hCYXJNb2RlbHM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7bWFrZTpidG9hKGMpLHR5cGU6ZC50b0xvd2VyQ2FzZSgpfSxzdWNjZXNzOmZ1bmN0aW9uKGUpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLApiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChlLGZ1bmN0aW9uKGYsZyl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtbW9kZWw9IicrZy5tb2RlbE5hbWUrJyIgZGF0YS15ZWFyPSInK2cueWVhcisnIiB2YWx1ZT0iJytnLnRpdGxlMisnIj4nK2cudGl0bGUyKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIHEoZCxjLGUpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXROZXdUcmltcz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnttYWtlOmQsbW9kZWw6Yyx5ZWFyOmV9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIiwKYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChmLGZ1bmN0aW9uKGcsbCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1wcmljZT0iJytsLnByaWNlKyciIGRhdGEtc3R5bGVpZD0iJytsLnN0eWxlaWQrJyIgdmFsdWU9IicrbC50cmltKyciPicrbC50cmltKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIHYoZCxjKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0SW52ZW50b3J5VHJpbXM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7bWFrZTpkLG1vZGVsOmN9LHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGUsZnVuY3Rpb24oZixnKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLApiKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1wcmljZT0iJytnLm9yaWdpbmFscHJpY2UrJyIgZGF0YS12ZWhpY2xlaWQ9IicrZy52ZWhpY2xlaWQrJyIgZGF0YS15ZWFyPSInK2cueWVhcisnIiBkYXRhLWlzbmV3PSInK2cuaXNuZXcrJyIgZGF0YS1pc2RlbW89IicrZy5kZW1vKyciIGRhdGEtc3RvY2tudW1iZXI9IicrZy5zdG9ja251bWJlcisnIiBkYXRhLW1pbGVhZ2U9IicrZy5taWxlYWdlKyciIGRhdGEtc3R5bGVpZD0iJytnLnN0eWxlaWQrJyIgdmFsdWU9IicrZy50cmltKyciPicrZy50aXRsZSsiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiB5KGQpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRVc2VkQ2FsY3VsYXRvckhUTUw\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7Y2FyaWQ6ZH0sc3VjY2VzczpmdW5jdGlvbihjKXtjLnZhbGlkPygkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5odG1sKGMuaHRtbCksCiQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLmZpbmQoIi5jYWxjLWZvcm0iKS5maW5kKCIudXNlZENhbGN1bGF0b3JEb3duUGF5bWVudCIpLmFmdGVyKCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3JUcmFkZUluIixiKS5odG1sKCkpLFYoKSwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS5hdHRyKCJtYXgiLGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5zaG93KCkpOihhLmZvcm1kYXRhLm5vUGF5bWVudD0hMCwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5oaWRlKCksYS5uZXh0KCEwKSl9fSl9ZnVuY3Rpb24gVigpeyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50Iikub24oImJsdXIiLApmdW5jdGlvbigpe0MoKX0pOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm5vT2ZNb250aHMiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBkPSQodGhpcykuZmluZCgib3B0aW9uOnNlbGVjdGVkIik7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW50ZXJlc3RyYXRlIikudmFsKGQuYXR0cigiZGF0YS1yYXRlIikpO0MoKX0pOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRGcmVxdWVuY3kiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe0MoKX0pO0MoKX1mdW5jdGlvbiBDKCl7dmFyIGQ9cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnRlcmVzdHJhdGUiLGIpLnZhbCgpLnJlcGxhY2UoIiwiLCIuIikpLnRvRml4ZWQoMikvMTAwLGM9cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5ub09mTW9udGhzIixiKS52YWwoKSkvMTIsZT1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmxvYW5hbW91bnQiLApiKS52YWwoKSkudG9GaXhlZCgyKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5mZWVhbW91bnQiLGIpLmxlbmd0aCYmKGU9cGFyc2VGbG9hdChlKStwYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmZlZWFtb3VudCIsYikudmFsKCkucmVwbGFjZSgiLCIsIiIpKSk7MT09JCgiI3VzZXRheGVzIixiKS52YWwoKSYmKGUqPXBhcnNlRmxvYXQoJCgiI3RheGVzIikudmFsKCkpLnRvRml4ZWQoMikvMTAwKzEpOzA8JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiLGIpLnZhbCgpJiYoZS09cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIsYikudmFsKCkpLnRvRml4ZWQoMikpO3ZhciBmPSIiLGc9MTI7c3dpdGNoKCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRGcmVxdWVuY3kiLGIpLnZhbCgpKXtjYXNlICJ3ZWVrIjpnPQo1MjtmPSQoIiN3ZWVrVGV4dCIpLnZhbCgpO2JyZWFrO2Nhc2UgIjJ3ZWVrcyI6Zz0yNjtmPSQoIiMyd2Vla3NUZXh0IikudmFsKCk7YnJlYWs7Y2FzZSAibW9udGhseSI6Zj0kKCIjbW9udGhseVRleHQiKS52YWwoKTtnPTEyO2JyZWFrO2Nhc2UgImJpbW9udGhseSI6Zj0kKCIjYmltb250aGx5VGV4dCIpLnZhbCgpLGc9MjR9Yyo9ZzswPGQ\/KGQvPWcsZz1NYXRoLnBvdyhkKzEsYyksZSo9ZCpnLyhnLTEpKTplLz1jO2U9TWF0aC5yb3VuZCgxMDAqZSkvMTAwO2lzTmFOKGUpJiYoZT0wKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5vdXRwdXRwcmljZSIsYikudmFsKCIkIitlKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5vdXRwdXRwcmljZS10eHQiLGIpLmh0bWwoIiQiK2UpO2Y9JCgiI2VzdGltZGF0ZWRQYXltZW50VGV4dCIsYikudmFsKCkucmVwbGFjZSgiIyNGUkVRVUVOQ1kjIyIsZik7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZXN0aW1hdGVkVGV4dCIsCmIpLmh0bWwoIjxzdHJvbmc+IitmKyI8L3N0cm9uZz4iKTtmPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkZpbmFuY2VtZW50IjoiRmluYW5jaW5nIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlPWY7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9ImZpbmFuY2luZyI7YS5mb3JtZGF0YS5wYXltZW50VGVybT0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5ub09mTW9udGhzIixiKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT1lO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50IixiKS52YWwoKXx8MDthLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50RnJlcXVlbmN5IixiKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRSYXRlPSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmludGVyZXN0cmF0ZSIsCmIpLnZhbCgpO2EuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5sb2FuYW1vdW50IixiKS52YWwoKSk7Zj1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5mZWVhbW91bnQiLGIpLnZhbCgpLnJlcGxhY2UoIiwiLCIiKSk7YS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5sb2FuYW1vdW50IixiKS52YWwoKSkrZjthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT1mO2suY2hlY2tWYWxpZGl0eSgpfWZ1bmN0aW9uIFAoKXsiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpJiYoJChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCksJChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLnNob3coKSwkKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmh0bWwoIiIpLAokKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmhpZGUoKSk7aWYoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIpJiYiIj09JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikudmFsKCkpe3ZhciBkPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIpKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwoZC5tYWtlKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTW9kZWxdIikudmFsKGQubW9kZWwpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5ZZWFyXSIpLnZhbChkLnllYXIpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5UcmltXSIpLnZhbChkLnRyaW0pOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5WYWx1ZV0iKS52YWwoZC52YWx1ZSk7X2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikmJihkPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikpLAokKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVmFsdWVdIikuYXR0cigiZGF0YS1jdXJyZW50IixkLnZhbHVlKSl9YS5zaG93RXJyb3I9ITE7YS5wdXNoUGFydGlhbD0hMTtrLnNldERlcGFydG1lbnQoKTtrLnNldFRyYWRlSW4oKTtpZihrLnVzZXJJZCgpKSQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRGaW5hbmNlTXVsdGlzdGVwVXNlcklkQW5kRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOnt1c2VySWQ6ay51c2VySWQoKSxkb21haW46USxzaXRlSWQ6JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksZW1haWxIYW5kbGVySnNvbk9iamVjdDpKU09OLnN0cmluZ2lmeShIKX0sc3VjY2VzczpmdW5jdGlvbihnKXtnLklEfHwoZy5JRD0tMSk7ay51c2VySWQoZy5JRCk7Zy5kYXRhJiYoYS5mb3JtZGF0YT1KU09OLnBhcnNlKGcuZGF0YSkpOwoiIiE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmYS5mb3JtZGF0YS5maXJzdE5hbWUhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYoYS5mb3JtZGF0YS5maXJzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmYS5mb3JtZGF0YS5sYXN0TmFtZSE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmKGEuZm9ybWRhdGEubGFzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiZhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmKGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzPWVtYWlsSGFuZGxlci51c2VyRW1haWwpOwoiIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJmEuZm9ybWRhdGEucGhvbmVOdW1iZXIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJihhLmZvcm1kYXRhLnBob25lTnVtYmVyPWVtYWlsSGFuZGxlci51c2VyUGhvbmUsJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcikpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2Upe2xldCBsO2EuZm9ybWRhdGEuZmlyc3ROYW1lPW51bGwhPShsPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImZpcnN0bmFtZSIpKT9sOmEuZm9ybWRhdGEuZmlyc3ROYW1lO2xldCBwO2EuZm9ybWRhdGEubGFzdE5hbWU9bnVsbCE9KHA9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgibGFzdG5hbWUiKSk\/cDphLmZvcm1kYXRhLmxhc3ROYW1lO2xldCByO2EuZm9ybWRhdGEuZW1haWxBZGRyZXNzPQpudWxsIT0ocj1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJlbWFpbCIpKT9yOmEuZm9ybWRhdGEuZW1haWxBZGRyZXNzO2xldCB0O2EuZm9ybWRhdGEucGhvbmVOdW1iZXI9bnVsbCE9KHQ9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgicGhvbmUiKSk\/dDphLmZvcm1kYXRhLnBob25lTnVtYmVyOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsKGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpfTA9PWEuZm9ybWRhdGEuYWRkcmVzc195ZWFycyYmMD09YS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocyYmKGEuZm9ybWRhdGEuYWRkcmVzcz0iIik7Zy5zdGVwJiYoYS5zdGVwPU51bWJlcihnLnN0ZXApLGEubmV4dFN0ZXA9YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK2cuc3RlcF0pOyQoZG9jdW1lbnQpLnRyaWdnZXIoImNyZWRpdC5tdWx0aXN0ZXAuc2hvdyIpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5zaG93KCk7Cmsuc2V0Q3VycmVudE1ha2VNb2RlbFllYXIoKTtrLm9uU2hvd0Z1bmN0aW9uVG9SdW4oKTthLmZpcnN0U3RlcD0hMX0sY29tcGxldGU6ZnVuY3Rpb24oZyl7aWYoIWcuZGF0YSlyZXR1cm4gay51c2VySWQoLTEpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpLFAoKX19KTtlbHNle2EucHVzaFBhcnRpYWw9ITE7IiIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJihhLmZvcm1kYXRhLmZpcnN0TmFtZT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYoYS5mb3JtZGF0YS5sYXN0TmFtZT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lKTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJgooYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCk7IiIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYoYS5mb3JtZGF0YS5waG9uZU51bWJlcj1lbWFpbEhhbmRsZXIudXNlclBob25lLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsKGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlKXt2YXIgYzthLmZvcm1kYXRhLmZpcnN0TmFtZT1udWxsIT0oYz1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJmaXJzdG5hbWUiKSk\/YzphLmZvcm1kYXRhLmZpcnN0TmFtZTt2YXIgZTthLmZvcm1kYXRhLmxhc3ROYW1lPW51bGwhPShlPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImxhc3RuYW1lIikpP2U6YS5mb3JtZGF0YS5sYXN0TmFtZTt2YXIgZjthLmZvcm1kYXRhLmVtYWlsQWRkcmVzcz0KbnVsbCE9KGY9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiKSk\/ZjphLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztsZXQgZzthLmZvcm1kYXRhLnBob25lTnVtYmVyPW51bGwhPShnPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIikpP2c6YS5mb3JtZGF0YS5waG9uZU51bWJlcjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKX0kKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLmxlbmd0aCYmIiIhPSQoJyNtaW5pZm9ybSBbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJykudmFsKCkmJihhLmZvcm1kYXRhLm11bHRpRnJvbU1pbmk9ITApOyQoIiNtYXhfYnVkZ2V0IikubGVuZ3RoJiYoYS5wdXNoUGFydGlhbD0hMCxjPSIiLGU9cGFyc2VGbG9hdCgkKCIjbWF4X2J1ZGdldCIpLnZhbCgpLnJlcGxhY2UoL1teMC05Li1dKy9nLCIiKSksCmM9ay5nZXRDdXJyZW50QnVkZ2V0KGUpLCIxIj09dSYmaXNOYU4oZSkmJihjPSIiKSxhLmZvcm1kYXRhLmJ1ZGdldD1jKTskKCIudHJhY2stcHJvZ3Jlc3MiKS5sZW5ndGgmJihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidHJhZGVpbl9zdWJtaXRfZGF0YSIpJiYoYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nPSJGSU5BTkNFX0ZPUk1fQUxSRUFEWV9EUklWSU5HX1RSQURFIiksYz1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgicmV0YWlsX3RyYWNrX2RhdGEiKSwoYz1KU09OLnBhcnNlKGMpKSYmYy52YWx1ZSYmKGM9SlNPTi5wYXJzZShjLnZhbHVlKSkmJmMucGF5bWVudCYmYy5wYXltZW50LnBheW1lbnRWYWx1ZSYmKGU9Yy5wYXltZW50LnBheW1lbnRWYWx1ZSxjPWVbMF0sZT1lWzNdLGY9IiIsYz0ibW9udGhseSI9PWU\/cGFyc2VGbG9hdChjKToid2Vla2x5Ij09ZT81MipwYXJzZUZsb2F0KGMpLzEyOiJzZW1pbW9udGhseSI9PWU\/MjQqcGFyc2VGbG9hdChjKS8xMjoyNipwYXJzZUZsb2F0KGMpLwoxMixmPWsuZ2V0Q3VycmVudEJ1ZGdldChjKSxhLmZvcm1kYXRhLmJ1ZGdldD1mKSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW25hbWU9ImJ1ZGdldCJdK2xhYmVsJykuZm9yRWFjaChnPT57Zy5pbm5lckhUTUw9Zy5pbm5lckhUTUwucmVwbGFjZSgvKFwkXGR7Myw0fXxcZHszLDR9XCQpL2csbD0+RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UobC5yZXBsYWNlKC9cJC9nLCIiKSkpfSk7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcC5zaG93Iik7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnNob3coKTswPT1hLnN0ZXAmJigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuaGlkZSgpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vZmYoImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikub24oImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iLApmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXthLm5leHQoKX0sMUUzKX0pKTtrLnNldEN1cnJlbnRNYWtlTW9kZWxZZWFyKCl9fXZhciB6PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9DSEVDSyIpLnZhbCgpLEk9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpLEQ9JCgiI0FETUlOX01BTkRBVE9SWV9DUkVESVRfQlVSRUFVX0NIRUNLIikudmFsKCksQT0kKCIjQVNLX0ZPUl9TSU5fQ0hFQ0siKS52YWwoKSxPPSExLHU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzU2Vjb25kQ2hhbmNlIixiKS52YWwoKSx4PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpLEo9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzVndEUiIsYikudmFsKCksSz0xLEw9WzEsMiwzLDYsNywxMywxNCwxNV0sTT1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn1dLFI9W10sUz0KW3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZmlyc3ROYW1lIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJsYXN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5hbWUiLHZhbHVlOiIifV0sVD1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJhZGRyZXNzIn1dLEI9e3N0ZXAwOjEsc3RlcDE6MixzdGVwMjozLHN0ZXAzOiIwIj09ej80OiJiZWZvcmUiPT1JPzE5OjQsc3RlcDQ6IjAiPT16PzU6ImJlZm9yZSI9PUk\/NToxOSxzdGVwNTo2LHN0ZXA2Ojcsc3RlcDc6OCxzdGVwODo5LHN0ZXA5OjExLHN0ZXAxMDoxMSxzdGVwMTE6MTIsc3RlcDEyOjEzLHN0ZXAxMzoxNixzdGVwMTQ6MTYsc3RlcDE1OjE2LHN0ZXAxNjoxNyxzdGVwMTc6IjAiPT16PzE5OjA9PUQ\/IjAiPT1BPyIxIj09dT8yMzoiZG9uZSI6MjI6MjAsc3RlcDE4OiIwIj09ej8wPT1EPyIwIj09QT8iMSI9PXU\/MjM6ImRvbmUiOjIyOjIwOiJiZWZvcmUiPT1JPzQ6NSxzdGVwMTk6MTgsc3RlcDIwOiIwIj09CkE\/IjEiPT11PzIzOiJkb25lIjoyMixzdGVwMjI6IjEiPT11PzIzOiJkb25lIixzdGVwMjM6ImRvbmUifTtvcHRpb25hbFN0ZXBzPVtdOyIxIj09dSYmKG9wdGlvbmFsU3RlcHM9WzIzXSwiMCI9PUEmJihvcHRpb25hbFN0ZXBzPVsyMiwyM10pLEw9WzEsMiwzLDYsNywxNCwxNV0sTT1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWUiLHZhbHVlOiIifV0sQj17c3RlcDA6MSxzdGVwMToyLHN0ZXAyOjMsc3RlcDM6MTgsc3RlcDQ6MTksc3RlcDU6NixzdGVwNjo3LHN0ZXA3Ojgsc3RlcDg6OSxzdGVwOToyMixzdGVwMTA6MTEsc3RlcDExOjEyLHN0ZXAxMjoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LHN0ZXAxNToxNiwKc3RlcDE2OjIzLHN0ZXAxODo1LHN0ZXAxOToxMSxzdGVwMjA6ImRvbmUiLHN0ZXAyMjo0LHN0ZXAyMzowPT1EPyJkb25lIjoyMH0pOyIxIj09eCYmKG9wdGlvbmFsU3RlcHM9WzIyXSxLPTI0LEw9WzEsMiwzLDYsNywxNCwxNV0sTT1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mbyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8ifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm8iLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZSIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZUFkZHJlc3NFbXBsb3llciIsdmFsdWU6ImFkZHJlc3NFbXBsb3llciJ9XSxSPVt7ZnVuYzoidmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvIix2YWx1ZToiZW1wbG95bWVudEFkZGVkSW5mbzIifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm8yIix2YWx1ZToiIn0sCntmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lMiIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZUFkZHJlc3NFbXBsb3llcjIiLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIyIn1dLFM9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZmlyc3ROYW1lIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJsYXN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToidGl0bGUifSx7ZnVuYzoidmFsaWRhdGVOYW1lIix2YWx1ZToiIn1dLFQ9W3tmdW5jOiJ2YWxpZGF0ZUFkZHJlc3MiLHZhbHVlOiJhZGRyZXNzIn1dLEI9e3N0ZXAwOjI0LHN0ZXAyNDoyNSxzdGVwMjU6NCxzdGVwNDoxOSxzdGVwMTk6MTgsc3RlcDE4OjUsc3RlcDU6OCxzdGVwODo5LHN0ZXA5OjExLHN0ZXAxMToxMixzdGVwMTI6MTMsc3RlcDI3OjI4LHN0ZXAyODoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LHN0ZXAxNToxNixzdGVwMTY6MTcsc3RlcDE3OjIyLHN0ZXAyOToyMiwKc3RlcDIyOjA9PUQ\/MjY6MjAsc3RlcDIwOjI2LHN0ZXAyNjoiZG9uZSJ9LCIxIj09SiYmKEIuc3RlcDIyPTMwLEIuc3RlcDMwPSJkb25lIikpO3ZhciBhPW5ldyBWdWUoe2VsOiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKVswXSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2NvbnRleHQ6YixhamF4UHJvY2VzczohMSx1c2VySWQ6IiIsY29udmVyc2lvblN1Ym1pdHRlZDohMSxzaG93SWNvbjohMCxwdXNoUGFydGlhbDohMSxjdXJyZW50RGVwdDoiTkVXIixpbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0OiEwLHN0ZXA6MCxuZXh0U3RlcDpLLGZpcnN0U3RlcDohMCxjYWxjdWxhdG9yRnVuY3Rpb25zOiIiLGNyZWRpdERlY2lzaW9uSFRNTDoiIixmb3JtZGF0YTp7dmVoaWNsZVR5cGU6IiIsYnVkZ2V0OiIiLGN1cnJlbnRseURyaXZpbmc6IiIsZW1haWxBZGRyZXNzOiIiLGNyZWRpdFJhdGluZzoiIixkb3duT3B0aW9uczoiIixiaXJ0aGRhdGVZZWFyOiIiLGJpcnRoZGF0ZU1vbnRoOiIiLApiaXJ0aGRhdGVEYXk6IiIsYWRkcmVzczoiIixzcGxpdEFkZHJlc3M6W10sYWRkcmVzc195ZWFyczowLGFkZHJlc3NfbW9udGhzOjAsYWRkcmVzczI6IiIsc3BsaXRBZGRyZXNzMjpbXSxhZGRyZXNzMl95ZWFyczowLGFkZHJlc3MyX21vbnRoczowLGFkZHJlc3NFbXBsb3llcjoiIixzcGxpdEFkZHJlc3NFbXBsb3llcjpbXSxyZW50T3JPd246IiIsbW9udGhseVBheW1lbnQ6MCxlbXBsb3ltZW50U3RhdHVzOiIiLGVtcGxveW1lbnRBZGRlZEluZm86IiIsZW1wbG95ZXJOYW1lOiIiLGVtcGxveWVyUGhvbmU6IiIsZW1wbG95bWVudFN0YXR1c1llYXI6MCxlbXBsb3ltZW50U3RhdHVzTW9udGg6MCxlbXBsb3ltZW50QWRkZWRJbmZvMjoiIixlbXBsb3llck5hbWUyOiIiLGVtcGxveWVyUGhvbmUyOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyMjowLGVtcGxveW1lbnRTdGF0dXNNb250aDI6MCxhZGRyZXNzRW1wbG95ZXIyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyMjpbXSx3b3JraW5nV2hpbGVJblNjaG9vbDoiIiwKb3RoZXJFbXBsb3ltZW50U3RhdHVzOiIiLG1vbnRobHlJbmNvbWU6MCxtb250aGx5SW5jb21lX3llYXJzOjAsbW9udGhseUluY29tZV9tb250aHM6MCx0aXRsZToiIixmaXJzdE5hbWU6IiIsbGFzdE5hbWU6IiIscGhvbmVOdW1iZXI6IiIsY3VycmVudE1ha2U6IiIsY3VycmVudE1vZGVsOiIiLGN1cnJlbnRNb2RlbFRleHQ6IiIsY3VycmVudFllYXI6IiIsY3VycmVudFN0b2NrTnVtYmVyOiIiLGN1cnJlbnRNaWxlYWdlOjEwLGN1cnJlbnRUcmltOiIiLGN1cnJlbnRTdHlsZWlkOiIiLGN1cnJlbnRDYXJJZDoiIixwYXltZW50VHlwZToiIixwYXltZW50VHlwZVJlYWw6IiIscGF5bWVudFRlcm06IiIscGF5bWVudFJhdGVUeXBlOiIiLHBheW1lbnRWYWx1ZToiIixiYXNlcGF5bWVudDoiIixwYXltZW50VG90YWxJbmNlbnRpdmU6MCxwYXltZW50VG90YWxGZWU6MCxwYXltZW50R1NUOjAscGF5bWVudEhTVDowLHBheW1lbnRQU1Q6MCxwYXltZW50RG93blBheW1lbnQ6MCxwYXltZW50S21BbGxvd2FuY2U6MCwKcGF5bWVudEludGVydmFsOiIiLHBheW1lbnRSYXRlOiIiLHBheW1lbnRSZXNpZHVhbFZhbHVlOjAsbm9QYXltZW50OiExLG11bHRpX2RlYWxlcl9zZW5kVG86IiIsY3JlZGl0QnVyZWF1Q3JlZGl0OiJOTyIsU0lOOiIiLGFkZGVkSW5mbzoiIix2ZWhpY2xlU2FsZXNEZXB0OiJvdGhlciIsdmVoaWNsZVByaWNlOiIiLHZlaGljbGVUcmFuc21pc3Npb246IiIsdmVoaWNsZVRyaW06IiIsdmVoaWNsZUNvbG9yOiIiLGluaXRpYWxUaXRsZVNob3c6ITAsbXVsdGlGcm9tTWluaTohMSx0cmFkZUluTWFrZToiIix0cmFkZUluTW9kZWw6IiIsdHJhZGVJblllYXI6IiIsdHJhZGVJblRyaW06IiIsdHJhZGVJblZhbHVlOiIiLHZlaGljbGVJbml0aWFsUHJpY2U6IiIsdmVoaWNsZUZpbmFsUHJpY2U6IiIscGF5bWVudEZlZXNMaXN0OltdLHBheW1lbnRJbmNlbnRpdmVzTGlzdDpbXSxjcmVkaXRBcHBsaWNhdGlvbklkOiIiLGNvbnNlbnRBY2NvdW50TW9uaXRvcmluZzoiIixjb25zZW50Q3JlZGl0QXNzZXNzbWVudDoiIiwKY29uc2VudFBpcGVkYToiIixjb25zZW50Q2FzbDoiIn0sbmV4dFN0ZXBEZWZhdWx0VmFsdWVzOkIsdmFsaWRhdGlvblJ1bGVzOntzdGVwMTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJ2ZWhpY2xlVHlwZSJ9XSxzdGVwMjpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJidWRnZXQifV0sc3RlcDM6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiY3VycmVudGx5RHJpdmluZyJ9XSxzdGVwNDpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbWFpbEFkZHJlc3MifSx7ZnVuYzoidmFsaWRhdGVFbWFpbCIsdmFsdWU6ImVtYWlsQWRkcmVzcyJ9XSxzdGVwNTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJtdWx0aV9kZWFsZXJfc2VuZFRvIn1dLHN0ZXA2Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImNyZWRpdFJhdGluZyJ9XSxzdGVwNzpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJkb3duT3B0aW9ucyJ9XSwKc3RlcDg6W3tmdW5jOiJ2YWxpZGF0ZUJpcnRoZGF0ZSIsdmFsdWU6IiJ9XSxzdGVwOTpULHN0ZXAxMTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHlBZGRyZXNzVGltZSIsdmFsdWU6IiJ9XSxzdGVwMTI6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToicmVudE9yT3duIn0se2Z1bmM6InZhbGlkYXRlSXNOdW1iZXIiLHZhbHVlOiJtb250aGx5UGF5bWVudCJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlQYXltZW50Iix2YWx1ZToibW9udGhseVBheW1lbnQifV0sc3RlcDEzOk0sc3RlcDE0Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6IndvcmtpbmdXaGlsZUluU2Nob29sIn1dLHN0ZXAxNTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJvdGhlckVtcGxveW1lbnRTdGF0dXMifV0sc3RlcDE2Olt7ZnVuYzoidmFsaWRhdGVNb3JlVGhhblplcm8iLHZhbHVlOiJtb250aGx5SW5jb21lIn0se2Z1bmM6InZhbGlkYXRlTW9udGhseUluY29tZSIsdmFsdWU6Im1vbnRobHlJbmNvbWUifV0sCnN0ZXAxNzpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHlNb250aGx5SW5jb21lVGltZSIsdmFsdWU6IiJ9XSxzdGVwMTg6UyxzdGVwMTk6W3tmdW5jOiJ2YWxpZGF0ZVBob25lTnVtYmVyIix2YWx1ZToicGhvbmVOdW1iZXIifV0sc3RlcDIwOlt7ZnVuYzoidmFsaWRhdGVDaGVja2VkQ3JlZGl0QnVyZWF1Iix2YWx1ZToiY3JlZGl0QnVyZWF1Q3JlZGl0In1dLHN0ZXAyMjpbe2Z1bmM6InZhbGlkYXRlU0lOIix2YWx1ZToiU0lOIn1dLHN0ZXAyNDpbe2Z1bmM6InZhbGlkYXRlVmVoaWNsZSIsdmFsdWU6IiJ9XSxzdGVwMjU6W3tmdW5jOiJ2YWxpZGF0ZVBheW1lbnQiLHZhbHVlOiIifV0sc3RlcDI2Olt7ZnVuYzoidmFsaWRhdGVDb25zZW50Iix2YWx1ZToiIn1dLHN0ZXAyNzpbe2Z1bmM6InZhbGlkYXRlQWRkcmVzczIiLHZhbHVlOiJhZGRyZXNzMiJ9XSxzdGVwMjg6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5QWRkcmVzczJUaW1lIix2YWx1ZToiIn1dLHN0ZXAyOTpSLHN0ZXAzMDpbe2Z1bmM6InZhbGlkYXRlQ29uc2VudHMiLAp2YWx1ZToiIn1dfSxvblNob3dGdW5jdGlvbjp7c3RlcDI6W3tmdW5jOiJzdGVwMlZpZXdlZFRyYWNrIn1dLHN0ZXA0Olt7ZnVuYzoiZW1haWxTdGVwVmlld2VkVHJhY2sifSx7ZnVuYzoiaW5pdEVtYWlsIn1dLHN0ZXA2OltdLHN0ZXA3OltdLHN0ZXA4Olt7ZnVuYzoiaW5pdEJpcnRoZGF0ZUNoYW5nZSJ9XSxzdGVwOTpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGUifV0sc3RlcDI3Olt7ZnVuYzoiaW5pdEdvb2dsZUF1dG9jb21wbGV0ZTIifV0sc3RlcDEzOlt7ZnVuYzoiaW5pdEdvb2dsZUF1dG9jb21wbGV0ZUVtcGxveWVyIn1dLHN0ZXA1Olt7ZnVuYzoiaW5pdFNlbGVjdE11bHRpRGVhbGVyIn1dLHN0ZXAxOTpbe2Z1bmM6InBob25lU3RlcFZpZXdlZFRyYWNrIn0se2Z1bmM6ImluaXRQaG9uZSJ9XSxzdGVwMjQ6W3tmdW5jOiJpbml0VmVoaWNsZVNlbGVjdGlvbiJ9XSxzdGVwMjU6W3tmdW5jOiJpbml0Q2FsY3VsYXRvciJ9XSxzdGVwMjY6W3tmdW5jOiJpbml0Q29uc2VudCJ9XSwKc3RlcDI5Olt7ZnVuYzoiaW5pdEdvb2dsZUF1dG9jb21wbGV0ZUVtcGxveWVyMiJ9XX0sbm9Db25maXJtQnV0dG9uU3RlcHM6TCxzaG93RXJyb3I6ITAsc2Vjb25kQ2hhbmNlU3RlcFRvU2tpcDpbMSwyLDMsNiw3XSxvcHRpb25hbFN0ZXA6b3B0aW9uYWxTdGVwc319LG1ldGhvZHM6e25leHQ6ZnVuY3Rpb24oZCl7ZHx8KHRoaXMuc2hvd0Vycm9yPSEwLHRoaXMuZm9ybWRhdGEuaW5pdGlhbFRpdGxlU2hvdz0hMSx0aGlzLnB1c2hQYXJ0aWFsPSEwKTtpZih0aGlzLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrdGhpcy5zdGVwKSlmb3IodmFyIGM9MDtjPHRoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIit0aGlzLnN0ZXBdLmxlbmd0aDtjKyspaWYoa1t0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtjXS5mdW5jXSh0aGlzLmZvcm1kYXRhW3RoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIit0aGlzLnN0ZXBdW2NdLnZhbHVlXSkpJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLApiKS5odG1sKCIiKSwkKCdbbmFtZT0iJyt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtjXS52YWx1ZSsnIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIik7ZWxzZXt0aGlzLnNob3dFcnJvciYmKCQoIiMiK3RoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIit0aGlzLnN0ZXBdW2NdLnZhbHVlKyJFcnJvck1zZyIsYikubGVuZ3RoJiYkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjIit0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtjXS52YWx1ZSsiRXJyb3JNc2ciLGIpLnZhbCgpKSwkKCdbbmFtZT0iJyt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtjXS52YWx1ZSsnIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwidmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpIikpO3JldHVybn1mb3IodGhpcy5zaG93RXJyb3I9ITE7ay5pc05leHRTdGVwRmlsbGVkKCk7KTtpZigyMSE9dGhpcy5zdGVwKXs0PT0KdGhpcy5zdGVwJiYiIiE9YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MmJmsuZW1haWxQcm92aWRlZFRyYWNrKCk7MTk9PXRoaXMuc3RlcCYmIiIhPWEuZm9ybWRhdGEucGhvbmVOdW1iZXImJmsucGhvbmVQcm92aWRlZFRyYWNrKCk7aWYoOT09dGhpcy5zdGVwKXRyeXt2YXIgZT0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtuYW1lPSJhZGRyZXNzIl0nLGIpLGY9ZS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKSxnPSJ1bmRlZmluZWQiIT09dHlwZW9mIGYucG9zdGFsLmxvbmdfbmFtZT9mLnBvc3RhbC5sb25nX25hbWU6ZS52YWwoKTtlbWFpbEhhbmRsZXIudXNlclBvc3RhbD1nOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmIiIhPWcmJigidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsZywiVXNlckZvcm0ucG9zdGFsIiksCmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoZywiVXNlckZvcm0ucG9zdGFsIikpfWNhdGNoKGwpe2NvbnNvbGUubG9nKGwpfTQ8PXRoaXMuc3RlcCYmIXRoaXMuY29udmVyc2lvblN1Ym1pdHRlZCYmKHRoaXMuY29udmVyc2lvblN1Ym1pdHRlZD0hMCxjPSQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXJfY29uZmlybSIpLDA9PT1jLmxlbmd0aCYmKGM9JCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikpLGMuZmluZCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbCgkKHRoaXMuY29udGV4dCkuZmluZCgiLmVtYWlsU3ViamVjdCIpLnRleHQoKS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKSxjLmZpbmQoJ2lucHV0W25hbWU9ImxlYWRfZGVwYXJ0bWVudCJdJykudmFsKCJGSU5BTkNFIiksYy5maW5kKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpLGMuZmluZCgnaW5wdXRbbmFtZT0iY3VycmVudFVSTCJdJykudmFsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSwKYy5maW5kKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSksYy5maW5kKCdpbnB1dFtuYW1lPSJkZWFsZXJOYW1lIl0nKS52YWwoJCgiI25ld1ZEUERlYWxlck5hbWUiKS52YWwoKSksYy5maW5kKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKSxjLmZpbmQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpLGMudHJpZ2dlcigic3VibWl0IiksImZ1bmN0aW9uIj09PXR5cGVvZiB3aW5kb3cudHJhY2tDb252ZXJzaW9uJiZ3aW5kb3cudHJhY2tDb252ZXJzaW9uKCkpOzAhPXRoaXMuc3RlcCYmKHRoaXMuc2hvd0ljb249ITEpO3RoaXMuc3RlcD10aGlzLm5leHRTdGVwO2xvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5sYXN0X3N0ZXAiKTtkfHwoYS5maXJzdFN0ZXA\/CmEuZmlyc3RTdGVwPSExOmsuc3RlcFRyaWdnZXIoITApKTsoIiIhPXRoaXMuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiYoIjAiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fQ0hFQ0siKS52YWwoKXx8ImFmdGVyIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpKXx8IiIhPXRoaXMuZm9ybWRhdGEucGhvbmVOdW1iZXImJiIxIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCkmJiJiZWZvcmUiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fU0VMRUNUIikudmFsKCkpJiZrLm11bHRpRGVhbGVyRm9ybVN0YXR1cygpJiZ0aGlzLnB1c2hQYXJ0aWFsJiYoIjEiPT0kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLGIpLnZhbCgpPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNPUEVORURGUk9NSU1BR0VQT1BVUCIsYikudmFsKCIwIik6CmsucHVzaERhdGFUb1NlcnZlcigpKTtrLnNldENsaWVudFN0b3JhZ2VEYXRhVmFsdWVzKCk7dGhpcy5uZXh0U3RlcD10aGlzLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrdGhpcy5zdGVwXTswPD10aGlzLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEuc3RlcCk\/JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uIixiKS5hZGRDbGFzcygiaXNWYWxpZCIpOiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiIsYikucmVtb3ZlQ2xhc3MoImlzVmFsaWQiKTtrLm9uU2hvd0Z1bmN0aW9uVG9SdW4oKTswPD10aGlzLm5vQ29uZmlybUJ1dHRvblN0ZXBzLmluZGV4T2YodGhpcy5zdGVwKT8oJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4iLGIpLmhpZGUoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikub2ZmKCJjbGljay5ub0J1dHRvbiIsImlucHV0W3R5cGU9cmFkaW9dIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLApiKS5vbigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5uZXh0KCl9LDFFMyl9KSk6KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5zaG93KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpKTsiZG9uZSI9PXRoaXMuc3RlcCYmKCIxIj09eD8iMSI9PUo\/ay5jcmVkaXRBcHBTdW1pc3Npb24oKTprLnJvdXRlT25lQ2FsbCgpOmsuc2VuZEVtYWlsKCkpfX0sZ2V0TGluZWFyc3RlcDpmdW5jdGlvbihkKXt2YXIgYz1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKTtjPXBhcnNlSW50KGM\/YzowKTtpZigwPT1jfHxpc05hTihjKSljPTE7ZCYmKGMrPTEsbG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIixjKSk7cmV0dXJuIGN9fX0pLAp3PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIixIPWVtYWlsSGFuZGxlci5nZXRKc29uT2JqZWN0KCk7ej13aW5kb3cubG9jYXRpb247dmFyIFE9ei5wcm90b2NvbCsiLy8iK3ouaG9zdCxrPXtpc05leHRTdGVwRmlsbGVkOmZ1bmN0aW9uKCl7aWYoIjEiPT14JiYiMSI9PUomJlsxOSw0LDMwXS5pbmNsdWRlcyhhLm5leHRTdGVwKSlyZXR1cm4hMTtpZigiMSI9PXUmJjA8PWEuc2Vjb25kQ2hhbmNlU3RlcFRvU2tpcC5pbmRleE9mKGEubmV4dFN0ZXApKXJldHVybiBhLm5leHRTdGVwPWEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzWyJzdGVwIithLm5leHRTdGVwXSwhMDtpZigoIjEiPT11fHwiMSI9PXgpJiYwPD1hLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEubmV4dFN0ZXApKXJldHVybiExO2lmKGEudmFsaWRhdGlvblJ1bGVzLmhhc093blByb3BlcnR5KCJzdGVwIithLm5leHRTdGVwKSl7Zm9yKHZhciBkPTA7ZDxhLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrCmEubmV4dFN0ZXBdLmxlbmd0aDtkKyspaWYoIWtbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2EubmV4dFN0ZXBdW2RdLmZ1bmNdKGEuZm9ybWRhdGFbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2EubmV4dFN0ZXBdW2RdLnZhbHVlXSkpcmV0dXJuITE7YS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrYS5uZXh0U3RlcF07cmV0dXJuITB9fSx2YWxpZGF0ZU5vdEVtcHR5OmZ1bmN0aW9uKGQpe3JldHVybiIiIT1kJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBkfSx2YWxpZGF0ZU5hbWU6ZnVuY3Rpb24oKXt2YXIgZD0vXltBLXpcdTAwQkYtXHUxRkZGXHUyQzAwLVx1RDdGRiAnLV0rJC87bGV0IGM9ZC50ZXN0KGEuZm9ybWRhdGEuZmlyc3ROYW1lKTtkPWQudGVzdChhLmZvcm1kYXRhLmxhc3ROYW1lKTtjJiZkPygkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk6KGN8fCgkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJmaXJzdE5hbWUiXScsYikuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IikpLGR8fCgkKCdbbmFtZT0ibGFzdE5hbWUiXScsYikuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjZmlyc3ROYW1lRXJyb3JNc2ciKS52YWwoKSkpO3JldHVybiBjJiZkfSx2YWxpZGF0ZUlzTnVtYmVyOmZ1bmN0aW9uKGQpe3JldHVybiAwPD0KZH0sdmFsaWRhdGVNb250aGx5SW5jb21lOmZ1bmN0aW9uKGQpe3JldHVybiA5OTk5OTk+PWR9LHZhbGlkYXRlTW9udGhseVBheW1lbnQ6ZnVuY3Rpb24oZCl7cmV0dXJuIDk5OTk5Pj1kfSx2YWxpZGF0ZUFkZHJlc3M6ZnVuY3Rpb24oZCl7cmV0dXJuIDA8YS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzfHwwPGEuZm9ybWRhdGEuYWRkcmVzc19tb250aHM\/ITA6IiIhPWQmJihkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1kLmNpdHkmJiIiIT1kLnN0cmVldCk\/KGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzPWQsITApOiExfSx2YWxpZGF0ZUFkZHJlc3MyOmZ1bmN0aW9uKGQpe3JldHVybiAwPGEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnN8fDA8YS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHM\/ITA6IiIhPWQmJihkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJywKYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksIiIhPWQuY2l0eSYmIiIhPWQuc3RyZWV0KT8oYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MyPWQsITApOiExfSx2YWxpZGF0ZUFkZHJlc3NFbXBsb3llcjpmdW5jdGlvbihkKXtpZigiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzKXJldHVybiEwO2lmKCIiIT1kKXtpZigidW5kZWZpbmVkIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiY2l0eSJpbiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIuY2l0eSlyZXR1cm4hMDtrLmluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcigpO2Q9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJywKYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIik7aWYoIiIhPWQuY2l0eSYmIiIhPWQuc3RyZWV0KXJldHVybiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyPWQsITB9cmV0dXJuITF9LHZhbGlkYXRlQWRkcmVzc0VtcGxveWVyMjpmdW5jdGlvbihkKXtpZigiIiE9ZCl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmbnVsbCE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJiIiIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjIuY2l0eSlyZXR1cm4hMDtrLmluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjIoKTtkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLApiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKTtpZigiIiE9ZC5jaXR5JiYiIiE9ZC5zdHJlZXQpcmV0dXJuIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyPWQsITB9cmV0dXJuITF9LHZhbGlkYXRlU3RhdHVzVGltZTpmdW5jdGlvbihkKXtpZigiIiE9ZCYmMTA9PWQubGVuZ3RoKXJldHVybiBkPWQuc3BsaXQoIi8iKSxuZXcgRGF0ZSgrZFsyXSxkWzFdLTEsK2RbMF0pPG5ldyBEYXRlfSx2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm86ZnVuY3Rpb24oZCl7dmFyIGM9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiPT1jfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NFTEZFTVBMT1lFRCI9PWN8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfU1RVREVOVCI9PWN8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfT1RIRVIiPT1jPyIiIT09ZCYmInVuZGVmaW5lZCIhPT0KdHlwZW9mIGQ6ITB9LHZhbGlkYXRlRW1wbG95ZXJJbmZvOmZ1bmN0aW9uKCl7cmV0dXJuIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRCI9PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cz8iIiE9PWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmZvcm1kYXRhLmVtcGxveWVyTmFtZSYmay52YWxpZGF0ZVBob25lTnVtYmVyRW1wbG95ZXIoYS5mb3JtZGF0YS5lbXBsb3llclBob25lKTohMH0sdmFsaWRhdGVFbXBsb3llckluZm8yOmZ1bmN0aW9uKCl7cmV0dXJuIiIhPT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZTImJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMiYmay52YWxpZGF0ZVBob25lTnVtYmVyRW1wbG95ZXIyKGEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZTIpfSx2YWxpZGF0ZUVtYWlsOmZ1bmN0aW9uKGQpeyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6ImNzc09ubHkiLHNjcm9sbFRvOiExfSkuc3RhcnQoKTsKJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9ImVtYWlsQWRkcmVzcyJdJykudmFsaWRFbWFpbEFkZHJlc3MoKTtyZXR1cm4gJC52YWxpZGl0eS5lbmQoKS52YWxpZH0sdmFsaWRhdGVCaXJ0aGRhdGU6ZnVuY3Rpb24oKXt2YXIgZD1hLmZvcm1kYXRhLmJpcnRoZGF0ZVllYXIsYz1hLmZvcm1kYXRhLmJpcnRoZGF0ZU1vbnRoLGU9YS5mb3JtZGF0YS5iaXJ0aGRhdGVEYXk7aWYoMzE8ZXx8MTI8Y3x8MTkwMD5kfHwwPj1lfHwwPj1jfHwiIj09ZHx8IiI9PWN8fCIiPT1lfHw0PmQubGVuZ3RoKXJldHVybiExO2Q9MTg8PWsuY2FsY3VsYXRlQWdlKG5ldyBEYXRlKGQsYy0xLGUpLG5ldyBEYXRlKTthLnNob3dFcnJvciYmKGQ\/JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpOiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNiaXJ0aGRhdGVFcnJvck1zZyIpLnZhbCgpKSk7cmV0dXJuIGR9LApjYWxjdWxhdGVBZ2U6ZnVuY3Rpb24oZCxjKXt2YXIgZT1jLmdldEZ1bGxZZWFyKCksZj1jLmdldE1vbnRoKCk7Yz1jLmdldERhdGUoKTt2YXIgZz1kLmdldEZ1bGxZZWFyKCksbD1kLmdldE1vbnRoKCk7ZD1kLmdldERhdGUoKTtlLT1nO2YtPWw7aWYoMD5mfHwwPT1mJiYwPmMtZCllPXBhcnNlSW50KGUpLTE7cmV0dXJuIGV9LGhhc1VzZXI6ZnVuY3Rpb24oKXtyZXR1cm4hIWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpfSx1c2VySWQ6ZnVuY3Rpb24oZCl7ZCYmKC0xPT1kPyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKSxhLnVzZXJJZD0hMSk6KGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIsZCksYS51c2VySWQ9ZCkpO2EudXNlcklkfHwoYS51c2VySWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIikpOwpyZXR1cm4gYS51c2VySWR9LHB1c2hEYXRhVG9TZXJ2ZXI6ZnVuY3Rpb24oKXtpZighYS5hamF4UHJvY2Vzcyl7YS5hamF4UHJvY2Vzcz0hMDtrLnNldFRyYWRlSW4oKTt2YXIgZD1hLmZvcm1kYXRhLGM9YS5zdGVwLGU9JChiKS5maW5kKCIuZW1haWxTdWJqZWN0IiksZj0kKGIpLmZpbmQoIi5lbWFpbEJvZHkiKTtlPWUudGV4dCgpP2UudGV4dCgpOiIiO2Y9Zi5odG1sKCk\/Zi5odG1sKCk6IiI7dmFyIGc9JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKTtlbWFpbEhhbmRsZXIuYm9keT1mO2VtYWlsSGFuZGxlci5zdWJqZWN0PWU7ay5zZXRFbWFpbEhhbmRsZXJTZW5kKCk7ZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI7IjEiPT11JiYoZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSIpOyIxIj09eCYmKGVtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3RJbnN0YW50Iik7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9CiJGSU5BTkNFIjtlbWFpbEhhbmRsZXIuaXNtb2JpbGVzaXRlPTE9PSQoIiNpc21vYmlsZSIpLnZhbCgpPyJZRVMiOiJOTyI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0idW5kZWZpbmVkIj09dHlwZW9mIGc\/InVzZWQiOmcudG9Mb3dlckNhc2UoKTtlbWFpbEhhbmRsZXIuY3JlZGl0RGF0YT1kO0g9ZW1haWxIYW5kbGVyLmdldEpzb25PYmplY3QoKTskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvc2V0RmluYW5jZU11bHRpc3RlcERhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTp7dXNlcklkOmsudXNlcklkKCksZm9ybWRhdGE6ZCxzdGVwOmMsZG9tYWluOlEsc2l0ZUlkOiQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGxhbmc6JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLGVtYWlsSGFuZGxlckpzb25PYmplY3Q6SlNPTi5zdHJpbmdpZnkoSCl9LHN1Y2Nlc3M6ZnVuY3Rpb24obCl7bC5JRCYmCmwuaWRDaGFuZ2VkJiZrLnVzZXJJZChsLklEKX0sY29tcGxldGU6ZnVuY3Rpb24obCl7YS5hamF4UHJvY2Vzcz0hMX19KX19LG9uU2hvd0Z1bmN0aW9uVG9SdW46ZnVuY3Rpb24oKXtpZihhLm9uU2hvd0Z1bmN0aW9uLmhhc093blByb3BlcnR5KCJzdGVwIithLnN0ZXApJiYidW5kZWZpbmVkIiE9dHlwZW9mIGEub25TaG93RnVuY3Rpb25bInN0ZXAiK2Euc3RlcF0ubGVuZ3RoKWZvcih2YXIgZD0wO2Q8YS5vblNob3dGdW5jdGlvblsic3RlcCIrYS5zdGVwXS5sZW5ndGg7ZCsrKWtbYS5vblNob3dGdW5jdGlvblsic3RlcCIrYS5zdGVwXVtkXS5mdW5jXSgpfSxpbml0R29vZ2xlQXV0b2NvbXBsZXRlOmZ1bmN0aW9uKCl7dmFyIGQ9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MiXScsYilbMF0sYz1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2MuZGlzY29ubmVjdCgpOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLApiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJuZXctcGFzc3dvcmQiKX0pO2Mub2JzZXJ2ZShkLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImF1dG9jb21wbGV0ZSJdfSk7ZD0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTGF0IikudmFsKCk7dmFyIGU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxvbmciKS52YWwoKTtkPXtsYXQ6ZCxsb25nOmUscmFkaXVzOjJFNX07JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MiXScsYikuZ29vZ2xlUGxhY2VzKGQpfSxpbml0R29vZ2xlQXV0b2NvbXBsZXRlMjpmdW5jdGlvbigpe3ZhciBkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJyxiKVswXSxjPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7Yy5kaXNjb25uZWN0KCk7CiQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJyxiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJuZXctcGFzc3dvcmQiKX0pO2Mub2JzZXJ2ZShkLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImF1dG9jb21wbGV0ZSJdfSk7ZD0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTGF0IikudmFsKCk7dmFyIGU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxvbmciKS52YWwoKTtkPXtsYXQ6ZCxsb25nOmUscmFkaXVzOjJFNX07JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MyIl0nLGIpLmdvb2dsZVBsYWNlcyhkKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZUVtcGxveWVyOmZ1bmN0aW9uKCl7dmFyIGQ9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJywKYilbMF0sYz1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2MuZGlzY29ubmVjdCgpOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtjLm9ic2VydmUoZCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2Q9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7ZD17bGF0OmQsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsYikuZ29vZ2xlUGxhY2VzKGQpfSxpbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIyOmZ1bmN0aW9uKCl7dmFyIGQ9CiQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLGIpWzBdLGM9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtjLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJuZXctcGFzc3dvcmQiKX0pO2Mub2JzZXJ2ZShkLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImF1dG9jb21wbGV0ZSJdfSk7ZD0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTGF0IikudmFsKCk7dmFyIGU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxvbmciKS52YWwoKTtkPXtsYXQ6ZCxsb25nOmUscmFkaXVzOjJFNX07JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llcjIiXScsCmIpLmdvb2dsZVBsYWNlcyhkKX0saW5pdEJpcnRoZGF0ZUNoYW5nZTpmdW5jdGlvbigpeyQoIi5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGlucHV0Iikub24oImtleXVwIixmdW5jdGlvbigpeyQodGhpcykudmFsKCkubGVuZ3RoPT0kKHRoaXMpLmF0dHIoIm1heGxlbmd0aCIpJiYkKHRoaXMpLnBhcmVudCgpLm5leHQoIi5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IikuZmluZCgiaW5wdXQiKS50cmlnZ2VyKCJmb2N1cyIpfSl9LHZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXImJjA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItY29sb3IiLAoiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7IjEiPT14JiYoNjA+MTIqcGFyc2VJbnQoYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcikrcGFyc2VJbnQoYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpP2EubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxNz0yOTphLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9MjIpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lMjpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIiwKYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcjImJjA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItY29sb3IiLAoiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLApiKS5odG1sKCIiKSk7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlBZGRyZXNzVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuYWRkcmVzc195ZWFycylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLApiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzJiYwPj1hLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLAoiIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7IjEiPT14JiYoMjQ+MTIqcGFyc2VJbnQoYS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzKStwYXJzZUludChhLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTI9Mjc6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDEyPTEzKTtyZXR1cm4hMH0sdmFsaWRhdGVDb25zZW50czpmdW5jdGlvbigpe3JldHVybiJRQyIhPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9EZWFsZXJQcm92aW5jZSIsYikudmFsKCl8fGEuZm9ybWRhdGEuY29uc2VudEFjY291bnRNb25pdG9yaW5nJiYKYS5mb3JtZGF0YS5jb25zZW50Q3JlZGl0QXNzZXNzbWVudD8hMDohMX0sdmFsaWRhdGVOb3RFbXB0eUFkZHJlc3MyVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5hZGRyZXNzMl95ZWFycyYmMD49YS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzMlRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYKKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpKTtyZXR1cm4hMH0sdmFsaWRhdGVOb3RFbXB0eU1vbnRobHlJbmNvbWVUaW1lOmZ1bmN0aW9uKCl7aWYoNzA8YS5mb3JtZGF0YS5tb250aGx5SW5jb21lX3llYXJzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNtb250aGx5SW5jb21lVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5tb250aGx5SW5jb21lX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI21vbnRobHlJbmNvbWVUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfeWVhcnMmJjA+PWEuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwKIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNtb250aGx5SW5jb21lVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7cmV0dXJuITB9LHZhbGlkYXRlUGhvbmVOdW1iZXI6ZnVuY3Rpb24oZCl7cmV0dXJuIGQmJihwaG9uZT1kLnJlcGxhY2UoIigiLCIiKS5yZXBsYWNlKCIpIiwiIikucmVwbGFjZSgiICIsIiIpLnJlcGxhY2UoIi0iLCIiKSwxMD09cGhvbmUubGVuZ3RoKT8oJC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbGlkYXRlUGhvbmUoKSwkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKTohMX0sdmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyOmZ1bmN0aW9uKGQpe3JldHVybiBkJiYocGhvbmU9ZC5yZXBsYWNlKCIoIiwiIikucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIiAiLCIiKS5yZXBsYWNlKCItIiwiIiksMTA9PXBob25lLmxlbmd0aCk\/CigkLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCJpbnB1dC5lbXBsb3llclBob25lIikudmFsaWRhdGVQaG9uZSgpLCQudmFsaWRpdHkuZW5kKCkudmFsaWQpOiExfSx2YWxpZGF0ZVBob25lTnVtYmVyRW1wbG95ZXIyOmZ1bmN0aW9uKGQpe3JldHVybiBkJiYocGhvbmU9ZC5yZXBsYWNlKCIoIiwiIikucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIiAiLCIiKS5yZXBsYWNlKCItIiwiIiksMTA9PXBob25lLmxlbmd0aCk\/KCQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIixzY3JvbGxUbzohMX0pLnN0YXJ0KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoImlucHV0LmVtcGxveWVyUGhvbmUyIikudmFsaWRhdGVQaG9uZSgpLCQudmFsaWRpdHkuZW5kKCkudmFsaWQpOiExfSx2YWxpZGF0ZVNJTjpmdW5jdGlvbihkKXtyZXR1cm4oIjEiPT0KdSYmIjAiPT1BfHwiMSI9PXgpJiYiIj09ZCYmMDw9YS5vcHRpb25hbFN0ZXAuaW5kZXhPZigyMil8fGQmJihzaW49ZC5yZXBsYWNlQWxsKCIgIiwiIiksOT09c2luLmxlbmd0aCk\/ITA6ITF9LHZhbGlkYXRlVmVoaWNsZTpmdW5jdGlvbigpe3ZhciBkPSExO3N3aXRjaChhLmN1cnJlbnREZXB0KXtjYXNlICJVU0VEIjpkPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRUcmltJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ7YnJlYWs7Y2FzZSAiTkVXSU5WIjpkPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXImJiIiIT0KYS5mb3JtZGF0YS5jdXJyZW50VHJpbSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudENhcklkJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZDticmVhaztjYXNlICJORVciOmQ9IiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50VHJpbX1yZXR1cm4gZH0saW5pdFZlaGljbGVTZWxlY3Rpb246ZnVuY3Rpb24oKXthLmluaXRWZWhpY2xlU2VsZWN0aW9uRmlyc3QmJigkKCdpbnB1dFtuYW1lPSJmaW5hbmNlTXVsdGlzdGVwRGVwdCJdJyxiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2xldCBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZWhpY2xlU2VsZWN0aW9uV3JhcHBlciIpO2QucmVwbGFjZVdpdGgoZC5jbG9uZU5vZGUoITApKTtrLmluaXRWZWhpY2xlU2VsZWN0aW9uKCl9KSxhLmluaXRWZWhpY2xlU2VsZWN0aW9uRmlyc3Q9CiExKTskKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLm9mZigiY2hhbmdlIik7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikub2ZmKCJjaGFuZ2UiKTskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLm9mZigiY2hhbmdlIik7IlVTRUQiPT1hLmN1cnJlbnREZXB0fHwiTkVXSU5WIj09YS5jdXJyZW50RGVwdD8obSgibmV3aW52IiksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpJiYoYS5mb3JtZGF0YS5jdXJyZW50TW9kZWw9IiIsYS5mb3JtZGF0YS5jdXJyZW50TW9kZWxUZXh0PSIiLGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPSIiLGEuZm9ybWRhdGEuY3VycmVudENhcklkPSIiLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPQoiIixhLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwLGsuY2hlY2tWYWxpZGl0eSgpLG4oIm5ld2ludiIsJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmIiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLnZhbCgpJiYoYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9IiIsYS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9IiIsYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxrLmNoZWNrVmFsaWRpdHkoKSx2KCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLW1vZGVsIikpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXthLmZvcm1kYXRhLmN1cnJlbnRNYWtlPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCk7YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbW9kZWwiKTthLmZvcm1kYXRhLmN1cnJlbnRUcmltPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikudmFsKCk7YS5mb3JtZGF0YS5jdXJyZW50WWVhcj0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXllYXIiKTthLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtc3R5bGVpZCIpO2EuZm9ybWRhdGEudmVoaWNsZVByaWNlPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLXByaWNlIik7YS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS12ZWhpY2xlaWQiKTthLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXN0b2NrbnVtYmVyIik7YS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1pbGVhZ2UiKTt2YXIgZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLWlzbmV3IiksYz0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLWlzZGVtbyIpJiYiMSI9PSQoJ2lucHV0W25hbWU9IkZJTkFOQ0VfREVNT0FTTkVXIl0nLGIpLnZhbCgpO2EuY3VycmVudERlcHQ9CiIxIj09ZHx8Yz8iTkVXSU5WIjoiVVNFRCI7ay5jaGVja1ZhbGlkaXR5KCl9KSk6KG0oYS5jdXJyZW50RGVwdCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpJiYoYS5mb3JtZGF0YS5jdXJyZW50TW9kZWw9IiIsYS5mb3JtZGF0YS5jdXJyZW50TW9kZWxUZXh0PSIiLGEuZm9ybWRhdGEuY3VycmVudFllYXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIixhLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwLGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9IiIsYS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9IiIsay5jaGVja1ZhbGlkaXR5KCksbihhLmN1cnJlbnREZXB0LCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsCmIpLnZhbCgpJiYiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikudmFsKCkmJihhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPSIiLGsuY2hlY2tWYWxpZGl0eSgpLHEoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1tb2RlbCIpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXllYXIiKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2EuZm9ybWRhdGEuY3VycmVudE1ha2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0KJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbW9kZWwiKTthLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXllYXIiKTthLmZvcm1kYXRhLmN1cnJlbnRUcmltPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikudmFsKCk7YS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMDthLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtc3R5bGVpZCIpO2EuZm9ybWRhdGEudmVoaWNsZVByaWNlPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtcHJpY2UiKTtrLmNoZWNrVmFsaWRpdHkoKX0pKX0sdmFsaWRhdGVQYXltZW50OmZ1bmN0aW9uKCl7cmV0dXJuIiIhPWEuZm9ybWRhdGEucGF5bWVudFR5cGUmJgoiIiE9YS5mb3JtZGF0YS5wYXltZW50VGVybSYmIiIhPWEuZm9ybWRhdGEucGF5bWVudEludGVydmFsJiYiIiE9YS5mb3JtZGF0YS5wYXltZW50VmFsdWUmJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRSYXRlfHxhLmZvcm1kYXRhLm5vUGF5bWVudH0saW5pdENhbGN1bGF0b3I6ZnVuY3Rpb24oKXt2YXIgZD0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyIgc3VyIGNlICIrYS5mb3JtZGF0YS5jdXJyZW50TWFrZSsiICIrYS5mb3JtZGF0YS5jdXJyZW50TW9kZWwrIiAiK2EuZm9ybWRhdGEuY3VycmVudFllYXI6IiBvbiB0aGlzICIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcisiICIrYS5mb3JtZGF0YS5jdXJyZW50TWFrZSsiICIrYS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcFBheW1lbnRWZWhpY2xlIixiKS50ZXh0KGQpO2lmKCJORVciPT1hLmN1cnJlbnREZXB0fHwiTkVXSU5WIj09YS5jdXJyZW50RGVwdCl7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLApiKS5odG1sKCIiKTthLmNhbGN1bGF0b3JGdW5jdGlvbnM9bmV3IGNhbGN1bGF0b3JGdW5jdGlvbnMoIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpO2Q9Ik5FV0lOViI9PWEuY3VycmVudERlcHQ7bGV0IGU9ImZpbmFuY2luZyIsZj0wLGc9MCxsPSQoJ2lucHV0W25hbWU9IkFETUlOX1NIT1dfTE9XRVNUX1BBWU1FTlRfSU5URVJWQUwiXScpLnZhbCgpO3ZhciBjPTJFNDtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGM9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxlPSJ1bmRlZmluZWQiIT1jWzBdP2NbMF06ZSxmPWNbMV0sZz1wYXJzZUludChjWzRdKXx8MCxsPWNbMl0sYz1jWzNdKTthLmNhbGN1bGF0b3JGdW5jdGlvbnMuaW5pdChhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkLGUsZywwLGwsYyxkLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyKTskKCJib2R5Iikub2ZmKCJjaGFuZ2UiLAoiIyIrYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICMnK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyk7JCgiYm9keSIpLm9mZigibm9QYXltZW50IiwiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIik7JCgiYm9keSIpLm9mZigicGF5bWVudHNSZWFkeSIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpOyQoImJvZHkiKS5vbigibm9QYXltZW50IiwiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixmdW5jdGlvbigpe2EuZm9ybWRhdGEubm9QYXltZW50PSEwO2EubmV4dCghMCl9KTskKCJib2R5Iikub24oImNoYW5nZSIsIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjJysKYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0nLGZ1bmN0aW9uKCl7dmFyIHA9ImZpbmFuY2luZyI9PWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5wYXltZW50VHlwZT8kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJGaW5hbmNlbWVudCI6IkZpbmFuY2luZyI6ImxlYXNpbmciPT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU\/JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iTG9jYXRpb24iOiJMZWFzaW5nIjoiIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlPXA7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRUeXBlO2EuZm9ybWRhdGEucGF5bWVudFRlcm09JCh0aGlzKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTsKcD0kKHRoaXMpLmNsb3Nlc3QoIi5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciIpLmZpbmQoJy5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrYS5mb3JtZGF0YS5wYXltZW50VGVybSsnIl1bZGF0YS1yYXRldHlwZT0iJythLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZSsnIl0nKTt2YXIgcjthLmZvcm1kYXRhLnBheW1lbnRSZXNpZHVhbFZhbHVlPW51bGwhPShyPXAuYXR0cigiZGF0YS1yZXNpZHVhbCIpKT9yOiQodGhpcykuYXR0cigiZGF0YS1yZXNpZHVhbCIpO3ZhciB0O2EuZm9ybWRhdGEucGF5bWVudFZhbHVlPW51bGwhPSh0PXAuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpKT90OiQodGhpcykuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpO3ZhciBFO2EuZm9ybWRhdGEuYmFzZXBheW1lbnQ9bnVsbCE9KEU9cC5hdHRyKCJkYXRhLWJhc2VwYXltZW50IikpP0U6JCh0aGlzKS5hdHRyKCJkYXRhLWJhc2VwYXltZW50Iik7CmEuZm9ybWRhdGEucGF5bWVudFRvdGFsSW5jZW50aXZlPXAuYXR0cigiZGF0YS10b3RhbGluY2VudGl2ZSIpO2EuZm9ybWRhdGEucGF5bWVudEdTVD1wLmF0dHIoImRhdGEtZ3N0Iik7YS5mb3JtZGF0YS5wYXltZW50SFNUPXAuYXR0cigiZGF0YS1oc3QiKTthLmZvcm1kYXRhLnBheW1lbnRQU1Q9cC5hdHRyKCJkYXRhLXBzdCIpO2EuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT1wLmF0dHIoImRhdGEtaW5pdGlhbFByaWNlIik7YS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT1wLmF0dHIoImRhdGEtZmluYWxQcmljZSIpO3ZhciBGO2EuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PW51bGwhPShGPUpTT04ucGFyc2UoYXRvYihwLmF0dHIoImRhdGEtZmVlc0xpc3QiKSkpKT9GOltdO3I9MDtmb3IodmFyIE4gb2YgYS5mb3JtZGF0YS5wYXltZW50RmVlc0xpc3Qpcis9Ti5hbW91bnR8fDA7YS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9cjt2YXIgRzthLmZvcm1kYXRhLnBheW1lbnRJbmNlbnRpdmVzTGlzdD0KbnVsbCE9KEc9SlNPTi5wYXJzZShhdG9iKHAuYXR0cigiZGF0YS1pbmNlbnRpdmVzTGlzdCIpKSkpP0c6W107YS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLmRvd25wYXltZW50fHwwO2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlPWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5rbUFsbG93YW5jZTthLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudEZyZXF1ZW5jeTthLmZvcm1kYXRhLnBheW1lbnRSYXRlPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnRyYWRlSW5WYWx1ZTtyPShwYXJzZUludChhLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudCl8fDApKyhwYXJzZUludChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSl8fDApO0Nvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsCmEuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsKyItIithLmZvcm1kYXRhLnBheW1lbnRUZXJtKyItIithLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbCsiLSIrYS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2UrIi0iK3IsbnVsbCwiLyIpOyJORVdDQVJTIiE9KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSYmIlVTRURDQVJTIiE9KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSYmImZ1bmN0aW9uIj09dHlwZW9mIGNoYW5nZVBhZ2VQYXltZW50VmFsdWUmJihHPSQodGhpcykuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpLE49JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKSxwPSQodGhpcykuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50Iikscj1yLnRvRml4ZWQoMCksdD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKSxFPSQodGhpcykuYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIiksRj0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxDb3N0IiksY2hhbmdlUGFnZVBheW1lbnRWYWx1ZSh7Y3VycmVudFBheW1lbnQ6RywKY3VycmVudFJhdGU6YS5mb3JtZGF0YS5wYXltZW50UmF0ZSxwYXltZW50VGVybTphLmZvcm1kYXRhLnBheW1lbnRUZXJtLHBheW1lbnRUeXBlOmEuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsLHBheW1lbnRJbnRlcnZhbDphLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbCxwYXltZW50RG93blBheW1lbnQ6cix0b3RhbEludGVyZXN0Ok4sbHV4ZVRheEFtb3VudDpwLHJhdGVUeXBlOnQsZWZmZWN0aXZlUmF0ZTpFLHRvdGFsQ29zdDpGfSksJCgiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIikudHJpZ2dlcigicGF5bWVudENoYW5nZWQiKSk7ay5jaGVja1ZhbGlkaXR5KCl9KTskKCJib2R5Iikub24oInBheW1lbnRzUmVhZHkiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKCl7Zj1hLmZvcm1kYXRhLnBheW1lbnRUZXJtP2EuZm9ybWRhdGEucGF5bWVudFRlcm06Zj9mOjA7MCE9ZiYmMDwkKCIjIitiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJysKZisnIl0nKS5sZW5ndGg\/JCgiIyIrYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bdmFsdWU9IicrZisnIl0nKS5hdHRyKCJjaGVja2VkIiwiY2hlY2tlZCIpLnRyaWdnZXIoImNoYW5nZSIpOihhLmZvcm1kYXRhLnBheW1lbnRUeXBlPSIiLGEuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsPSIiLGEuZm9ybWRhdGEucGF5bWVudFRlcm09IiIsYS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGU9IiIsYS5mb3JtZGF0YS5wYXltZW50UmVzaWR1YWxWYWx1ZT0iIixhLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT0iIixhLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9IiIsYS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT0iIixhLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdD1bXSxhLmZvcm1kYXRhLnBheW1lbnRJbmNlbnRpdmVzTGlzdD1bXSxhLmZvcm1kYXRhLmJhc2VwYXltZW50PQoiIixhLmZvcm1kYXRhLnBheW1lbnRUb3RhbEluY2VudGl2ZT0wLGEuZm9ybWRhdGEucGF5bWVudFRvdGFsRmVlPTAsYS5mb3JtZGF0YS5wYXltZW50R1NUPTAsYS5mb3JtZGF0YS5wYXltZW50SFNUPTAsYS5mb3JtZGF0YS5wYXltZW50UFNUPTAsYS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ9MCxhLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT0wLGEuZm9ybWRhdGEucGF5bWVudEludGVydmFsPSIiLGEuZm9ybWRhdGEucGF5bWVudFJhdGU9IiIsYS5mb3JtZGF0YS50cmFkZUluVmFsdWU9IiIsay5jaGVja1ZhbGlkaXR5KCkpOyQoIi5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciIsYikuc2hvdygpfSk7c2V0VGltZW91dCgoKT0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQ3RhVHJhY2smJkN0YVRyYWNrLmdldFRyYWNrU3RlcCgiUGF5bWVudENhbGN1bGF0b3JBY3Rpb25Cb3giKSl7bGV0IHA9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiUGF5bWVudENhbGN1bGF0b3JBY3Rpb25Cb3giLApmb3JjZVVwZGF0ZTohMCxvbkNvbXBsZXRlOnI9PntyLmRhdGFzZXQuY29tcGxfdHh0X2ZyPXIuZGF0YXNldC5pbml0X2NvbXBsX3R4dF9mci5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRGclswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRGclsxXSk7ci5kYXRhc2V0LmNvbXBsX3R4dF9lbj1yLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZW4ucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RW5bMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLGN0YVBheW1lbnRUZXh0RW5bMV0pO3I9e3BheW1lbnQ6e319O19sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIikmJihyPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSkpO2xldCB0PSJGUkVOQ0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpP2N0YVBheW1lbnRUZXh0RnI6Y3RhUGF5bWVudFRleHRFbjsKci5wYXltZW50PXtsaXN0UHJpY2U6dFsyXXx8IiIscGF5bWVudDp0WzBdfHwiIixyYXRlOnRbMV18fCIiLHBheW1lbnRWYWx1ZTpjdGFQYXltZW50VmFsdWVzfHxbXX07X2xvY2FsU3RvcmFnZVNldCgicmV0YWlsX3RyYWNrX2RhdGEiLEpTT04uc3RyaW5naWZ5KHIpLDMwKTtDb29raWVzLnNldCgiY3RhX2RhdGFfdmFsaWQiLDEsMSwiLyIpfX19KTskKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKS5vbigicGF5bWVudENoYW5nZWQiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChwKX0pfX0sMTAwKX1lbHNlICQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSx5KGEuZm9ybWRhdGEuY3VycmVudENhcklkKX0saW5pdEVtYWlsOmZ1bmN0aW9uKCl7ay5jaGVja1ZhbGlkaXR5KCl9LGluaXRQaG9uZTpmdW5jdGlvbigpe2suY2hlY2tWYWxpZGl0eSgpfSxpbml0Q29uc2VudDpmdW5jdGlvbigpe2xldCBkPSIvIit3KyIvbXVsdGlzdGVwSW5zdGFudENvbnNlbnQuaHRtbCI7CiQoIiNmaW5hbmNlX211bHRpc3RlcF9jb25zZW50X3RleHRfZGl2IixiKS5hdHRyKCJzcmMiLGQpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihjKXsoYy5vcmlnaW49d2luZG93LmxvY2F0aW9uLm9yaWdpbikmJiJjb25zZW50SWZyYW1lQm90dG9tIj09PWMuZGF0YSYmJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudCIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKX0sITEpfSx2YWxpZGF0ZUNvbnNlbnQ6ZnVuY3Rpb24oKXtpZigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50IixiKS5oYXNDbGFzcygiaXNWYWxpZCIpKXJldHVybiBhLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0kKCIjd29ya2luZ1doaWxlSW5TY2hvb2xfeWVzIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCEwO2EuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PQokKCIjd29ya2luZ1doaWxlSW5TY2hvb2xfbm8iLGIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik7cmV0dXJuITF9LHZhbGlkYXRlQ2hlY2tlZENyZWRpdEJ1cmVhdTpmdW5jdGlvbihkKXtpZigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0iY3JlZGl0QnVyZWF1Q29uc2VudCJdJykuaXMoIjpjaGVja2VkIikpcmV0dXJuIGEuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF95ZXMiLGIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIiksITA7YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX25vIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpO3JldHVybiExfSx2YWxpZGF0ZU1vcmVUaGFuWmVybzpmdW5jdGlvbihkKXtyZXR1cm4gMDxkfSxzZW5kRW1haWw6ZnVuY3Rpb24oKXt2YXIgZD0kKGIpLmZpbmQoIi5lbWFpbFN1YmplY3QiKSwKYz0kKGIpLmZpbmQoIi5lbWFpbEJvZHkiKTtkPWQudGV4dCgpP2QudGV4dCgpOiIiO2M9Yy5odG1sKCk\/Yy5odG1sKCk6IiI7aWYoZCYmYyl7dmFyIGU9JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cysnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik7IiIhPWEuZm9ybWRhdGEuZW1wbG95bWVudEFkZGVkSW5mbyYmKGUrPSIgKCIrYS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvKyIpIik7Yz1jLnJlcGxhY2UoInskQk9EWVRZUEV9IixhLmZvcm1kYXRhLnZlaGljbGVUeXBlPyQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLnZlaGljbGVUeXBlKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRUSVRMRX0iLGEuZm9ybWRhdGEudGl0bGU\/YS5mb3JtZGF0YS50aXRsZToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRGSVJTVE5BTUV9IixhLmZvcm1kYXRhLmZpcnN0TmFtZSk7Yz1jLnJlcGxhY2UoInskTEFTVE5BTUV9IiwKYS5mb3JtZGF0YS5sYXN0TmFtZSk7Yz1jLnJlcGxhY2UoInskRU1BSUx9IixhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyk7Yz1jLnJlcGxhY2UoInskUEhPTkVOVU1CRVJ9IixhLmZvcm1kYXRhLnBob25lTnVtYmVyKTtjPWMucmVwbGFjZSgieyRCSVJUSERBWX0iLGEuZm9ybWRhdGEuYmlydGhkYXRlRGF5KyIvIithLmZvcm1kYXRhLmJpcnRoZGF0ZU1vbnRoKyIvIithLmZvcm1kYXRhLmJpcnRoZGF0ZVllYXIpO2M9Yy5yZXBsYWNlKCJ7JEJVREdFVH0iLGEuZm9ybWRhdGEuYnVkZ2V0PyQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLmJ1ZGdldCsnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVExZRFJJVklOR30iLGEuZm9ybWRhdGEuY3VycmVudGx5RHJpdmluZz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTsKYz1jLnJlcGxhY2UoInskQ1VSUkVOVEVTVElNQVRFRENSRURJVFJBVElOR30iLGEuZm9ybWRhdGEuY3JlZGl0UmF0aW5nPyQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLmNyZWRpdFJhdGluZysnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskSU5URVJFU1RFRERPV05PUFRJT059IixhLmZvcm1kYXRhLmRvd25PcHRpb25zPyQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLmRvd25PcHRpb25zKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UQUREUkVTU30iLGEuZm9ybWRhdGEuYWRkcmVzcyk7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVFJFU0lERU5DRVRZUEV9IiwkKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5yZW50T3JPd24rJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UT0NDVVBBVElPTkxFTkdUSH0iLAphLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzKyIgIiskKCIjRklOQU5DRV9GT1JNX0FERFJFU1NfVElNRVNfTU9OVEhTIikudmFsKCkpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZUkVOVH0iLCIkIithLmZvcm1kYXRhLm1vbnRobHlQYXltZW50KTtjPWMucmVwbGFjZSgieyRDVVJSRU5UT0NDVVBBVElPTn0iLGUpO2M9Yy5yZXBsYWNlKCJ7JFdPUktJTkdXSElMRUlOU0NIT09MfSIsIiIhPWEuZm9ybWRhdGEud29ya2luZ1doaWxlSW5TY2hvb2w\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEud29ya2luZ1doaWxlSW5TY2hvb2wrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRJTkNPTUVTT1VSQ0V9IiwiIiE9YS5mb3JtZGF0YS5vdGhlckVtcGxveW1lbnRTdGF0dXM\/CiQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLm90aGVyRW1wbG95bWVudFN0YXR1cysnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVE1PTlRMWUlOQ09NRX0iLCIkIithLmZvcm1kYXRhLm1vbnRobHlJbmNvbWUpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZSU5DT01FTEVOR1RIfSIsYS5mb3JtZGF0YS5tb250aGx5SW5jb21lX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfTU9OVEhTIikudmFsKCkpOyIiIT1hLmZvcm1kYXRhLmFkZHJlc3MyPyhjPWMucmVwbGFjZSgieyRQUkVWSU9VU0FERFJFU1N9IixhLmZvcm1kYXRhLmFkZHJlc3MyKSxjPWMucmVwbGFjZSgieyRQUkVWSU9VU09DQ1VQQVRJT05MRU5HVEh9IiwKYS5mb3JtZGF0YS5hZGRyZXNzMl95ZWFycysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzKyIgIiskKCIjRklOQU5DRV9GT1JNX0FERFJFU1NfVElNRVNfTU9OVEhTIikudmFsKCkpLGM9Yy5yZXBsYWNlKCIjI1BSRVZJT1VTQUREUkVTU0lORk9TVEFSVCMjIiwiIiksYz1jLnJlcGxhY2UoIiMjUFJFVklPVVNBRERSRVNTSU5GT0VORCMjIiwiIikpOmM9Yy5yZXBsYWNlKC8jI1BSRVZJT1VTQUREUkVTU0lORk9TVEFSVCMjW1xzXFNdKiMjUFJFVklPVVNBRERSRVNTSU5GT0VORCMjLywiIik7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVE1BS0V9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZT9hLmZvcm1kYXRhLmN1cnJlbnRNYWtlOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRNT0RFTH0iLCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD9hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDoKInJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVFlFQVJ9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhcj9hLmZvcm1kYXRhLmN1cnJlbnRZZWFyOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRTVE9DS05VTUJFUn0iLCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj9hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRjcmVkaXRCdXJlYXVDcmVkaXR9IiwiIiE9YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ\/YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIik7Yz1jLnJlcGxhY2UoInskU0lOfSIsInJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQURERURJTkZPfSIsIiIhPWEuZm9ybWRhdGEuYWRkZWRJbmZvP2EuZm9ybWRhdGEuYWRkZWRJbmZvOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JEVNUExPWUVSfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lPwphLmZvcm1kYXRhLmVtcGxveWVyTmFtZToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRFTVBMT1lFUlBIT05FfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZT9hLmZvcm1kYXRhLmVtcGxveWVyUGhvbmU6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskRU1QTE9ZRU1FTlRTVEFUVVNUSU1FfSIsYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcisiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aCsiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19NT05USFMiKS52YWwoKSk7Yz1jLnJlcGxhY2UoInskRU1QTE9ZRVJBRERSRVNTfSIsIiIhPWEuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyP2EuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENPTlNFTlRBQ0NPVU5UTU9OSVRPUklOR30iLAoiIiE9YS5mb3JtZGF0YS5jb25zZW50QWNjb3VudE1vbml0b3Jpbmc\/MT09YS5mb3JtZGF0YS5jb25zZW50QWNjb3VudE1vbml0b3Jpbmc\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDT05TRU5UQ1JFRElUQVNTRVNTTUVOVH0iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50PzE9PWEuZm9ybWRhdGEuY29uc2VudENyZWRpdEFzc2Vzc21lbnQ\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDT05TRU5UUElQRURBfSIsIiIhPWEuZm9ybWRhdGEuY29uc2VudFBpcGVkYT8xPT1hLmZvcm1kYXRhLmNvbnNlbnRQaXBlZGE\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDT05TRU5UQ0FTTH0iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRDYXNsPzE9PWEuZm9ybWRhdGEuY29uc2VudENhc2w\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTsiIiE9YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyPyhlPQokKCdbdmFsdWU9IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRCJdJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKSwiIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvMiYmKGUrPSIgKCIrYS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvMisiKSIpLGM9Yy5yZXBsYWNlKCJ7JFBSRVZJT1VTT0NDVVBBVElPTn0iLGUpLGM9Yy5yZXBsYWNlKCJ7JFBSRVZJT1VTRU1QTE9ZRVJ9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyP2EuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMjoicmVtb3ZlZW1wdHkiKSxjPWMucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSUEhPTkV9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llclBob25lMj9hLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUyOiJyZW1vdmVlbXB0eSIpLGM9Yy5yZXBsYWNlKCJ7JFBSRVZJT1VTRU1QTE9ZRU1FTlRTVEFUVVNUSU1FfSIsYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcjIrIiAiKwokKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMisiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19NT05USFMiKS52YWwoKSksYz1jLnJlcGxhY2UoInskUFJFVklPVVNFTVBMT1lFUkFERFJFU1N9IiwiIiE9YS5mb3JtZGF0YS5hZGRyZXNzRW1wbG95ZXIyP2EuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyMjoicmVtb3ZlZW1wdHkiKSxjPWMucmVwbGFjZSgiIyNQUkVWSU9VU09DQ1VQQVRJT05TVEFSVCMjIiwiIiksYz1jLnJlcGxhY2UoIiMjUFJFVklPVVNPQ0NVUEFUSU9ORU5EIyMiLCIiKSk6Yz1jLnJlcGxhY2UoLyMjUFJFVklPVVNPQ0NVUEFUSU9OU1RBUlQjI1tcc1xTXSojI1BSRVZJT1VTT0NDVVBBVElPTkVORCMjLywiIik7Yz1jLnJlcGxhY2UoInskUEFZTUVOVFRZUEV9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50VHlwZT9hLmZvcm1kYXRhLnBheW1lbnRUeXBlOgoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRQQVlNRU5UVEVSTX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRUZXJtP2EuZm9ybWRhdGEucGF5bWVudFRlcm06InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskUEFZTUVOVERPV05QQVlNRU5UfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50P2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50OiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JFBBWU1FTlRJTlRFUlZBTH0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD9hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbDoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRQQVlNRU5US01BTExPV0FOQ0V9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U\/YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskUEFZTUVOVFZBTFVFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFZhbHVlPwphLmZvcm1kYXRhLnBheW1lbnRWYWx1ZToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRSYXRlP2EuZm9ybWRhdGEucGF5bWVudFJhdGU6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskTk9QQVlNRU5UfSIsYS5mb3JtZGF0YS5ub1BheW1lbnQ\/IiI6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ1JFRElUREVDSVNJT059IixhLmNyZWRpdERlY2lzaW9uSFRNTD9hLmNyZWRpdERlY2lzaW9uSFRNTDoicmVtb3ZlZW1wdHkiKTsiIiE9YS5mb3JtZGF0YS50cmFkZUluVmFsdWU\/KGM9Yy5yZXBsYWNlKCJ7JFRSQURFTUFLRX0iLGEuZm9ybWRhdGEudHJhZGVJbk1ha2UpLGM9Yy5yZXBsYWNlKCJ7JFRSQURFTU9ERUx9IixhLmZvcm1kYXRhLnRyYWRlSW5Nb2RlbCksYz1jLnJlcGxhY2UoInskVFJBREVZRUFSfSIsYS5mb3JtZGF0YS50cmFkZUluVHJpbSksYz1jLnJlcGxhY2UoInskVFJBREVUUklNfSIsYS5mb3JtZGF0YS50cmFkZUluWWVhciksCmM9Yy5yZXBsYWNlKCJ7JFRSQURFVkFMVUV9IixhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksYz1jLnJlcGxhY2UoIiMjVFJBREVJTklORk9TVEFSVCMjIiwiIiksYz1jLnJlcGxhY2UoIiMjVFJBREVJTklORk9FTkQjIyIsIiIpKTpjPWMucmVwbGFjZSgvIyNUUkFERUlOSU5GT1NUQVJUIyNbXHNcU10qIyNUUkFERUlOSU5GT0VORCMjLywiIik7Yz1rLmVtYWlsQm9keUZvck11bHRpRGVhbGVyKGMpO2JvZHlMb3dlcj1jLnRvTG93ZXJDYXNlKCk7Zm9yKGU9MDstMTxib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTspe3Bvcz1ib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTtpZigtMT09cG9zKWJyZWFrO3JwbEVuZD1ib2R5TG93ZXIuaW5kZXhPZigiPGJyPiIscG9zKTtycGxTdGFydD1ib2R5TG93ZXIubGFzdEluZGV4T2YoIjxicj4iLHBvcyk7aWYoLTE9PXJwbEVuZHx8LTE9PXJwbFN0YXJ0KWJyZWFrO3JwbFN0cmluZz1jLnN1YnN0cmluZyhycGxTdGFydCxycGxFbmQpOwpjPWMucmVwbGFjZShycGxTdHJpbmcsIiIpO2JvZHlMb3dlcj1jLnRvTG93ZXJDYXNlKCk7ZSsrO2lmKDUwPGUpYnJlYWt9ZW1haWxIYW5kbGVyLnN1YmplY3Q9ZDtlbWFpbEhhbmRsZXIuYm9keT1jO2suc2V0RW1haWxIYW5kbGVyU2VuZCgpO2VtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOyIxIj09dSYmKGVtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiKTsiMSI9PXgmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCIpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJGSU5BTkNFIjtlbWFpbEhhbmRsZXIuaXNtb2JpbGVzaXRlPTE9PSQoIiNpc21vYmlsZSIpPyJZRVMiOiJOTyI7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1hLmZvcm1kYXRhLmZpcnN0TmFtZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPQphLmZvcm1kYXRhLmxhc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9YS5mb3JtZGF0YS5waG9uZU51bWJlcjtlbWFpbEhhbmRsZXIuY29udGFjdEFkZHJlc3M9YS5mb3JtZGF0YS5hZGRyZXNzO2VtYWlsSGFuZGxlci5jb250YWN0QmlydGg9YS5mb3JtZGF0YS5iaXJ0aGRhdGVEYXkrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlTW9udGgrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlWWVhcjtlbWFpbEhhbmRsZXIuc2FsZXNEZXB0PWEuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdDtlbWFpbEhhbmRsZXIubWFrZT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlO2VtYWlsSGFuZGxlci5tb2RlbD1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDtlbWFpbEhhbmRsZXIueWVhcj1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcjtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudEJ5U3RvY2s9ITE7ZW1haWxIYW5kbGVyLnNraXBHZW9Mb2M9CiEwO2VtYWlsSGFuZGxlci5wYXJ0aWFsPSExO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihmKXtmP2suc2V0RmluYW5jZUZvcm1TdGF0dXNUb1NlbnQoKTpjb25zb2xlLmxvZyhmKX07ZW1haWxIYW5kbGVyLnNlbmRNYWlsKCExKX19LHNldEZpbmFuY2VGb3JtU3RhdHVzVG9TZW50OmZ1bmN0aW9uKCl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L3NldEZpbmFuY2VNdWx0aXN0ZXBEYXRhU3RhdHVzVG9TZW50P3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLHR5cGU6IlBPU1QiLGRhdGE6e3VzZXJJZDprLnVzZXJJZCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGQpe2xldCBjPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IkZpbmFuY2VBY3Rpb25Cb3gifX0pO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQoYyk7aWYoIlNVQ0NFU1MiPT1kfHxudWxsPT09ZClhLnN0ZXA9MjEsay51c2VySWQoLTEpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpLAokKGRvY3VtZW50LmJvZHkpLnRyaWdnZXIoIm11bHRpRm9ybUZpbmFuY2VTdWJtaXQiKX19KX0scmVzZXRGb3JtOmZ1bmN0aW9uKCl7YS5mb3JtZGF0YT17dmVoaWNsZVR5cGU6IiIsYnVkZ2V0OiIiLGN1cnJlbnRseURyaXZpbmc6IiIsZW1haWxBZGRyZXNzOiIiLGNyZWRpdFJhdGluZzoiIixkb3duT3B0aW9uczoiIixiaXJ0aGRhdGVZZWFyOiIiLGJpcnRoZGF0ZU1vbnRoOiIiLGJpcnRoZGF0ZURheToiIixhZGRyZXNzOiIiLHNwbGl0QWRkcmVzczpbXSxhZGRyZXNzX3llYXJzOjAsYWRkcmVzc19tb250aHM6MCxhZGRyZXNzMjoiIixzcGxpdEFkZHJlc3MyOltdLGFkZHJlc3MyX3llYXJzOjAsYWRkcmVzczJfbW9udGhzOjAsYWRkcmVzc0VtcGxveWVyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyOltdLHJlbnRPck93bjoiIixtb250aGx5UGF5bWVudDowLGVtcGxveW1lbnRTdGF0dXM6IiIsZW1wbG95bWVudEFkZGVkSW5mbzoiIixlbXBsb3llck5hbWU6IiIsZW1wbG95ZXJQaG9uZToiIiwKZW1wbG95bWVudFN0YXR1c1llYXI6MCxlbXBsb3ltZW50U3RhdHVzTW9udGg6MCxlbXBsb3ltZW50QWRkZWRJbmZvMjoiIixlbXBsb3llck5hbWUyOiIiLGVtcGxveWVyUGhvbmUyOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyMjowLGVtcGxveW1lbnRTdGF0dXNNb250aDI6MCxhZGRyZXNzRW1wbG95ZXIyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyMjpbXSx3b3JraW5nV2hpbGVJblNjaG9vbDoiIixvdGhlckVtcGxveW1lbnRTdGF0dXM6IiIsbW9udGhseUluY29tZTowLG1vbnRobHlJbmNvbWVfeWVhcnM6MCxtb250aGx5SW5jb21lX21vbnRoczowLHRpdGxlOiIiLGZpcnN0TmFtZToiIixsYXN0TmFtZToiIixwaG9uZU51bWJlcjoiIixjdXJyZW50TWFrZToiIixjdXJyZW50TW9kZWw6IiIsY3VycmVudE1vZGVsVGV4dDoiIixjdXJyZW50WWVhcjoiIixjdXJyZW50U3RvY2tOdW1iZXI6IiIsY3VycmVudE1pbGVhZ2U6MTAsY3VycmVudFRyaW06IiIsY3VycmVudFN0eWxlaWQ6IiIsY3VycmVudENhcklkOiIiLApwYXltZW50VHlwZToiIixwYXltZW50VHlwZVJlYWw6IiIscGF5bWVudFRlcm06IiIscGF5bWVudFJhdGVUeXBlOiIiLHBheW1lbnRWYWx1ZToiIixiYXNlcGF5bWVudDoiIixwYXltZW50VG90YWxJbmNlbnRpdmU6MCxwYXltZW50VG90YWxGZWU6MCxwYXltZW50R1NUOjAscGF5bWVudEhTVDowLHBheW1lbnRQU1Q6MCxwYXltZW50RG93blBheW1lbnQ6MCxwYXltZW50S21BbGxvd2FuY2U6MCxwYXltZW50SW50ZXJ2YWw6IiIscGF5bWVudFJhdGU6IiIscGF5bWVudFJlc2lkdWFsVmFsdWU6MCxub1BheW1lbnQ6ITEsbXVsdGlfZGVhbGVyX3NlbmRUbzoiIixjcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIixTSU46IiIsYWRkZWRJbmZvOiIiLHZlaGljbGVTYWxlc0RlcHQ6Im90aGVyIix2ZWhpY2xlUHJpY2U6IiIsdmVoaWNsZVRyYW5zbWlzc2lvbjoiIix2ZWhpY2xlVHJpbToiIix2ZWhpY2xlQ29sb3I6IiIsaW5pdGlhbFRpdGxlU2hvdzohMCxtdWx0aUZyb21NaW5pOiExLHRyYWRlSW5NYWtlOiIiLAp0cmFkZUluTW9kZWw6IiIsdHJhZGVJblllYXI6IiIsdHJhZGVJblRyaW06IiIsdHJhZGVJblZhbHVlOiIifX0sY3JlZGl0QXBwU3VtaXNzaW9uOmZ1bmN0aW9uKCl7dmFyIGQ9YS5mb3JtZGF0YSxjPSQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpO2Quc2l0ZUlkPWM7ZC5jdXJyZW50RGVwdD1hLmN1cnJlbnREZXB0OyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLnNob3coKTthLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0iWUVTIjthLnN0ZXA9MjE7JC5hamF4KHt1cmw6Ii8iK3crYC9hamF4L3N1Ym1pdENyZWRpdEFwcGxpY2F0aW9uP3dzd2lkdGg9JHtlbmNvZGVVUklDb21wb25lbnQoIjAiKX1gLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOmQsc3VjY2VzczpmdW5jdGlvbihlKXtsZXQgZixnLGw9ZS5hcHBsaWNhdGlvbklkO2lmKGUuZXJyb3IpZj0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1ZXRVJST1JfTVNHX1VTRVIiLApiKS52YWwoKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX0xFQUQiLGIpLnZhbCgpLGEuY3JlZGl0RGVjaXNpb25IVE1MPWc7ZWxzZSBpZihsKXtpZihmPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfU1VDQ0VTU19NU0dfVVNFUiIsYikudmFsKCkrbCxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfU1VDQ0VTU19NU0dfTEVBRCIsYikudmFsKCkrIjxzdHJvbmc+IitsKyI8L3N0cm9uZz4iLGEuY3JlZGl0RGVjaXNpb25IVE1MPWcsYS5jcmVkaXRBcHBsaWNhdGlvbklkPWwsZS5hcHBsaWNhdGlvblN0YXR1cyYmZS5hcHBsaWNhdGlvblN0YXR1cy5zdGF0dXMpc3dpdGNoKGUuYXBwbGljYXRpb25TdGF0dXMuc3RhdHVzKXtjYXNlICJBcHByb3ZlZCI6Zis9Ijxicj48YnI+IiskKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX0FQUFJPVkFMX01TRyIsYikudmFsKCk7JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpO2JyZWFrO2Nhc2UgIlBlbmRpbmciOmYrPQoiPGJyPjxicj4iKyQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfUEVORElOR19NU0ciLGIpLnZhbCgpOyQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfUEVORElOR19NU0ciLGIpLnZhbCgpO2JyZWFrO2RlZmF1bHQ6Zis9Ijxicj48YnI+IiskKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX05PQVBQUk9WQUxfTVNHIixiKS52YWwoKSwkKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX05PQVBQUk9WQUxfTVNHIixiKS52YWwoKX19ZWxzZSBmPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfVldFUlJPUl9NU0dfVVNFUiIsYikudmFsKCksZz0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX0VSUk9SX01TR19MRUFEIixiKS52YWwoKSxhLmNyZWRpdERlY2lzaW9uSFRNTD1nOyQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRpdGxlIikuaGlkZSgpOyQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRleHQiKS5oaWRlKCk7JChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5odG1sKGYpOyQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuc2hvdygpOwokKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5oaWRlKCk7ay5zZW5kRW1haWwoKX19KX0scm91dGVPbmVDYWxsOmZ1bmN0aW9uKCl7dmFyIGQ9YS5mb3JtZGF0YSxjPSQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpO2Quc2l0ZUlkPWM7ZC5jdXJyZW50RGVwdD1hLmN1cnJlbnREZXB0OyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLnNob3coKTthLnN0ZXA9MjE7KGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZixnKT0+JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7ZT1lKyI\/Y2I9IisyMDM4MzQ3NDkzKk1hdGgucmFuZG9tKCk7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7bC5zZXRBdHRyaWJ1dGUoInNyYyIsZSk7bC5zZXRBdHRyaWJ1dGUoImFzeW5jIiwiZmFsc2UiKTtsZXQgcD1kb2N1bWVudC5oZWFkO3AuaW5zZXJ0QmVmb3JlKGwscC5maXJzdEVsZW1lbnRDaGlsZCk7CmwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9PntmKCl9LCExKX0pKX0pKCIvanMvcm91dGUxSGFuZGxlci5qcyIpLnRoZW4oKCk9PntsZXQgZT1uZXcgcm91dGUxRXZlbnRIYW5kbGVyKCExKTtlLm9uKCJjb25uZWN0ZWQiLChmLGcpPT57Y29uc29sZS5sb2coIkNvbm5lY3RlZCIpfSk7ZS5vbigicmVhZHkiLChmLGcpPT57Y29uc29sZS5sb2coIlJlYWR5Iik7ZS5yZXF1ZXN0Q3JlZGl0Q2hlY2soZCl9KTtlLm9uKCJlcnJvciIsKGYsZyk9Pntjb25zb2xlLmxvZygiRXJyb3I6ICVvIixmKTtlLmNsb3NlKCk7ay5zZXRDcmVkaXREZWNpc2lvbihmLm1lc3NhZ2UpOyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLmhpZGUoKTtrLnNlbmRFbWFpbCgpfSk7ZS5vbigiY3JlZGl0Q2hlY2tDb21wbGV0ZSIsKGYsZyk9Pntjb25zb2xlLmxvZygiQ3JlZGl0IENoZWNrIENvbXBsZXRlOiAlbyIsZik7ZS5jbG9zZSgpO2suc2V0Q3JlZGl0RGVjaXNpb24oZik7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpOwprLnNlbmRFbWFpbCgpfSk7ZS5vbigid2FpdGluZ09uUm91dGUxIiwoZixnKT0+e2NvbnNvbGUubG9nKCJXYWl0aW5nIG9uIFJvdXRlIDE6ICVvIixmKX0pfSl9LHNldENyZWRpdERlY2lzaW9uOmZ1bmN0aW9uKGQpe3ZhciBjLGU9IiI7aWYoZC5qc29uKXt2YXIgZj0iYXBwcm92ZWQiPT1kLmpzb24uc3RhdHVzPyJBcHByb3ZlZCI6IkRlbmllZCI7dmFyIGc9bnVsbCE9KGM9ZC5qc29uLmlkKT9jOiIiO3ZhciBsO2M9bnVsbCE9KGw9ZC5qc29uLmxlbmRlcik\/bDoiIjtkLmpzb24uZXJyb3Jtc2cmJiJObyBwYXltZW50Ij09ZC5qc29uLmVycm9ybXNnJiYoZj1kLmpzb24uZXJyb3Jtc2csYz1nPSIiKTtlPWQuanNvbi5lcnJvcm1zZ31lbHNlIGlmKGQuc3RhdGUpe2Y9IkRlbmllZCI7dmFyIHA7Zz1udWxsIT0ocD1kLnN0YXRlLmlkKT9wOiIiO2M9IiI7ZC5lcnJvcm1zZyYmIk5vIHBheW1lbnQiPT1kLmVycm9ybXNnJiYoZj1kLmVycm9ybXNnLGM9Zz0iIik7ZT1kLmVycm9ybXNnP2QuZXJyb3Jtc2c6CmQuZXJyb3J9ZWxzZSBmPSJEZW5pZWQiLGM9Zz0iIjsiQXBwcm92ZWQiIT1mPyhsPSQoIiNGSU5BTkNFX0ZPUk1fUk9VVEVPTkVfTk9BUFBST1ZBTF9NU0ciKS52YWwoKSwiTm8gcGF5bWVudCI9PWY\/KGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ZjoiUGFzIGRlIHBhaWVtZW50IixsPWwucmVwbGFjZSgiJFJvdXRlT25lSUQiLCIiKS5yZXBsYWNlKCIkRXJyb3JDb2RlIixmKSk6bD1nP2wucmVwbGFjZSgiJFJvdXRlT25lSUQiLGcpLnJlcGxhY2UoIiRFcnJvckNvZGUiLGUpOmwucmVwbGFjZSgiJFJvdXRlT25lSUQiLCIiKS5yZXBsYWNlKCIkRXJyb3JDb2RlIixlKSk6KGw9JCgiI0ZJTkFOQ0VfRk9STV9ST1VURU9ORV9BUFBST1ZBTF9NU0ciKS52YWwoKSxsPWwucmVwbGFjZSgiJE1ha2UiLGEuZm9ybWRhdGEuY3VycmVudE1ha2UpLGw9bC5yZXBsYWNlKCIkTW9kZWwiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dCksbD1sLnJlcGxhY2UoIiRZZWFyIiwKYS5mb3JtZGF0YS5jdXJyZW50WWVhciksbD1sLnJlcGxhY2UoIiRWZXJzaW9uIixhLmZvcm1kYXRhLmN1cnJlbnRUcmltKSxsPWwucmVwbGFjZSgiJExlbmRlciIsYyksbD1sLnJlcGxhY2UoIiRSZWZlcmVuY2VJRCIsZyksZj0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpOiIiLHA9IiIhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCk6JCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKSxmPWYhPXAmJiIiIT1mP2Y6cCxsPWwucmVwbGFjZSgiJERlYWxlck5hbWUiLGYpLGw9IiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPwpsLnJlcGxhY2UoIiRTdG9jayIsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXIpOmwucmVwbGFjZSgiKFN0b2NrICRTdG9jaykiLCIiKSxmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJBcHByb3ZlZCI6IkFwcHJvdXbDqSIpO2MmJihmKz0iICIrYyk7ZyYmKGYrPSIgKCIrZysiKSIpO2UmJihmKz0iXG4iK2UpO2c9W107ZC5yb3V0ZTFpZCYmZy5wdXNoKGQucm91dGUxaWQpO2Quc3RhdGUmJmQuc3RhdGUuaWQmJmcucHVzaChkLnN0YXRlLmlkKTtpZihkLmhpc3RvcnkpZm9yKGU9MDtlPGQuaGlzdG9yeS5sZW5ndGg7ZSsrKWQuaGlzdG9yeVtlXS5pZCYmZy5wdXNoKGQuaGlzdG9yeVtlXS5pZCk7ZW1haWxIYW5kbGVyLm9uQWZ0ZXJMZWFkQ3JlYXRlZD17YWN0aW9uOiJST1VURU9ORSIsY29udmVyc2F0aW9uSWRzOmd9O2EuY3JlZGl0RGVjaXNpb25IVE1MPWY7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCk7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLmhpZGUoKTsKJChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS50ZXh0KGwpOyQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuc2hvdygpfSxzZXRDdXJyZW50TWFrZU1vZGVsWWVhcjpmdW5jdGlvbigpe2lmKCIxIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzSW5zdGFudCIsYikudmFsKCkpe2Euc3RlcD0wO2EubmV4dFN0ZXA9SzthLmZvcm1kYXRhLm5vUGF5bWVudD0hMTthLmNhbGN1bGF0b3JGdW5jdGlvbnM9bnVsbDthLmZvcm1kYXRhLnBheW1lbnRUeXBlPSIiO2EuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsPSIiO2EuZm9ybWRhdGEucGF5bWVudFRlcm09IiI7YS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGU9IiI7YS5mb3JtZGF0YS5wYXltZW50UmVzaWR1YWxWYWx1ZT0iIjthLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT0iIjthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9IiI7YS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT0iIjthLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdD1bXTsKYS5mb3JtZGF0YS5wYXltZW50SW5jZW50aXZlc0xpc3Q9W107YS5mb3JtZGF0YS5iYXNlcGF5bWVudD0iIjthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEluY2VudGl2ZT0wO2EuZm9ybWRhdGEucGF5bWVudFRvdGFsRmVlPTA7YS5mb3JtZGF0YS5wYXltZW50R1NUPTA7YS5mb3JtZGF0YS5wYXltZW50SFNUPTA7YS5mb3JtZGF0YS5wYXltZW50UFNUPTA7YS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ9MDthLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT0iIjthLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT0wO2EuZm9ybWRhdGEucGF5bWVudEludGVydmFsPSIiO2EuZm9ybWRhdGEucGF5bWVudFJhdGU9IiI7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIik7ZC5yZXBsYWNlV2l0aChkLmNsb25lTm9kZSghMCkpfWEuZm9ybWRhdGEuY3VycmVudE1ha2U9JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS5sZW5ndGg\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoKToKYS5mb3JtZGF0YS5jdXJyZW50TWFrZTthLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS5sZW5ndGg\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7YS5mb3JtZGF0YS5jdXJyZW50WWVhcj0kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLmxlbmd0aCYmMCE9JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoKT8kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudFllYXI7YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikubGVuZ3RoPyQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyO3ZhciBjPSQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoKTswPT1wYXJzZUludChjKSYmCihjPSIiKTtpZigiIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhcnx8IiIhPWMpaWYoYykkLmdldEpTT04oIi9qcy9qc29uLyIrYysiLmpzb24iLGZ1bmN0aW9uKGYpe2EuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdD0idXNlZCI7YS5jdXJyZW50RGVwdD0iVVNFRCI7aWYoZi5pc25ld3x8Zi5kZW1vJiYiMSI9PSQoJ2lucHV0W25hbWU9IkZJTkFOQ0VfREVNT0FTTkVXIl0nLGIpLnZhbCgpKWEuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdD0ibmV3IixhLmN1cnJlbnREZXB0PSJORVdJTlYiLGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9Zi5zdHlsZUlkOzA8Zi5tYWtlY2VydCYmKGEuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdD0iY3BvIik7dmFyIGc9KGYudHJhbnNtaXNzaW9uRU4rIiIpLm1hdGNoKC8oYXV0b21hdGljfG1hbnVhbCkvaSk7Zz1nP2dbMF06IiI7YS5mb3JtZGF0YS52ZWhpY2xlQ29sb3I9CmYuY29sb3JFTjthLmZvcm1kYXRhLnZlaGljbGVQcmljZT1mLm9yaWdpbmFsUHJpY2U7YS5mb3JtZGF0YS52ZWhpY2xlVGFuc21pc3Npb249ZzthLmZvcm1kYXRhLnZlaGljbGVUcmltPWYudmVyc2lvbjthLmZvcm1kYXRhLmN1cnJlbnRUcmltPWYudmVyc2lvbjthLmZvcm1kYXRhLmN1cnJlbnRDYXJJZD1jO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9Zi5taWxlcztzd2l0Y2goZi5ib2R5VHlwZUlEKXtjYXNlICJTVVYiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX1NVViI7YnJlYWs7Y2FzZSAiVFJVQ0siOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX1RSVUNLIjticmVhaztjYXNlICJNSU5JVkFOIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9NSU5JVkFOIjticmVhaztkZWZhdWx0OmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX0NBUiJ9MD09YS5zdGVwJiZhLm5leHQoITApO2sucG9wdXBMYXVuY2hlZFRyYWNrKCl9KTtlbHNle2EuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdD0KIm5ldyI7ZD0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iLWVuIjoiLWZyIjt1cmw9Ii9qc29uLyIrYS5mb3JtZGF0YS5jdXJyZW50TWFrZS5yZXBsYWNlKCItIiwiXyIpLnJlcGxhY2UoIiAiLCJfIikrIi0iK2EuZm9ybWRhdGEuY3VycmVudE1vZGVsLnJlcGxhY2UoIi0iLCJfIikucmVwbGFjZSgiICIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcitkKyIuanNvbiI7aWYoIkJNVyI9PWEuZm9ybWRhdGEuY3VycmVudE1ha2V8fCJNZXJjZWRlcy1CZW56Ij09YS5mb3JtZGF0YS5jdXJyZW50TWFrZSl7dmFyIGU9JCgiI3RleHRNb2RlbE92ZXJyaWRlIikubGVuZ3RoJiYkKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS52YWwoKS5sZW5ndGg\/JCgiI3RleHRNb2RlbE92ZXJyaWRlIikudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7dXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKwoiLSIrZS5yZXBsYWNlKCItIiwiXyIpLnJlcGxhY2UoIiAiLCJfIikrIi0iK2EuZm9ybWRhdGEuY3VycmVudFllYXIrZCsiLmpzb24ifTA8PWEuZm9ybWRhdGEuY3VycmVudE1vZGVsLmluZGV4T2YoImh5YnJpZCIpJiYoZT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iTU9ERUxGT1JFTUFJTCJdJykubGVuZ3RoJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iTU9ERUxGT1JFTUFJTCJdJykudmFsKCkubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIl0nKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCx1cmw9Ii9qc29uLyIrYS5mb3JtZGF0YS5jdXJyZW50TWFrZS5yZXBsYWNlKCItIiwiXyIpKyItIitlLnJlcGxhY2UoIi0iLCJfIikrIi0iK2EuZm9ybWRhdGEuY3VycmVudFllYXIrZCsiLmpzb24iKTskKCIucGF5bWVudENhbGN1bGF0b3JWRFAiKS5sZW5ndGg\/YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIucGF5bWVudENhbGN1bGF0b3JWRFAiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKToKJCgiLnBheW1lbnRDYWxjQnRuIikubGVuZ3RoP2EuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiLnBheW1lbnRDYWxjQnRuIikuYXR0cigiZGF0YS1zdHlsZWlkIik6JCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGgmJihhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIiNhY3RpdmVTdHlsZUlEIikudmFsKCkpOyQuZ2V0SlNPTih1cmwsZnVuY3Rpb24oZil7aWYoZil7c3dpdGNoKGYuc2VjdGlvbil7Y2FzZSAic3V2IjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9TVVYiO2JyZWFrO2Nhc2UgInRydWNrcyI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfVFJVQ0siO2JyZWFrO2Nhc2UgIm1pbml2YW5zIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9NSU5JVkFOIjticmVhaztkZWZhdWx0OmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX0NBUiJ9IiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQmJmYuc3R5bGVzLmZvckVhY2goZnVuY3Rpb24oZyl7Zy5pZD09CmEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQmJihhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiIT1nLnRyaW0\/Zy50cmltOmcuQ0ZTdHlsZU5hbWUsYS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9Zy5tc3JwQWxsSW4pfSl9MD09YS5zdGVwJiYoYS5uZXh0KCEwKSxrLnBvcHVwTGF1bmNoZWRUcmFjaygpKX0pfWVsc2UiIiE9YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MmJjIxIT1hLnN0ZXAmJiIxIiE9JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI09QRU5FREZST01JTUFHRVBPUFVQIixiKS52YWwoKSYmYS5wdXNoUGFydGlhbCYmay5wdXNoRGF0YVRvU2VydmVyKCksLTE9PWEub3B0aW9uYWxTdGVwLmluZGV4T2YoYS5zdGVwKSYmYS5uZXh0KCEwKSxrLnBvcHVwTGF1bmNoZWRUcmFjaygpfSxnZXRDbGllbnRTdG9yYWdlRGF0YTpmdW5jdGlvbihkKXtsZXQgYz0iIjsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiYoYz1jbGllbnRTdG9yYWdlLmdldChkKSk7cmV0dXJuIGN9LApzZXRDbGllbnRTdG9yYWdlRGF0YTpmdW5jdGlvbihkLGMpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJmNsaWVudFN0b3JhZ2Uuc2V0KGQsYyl9LHNldENsaWVudFN0b3JhZ2VEYXRhVmFsdWVzOmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmKCIiIT09YS5mb3JtZGF0YS5maXJzdE5hbWUmJmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoImZpcnN0bmFtZSIsYS5mb3JtZGF0YS5maXJzdE5hbWUpLCIiIT09YS5mb3JtZGF0YS5sYXN0TmFtZSYmay5zZXRDbGllbnRTdG9yYWdlRGF0YSgibGFzdG5hbWUiLGEuZm9ybWRhdGEubGFzdE5hbWUpLCIiIT09YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MmJmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoImVtYWlsIixhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyksIiIhPT1hLmZvcm1kYXRhLnBob25lTnVtYmVyJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJwaG9uZSIsYS5mb3JtZGF0YS5waG9uZU51bWJlcikpfSwKc2V0RGVwYXJ0bWVudDpmdW5jdGlvbigpe3ZhciBkPWVtYWlsSGFuZGxlci5nZXREZXAoKTtpZigiTkVXIiE9ZHx8Ik5FV0lOViIhPWR8fCJVU0VEIiE9ZClkPSJORVciO2EuY3VycmVudERlcHQ9ZDsiTkVXIiE9ZHx8ImNhcmRldGFpbC5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpJiYidXNlZGNhcnMuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKXx8KGEuY3VycmVudERlcHQ9Ik5FV0lOViIpfSxzZXRUcmFkZUluOmZ1bmN0aW9uKCl7YS5mb3JtZGF0YS50cmFkZUluTWFrZT0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluTWFrZSJdJykudmFsKCk7YS5mb3JtZGF0YS50cmFkZUluTW9kZWw9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJbk1vZGVsIl0nKS52YWwoKTthLmZvcm1kYXRhLnRyYWRlSW5ZZWFyPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5ZZWFyIl0nKS52YWwoKTthLmZvcm1kYXRhLnRyYWRlSW5UcmltPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5UcmltIl0nKS52YWwoKTsKbGV0IGQ9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblZhbHVlIl0nKS52YWwoKSxjPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5WYWx1ZSJdJykuYXR0cigiZGF0YS1jdXJyZW50Iik7YyYmIiI9PWEuZm9ybWRhdGEudHJhZGVJblZhbHVlP2EuZm9ybWRhdGEudHJhZGVJblZhbHVlPWM6IiI9PWEuZm9ybWRhdGEudHJhZGVJblZhbHVlJiYoYS5mb3JtZGF0YS50cmFkZUluVmFsdWU9ZCk7IiIhPWEuZm9ybWRhdGEudHJhZGVJblZhbHVlJiYoJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIixiKS52YWwoYS5mb3JtZGF0YS50cmFkZUluVmFsdWUpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIsYikuYXR0cigibWF4IixkKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLGIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbCIsYikuaGlkZSgpKX0sZ2V0Q3VycmVudEJ1ZGdldDpmdW5jdGlvbihkKXtyZXR1cm4iMSI9PQokKCdpbnB1dFtuYW1lPSJGSU5BTkNFX01VTFRJU1RFUF9ISUdIX0JVREdFVF9DSEVDSyJdJykudmFsKCk\/NTAwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX1VOREVSXzUwMCI6Njc2PD1kJiY4NTA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl82NzZfQU5EXzg1MCI6ODUxPD1kJiYxMTAwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fODUxX0FORF8xMTAwIjoxMzUwPGQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfT1ZFUl8xMzUxIjo1MDE8PWQmJjY3NT49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzUwMV9BTkRfNjc1IjoiRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzExMDFfQU5EXzEzNTAiOiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9NVUxUSVNURVBfVkVSWUhJR0hfQlVER0VUX0NIRUNLIl0nKS52YWwoKT85MDA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfOTAwIjoxMTUxPD1kJiYxNDAwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTE1MV9BTkRfMTQwMCI6CjE0MDE8PWQmJjE2NTA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xNDAxX0FORF8xNjUwIjoxOTAwPGQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfT1ZFUl8xOTAxIjo5MDE8PWQmJjExNTA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl85MDFfQU5EXzExNTAiOiJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTY1MV9BTkRfMTkwMCI6MzUwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX1VOREVSXzM1MCI6NjAxPD1kJiY3NTA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl82MDFfQU5EXzc1MCI6NzUxPD1kJiY5MDA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl83NTFfQU5EXzkwMCI6OTAwPGQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfT1ZFUl85MDEiOjM1MTw9ZCYmNDc1Pj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMzUxX0FORF80NzUiOiJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNDc2X0FORF82MDAifSxzZXRFbWFpbEhhbmRsZXJTZW5kOmZ1bmN0aW9uKCl7aWYoMD09CmEuZm9ybWRhdGEubXVsdGlGcm9tTWluaXx8ImZhbHNlIj09YS5mb3JtZGF0YS5tdWx0aUZyb21NaW5pKWVtYWlsSGFuZGxlci5zZW5kVG89JCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9fRU1BSUwiLGIpLnZhbCgpLGVtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9JCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9BREZfRU1BSUwiLGIpLnZhbCgpLGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSIiIT0kKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiLGIpLnZhbCgpPyQoIiNGSU5BTkNFX0ZPUk1fREVBTEVSTkFNRSIsYikudmFsKCk6ZW1haWxIYW5kbGVyLmRlYWxlck5hbWU7ZW1haWxIYW5kbGVyLnZlaGljbGVUeXBlPWEuZm9ybWRhdGEudmVoaWNsZVR5cGU7ZW1haWxIYW5kbGVyLmNhcmlkPWEuZm9ybWRhdGEuY3VycmVudENhcklkO2lmKC0xPT09Wy0xLCItMSIsIiJdLmluZGV4T2YoYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvKSl7dmFyIGQ9JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLApiKS5maW5kKCJzZWxlY3QiKS5maW5kKCI6c2VsZWN0ZWQiKTtlbWFpbEhhbmRsZXIuc2VuZFRvPWQuZGF0YSgiZW1haWxmaW5hbmNlIil8fGQuZGF0YSgiZW1haWwiKTtlbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG89ZC5kYXRhKCJlbWFpbGZpbmFuY2UiKXx8ZC5kYXRhKCJlbWFpbCIpO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9ZC5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKXx8ZC5kYXRhKCJlbWFpbGFkZiIpO2VtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1kLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfHxkLmRhdGEoImVtYWlsYWRmIik7ZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9ZC50ZXh0KCk7ZW1haWxIYW5kbGVyLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSEwfX0saW5pdFNlbGVjdE11bHRpRGVhbGVyOmZ1bmN0aW9uKCl7dmFyIGQ9JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpO2lmKDA9PT1kLmxlbmd0aClhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG89Ci0xLGEubmV4dCghMCk7ZWxzZXt2YXIgYz0kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikubGVuZ3RoPyQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS52YWwoKToibG9jYXRpb24iOygwPCQoIiN0YXJnZXRQYWdlIikubGVuZ3RoJiYiQ0FSREVUQUlMUyI9PT0kKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwiIiE9JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCkmJiIxIj09JCgiI0ZJTkFOQ0VfRk9STV9BRE1JTl9TSE9XUEhZU0lDQUxBRERSRVNTX0NIRUNLIikudmFsKCkpJiYibG9jYXRpb24iPT1jPyhhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG89LTEsYS5uZXh0KCEwKSk6IiI9PT0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikudGV4dCgpLnRyaW0oKSYmKCQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS5hcHBlbmQoZC5odG1sKCkpLCIiIT09YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmCiJ1bmRlZmluZWQiIT09dHlwZW9mIG11bHRpRGVhbGVyU2VsZWN0JiYoZD0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0IiksbXVsdGlEZWFsZXJTZWxlY3QuZmlsdGVyKGQpLmJ5TWFrZShhLmZvcm1kYXRhLmN1cnJlbnRNYWtlKSksJCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7JCh0aGlzKS5jc3MoImJvcmRlci1jb2xvciIsIiIpO2EuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0kKHRoaXMpLnZhbCgpO2suY2hlY2tWYWxpZGl0eSgpfSkpfX0sbXVsdGlEZWFsZXJGb3JtU3RhdHVzOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIikubGVuZ3RoPyEwOiIiIT09YS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvfSxlbWFpbEJvZHlGb3JNdWx0aURlYWxlcjpmdW5jdGlvbihkKXtpZigwPT09JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpLmxlbmd0aClyZXR1cm4gZDsKdmFyIGM9JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCA6c2VsZWN0ZWQiKSxlPSQoIiNwb3N0TGVhZExhYmVsIikudmFsKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgZSYmYy5sZW5ndGg\/KGU9ZS5yZXBsYWNlKCJ7JE1VTFRJREVBTEVSTkFNRX0iLGMudGV4dCgpKS5yZXBsYWNlKCJ7JFBPU1RfTEVBRF9FTUFJTFN9IiwiIiksZD1kLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGUpKTokKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aCYmIiIhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCk\/KGM9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8KIkNvbmNlc3Npb24gb++\/vSBlc3Qgc2l0de+\/vSBsZSB277+9aGljdWxlOiAiOiJEZWFsZXIgd2hlcmUgdGhlIHZlaGljbGUgaXMgbG9jYXRlZDogIixjKz0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpLGQ9ZC5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixjKSk6ZD1kLnJlcGxhY2UoLzxiclxzP1wvPntcJERFQUxFUl9TRU5EVE99KGJyXHM\/XC8pPy8sIiIpLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLCIiKTtyZXR1cm4gZH0sY2hlY2tWYWxpZGl0eTpmdW5jdGlvbigpe2lmKGEudmFsaWRhdGlvblJ1bGVzLmhhc093blByb3BlcnR5KCJzdGVwIithLnN0ZXApKWZvcih2YXIgZD0wO2Q8YS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2Euc3RlcF0ubGVuZ3RoO2QrKylpZihrW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdW2RdLmZ1bmNdKGEuZm9ybWRhdGFbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2Euc3RlcF1bZF0udmFsdWVdKSkkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsCmIpLmFkZENsYXNzKCJpc1ZhbGlkIik7ZWxzZXskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikucmVtb3ZlQ2xhc3MoImlzVmFsaWQiKTticmVha31lbHNlICQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uIixiKS5hZGRDbGFzcygiaXNWYWxpZCIpfSxwb3B1cExhdW5jaGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQb3B1cCBsYXVuY2hlZCIpOyFrLnVzZXJJZCgpJiZhLmZpcnN0U3RlcCYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIiwxKTtrLnN0ZXBUcmlnZ2VyKCExKX0sc3RlcDJWaWV3ZWRUcmFjazpmdW5jdGlvbigpe2goIlN0ZXAgMiB2aWV3ZWQiKX0sZW1haWxTdGVwVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJFbWFpbCBzdGVwIHZpZXdlZCIpfSwKcGhvbmVTdGVwVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQaG9uZSBzdGVwIHZpZXdlZCIpfSxlbWFpbFByb3ZpZGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJFbWFpbCBwcm92aWRlZCIpfSxwaG9uZVByb3ZpZGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQaG9uZSBwcm92aWRlZCIpfSxzdGVwVHJpZ2dlcjpmdW5jdGlvbihkKXtkPXtzdGVwOmEuZ2V0TGluZWFyc3RlcChkKSxtYWtlOmEuZm9ybWRhdGEuY3VycmVudE1ha2UsbW9kZWw6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwseWVhcjphLmZvcm1kYXRhLmN1cnJlbnRZZWFyLGJvZHlUeXBlOmEuZm9ybWRhdGEudmVoaWNsZVR5cGUsc2FsZXNEZXB0OmEuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdCx2ZWhpY2xlQ29sb3I6YS5mb3JtZGF0YS52ZWhpY2xlQ29sb3IsdmVoaWNsZVByaWNlOmEuZm9ybWRhdGEudmVoaWNsZVByaWNlLHZlaGljbGVUYW5zbWlzc2lvbjphLmZvcm1kYXRhLnZlaGljbGVUYW5zbWlzc2lvbix2ZWhpY2xlVHJpbTphLmZvcm1kYXRhLnZlaGljbGVUcmltfTsKJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnRyaWdnZXIoImZvcm0uc3RlcCIsZCk7YS5maXJzdFN0ZXA9ITF9fTt3aW5kb3cuYXBwVGVzdD1hO3ZhciBVOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzZWxlY3QsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHRleHRhcmVhIikub24oImNoYW5nZSBpbnB1dCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoVSk7VT1zZXRUaW1lb3V0KGsuY2hlY2tWYWxpZGl0eSw1MDApfSk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl0nKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJzZWxlY3QiKX0pO3JldHVybntzdGFydDpQLGhhc1VzZXI6ay5oYXNVc2VyfX0KJChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9uKCJyZXZlYWw6b3BlbiIsIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiLGZ1bmN0aW9uKCl7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0Iil9KTskKGRvY3VtZW50KS5vbigicmV2ZWFsOm9wZW4iLCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIsZnVuY3Rpb24oKXskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQiKX0pfSk7Ci8qKiAvanMvY2FsY3VsYXRvckZ1bmN0aW9ucy5qcyAqKi8KdmFyIF9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wMi0yMCAxMTozMDoxOCI7J3VzZSBzdHJpY3QnO2NsYXNzIGNhbGN1bGF0b3JGdW5jdGlvbnN7Y29uc3RydWN0b3IoYSl7dGhpcy5wYXJlbnQ9YTt0aGlzLnBhcmVudE5hbWU9dGhpcy5wYXJlbnQucmVwbGFjZSgiIyIsIiIpO3RoaXMuc2V0VHJpZ2dlcnMoKX1pbml0KGEsZSxiLGYsbSxnLGgscCxuKXt2YXIgcT10aGlzLnBhcmVudDt0aGlzLnN0eWxlaWQ9YTt0aGlzLnBheW1lbnRUeXBlPWU7dGhpcy50cmFkZUluVmFsdWU9JChxKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCk\/cGFyc2VJbnQoJChxKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCkpOjA7dGhpcy5kb3ducGF5bWVudD0wPmItdGhpcy50cmFkZUluVmFsdWU\/MDpiLXRoaXMudHJhZGVJblZhbHVlO3RoaXMub3B0aW9uc0Ftb3VudD1mO3RoaXMucGF5bWVudEZyZXF1ZW5jeT1tO3RoaXMua21BbGxvd2FuY2U9Zzt0aGlzLmlzSW52ZW50b3J5PWg\/aDohMTt0aGlzLnNuPXA\/cDoiIjt0aGlzLnZpbj1uPwpuOiIiO3RoaXMubG9hZFBheW1lbnRzKCEwKX1zZXRJbml0aWFsVmlldyhhKXt2YXIgZT10aGlzLnBhcmVudCxiPXRoaXM7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2Ugb3B0aW9uIikucmVtb3ZlKCk7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwodGhpcy5kb3ducGF5bWVudCk7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoYS5jdXJyZW50UGF5bWVudFswXS5pbnRlcnZhbCk7bGV0IGY9ImxlYXNlIj09YS5jdXJyZW50UGF5bWVudFswXS50eXBlPyJsZWFzaW5nIjoiZmluYW5jaW5nIjskKGUrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nIitmKyInXSIpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOzA9PWEuZmluYW5jZS5sZW5ndGg\/JChlKwoiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLmhpZGUoKTokKGUrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5zaG93KCk7aWYoMD09YS5sZWFzZS5sZW5ndGgpJChlKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLmhpZGUoKTtlbHNleyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5zaG93KCk7bGV0IGc9W107YS5sZWFzZS5mb3JFYWNoKGZ1bmN0aW9uKGgpey0xPT0kLmluQXJyYXkoaC5rbV9hbGxvd2FuY2UsZykmJmcucHVzaChoLmttX2FsbG93YW5jZSl9KTtnLmZvckVhY2goZnVuY3Rpb24oaCl7bGV0IHA9Yi5wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihoLnRvRml4ZWQoMCkpOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikuYXBwZW5kKG5ldyBPcHRpb24ocCsiIGttIixoKSl9KTt2YXIgbT0yRTQ7YS5jdXJyZW50UGF5bWVudFswXSYmInVuZGVmaW5lZCIhPT0KdHlwZW9mIGEuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlJiYobT0wPGEuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlP2EuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlOjJFNCk7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwobSl9dGhpcy5rbUFsbG93YW5jZT0kKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpOyJsZWFzaW5nIj09Zj8kKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKTokKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTskKCJib2R5Iikub24oImNsaWNrIHRhcCIsZSsiIC5maW5hbmNpbmctb3B0aW9uLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgKiIsZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKX0pOwokKCJib2R5Iikub24oImNoYW5nZSIsZSsnIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJyxmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudmFsKCksaD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKGUrIiAuZmluYW5jaW5nLW9wdGlvbiIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraCsnIl0nKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraCsnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLGUrJyBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScsCmZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS52YWwoKSxoPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoZSsiIC5maW5hbmNpbmctb3B0aW9uIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bdmFsdWU9IicrZysnIl1bZGF0YS1yYXRldHlwZT0iJytoKyciXScpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bdmFsdWU9IicrZysnIl1bZGF0YS1yYXRldHlwZT0iJytoKyciXScpLnByb3AoImNoZWNrZWQiLCEwKTskKHRoaXMpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIil9KX1zZXRUcmlnZ2Vycygpe3ZhciBhPXRoaXMucGFyZW50LGU9dGhpczskKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLm9mZigiY2xpY2siKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vZmYoImNoYW5nZSIpOwokKGErIiAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLm9mZigiY2hhbmdlIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5vZmYoImNoYW5nZSIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Iikub2ZmKCJibHVyIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikub2ZmKCJibHVyIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKHRoaXMpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO2UucGF5bWVudFR5cGU9JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTsibGVhc2luZyI9PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik\/JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk6CiQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpO2UubG9hZFBheW1lbnRzKCl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIik\/KCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSk6KCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLnNob3coKSl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS50cmlnZ2VyKCJjaGFuZ2UiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZS5wYXltZW50RnJlcXVlbmN5PQokKHRoaXMpLnZhbCgpO2UubG9hZFBheW1lbnRzKCl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZS5rbUFsbG93YW5jZT0kKHRoaXMpLnZhbCgpO2UubG9hZFBheW1lbnRzKCl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLm9uKCJibHVyIixmdW5jdGlvbigpe2xldCBiPXBhcnNlSW50KCQodGhpcykudmFsKCkpP3BhcnNlSW50KCQodGhpcykudmFsKCkpOjA7ZS5kb3ducGF5bWVudD1iO2UubG9hZFBheW1lbnRzKCl9KTskKGErIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXtsZXQgYj1wYXJzZUludCgkKHRoaXMpLmF0dHIoIm1heCIpKXx8MCxmPXBhcnNlSW50KCQodGhpcykudmFsKCkpfHwwO2Y9Zj5iP2I6ZjskKHRoaXMpLnZhbChmKTtlLnRyYWRlSW5WYWx1ZT1mO19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIsCkpTT04uc3RyaW5naWZ5KHt2YWx1ZTpmfSksMSk7ZS5sb2FkUGF5bWVudHMoKX0pfWxvYWRQYXltZW50cyhhKXthPWE\/YTohMTtsZXQgZT0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQYXltZW50RGF0YUZvclN0eWxlSUQ\/d3N3aWR0aD0wIjt2YXIgYj10aGlzO2IudHJhZGVJblZhbHVlPXBhcnNlSW50KCQoYi5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoKT8kKGIucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCk6MCk7JC5hamF4KHt1cmw6ZSx0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDpiLnN0eWxlaWQscGF5bWVudFR5cGU6Yi5wYXltZW50VHlwZSxkb3ducGF5bWVudDpiLmRvd25wYXltZW50K2IudHJhZGVJblZhbHVlLG9wdGlvbnNBbW91bnQ6Yi5vcHRpb25zQW1vdW50LHBheW1lbnRGcmVxdWVuY3k6Yi5wYXltZW50RnJlcXVlbmN5LAprbUFsbG93YW5jZTpiLmttQWxsb3dhbmNlLG9wdGlvbnM6Yi5vcHRpb25zQW1vdW50LGlzSW52ZW50b3J5OmIuaXNJbnZlbnRvcnksc246Yi5zbix2aW46Yi52aW4sZm9yY2VUYXhlczohMH0sc3VjY2VzczpmdW5jdGlvbihmKXtmLmN1cnJlbnRQYXltZW50JiZmLmN1cnJlbnRQYXltZW50Lmxlbmd0aD8oYSYmYi5zZXRJbml0aWFsVmlldyhmKSwidW5kZWZpbmVkIiE9PXR5cGVvZiBjYWxjQ3VyUGF5bWVudCYmKGNhbGNDdXJQYXltZW50PWYpLGIuc2hvd1BheW1lbnRzKGYuY3VycmVudFBheW1lbnQsZi5wYXltZW50RmVlcyxmLm1ha2VpZCxmKSwkKCJib2R5ICIrYi5wYXJlbnQpLnRyaWdnZXIoInBheW1lbnRzUmVhZHkiKSk6JCgiYm9keSAiK2IucGFyZW50KS50cmlnZ2VyKCJub1BheW1lbnQiKX19KX1zaG93UGF5bWVudHMoYSxlLGIsZil7dmFyIG09dGhpczskKG0ucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmh0bWwoIiIpOyQobS5wYXJlbnQrCiIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmh0bWwoIiIpO2xldCBnPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yUm91bmRQYXltZW50IikudmFsKCk\/MDoyOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYkKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCk7bGV0IGg9W10scD0kKCIjb2VtQ2VydGlmaWNhdGlvbiIpLnZhbCgpfHwwOzU8YS5sZW5ndGg\/YS5mb3JFYWNoKGZ1bmN0aW9uKGspeygwPT1rLnRlcm0lMTJ8fDY0PT1rLnRlcm18fDQwPT1iJiY1MT09ay50ZXJtfHwyMD09YiYmWzI3LDMwLDM5LDQyXS5pbmNsdWRlcyhrLnRlcm0pfHxbMTYsMjFdLmluY2x1ZGVzKGIpfHw0Mj09ay50ZXJtJiYxMDE0PT1wfHxbMzAsNDJdLmluY2x1ZGVzKGsudGVybSkmJls0NzE1NjIsNDcxNTYzLDQ3MTU2NF0uaW5jbHVkZXMocGFyc2VJbnQoc2V0dGluZ3Muc3R5bGVpZCkpfHwKMjc9PWsudGVybSYmMjc9PWJ8fDUyPT1rLnRlcm0mJjM5PT1iKSYmaC5wdXNoKGspfSk6aD1hO3ZhciBuPXt9LHE9ITE7aC5mb3JFYWNoKGZ1bmN0aW9uKGssbCl7T2JqZWN0Lmhhc093bihuLGsudGVybSk\/cT0hMDpuW2sudGVybV09e307bltrLnRlcm1dW2sucmF0ZV90eXBlXT1sfSk7dmFyIEg9W107YVswXSYmImxlYXNlIj09YVswXS50eXBlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhWzBdLmttX2FsbG93YW5jZSYmKGE9MDxhWzBdLmttX2FsbG93YW5jZT9hWzBdLmttX2FsbG93YW5jZToyRTQsJChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKGEpLHRoaXMua21BbGxvd2FuY2U9JChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCkpO2xldCBJPWYudG90YWxJbmNlbnRpdmUsSj1xPyQoIiNMT1dFU1RQQVlNRU5UX0xBQkVMIikudmFsKCk6IiIsSz1xPyQoIiNMT1dFU1RSQVRFX0xBQkVMIikudmFsKCk6IiIsClY9MDskLmVhY2goaCxmdW5jdGlvbihrLGwpe2lmKCFILmluY2x1ZGVzKGwudGVybSkpe0gucHVzaChsLnRlcm0pO3ZhciBkPSJzdGFuZGFyZCI9PWwucmF0ZV90eXBlfHwyPk9iamVjdC5rZXlzKG5bbC50ZXJtXSkubGVuZ3RoP2w6aFtuW2wudGVybV0uc3RhbmRhcmRdLGM9Mj09T2JqZWN0LmtleXMobltsLnRlcm1dKS5sZW5ndGg\/aFtuW2wudGVybV0uc3VidmVudGVkXTohMSx4PTI9PU9iamVjdC5rZXlzKG5bbC50ZXJtXSkubGVuZ3RoP25bbC50ZXJtXS5zdWJ2ZW50ZWQ6ITEsdj1sLnRlcm0seT1sLmRvd25wYXltZW50LnRvRml4ZWQoMCksQj1kLnBheW1lbnQudG9GaXhlZChnKSxXPWQucGF5bWVudC50b0ZpeGVkKGcpO0I9Qi5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihDLHcpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+Jyt3KyI8L3N1cD4ifSk7bD1kLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChnKTt2YXIgWD1kLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChnKTtsPQpsLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKEMsdyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK3crIjwvc3VwPiJ9KTt2YXIgTD1kLnJhdGUsWT0icGF5bWVudCIraztrPSJwYXltZW50IitrKyJ3aXRoVGF4ZXMiO3Y9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IjxzcGFuPiIrdisiPC9zcGFuPiBtb250aCI6IjxzcGFuPiIrdisiPC9zcGFuPiBtb2lzIjt5PWA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke3l9PC9zcGFuPmArKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIgZG93biBwYXltZW50IjoiIGNvbXB0YW50Iik7dmFyIE09IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/IjxkaXY+IiskKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpKyI8L2Rpdj4iOiIrdHgiLHo9ZC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9kLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOjAsRD0iIjswPHBhcnNlRmxvYXQoeiktZC5yYXRlJiYoRCs9Cm0uZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKHosIiIsJ2NsYXNzPSItZnMxMCInKSk7dmFyIE49ZC50b3RhbE9ibGlnYXRpb25BbW91bnQ\/ZC50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxPPSdkYXRhLXRvb2x0aXA9IicrZC50b29sdGlwKyciJyxQPSdkYXRhLXRvb2x0aXA9IicrZC50b29sdGlwV2l0aFRheGVzKyciJyxyLFo9bnVsbCE9KHI9ZC5tMmRfZmluYW5jZSk\/cjpJO3I9InNpbmdsZS1jb2x1bW4iO3ZhciBFPSJzbWFsbC1ib3giLHQ9IiIsdT0iIjtpZihjKXtyPSJsZWZ0LXNlY3Rpb24iO0U9IiI7dD1jLnBheW1lbnQudG9GaXhlZChnKTtsZXQgQz1jLnBheW1lbnQudG9GaXhlZChnKTt0PXQucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oYWEsRil7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK0YrIjwvc3VwPiJ9KTt1PWMucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO2xldCB3PWMucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO3U9dS5yZXBsYWNlKC9cLihbMC05XSopLywKZnVuY3Rpb24oYWEsRil7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK0YrIjwvc3VwPiJ9KTt2YXIgUT1jLnJhdGUudG9GaXhlZCgyKSxiYT0icGF5bWVudCIreDt4PSJwYXltZW50Iit4KyJ3aXRoVGF4ZXMiO2xldCBBPWMuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/Yy5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLEc9IiI7MDxwYXJzZUZsb2F0KEEpLWMucmF0ZSYmKEcrPW0uZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKEEsIiIsJ2NsYXNzPSItZnMxMCInKSk7bGV0IFI9Yy50b3RhbE9ibGlnYXRpb25BbW91bnQ\/Yy50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxTPSdkYXRhLXRvb2x0aXA9IicrYy50b29sdGlwKyciJyxUPSdkYXRhLXRvb2x0aXA9IicrYy50b29sdGlwV2l0aFRheGVzKyciJyxVPWMubTJkX2ZpbmFuY2U7dD0nXHQ8ZGl2IGlkPSInK2JhKyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrUysnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JysKUSsnJSA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrUysiPjwvaT4iK0crJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+Jyt0Kyc8L3NwYW4+PC9kaXY+XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrTSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50Ilx0XHRcdFx0XHR2YWx1ZT0iJytjLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytjLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrCkMrJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytjLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytjLnRvdGFsSW50ZXJlc3QrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2MubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrQSsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytSKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytjLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFZhbHVlKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK1UrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2MuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrYy5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5mZWVzTGlzdCkpKwonIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuaW5jZW50aXZlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSysiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4iO3U9J1x0PGRpdiBpZD0iJyt4KyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrVCsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytRKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytUKyI+PC9pPiIrRysnPC9kaXY+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nKwp1Kyc8L3NwYW4+PC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytjLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytjLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytjLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrdysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2MucmVzaWR1YWxXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2MudG90YWxJbnRlcmVzdFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrYy5sdXhlVGF4QW1vdW50KwonIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrQSsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytSKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytjLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK1UrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2MuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrYy5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5mZWVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5pbmNlbnRpdmVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytjLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrCmMuaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytjLnBzdCsnIlx0XHRcdFx0Plx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSysiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4ifWM9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnK0UrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK3YrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK3krJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJytZKyciIGNsYXNzPSInK3IrJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK08rJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytCKyc8L3NwYW4+IDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnKwpPKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrTSsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrTCsiJSAiK0QrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrZC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrZC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrZC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrZC5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK1crJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytkLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJysKZC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytkLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK3orJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrTisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytaKyciICAgICAgICAgICAgICAgICBkYXRhLWluaXRpYWxQcmljZT0iJytkLmluaXRpYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1maW5hbFByaWNlPSInK2QuZmluYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGQuZmVlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGQuaW5jZW50aXZlc0xpc3QpKSsKJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSisiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+Iit0KyJcdDwvZGl2PjwvZGl2PiI7ZD0nPGRpdiBjbGFzcz0iZmluYW5jaW5nLW9wdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICcrRSsnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrdisnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJkb3duLXBheW1lbnQiPicreSsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJzZXBhcmF0b3JQYXkiPjwvZGl2Plx0PGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPlx0XHQ8ZGl2IGlkPSInK2srJyIgY2xhc3M9IicrcisnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrUCsnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nKwpsKyc8L3NwYW4+IDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1ArJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrTCsiJSAiK0QrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrZC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrZC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrZC5wYXltZW50V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrZC5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK1grJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJysKZC5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrZC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytkLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK3orJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrTisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytJKyciICAgICAgICAgICAgICAgICBkYXRhLWluaXRpYWxQcmljZT0iJytkLmluaXRpYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1maW5hbFByaWNlPSInK2QuZmluYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGQuZmVlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJysKYnRvYShKU09OLnN0cmluZ2lmeShkLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2QuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytkLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrZC5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSisiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+Iit1KyJcdDwvZGl2PjwvZGl2PiI7JChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQoYyk7JChtLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5hcHBlbmQoZCk7VisrfX0pO20uc2V0UGF5bWVudENhbGN1bGF0b3JQb3B1cFRvb2x0aXAoKX1zZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpe3ZhciBhPXRoaXMucGFyZW50LGU9dGhpcy5wYXJlbnROYW1lO2lmKCIxIj09CiQoIiNpc21vYmlsZSIpLnZhbCgpKSQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oZil7dHJ5e3ZhciBtPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksZz0kKHRoaXMpLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpPyJ3ZXN0IjoiZWFzdCI7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDptLGdyYXZpdHk6Zyx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChoKXt9fSk7ZWxzZXtmb3IodmFyIGI9MDs1PmI7YisrKSQoIiNkYXJrdG9vbHRpcC0iK2UrInBheW1lbnQiK2IpLmxlbmd0aCYmKCQoIiNkYXJrdG9vbHRpcC0iK2UrInBheW1lbnQiK2IpLnJlbW92ZSgpLCQoIiNkYXJrdG9vbHRpcC0iK2UrInBheW1lbnQiK2IrIndpdGhUYXhlcyIpLnJlbW92ZSgpKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGY9CiQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIik7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpmLGdyYXZpdHk6Im5vcnRoIix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246Im5vbmUifSl9Y2F0Y2gobSl7fX0pfX1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhKXtyZXR1cm4gYS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLCIsIil9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKGEsZSxiKXtiPXZvaWQgMD09PWI\/IiI6YjthPSI8c3BhbiAiK2UrIj4iK2ErIjwvc3Bhbj4lIjthPSJFTkdMSVNIIj09YWN0aXZlTGFuZz9hKyIgQVBSIjoiVGF1eCAiK2E7cmV0dXJuICQoIiNpc21vYmlsZSIpLnZhbCgpPyI8YnIvPjxkaXYgIitiKyI+KCIrYSsiKTwvZGl2PiI6IiA8ZGl2ICIrYisiPiggIithKyIgKTwvZGl2PiJ9fTsKLyoqIC9qcy9jb250YWN0UG9wdXAuanMgKiovCnZhciBfX19kMmNfY29udGFjdFBvcHVwanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxMzo0NiI7J3VzZSBzdHJpY3QnO3ZhciBjb250YWN0UG9wdXA9e3BvcHVwOiQoIiNjb250YWN0cG9wdXAiKSxvcHRpb25zOnt0eXBlOiIifSxzZXRDb25maWc6ZnVuY3Rpb24oYSl7Y29udGFjdFBvcHVwLm9wdGlvbnM9JC5leHRlbmQoe30sY29udGFjdFBvcHVwLm9wdGlvbnMsYSk7cmV0dXJuIGNvbnRhY3RQb3B1cH0saW5pdDpmdW5jdGlvbigpe2NvbnRhY3RQb3B1cC5zZXRDb25maWcoe3R5cGU6c2VsZi5zZXR0aW5ncy5mb3JtLnR5cGV9KTtjb250YWN0UG9wdXAucG9wdXAucG9wdXBpemUoe29uQmVmb3JlU2VuZE1haWw6Y29udGFjdFBvcHVwLm9uQmVmb3JlU2VuZE1haWx9KS5vcGVuKCk7cmV0dXJuIGNvbnRhY3RQb3B1cH0sb25CZWZvcmVTZW5kTWFpbDpmdW5jdGlvbihhKXtjb250YWN0UG9wdXAuc2V0RW1haWxIYW5kbGVyRnJvbUFkZHJlc3NlcygpO2VtYWlsSGFuZGxlci5jb25kaXRpb249Y29udGFjdFBvcHVwLmdldENvbmRpdGlvbigpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PWNvbnRhY3RQb3B1cC5nZXRUeXBlKCkudG9VcHBlckNhc2UoKTsKIkJOUCI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYoZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Ik5FVyIpO2VtYWlsSGFuZGxlci5za2lwR2V0RGVwPSEwO2VtYWlsSGFuZGxlci5ib2R5PWVtYWlsSGFuZGxlci5ib2R5LnJlcGxhY2UoInskTkFNRX0iLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lKyIgIitlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lKX0sZ2V0Q29uZGl0aW9uOmZ1bmN0aW9uKCl7c3dpdGNoKGNvbnRhY3RQb3B1cC5nZXRUeXBlKCkpe2Nhc2UgImJucCI6Y2FzZSAibmV3IjpjYXNlICJtYW51ZmFjdHVyZXIiOnJldHVybiJuZXciO2RlZmF1bHQ6cmV0dXJuInVzZWQifX0sZ2V0VHlwZTpmdW5jdGlvbigpe3JldHVybiBjb250YWN0UG9wdXAub3B0aW9ucy50eXBlfSxzZXRFbWFpbEhhbmRsZXJGcm9tQWRkcmVzc2VzOmZ1bmN0aW9uKCl7dmFyIGE9Y29udGFjdFBvcHVwLmdldFR5cGUoKTt0cnl7dmFyIGI9Y29udGFjdFBvcHVwLmdldEVtYWlscyhhKTsiIj09PWIuc2VuZFRvJiYKIiI9PT1iLnNlbmRUb0FERiYmKGI9Y29udGFjdFBvcHVwLmdldEVtYWlscygidXNlZCIpKTt2YXIgYz1iLnNlbmRUbyxkPWIuc2VuZFRvQURGOyIiPT09YyYmIiI9PT1kJiZjb25zb2xlLmxvZygiV2FybmluZzogYm90aCBlbWFpbCBhbmQgQURGIGFkZHJlc3NlcyBhcmUgZW1wdHkhIik7aWYoJCgiI2N1c3RvbUZvcm1fb3JpZ2luYWxzZW5kdG8iKS5sZW5ndGgmJiJPdGhlciI9PSQoIiNjdXN0b21Gb3JtX29yaWdpbmFsc2VuZHRvIikudmFsKCkpe3ZhciBlPSQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLnZhbCgpLGY9JCgiI2N1c3RvbUZvcm1fc2VuZHRvQURGIikudmFsKCk7aWYoIiIhPT1lfHwiIiE9PWYpYz1lLGQ9Zn1lbWFpbEhhbmRsZXIuc2VuZFRvPWM7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1kfWNhdGNoKGcpe2NvbnNvbGUubG9nKGcpfXJldHVybiBjb250YWN0UG9wdXB9LGdldEVtYWlsczpmdW5jdGlvbihhKXt2YXIgYj0kKCIjaGlkZGVuQ29udGFjdHBvcHVwIik7CiJibnAiPT1hJiYoYT0ibmV3Iik7dmFyIGM9Yi5maW5kKCIjZW1haWxfIithKS52YWwoKTthPWIuZmluZCgiI2VtYWlsQURGXyIrYSkudmFsKCk7cmV0dXJue3NlbmRUbzpjLHNlbmRUb0FERjphfX19LGluaXRDb250YWN0cG9wdXA9ZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2NvbnRhY3RQb3B1cC5pbml0KCl9LGNvbnRhY3RQb3B1cFN1Ym1pdD1mdW5jdGlvbigpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLnN1Ym1pdCgpfSxjb250YWN0UG9wdXBDbG9zZT1mdW5jdGlvbigpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9OwovKiogL2pzL3BheW1lbnRDYWxjdWxhdG9yLmpzICoqLwp2YXIgX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wMi0yNyAxMDozMDowNyI7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIHBvcHVwQ2FsY3VsYXRvckluaXRpYWxpemVkKCl7ZnVuY3Rpb24gYSgpe2QmJmQuYWJvcnQoKTtjYWxjVXBkYXRlUGF5bWVudFhociYmKGNhbGNVcGRhdGVQYXltZW50WGhyLmFib3J0KCksY2FsY1VwZGF0ZVBheW1lbnRYaHI9bnVsbCk7dmFyIGI9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudERhdGFGb3JTdHlsZUlEP3dzd2lkdGg9MCIsZT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxrPWdldE9wdGlvbnNBbW91bnQoZSksbD1nZXRBY2Nlc3Nvcmllc0Ftb3VudChlKTtsZXQgaD1nZXRTZWxlY3RlZEFjY2Vzc29yaWVzKGUpO3ZhciByPWdldFByb3RlY3Rpb25QbGFuc0Ftb3VudChlKSxxPWUuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWUubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8CiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSx1PWUuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/ZS5zdG9ja051bWJlcjoiIix5PWUuaGFzT3duUHJvcGVydHkoInZpbiIpP2UudmluOiIiO2lmKHEmJiF1KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO24mJih1PW4udmFsdWV8fCIiKX1xJiYheSYmKG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoeT1uLnZhbHVlfHwiIik7cSYmIWUuc3R5bGVpZCYmKG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihlLnN0eWxlaWQ9bi52YWx1ZXx8ZS5zdHlsZWlkKTtpZigiY2FzaCI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpKWVuYWJsZUNhc2hPcHRpb24oKTtlbHNle249cGFyc2VJbnQoJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCl8fAowKStwYXJzZUludCgkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpfHwwKTt2YXIgeD1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihmKXtmLmNoZWNrZWQmJihmPWYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmeC5wdXNoKGYpfSk7dmFyIHQ9bnVsbDtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKHQ9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSk7dmFyIEE9JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKTshQSYmdCYmdFszXSYmKEE9dFszXSk7dmFyIHo9JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik7IXomJnQmJnRbMF0mJih6PQp0WzBdKTshJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSYmdCYmdFsyXSYmJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwodFsyXSk7ZD0kLmFqYXgoe3VybDpiLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmUuc3R5bGVpZCxwYXltZW50VHlwZTp6LGRvd25wYXltZW50Om4sb3B0aW9uc0Ftb3VudDprLHBheW1lbnRGcmVxdWVuY3k6JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSxrbUFsbG93YW5jZTpBLG9wdGlvbnM6ayxpc0ludmVudG9yeTpxLHNuOnUsdmluOnksY29uZGl0aW9uYWxSZWJhdGVJZHM6eC5qb2luKCIsIiksYWNjZXNzb3JpZXM6bCxzZWxlY3RlZEFjY2Vzc29yaWVzOmgscHJvdGVjdGlvblBsYW5zOnJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7Zi5jdXJyZW50UGF5bWVudCYmZi5jdXJyZW50UGF5bWVudC5sZW5ndGgmJihzaG93UGF5bWVudHMoZi5jdXJyZW50UGF5bWVudCxmLnBheW1lbnRGZWVzLApmLm1ha2VpZCxmKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHc9JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdOmNoZWNrZWQnKTt3Lmxlbmd0aCYmIk5FV0NBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYodz17Y3VycmVudFBheW1lbnQ6dy5hdHRyKCJkYXRhLXJlYWxwYXltZW50IiksY3VycmVudFJhdGU6dy5hdHRyKCJkYXRhLXJhdGUiKSxwYXltZW50VGVybTp3LnZhbCgpLHBheW1lbnRUeXBlOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpLHBheW1lbnRJbnRlcnZhbDokKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLHBheW1lbnREb3duUGF5bWVudDpwYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8CjApK3BhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApLHRvdGFsSW50ZXJlc3Q6dy5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKSxsdXhlVGF4QW1vdW50OncuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50IikscmF0ZVR5cGU6dy5hdHRyKCJkYXRhLXJhdGV0eXBlIiksZWZmZWN0aXZlUmF0ZTp3LmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpLHRvdGFsQ29zdDp3LmF0dHIoImRhdGEtdG90YWxDb3N0Iil9LGNoYW5nZVBhZ2VQYXltZW50VmFsdWUodykpfSwyNTApKX19KX19dmFyIGQ9bnVsbDskKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YSgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTt2YXIgYj0KZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5jYWxjLXBheW1lbnQtY2FzaCIpOyQodGhpcykuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7c3dpdGNoKCEwKXtjYXNlICJsZWFzaW5nIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6Yi5oaWRkZW49ITA7JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5zaG93KCk7YnJlYWs7Y2FzZSAiZmluYW5jaW5nIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6Yi5oaWRkZW49ITA7JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5zaG93KCk7YnJlYWs7Y2FzZSAiY2FzaCI9PT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOmIuaGlkZGVuPSExLCQoIi5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyIikuaGlkZSgpLAokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksbnVsbCE9PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoYj1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLGJbMF09ImNhc2giLENvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsYi5qb2luKCItIiksbnVsbCwiLyIpKSx3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITAsInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuc2V0Qk5QVmlldyYmbW9kZWxDb25maWcuc2V0Qk5QVmlldyghMCwiY2FzaCIpfSQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudHJpZ2dlcigiYmx1ciIpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5vbigiY2hhbmdlIiwKZnVuY3Rpb24oKXthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLm9uKCJibHVyIixmdW5jdGlvbigpe2xldCBiPXBhcnNlSW50KCQodGhpcykudmFsKCkucmVwbGFjZSgvW15cZF0vZywiIikpfHwwO2lmKCJsZWFzaW5nIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpKXt2YXIgZT1wYXJzZUludCgkKCIjbWF4RG93blBheW1lbnRGb3JUcmltIikudmFsKCkpfHwwO2I+ZSYmKGI9ZSl9ZWxzZSBlPXBhcnNlSW50KCQoIiNtYXhEb3duUGF5bWVudEZpbmFuY2VGb3JUcmltIikudmFsKCkpfHwwLGI+ZSYmKGI9ZSk7JCh0aGlzKS52YWwoYik7YSgpfSk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGI9cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJtYXgiKSl8fDAsZT1wYXJzZUludCgkKHRoaXMpLnZhbCgpKXx8MDtlPWU+CmI\/YjplOyQodGhpcykudmFsKGUpO19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIsSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOmV9KSwxKTthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLmhpZGUoKSwKJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikub24oImNsaWNrIixmdW5jdGlvbigpe2dldFBvcENvbnRhaW5TZXR0aW5ncygpLmFscmVhZHlJbml0PSEwO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQ9ITApO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMTt2b2lkIDAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJm1vZGVsQ29uZmlnLmNoYW5nZVBheW1lbnRQbGFuUG9wdXAoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuY2xvc2UoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIC5jbG9zZS1yZXZlYWwtbW9kYWwiKS5vbigiY2xpY2siLApmdW5jdGlvbigpe3ZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuY2hhbmdlUGF5bWVudFBsYW5Qb3B1cCgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGI9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7Yi5zdHlsZWlkPSQodGhpcykudmFsKCk7JCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGgmJiQoIiNhY3RpdmVTdHlsZUlEIikudmFsKGIuc3R5bGVpZCk7cGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKTt1cGRhdGVVcmwoYil9KTskKCJib2R5Iikub24oImNsaWNrIHRhcCIsIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICoiLGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScpLnByb3AoImNoZWNrZWQiLAoiY2hlY2tlZCIpLnRyaWdnZXIoImNoYW5nZSIpfSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGI9JCh0aGlzKS52YWwoKSxlPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2IrJyJdW2RhdGEtcmF0ZXR5cGU9IicrZSsnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrYisnIl1bZGF0YS1yYXRldHlwZT0iJytlKyciXScpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIik7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSk7CiQoImJvZHkiKS5vbigiY2hhbmdlIiwnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyxmdW5jdGlvbigpe3ZhciBiPSQodGhpcykudmFsKCksZT0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytiKyciXVtkYXRhLXJhdGV0eXBlPSInK2UrJyJdJykucHJvcCgiY2hlY2tlZCIsITApLnRyaWdnZXIoImNoYW5nZSIpfSk7dmFyIGM9ITE7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGI9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksZT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKSxrPSQodGhpcykudmFsKCksbD0kKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLApoPSQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCkscj0kKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpPyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCk6MCxxPSQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpPyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpOjA7cj1wYXJzZUludChyKStwYXJzZUludChxKTtyPXIudG9GaXhlZCgwKTtxPWUrIi0iK2srIi0iK2wrIi0iK2grIi0iK3I7cSE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJm51bGwhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYod2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSEwLHZvaWQgMCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKVswXSYmInVuZGVmaW5lZCIhPQp0eXBlb2YgbW9kZWxDb25maWcmJnZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYoYz0hMCxtb2RlbENvbmZpZy5zZXRCTlBWaWV3KGMsZSkpLG51bGwhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiZDb29raWVzLnNldCgicHJldmlvdXNwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsQ29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIiksbnVsbCwiLyIpKTtjfHwidW5kZWZpbmVkIj09dHlwZW9mIG1vZGVsQ29uZmlnfHwidW5kZWZpbmVkIj09PXR5cGVvZiBtb2RlbENvbmZpZ3x8dm9pZCAwPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIil8fG1vZGVsQ29uZmlnLnNob3VsZFJlbG9hZEJOUFZpZXdPblBheW1lbnRDaGFuZ2UoYyxlKTtDb29raWVzLnNldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiLApxLG51bGwsIi8iKTt2YXIgdT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8ibW9udGhzIjoibW9pcyIseT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iJCIrcisiIGRvd24gcGF5bWVudCI6cisiICQgY29tcHRhbnQiO3E9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciB3ZWVrIGZvciI6InBhciBzZW1haW5lIHBvdXIiO3N3aXRjaChsKXtjYXNlICJ3ZWVrbHkiOnE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciB3ZWVrIGZvciI6InBhciBzZW1haW5lIHBvdXIiO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjpxPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJwZXIgMiB3ZWVrcyBmb3IiOiJwYXIgMiBzZW1haW5lcyBwb3VyIjticmVhaztjYXNlICJzZW1pbW9udGhseSI6cT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8idHdpY2UgYSBtb250aCBmb3IiOiIyIGZvaXMgcGFyIG1vaXMgcG91ciI7YnJlYWs7Y2FzZSAibW9udGhseSI6cT0KJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciBtb250aCBmb3IiOiJwYXIgbW9pcyBwb3VyIn1oPSJsZWFzaW5nIj09PWU\/aCsia20iOiIiO3ZhciBuPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJsZWFzaW5nIj09PWU\/IkxlYXNpbmciOiJGaW5hbmNpbmciOiJsZWFzaW5nIj09PWU\/IkxvY2F0aW9uIjoiRmluYW5jZW1lbnQiO2IudmVoaWNsZUluZm8mJihlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU9Yi52ZWhpY2xlSW5mby5tYWtlKyIgIisoYi52ZWhpY2xlSW5mby5tb2RlbHx8Yi52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSkrIiAiK2IudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUsZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2IudmVoaWNsZUluZm8ueWVhcisiICIrZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlOmVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZSsiICIrYi52ZWhpY2xlSW5mby55ZWFyLAplbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGUrPSIoIituKyIgIitxKyIgIitrKyIgIit1KyIuICIreSsiLiAiK2grIikiLGVtYWlsSGFuZGxlci5tYWtlPWIudmVoaWNsZUluZm8ubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9Yi52ZWhpY2xlSW5mby5tb2RlbHx8Yi52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSxlbWFpbEhhbmRsZXIudHJpbT1iLnZlaGljbGVJbmZvLkNGU3R5bGVOYW1lLGVtYWlsSGFuZGxlci55ZWFyPWIudmVoaWNsZUluZm8ueWVhcik7aWYoIk5FV0NBUlMiIT09KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSYmIlVTRURDQVJTIiE9PSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkpe3E9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7Yj0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO2g9JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKTt1PSQodGhpcykuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50Iik7eT0kKHRoaXMpLmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpOwpuPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpO3ZhciB4PSQodGhpcykuYXR0cigiZGF0YS10b3RhbENvc3QiKTtjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHtjdXJyZW50UGF5bWVudDpxLGN1cnJlbnRSYXRlOmIscGF5bWVudFRlcm06ayxwYXltZW50VHlwZTplLHBheW1lbnRJbnRlcnZhbDpsLHBheW1lbnREb3duUGF5bWVudDpyLHRvdGFsSW50ZXJlc3Q6aCxsdXhlVGF4QW1vdW50OnUscmF0ZVR5cGU6bixlZmZlY3RpdmVSYXRlOnksdG90YWxDb3N0Onh9KX15PSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk6Iit0eCI7aWYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmxlbmd0aCl7dT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giO3E9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7Yj0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO2g9IjEiPT0kKCIjcm91bmRQYXltZW50IikudmFsKCk\/CjA6MjtuPXBhcnNlRmxvYXQocSkudG9GaXhlZChoKTtuPW4ucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24odCxBKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrQSsiPC9zdXA+In0pO3E9JCgiI0lOVEVSVkFMX1NIT1JUX1dFRUtMWSIpLnZhbCgpO2g9NTI7c3dpdGNoKGwpe2Nhc2UgIndlZWtseSI6cT0kKCIjSU5URVJWQUxfU0hPUlRfV0VFS0xZIikudmFsKCk7aD01MjticmVhaztjYXNlICJiaXdlZWtseSI6cT0kKCIjSU5URVJWQUxfU0hPUlRfQklXRUVLTFkiKS52YWwoKTtoPTI2O2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjpxPSQoIiNJTlRFUlZBTF9TSE9SVF9TRU1JTU9OVEhMWSIpLnZhbCgpO2g9MjQ7YnJlYWs7Y2FzZSAibW9udGhseSI6cT0kKCIjSU5URVJWQUxfU0hPUlRfTU9OVEhMWSIpLnZhbCgpLGg9MTJ9bD15KyIvIitxOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYiYmx1ciI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCkmJgoobj0nPHNwYW4gY2xhc3M9ImJsdXItcHJpY2UiPicrbisiPC9zcGFuPiIpO3E9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2Uobik7cj1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShyKSsoIkVOR0xJU0giPT09dT8iIGRvd24iOiIgY29tcHRhbnQiKTtlPSJmaW5hbmNpbmciPT09ZT8iRU5HTElTSCI9PT11P2srIiBtb250aHMgZmluLiI6IkZpbi4gIitrKyIgbW9pcyI6IkVOR0xJU0giPT09dT9rKyIgbW9udGhzIGxlYXNlIjoiTG9jLiAiK2srIiBtb2lzIjtiPXBhcnNlRmxvYXQoYikudG9GaXhlZCgyKSsiJSI7dT1lKyIgLyAiK3IrIiBAICIrYisiOiI7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYoaz1wYXJzZUludChwYXJzZUludChrKS8xMipoKSxoPXN0b3JlLmdldCgiaTE4biIpLlBBWU1FTlRTLnRvTG93ZXJDYXNlKCksdT1lKyIgLyAiK2srIiAiK2grIiAvICIrcisiIEAgIitiKyI6Iik7JCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtcGF5bWVudC1kZXNjIikuaHRtbCh1KTsKJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtcGF5bWVudC1hbW91bnQiKS5odG1sKHEpOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIgLmJwLXRheC10eHQiKS50ZXh0KGwpO2s9JCh0aGlzKS5jbG9zZXN0KCIucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpOyIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkmJihrPSQodGhpcykuY2xvc2VzdCgiLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKSk7az1rLmF0dHIoImRhdGEtdG9vbHRpcCIpO2s9U3RyaW5nKGspLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpO2NoYW5nZUJuUFRvb2xUaXBNZXNzYWdlKGspOyJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZGVsQ29uZmlnJiYobW9kZWxDb25maWcuc2F2ZUNvbmZpZygpLG1vZGVsQ29uZmlnLmNhbGN1bGF0ZUFjY1BheW1lbnRzKCkpfX0pOwokKCJib2R5Iikub24oImNoYW5nZSIsIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giLGZ1bmN0aW9uKCl7aWYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5pcygiOnZpc2libGUiKXx8JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIikpImNhc2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik\/Y2FsY1VwZGF0ZVBheW1lbnRJbmZvKCk6YSgpfSl9ZnVuY3Rpb24gZXNjYXBlSFRNTChhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKX0KdmFyIGN0YVBheW1lbnRUZXh0RnI9W10sY3RhUGF5bWVudFRleHRFbj1bXSxjYWxjQ3VyUGF5bWVudD17fSxjdGFQYXltZW50VmFsdWVzPVtdLGNhc2hQcmljZUZvclBhZ2U9bnVsbCxjYWxjVXBkYXRlUGF5bWVudFhocj1udWxsOwpmdW5jdGlvbiB1cGRhdGVVcmwoYSl7dHJ5e2lmKCFhLnZlaGljbGVJbmZvKXJldHVybjt2YXIgZD1hLnZlaGljbGVJbmZvLGM9InVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzP25ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc3R5bGVzOmQubW9kZWxKU09OLnN0eWxlcyxiPXdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5zcGxpdCgiLyIpLnNsaWNlKDAsLTEpLmpvaW4oIi8iKSxlPWMuZmlsdGVyKGZ1bmN0aW9uKGspe3JldHVybiBrLmlkPT1hLnN0eWxlaWR9KS5wb3AoKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKGspO3JldHVybn1lJiYoYz1lLmVuZ2xpc2hUcmltfHwiIixkPWdldEN1cnJlbnRWZWhpY2xlUGF0aChkKSsiLSIrYy5yZXBsYWNlKC9cc3wtL2csIiAiKSxjLmxlbmd0aCYmd2luZG93LnBhcmVudC5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwiIixiKyIvIitkKyIuaHRtbCIpKX0KZnVuY3Rpb24gY2hhbmdlQm5QVG9vbFRpcE1lc3NhZ2UoYSl7YT0nPHNwYW4gY2xhc3M9InBheW1lbnRUb29sdGlwIGZhbCBmYS1pbmZvLWNpcmNsZSIgZGF0YS10b29sdGlwPSInK2ErJyI+PC9zcGFuPic7JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIikuaHRtbChhKTt0cnl7dmFyIGQ9JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIC5wYXltZW50VG9vbHRpcCIpLmF0dHIoImRhdGEtdG9vbHRpcCIpOyQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCAucGF5bWVudFRvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Y29udGVudDpkLGdyYXZpdHk6InNvdXRoIix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZhZGVJbiJ9KX1jYXRjaChjKXt9fQpmdW5jdGlvbiBwb3B1cGl6ZXJPbkNsb3NlKGEsZCl7InBheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiIT09YS5jdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQuaWQmJih3aW5kb3cudGVtcFBheW1lbnRTZWxlY3RDaGFuZ2VkJiYod2luZG93LnRlbXBQYXltZW50U2VsZWN0Q2hhbmdlZD0hMSx3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITApLCQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5vcGVuKDEpLCQoIi5yZXZlYWwtbW9kYWwiKS5vZmYoInBvcHVwaXplci5jbG9zZSIscG9wdXBpemVyT25DbG9zZSkpfQpmdW5jdGlvbiBnZXRQb3BDb250YWluU2V0dGluZ3MoKXt2YXIgYT0kKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLmRhdGEoInBvcHVwU2V0dGluZ3MiKTthLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSExO2Eubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0hMTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBhKXJldHVybiExOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRGV0YWlscyYmc2VhcmNoRGV0YWlscy52ZWhpY2xlPyhhLnBheW1lbnRUeXBlPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50c3x8ITEpPyJmaW5hbmNlIjphLnBheW1lbnRUeXBlLGEucGF5bWVudFR5cGU9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRQYXltZW50fHwhMSk\/ImxlYXNlIjphLnBheW1lbnRUeXBlLGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHM9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzfHwKITEpPyEwOiExLGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodFBheW1lbnR8fCExKT8hMDohMSk6KGEucGF5bWVudFR5cGU9IjEiPT0oYS5ub0xlYXNlfHwhMSk\/ImZpbmFuY2UiOmEucGF5bWVudFR5cGUsYS5wYXltZW50VHlwZT0iMSI9PShhLm5vRmluYW5jZXx8ITEpPyJsZWFzZSI6YS5wYXltZW50VHlwZSxhLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSIxIj09KGEubm9MZWFzZXx8ITEpPyEwOiExLGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0iMSI9PShhLm5vRmluYW5jZXx8ITEpPyEwOiExKTtyZXR1cm4gYX0KZnVuY3Rpb24gY2hhbmdlUGFnZVBheW1lbnRWYWx1ZShhKXt2YXIgZD1hLmN1cnJlbnRQYXltZW50LGM9YS5jdXJyZW50UmF0ZSxiPWEucGF5bWVudFRlcm0sZT1hLnBheW1lbnRUeXBlLGs9YS5wYXltZW50SW50ZXJ2YWwsbD1hLnBheW1lbnREb3duUGF5bWVudCxoPWEudG90YWxJbnRlcmVzdCxyPWEubHV4ZVRheEFtb3VudCxxPWEucmF0ZVR5cGUsdT1hLmVmZmVjdGl2ZVJhdGUseT1hLnRvdGFsQ29zdCxuPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIix4PWdldFBvcENvbnRhaW5TZXR0aW5ncygpLHQ9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JSb3VuZFBheW1lbnQiKS52YWwoKT8wOjIsQT0yPT10P01hdGguZmxvb3IocGFyc2VGbG9hdChkKSkudG9GaXhlZCgwKTpwYXJzZUZsb2F0KGQpLnRvRml4ZWQoMCk7ZD1wYXJzZUZsb2F0KGQpLnRvRml4ZWQodCk7dD1kLnNwbGl0KCIuIilbMV18fCIiO2Q9ZC5yZXBsYWNlKC9cLihbMC05XSopLywKZnVuY3Rpb24oQixFKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRSsiPC9zdXA+In0pOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYiYmx1ciI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCkmJihkPSc8c3BhbiBjbGFzcz0iYmx1ci1wcmljZSI+JytkKyI8L3NwYW4+Iik7dmFyIHo9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UoZCksZj1kKyIkIix3PSIkIitkLHY9ImxlYXNpbmciPT09ZT8iTG9jYXRpb24iOiJGaW5hbmNlbWVudCIscD0ibGVhc2luZyI9PT1lPyJMZWFzaW5nIjoiRmluYW5jaW5nIixtPWMrIiUiLGc9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK3R4IixEPWcrIi9tb2lzIixDPWcrIi9tdGgiO3N3aXRjaChrKXtjYXNlICJ3ZWVrbHkiOkQ9ZysiL3NlbSI7Qz1nKyIvd2VlayI7YnJlYWs7Y2FzZSAiYml3ZWVrbHkiOkQ9CmcrIi8yc2VtIjtDPWcrIi8yd2VlayI7YnJlYWs7Y2FzZSAic2VtaW1vbnRobHkiOkQ9ZysiL2JpbWVuc3VlbCI7Qz1nKyIvc2VtaW1vbnRobHkiO2JyZWFrO2RlZmF1bHQ6RD1nKyIvbW9pcyIsQz1nKyIvbW9udGgifXZhciBGPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpPyJzY3JhdGNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKT8ic3RyaWtlLXByaWNlLWJsYWNrIjoiIjoiIjtnPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGwpKyIgY29tcHRhbnQiO3ZhciBKPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGwpKyIgZG93biBwYXltZW50IjtsPXYrIiAiK2IrIiBtb2lzIjtwPXArIiAiK2IrIiBtb250aHMiO3o9JzxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCAnK0YrJyI+Jyt6Kyc8L3NwYW4+IEAgPHNwYW4gY2xhc3M9InR4dC1wYXltZW50Ij4nK20rIjwvc3Bhbj4iOzA8dS1jJiYoeis9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQodSwKJyBjbGFzcz0idHh0LXBheW1lbnQiICcpKTt1PSgiRU5HTElTSCI9PT1uP0M6RCkrIiAiKygiRU5HTElTSCI9PT1uP0o6ZykrKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCk\/IiI6JyA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwMDA7IiBjbGFzcz0idmRwSW5mb1Rvb2x0aXAgZmFyIGZhLWluZm8tY2lyY2xlIj48L3NwYW4+Jyk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTIsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUxIikuaHRtbCgiRU5HTElTSCI9PT1uP3A6bCk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTEsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUyIikuaHRtbCh6KTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMywgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTMiKS5odG1sKHUpO2c9ej0iIjtjYWxjQ3VyUGF5bWVudC5jdXJyZW50UGF5bWVudCYmCmNhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKGc9Y2FsY0N1clBheW1lbnQuY3VycmVudFBheW1lbnRbMF0udG90YWwsej1gQWZmaWNow4PCqSDDg8KgICR7Z30kYCxnPWBMaXN0ZWQgYXQgJCR7Z31gKTtjdGFQYXltZW50VGV4dEZyPVtgJHtmfSAke0R9YCxgJHtsfSBAICR7bX1gLGAke3p9YF07Y3RhUGF5bWVudFRleHRFbj1bYCR7d30gJHtDfWAsYCR7cH0gQCAke219YCxgJHtnfWBdO2N0YVBheW1lbnRWYWx1ZXM9W2EuY3VycmVudFBheW1lbnQsYyxiLGtdO3dpbmRvdy5wYXJlbnQuQU1QJiZ3aW5kb3cucGFyZW50LkFNUC5zZXRTdGF0ZSh7U1NSX1NUQVRFOntsZWFzZVRlcm1UZXh0OiJFTkdMSVNIIj09PW4\/cDpsLGxlYXNlUGF5bWVudFR4dDpBLGxlYXNlUGF5bWVudERlY2ltYWw6dCxsZWFzZVJhdGU6bSxsZWFzZVRheFRleHQ6dX19KTtjYWxjQ3VyUGF5bWVudC5jdXJUZXJtPWI7Y2FsY0N1clBheW1lbnQuY3VyUmF0ZT1jO2NhbGNDdXJQYXltZW50LmN1ckludGVydmFsPQprO2NhbGNDdXJQYXltZW50LnRheFRleHRGcj1EO2NhbGNDdXJQYXltZW50LnRheFRleHRFbj1DO2E9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudFRvb2x0aXBCeVN0eWxlSUQ\/d3N3aWR0aD0wIjtlPSJsZWFzaW5nIj09ZT8ibGVhc2UiOiJmaW5hbmNlIjtuPWdldE9wdGlvbnNBbW91bnQoeCk7QT14Lmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT14Lm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT09JCgiI1BBR0VJRCIpLnZhbCgpO3Q9eC5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT94LnN0b2NrTnVtYmVyOiIiO2Y9eC5oYXNPd25Qcm9wZXJ0eSgidmluIik\/eC52aW46IiI7dz1nZXRBY2Nlc3Nvcmllc0Ftb3VudCh4KTttPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoeCk7RD1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoeCk7CmxldCBMPVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKEIpe0IuY2hlY2tlZCYmKEI9Qi5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZMLnB1c2goQil9KTtBJiYhdCYmKEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25lc3RvY2tudW1iZXIiKSkmJih0PUMudmFsdWV8fCIiKTtBJiYhZiYmKEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoZj1DLnZhbHVlfHwiIik7JC5hamF4KHt1cmw6YSx0eXBlOiJQT1NUIixkYXRhVHlwZToiSFRNTCIsZGF0YTp7c3R5bGVpZDp4LnN0eWxlaWQsdHlwZTplLHBheW1lbnQ6cGFyc2VGbG9hdChkKSx0ZXJtOnBhcnNlSW50KGIpLHJhdGU6cGFyc2VGbG9hdChjKSxpbnRlcnZhbDprLG9wdGlvbnM6bix0b3RhbEludGVyZXN0OmgsaXNJbnZlbnRvcnk6QSxzbjp0LHZpbjpmLGx1eGVUYXhBbW91bnQ6ciwKcmF0ZV90eXBlOnEsdG90YWxDb3N0OnksY29uZGl0aW9uYWxSZWJhdGVJZHM6TC5qb2luKCIsIiksYWNjZXNzb3JpZXM6dyxzZWxlY3RlZEFjY2Vzc29yaWVzOm0scHJvdGVjdGlvblBsYW5zOkR9LGJlZm9yZVNlbmQ6ZnVuY3Rpb24oQil7dHJ5e2xldCBFPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO0UubGVuZ3RoJiZCLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixFLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goRSl7Y29uc29sZS5lcnJvcihCKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oQil7JCgiI2Rhcmt0b29sdGlwLXBheW1lbnRXcmFwcGVyLCAjZGFya3Rvb2x0aXAtdmRwUGF5bWVudFRvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBJbmZvVG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcFVzZWRJbmZvVG9vbHRpcCIpLnJlbW92ZSgpO3ZhciBFPSQoIi5uZXdWZHBBY3Rpb25zIikuaGFzQ2xhc3MoIndlc3QiKT8id2VzdCI6JCgiLnVzZWRWZHBBY3Rpb25zIikuaGFzQ2xhc3MoIndlc3QiKT8KIndlc3QiOiJlYXN0IjskKCIudmRwUGF5bWVudFRvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwSW5mb1Rvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwVXNlZEluZm9Ub29sdGlwIikuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6QixncmF2aXR5OkUsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9fSl9CmZ1bmN0aW9uIGdldEN1cnJlbnRWZWhpY2xlUGF0aChhKXt2YXIgZD1bZDJjbWVkaWEudXJsLnNhbml0aXplKGEubWFrZSksZDJjbWVkaWEudXJsLnNhbml0aXplKGEubW9kZWwpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLnllYXIpXS5qb2luKCItIik7IkVOR0xJU0giPT09KCQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCIpJiYoZD1bZDJjbWVkaWEudXJsLnNhbml0aXplKGEubWFrZSksZDJjbWVkaWEudXJsLnNhbml0aXplKGEubW9kZWwpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLnllYXIpXS5qb2luKCItIikpO3JldHVybiBkfQpmdW5jdGlvbiBzaG93UGF5bWVudHMoYSxkLGMsYil7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmh0bWwoIiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5odG1sKCIiKTt2YXIgZT0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6MjsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpO3ZhciBrPVtdLGw9JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8MDsiZmluYW5jZSI9PWFbMF0udHlwZSYmYVswXS5kb3ducGF5bWVudD5iLm1heERvd25GaW5hbmNlPygkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5zaG93KCksCiQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApKToibGVhc2UiPT1hWzBdLnR5cGUmJmFbMF0uZG93bnBheW1lbnQ+Yi5tYXhEb3duPygkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksCiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSksJCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSkpOwo1PGEubGVuZ3RoP2EuZm9yRWFjaChmdW5jdGlvbih2KXsoMD09di50ZXJtJTEyfHw2ND09di50ZXJtfHw0MD09YyYmNTE9PXYudGVybXx8MjA9PWMmJlsyNywzMCwzOSw0Ml0uaW5jbHVkZXModi50ZXJtKXx8WzE2LDIxXS5pbmNsdWRlcyhjKXx8NDI9PXYudGVybSYmMTAxND09bHx8WzMwLDQyXS5pbmNsdWRlcyh2LnRlcm0pJiZbNDcxNTYyLDQ3MTU2Myw0NzE1NjRdLmluY2x1ZGVzKHBhcnNlSW50KHNldHRpbmdzLnN0eWxlaWQpKXx8Mjc9PXYudGVybSYmMjc9PWN8fDUyPT12LnRlcm0mJjM5PT1jKSYmay5wdXNoKHYpfSk6az1hO3ZhciBoPXt9LHI9ITE7ay5mb3JFYWNoKGZ1bmN0aW9uKHYscCl7T2JqZWN0Lmhhc093bihoLHYudGVybSk\/cj0hMDpoW3YudGVybV09e307aFt2LnRlcm1dW3YucmF0ZV90eXBlXT1wfSk7dmFyIHE9W10sdT0hMSx5PSExO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYodT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzFdfHwKITEseT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzBdfHwhMSk7aWYoYVswXSYmImxlYXNlIj09YVswXS50eXBlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhWzBdLmttX2FsbG93YW5jZSl7dmFyIG49MDxiLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9iLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQ7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwobil9bGV0IHg9Yi50b3RhbEluY2VudGl2ZSx0PXI\/JCgiI0xPV0VTVFBBWU1FTlRfTEFCRUwiKS52YWwoKToiIixBPXI\/JCgiI0xPV0VTVFJBVEVfTEFCRUwiKS52YWwoKToiIjt2YXIgej0wOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciAuanMtdGVtcEttQWxsb3dlZCIpLnJlbW92ZSgpOyQuZWFjaChrLGZ1bmN0aW9uKHYscCl7aWYoIXEuaW5jbHVkZXMocC50ZXJtKSl7cS5wdXNoKHAudGVybSk7dmFyIG09CiJzdGFuZGFyZCI9PXAucmF0ZV90eXBlfHwyPk9iamVjdC5rZXlzKGhbcC50ZXJtXSkubGVuZ3RoP3A6a1toW3AudGVybV0uc3RhbmRhcmRdLGc9Mj09T2JqZWN0LmtleXMoaFtwLnRlcm1dKS5sZW5ndGg\/a1toW3AudGVybV0uc3VidmVudGVkXTohMSxEPTI9PU9iamVjdC5rZXlzKGhbcC50ZXJtXSkubGVuZ3RoP2hbcC50ZXJtXS5zdWJ2ZW50ZWQ6ITEsQz1wLnRlcm0sRj1wLmRvd25wYXltZW50LnRvRml4ZWQoMCksSj1tLnBheW1lbnQudG9GaXhlZChlKSxMPW0ucGF5bWVudC50b0ZpeGVkKGUpO0o9Si5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihPLEspe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytLKyI8L3N1cD4ifSk7dmFyIEI9bS5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZSksRT1tLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChlKTtCPUIucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oTyxLKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrSysiPC9zdXA+In0pOwp2YXIgVD1tLnJhdGUsZGE9InBheW1lbnQiK3Y7dj0icGF5bWVudCIrdisid2l0aFRheGVzIjtDPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyI8c3Bhbj4iK0MrIjwvc3Bhbj4gbW9udGgiOiI8c3Bhbj4iK0MrIjwvc3Bhbj4gbW9pcyI7Rj1gPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHtGfTwvc3Bhbj5gKygkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iIGRvd24gcGF5bWVudCI6IiBjb21wdGFudCIpO3ZhciBVPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyI8ZGl2PiIrJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKSsiPC9kaXY+IjoiK3R4IixNPW0uY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/bS5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLFA9IiI7MDxwYXJzZUZsb2F0KE0pLW0ucmF0ZSYmKFArPWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KE0sIiIsJ2NsYXNzPSItZnMxMCInKSk7dmFyIFY9bS50b3RhbE9ibGlnYXRpb25BbW91bnQ\/Cm0udG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsVz0nZGF0YS10b29sdGlwPSInK20udG9vbHRpcCsnIicsWD0nZGF0YS10b29sdGlwPSInK20udG9vbHRpcFdpdGhUYXhlcysnIicsRyxlYT1udWxsIT0oRz1tLm0yZF9maW5hbmNlKT9HOng7Rz0ic2luZ2xlLWNvbHVtbiI7cD11JiZ1PT1wLnRlcm0mJnkmJnk9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpPyJjaGVja2VkIjoiIjt2YXIgUT0ic21hbGwtYm94IixIPSIiLEk9IiI7aWYoZyl7Rz0ibGVmdC1zZWN0aW9uIjtRPSIiO0g9Zy5wYXltZW50LnRvRml4ZWQoZSk7bGV0IE89Zy5wYXltZW50LnRvRml4ZWQoZSk7SD1ILnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGZhLFIpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytSKyI8L3N1cD4ifSk7ST1nLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChlKTtsZXQgSz1nLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChlKTsKST1JLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGZhLFIpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytSKyI8L3N1cD4ifSk7dmFyIFk9Zy5yYXRlLnRvRml4ZWQoMiksaGE9InBheW1lbnQiK0Q7RD0icGF5bWVudCIrRCsid2l0aFRheGVzIjtsZXQgTj1nLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2cuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxTPSIiOzA8cGFyc2VGbG9hdChOKS1nLnJhdGUmJihTKz1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dChOLCIiLCdjbGFzcz0iLWZzMTAiJykpO2xldCBaPWcudG90YWxPYmxpZ2F0aW9uQW1vdW50P2cudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsYWE9J2RhdGEtdG9vbHRpcD0iJytnLnRvb2x0aXArJyInLGJhPSdkYXRhLXRvb2x0aXA9IicrZy50b29sdGlwV2l0aFRheGVzKyciJyxjYT1nLm0yZF9maW5hbmNlO0g9J1x0PGRpdiBpZD0iJytoYSsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnKwphYSsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytZKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJythYSsiPjwvaT4iK1MrJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytIKyc8L3NwYW4+PC9kaXY+XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrVSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2cudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2cucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2cucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2cucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJysKTysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2cucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2cudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrZy5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytOKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1orJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2cucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytnLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrY2ErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHQ8bGFiZWw+JytBKyI8L2xhYmVsPlx0XHQ8L2Rpdj5cdDwvZGl2PiI7ST0nXHQ8ZGl2IGlkPSInK0QrCiciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrYmErJz5cdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXJhdGUiPicrWSsnJSA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrYmErIj48L2k+IitTKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrSSsnPC9zcGFuPjwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytnLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytnLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytnLnBheW1lbnRXaXRoVGF4ZXMrCiciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrZy5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK0srJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytnLnJlc2lkdWFsV2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytnLnRvdGFsSW50ZXJlc3RXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2cubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrTisnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytaKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytnLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrZy5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK2NhKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytnLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrCmcuaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytnLnBzdCsnIlx0XHRcdFx0Plx0XHRcdDxsYWJlbD4nK0ErIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+In1nPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJytRKyciPlx0PGRpdiBjbGFzcz0idGVybSI+JytDKyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+JytGKyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrZGErJyIgY2xhc3M9IicrRysnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrVysnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0orJzwvc3Bhbj4gPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrClcrJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JytVKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcmF0ZSI+JytUKyIlICIrUCsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdCcrcCsnXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrbS50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrbS5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrbS5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrbS5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK0wrJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJyttLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJyttLnRvdGFsSW50ZXJlc3QrCiciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJyttLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK00rJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrVisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrbS5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK20ucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytlYSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsPicrdCsiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+IitIKyJcdDwvZGl2PjwvZGl2PiI7Qj0nPGRpdiBjbGFzcz0iZmluYW5jaW5nLW9wdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICcrUSsnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrCkMrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK0YrJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJyt2KyciIGNsYXNzPSInK0crJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1grJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytCKyc8L3NwYW4+IDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1grJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrVCsiJSAiK1ArJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHQnK3ArJ1x0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInKwptLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJyttLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJyttLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJyttLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrRSsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK20ucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK20udG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrbS5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytNKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1YrJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK20ucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJyttLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrCngrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK20uZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJyttLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrbS5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbD4nK3QrIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrSSsiXHQ8L2Rpdj48L2Rpdj4iOzA9PW0ucGF5bWVudFdpdGhUYXhlcyYmKEI9IiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQoZyk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmFwcGVuZChCKTt6Kyt9fSk7bj0kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bY2hlY2tlZF0nKS5sZW5ndGg\/JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW2NoZWNrZWRdJylbMF06JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykubGFzdCgpWzBdOwokKG4pLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIik7bj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhWzBdLnRvdGFsLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVRvdGFsIikudGV4dChuKTsibGVhc2UiPT1hWzBdLnR5cGU\/KG49cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYVswXS5rbV9hbGxvd2FuY2UudG9GaXhlZCgwKSksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlS00iKS50ZXh0KG4pLCQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITApLAokKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuc2hvdygpKTskKCIucGF5bWVudENhbGN1bGF0b3JDb21tb25Ob3RpY2UiKS5zaG93KCk7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5oaWRlKCkpOigkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKTswPGQ\/KGQ9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZC50b0ZpeGVkKDApKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VGZWVzIikudGV4dChkKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZEZlZXMiKS5zaG93KCkpOiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLmhpZGUoKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyAjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzTGlzdCIpLmVtcHR5KCk7aWYoYi5jdXN0b21GZWVzLmxlbmd0aCl7dmFyIGY9Ijx1bD4iOyQuZWFjaChiLmN1c3RvbUZlZXMsZnVuY3Rpb24odixwKXt2PWVzY2FwZUhUTUwoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/YXRvYihwLmRlc2NFbik6YXRvYihwLmRlc2NGcikpO3A9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIocC5hbW91bnQudG9GaXhlZCgwKSk7cD1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShwKTtmKz0iPGxpPiIrdisiIDogIitwKyI8L2xpPiJ9KTtmKz0iPC91bD4iOyQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMgI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlc0xpc3QiKS5hcHBlbmQoZik7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLnNob3coKX1lbHNlICQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMiKS5oaWRlKCk7CmQ9ImxlYXNlIj09YVswXS50eXBlPygkKCIjcGF5bWVudENhbGN1bGF0b3JMZWFzZVRleHQiKS52YWwoKXx8IiIpLnRvTG93ZXJDYXNlKCk6KCQoIiNwYXltZW50Q2FsY3VsYXRvckZpbmFuY2VUZXh0IikudmFsKCl8fCIiKS50b0xvd2VyQ2FzZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVR5cGUiKS50ZXh0KGQpOzA8YVswXS5yZWJhdGU\/KGE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiQiK2FbMF0ucmViYXRlOmFbMF0ucmViYXRlKyIgJCIsJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlUmViYXRlIikudGV4dChhKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZFJlYmF0ZXMiKS5zaG93KCkpOiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLmhpZGUoKTtpZihiLmNvbmRpdGlvbmFsUmViYXRlcyYmMDxiLmNvbmRpdGlvbmFsUmViYXRlcy5sZW5ndGgpe3ZhciB3PSIiO2IuY29uZGl0aW9uYWxSZWJhdGVzLmZvckVhY2goZnVuY3Rpb24odil7dmFyIHA9CnBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKHYuYW1vdW50LnRvU3RyaW5nKCkpO3crPSI8bGk+Iit2Lm5hbWUrIjogLSIrRDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UocCkrIjwvbGk+In0pO3cmJiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLmFmdGVyKCc8ZGl2IGlkPSJwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbmRpdGlvbmFsUmViYXRlcyIgY2xhc3M9InBheW1lbnRDYWxjdWxhdG9yTm90aWNlU2VjdGlvbiI+PHN0cm9uZz4nKygkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iU2VsZWN0ZWQgQ29uZGl0aW9uYWwgUmViYXRlczoiOiJSYWJhaXMgY29uZGl0aW9ubmVscyBzw4PCqWxlY3Rpb25uw4PCqXM6IikrIjwvc3Ryb25nPjx1bD4iK3crIjwvdWw+PC9kaXY+Iil9ZWxzZSAkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb25kaXRpb25hbFJlYmF0ZXMiKS5yZW1vdmUoKTtzZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpfQpmdW5jdGlvbiBzZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpe2lmKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkpJCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oZCl7dHJ5e3ZhciBjPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksYj0kKHRoaXMpLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpPyJ3ZXN0IjoiZWFzdCI7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpjLGdyYXZpdHk6Yix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChlKXt9fSk7ZWxzZXtmb3IodmFyIGE9MDs1PmE7YSsrKSQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKS5sZW5ndGgmJigkKCIjZGFya3Rvb2x0aXAtcGF5bWVudCIrYSkucmVtb3ZlKCksCiQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKyJ3aXRoVGF4ZXMiKS5yZW1vdmUoKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIikuZWFjaChmdW5jdGlvbigpe3RyeXt2YXIgZD0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpLGM9JCh0aGlzKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKSxiPSJlYXN0IjtjLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpP2I9Indlc3QiOmMuaGFzQ2xhc3MoInJpZ2h0VG9vbHRpcCIpJiYoYj0iZWFzdCIpOyQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6ZCxncmF2aXR5OmIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciJ9KX1jYXRjaChlKXt9fSl9fQpmdW5jdGlvbiBzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGEpe3ZhciBkPWdldFBvcENvbnRhaW5TZXR0aW5ncygpO2QudmVoaWNsZUluZm89YTskKCIjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mb1llYXIiKS50ZXh0KGEueWVhcik7dmFyIGM9YS5DRk1vZGVsTmFtZXx8YS5tb2RlbCxiPWEubWFrZS50b1VwcGVyQ2FzZSgpKyIgIitjLnRvVXBwZXJDYXNlKCk7Ik1FUkNFREVTLUJFTloiIT1hLm1ha2UudG9VcHBlckNhc2UoKXx8L1xic3ByaW50ZXJcYi9pLnRlc3QoYyl8fChiPWEubWFrZS50b1VwcGVyQ2FzZSgpKTtpZigiYnVpbGRhbmRwcmljZS5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHxkLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1kLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSliKz0iICIrYS5DRlN0eWxlTmFtZS50b1VwcGVyQ2FzZSgpLAokKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvTWFrZU1vZGVsVHJpbSIpLnRleHQoYik7Yz1hLm1ha2UrInx8fCIrYysifHx8IithLnllYXI7ZC5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKSYmKGMrPSJ8fHwoU3RvY2s6IitkLnN0b2NrTnVtYmVyKyIpIik7Q29va2llcy5zZXQoImxhc3R2aWV3ZWR2ZWhpY2xlIixjLG51bGwsIi8iKTthLmltYWdlc1swXSYmKGM9KGEuaW1hZ2VzWzBdKyIiKS5yZXBsYWNlKC9odHRwKHM\/KTpcL1wvbWVkaWEuKGNocm9tZWRhdGF8Y2FyYm9vaykuY29tXC9NZWRpYUdhbGxlcnlcL21lZGlhXC8vLCIvL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJzL2NiJUNCLyVNQUtFLyVNT0RFTC8lWUVBUi8iKS5yZXBsYWNlKCIlQ0IiLE1hdGgucm91bmQoOTkqTWF0aC5yYW5kb20oKSkrMUU1KS5yZXBsYWNlKCIlTUFLRSIsYS5tYWtlLnJlcGxhY2UoIi0iLCJfIikpLnJlcGxhY2UoIiVNT0RFTCIsCmEubW9kZWwucmVwbGFjZSgiLSIsIl8iKSkucmVwbGFjZSgiJVlFQVIiLGEueWVhciksJCgiI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUltYWdlRGl2IikuaHRtbCgnPGltZyBpZD0icGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2UiIHNyYz0iJytjLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMwMzk7IikrJyIgY2xhc3M9InBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUltYWdlIj4nKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCBvcHRpb24iKS5yZW1vdmUoKTsoInVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzP25ld2NhckRldGFpbHMuYWxsU3R5bGVzOmEubW9kZWxKU09OLnN0eWxlcykuZm9yRWFjaChmdW5jdGlvbihlKXskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikuYXBwZW5kKG5ldyBPcHRpb24oZS5DRlN0eWxlTmFtZSwKZS5pZCkpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLnZhbChkLnN0eWxlaWQpO2NhbGNVcGRhdGVQYXltZW50SW5mbygpfQpmdW5jdGlvbiBjYWxjVXBkYXRlU3R5bGVJbmZvKGEpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmbmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbCl7dmFyIGQ9bmV3Y2FyRGV0YWlscy5hbGxTdHlsZXMuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmlkPT1hfSlbMF07ZD1kfHxuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLnN0eWxlc1swXTtkLm1ha2U9bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5tYWtlO2QubW9kZWw9bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5tb2RlbDtkLmltYWdlcz1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLmltYWdlcztzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGQpfWVsc2V7ZD1zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT9zZXR0aW5ncy5zdG9ja051bWJlcjoiIjt2YXIgYz0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRWZWhpY2xlSnNvbkJ5U3R5bGVJRD93c3dpZHRoPTAiOwokLmFqYXgoe3VybDpjLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmEsdmVoaWNsZWlkOmR9LHN1Y2Nlc3M6ZnVuY3Rpb24oYil7c2V0UGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyhiKX19KX19CmZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUG9wdXBJbml0KCl7dmFyIGE9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKCIjcGF5bWVudENhbGN1bGF0b3JJc05ld1BvcHVwRW5hYmxlZCIpLnZhbCgpOyIiIT1hLnByb21vQnV0dG9uVGV4dCYmIjEiIT09Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpJiYkKCIjcGF5bWVudENhbGN1bGF0b3JJc05ld1BvcHVwRW5hYmxlZCIpLnZhbCgpPygtMSE9PWEucHJvbW9CdXR0b25UZXh0LmluZGV4T2YoIjxiciIpJiYoYS5wcm9tb0J1dHRvblRleHQ9YS5wcm9tb0J1dHRvblRleHQuc3Vic3RyKDAsYS5wcm9tb0J1dHRvblRleHQuaW5kZXhPZigiPGJyIikpKSwkKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYSIpLmh0bWwoYS5wcm9tb0J1dHRvblRleHQpLCQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLnNob3coKSk6CiQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLmhpZGUoKTtsZXQgZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImxlYXNpbmciXScpLGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSJmaW5hbmNpbmciXScpO2QuaGlkZGVuPSIxIj09KGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fCExKTtjLmhpZGRlbj0iMSI9PShhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHN8fCExKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIikuaGlkZGVuPSEwO3NldFRpbWVvdXQoKCk9PntpZihfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJiIiPT0kKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpKXt2YXIgYj0KSlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikpOyQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKGIudmFsdWUpO19sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpJiYoYj1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpKSwkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLmF0dHIoImRhdGEtY3VycmVudCIsYi52YWx1ZSkpfWlmKCIiIT0kKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpJiYwPCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkpe2I9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl8fDA7dmFyIGU9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS5hdHRyKCJkYXRhLWN1cnJlbnQiKSl8fGI7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKGUpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLmF0dHIoIm1heCIsCmIpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b24iKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuc2hvdygpfWVsc2UgJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCIiKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluQnV0dG9uIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS50cmlnZ2VyKCJibHVyIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBDdGFUcmFjayYmQ3RhVHJhY2suZ2V0VHJhY2tTdGVwKCJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIpKXtsZXQgaz1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIsZm9yY2VVcGRhdGU6ITAsb25Db21wbGV0ZTpoPT57aC5kYXRhc2V0LmNvbXBsX3R4dF9mcj0KaC5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEZyWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IixjdGFQYXltZW50VGV4dEZyWzFdKTtoLmRhdGFzZXQuY29tcGxfdHh0X2VuPWguZGF0YXNldC5pbml0X2NvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRFblswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRFblsxXSk7aD17cGF5bWVudDp7fX07X2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSYmKGg9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpKSk7bGV0IHI9IkZSRU5DSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Y3RhUGF5bWVudFRleHRGcjpjdGFQYXltZW50VGV4dEVuO2gucGF5bWVudD17bGlzdFByaWNlOnJbMl18fCIiLHBheW1lbnQ6clswXXx8IiIscmF0ZTpyWzFdfHwKIiIscGF5bWVudFZhbHVlOmN0YVBheW1lbnRWYWx1ZXN8fFtdfTtfbG9jYWxTdG9yYWdlU2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIsSlNPTi5zdHJpbmdpZnkoaCksMzApO0Nvb2tpZXMuc2V0KCJjdGFfZGF0YV92YWxpZCIsMSwxLCIvIil9fX0pO2I9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEiKTtiLmlubmVyVGV4dD0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iQ29uZmlybSI6IkNvbmZpcm1lciI7Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaD0+e2gucHJldmVudERlZmF1bHQoKTtoPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYhaHx8ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChrKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9KTtlPWg9PntoPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYhaHx8ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChrKX07bGV0IGw9YS5wYXltZW50VHlwZTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGI9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxsPSJ1bmRlZmluZWQiIT1iWzBdP2JbMF06bCxsPSJsZWFzaW5nIj09PWw\/ImxlYXNlIjoiZmluYW5jaW5nIj09PWw\/ImZpbmFuY2UiOmwpOyJsZWFzZSI9PWwmJmQ\/ZC5jbGljaygpOiJmaW5hbmNlIj09bCYmYz9jLmNsaWNrKCk6Y2FzaFRhYi5jbGljaygpOwokKCIucmV2ZWFsLW1vZGFsIikub2ZmKCJwb3B1cGl6ZXIuY2xvc2UiLGUpLm9uKCJwb3B1cGl6ZXIuY2xvc2UiLGUpOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLnNob3coKX19LDEwMCk7Y2FsY1VwZGF0ZVN0eWxlSW5mbyhhLnN0eWxlaWQpfQpmdW5jdGlvbiBjYWxjVXBkYXRlUGF5bWVudEluZm8oKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxkPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiLGM9YS5wYXltZW50VHlwZSxiPTAsZT1wYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8MCksaz1udWxsLGw9bnVsbCxoPWdldE9wdGlvbnNBbW91bnQoYSkscj1nZXRBY2Nlc3Nvcmllc0Ftb3VudChhKSxxPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoYSksdT1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYSkseT1hLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1hLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSwKbj0hMSx4PWEuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/YS5zdG9ja051bWJlcjoiIix0PWEuaGFzT3duUHJvcGVydHkoInZpbiIpP2EudmluOiIiO2lmKHkmJiF4KXt2YXIgQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO0EmJih4PUEudmFsdWV8fCIiKX15JiYhdCYmKEE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYodD1BLnZhbHVlfHwiIik7eSYmIWEuc3R5bGVpZCYmKEE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihhLnN0eWxlaWQ9QS52YWx1ZXx8YS5zdHlsZWlkKTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGw9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxjPSJ1bmRlZmluZWQiIT1sWzBdP2xbMF06YyxuPWxbMV0sYj1wYXJzZUludChsWzRdKS1lLGI9MD5iPzA6YixrPQpsWzJdLGw9bFszXSk7YS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cyYmImxlYXNlIj09YyYmKGM9ImZpbmFuY2UiLG49ITEsYj0wLGw9az1udWxsKTthLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHMmJlsiZmluYW5jZSIsImZpbmFuY2luZyJdLmluY2x1ZGVzKGMpJiYoYz0ibGVhc2UiLG49ITEsYj0wLGw9az1udWxsKTtsZXQgej1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihmKXtmLmNoZWNrZWQmJihmPWYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmei5wdXNoKGYpfSk7Y2FsY1VwZGF0ZVBheW1lbnRYaHI9JC5hamF4KHt1cmw6ZCx0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDphLnN0eWxlaWQscGF5bWVudFR5cGU6Yyxkb3ducGF5bWVudDplK2Isb3B0aW9uc0Ftb3VudDpoLHBheW1lbnRGcmVxdWVuY3k6ayxrbUFsbG93YW5jZTpsLAppc0ludmVudG9yeTp5LG9wdGlvbnM6aCxzbjp4LHZpbjp0LGNvbmRpdGlvbmFsUmViYXRlSWRzOnouam9pbigiLCIpLGFjY2Vzc29yaWVzOnIsc2VsZWN0ZWRBY2Nlc3NvcmllczpxLHByb3RlY3Rpb25QbGFuczp1fSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2Yuc2VsZWN0ZWRUZXJtPW47JCgiI21heERvd25QYXltZW50Rm9yVHJpbSIpLnZhbChmLm1heERvd24pOyQoIiNtYXhEb3duUGF5bWVudEZpbmFuY2VGb3JUcmltIikudmFsKGYubWF4RG93bkZpbmFuY2UpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKGIpO2M9ImxlYXNlIj09PWM\/ImxlYXNpbmciOiJmaW5hbmNlIj09PWM\/ImZpbmFuY2luZyI6YzsiY2FzaCI9PT1jJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpKTsKZi5jdXJyZW50UGF5bWVudCYmMCE9PWYuY3VycmVudFBheW1lbnQubGVuZ3RofHwiY2FzaCI9PT1jPygkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpLGYuY3VycmVudFBheW1lbnQmJjA8Zi5jdXJyZW50UGF5bWVudC5sZW5ndGgmJigkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbChmLmN1cnJlbnRQYXltZW50WzBdLmludGVydmFsKSxjPWN8fCgibGVhc2UiPT09CmYuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyIpKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuc2hvdygpKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3ZvaWQgMCE9JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSciK2MrIiddIikmJiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nIitjKyInXSIpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOwoiY2FzaCIhPT1jJiYodm9pZCAwIT1mLmZpbmFuY2UmJjA9PT1mLmZpbmFuY2UubGVuZ3RoPyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLmhpZGUoKTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5zaG93KCksdm9pZCAwIT1mLmxlYXNlJiYwPT09Zi5sZWFzZS5sZW5ndGg\/JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLmhpZGUoKTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuc2hvdygpKTtpZihmLmxlYXNlJiYwPGYubGVhc2UubGVuZ3RoKXt2YXIgdz1bXTtmLmxlYXNlLmZvckVhY2goZnVuY3Rpb24ocCl7LTE9PSQuaW5BcnJheShwLmttX2FsbG93YW5jZSx3KSYmdy5wdXNoKHAua21fYWxsb3dhbmNlKX0pO3cuZm9yRWFjaChmdW5jdGlvbihwKXt2YXIgbT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihwLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikuYXBwZW5kKG5ldyBPcHRpb24obSsKIiBrbSIscCkpfSk7dmFyIHY9MkU0O2YuY3VycmVudFBheW1lbnRbMF0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIGYuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlJiYodj0wPGYuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlP2YuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlOjJFNCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwodil9ImxlYXNpbmciPT1jPyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpO2dldENhc2hQcmljZUJsb2NrKGYpOyJjYXNoIj09PWM\/ZW5hYmxlQ2FzaE9wdGlvbigpOmYuY3VycmVudFBheW1lbnQmJmYuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoY2FsY0N1clBheW1lbnQ9ZixzaG93UGF5bWVudHMoZi5jdXJyZW50UGF5bWVudCxmLnBheW1lbnRGZWVzLGYubWFrZWlkLGYpKX19KX0KZnVuY3Rpb24gZW5hYmxlQ2FzaE9wdGlvbigpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSdjYXNoJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlRmluYW5jZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvckNvbW1vbk5vdGljZSIpLmhpZGUoKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRGZWVzIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCExKTskKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY2FsYy1wYXltZW50LWNhc2giKS5oaWRkZW49ITE7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSk7CjE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmY2hhbmdlUGFnZUNhc2hWYWx1ZSgpfQpmdW5jdGlvbiBjaGFuZ2VQYWdlQ2FzaFZhbHVlKCl7aWYobnVsbCE9PWNhc2hQcmljZUZvclBhZ2Upe3ZhciBhPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIixkPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGNhc2hQcmljZUZvclBhZ2UudG9TdHJpbmcoKSksYz1zdG9yZS5nZXQoImkxOG4iKS5ERUZBVUxUX1BBWU1FTlRfQ0FTSCxiPSc8c3BhbiBjbGFzcz0idHh0LXBheW1lbnQgZm9ybWF0LXByaWNlIj4nK2QrIjwvc3Bhbj4iLGU9c3RvcmUuZ2V0KCJpMThuIikuTEFCRUxfQkVGT1JFX1RBWEVTLnRvTG93ZXJDYXNlKCk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTIsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUxIikuaHRtbChjKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMSwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTIiKS5odG1sKGIpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUzLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMyIpLmh0bWwoZSk7CmE9IkVOR0xJU0giPT09YT8iJCIrZDpkKyIgJCI7Y3RhUGF5bWVudFRleHRGcj1bYSwiQ29tcHRhbnQiLCIiXTtjdGFQYXltZW50VGV4dEVuPVthLCJDYXNoIiwiIl07Y3RhUGF5bWVudFZhbHVlcz1bY2FzaFByaWNlRm9yUGFnZSwwLDAsImNhc2giXTskKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoJiYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmhpZGUoKSwkKCIucGF5bWVudEluZm9CdWJibGVCblAiKS5oaWRlKCkpOyQoIiNkYXJrdG9vbHRpcC1wYXltZW50V3JhcHBlciwgI2Rhcmt0b29sdGlwLXZkcFBheW1lbnRUb29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwSW5mb1Rvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBVc2VkSW5mb1Rvb2x0aXAiKS5yZW1vdmUoKTskKCIudmRwUGF5bWVudFRvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwSW5mb1Rvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwVXNlZEluZm9Ub29sdGlwIikuZGFya1Rvb2x0aXAoe29wYWNpdHk6MH0pfX0KZnVuY3Rpb24gZ2V0Q2FzaFByaWNlQmxvY2soYSl7dmFyIGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKSxjPWdldFBvcENvbnRhaW5TZXR0aW5ncygpLGI9Yy5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09Yy5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCksZT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giO2xldCBrPXBhcnNlSW50KGEub3JpZ2luYWxQcmljZXx8Yy52ZWhpY2xlSW5mbyYmYy52ZWhpY2xlSW5mby5tc3JwQWxsSW58fDApO3ZhciBsPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGsudG9TdHJpbmcoKSk7bGV0IGg9ZC5xdWVyeVNlbGVjdG9yKCIuY2FsYy1wYXltZW50LWNhc2giKTt2YXIgcj0iMSI9PWQucXVlcnlTZWxlY3RvcigiI2Rpc3BsYXlCcmVha2Rvd24iKS52YWx1ZTsKbGV0IHE9IjEiPT1kLnF1ZXJ5U2VsZWN0b3IoIiNoaWRlUmViYXRlcyIpLnZhbHVlO3ZhciB1PSIxIj09ZC5xdWVyeVNlbGVjdG9yKCIjc2NyYXRjaE9yaWdpbmFsUHJpY2UiKS52YWx1ZTtsZXQgeT0iRU5HTElTSCI9PWU\/IlN0YXJ0aW5nIGF0Ijoiw4PCgCBwYXJ0aXIgZGUiO2Q9IkVOR0xJU0giPT1lPyJZb3VyIHByaWNlIjoiVm90cmUgcHJpeCI7YiYmKHk9JCgiI05FV0lOVl9QUklDRV9MQUJFTF9PUklHSU5BTCIpLnZhbCgpLGQ9JCgiI05FV0lOVl9QUklDRV9MQUJFTF9GSU5BTCIpLnZhbCgpLGMudmVoaWNsZUluZm8mJnkucmVwbGFjZSgieyRNQUtFfSIsYy52ZWhpY2xlSW5mby5tYWtlKS5yZXBsYWNlKCJ7JE1PREVMfSIsYy52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSkucmVwbGFjZSgieyRWRVJTSU9OfSIsYy52ZWhpY2xlSW5mby5DRlN0eWxlTmFtZSkucmVwbGFjZSgieyRZRUFSfSIsYy52ZWhpY2xlSW5mby55ZWFyKSk7bGV0IG49IkVOR0xJU0giPT1lPyJkZXNjRW4iOiJkZXNjRnIiOwokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VUb3RhbCIpLmh0bWwoayk7Yz11JiZhLnByaWNlQW1lbmRlbWVudHMmJjA+YS5wcmljZUFtZW5kZW1lbnRzLnRvdGFsPyJzdHJpa2UtcHJpY2UiOiIiO2w9YAoJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtyJiYhcT9kOnl9PC9zcGFuPgoJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0gJHtjfSI+JHtsfTwvc3Bhbj4KCQk8L2Rpdj5gO2lmKDA9PShhLnByaWNlQW1lbmRlbWVudHN8fFtdKS5sZW5ndGgpaC5pbm5lckhUTUw9bDtlbHNle3U9KGEucHJpY2VBbWVuZGVtZW50cy5mZWVzTGlzdHx8W10pLnJlZHVjZSgoeixmKT0+e2lmKDA9PWYuYW1vdW50KXJldHVybiB6O2xldCB3PXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGYuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiB6K2AKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtlc2NhcGVIVE1MKGF0b2IoZltuXSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+JHt3fTwvc3Bhbj4KCQkJPC9kaXY+CgkJYH0sIiIpO3ZhciB4PShhLnByaWNlQW1lbmRlbWVudHMuaW5jZW50aXZlc0xpc3R8fFtdKS5yZWR1Y2UoKHosZik9PntpZigwPT1mLmFtb3VudClyZXR1cm4gejtsZXQgdz1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihmLmFtb3VudC50b1N0cmluZygpKTtyZXR1cm4geitgCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7ZXNjYXBlSFRNTChhdG9iKGZbbl0pKX08L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0iPi0ke3d9PC9zcGFuPgoJCQk8L2Rpdj4KCQlgfSwiIik7Yj0oYS5wcmljZUFtZW5kZW1lbnRzLnBvc3RUYXhJbmNlbnRpdmVzTGlzdHx8W10pLnJlZHVjZSgoeixmKT0+e2lmKDA9PWYuYW1vdW50KXJldHVybiB6O2xldCB3PXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGYuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiB6K2AKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtlc2NhcGVIVE1MKGF0b2IoZltuXSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+LSR7d308L3NwYW4+CgkJCTwvZGl2PgoJCWB9LCIiKTt2YXIgdD1rLShhLnByaWNlQW1lbmRlbWVudHMudG90YWxGZWV8fDApKyhhLnByaWNlQW1lbmRlbWVudHMudG90YWxSZWJhdGV8fDApLEE9MDwoYS5wcmljZUFtZW5kZW1lbnRzLmNvbmRpdGlvbmFsUmViYXRlc1RvdGFsfHwwKTtlPUEmJmEucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlP2EucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlOms7WyJORVdDQVJTIiwiTkVXQ0FSREVUQUlMUyJdLmluY2x1ZGVzKHNpdGVQYWdlLm5hbWUpfHwodD1rLShhLnByaWNlQW1lbmRlbWVudHMudG90YWxGZWV8fDApKyhhLnByaWNlQW1lbmRlbWVudHMudG90YWxSZWJhdGV8fDApLGU9QSYmYS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U\/YS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U6ayk7Y2FzaFByaWNlRm9yUGFnZT1lO3Q9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIodC50b1N0cmluZygpKTtlPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGUudG9TdHJpbmcoKSk7CmE9dS5sZW5ndGh8fHgubGVuZ3RoO3I9ciYmIXEmJmE\/YAoJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHt5fTwvc3Bhbj4KCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9ICR7Y30iPiR7dH08L3NwYW4+CgkJPC9kaXY+YCt1K3g6IiI7YSYmKGw9YAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke2R9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9IiR7IiIhPXI\/InByaWNlRmluYWwiOiIifSAkeyJmb3JtYXQtcHJpY2UifSI+JHtlfTwvc3Bhbj4KCQkJPC9kaXY+YCk7aC5pbm5lckhUTUw9citsK2J9fQpmdW5jdGlvbiBnZXRPcHRpb25zQW1vdW50KGEpe3ZhciBkPWEucGF5bWVudE9wdGlvbnM\/YS5wYXltZW50T3B0aW9uczowO2EuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWEubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8JCgiI1BBR0VJRCIpLnZhbCgpO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7aWYoY3x8YSYmYylkPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZE9wdGlvbnNUb3RhbCxhPXBhcnNlSW50KG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5kZWZhdWx0T3B0aW9uQW1vdW50KSwwPGEmJihkLT1hLGQ9TWF0aC5tYXgoMCxkKSk7cmV0dXJuIGR8fDB9CmZ1bmN0aW9uIGdldEFjY2Vzc29yaWVzQW1vdW50KGEpe3ZhciBkPTA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09YS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoY3x8YSYmYykmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjVG90YWwmJihkPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY1RvdGFsKTtyZXR1cm4gZHx8MH0KZnVuY3Rpb24gZ2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhhKXt2YXIgZD0iIjthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhjfHxhJiZjKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NJZHMmJihkPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY0lkcy5qb2luKCIsIikpO3JldHVybiBkfHwiIn0KZnVuY3Rpb24gZ2V0UHJvdGVjdGlvblBsYW5zQW1vdW50KGEpe3ZhciBkPTA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09YS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoY3x8YSYmYykmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkUHJvdGVjdGlvblBsYW5Ub3RhbCYmKGQ9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkUHJvdGVjdGlvblBsYW5Ub3RhbCk7cmV0dXJuIGR8fDB9CmZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGEpe3JldHVybiBhLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csIiwiKX1mdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckNsaWNrZWRUcmlnZ2VyKGEsZCl7JChhKS50cmlnZ2VyKCJwYXltZW50Q2FsY3VsYXRvci5jbGljayIse29yaWdFdmVudDpkfSk7YT1uZXcgRXZlbnQoInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIik7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChhKX1mdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckNsaWNrZWROZXdWRFBUcmlnZ2VyKGEsZCl7dmFyIGM9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLGI9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSxlPSQoIiNwb3B1cHllYXIiKS52YWwoKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIk5ldy1WRFAtT3V0Ym91bmQtY2xpY2tzIiwiQ2FsY3VsYXRyaWNlIixjKyItIitiKyItIitlKTtwYXltZW50Q2FsY3VsYXRvckNsaWNrZWRUcmlnZ2VyKGEsZCl9CmZ1bmN0aW9uIGZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KGEsZCxjKXtjPXZvaWQgMD09PWM\/IiI6YzthPSI8c3BhbiAiK2QrIj4iK2ErIjwvc3Bhbj4lIjthPSJFTkdMSVNIIj09YWN0aXZlTGFuZz9hKyIgQVBSIjoiVGF1eCAiK2E7cmV0dXJuICQoIiNpc21vYmlsZSIpLnZhbCgpPyI8YnIvPjxkaXYgIitjKyI+KCIrYSsiKTwvZGl2PiI6IiA8ZGl2ICIrYysiPiggIithKyIgKTwvZGl2PiJ9OwovKiogL2pzL3ZhbmlsbGFqcy9tb2RhbC5qcyAqKi8KdmFyIF9fX2QyY19tb2RhbGpzX2Nfb249IjIwMjYtMDItMjcgMTU6MzA6MDMiOyd1c2Ugc3RyaWN0Jztjb25zdCBNb2RhbHM9e30sTW9kYWw9ZnVuY3Rpb24oaCxiKXtsZXQgYz17fTtjb25zdCBuPXt0aXRsZTpoLGNvbnRlbnRUeXBlOiJub2RlIixjb250ZW50U3JjOiIiLGFmdGVySW5pdDooKT0+e319O2xldCBrPSIiO2NvbnN0IGU9aHRtbFRvTm9kZSgnPGRpdiBjbGFzcz0ibW9kYWwtb3ZlcmxheSI+PC9kaXY+JyksbD1mdW5jdGlvbihhKXthLm9uY2xpY2s9KCk9PmYoImNhbmNlbCIpfSxwPWZ1bmN0aW9uKCl7KGMucXVlcnlTZWxlY3RvcigiLm9rYXkiKXx8ITEpLm9uY2xpY2s9KCk9PmYoIm9rYXkiKTtjb25zdCBhPWMucXVlcnlTZWxlY3RvckFsbCgiLmNhbmNlbCIpfHwhMTsxPGEubGVuZ3RoPyQuZWFjaChhLGZ1bmN0aW9uKGQsZyl7bChnKX0pOmEmJmwoYVswXSl9LG09ZnVuY3Rpb24oYSl7IkVzY2FwZSI9PWEua2V5JiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLAptLHtjYXB0dXJlOiEwfSksZigpKX0sZj1hPT57YT1hfHwiIjtzd2l0Y2goYSl7Y2FzZSAiY2FuY2VsIjoiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZUNhbmNlbCYmYi5vbkJlZm9yZUNhbmNlbC5jYWxsKCk7YnJlYWs7Y2FzZSAib2theSI6ImZ1bmN0aW9uIj09dHlwZW9mIGIub25CZWZvcmVTYXZlJiZiLm9uQmVmb3JlU2F2ZS5jYWxsKCl9ImZ1bmN0aW9uIj09dHlwZW9mIGIub25CZWZvcmVDbG9zZSYmYi5vbkJlZm9yZUNsb3NlLmNhbGwoYSk7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvd1k9ImF1dG8iO2MuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtYWN0aXZlIiwhMSk7ZS5wYXJlbnROb2RlJiYoZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpLGsuZm9jdXMoKSl9O2I9T2JqZWN0LmFzc2lnbihuLGIpOyhmdW5jdGlvbigpe2NvbnN0IGE9K25ldyBEYXRlO3ZhciBkPSIiO3N3aXRjaChiLmNvbnRlbnRUeXBlKXtjYXNlICJub2RlIjpkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIuY29udGVudFNyYyk7CmQuaGlkZGVuPSExO2JyZWFrO2Nhc2UgImlmcmFtZSI6ZD1odG1sVG9Ob2RlKGA8ZGl2IGNsYXNzPSJpZnJhbWUtd3JhcHBlciI+CgkJCQkJCQkJPGlmcmFtZQoJCQkJCQkJCQlzcmM9IiR7Yi5jb250ZW50U3JjfSIKCQkJCQkJCQkJZnJhbWVib3JkZXI9IjAiCgkJCQkJCQkJCWFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQkJd2Via2l0YWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCQltb3phbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJPjwvaWZyYW1lPgoJCQkJCQkJPC9kaXY+YCl9bGV0IGc9IiI7Yi5zaG93WWVzTm9CdXR0b25zJiYoZz1gPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIC1wIC0tczUgZmxleC1iZXR3ZWVuIj4KCQkJCTxkaXY+CgkJCQkJPHNwYW4gY2xhc3M9IiAtbXQyIG1haW5UZXh0IC1ib2xkIj4ke2IuYnV0dG9uVGV4dHx8IiJ9PC9zcGFuPgoJCQkJPC9kaXY+CgkJCQk8ZGl2PgoJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGNhbmNlbCIgZGF0YS1kaXNtaXNzPSJtb2RhbCI+JHtiLm5vQnV0dG9ufHwiTm8ifTwvYnV0dG9uPgoJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1tYWluMiBva2F5IiBkYXRhLWRpc21pc3M9Im1vZGFsIj4ke2IueWVzQnV0dG9ufHwiWWVzIn08L2J1dHRvbj4KCQkJCTwvZGl2PmApO2M9aHRtbFRvTm9kZShgCgkJCTxib3gtbGMgY2xhc3M9Im1vZGFsLXdyYXBwZXIgLWJnLXdoaXRlIC0tczAiPgoJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMwIj4KCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIgZmxleC1iZXR3ZWVuIC1wIC0tczUiPgoJCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC10aXRsZSB0eHQtdXBwZXIgLWZzLWwgLWJvbGQiPgoJCQkJCQkJJHtiLnRpdGxlfQoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtY29udHJvbCI+CgkJCQkJCQk8YnV0dG9uIHRpdGxlPSJjbG9zZSIgY2xhc3M9IngtY2xvc2UgY2FuY2VsIj48L2J1dHRvbj4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtYm9keSIgaWQ9InEtJHthfSI+CgoJCQkJCTwvZGl2PgoJCQkJCSR7Z30KCQkJCTwvc3RhY2stbGM+CgkJCTwvYm94LWxjPgoJCWApO2MuaWQ9YG1vZGFsJHtofWA7Yy5zZXRBdHRyaWJ1dGUoInJvbGUiLCJkaWFsb2ciKTtjLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IixgcS0ke2F9YCk7Yy5xdWVyeVNlbGVjdG9yKCIubW9kYWwtYm9keSIpLmFwcGVuZENoaWxkKGQpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyk7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiI7Yi5hZnRlckluaXQoKTtwKCl9KSgpO3JldHVybntkaXNwbGF5OmZ1bmN0aW9uKCl7az1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG0se2NhcHR1cmU6ITB9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1hY3RpdmUiLCEwKX0sMSl9LGNsb3NlOmZ9fTsKLyoqIC9qcy92YW5pbGxhanMvbGVhZC5qcyAqKi8KdmFyIF9fX2QyY19sZWFkanNfY19vbj0iMjAyNi0wMi0yMCAxMTozMDowOCI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihiLGEsYyl7aWYoYj09QXJyYXkucHJvdG90eXBlfHxiPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBiO2JbYV09Yy52YWx1ZTtyZXR1cm4gYn07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGIpe2I9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxiLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYT0wO2E8Yi5sZW5ndGg7KythKXt2YXIgYz1iW2FdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGIsYSl7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYV07aWYobnVsbD09YylyZXR1cm4gYlthXTtjPWJbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzpiW2FdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGIsYSxjLGUpe2EmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChiLGEsYyxlKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChiLGEsYyxlKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihiLGEsYyxlKXtjPSRqc2NvbXAuZ2xvYmFsO2I9Yi5zcGxpdCgiLiIpO2ZvcihlPTA7ZTxiLmxlbmd0aC0xO2UrKyl7dmFyIGg9YltlXTtpZighKGggaW4gYykpcmV0dXJuO2M9Y1toXX1iPWJbYi5sZW5ndGgtMV07ZT1jW2JdO2E9YShlKTthIT1lJiZudWxsIT1hJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihiLGEsYyxlKXt2YXIgaD1iLnNwbGl0KCIuIik7Yj0xPT09aC5sZW5ndGg7ZT1oWzBdO2U9IWImJmUgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBuPTA7bjxoLmxlbmd0aC0xO24rKyl7dmFyIHA9aFtuXTtpZighKHAgaW4gZSkpcmV0dXJuO2U9ZVtwXX1oPWhbaC5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9lW2hdOm51bGw7YT1hKGMpO251bGwhPWEmJihiPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsaCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KTphIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woaCk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIraCksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShlLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYj17YTohMH0sYT17fTt0cnl7cmV0dXJuIGEuX19wcm90b19fPWIsYS5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYixhKXtiLl9fcHJvdG9fXz1hO2lmKGIuX19wcm90b19fIT09YSl0aHJvdyBuZXcgVHlwZUVycm9yKGIrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBifTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYil7dmFyIGE9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYTxiLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTpiW2ErK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihiKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGIpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3ZhciBhPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmJbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYT9hLmNhbGwoYik6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGIpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihiKXtpZighKGIgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2IrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMueWllbGRSZXN1bHQ9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjpiLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihiLGEpe3RoaXMubmV4dEFkZHJlc3M9YTtyZXR1cm57dmFsdWU6Yn19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGIsYSl7Yj0kanNjb21wLm1ha2VJdGVyYXRvcihiKTt2YXIgYz1iLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YTtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWIsdGhpcy55aWVsZChjLnZhbHVlLGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGIpe3RoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYixhKXt0aGlzLmNhdGNoQWRkcmVzc189Yjt2b2lkIDAhPWEmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1hKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYixhKXt0aGlzLm5leHRBZGRyZXNzPWI7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7Yj10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsYSxjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsYSl7YT10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGF8fDApWzBdO2lmKGE9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxhKXtpZihhLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWEuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxhLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1hLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3RoaXMub2JqZWN0Xz1iO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBhIGluIGIpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGEpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYj10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGIgaW4gdGhpcy5vYmplY3RfKXJldHVybiBifXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1ifTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYT10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGEpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGE\/YVsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGIsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYixhLGMpe3RyeXt2YXIgZT1iLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxhKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhlKTtpZighZS5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZTt2YXIgaD1lLnZhbHVlfWNhdGNoKG4pe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18obiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8saCk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYj10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGIpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChhKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhhKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7Yj10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihiLmlzRXhjZXB0aW9uKXRocm93IGIuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihiKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGIubmV4dF8oYSl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYSl7cmV0dXJuIGIudGhyb3dfKGEpfTt0aGlzLnJldHVybj1mdW5jdGlvbihhKXtyZXR1cm4gYi5yZXR1cm5fKGEpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihiLGEpe2E9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmIucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGEsYi5wcm90b3R5cGUpO3JldHVybiBhfTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGIubmV4dChlKX1mdW5jdGlvbiBjKGUpe3JldHVybiBiLnRocm93KGUpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLGgpe2Z1bmN0aW9uIG4ocCl7cC5kb25lP2UocC52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHAudmFsdWUpLnRoZW4oYSxjKS50aGVuKG4saCl9bihiLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihiKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpKX07CmNvbnN0IExlYWQ9ZnVuY3Rpb24oYil7Y29uc3QgYT1PYmplY3QuYXNzaWduKHt9LGIpLGM9YS5sZWFkSWR8fGEubmFtZTtiPWEubGVhZE5vZGU7Y29uc3QgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybSIrYyk7bGV0IGg9ITEsbj1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWFkRW1haWwgW2RhdGEtc3ViamVjdF0iKS5pbm5lclRleHQscD1lLnF1ZXJ5U2VsZWN0b3IoIi5sZWFkRW1haWwgW2RhdGEtYm9keV0iKS5pbm5lckhUTUwseT1hLnRyaWdnZXIsbT17fTtjb25zdCB6PSgpPT57QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7c3dpdGNoKCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpjYXNlICJlbWFpbCI9PQpmLnRvTG93ZXJDYXNlKCk6Y2FzZSAiZGF0YSI9PWY6YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6Y2FzZSAidGVsIj09ZC50eXBlOklNYXNrKGQse21hc2s6W3ttYXNrOiIwMDAgMDAwLTAwMDAifSx7bWFzazoiMSAwMDAgMDAwLTAwMDAifV19KX19fSk7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7c3dpdGNoKCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6dmFyIGc7Zj1udWxsIT0oZz1jbGllbnRTdG9yYWdlLmdldCgiZmlyc3RuYW1lIikpP2c6IiI7dmFyIGs7Zz1udWxsIT0oaz1jbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKSk\/azoiIjtrPWYrKCIiIT1nPyIgIitjbGllbnRTdG9yYWdlLmdldCgibGFzdG5hbWUiKToKIiIpO2QudmFsdWU9azticmVhaztjYXNlIFsiZmlyc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpsZXQgbDtkLnZhbHVlPW51bGwhPShsPWNsaWVudFN0b3JhZ2UuZ2V0KCJmaXJzdG5hbWUiKSk\/bDoiIjticmVhaztjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmxldCByO2QudmFsdWU9bnVsbCE9KHI9Y2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIikpP3I6IiI7YnJlYWs7Y2FzZSAiZW1haWwiPT1mLnRvTG93ZXJDYXNlKCk6bGV0IHY7ZC52YWx1ZT1udWxsIT0odj1jbGllbnRTdG9yYWdlLmdldCgiZW1haWwiKSk\/djoiIjticmVhaztjYXNlICJwaG9uZSI9PWYudG9Mb3dlckNhc2UoKTpsZXQgdztkLnZhbHVlPW51bGwhPSh3PWNsaWVudFN0b3JhZ2UuZ2V0KCJwaG9uZSIpKT93OiIifX19KX0sRD0oKT0+e2lmKGgpcmV0dXJuITE7aD0hMDtBKCkudGhlbihkPT57aWYoIWQpcmV0dXJuIHQoInBvcHVwLnZhbGlkYXRpb25GYWlsZWQiKSwKaD0hMTthLnZhbGlkYXRlZD0hMDtCKCk7QygpfSl9LEI9KCk9PntBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGUuZWxlbWVudHMsZD0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZC5hdHRyaWJ1dGVzLm5hbWUpe3ZhciBmPWQuYXR0cmlidXRlcy5uYW1lLnZhbHVlfHwhMTtpZihmKXN3aXRjaChtW2ZdPWQudmFsdWUsITApe2Nhc2UgWyJuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpkPWQudmFsdWUuc3BsaXQoIiAiKTttLnVzZXJGaXJzdE5hbWUrPWQuc2hpZnQoKTttLnVzZXJMYXN0TmFtZSs9ZC5qb2luKCIgIik7YnJlYWs7Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bS51c2VyRmlyc3ROYW1lKz1kLnZhbHVlO2JyZWFrO2Nhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bS51c2VyTGFzdE5hbWUrPWQudmFsdWU7YnJlYWs7Y2FzZSAiZW1haWwiPT1mLnRvTG93ZXJDYXNlKCk6bS51c2VyRW1haWw9CmQudmFsdWU7YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6Y2FzZSAidGVsIj09ZC50eXBlOklNYXNrKGQse21hc2s6W3ttYXNrOiIwMDAgMDAwLTAwMDAifSx7bWFzazoiMSAwMDAgMDAwLTAwMDAifV19KTttLnVzZXJQaG9uZT1kLnZhbHVlO2JyZWFrO2Nhc2UgImRhdGEiPT1mOmZvcihsZXQgZyBpbiBkLmRhdGFzZXQpbVtnLnJlcGxhY2UoLy0uL2csaz0+a1sxXS50b1VwcGVyQ2FzZSgpKV09ZC5kYXRhc2V0W2ddfX19KX0sQz0oKT0+e2lmKCExPT09YS5vbkJlZm9yZVN1Ym1pdChhKSlyZXR1cm4gYS5jbG9zZU9uU3VibWl0JiZxKCksITE7aWYoQ29va2llcy5nZXQoYS5sZWFkSWQpKXJldHVybiBoPSExLHgoITApLCExO0UoKTt0KCJwb3B1cC5zdWJtaXQiKTt2YXIgZDtpZigiRGlnaXRhbFJldGFpbCI9PShudWxsPT0oZD1tKT92b2lkIDA6ZC5pbnZva2VyKSl7ZD1jbGllbnRTdG9yYWdlLmdldCgiY2xpZW50U3RvcmFnZSIpfHx7fTt2YXIgZjtsZXQgazttLmxlYWRJbnZva2VyU0lEPQpGKChudWxsPT1kP3ZvaWQgMDpudWxsPT0oZj1kLmNvbnRhY3QpP3ZvaWQgMDpmLmVtYWlsKSsobnVsbD09ZD92b2lkIDA6bnVsbD09KGs9ZC5jb250YWN0KT92b2lkIDA6ay5waG9uZSkpO2VtYWlsSGFuZGxlci5sZWFkSW52b2tlcj0iRGlnaXRhbFJldGFpbCI7ZW1haWxIYW5kbGVyLmRpZ2l0YWxSZXRhaWxTSUQ9bS5sZWFkSW52b2tlclNJRH1lbWFpbEhhbmRsZXIuYm9keT1HKCk7ZW1haWxIYW5kbGVyLnN1YmplY3Q9bjtPYmplY3QuYXNzaWduKGVtYWlsSGFuZGxlcixtKTsic3RyaW5nIj09dHlwZW9mIGVtYWlsSGFuZGxlci51c2VyTmFtZSYmKGY9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zi5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zi5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITF9OwplbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ZnVuY3Rpb24oayl7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITE7ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25EdXBsaWNhdGVTZW5kPWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLnJlc2V0Q2FsbGJhY2tzKCl9O2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihrKXt2YXIgbD0hMTthLnNob3dFbWFpbENvbmZpcm1hdGlvbiYmKGw9Z2V0TWFpbFNlbnRIYW5kbGVyKCJfIithLm5hbWUpLGwudGltZW91dENhbGxiYWNrPWZ1bmN0aW9uKCl7ZS5yZXNldCgpfSk7aWYoayl0KCJwb3B1cC5sZWFkX3NlbnQiKSwiZnVuY3Rpb24iPT10eXBlb2Ygb3JpZ2luYWxDYWxsYmFjayYmb3JpZ2luYWxDYWxsYmFjay5jYWxsKCksIm9uU3VibWl0Ij09YS5jb29raWVDcmVhdGUmJkNvb2tpZXMuc2V0KGEuY29va2llTmFtZSwiMSIsYS5jb29raWVEdXJhdGlvbiwiLyIpLGEuc3VibWl0RmxhZyYmCkNvb2tpZXMuc2V0KCJwb3B1cEZvcm1GaWxsZWQiLCIxIiwxLCIvIiksYS5jbG9zZU9uU3VibWl0JiZxKCJDT05TRU5UIiksbD9sLnNob3dTdWNjZXNzKCk6MDwkKGBmb3JtI2Zvcm0ke2EubmFtZX1fY29uZmlybWApLmxlbmd0aCYmJChgZm9ybSNmb3JtJHthLm5hbWV9X2NvbmZpcm1gKS50cmlnZ2VyKCJzdWJtaXQiKTtlbHNle2x8fChsPWdldE1haWxTZW50SGFuZGxlcigpKTt0cnl7bC5zaG93RmFpbCgpfWNhdGNoKHIpe319eChrKTt1KCk7c2V0VGltZW91dChlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKSwxRTMpO2smJkNvb2tpZXMuc2V0KGEubGVhZElkLCIxIiwxLCIvIil9O2Euc3VibWl0dGVkPSEwO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQmVmb3JlU2VuZE1haWwmJjA9PWEub25CZWZvcmVTZW5kTWFpbC5jYWxsKCkpcmV0dXJuITE7bGV0IGc9e307ImZ1bmN0aW9uIj09dHlwZW9mIGEub25BREYmJihnPWEub25BREYuY2FsbCgpKTsibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpLmZvckVhY2goaz0+CntlbWFpbEhhbmRsZXJba109Z1trXXx8ZW1haWxIYW5kbGVyW2tdfSk7YS5wdXJjaGFzZUludGVudFBvcHVwfHxlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5ieXBhc3NDb25zZW50KTtyZXR1cm4hMH0sdT0oKT0+e209e3VzZXJGaXJzdE5hbWU6IiIsdXNlckxhc3ROYW1lOiIiLHVzZXJFbWFpbDoiIix1c2VyUGhvbmU6IiJ9O2g9ITF9LEE9ZnVuY3Rpb24oKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7aWYoYS5za2lwVmFsaWRhdGlvbilyZXR1cm4hMDtjb25zdCBkPW5ldyBQcmlzdGluZShlLHtjbGFzc1RvOiJmb3JtLWxhYmVsIixlcnJvckNsYXNzOiJpbnZhbGlkIn0sITEpO2xldCBmPWUucXVlcnlTZWxlY3RvcignW25hbWU9InBob25lbnVtIl0nKSxnPSEwLGs9ITA7aWYoZi5yZXF1aXJlZHx8Zi52YWx1ZSlnPW51bGwsZz15aWVsZCBIKGYudmFsdWUpO251bGw9PT1nPyhkLmFkZFZhbGlkYXRvcihmLGZ1bmN0aW9uKGwpe2w9CmwucmVwbGFjZSgvW14wLTldKy9naSwiIik7IjEiPT1sWzBdJiYobD1sLnN1YnN0cmluZygxKSk7bD1wYXJzZUludChsLnN1YnN0cmluZygwLDMpKTtyZXR1cm4gZz1bNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0Myw2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDJdLmluY2x1ZGVzKGwpfSwiRW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIiLDUsITEpLGs9ZC52YWxpZGF0ZSgpKTooaz1kLnZhbGlkYXRlKCkmJmcsZi5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImludmFsaWQiLCFnKSk7Zi5yZXF1aXJlZCYmIWcmJiJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiYoZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKyssZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PSEwKTtyZXR1cm4ga30pfSxIPWQ9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2xldCBmPQpudWxsO2Q9ZC5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKTt5aWVsZCBheGlvcy5nZXQoIi9wcm94eV9yZDJjL3NpdGVzL3N2Yy92YWxpZGF0ZVBob25lTnVtYmVyLnBocCIse3RpbWVvdXQ6MkUzLGRhdGFUeXBlOiJqc29uIixwYXJhbXM6e3Bob25lOmR9LHJlc3BvbnNlVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKGcpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGcuZGF0YS5pc09rJiYoZj1nLmRhdGEucGhvbmVOdW1iZXJJc1ZhbGlkKX0pLmNhdGNoKGZ1bmN0aW9uKGcpe30pO3JldHVybiBmfSksRT0oKT0+e2NvbnN0IGQ9ZG9jdW1lbnQuZm9ybXMuZW1haWxtc2dmcm18fCExO2lmKCFkKXJldHVybiExO2QucXVlcnlTZWxlY3RvcignW25hbWU9ImxhYmVsIicpLnZhbHVlPWAke2EudHlwZX0gKCR7bS5jb25kaXRpb259KWA7ZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0ic2VjdGlvbiInKS52YWx1ZT1tLmNvbmRpdGlvbn0sRz1mdW5jdGlvbigpe2xldCBkPXAsZj17bmFtZTpbIk1OQU1FIl0sCnBob25lbnVtOlsiTVBIT05FIiwiUEhPTkUiXSxlbWFpbDpbIk1NQUlMIl19O09iamVjdC5rZXlzKG0pLmZvckVhY2goZz0+e3ZhciBrPW5ldyBSZWdFeHAoIntcXCQiK2cudG9VcHBlckNhc2UoKSsifSIsImciKTtkPWQucmVwbGFjZShrLG1bZ10pO2ZbZ10mJihrPW5ldyBSZWdFeHAoIntcXCQoIitmW2ddLmpvaW4oInwiKSsiKX0iLCJnIiksZD1kLnJlcGxhY2UoayxtW2ddKSl9KTtyZXR1cm4gZH0sdD1mdW5jdGlvbihkKXt2YXIgZj1hLnR5cGU7aWYoIWQpcmV0dXJuITE7aWYoInBvcHVwLmxlYWRfc2VudCI9PWQpe3ZhciBnPSJjbGljayIucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihsKXtyZXR1cm4gbC50b1VwcGVyQ2FzZSgpfSksaz1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZyxrLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8KKCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixkLGYsc2VsZiksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChkLGYpKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGQsZil9LHE9KCk9PnthLm9uQmVmb3JlQ2xvc2UoYSk7dSgpO01vZGFsc1tjXSYmTW9kYWxzW2NdLmNsb3NlKCl9LHg9ZD0+e2Eub25BZnRlclN1Ym1pdChhLGQpO2EuY2xvc2VPblN1Ym1pdCYmZCYmcSgpO2QmJmUucmVzZXQoKX0sRj1kPT57bGV0IGY9MDtpZigwPT1kLmxlbmd0aClyZXR1cm4gZjtmb3IobGV0IGc9MCxrPWQubGVuZ3RoO2c8aztnKyspe2xldCBsPWQuY2hhckNvZGVBdChnKTtmPShmPDw1KS1mK2w7Znw9MH1yZXR1cm4gTWF0aC5hYnMoZil9OygoKT0+eyQoZSkudHJpZ2dlcigicG9wdXBpemVyLm9uT3BlbiIsJChlKSk7dSgpO3ooKTtlLm9uc3VibWl0PWQ9PntkLnByZXZlbnREZWZhdWx0KCk7CkQoKX07YS5vbkJlZm9yZU9wZW4oYSl9KSgpO3JldHVybntsZWFkSWQ6YyxsZWFkTm9kZTpiLHRyaWdnZXI6eSxkaXNwbGF5OigpPT57YS5kaXNwbGF5P2EuZGlzcGxheShhKTooYS5jb250ZW50U3JjPWBsZWFkJHtjfWAsTW9kYWxzW2NdfHwoTW9kYWxzW2NdPW5ldyBNb2RhbChjLGEpKSxNb2RhbHNbY10uZGlzcGxheSgpKX0sY2xvc2U6cX19LExlYWRIYW5kbGVyPWZ1bmN0aW9uKCl7Y29uc3QgYj17b25CZWZvcmVPcGVuOigpPT57fSxvbkJlZm9yZVZhbGlkYXRpb246KCk9Pnt9LG9uQmVmb3JlU3VibWl0OigpPT57fSxvbkFmdGVyU3VibWl0OigpPT57fSxvbkJlZm9yZUNhbmNlbDooKT0+e30sb25CZWZvcmVDbG9zZTooKT0+e30sb25DbG9zZTooKT0+e30sZm9ybTp7ZW1haWxpZDpudWxsLG9mZmVydHlwZTpudWxsLG5hbWU6bnVsbCxzZW5kVG86bnVsbCxzZW5kVG9BREY6bnVsbCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLApzaG93RW1haWxDb25maXJtYXRpb246ITEsZnJvbUFBOiExfSxnZXRJZFN1ZmZpeDphPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqRGF0ZS5ub3coKSksbW9kZToic3RhdGljIix0cmlnZ2VyOiJhdXRvIixkZWxheTohMSxkaXNwbGF5OiExLHN1Ym1pdHRlZDohMSxjbG9zZU9uU3VibWl0OiEwLHN1Ym1pdEZsYWc6ITEsYnlwYXNzQ29uc2VudDohMSxzaG93RW1haWxDb25maXJtYXRpb246ITAscHVyY2hhc2VJbnRlbnRQb3B1cDohMX07aW5pdD0oKT0+eyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3QmJihuZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJWaWV3RGlzY292ZXJCdG5IYW5kbGVyIn0pKS5hZGRVc2VkU3JwRXZlbnRPYnNlcnZlcigiY29udGVudCIsYWRkTGVhZEV2ZW50cykuaW5pdFVzZWRTcnBPYnNlcnZlcigpO2FkZExlYWRFdmVudHMoKX07YWRkTGVhZEV2ZW50cz0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWxlYWQtdHJpZ2dlcl0iKS5mb3JFYWNoKGE9Pgp7dGhpcy5pbml0TGVhZFRyaWdnZXIoYSl9KX07dGhpcy5pbml0TGVhZFRyaWdnZXI9YT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGM9PntjLnN0b3BQcm9wYWdhdGlvbigpO2M9YS5kYXRhc2V0LmxlYWRUcmlnZ2VyO2xldCBlPWEuZGF0YXNldC5sZWFkaWR8fCExO0xlYWRDb25maWdzW2NdLnRyaWdnZXI9YTtjPXRoaXMuZ2V0TGVhZChjLGUpO2MuZGlzcGxheSgpO2EuZGF0YXNldC5sZWFkaWQ9Yy5sZWFkSWR9KX07dGhpcy5nZXRMZWFkPShhLGMpPT57aWYoIShjPUxlYWRzW2N8fGFdKSl7e2M9YTtsZXQgZT1PYmplY3QuYXNzaWduKHt9LGIpO09iamVjdC5hc3NpZ24oZSxMZWFkQ29uZmlnc1thXSk7Y29uc3QgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbGVhZCR7YX1gKTtoPyhhPWgsInN0YXRpYyIhPWUubW9kZSYmKGM9YCR7ZS5uYW1lfV8ke2UuZ2V0SWRTdWZmaXgoZSl9YCxhPWguY2xvbmVOb2RlKCEwKSxhLnNldEF0dHJpYnV0ZSgiaWQiLCJsZWFkIitjKSxhLnF1ZXJ5U2VsZWN0b3IoImZvcm0iKS5zZXRBdHRyaWJ1dGUoImlkIiwKImZvcm0iK2MpLGRvY3VtZW50LmJvZHkuYXBwZW5kKGEpKSxlLmxlYWRJZD1jLGUubGVhZE5vZGU9YSxMZWFkc1tjXT1uZXcgTGVhZChlKSxjPUxlYWRzW2NdKTpjPSExfX1yZXR1cm4gY307cmV0dXJue2luaXQsaW5pdExlYWRUcmlnZ2VyLGdldExlYWR9fTt2YXIgTGVhZHM9TGVhZHN8fHt9O2RvY1JlYWR5QXJyLnB1c2goTGVhZEhhbmRsZXIoKS5pbml0KTsKLyoqIC9qcy92YW5pbGxhanMvYXhpb3MubWluLmpzICoqLwohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSx0KToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM\/ZXhwb3J0cy5heGlvcz10KCk6ZS5heGlvcz10KCl9KHRoaXMsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Z1bmN0aW9uIG4ocil7aWYodFtyXSlyZXR1cm4gdFtyXS5leHBvcnRzO3ZhciBvPXRbcl09e2k6cixsOiExLGV4cG9ydHM6e319O3JldHVybiBlW3JdLmNhbGwoby5leHBvcnRzLG8sby5leHBvcnRzLG4pLG8ubD0hMCxvLmV4cG9ydHN9cmV0dXJuIG4ubT1lLG4uYz10LG4uZD1mdW5jdGlvbihlLHQscil7bi5vKGUsdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OnJ9KX0sbi5yPWZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG4udD1mdW5jdGlvbihlLHQpe2lmKDEmdCYmKGU9bihlKSksOCZ0KXJldHVybiBlO2lmKDQmdCYmIm9iamVjdCI9PXR5cGVvZiBlJiZlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHI9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihuLnIociksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmV9KSwyJnQmJiJzdHJpbmciIT10eXBlb2YgZSlmb3IodmFyIG8gaW4gZSluLmQocixvLGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfS5iaW5kKG51bGwsbykpO3JldHVybiByfSxuLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIG4uZCh0LCJhIix0KSx0fSxuLm89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCl9LG4ucD0iIixuKG4ucz0xMSl9KFtmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMyksbz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PW8uY2FsbChlKX1mdW5jdGlvbiBzKGUpe3JldHVybiB2b2lkIDA9PT1lfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV9ZnVuY3Rpb24gdShlKXtpZigiW29iamVjdCBPYmplY3RdIiE9PW8uY2FsbChlKSlyZXR1cm4hMTt2YXIgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIG51bGw9PT10fHx0PT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiBjKGUpe3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1vLmNhbGwoZSl9ZnVuY3Rpb24gZihlLHQpe2lmKG51bGwhPWUpaWYoIm9iamVjdCIhPXR5cGVvZiBlJiYoZT1bZV0pLGkoZSkpZm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKXQuY2FsbChudWxsLGVbbl0sbixlKTtlbHNlIGZvcih2YXIgbyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiZ0LmNhbGwobnVsbCxlW29dLG8sZSl9ZS5leHBvcnRzPXtpc0FycmF5OmksaXNBcnJheUJ1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheUJ1ZmZlcl0iPT09by5jYWxsKGUpfSxpc0J1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9PWUmJiFzKGUpJiZudWxsIT09ZS5jb25zdHJ1Y3RvciYmIXMoZS5jb25zdHJ1Y3RvcikmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpfSxpc0Zvcm1EYXRhOmZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgRm9ybURhdGEmJmUgaW5zdGFuY2VvZiBGb3JtRGF0YX0saXNBcnJheUJ1ZmZlclZpZXc6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmQXJyYXlCdWZmZXIuaXNWaWV3P0FycmF5QnVmZmVyLmlzVmlldyhlKTplJiZlLmJ1ZmZlciYmZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcn0saXNTdHJpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfSxpc051bWJlcjpmdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGV9LGlzT2JqZWN0OmEsaXNQbGFpbk9iamVjdDp1LGlzVW5kZWZpbmVkOnMsaXNEYXRlOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IERhdGVdIj09PW8uY2FsbChlKX0saXNGaWxlOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEZpbGVdIj09PW8uY2FsbChlKX0saXNCbG9iOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEJsb2JdIj09PW8uY2FsbChlKX0saXNGdW5jdGlvbjpjLGlzU3RyZWFtOmZ1bmN0aW9uKGUpe3JldHVybiBhKGUpJiZjKGUucGlwZSl9LGlzVVJMU2VhcmNoUGFyYW1zOmZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgVVJMU2VhcmNoUGFyYW1zJiZlIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zfSxpc1N0YW5kYXJkQnJvd3NlckVudjpmdW5jdGlvbigpe3JldHVybigidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8IlJlYWN0TmF0aXZlIiE9PW5hdmlnYXRvci5wcm9kdWN0JiYiTmF0aXZlU2NyaXB0IiE9PW5hdmlnYXRvci5wcm9kdWN0JiYiTlMiIT09bmF2aWdhdG9yLnByb2R1Y3QpJiYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQpfSxmb3JFYWNoOmYsbWVyZ2U6ZnVuY3Rpb24gZSgpe3ZhciB0PXt9O2Z1bmN0aW9uIG4obixyKXt1KHRbcl0pJiZ1KG4pP3Rbcl09ZSh0W3JdLG4pOnUobik\/dFtyXT1lKHt9LG4pOmkobik\/dFtyXT1uLnNsaWNlKCk6dFtyXT1ufWZvcih2YXIgcj0wLG89YXJndW1lbnRzLmxlbmd0aDtyPG87cisrKWYoYXJndW1lbnRzW3JdLG4pO3JldHVybiB0fSxleHRlbmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmKHQsKGZ1bmN0aW9uKHQsbyl7ZVtvXT1uJiYiZnVuY3Rpb24iPT10eXBlb2YgdD9yKHQsbik6dH0pKSxlfSx0cmltOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0\/ZS50cmltKCk6ZS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9LHN0cmlwQk9NOmZ1bmN0aW9uKGUpe3JldHVybiA2NTI3OT09PWUuY2hhckNvZGVBdCgwKSYmKGU9ZS5zbGljZSgxKSksZX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDE3KSxpPW4oNSkscz17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9O2Z1bmN0aW9uIGEoZSx0KXshci5pc1VuZGVmaW5lZChlKSYmci5pc1VuZGVmaW5lZChlWyJDb250ZW50LVR5cGUiXSkmJihlWyJDb250ZW50LVR5cGUiXT10KX12YXIgdSxjPXt0cmFuc2l0aW9uYWw6e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9LGFkYXB0ZXI6KCgidW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0fHwidW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChwcm9jZXNzKSkmJih1PW4oNikpLHUpLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7cmV0dXJuIG8odCwiQWNjZXB0Iiksbyh0LCJDb250ZW50LVR5cGUiKSxyLmlzRm9ybURhdGEoZSl8fHIuaXNBcnJheUJ1ZmZlcihlKXx8ci5pc0J1ZmZlcihlKXx8ci5pc1N0cmVhbShlKXx8ci5pc0ZpbGUoZSl8fHIuaXNCbG9iKGUpP2U6ci5pc0FycmF5QnVmZmVyVmlldyhlKT9lLmJ1ZmZlcjpyLmlzVVJMU2VhcmNoUGFyYW1zKGUpPyhhKHQsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiksZS50b1N0cmluZygpKTpyLmlzT2JqZWN0KGUpfHx0JiYiYXBwbGljYXRpb24vanNvbiI9PT10WyJDb250ZW50LVR5cGUiXT8oYSh0LCJhcHBsaWNhdGlvbi9qc29uIiksZnVuY3Rpb24oZSx0LG4pe2lmKHIuaXNTdHJpbmcoZSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShlKSxyLnRyaW0oZSl9Y2F0Y2goZSl7aWYoIlN5bnRheEVycm9yIiE9PWUubmFtZSl0aHJvdyBlfXJldHVybihufHxKU09OLnN0cmluZ2lmeSkoZSl9KGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe3ZhciB0PXRoaXMudHJhbnNpdGlvbmFsfHxjLnRyYW5zaXRpb25hbCxuPXQmJnQuc2lsZW50SlNPTlBhcnNpbmcsbz10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLHM9IW4mJiJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKHN8fG8mJnIuaXNTdHJpbmcoZSkmJmUubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChlKXtpZihzKXtpZigiU3ludGF4RXJyb3IiPT09ZS5uYW1lKXRocm93IGkoZSx0aGlzLCJFX0pTT05fUEFSU0UiKTt0aHJvdyBlfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIn19fTtyLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIl0sKGZ1bmN0aW9uKGUpe2MuaGVhZGVyc1tlXT17fX0pKSxyLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSwoZnVuY3Rpb24oZSl7Yy5oZWFkZXJzW2VdPXIubWVyZ2Uocyl9KSksZS5leHBvcnRzPWN9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXt0aGlzLm1lc3NhZ2U9ZX1yLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJDYW5jZWwiKyh0aGlzLm1lc3NhZ2U\/IjogIit0aGlzLm1lc3NhZ2U6IiIpfSxyLnByb3RvdHlwZS5fX0NBTkNFTF9fPSEwLGUuZXhwb3J0cz1yfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCkscj0wO3I8bi5sZW5ndGg7cisrKW5bcl09YXJndW1lbnRzW3JdO3JldHVybiBlLmFwcGx5KHQsbil9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtpZighdClyZXR1cm4gZTt2YXIgaTtpZihuKWk9bih0KTtlbHNlIGlmKHIuaXNVUkxTZWFyY2hQYXJhbXModCkpaT10LnRvU3RyaW5nKCk7ZWxzZXt2YXIgcz1bXTtyLmZvckVhY2godCwoZnVuY3Rpb24oZSx0KXtudWxsIT1lJiYoci5pc0FycmF5KGUpP3QrPSJbXSI6ZT1bZV0sci5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3IuaXNEYXRlKGUpP2U9ZS50b0lTT1N0cmluZygpOnIuaXNPYmplY3QoZSkmJihlPUpTT04uc3RyaW5naWZ5KGUpKSxzLnB1c2gobyh0KSsiPSIrbyhlKSl9KSkpfSkpLGk9cy5qb2luKCImIil9aWYoaSl7dmFyIGE9ZS5pbmRleE9mKCIjIik7LTEhPT1hJiYoZT1lLnNsaWNlKDAsYSkpLGUrPSgtMT09PWUuaW5kZXhPZigiPyIpPyI\/IjoiJiIpK2l9cmV0dXJuIGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixyLG8pe3JldHVybiBlLmNvbmZpZz10LG4mJihlLmNvZGU9biksZS5yZXF1ZXN0PXIsZS5yZXNwb25zZT1vLGUuaXNBeGlvc0Vycm9yPSEwLGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOnRoaXMuY29uZmlnLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnJlc3BvbnNlJiZ0aGlzLnJlc3BvbnNlLnN0YXR1cz90aGlzLnJlc3BvbnNlLnN0YXR1czpudWxsfX0sZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMTgpLGk9bigxOSkscz1uKDQpLGE9bigyMCksdT1uKDIzKSxjPW4oMjQpLGY9big3KSxsPW4oMSkscD1uKDIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7dmFyIGQsaD1lLmRhdGEsbT1lLmhlYWRlcnMsdj1lLnJlc3BvbnNlVHlwZTtmdW5jdGlvbiB5KCl7ZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShkKSxlLnNpZ25hbCYmZS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGQpfXIuaXNGb3JtRGF0YShoKSYmZGVsZXRlIG1bIkNvbnRlbnQtVHlwZSJdO3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtpZihlLmF1dGgpe3ZhciBiPWUuYXV0aC51c2VybmFtZXx8IiIseD1lLmF1dGgucGFzc3dvcmQ\/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGUuYXV0aC5wYXNzd29yZCkpOiIiO20uQXV0aG9yaXphdGlvbj0iQmFzaWMgIitidG9hKGIrIjoiK3gpfXZhciB3PWEoZS5iYXNlVVJMLGUudXJsKTtmdW5jdGlvbiBFKCl7aWYoZyl7dmFyIHI9ImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBnP3UoZy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk6bnVsbCxpPXtkYXRhOnYmJiJ0ZXh0IiE9PXYmJiJqc29uIiE9PXY\/Zy5yZXNwb25zZTpnLnJlc3BvbnNlVGV4dCxzdGF0dXM6Zy5zdGF0dXMsc3RhdHVzVGV4dDpnLnN0YXR1c1RleHQsaGVhZGVyczpyLGNvbmZpZzplLHJlcXVlc3Q6Z307bygoZnVuY3Rpb24oZSl7dChlKSx5KCl9KSwoZnVuY3Rpb24oZSl7bihlKSx5KCl9KSxpKSxnPW51bGx9fWlmKGcub3BlbihlLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHModyxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpLCEwKSxnLnRpbWVvdXQ9ZS50aW1lb3V0LCJvbmxvYWRlbmQiaW4gZz9nLm9ubG9hZGVuZD1FOmcub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ZyYmND09PWcucmVhZHlTdGF0ZSYmKDAhPT1nLnN0YXR1c3x8Zy5yZXNwb25zZVVSTCYmMD09PWcucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKSkmJnNldFRpbWVvdXQoRSl9LGcub25hYm9ydD1mdW5jdGlvbigpe2cmJihuKGYoIlJlcXVlc3QgYWJvcnRlZCIsZSwiRUNPTk5BQk9SVEVEIixnKSksZz1udWxsKX0sZy5vbmVycm9yPWZ1bmN0aW9uKCl7bihmKCJOZXR3b3JrIEVycm9yIixlLG51bGwsZykpLGc9bnVsbH0sZy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXt2YXIgdD1lLnRpbWVvdXQ\/InRpbWVvdXQgb2YgIitlLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIscj1lLnRyYW5zaXRpb25hbHx8bC50cmFuc2l0aW9uYWw7ZS50aW1lb3V0RXJyb3JNZXNzYWdlJiYodD1lLnRpbWVvdXRFcnJvck1lc3NhZ2UpLG4oZih0LGUsci5jbGFyaWZ5VGltZW91dEVycm9yPyJFVElNRURPVVQiOiJFQ09OTkFCT1JURUQiLGcpKSxnPW51bGx9LHIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSl7dmFyIFM9KGUud2l0aENyZWRlbnRpYWxzfHxjKHcpKSYmZS54c3JmQ29va2llTmFtZT9pLnJlYWQoZS54c3JmQ29va2llTmFtZSk6dm9pZCAwO1MmJihtW2UueHNyZkhlYWRlck5hbWVdPVMpfSJzZXRSZXF1ZXN0SGVhZGVyImluIGcmJnIuZm9yRWFjaChtLChmdW5jdGlvbihlLHQpe3ZvaWQgMD09PWgmJiJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpP2RlbGV0ZSBtW3RdOmcuc2V0UmVxdWVzdEhlYWRlcih0LGUpfSkpLHIuaXNVbmRlZmluZWQoZS53aXRoQ3JlZGVudGlhbHMpfHwoZy53aXRoQ3JlZGVudGlhbHM9ISFlLndpdGhDcmVkZW50aWFscyksdiYmImpzb24iIT09diYmKGcucmVzcG9uc2VUeXBlPWUucmVzcG9uc2VUeXBlKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5vbkRvd25sb2FkUHJvZ3Jlc3MmJmcuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25Eb3dubG9hZFByb2dyZXNzKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5vblVwbG9hZFByb2dyZXNzJiZnLnVwbG9hZCYmZy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25VcGxvYWRQcm9ncmVzcyksKGUuY2FuY2VsVG9rZW58fGUuc2lnbmFsKSYmKGQ9ZnVuY3Rpb24oZSl7ZyYmKG4oIWV8fGUmJmUudHlwZT9uZXcgcCgiY2FuY2VsZWQiKTplKSxnLmFib3J0KCksZz1udWxsKX0sZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoZCksZS5zaWduYWwmJihlLnNpZ25hbC5hYm9ydGVkP2QoKTplLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZCkpKSxofHwoaD1udWxsKSxnLnNlbmQoaCl9KSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLG8saSl7dmFyIHM9bmV3IEVycm9yKGUpO3JldHVybiByKHMsdCxuLG8saSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4hKCFlfHwhZS5fX0NBTkNFTF9fKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBuPXt9O2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4gci5pc1BsYWluT2JqZWN0KGUpJiZyLmlzUGxhaW5PYmplY3QodCk\/ci5tZXJnZShlLHQpOnIuaXNQbGFpbk9iamVjdCh0KT9yLm1lcmdlKHt9LHQpOnIuaXNBcnJheSh0KT90LnNsaWNlKCk6dH1mdW5jdGlvbiBpKG4pe3JldHVybiByLmlzVW5kZWZpbmVkKHRbbl0pP3IuaXNVbmRlZmluZWQoZVtuXSk\/dm9pZCAwOm8odm9pZCAwLGVbbl0pOm8oZVtuXSx0W25dKX1mdW5jdGlvbiBzKGUpe2lmKCFyLmlzVW5kZWZpbmVkKHRbZV0pKXJldHVybiBvKHZvaWQgMCx0W2VdKX1mdW5jdGlvbiBhKG4pe3JldHVybiByLmlzVW5kZWZpbmVkKHRbbl0pP3IuaXNVbmRlZmluZWQoZVtuXSk\/dm9pZCAwOm8odm9pZCAwLGVbbl0pOm8odm9pZCAwLHRbbl0pfWZ1bmN0aW9uIHUobil7cmV0dXJuIG4gaW4gdD9vKGVbbl0sdFtuXSk6biBpbiBlP28odm9pZCAwLGVbbl0pOnZvaWQgMH12YXIgYz17dXJsOnMsbWV0aG9kOnMsZGF0YTpzLGJhc2VVUkw6YSx0cmFuc2Zvcm1SZXF1ZXN0OmEsdHJhbnNmb3JtUmVzcG9uc2U6YSxwYXJhbXNTZXJpYWxpemVyOmEsdGltZW91dDphLHRpbWVvdXRNZXNzYWdlOmEsd2l0aENyZWRlbnRpYWxzOmEsYWRhcHRlcjphLHJlc3BvbnNlVHlwZTphLHhzcmZDb29raWVOYW1lOmEseHNyZkhlYWRlck5hbWU6YSxvblVwbG9hZFByb2dyZXNzOmEsb25Eb3dubG9hZFByb2dyZXNzOmEsZGVjb21wcmVzczphLG1heENvbnRlbnRMZW5ndGg6YSxtYXhCb2R5TGVuZ3RoOmEsdHJhbnNwb3J0OmEsaHR0cEFnZW50OmEsaHR0cHNBZ2VudDphLGNhbmNlbFRva2VuOmEsc29ja2V0UGF0aDphLHJlc3BvbnNlRW5jb2Rpbmc6YSx2YWxpZGF0ZVN0YXR1czp1fTtyZXR1cm4gci5mb3JFYWNoKE9iamVjdC5rZXlzKGUpLmNvbmNhdChPYmplY3Qua2V5cyh0KSksKGZ1bmN0aW9uKGUpe3ZhciB0PWNbZV18fGksbz10KGUpO3IuaXNVbmRlZmluZWQobykmJnQhPT11fHwobltlXT1vKX0pKSxufX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9e3ZlcnNpb246IjAuMjQuMCJ9fSxmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPW4oMTIpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDMpLGk9bigxMykscz1uKDkpO3ZhciBhPWZ1bmN0aW9uIGUodCl7dmFyIG49bmV3IGkodCksYT1vKGkucHJvdG90eXBlLnJlcXVlc3Qsbik7cmV0dXJuIHIuZXh0ZW5kKGEsaS5wcm90b3R5cGUsbiksci5leHRlbmQoYSxuKSxhLmNyZWF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gZShzKHQsbikpfSxhfShuKDEpKTthLkF4aW9zPWksYS5DYW5jZWw9bigyKSxhLkNhbmNlbFRva2VuPW4oMjYpLGEuaXNDYW5jZWw9big4KSxhLlZFUlNJT049bigxMCkudmVyc2lvbixhLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9LGEuc3ByZWFkPW4oMjcpLGEuaXNBeGlvc0Vycm9yPW4oMjgpLGUuZXhwb3J0cz1hLGUuZXhwb3J0cy5kZWZhdWx0PWF9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oNCksaT1uKDE0KSxzPW4oMTUpLGE9big5KSx1PW4oMjUpLGM9dS52YWxpZGF0b3JzO2Z1bmN0aW9uIGYoZSl7dGhpcy5kZWZhdWx0cz1lLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBpLHJlc3BvbnNlOm5ldyBpfX1mLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKGUpeyJzdHJpbmciPT10eXBlb2YgZT8oZT1hcmd1bWVudHNbMV18fHt9KS51cmw9YXJndW1lbnRzWzBdOmU9ZXx8e30sKGU9YSh0aGlzLmRlZmF1bHRzLGUpKS5tZXRob2Q\/ZS5tZXRob2Q9ZS5tZXRob2QudG9Mb3dlckNhc2UoKTp0aGlzLmRlZmF1bHRzLm1ldGhvZD9lLm1ldGhvZD10aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpOmUubWV0aG9kPSJnZXQiO3ZhciB0PWUudHJhbnNpdGlvbmFsO3ZvaWQgMCE9PXQmJnUuYXNzZXJ0T3B0aW9ucyh0LHtzaWxlbnRKU09OUGFyc2luZzpjLnRyYW5zaXRpb25hbChjLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpjLnRyYW5zaXRpb25hbChjLmJvb2xlYW4pfSwhMSk7dmFyIG49W10scj0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goKGZ1bmN0aW9uKHQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0LnJ1bldoZW4mJiExPT09dC5ydW5XaGVuKGUpfHwocj1yJiZ0LnN5bmNocm9ub3VzLG4udW5zaGlmdCh0LmZ1bGZpbGxlZCx0LnJlamVjdGVkKSl9KSk7dmFyIG8saT1bXTtpZih0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKChmdW5jdGlvbihlKXtpLnB1c2goZS5mdWxmaWxsZWQsZS5yZWplY3RlZCl9KSksIXIpe3ZhciBmPVtzLHZvaWQgMF07Zm9yKEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGYsbiksZj1mLmNvbmNhdChpKSxvPVByb21pc2UucmVzb2x2ZShlKTtmLmxlbmd0aDspbz1vLnRoZW4oZi5zaGlmdCgpLGYuc2hpZnQoKSk7cmV0dXJuIG99Zm9yKHZhciBsPWU7bi5sZW5ndGg7KXt2YXIgcD1uLnNoaWZ0KCksZD1uLnNoaWZ0KCk7dHJ5e2w9cChsKX1jYXRjaChlKXtkKGUpO2JyZWFrfX10cnl7bz1zKGwpfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlamVjdChlKX1mb3IoO2kubGVuZ3RoOylvPW8udGhlbihpLnNoaWZ0KCksaS5zaGlmdCgpKTtyZXR1cm4gb30sZi5wcm90b3R5cGUuZ2V0VXJpPWZ1bmN0aW9uKGUpe3JldHVybiBlPWEodGhpcy5kZWZhdWx0cyxlKSxvKGUudXJsLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcikucmVwbGFjZSgvXlw\/LywiIil9LHIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sKGZ1bmN0aW9uKGUpe2YucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMucmVxdWVzdChhKG58fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihufHx7fSkuZGF0YX0pKX19KSksci5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sKGZ1bmN0aW9uKGUpe2YucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGEocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6bn0pKX19KSksZS5leHBvcnRzPWZ9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtmdW5jdGlvbiBvKCl7dGhpcy5oYW5kbGVycz1bXX1vLnByb3RvdHlwZS51c2U9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6ISFuJiZuLnN5bmNocm9ub3VzLHJ1bldoZW46bj9uLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9LG8ucHJvdG90eXBlLmVqZWN0PWZ1bmN0aW9uKGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfSxvLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUpe3IuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLChmdW5jdGlvbih0KXtudWxsIT09dCYmZSh0KX0pKX0sZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMTYpLGk9big4KSxzPW4oMSksYT1uKDIpO2Z1bmN0aW9uIHUoZSl7aWYoZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksZS5zaWduYWwmJmUuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IGEoImNhbmNlbGVkIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiB1KGUpLGUuaGVhZGVycz1lLmhlYWRlcnN8fHt9LGUuZGF0YT1vLmNhbGwoZSxlLmRhdGEsZS5oZWFkZXJzLGUudHJhbnNmb3JtUmVxdWVzdCksZS5oZWFkZXJzPXIubWVyZ2UoZS5oZWFkZXJzLmNvbW1vbnx8e30sZS5oZWFkZXJzW2UubWV0aG9kXXx8e30sZS5oZWFkZXJzKSxyLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sKGZ1bmN0aW9uKHQpe2RlbGV0ZSBlLmhlYWRlcnNbdF19KSksKGUuYWRhcHRlcnx8cy5hZGFwdGVyKShlKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdShlKSx0LmRhdGE9by5jYWxsKGUsdC5kYXRhLHQuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSx0fSksKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQpfHwodShlKSx0JiZ0LnJlc3BvbnNlJiYodC5yZXNwb25zZS5kYXRhPW8uY2FsbChlLHQucmVzcG9uc2UuZGF0YSx0LnJlc3BvbnNlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSkpKSxQcm9taXNlLnJlamVjdCh0KX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzfHxvO3JldHVybiByLmZvckVhY2gobiwoZnVuY3Rpb24obil7ZT1uLmNhbGwoaSxlLHQpfSkpLGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7ci5mb3JFYWNoKGUsKGZ1bmN0aW9uKG4scil7ciE9PXQmJnIudG9VcHBlckNhc2UoKT09PXQudG9VcHBlckNhc2UoKSYmKGVbdF09bixkZWxldGUgZVtyXSl9KSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1uLmNvbmZpZy52YWxpZGF0ZVN0YXR1cztuLnN0YXR1cyYmbyYmIW8obi5zdGF0dXMpP3QocigiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK24uc3RhdHVzLG4uY29uZmlnLG51bGwsbi5yZXF1ZXN0LG4pKTplKG4pfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1yLmlzU3RhbmRhcmRCcm93c2VyRW52KCk\/e3dyaXRlOmZ1bmN0aW9uKGUsdCxuLG8saSxzKXt2YXIgYT1bXTthLnB1c2goZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKSxyLmlzTnVtYmVyKG4pJiZhLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShuKS50b0dNVFN0cmluZygpKSxyLmlzU3RyaW5nKG8pJiZhLnB1c2goInBhdGg9IitvKSxyLmlzU3RyaW5nKGkpJiZhLnB1c2goImRvbWFpbj0iK2kpLCEwPT09cyYmYS5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9YS5qb2luKCI7ICIpfSxyZWFkOmZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitlKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ\/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZTpmdW5jdGlvbihlKXt0aGlzLndyaXRlKGUsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigyMSksbz1uKDIyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXIodCk\/byhlLHQpOnR9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4vXihbYS16XVthLXpcZFwrXC1cLl0qOik\/XC9cLy9pLnRlc3QoZSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiB0P2UucmVwbGFjZSgvXC8rJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cLysvLCIiKTplfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89WyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM9e307cmV0dXJuIGU\/KHIuZm9yRWFjaChlLnNwbGl0KCJcbiIpLChmdW5jdGlvbihlKXtpZihpPWUuaW5kZXhPZigiOiIpLHQ9ci50cmltKGUuc3Vic3RyKDAsaSkpLnRvTG93ZXJDYXNlKCksbj1yLnRyaW0oZS5zdWJzdHIoaSsxKSksdCl7aWYoc1t0XSYmby5pbmRleE9mKHQpPj0wKXJldHVybjtzW3RdPSJzZXQtY29va2llIj09PXQ\/KHNbdF0\/c1t0XTpbXSkuY29uY2F0KFtuXSk6c1t0XT9zW3RdKyIsICIrbjpufX0pKSxzKTpzfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1yLmlzU3RhbmRhcmRCcm93c2VyRW52KCk\/ZnVuY3Rpb24oKXt2YXIgZSx0PS8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7ZnVuY3Rpb24gbyhlKXt2YXIgcj1lO3JldHVybiB0JiYobi5zZXRBdHRyaWJ1dGUoImhyZWYiLHIpLHI9bi5ocmVmKSxuLnNldEF0dHJpYnV0ZSgiaHJlZiIscikse2hyZWY6bi5ocmVmLHByb3RvY29sOm4ucHJvdG9jb2w\/bi5wcm90b2NvbC5yZXBsYWNlKC86JC8sIiIpOiIiLGhvc3Q6bi5ob3N0LHNlYXJjaDpuLnNlYXJjaD9uLnNlYXJjaC5yZXBsYWNlKC9eXD8vLCIiKToiIixoYXNoOm4uaGFzaD9uLmhhc2gucmVwbGFjZSgvXiMvLCIiKToiIixob3N0bmFtZTpuLmhvc3RuYW1lLHBvcnQ6bi5wb3J0LHBhdGhuYW1lOiIvIj09PW4ucGF0aG5hbWUuY2hhckF0KDApP24ucGF0aG5hbWU6Ii8iK24ucGF0aG5hbWV9fXJldHVybiBlPW8od2luZG93LmxvY2F0aW9uLmhyZWYpLGZ1bmN0aW9uKHQpe3ZhciBuPXIuaXNTdHJpbmcodCk\/byh0KTp0O3JldHVybiBuLnByb3RvY29sPT09ZS5wcm90b2NvbCYmbi5ob3N0PT09ZS5ob3N0fX0oKTpmdW5jdGlvbigpe3JldHVybiEwfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDEwKS52ZXJzaW9uLG89e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChmdW5jdGlvbihlLHQpe29bZV09ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuPT09ZXx8ImEiKyh0PDE\/Im4gIjoiICIpK2V9fSkpO3ZhciBpPXt9O28udHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIltBeGlvcyB2IityKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrZSsiJyIrdCsobj8iLiAiK246IiIpfXJldHVybiBmdW5jdGlvbihuLHIscyl7aWYoITE9PT1lKXRocm93IG5ldyBFcnJvcihvKHIsIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpKTtyZXR1cm4gdCYmIWlbcl0mJihpW3JdPSEwLGNvbnNvbGUud2FybihvKHIsIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksIWV8fGUobixyLHMpfX0sZS5leHBvcnRzPXthc3NlcnRPcHRpb25zOmZ1bmN0aW9uKGUsdCxuKXtpZigib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2Zvcih2YXIgcj1PYmplY3Qua2V5cyhlKSxvPXIubGVuZ3RoO28tLSA+MDspe3ZhciBpPXJbb10scz10W2ldO2lmKHMpe3ZhciBhPWVbaV0sdT12b2lkIDA9PT1hfHxzKGEsaSxlKTtpZighMCE9PXUpdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uICIraSsiIG11c3QgYmUgIit1KX1lbHNlIGlmKCEwIT09bil0aHJvdyBFcnJvcigiVW5rbm93biBvcHRpb24gIitpKX19LHZhbGlkYXRvcnM6b319LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigyKTtmdW5jdGlvbiBvKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTt2YXIgdDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3Q9ZX0pKTt2YXIgbj10aGlzO3RoaXMucHJvbWlzZS50aGVuKChmdW5jdGlvbihlKXtpZihuLl9saXN0ZW5lcnMpe3ZhciB0LHI9bi5fbGlzdGVuZXJzLmxlbmd0aDtmb3IodD0wO3Q8cjt0Kyspbi5fbGlzdGVuZXJzW3RdKGUpO24uX2xpc3RlbmVycz1udWxsfX0pKSx0aGlzLnByb21pc2UudGhlbj1mdW5jdGlvbihlKXt2YXIgdCxyPW5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtuLnN1YnNjcmliZShlKSx0PWV9KSkudGhlbihlKTtyZXR1cm4gci5jYW5jZWw9ZnVuY3Rpb24oKXtuLnVuc3Vic2NyaWJlKHQpfSxyfSxlKChmdW5jdGlvbihlKXtuLnJlYXNvbnx8KG4ucmVhc29uPW5ldyByKGUpLHQobi5yZWFzb24pKX0pKX1vLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259LG8ucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlKXt0aGlzLnJlYXNvbj9lKHRoaXMucmVhc29uKTp0aGlzLl9saXN0ZW5lcnM\/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX0sby5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbGlzdGVuZXJzKXt2YXIgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTstMSE9PXQmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX19LG8uc291cmNlPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJue3Rva2VuOm5ldyBvKChmdW5jdGlvbih0KXtlPXR9KSksY2FuY2VsOmV9fSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KG51bGwsdCl9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiYhMD09PWUuaXNBeGlvc0Vycm9yfX1dKX0pKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXhpb3MubWluLm1hcDsKLyoqIC9qcy92YW5pbGxhanMvcHJpc3RpbmUubWluLmpzICoqLwohZnVuY3Rpb24oZSxyKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXIoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShyKTooZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczplfHxzZWxmKS5QcmlzdGluZT1yKCl9KHRoaXMsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXtlbjp7cmVxdWlyZWQ6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiLGVtYWlsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MiLG51bWJlcjoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIG51bWJlciIsaW50ZWdlcjoiVGhpcyBmaWVsZCByZXF1aXJlcyBhbiBpbnRlZ2VyIHZhbHVlIix1cmw6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSB2YWxpZCB3ZWJzaXRlIFVSTCIsdGVsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgdGVsZXBob25lIG51bWJlciIsbWF4bGVuZ3RoOiJUaGlzIGZpZWxkcyBsZW5ndGggbXVzdCBiZSA8ICR7MX0iLG1pbmxlbmd0aDoiVGhpcyBmaWVsZHMgbGVuZ3RoIG11c3QgYmUgPiAkezF9IixtaW46Ik1pbmltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQgaXMgJHsxfSIsbWF4OiJNYXhpbXVtIHZhbHVlIGZvciB0aGlzIGZpZWxkIGlzICR7MX0iLHBhdHRlcm46IlBsZWFzZSBtYXRjaCB0aGUgcmVxdWVzdGVkIGZvcm1hdCIsZXF1YWxzOiJUaGUgdHdvIGZpZWxkcyBkbyBub3QgbWF0Y2gifX07ZnVuY3Rpb24gcihlKXt2YXIgcj1hcmd1bWVudHM7cmV0dXJuIHRoaXMucmVwbGFjZSgvXCR7KFtee31dKil9L2csKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHJbdF19KSl9ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5wcmlzdGluZS5zZWxmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iJytlLmdldEF0dHJpYnV0ZSgibmFtZSIpKyciXTpjaGVja2VkJykubGVuZ3RofXZhciBuPXtjbGFzc1RvOiJmb3JtLWdyb3VwIixlcnJvckNsYXNzOiJoYXMtZGFuZ2VyIixzdWNjZXNzQ2xhc3M6Imhhcy1zdWNjZXNzIixlcnJvclRleHRQYXJlbnQ6ImZvcm0tZ3JvdXAiLGVycm9yVGV4dFRhZzoiZGl2IixlcnJvclRleHRDbGFzczoidGV4dC1oZWxwIn0saT1bInJlcXVpcmVkIiwibWluIiwibWF4IiwibWlubGVuZ3RoIiwibWF4bGVuZ3RoIiwicGF0dGVybiJdLHM9L14oKFtePD4oKVxbXF1cXC4sOzpcc0AiXSsoXC5bXjw+KClcW1xdXFwuLDs6XHNAIl0rKSopfCgiLisiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31dKXwoKFthLXpBLVpcLTAtOV0rXC4pK1thLXpBLVpdezIsfSkpJC8sYT0vLW1lc3NhZ2UoPzotKFthLXpdezJ9KD86X1tBLVpdezJ9KT8pKT8vLG89ImVuIixsPXt9LHU9ZnVuY3Rpb24oZSxyKXtyLm5hbWU9ZSx2b2lkIDA9PT1yLnByaW9yaXR5JiYoci5wcmlvcml0eT0xKSxsW2VdPXJ9O2Z1bmN0aW9uIGYodCxzLHUpe3ZhciBmPXRoaXM7ZnVuY3Rpb24gYyhlLHIsdCxuKXt2YXIgaT1sW3RdO2lmKGkmJihlLnB1c2goaSksbikpe3ZhciBzPSJwYXR0ZXJuIj09PXQ\/W25dOm4uc3BsaXQoIiwiKTtzLnVuc2hpZnQobnVsbCksclt0XT1zfX1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgbj1bXSxpPSEwLHM9MDt0LnZhbGlkYXRvcnNbc107cysrKXt2YXIgYT10LnZhbGlkYXRvcnNbc10sbD10LnBhcmFtc1thLm5hbWVdP3QucGFyYW1zW2EubmFtZV06W107aWYobFswXT10LmlucHV0LnZhbHVlLCFhLmZuLmFwcGx5KHQuaW5wdXQsbCkmJihpPSExLCJmdW5jdGlvbiI9PXR5cGVvZiBhLm1zZz9uLnB1c2goYS5tc2codC5pbnB1dC52YWx1ZSxsKSk6InN0cmluZyI9PXR5cGVvZiBhLm1zZz9uLnB1c2goci5hcHBseShhLm1zZyxsKSk6YS5tc2c9PT1PYmplY3QoYS5tc2cpJiZhLm1zZ1tvXT9uLnB1c2goci5hcHBseShhLm1zZ1tvXSxsKSk6dC5tZXNzYWdlc1tvXSYmdC5tZXNzYWdlc1tvXVthLm5hbWVdP24ucHVzaChyLmFwcGx5KHQubWVzc2FnZXNbb11bYS5uYW1lXSxsKSk6ZVtvXSYmZVtvXVthLm5hbWVdJiZuLnB1c2goci5hcHBseShlW29dW2EubmFtZV0sbCkpLCEwPT09YS5oYWx0KSlicmVha31yZXR1cm4gdC5lcnJvcnM9bixpfWZ1bmN0aW9uIG0oZSl7aWYoZS5lcnJvckVsZW1lbnRzKXJldHVybiBlLmVycm9yRWxlbWVudHM7dmFyIHI9ZnVuY3Rpb24oZSxyKXtmb3IoOyhlPWUucGFyZW50RWxlbWVudCkmJiFlLmNsYXNzTGlzdC5jb250YWlucyhyKTspO3JldHVybiBlfShlLmlucHV0LGYuY29uZmlnLmNsYXNzVG8pLHQ9bnVsbCxuPW51bGw7cmV0dXJuKHQ9Zi5jb25maWcuY2xhc3NUbz09PWYuY29uZmlnLmVycm9yVGV4dFBhcmVudD9yOnIucXVlcnlTZWxlY3RvcigiLiIrZi5jb25maWcuZXJyb3JUZXh0UGFyZW50KSkmJigobj10LnF1ZXJ5U2VsZWN0b3IoIi5wcmlzdGluZS1lcnJvciIpKXx8KChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZi5jb25maWcuZXJyb3JUZXh0VGFnKSkuY2xhc3NOYW1lPSJwcmlzdGluZS1lcnJvciAiK2YuY29uZmlnLmVycm9yVGV4dENsYXNzLHQuYXBwZW5kQ2hpbGQobiksbi5wcmlzdGluZURpc3BsYXk9bi5zdHlsZS5kaXNwbGF5KSksZS5lcnJvckVsZW1lbnRzPVtyLG5dfWZ1bmN0aW9uIGQoZSl7dmFyIHI9bShlKSx0PXJbMF0sbj1yWzFdO3QmJih0LmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuc3VjY2Vzc0NsYXNzKSx0LmNsYXNzTGlzdC5hZGQoZi5jb25maWcuZXJyb3JDbGFzcykpLG4mJihuLmlubmVySFRNTD1lLmVycm9ycy5qb2luKCI8YnIvPiIpLG4uc3R5bGUuZGlzcGxheT1uLnByaXN0aW5lRGlzcGxheXx8IiIpfWZ1bmN0aW9uIGgoZSl7dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHI9bShlKSx0PXJbMF0sbj1yWzFdO3JldHVybiB0JiYodC5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLmVycm9yQ2xhc3MpLHQuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpKSxuJiYobi5pbm5lckhUTUw9IiIsbi5zdHlsZS5kaXNwbGF5PSJub25lIikscn0oZSlbMF07ciYmci5jbGFzc0xpc3QuYWRkKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyl9cmV0dXJuIGZ1bmN0aW9uKGUscix0KXtlLnNldEF0dHJpYnV0ZSgibm92YWxpZGF0ZSIsInRydWUiKSxmLmZvcm09ZSxmLmNvbmZpZz1mdW5jdGlvbihlLHIpe2Zvcih2YXIgdCBpbiByKXQgaW4gZXx8KGVbdF09clt0XSk7cmV0dXJuIGV9KHJ8fHt9LG4pLGYubGl2ZT0hKCExPT09dCksZi5maWVsZHM9QXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0Om5vdChbdHlwZV49aGlkZGVuXSk6bm90KFt0eXBlXj1zdWJtaXRdKSwgc2VsZWN0LCB0ZXh0YXJlYSIpKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHI9W10sdD17fSxuPXt9O3JldHVybltdLmZvckVhY2guY2FsbChlLmF0dHJpYnV0ZXMsKGZ1bmN0aW9uKGUpe2lmKC9eZGF0YS1wcmlzdGluZS0vLnRlc3QoZS5uYW1lKSl7dmFyIHM9ZS5uYW1lLnN1YnN0cigxNCksbz1zLm1hdGNoKGEpO2lmKG51bGwhPT1vKXt2YXIgbD12b2lkIDA9PT1vWzFdPyJlbiI6b1sxXTtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eShsKXx8KG5bbF09e30pLHZvaWQobltsXVtzLnNsaWNlKDAscy5sZW5ndGgtb1swXS5sZW5ndGgpXT1lLnZhbHVlKX0idHlwZSI9PT1zJiYocz1lLnZhbHVlKSxjKHIsdCxzLGUudmFsdWUpfWVsc2V+aS5pbmRleE9mKGUubmFtZSk\/YyhyLHQsZS5uYW1lLGUudmFsdWUpOiJ0eXBlIj09PWUubmFtZSYmYyhyLHQsZS52YWx1ZSl9KSksci5zb3J0KChmdW5jdGlvbihlLHIpe3JldHVybiByLnByaW9yaXR5LWUucHJpb3JpdHl9KSksZi5saXZlJiZlLmFkZEV2ZW50TGlzdGVuZXIoflsicmFkaW8iLCJjaGVja2JveCJdLmluZGV4T2YoZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSk\/ImNoYW5nZSI6ImlucHV0IixmdW5jdGlvbihlKXtmLnZhbGlkYXRlKGUudGFyZ2V0KX0uYmluZChmKSksZS5wcmlzdGluZT17aW5wdXQ6ZSx2YWxpZGF0b3JzOnIscGFyYW1zOnQsbWVzc2FnZXM6bixzZWxmOmZ9fS5iaW5kKGYpKX0odCxzLHUpLGYudmFsaWRhdGU9ZnVuY3Rpb24oZSxyKXtyPWUmJiEwPT09cnx8ITA9PT1lO3ZhciB0PWYuZmllbGRzOyEwIT09ZSYmITEhPT1lJiYoZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P3Q9W2UucHJpc3RpbmVdOihlIGluc3RhbmNlb2YgTm9kZUxpc3R8fGUgaW5zdGFuY2VvZih3aW5kb3cuJHx8QXJyYXkpfHxlIGluc3RhbmNlb2YgQXJyYXkpJiYodD1BcnJheS5mcm9tKGUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJpc3RpbmV9KSkpKTtmb3IodmFyIG49ITAsaT0wO3RbaV07aSsrKXt2YXIgcz10W2ldO3Aocyk\/IXImJmgocyk6KG49ITEsIXImJmQocykpfXJldHVybiBufSxmLmdldEVycm9ycz1mdW5jdGlvbihlKXtpZighZSl7Zm9yKHZhciByPVtdLHQ9MDt0PGYuZmllbGRzLmxlbmd0aDt0Kyspe3ZhciBuPWYuZmllbGRzW3RdO24uZXJyb3JzLmxlbmd0aCYmci5wdXNoKHtpbnB1dDpuLmlucHV0LGVycm9yczpuLmVycm9yc30pfXJldHVybiByfXJldHVybiBlLnRhZ05hbWUmJiJzZWxlY3QiPT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCk\/ZS5wcmlzdGluZS5lcnJvcnM6ZS5sZW5ndGg\/ZVswXS5wcmlzdGluZS5lcnJvcnM6ZS5wcmlzdGluZS5lcnJvcnN9LGYuYWRkVmFsaWRhdG9yPWZ1bmN0aW9uKGUscix0LG4saSl7ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50PyhlLnByaXN0aW5lLnZhbGlkYXRvcnMucHVzaCh7Zm46cixtc2c6dCxwcmlvcml0eTpuLGhhbHQ6aX0pLGUucHJpc3RpbmUudmFsaWRhdG9ycy5zb3J0KChmdW5jdGlvbihlLHIpe3JldHVybiByLnByaW9yaXR5LWUucHJpb3JpdHl9KSkpOmNvbnNvbGUud2FybigiVGhlIHBhcmFtZXRlciBlbGVtIG11c3QgYmUgYSBkb20gZWxlbWVudCIpfSxmLmFkZEVycm9yPWZ1bmN0aW9uKGUscil7KGU9ZS5sZW5ndGg\/ZVswXTplKS5wcmlzdGluZS5lcnJvcnMucHVzaChyKSxkKGUucHJpc3RpbmUpfSxmLnJlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7Zi5maWVsZHNbZV07ZSsrKWYuZmllbGRzW2VdLmVycm9yRWxlbWVudHM9bnVsbDtBcnJheS5mcm9tKGYuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIucHJpc3RpbmUtZXJyb3IiKSkubWFwKChmdW5jdGlvbihlKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KSksQXJyYXkuZnJvbShmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgiLiIrZi5jb25maWcuY2xhc3NUbykpLm1hcCgoZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyksZS5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLmVycm9yQ2xhc3MpfSkpfSxmLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmLnJlc2V0KCksZi5maWVsZHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZGVsZXRlIGUuaW5wdXQucHJpc3RpbmV9KSksZi5maWVsZHM9W119LGYuc2V0R2xvYmFsQ29uZmlnPWZ1bmN0aW9uKGUpe249ZX0sZn1yZXR1cm4gdSgidGV4dCIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiEwfSxwcmlvcml0eTowfSksdSgicmVxdWlyZWQiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4icmFkaW8iPT09dGhpcy50eXBlfHwiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk6dm9pZCAwIT09ZSYmIiIhPT1lfSxwcmlvcml0eTo5OSxoYWx0OiEwfSksdSgiZW1haWwiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8cy50ZXN0KGUpfX0pLHUoIm51bWJlciIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiFlfHwhaXNOYU4ocGFyc2VGbG9hdChlKSl9LHByaW9yaXR5OjJ9KSx1KCJpbnRlZ2VyIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fC9eXGQrJC8udGVzdChlKX19KSx1KCJtaW5sZW5ndGgiLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHxlLmxlbmd0aD49cGFyc2VJbnQocil9fSksdSgibWF4bGVuZ3RoIix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8ZS5sZW5ndGg8PXBhcnNlSW50KHIpfX0pLHUoIm1pbiIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fCgiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk+PXBhcnNlSW50KHIpOnBhcnNlRmxvYXQoZSk+PXBhcnNlRmxvYXQocikpfX0pLHUoIm1heCIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fCgiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk8PXBhcnNlSW50KHIpOnBhcnNlRmxvYXQoZSk8PXBhcnNlRmxvYXQocikpfX0pLHUoInBhdHRlcm4iLHtmbjpmdW5jdGlvbihlLHIpe3ZhciB0PXIubWF0Y2gobmV3IFJlZ0V4cCgiXi8oLio\/KS8oW2dpbXldKikkIikpO3JldHVybiFlfHxuZXcgUmVnRXhwKHRbMV0sdFsyXSkudGVzdChlKX19KSx1KCJlcXVhbHMiLHtmbjpmdW5jdGlvbihlLHIpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocik7cmV0dXJuIHQmJighZSYmIXQudmFsdWV8fHQudmFsdWU9PT1lKX19KSxmLmFkZFZhbGlkYXRvcj1mdW5jdGlvbihlLHIsdCxuLGkpe3UoZSx7Zm46cixtc2c6dCxwcmlvcml0eTpuLGhhbHQ6aX0pfSxmLmFkZE1lc3NhZ2VzPWZ1bmN0aW9uKHIsdCl7dmFyIG49ZS5oYXNPd25Qcm9wZXJ0eShyKT9lW3JdOmVbcl09e307T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtuW2VdPXRbZV19KSl9LGYuc2V0TG9jYWxlPWZ1bmN0aW9uKGUpe289ZX0sZn0pKTsKCi8vRXh0ZW5zaW9uCi8vIEEgdmFsaWRhdG9yIHRvIGNoZWNrIGlmIHRoZSBpbnB1dCB2YWx1ZSBpcyB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UKLy8gVGhlIGdsb2JhbCB2YWxpZGF0b3IgbXVzdCBiZSBhZGRlZCBiZWZvcmUgY3JlYXRpbmcgdGhlIHByaXN0aW5lIGluc3RhbmNlCgovLyBQcmlzdGluZS5hZGRWYWxpZGF0b3IoInBob25lIiwgZnVuY3Rpb24ocGhvbmUpIHsKCi8vIAl2YXIgVmFsaWRBcmVhQ29kZXMgPSBbCi8vIAkJNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsCi8vIAkJNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0MywKLy8gCQk2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDIKLy8gCV07CgovLyAJcGhvbmUgPSBwaG9uZS5yZXBsYWNlKC9bXjAtOV0rL2dpLCAnJyk7Ci8vIAlpZih0eXBlb2YgZW1haWxIYW5kbGVyIT0ndW5kZWZpbmVkJyAmJiB0aGlzLmhhc0NsYXNzKCdyZXF1aXJlZCcpKSB7Ci8vIAkJZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PXRydWU7Ci8vIAl9Ci8vIAlpZiggcGhvbmVbMF0gPT0gJzEnICl7Ci8vIAkJcGhvbmUgPSBwaG9uZS5zdWJzdHJpbmcoIDEgKTsKLy8gCX0KCi8vIAl2YXIgYXJlYUNvZGUgPSBwYXJzZUludCggcGhvbmUuc3Vic3RyaW5nKDAsMykgKTsKCi8vIAlheGlvcy5nZXQoJ2h0dHBzOi8vYXV0b2F1YmFpbmUuY29tL3NlcnZpY2VzL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwJyx7Ci8vIAkJdGltZW91dDoyMDAwLAovLyAJCWRhdGFUeXBlOiAnanNvbicsCi8vIAkJcGFyYW1zOiB7cGhvbmU6IHBob25lfSwKLy8gCQlyZXNwb25zZVR5cGU6ICdqc29uJwovLyAJfSkKLy8gCS50aGVuKGZ1bmN0aW9uKHJlcykgewoKLy8gCQlpZiAodHlwZW9mIHJlcy5pc09rICE9PSAndW5kZWZpbmVkJyl7Ci8vIAkJCWlmIChyZXMucGhvbmVOdW1iZXJJc1ZhbGlkID09PSBmYWxzZSkgewovLyAJCQkJLy9jb25zb2xlLmxvZygncGhvbmUgJytwaG9uZSsnIGlzIGludmFsaWQnKTsKLy8gCQkJCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnICYmIGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSApIHsKLy8gCQkJCQllbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKzsKLy8gCQkJCX0KLy8gCQkJCXJldHVybiB0cnVlOwovLyAJCQl9Ci8vIAkJCX0gZWxzZSB7Ci8vIAkJCS8vdmFsaWRhdGUgYXJlYWNvZGUgYXQgbGVhc3QKLy8gCQkJaWYoIHR5cGVvZiBWYWxpZEFyZWFDb2Rlcy5pbmRleE9mICE9ICd1bmRlZmluZWQnICYmCVZhbGlkQXJlYUNvZGVzLmluZGV4T2YoIGFyZWFDb2RlICkgPT0gLTEgKXsKLy8gCQkJCXJldHVybiBmYWxzZTsKLy8gCQkJfQovLyAJCX0KCi8vIAl9KQovLyAJLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7Ci8vIAkJLy8gdmFsaWRhdGUgYXJlYWNvZGUgYXQgbGVhc3QKLy8gCQlpZiggdHlwZW9mIFZhbGlkQXJlYUNvZGVzLmluZGV4T2YgIT0gJ3VuZGVmaW5lZCcgJiYJVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiggYXJlYUNvZGUgKSA9PSAtMSApewovLyAJCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnCSYmIGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSkgZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKys7Ci8vIAkJCXJldHVybiBmYWxzZTsKLy8gCQl9Ci8vIAkJLy9jb25zb2xlLmxvZygidmFsaWRpdHkgdmFsaWRhdGVQaG9uZU51bWJlciBuZXR3b3JrIGVycm9yIik7CgovLyAJCXJldHVybiBmYWxzZTsKLy8gCX0pOwoKCgovLyB9LCAiVGhlIHZhbHVlICgkezB9KSBtdXN0IGJlIGJldHdlZW4gJHsxfSBhbmQgJHsyfSIsIDUsIGZhbHNlKTsKLyoqIC9qcy92YW5pbGxhanMvZmxhdHBpY2tyLm1pbi5qcyAqKi8KLyogZmxhdHBpY2tyIHY0LjYuOSwsIEBsaWNlbnNlIE1JVCAqLwohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczplfHxzZWxmKS5mbGF0cGlja3I9dCgpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1mdW5jdGlvbigpe3JldHVybihlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEsYT1hcmd1bWVudHMubGVuZ3RoO248YTtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gdCgpe2Zvcih2YXIgZT0wLHQ9MCxuPWFyZ3VtZW50cy5sZW5ndGg7dDxuO3QrKyllKz1hcmd1bWVudHNbdF0ubGVuZ3RoO3ZhciBhPUFycmF5KGUpLGk9MDtmb3IodD0wO3Q8bjt0KyspZm9yKHZhciBvPWFyZ3VtZW50c1t0XSxyPTAsbD1vLmxlbmd0aDtyPGw7cisrLGkrKylhW2ldPW9bcl07cmV0dXJuIGF9dmFyIG49WyJvbkNoYW5nZSIsIm9uQ2xvc2UiLCJvbkRheUNyZWF0ZSIsIm9uRGVzdHJveSIsIm9uS2V5RG93biIsIm9uTW9udGhDaGFuZ2UiLCJvbk9wZW4iLCJvblBhcnNlQ29uZmlnIiwib25SZWFkeSIsIm9uVmFsdWVVcGRhdGUiLCJvblllYXJDaGFuZ2UiLCJvblByZUNhbGVuZGFyUG9zaXRpb24iXSxhPXtfZGlzYWJsZTpbXSxhbGxvd0lucHV0OiExLGFsbG93SW52YWxpZFByZWxvYWQ6ITEsYWx0Rm9ybWF0OiJGIGosIFkiLGFsdElucHV0OiExLGFsdElucHV0Q2xhc3M6ImZvcm0tY29udHJvbCBpbnB1dCIsYW5pbWF0ZToib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmLTE9PT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIiksYXJpYURhdGVGb3JtYXQ6IkYgaiwgWSIsYXV0b0ZpbGxEZWZhdWx0VGltZTohMCxjbGlja09wZW5zOiEwLGNsb3NlT25TZWxlY3Q6ITAsY29uanVuY3Rpb246IiwgIixkYXRlRm9ybWF0OiJZLW0tZCIsZGVmYXVsdEhvdXI6MTIsZGVmYXVsdE1pbnV0ZTowLGRlZmF1bHRTZWNvbmRzOjAsZGlzYWJsZTpbXSxkaXNhYmxlTW9iaWxlOiExLGVuYWJsZVNlY29uZHM6ITEsZW5hYmxlVGltZTohMSxlcnJvckhhbmRsZXI6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm4oZSl9LGdldFdlZWs6ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IERhdGUoZS5nZXRUaW1lKCkpO3Quc2V0SG91cnMoMCwwLDAsMCksdC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzMtKHQuZ2V0RGF5KCkrNiklNyk7dmFyIG49bmV3IERhdGUodC5nZXRGdWxsWWVhcigpLDAsNCk7cmV0dXJuIDErTWF0aC5yb3VuZCgoKHQuZ2V0VGltZSgpLW4uZ2V0VGltZSgpKS84NjRlNS0zKyhuLmdldERheSgpKzYpJTcpLzcpfSxob3VySW5jcmVtZW50OjEsaWdub3JlZEZvY3VzRWxlbWVudHM6W10saW5saW5lOiExLGxvY2FsZToiZGVmYXVsdCIsbWludXRlSW5jcmVtZW50OjUsbW9kZToic2luZ2xlIixtb250aFNlbGVjdG9yVHlwZToiZHJvcGRvd24iLG5leHRBcnJvdzoiPHN2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHZpZXdCb3g9JzAgMCAxNyAxNyc+PGc+PC9nPjxwYXRoIGQ9J00xMy4yMDcgOC40NzJsLTcuODU0IDcuODU0LTAuNzA3LTAuNzA3IDcuMTQ2LTcuMTQ2LTcuMTQ2LTcuMTQ4IDAuNzA3LTAuNzA3IDcuODU0IDcuODU0eicgLz48L3N2Zz4iLG5vQ2FsZW5kYXI6ITEsbm93Om5ldyBEYXRlLG9uQ2hhbmdlOltdLG9uQ2xvc2U6W10sb25EYXlDcmVhdGU6W10sb25EZXN0cm95OltdLG9uS2V5RG93bjpbXSxvbk1vbnRoQ2hhbmdlOltdLG9uT3BlbjpbXSxvblBhcnNlQ29uZmlnOltdLG9uUmVhZHk6W10sb25WYWx1ZVVwZGF0ZTpbXSxvblllYXJDaGFuZ2U6W10sb25QcmVDYWxlbmRhclBvc2l0aW9uOltdLHBsdWdpbnM6W10scG9zaXRpb246ImF1dG8iLHBvc2l0aW9uRWxlbWVudDp2b2lkIDAscHJldkFycm93OiI8c3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgdmlld0JveD0nMCAwIDE3IDE3Jz48Zz48L2c+PHBhdGggZD0nTTUuMjA3IDguNDcxbDcuMTQ2IDcuMTQ3LTAuNzA3IDAuNzA3LTcuODUzLTcuODU0IDcuODU0LTcuODUzIDAuNzA3IDAuNzA3LTcuMTQ3IDcuMTQ2eicgLz48L3N2Zz4iLHNob3J0aGFuZEN1cnJlbnRNb250aDohMSxzaG93TW9udGhzOjEsc3RhdGljOiExLHRpbWVfMjRocjohMSx3ZWVrTnVtYmVyczohMSx3cmFwOiExfSxpPXt3ZWVrZGF5czp7c2hvcnRoYW5kOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbG9uZ2hhbmQ6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSxtb250aHM6e3Nob3J0aGFuZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLGxvbmdoYW5kOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0sZGF5c0luTW9udGg6WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxmaXJzdERheU9mV2VlazowLG9yZGluYWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZSUxMDA7aWYodD4zJiZ0PDIxKXJldHVybiJ0aCI7c3dpdGNoKHQlMTApe2Nhc2UgMTpyZXR1cm4ic3QiO2Nhc2UgMjpyZXR1cm4ibmQiO2Nhc2UgMzpyZXR1cm4icmQiO2RlZmF1bHQ6cmV0dXJuInRoIn19LHJhbmdlU2VwYXJhdG9yOiIgdG8gIix3ZWVrQWJicmV2aWF0aW9uOiJXayIsc2Nyb2xsVGl0bGU6IlNjcm9sbCB0byBpbmNyZW1lbnQiLHRvZ2dsZVRpdGxlOiJDbGljayB0byB0b2dnbGUiLGFtUE06WyJBTSIsIlBNIl0seWVhckFyaWFMYWJlbDoiWWVhciIsbW9udGhBcmlhTGFiZWw6Ik1vbnRoIixob3VyQXJpYUxhYmVsOiJIb3VyIixtaW51dGVBcmlhTGFiZWw6Ik1pbnV0ZSIsdGltZV8yNGhyOiExfSxvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PTIpLCgiMDAwIitlKS5zbGljZSgtMSp0KX0scj1mdW5jdGlvbihlKXtyZXR1cm4hMD09PWU\/MTowfTtmdW5jdGlvbiBsKGUsdCl7dmFyIG47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcztjbGVhclRpbWVvdXQobiksbj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KGEsYXJndW1lbnRzKX0pLHQpfX12YXIgYz1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEFycmF5P2U6W2VdfTtmdW5jdGlvbiBkKGUsdCxuKXtpZighMD09PW4pcmV0dXJuIGUuY2xhc3NMaXN0LmFkZCh0KTtlLmNsYXNzTGlzdC5yZW1vdmUodCl9ZnVuY3Rpb24gcyhlLHQsbil7dmFyIGE9d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuIHQ9dHx8IiIsbj1ufHwiIixhLmNsYXNzTmFtZT10LHZvaWQgMCE9PW4mJihhLnRleHRDb250ZW50PW4pLGF9ZnVuY3Rpb24gdShlKXtmb3IoO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGYoZSx0KXtyZXR1cm4gdChlKT9lOmUucGFyZW50Tm9kZT9mKGUucGFyZW50Tm9kZSx0KTp2b2lkIDB9ZnVuY3Rpb24gbShlLHQpe3ZhciBuPXMoImRpdiIsIm51bUlucHV0V3JhcHBlciIpLGE9cygiaW5wdXQiLCJudW1JbnB1dCAiK2UpLGk9cygic3BhbiIsImFycm93VXAiKSxvPXMoInNwYW4iLCJhcnJvd0Rvd24iKTtpZigtMT09PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSA5LjAiKT9hLnR5cGU9Im51bWJlciI6KGEudHlwZT0idGV4dCIsYS5wYXR0ZXJuPSJcXGQqIiksdm9pZCAwIT09dClmb3IodmFyIHIgaW4gdClhLnNldEF0dHJpYnV0ZShyLHRbcl0pO3JldHVybiBuLmFwcGVuZENoaWxkKGEpLG4uYXBwZW5kQ2hpbGQoaSksbi5hcHBlbmRDaGlsZChvKSxufWZ1bmN0aW9uIGcoZSl7dHJ5e3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbXBvc2VkUGF0aD9lLmNvbXBvc2VkUGF0aCgpWzBdOmUudGFyZ2V0fWNhdGNoKHQpe3JldHVybiBlLnRhcmdldH19dmFyIHA9ZnVuY3Rpb24oKXt9LGg9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLm1vbnRoc1t0PyJzaG9ydGhhbmQiOiJsb25naGFuZCJdW2VdfSx2PXtEOnAsRjpmdW5jdGlvbihlLHQsbil7ZS5zZXRNb250aChuLm1vbnRocy5sb25naGFuZC5pbmRleE9mKHQpKX0sRzpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LEg6ZnVuY3Rpb24oZSx0KXtlLnNldEhvdXJzKHBhcnNlRmxvYXQodCkpfSxKOmZ1bmN0aW9uKGUsdCl7ZS5zZXREYXRlKHBhcnNlRmxvYXQodCkpfSxLOmZ1bmN0aW9uKGUsdCxuKXtlLnNldEhvdXJzKGUuZ2V0SG91cnMoKSUxMisxMipyKG5ldyBSZWdFeHAobi5hbVBNWzFdLCJpIikudGVzdCh0KSkpfSxNOmZ1bmN0aW9uKGUsdCxuKXtlLnNldE1vbnRoKG4ubW9udGhzLnNob3J0aGFuZC5pbmRleE9mKHQpKX0sUzpmdW5jdGlvbihlLHQpe2Uuc2V0U2Vjb25kcyhwYXJzZUZsb2F0KHQpKX0sVTpmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgRGF0ZSgxZTMqcGFyc2VGbG9hdCh0KSl9LFc6ZnVuY3Rpb24oZSx0LG4pe3ZhciBhPXBhcnNlSW50KHQpLGk9bmV3IERhdGUoZS5nZXRGdWxsWWVhcigpLDAsMis3KihhLTEpLDAsMCwwLDApO3JldHVybiBpLnNldERhdGUoaS5nZXREYXRlKCktaS5nZXREYXkoKStuLmZpcnN0RGF5T2ZXZWVrKSxpfSxZOmZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcihwYXJzZUZsb2F0KHQpKX0sWjpmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgRGF0ZSh0KX0sZDpmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShwYXJzZUZsb2F0KHQpKX0saDpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LGk6ZnVuY3Rpb24oZSx0KXtlLnNldE1pbnV0ZXMocGFyc2VGbG9hdCh0KSl9LGo6ZnVuY3Rpb24oZSx0KXtlLnNldERhdGUocGFyc2VGbG9hdCh0KSl9LGw6cCxtOmZ1bmN0aW9uKGUsdCl7ZS5zZXRNb250aChwYXJzZUZsb2F0KHQpLTEpfSxuOmZ1bmN0aW9uKGUsdCl7ZS5zZXRNb250aChwYXJzZUZsb2F0KHQpLTEpfSxzOmZ1bmN0aW9uKGUsdCl7ZS5zZXRTZWNvbmRzKHBhcnNlRmxvYXQodCkpfSx1OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKHBhcnNlRmxvYXQodCkpfSx3OnAseTpmdW5jdGlvbihlLHQpe2Uuc2V0RnVsbFllYXIoMmUzK3BhcnNlRmxvYXQodCkpfX0sRD17RDoiKFxcdyspIixGOiIoXFx3KykiLEc6IihcXGRcXGR8XFxkKSIsSDoiKFxcZFxcZHxcXGQpIixKOiIoXFxkXFxkfFxcZClcXHcrIixLOiIiLE06IihcXHcrKSIsUzoiKFxcZFxcZHxcXGQpIixVOiIoLispIixXOiIoXFxkXFxkfFxcZCkiLFk6IihcXGR7NH0pIixaOiIoLispIixkOiIoXFxkXFxkfFxcZCkiLGg6IihcXGRcXGR8XFxkKSIsaToiKFxcZFxcZHxcXGQpIixqOiIoXFxkXFxkfFxcZCkiLGw6IihcXHcrKSIsbToiKFxcZFxcZHxcXGQpIixuOiIoXFxkXFxkfFxcZCkiLHM6IihcXGRcXGR8XFxkKSIsdToiKC4rKSIsdzoiKFxcZFxcZHxcXGQpIix5OiIoXFxkezJ9KSJ9LHc9e1o6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9JU09TdHJpbmcoKX0sRDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQud2Vla2RheXMuc2hvcnRoYW5kW3cudyhlLHQsbildfSxGOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaCh3Lm4oZSx0LG4pLTEsITEsdCl9LEc6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBvKHcuaChlLHQsbikpfSxIOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0SG91cnMoKSl9LEo6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwIT09dC5vcmRpbmFsP2UuZ2V0RGF0ZSgpK3Qub3JkaW5hbChlLmdldERhdGUoKSk6ZS5nZXREYXRlKCl9LEs6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5hbVBNW3IoZS5nZXRIb3VycygpPjExKV19LE06ZnVuY3Rpb24oZSx0KXtyZXR1cm4gaChlLmdldE1vbnRoKCksITAsdCl9LFM6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRTZWNvbmRzKCkpfSxVOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFRpbWUoKS8xZTN9LFc6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLmdldFdlZWsoZSl9LFk6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRGdWxsWWVhcigpLDQpfSxkOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0RGF0ZSgpKX0saDpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRIb3VycygpJTEyP2UuZ2V0SG91cnMoKSUxMjoxMn0saTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldE1pbnV0ZXMoKSl9LGo6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0RGF0ZSgpfSxsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQud2Vla2RheXMubG9uZ2hhbmRbZS5nZXREYXkoKV19LG06ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRNb250aCgpKzEpfSxuOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldE1vbnRoKCkrMX0sczpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRTZWNvbmRzKCl9LHU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VGltZSgpfSx3OmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldERheSgpfSx5OmZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZS5nZXRGdWxsWWVhcigpKS5zdWJzdHJpbmcoMil9fSxiPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY29uZmlnLG49dm9pZCAwPT09dD9hOnQsbz1lLmwxMG4scj12b2lkIDA9PT1vP2k6byxsPWUuaXNNb2JpbGUsYz12b2lkIDAhPT1sJiZsO3JldHVybiBmdW5jdGlvbihlLHQsYSl7dmFyIGk9YXx8cjtyZXR1cm4gdm9pZCAwPT09bi5mb3JtYXREYXRlfHxjP3Quc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24odCxhLG8pe3JldHVybiB3W3RdJiYiXFwiIT09b1thLTFdP3dbdF0oZSxpLG4pOiJcXCIhPT10P3Q6IiJ9KSkuam9pbigiIik6bi5mb3JtYXREYXRlKGUsdCxpKX19LEM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb25maWcsbj12b2lkIDA9PT10P2E6dCxvPWUubDEwbixyPXZvaWQgMD09PW8\/aTpvO3JldHVybiBmdW5jdGlvbihlLHQsaSxvKXtpZigwPT09ZXx8ZSl7dmFyIGwsYz1vfHxyLGQ9ZTtpZihlIGluc3RhbmNlb2YgRGF0ZSlsPW5ldyBEYXRlKGUuZ2V0VGltZSgpKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgZSYmdm9pZCAwIT09ZS50b0ZpeGVkKWw9bmV3IERhdGUoZSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciBzPXR8fChufHxhKS5kYXRlRm9ybWF0LHU9U3RyaW5nKGUpLnRyaW0oKTtpZigidG9kYXkiPT09dSlsPW5ldyBEYXRlLGk9ITA7ZWxzZSBpZigvWiQvLnRlc3QodSl8fC9HTVQkLy50ZXN0KHUpKWw9bmV3IERhdGUoZSk7ZWxzZSBpZihuJiZuLnBhcnNlRGF0ZSlsPW4ucGFyc2VEYXRlKGUscyk7ZWxzZXtsPW4mJm4ubm9DYWxlbmRhcj9uZXcgRGF0ZSgobmV3IERhdGUpLnNldEhvdXJzKDAsMCwwLDApKTpuZXcgRGF0ZSgobmV3IERhdGUpLmdldEZ1bGxZZWFyKCksMCwxLDAsMCwwLDApO2Zvcih2YXIgZj12b2lkIDAsbT1bXSxnPTAscD0wLGg9IiI7ZzxzLmxlbmd0aDtnKyspe3ZhciB3PXNbZ10sYj0iXFwiPT09dyxDPSJcXCI9PT1zW2ctMV18fGI7aWYoRFt3XSYmIUMpe2grPURbd107dmFyIE09bmV3IFJlZ0V4cChoKS5leGVjKGUpO00mJihmPSEwKSYmbVsiWSIhPT13PyJwdXNoIjoidW5zaGlmdCJdKHtmbjp2W3ddLHZhbDpNWysrcF19KX1lbHNlIGJ8fChoKz0iLiIpO20uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5mbixuPWUudmFsO3JldHVybiBsPXQobCxuLGMpfHxsfSkpfWw9Zj9sOnZvaWQgMH19aWYobCBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihsLmdldFRpbWUoKSkpcmV0dXJuITA9PT1pJiZsLnNldEhvdXJzKDAsMCwwLDApLGw7bi5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcHJvdmlkZWQ6ICIrZCkpfX19O2Z1bmN0aW9uIE0oZSx0LG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0hMCksITEhPT1uP25ldyBEYXRlKGUuZ2V0VGltZSgpKS5zZXRIb3VycygwLDAsMCwwKS1uZXcgRGF0ZSh0LmdldFRpbWUoKSkuc2V0SG91cnMoMCwwLDAsMCk6ZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9dmFyIHk9ODY0ZTU7ZnVuY3Rpb24geChlKXt2YXIgdD1lLmRlZmF1bHRIb3VyLG49ZS5kZWZhdWx0TWludXRlLGE9ZS5kZWZhdWx0U2Vjb25kcztpZih2b2lkIDAhPT1lLm1pbkRhdGUpe3ZhciBpPWUubWluRGF0ZS5nZXRIb3VycygpLG89ZS5taW5EYXRlLmdldE1pbnV0ZXMoKSxyPWUubWluRGF0ZS5nZXRTZWNvbmRzKCk7dDxpJiYodD1pKSx0PT09aSYmbjxvJiYobj1vKSx0PT09aSYmbj09PW8mJmE8ciYmKGE9ZS5taW5EYXRlLmdldFNlY29uZHMoKSl9aWYodm9pZCAwIT09ZS5tYXhEYXRlKXt2YXIgbD1lLm1heERhdGUuZ2V0SG91cnMoKSxjPWUubWF4RGF0ZS5nZXRNaW51dGVzKCk7KHQ9TWF0aC5taW4odCxsKSk9PT1sJiYobj1NYXRoLm1pbihjLG4pKSx0PT09bCYmbj09PWMmJihhPWUubWF4RGF0ZS5nZXRTZWNvbmRzKCkpfXJldHVybntob3Vyczp0LG1pbnV0ZXM6bixzZWNvbmRzOmF9fSJmdW5jdGlvbiIhPXR5cGVvZiBPYmplY3QuYXNzaWduJiYoT2JqZWN0LmFzc2lnbj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuLTFdPWFyZ3VtZW50c1tuXTtpZighZSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCIpO2Zvcih2YXIgYT1mdW5jdGlvbih0KXt0JiZPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXtyZXR1cm4gZVtuXT10W25dfSkpfSxpPTAsbz10O2k8by5sZW5ndGg7aSsrKXt2YXIgcj1vW2ldO2Eocil9cmV0dXJuIGV9KTtmdW5jdGlvbiBFKHAsdil7dmFyIHc9e2NvbmZpZzplKGUoe30sYSksVC5kZWZhdWx0Q29uZmlnKSxsMTBuOml9O2Z1bmN0aW9uIEUoZSl7cmV0dXJuIGUuYmluZCh3KX1mdW5jdGlvbiBrKCl7dmFyIGU9dy5jb25maWc7ITE9PT1lLndlZWtOdW1iZXJzJiYxPT09ZS5zaG93TW9udGhzfHwhMCE9PWUubm9DYWxlbmRhciYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtpZih2b2lkIDAhPT13LmNhbGVuZGFyQ29udGFpbmVyJiYody5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUuZGlzcGxheT0iYmxvY2siKSx2b2lkIDAhPT13LmRheXNDb250YWluZXIpe3ZhciB0PSh3LmRheXMub2Zmc2V0V2lkdGgrMSkqZS5zaG93TW9udGhzO3cuZGF5c0NvbnRhaW5lci5zdHlsZS53aWR0aD10KyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS53aWR0aD10Kyh2b2lkIDAhPT13LndlZWtXcmFwcGVyP3cud2Vla1dyYXBwZXIub2Zmc2V0V2lkdGg6MCkrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ2aXNpYmlsaXR5Iiksdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiZGlzcGxheSIpfX0pKX1mdW5jdGlvbiBJKGUpe2lmKDA9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoKXt2YXIgdD12b2lkIDA9PT13LmNvbmZpZy5taW5EYXRlfHxNKG5ldyBEYXRlLHcuY29uZmlnLm1pbkRhdGUpPj0wP25ldyBEYXRlOm5ldyBEYXRlKHcuY29uZmlnLm1pbkRhdGUuZ2V0VGltZSgpKSxuPXgody5jb25maWcpO3Quc2V0SG91cnMobi5ob3VycyxuLm1pbnV0ZXMsbi5zZWNvbmRzLHQuZ2V0TWlsbGlzZWNvbmRzKCkpLHcuc2VsZWN0ZWREYXRlcz1bdF0sdy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dH12b2lkIDAhPT1lJiYiYmx1ciIhPT1lLnR5cGUmJmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD0ia2V5ZG93biI9PT1lLnR5cGUsbj1nKGUpLGE9bjt2b2lkIDAhPT13LmFtUE0mJm49PT13LmFtUE0mJih3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bcih3LmFtUE0udGV4dENvbnRlbnQ9PT13LmwxMG4uYW1QTVswXSldKTt2YXIgaT1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJtaW4iKSksbD1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJtYXgiKSksYz1wYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJzdGVwIikpLGQ9cGFyc2VJbnQoYS52YWx1ZSwxMCkscz1lLmRlbHRhfHwodD8zOD09PWUud2hpY2g\/MTotMTowKSx1PWQrYypzO2lmKHZvaWQgMCE9PWEudmFsdWUmJjI9PT1hLnZhbHVlLmxlbmd0aCl7dmFyIGY9YT09PXcuaG91ckVsZW1lbnQsbT1hPT09dy5taW51dGVFbGVtZW50O3U8aT8odT1sK3UrcighZikrKHIoZikmJnIoIXcuYW1QTSkpLG0mJmoodm9pZCAwLC0xLHcuaG91ckVsZW1lbnQpKTp1PmwmJih1PWE9PT13LmhvdXJFbGVtZW50P3UtbC1yKCF3LmFtUE0pOmksbSYmaih2b2lkIDAsMSx3LmhvdXJFbGVtZW50KSksdy5hbVBNJiZmJiYoMT09PWM\/dStkPT09MjM6TWF0aC5hYnModS1kKT5jKSYmKHcuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVtyKHcuYW1QTS50ZXh0Q29udGVudD09PXcubDEwbi5hbVBNWzBdKV0pLGEudmFsdWU9byh1KX19KGUpO3ZhciBhPXcuX2lucHV0LnZhbHVlO1MoKSxiZSgpLHcuX2lucHV0LnZhbHVlIT09YSYmdy5fZGVib3VuY2VkQ2hhbmdlKCl9ZnVuY3Rpb24gUygpe2lmKHZvaWQgMCE9PXcuaG91ckVsZW1lbnQmJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCl7dmFyIGUsdCxuPShwYXJzZUludCh3LmhvdXJFbGVtZW50LnZhbHVlLnNsaWNlKC0yKSwxMCl8fDApJTI0LGE9KHBhcnNlSW50KHcubWludXRlRWxlbWVudC52YWx1ZSwxMCl8fDApJTYwLGk9dm9pZCAwIT09dy5zZWNvbmRFbGVtZW50PyhwYXJzZUludCh3LnNlY29uZEVsZW1lbnQudmFsdWUsMTApfHwwKSU2MDowO3ZvaWQgMCE9PXcuYW1QTSYmKGU9bix0PXcuYW1QTS50ZXh0Q29udGVudCxuPWUlMTIrMTIqcih0PT09dy5sMTBuLmFtUE1bMV0pKTt2YXIgbz12b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lfHx3LmNvbmZpZy5taW5EYXRlJiZ3Lm1pbkRhdGVIYXNUaW1lJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmMD09PU0ody5sYXRlc3RTZWxlY3RlZERhdGVPYmosdy5jb25maWcubWluRGF0ZSwhMCk7aWYodm9pZCAwIT09dy5jb25maWcubWF4VGltZXx8dy5jb25maWcubWF4RGF0ZSYmdy5tYXhEYXRlSGFzVGltZSYmdy5sYXRlc3RTZWxlY3RlZERhdGVPYmomJjA9PT1NKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLHcuY29uZmlnLm1heERhdGUsITApKXt2YXIgbD12b2lkIDAhPT13LmNvbmZpZy5tYXhUaW1lP3cuY29uZmlnLm1heFRpbWU6dy5jb25maWcubWF4RGF0ZTsobj1NYXRoLm1pbihuLGwuZ2V0SG91cnMoKSkpPT09bC5nZXRIb3VycygpJiYoYT1NYXRoLm1pbihhLGwuZ2V0TWludXRlcygpKSksYT09PWwuZ2V0TWludXRlcygpJiYoaT1NYXRoLm1pbihpLGwuZ2V0U2Vjb25kcygpKSl9aWYobyl7dmFyIGM9dm9pZCAwIT09dy5jb25maWcubWluVGltZT93LmNvbmZpZy5taW5UaW1lOncuY29uZmlnLm1pbkRhdGU7KG49TWF0aC5tYXgobixjLmdldEhvdXJzKCkpKT09PWMuZ2V0SG91cnMoKSYmYTxjLmdldE1pbnV0ZXMoKSYmKGE9Yy5nZXRNaW51dGVzKCkpLGE9PT1jLmdldE1pbnV0ZXMoKSYmKGk9TWF0aC5tYXgoaSxjLmdldFNlY29uZHMoKSkpfU8obixhLGkpfX1mdW5jdGlvbiBfKGUpe3ZhciB0PWV8fHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqO3QmJk8odC5nZXRIb3VycygpLHQuZ2V0TWludXRlcygpLHQuZ2V0U2Vjb25kcygpKX1mdW5jdGlvbiBPKGUsdCxuKXt2b2lkIDAhPT13LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmdy5sYXRlc3RTZWxlY3RlZERhdGVPYmouc2V0SG91cnMoZSUyNCx0LG58fDAsMCksdy5ob3VyRWxlbWVudCYmdy5taW51dGVFbGVtZW50JiYhdy5pc01vYmlsZSYmKHcuaG91ckVsZW1lbnQudmFsdWU9byh3LmNvbmZpZy50aW1lXzI0aHI\/ZTooMTIrZSklMTIrMTIqcihlJTEyPT0wKSksdy5taW51dGVFbGVtZW50LnZhbHVlPW8odCksdm9pZCAwIT09dy5hbVBNJiYody5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNW3IoZT49MTIpXSksdm9pZCAwIT09dy5zZWNvbmRFbGVtZW50JiYody5zZWNvbmRFbGVtZW50LnZhbHVlPW8obikpKX1mdW5jdGlvbiBGKGUpe3ZhciB0PWcoZSksbj1wYXJzZUludCh0LnZhbHVlKSsoZS5kZWx0YXx8MCk7KG4vMWUzPjF8fCJFbnRlciI9PT1lLmtleSYmIS9bXlxkXS8udGVzdChuLnRvU3RyaW5nKCkpKSYmUShuKX1mdW5jdGlvbiBBKGUsdCxuLGEpe3JldHVybiB0IGluc3RhbmNlb2YgQXJyYXk\/dC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gQShlLHQsbixhKX0pKTplIGluc3RhbmNlb2YgQXJyYXk\/ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gQShlLHQsbixhKX0pKTooZS5hZGRFdmVudExpc3RlbmVyKHQsbixhKSx2b2lkIHcuX2hhbmRsZXJzLnB1c2goe3JlbW92ZTpmdW5jdGlvbigpe3JldHVybiBlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxuKX19KSl9ZnVuY3Rpb24gTigpe3BlKCJvbkNoYW5nZSIpfWZ1bmN0aW9uIFAoZSx0KXt2YXIgbj12b2lkIDAhPT1lP3cucGFyc2VEYXRlKGUpOncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqfHwody5jb25maWcubWluRGF0ZSYmdy5jb25maWcubWluRGF0ZT53Lm5vdz93LmNvbmZpZy5taW5EYXRlOncuY29uZmlnLm1heERhdGUmJncuY29uZmlnLm1heERhdGU8dy5ub3c\/dy5jb25maWcubWF4RGF0ZTp3Lm5vdyksYT13LmN1cnJlbnRZZWFyLGk9dy5jdXJyZW50TW9udGg7dHJ5e3ZvaWQgMCE9PW4mJih3LmN1cnJlbnRZZWFyPW4uZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD1uLmdldE1vbnRoKCkpfWNhdGNoKGUpe2UubWVzc2FnZT0iSW52YWxpZCBkYXRlIHN1cHBsaWVkOiAiK24sdy5jb25maWcuZXJyb3JIYW5kbGVyKGUpfXQmJncuY3VycmVudFllYXIhPT1hJiYocGUoIm9uWWVhckNoYW5nZSIpLEsoKSksIXR8fHcuY3VycmVudFllYXI9PT1hJiZ3LmN1cnJlbnRNb250aD09PWl8fHBlKCJvbk1vbnRoQ2hhbmdlIiksdy5yZWRyYXcoKX1mdW5jdGlvbiBZKGUpe3ZhciB0PWcoZSk7fnQuY2xhc3NOYW1lLmluZGV4T2YoImFycm93IikmJmooZSx0LmNsYXNzTGlzdC5jb250YWlucygiYXJyb3dVcCIpPzE6LTEpfWZ1bmN0aW9uIGooZSx0LG4pe3ZhciBhPWUmJmcoZSksaT1ufHxhJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5maXJzdENoaWxkLG89aGUoImluY3JlbWVudCIpO28uZGVsdGE9dCxpJiZpLmRpc3BhdGNoRXZlbnQobyl9ZnVuY3Rpb24gSChlLHQsbixhKXt2YXIgaT1YKHQsITApLG89cygic3BhbiIsImZsYXRwaWNrci1kYXkgIitlLHQuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkpO3JldHVybiBvLmRhdGVPYmo9dCxvLiRpPWEsby5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHcuZm9ybWF0RGF0ZSh0LHcuY29uZmlnLmFyaWFEYXRlRm9ybWF0KSksLTE9PT1lLmluZGV4T2YoImhpZGRlbiIpJiYwPT09TSh0LHcubm93KSYmKHcudG9kYXlEYXRlRWxlbT1vLG8uY2xhc3NMaXN0LmFkZCgidG9kYXkiKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50IiwiZGF0ZSIpKSxpPyhvLnRhYkluZGV4PS0xLHZlKHQpJiYoby5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpLHcuc2VsZWN0ZWREYXRlRWxlbT1vLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYoZChvLCJzdGFydFJhbmdlIix3LnNlbGVjdGVkRGF0ZXNbMF0mJjA9PT1NKHQsdy5zZWxlY3RlZERhdGVzWzBdLCEwKSksZChvLCJlbmRSYW5nZSIsdy5zZWxlY3RlZERhdGVzWzFdJiYwPT09TSh0LHcuc2VsZWN0ZWREYXRlc1sxXSwhMCkpLCJuZXh0TW9udGhEYXkiPT09ZSYmby5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIikpKSk6by5jbGFzc0xpc3QuYWRkKCJmbGF0cGlja3ItZGlzYWJsZWQiKSwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmZnVuY3Rpb24oZSl7cmV0dXJuISgicmFuZ2UiIT09dy5jb25maWcubW9kZXx8dy5zZWxlY3RlZERhdGVzLmxlbmd0aDwyKSYmKE0oZSx3LnNlbGVjdGVkRGF0ZXNbMF0pPj0wJiZNKGUsdy5zZWxlY3RlZERhdGVzWzFdKTw9MCl9KHQpJiYhdmUodCkmJm8uY2xhc3NMaXN0LmFkZCgiaW5SYW5nZSIpLHcud2Vla051bWJlcnMmJjE9PT13LmNvbmZpZy5zaG93TW9udGhzJiYicHJldk1vbnRoRGF5IiE9PWUmJm4lNz09MSYmdy53ZWVrTnVtYmVycy5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsIjxzcGFuIGNsYXNzPSdmbGF0cGlja3ItZGF5Jz4iK3cuY29uZmlnLmdldFdlZWsodCkrIjwvc3Bhbj4iKSxwZSgib25EYXlDcmVhdGUiLG8pLG99ZnVuY3Rpb24gTChlKXtlLmZvY3VzKCksInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJmFlKGUpfWZ1bmN0aW9uIFcoZSl7Zm9yKHZhciB0PWU+MD8wOncuY29uZmlnLnNob3dNb250aHMtMSxuPWU+MD93LmNvbmZpZy5zaG93TW9udGhzOi0xLGE9dDthIT1uO2ErPWUpZm9yKHZhciBpPXcuZGF5c0NvbnRhaW5lci5jaGlsZHJlblthXSxvPWU+MD8wOmkuY2hpbGRyZW4ubGVuZ3RoLTEscj1lPjA\/aS5jaGlsZHJlbi5sZW5ndGg6LTEsbD1vO2whPXI7bCs9ZSl7dmFyIGM9aS5jaGlsZHJlbltsXTtpZigtMT09PWMuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiZYKGMuZGF0ZU9iaikpcmV0dXJuIGN9fWZ1bmN0aW9uIFIoZSx0KXt2YXIgbj1lZShkb2N1bWVudC5hY3RpdmVFbGVtZW50fHxkb2N1bWVudC5ib2R5KSxhPXZvaWQgMCE9PWU\/ZTpuP2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ6dm9pZCAwIT09dy5zZWxlY3RlZERhdGVFbGVtJiZlZSh3LnNlbGVjdGVkRGF0ZUVsZW0pP3cuc2VsZWN0ZWREYXRlRWxlbTp2b2lkIDAhPT13LnRvZGF5RGF0ZUVsZW0mJmVlKHcudG9kYXlEYXRlRWxlbSk\/dy50b2RheURhdGVFbGVtOlcodD4wPzE6LTEpO3ZvaWQgMD09PWE\/dy5faW5wdXQuZm9jdXMoKTpuP2Z1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPS0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiTW9udGgiKT9lLmRhdGVPYmouZ2V0TW9udGgoKTp3LmN1cnJlbnRNb250aCxhPXQ+MD93LmNvbmZpZy5zaG93TW9udGhzOi0xLGk9dD4wPzE6LTEsbz1uLXcuY3VycmVudE1vbnRoO28hPWE7bys9aSlmb3IodmFyIHI9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW29dLGw9bi13LmN1cnJlbnRNb250aD09PW8\/ZS4kaSt0OnQ8MD9yLmNoaWxkcmVuLmxlbmd0aC0xOjAsYz1yLmNoaWxkcmVuLmxlbmd0aCxkPWw7ZD49MCYmZDxjJiZkIT0odD4wP2M6LTEpO2QrPWkpe3ZhciBzPXIuY2hpbGRyZW5bZF07aWYoLTE9PT1zLmNsYXNzTmFtZS5pbmRleE9mKCJoaWRkZW4iKSYmWChzLmRhdGVPYmopJiZNYXRoLmFicyhlLiRpLWQpPj1NYXRoLmFicyh0KSlyZXR1cm4gTChzKX13LmNoYW5nZU1vbnRoKGkpLFIoVyhpKSwwKX0oYSx0KTpMKGEpfWZ1bmN0aW9uIEIoZSx0KXtmb3IodmFyIG49KG5ldyBEYXRlKGUsdCwxKS5nZXREYXkoKS13LmwxMG4uZmlyc3REYXlPZldlZWsrNyklNyxhPXcudXRpbHMuZ2V0RGF5c0luTW9udGgoKHQtMSsxMiklMTIsZSksaT13LnV0aWxzLmdldERheXNJbk1vbnRoKHQsZSksbz13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHI9dy5jb25maWcuc2hvd01vbnRocz4xLGw9cj8icHJldk1vbnRoRGF5IGhpZGRlbiI6InByZXZNb250aERheSIsYz1yPyJuZXh0TW9udGhEYXkgaGlkZGVuIjoibmV4dE1vbnRoRGF5IixkPWErMS1uLHU9MDtkPD1hO2QrKyx1Kyspby5hcHBlbmRDaGlsZChIKGwsbmV3IERhdGUoZSx0LTEsZCksZCx1KSk7Zm9yKGQ9MTtkPD1pO2QrKyx1Kyspby5hcHBlbmRDaGlsZChIKCIiLG5ldyBEYXRlKGUsdCxkKSxkLHUpKTtmb3IodmFyIGY9aSsxO2Y8PTQyLW4mJigxPT09dy5jb25maWcuc2hvd01vbnRoc3x8dSU3IT0wKTtmKyssdSsrKW8uYXBwZW5kQ2hpbGQoSChjLG5ldyBEYXRlKGUsdCsxLGYlaSksZix1KSk7dmFyIG09cygiZGl2IiwiZGF5Q29udGFpbmVyIik7cmV0dXJuIG0uYXBwZW5kQ2hpbGQobyksbX1mdW5jdGlvbiBKKCl7aWYodm9pZCAwIT09dy5kYXlzQ29udGFpbmVyKXt1KHcuZGF5c0NvbnRhaW5lciksdy53ZWVrTnVtYmVycyYmdSh3LndlZWtOdW1iZXJzKTtmb3IodmFyIGU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9MDt0PHcuY29uZmlnLnNob3dNb250aHM7dCsrKXt2YXIgbj1uZXcgRGF0ZSh3LmN1cnJlbnRZZWFyLHcuY3VycmVudE1vbnRoLDEpO24uc2V0TW9udGgody5jdXJyZW50TW9udGgrdCksZS5hcHBlbmRDaGlsZChCKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCkpKX13LmRheXNDb250YWluZXIuYXBwZW5kQ2hpbGQoZSksdy5kYXlzPXcuZGF5c0NvbnRhaW5lci5maXJzdENoaWxkLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYxPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmYWUoKX19ZnVuY3Rpb24gSygpe2lmKCEody5jb25maWcuc2hvd01vbnRocz4xfHwiZHJvcGRvd24iIT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGUpKXt2YXIgZT1mdW5jdGlvbihlKXtyZXR1cm4hKHZvaWQgMCE9PXcuY29uZmlnLm1pbkRhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkmJmU8dy5jb25maWcubWluRGF0ZS5nZXRNb250aCgpKSYmISh2b2lkIDAhPT13LmNvbmZpZy5tYXhEYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpJiZlPncuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKSl9O3cubW9udGhzRHJvcGRvd25Db250YWluZXIudGFiSW5kZXg9LTEsdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5pbm5lckhUTUw9IiI7Zm9yKHZhciB0PTA7dDwxMjt0KyspaWYoZSh0KSl7dmFyIG49cygib3B0aW9uIiwiZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGgiKTtuLnZhbHVlPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdCkuZ2V0TW9udGgoKS50b1N0cmluZygpLG4udGV4dENvbnRlbnQ9aCh0LHcuY29uZmlnLnNob3J0aGFuZEN1cnJlbnRNb250aCx3LmwxMG4pLG4udGFiSW5kZXg9LTEsdy5jdXJyZW50TW9udGg9PT10JiYobi5zZWxlY3RlZD0hMCksdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5hcHBlbmRDaGlsZChuKX19fWZ1bmN0aW9uIFUoKXt2YXIgZSx0PXMoImRpdiIsImZsYXRwaWNrci1tb250aCIpLG49d2luZG93LmRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJzdGF0aWMiPT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGU\/ZT1zKCJzcGFuIiwiY3VyLW1vbnRoIik6KHcubW9udGhzRHJvcGRvd25Db250YWluZXI9cygic2VsZWN0IiwiZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIiksdy5tb250aHNEcm9wZG93bkNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHcubDEwbi5tb250aEFyaWFMYWJlbCksQSh3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLCJjaGFuZ2UiLChmdW5jdGlvbihlKXt2YXIgdD1nKGUpLG49cGFyc2VJbnQodC52YWx1ZSwxMCk7dy5jaGFuZ2VNb250aChuLXcuY3VycmVudE1vbnRoKSxwZSgib25Nb250aENoYW5nZSIpfSkpLEsoKSxlPXcubW9udGhzRHJvcGRvd25Db250YWluZXIpO3ZhciBhPW0oImN1ci15ZWFyIix7dGFiaW5kZXg6Ii0xIn0pLGk9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTtpLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5sMTBuLnllYXJBcmlhTGFiZWwpLHcuY29uZmlnLm1pbkRhdGUmJmkuc2V0QXR0cmlidXRlKCJtaW4iLHcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpKSx3LmNvbmZpZy5tYXhEYXRlJiYoaS5zZXRBdHRyaWJ1dGUoIm1heCIsdy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkpLGkuZGlzYWJsZWQ9ISF3LmNvbmZpZy5taW5EYXRlJiZ3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCk9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkpO3ZhciBvPXMoImRpdiIsImZsYXRwaWNrci1jdXJyZW50LW1vbnRoIik7cmV0dXJuIG8uYXBwZW5kQ2hpbGQoZSksby5hcHBlbmRDaGlsZChhKSxuLmFwcGVuZENoaWxkKG8pLHQuYXBwZW5kQ2hpbGQobikse2NvbnRhaW5lcjp0LHllYXJFbGVtZW50OmksbW9udGhFbGVtZW50OmV9fWZ1bmN0aW9uIHEoKXt1KHcubW9udGhOYXYpLHcubW9udGhOYXYuYXBwZW5kQ2hpbGQody5wcmV2TW9udGhOYXYpLHcuY29uZmlnLnNob3dNb250aHMmJih3LnllYXJFbGVtZW50cz1bXSx3Lm1vbnRoRWxlbWVudHM9W10pO2Zvcih2YXIgZT13LmNvbmZpZy5zaG93TW9udGhzO2UtLTspe3ZhciB0PVUoKTt3LnllYXJFbGVtZW50cy5wdXNoKHQueWVhckVsZW1lbnQpLHcubW9udGhFbGVtZW50cy5wdXNoKHQubW9udGhFbGVtZW50KSx3Lm1vbnRoTmF2LmFwcGVuZENoaWxkKHQuY29udGFpbmVyKX13Lm1vbnRoTmF2LmFwcGVuZENoaWxkKHcubmV4dE1vbnRoTmF2KX1mdW5jdGlvbiAkKCl7dy53ZWVrZGF5Q29udGFpbmVyP3Uody53ZWVrZGF5Q29udGFpbmVyKTp3LndlZWtkYXlDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXdlZWtkYXlzIik7Zm9yKHZhciBlPXcuY29uZmlnLnNob3dNb250aHM7ZS0tOyl7dmFyIHQ9cygiZGl2IiwiZmxhdHBpY2tyLXdlZWtkYXljb250YWluZXIiKTt3LndlZWtkYXlDb250YWluZXIuYXBwZW5kQ2hpbGQodCl9cmV0dXJuIHooKSx3LndlZWtkYXlDb250YWluZXJ9ZnVuY3Rpb24geigpe2lmKHcud2Vla2RheUNvbnRhaW5lcil7dmFyIGU9dy5sMTBuLmZpcnN0RGF5T2ZXZWVrLG49dCh3LmwxMG4ud2Vla2RheXMuc2hvcnRoYW5kKTtlPjAmJmU8bi5sZW5ndGgmJihuPXQobi5zcGxpY2UoZSxuLmxlbmd0aCksbi5zcGxpY2UoMCxlKSkpO2Zvcih2YXIgYT13LmNvbmZpZy5zaG93TW9udGhzO2EtLTspdy53ZWVrZGF5Q29udGFpbmVyLmNoaWxkcmVuW2FdLmlubmVySFRNTD0iXG4gICAgICA8c3BhbiBjbGFzcz0nZmxhdHBpY2tyLXdlZWtkYXknPlxuICAgICAgICAiK24uam9pbigiPC9zcGFuPjxzcGFuIGNsYXNzPSdmbGF0cGlja3Itd2Vla2RheSc+IikrIlxuICAgICAgPC9zcGFuPlxuICAgICAgIn19ZnVuY3Rpb24gRyhlLHQpe3ZvaWQgMD09PXQmJih0PSEwKTt2YXIgbj10P2U6ZS13LmN1cnJlbnRNb250aDtuPDAmJiEwPT09dy5faGlkZVByZXZNb250aEFycm93fHxuPjAmJiEwPT09dy5faGlkZU5leHRNb250aEFycm93fHwody5jdXJyZW50TW9udGgrPW4sKHcuY3VycmVudE1vbnRoPDB8fHcuY3VycmVudE1vbnRoPjExKSYmKHcuY3VycmVudFllYXIrPXcuY3VycmVudE1vbnRoPjExPzE6LTEsdy5jdXJyZW50TW9udGg9KHcuY3VycmVudE1vbnRoKzEyKSUxMixwZSgib25ZZWFyQ2hhbmdlIiksSygpKSxKKCkscGUoIm9uTW9udGhDaGFuZ2UiKSxEZSgpKX1mdW5jdGlvbiBWKGUpe3JldHVybiEoIXcuY29uZmlnLmFwcGVuZFRvfHwhdy5jb25maWcuYXBwZW5kVG8uY29udGFpbnMoZSkpfHx3LmNhbGVuZGFyQ29udGFpbmVyLmNvbnRhaW5zKGUpfWZ1bmN0aW9uIFooZSl7aWYody5pc09wZW4mJiF3LmNvbmZpZy5pbmxpbmUpe3ZhciB0PWcoZSksbj1WKHQpLGE9dD09PXcuaW5wdXR8fHQ9PT13LmFsdElucHV0fHx3LmVsZW1lbnQuY29udGFpbnModCl8fGUucGF0aCYmZS5wYXRoLmluZGV4T2YmJih+ZS5wYXRoLmluZGV4T2Yody5pbnB1dCl8fH5lLnBhdGguaW5kZXhPZih3LmFsdElucHV0KSksaT0iYmx1ciI9PT1lLnR5cGU\/YSYmZS5yZWxhdGVkVGFyZ2V0JiYhVihlLnJlbGF0ZWRUYXJnZXQpOiFhJiYhbiYmIVYoZS5yZWxhdGVkVGFyZ2V0KSxvPSF3LmNvbmZpZy5pZ25vcmVkRm9jdXNFbGVtZW50cy5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZS5jb250YWlucyh0KX0pKTtpJiZvJiYodm9pZCAwIT09dy50aW1lQ29udGFpbmVyJiZ2b2lkIDAhPT13Lm1pbnV0ZUVsZW1lbnQmJnZvaWQgMCE9PXcuaG91ckVsZW1lbnQmJiIiIT09dy5pbnB1dC52YWx1ZSYmdm9pZCAwIT09dy5pbnB1dC52YWx1ZSYmSSgpLHcuY2xvc2UoKSx3LmNvbmZpZyYmInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJjE9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiYody5jbGVhcighMSksdy5yZWRyYXcoKSkpfX1mdW5jdGlvbiBRKGUpe2lmKCEoIWV8fHcuY29uZmlnLm1pbkRhdGUmJmU8dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpfHx3LmNvbmZpZy5tYXhEYXRlJiZlPncuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSkpe3ZhciB0PWUsbj13LmN1cnJlbnRZZWFyIT09dDt3LmN1cnJlbnRZZWFyPXR8fHcuY3VycmVudFllYXIsdy5jb25maWcubWF4RGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aD1NYXRoLm1pbih3LmNvbmZpZy5tYXhEYXRlLmdldE1vbnRoKCksdy5jdXJyZW50TW9udGgpOncuY29uZmlnLm1pbkRhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkmJih3LmN1cnJlbnRNb250aD1NYXRoLm1heCh3LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCksdy5jdXJyZW50TW9udGgpKSxuJiYody5yZWRyYXcoKSxwZSgib25ZZWFyQ2hhbmdlIiksSygpKX19ZnVuY3Rpb24gWChlLHQpe3ZhciBuO3ZvaWQgMD09PXQmJih0PSEwKTt2YXIgYT13LnBhcnNlRGF0ZShlLHZvaWQgMCx0KTtpZih3LmNvbmZpZy5taW5EYXRlJiZhJiZNKGEsdy5jb25maWcubWluRGF0ZSx2b2lkIDAhPT10P3Q6IXcubWluRGF0ZUhhc1RpbWUpPDB8fHcuY29uZmlnLm1heERhdGUmJmEmJk0oYSx3LmNvbmZpZy5tYXhEYXRlLHZvaWQgMCE9PXQ\/dDohdy5tYXhEYXRlSGFzVGltZSk+MClyZXR1cm4hMTtpZighdy5jb25maWcuZW5hYmxlJiYwPT09dy5jb25maWcuZGlzYWJsZS5sZW5ndGgpcmV0dXJuITA7aWYodm9pZCAwPT09YSlyZXR1cm4hMTtmb3IodmFyIGk9ISF3LmNvbmZpZy5lbmFibGUsbz1udWxsIT09KG49dy5jb25maWcuZW5hYmxlKSYmdm9pZCAwIT09bj9uOncuY29uZmlnLmRpc2FibGUscj0wLGw9dm9pZCAwO3I8by5sZW5ndGg7cisrKXtpZigiZnVuY3Rpb24iPT10eXBlb2YobD1vW3JdKSYmbChhKSlyZXR1cm4gaTtpZihsIGluc3RhbmNlb2YgRGF0ZSYmdm9pZCAwIT09YSYmbC5nZXRUaW1lKCk9PT1hLmdldFRpbWUoKSlyZXR1cm4gaTtpZigic3RyaW5nIj09dHlwZW9mIGwpe3ZhciBjPXcucGFyc2VEYXRlKGwsdm9pZCAwLCEwKTtyZXR1cm4gYyYmYy5nZXRUaW1lKCk9PT1hLmdldFRpbWUoKT9pOiFpfWlmKCJvYmplY3QiPT10eXBlb2YgbCYmdm9pZCAwIT09YSYmbC5mcm9tJiZsLnRvJiZhLmdldFRpbWUoKT49bC5mcm9tLmdldFRpbWUoKSYmYS5nZXRUaW1lKCk8PWwudG8uZ2V0VGltZSgpKXJldHVybiBpfXJldHVybiFpfWZ1bmN0aW9uIGVlKGUpe3JldHVybiB2b2lkIDAhPT13LmRheXNDb250YWluZXImJigtMT09PWUuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiYtMT09PWUuY2xhc3NOYW1lLmluZGV4T2YoImZsYXRwaWNrci1kaXNhYmxlZCIpJiZ3LmRheXNDb250YWluZXIuY29udGFpbnMoZSkpfWZ1bmN0aW9uIHRlKGUpeyEoZS50YXJnZXQ9PT13Ll9pbnB1dCl8fCEody5zZWxlY3RlZERhdGVzLmxlbmd0aD4wfHx3Ll9pbnB1dC52YWx1ZS5sZW5ndGg+MCl8fGUucmVsYXRlZFRhcmdldCYmVihlLnJlbGF0ZWRUYXJnZXQpfHx3LnNldERhdGUody5faW5wdXQudmFsdWUsITAsZS50YXJnZXQ9PT13LmFsdElucHV0P3cuY29uZmlnLmFsdEZvcm1hdDp3LmNvbmZpZy5kYXRlRm9ybWF0KX1mdW5jdGlvbiBuZShlKXt2YXIgdD1nKGUpLG49dy5jb25maWcud3JhcD9wLmNvbnRhaW5zKHQpOnQ9PT13Ll9pbnB1dCxhPXcuY29uZmlnLmFsbG93SW5wdXQsaT13LmlzT3BlbiYmKCFhfHwhbiksbz13LmNvbmZpZy5pbmxpbmUmJm4mJiFhO2lmKDEzPT09ZS5rZXlDb2RlJiZuKXtpZihhKXJldHVybiB3LnNldERhdGUody5faW5wdXQudmFsdWUsITAsdD09PXcuYWx0SW5wdXQ\/dy5jb25maWcuYWx0Rm9ybWF0OncuY29uZmlnLmRhdGVGb3JtYXQpLHQuYmx1cigpO3cub3BlbigpfWVsc2UgaWYoVih0KXx8aXx8byl7dmFyIHI9ISF3LnRpbWVDb250YWluZXImJncudGltZUNvbnRhaW5lci5jb250YWlucyh0KTtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIDEzOnI\/KGUucHJldmVudERlZmF1bHQoKSxJKCksc2UoKSk6dWUoZSk7YnJlYWs7Y2FzZSAyNzplLnByZXZlbnREZWZhdWx0KCksc2UoKTticmVhaztjYXNlIDg6Y2FzZSA0NjpuJiYhdy5jb25maWcuYWxsb3dJbnB1dCYmKGUucHJldmVudERlZmF1bHQoKSx3LmNsZWFyKCkpO2JyZWFrO2Nhc2UgMzc6Y2FzZSAzOTppZihyfHxuKXcuaG91ckVsZW1lbnQmJncuaG91ckVsZW1lbnQuZm9jdXMoKTtlbHNlIGlmKGUucHJldmVudERlZmF1bHQoKSx2b2lkIDAhPT13LmRheXNDb250YWluZXImJighMT09PWF8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJmVlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSl7dmFyIGw9Mzk9PT1lLmtleUNvZGU\/MTotMTtlLmN0cmxLZXk\/KGUuc3RvcFByb3BhZ2F0aW9uKCksRyhsKSxSKFcoMSksMCkpOlIodm9pZCAwLGwpfWJyZWFrO2Nhc2UgMzg6Y2FzZSA0MDplLnByZXZlbnREZWZhdWx0KCk7dmFyIGM9NDA9PT1lLmtleUNvZGU\/MTotMTt3LmRheXNDb250YWluZXImJnZvaWQgMCE9PXQuJGl8fHQ9PT13LmlucHV0fHx0PT09dy5hbHRJbnB1dD9lLmN0cmxLZXk\/KGUuc3RvcFByb3BhZ2F0aW9uKCksUSh3LmN1cnJlbnRZZWFyLWMpLFIoVygxKSwwKSk6cnx8Uih2b2lkIDAsNypjKTp0PT09dy5jdXJyZW50WWVhckVsZW1lbnQ\/USh3LmN1cnJlbnRZZWFyLWMpOncuY29uZmlnLmVuYWJsZVRpbWUmJighciYmdy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpLEkoZSksdy5fZGVib3VuY2VkQ2hhbmdlKCkpO2JyZWFrO2Nhc2UgOTppZihyKXt2YXIgZD1bdy5ob3VyRWxlbWVudCx3Lm1pbnV0ZUVsZW1lbnQsdy5zZWNvbmRFbGVtZW50LHcuYW1QTV0uY29uY2F0KHcucGx1Z2luRWxlbWVudHMpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSkscz1kLmluZGV4T2YodCk7aWYoLTEhPT1zKXt2YXIgdT1kW3MrKGUuc2hpZnRLZXk\/LTE6MSldO2UucHJldmVudERlZmF1bHQoKSwodXx8dy5faW5wdXQpLmZvY3VzKCl9fWVsc2Uhdy5jb25maWcubm9DYWxlbmRhciYmdy5kYXlzQ29udGFpbmVyJiZ3LmRheXNDb250YWluZXIuY29udGFpbnModCkmJmUuc2hpZnRLZXkmJihlLnByZXZlbnREZWZhdWx0KCksdy5faW5wdXQuZm9jdXMoKSl9fWlmKHZvaWQgMCE9PXcuYW1QTSYmdD09PXcuYW1QTSlzd2l0Y2goZS5rZXkpe2Nhc2Ugdy5sMTBuLmFtUE1bMF0uY2hhckF0KDApOmNhc2Ugdy5sMTBuLmFtUE1bMF0uY2hhckF0KDApLnRvTG93ZXJDYXNlKCk6dy5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNWzBdLFMoKSxiZSgpO2JyZWFrO2Nhc2Ugdy5sMTBuLmFtUE1bMV0uY2hhckF0KDApOmNhc2Ugdy5sMTBuLmFtUE1bMV0uY2hhckF0KDApLnRvTG93ZXJDYXNlKCk6dy5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNWzFdLFMoKSxiZSgpfShufHxWKHQpKSYmcGUoIm9uS2V5RG93biIsZSl9ZnVuY3Rpb24gYWUoZSl7aWYoMT09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJighZXx8ZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kYXkiKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGlzYWJsZWQiKSkpe2Zvcih2YXIgdD1lP2UuZGF0ZU9iai5nZXRUaW1lKCk6dy5kYXlzLmZpcnN0RWxlbWVudENoaWxkLmRhdGVPYmouZ2V0VGltZSgpLG49dy5wYXJzZURhdGUody5zZWxlY3RlZERhdGVzWzBdLHZvaWQgMCwhMCkuZ2V0VGltZSgpLGE9TWF0aC5taW4odCx3LnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpKSxpPU1hdGgubWF4KHQsdy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKSksbz0hMSxyPTAsbD0wLGM9YTtjPGk7Yys9eSlYKG5ldyBEYXRlKGMpLCEwKXx8KG89b3x8Yz5hJiZjPGksYzxuJiYoIXJ8fGM+cik\/cj1jOmM+biYmKCFsfHxjPGwpJiYobD1jKSk7Zm9yKHZhciBkPTA7ZDx3LmNvbmZpZy5zaG93TW9udGhzO2QrKylmb3IodmFyIHM9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW2RdLHU9ZnVuY3Rpb24oYSxpKXt2YXIgYyxkLHUsZj1zLmNoaWxkcmVuW2FdLG09Zi5kYXRlT2JqLmdldFRpbWUoKSxnPXI+MCYmbTxyfHxsPjAmJm0+bDtyZXR1cm4gZz8oZi5jbGFzc0xpc3QuYWRkKCJub3RBbGxvd2VkIiksWyJpblJhbmdlIiwic3RhcnRSYW5nZSIsImVuZFJhbmdlIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Zi5jbGFzc0xpc3QucmVtb3ZlKGUpfSkpLCJjb250aW51ZSIpOm8mJiFnPyJjb250aW51ZSI6KFsic3RhcnRSYW5nZSIsImluUmFuZ2UiLCJlbmRSYW5nZSIsIm5vdEFsbG93ZWQiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmLmNsYXNzTGlzdC5yZW1vdmUoZSl9KSksdm9pZCh2b2lkIDAhPT1lJiYoZS5jbGFzc0xpc3QuYWRkKHQ8PXcuc2VsZWN0ZWREYXRlc1swXS5nZXRUaW1lKCk\/InN0YXJ0UmFuZ2UiOiJlbmRSYW5nZSIpLG48dCYmbT09PW4\/Zi5jbGFzc0xpc3QuYWRkKCJzdGFydFJhbmdlIik6bj50JiZtPT09biYmZi5jbGFzc0xpc3QuYWRkKCJlbmRSYW5nZSIpLG0+PXImJigwPT09bHx8bTw9bCkmJihkPW4sdT10LChjPW0pPk1hdGgubWluKGQsdSkmJmM8TWF0aC5tYXgoZCx1KSkmJmYuY2xhc3NMaXN0LmFkZCgiaW5SYW5nZSIpKSkpfSxmPTAsbT1zLmNoaWxkcmVuLmxlbmd0aDtmPG07ZisrKXUoZil9fWZ1bmN0aW9uIGllKCl7IXcuaXNPcGVufHx3LmNvbmZpZy5zdGF0aWN8fHcuY29uZmlnLmlubGluZXx8Y2UoKX1mdW5jdGlvbiBvZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dy5jb25maWdbIl8iK2UrIkRhdGUiXT13LnBhcnNlRGF0ZSh0LHcuY29uZmlnLmRhdGVGb3JtYXQpLGE9dy5jb25maWdbIl8iKygibWluIj09PWU\/Im1heCI6Im1pbiIpKyJEYXRlIl07dm9pZCAwIT09biYmKHdbIm1pbiI9PT1lPyJtaW5EYXRlSGFzVGltZSI6Im1heERhdGVIYXNUaW1lIl09bi5nZXRIb3VycygpPjB8fG4uZ2V0TWludXRlcygpPjB8fG4uZ2V0U2Vjb25kcygpPjApLHcuc2VsZWN0ZWREYXRlcyYmKHcuc2VsZWN0ZWREYXRlcz13LnNlbGVjdGVkRGF0ZXMuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gWChlKX0pKSx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RofHwibWluIiE9PWV8fF8obiksYmUoKSksdy5kYXlzQ29udGFpbmVyJiYoZGUoKSx2b2lkIDAhPT1uP3cuY3VycmVudFllYXJFbGVtZW50W2VdPW4uZ2V0RnVsbFllYXIoKS50b1N0cmluZygpOncuY3VycmVudFllYXJFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShlKSx3LmN1cnJlbnRZZWFyRWxlbWVudC5kaXNhYmxlZD0hIWEmJnZvaWQgMCE9PW4mJmEuZ2V0RnVsbFllYXIoKT09PW4uZ2V0RnVsbFllYXIoKSl9fWZ1bmN0aW9uIHJlKCl7cmV0dXJuIHcuY29uZmlnLndyYXA\/cC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1pbnB1dF0iKTpwfWZ1bmN0aW9uIGxlKCl7Im9iamVjdCIhPXR5cGVvZiB3LmNvbmZpZy5sb2NhbGUmJnZvaWQgMD09PVQubDEwbnNbdy5jb25maWcubG9jYWxlXSYmdy5jb25maWcuZXJyb3JIYW5kbGVyKG5ldyBFcnJvcigiZmxhdHBpY2tyOiBpbnZhbGlkIGxvY2FsZSAiK3cuY29uZmlnLmxvY2FsZSkpLHcubDEwbj1lKGUoe30sVC5sMTBucy5kZWZhdWx0KSwib2JqZWN0Ij09dHlwZW9mIHcuY29uZmlnLmxvY2FsZT93LmNvbmZpZy5sb2NhbGU6ImRlZmF1bHQiIT09dy5jb25maWcubG9jYWxlP1QubDEwbnNbdy5jb25maWcubG9jYWxlXTp2b2lkIDApLEQuSz0iKCIrdy5sMTBuLmFtUE1bMF0rInwiK3cubDEwbi5hbVBNWzFdKyJ8Iit3LmwxMG4uYW1QTVswXS50b0xvd2VyQ2FzZSgpKyJ8Iit3LmwxMG4uYW1QTVsxXS50b0xvd2VyQ2FzZSgpKyIpIix2b2lkIDA9PT1lKGUoe30sdiksSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwLmRhdGFzZXR8fHt9KSkpLnRpbWVfMjRociYmdm9pZCAwPT09VC5kZWZhdWx0Q29uZmlnLnRpbWVfMjRociYmKHcuY29uZmlnLnRpbWVfMjRocj13LmwxMG4udGltZV8yNGhyKSx3LmZvcm1hdERhdGU9Yih3KSx3LnBhcnNlRGF0ZT1DKHtjb25maWc6dy5jb25maWcsbDEwbjp3LmwxMG59KX1mdW5jdGlvbiBjZShlKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygdy5jb25maWcucG9zaXRpb24pe2lmKHZvaWQgMCE9PXcuY2FsZW5kYXJDb250YWluZXIpe3BlKCJvblByZUNhbGVuZGFyUG9zaXRpb24iKTt2YXIgdD1lfHx3Ll9wb3NpdGlvbkVsZW1lbnQsbj1BcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwody5jYWxlbmRhckNvbnRhaW5lci5jaGlsZHJlbiwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0Lm9mZnNldEhlaWdodH0pLDApLGE9dy5jYWxlbmRhckNvbnRhaW5lci5vZmZzZXRXaWR0aCxpPXcuY29uZmlnLnBvc2l0aW9uLnNwbGl0KCIgIiksbz1pWzBdLHI9aS5sZW5ndGg+MT9pWzFdOm51bGwsbD10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGM9d2luZG93LmlubmVySGVpZ2h0LWwuYm90dG9tLHM9ImFib3ZlIj09PW98fCJiZWxvdyIhPT1vJiZjPG4mJmwudG9wPm4sdT13aW5kb3cucGFnZVlPZmZzZXQrbC50b3ArKHM\/LW4tMjp0Lm9mZnNldEhlaWdodCsyKTtpZihkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93VG9wIiwhcyksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0JvdHRvbSIscyksIXcuY29uZmlnLmlubGluZSl7dmFyIGY9d2luZG93LnBhZ2VYT2Zmc2V0K2wubGVmdCxtPSExLGc9ITE7ImNlbnRlciI9PT1yPyhmLT0oYS1sLndpZHRoKS8yLG09ITApOiJyaWdodCI9PT1yJiYoZi09YS1sLndpZHRoLGc9ITApLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dMZWZ0IiwhbSYmIWcpLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dDZW50ZXIiLG0pLGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dSaWdodCIsZyk7dmFyIHA9d2luZG93LmRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgtKHdpbmRvdy5wYWdlWE9mZnNldCtsLnJpZ2h0KSxoPWYrYT53aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCx2PXArYT53aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtpZihkKHcuY2FsZW5kYXJDb250YWluZXIsInJpZ2h0TW9zdCIsaCksIXcuY29uZmlnLnN0YXRpYylpZih3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnRvcD11KyJweCIsaClpZih2KXt2YXIgRD1mdW5jdGlvbigpe2Zvcih2YXIgZT1udWxsLHQ9MDt0PGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDt0Kyspe3ZhciBuPWRvY3VtZW50LnN0eWxlU2hlZXRzW3RdO3RyeXtuLmNzc1J1bGVzfWNhdGNoKGUpe2NvbnRpbnVlfWU9bjticmVha31yZXR1cm4gbnVsbCE9ZT9lOihhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKSxhLnNoZWV0KTt2YXIgYX0oKTtpZih2b2lkIDA9PT1EKXJldHVybjt2YXIgYj13aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCxDPU1hdGgubWF4KDAsYi8yLWEvMiksTT1ELmNzc1J1bGVzLmxlbmd0aCx5PSJ7bGVmdDoiK2wubGVmdCsicHg7cmlnaHQ6YXV0bzt9IjtkKHcuY2FsZW5kYXJDb250YWluZXIsInJpZ2h0TW9zdCIsITEpLGQody5jYWxlbmRhckNvbnRhaW5lciwiY2VudGVyTW9zdCIsITApLEQuaW5zZXJ0UnVsZSgiLmZsYXRwaWNrci1jYWxlbmRhci5jZW50ZXJNb3N0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmNlbnRlck1vc3Q6YWZ0ZXIiK3ksTSksdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5sZWZ0PUMrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJpZ2h0PSJhdXRvIn1lbHNlIHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUubGVmdD0iYXV0byIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yaWdodD1wKyJweCI7ZWxzZSB3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmxlZnQ9ZisicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmlnaHQ9ImF1dG8ifX19ZWxzZSB3LmNvbmZpZy5wb3NpdGlvbih3LGUpfWZ1bmN0aW9uIGRlKCl7dy5jb25maWcubm9DYWxlbmRhcnx8dy5pc01vYmlsZXx8KEsoKSxEZSgpLEooKSl9ZnVuY3Rpb24gc2UoKXt3Ll9pbnB1dC5mb2N1cygpLC0xIT09d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSIpfHx2b2lkIDAhPT1uYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz9zZXRUaW1lb3V0KHcuY2xvc2UsMCk6dy5jbG9zZSgpfWZ1bmN0aW9uIHVlKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB0PWYoZyhlKSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NMaXN0JiZlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRheSIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kaXNhYmxlZCIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoIm5vdEFsbG93ZWQiKX0pKTtpZih2b2lkIDAhPT10KXt2YXIgbj10LGE9dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9bmV3IERhdGUobi5kYXRlT2JqLmdldFRpbWUoKSksaT0oYS5nZXRNb250aCgpPHcuY3VycmVudE1vbnRofHxhLmdldE1vbnRoKCk+dy5jdXJyZW50TW9udGgrdy5jb25maWcuc2hvd01vbnRocy0xKSYmInJhbmdlIiE9PXcuY29uZmlnLm1vZGU7aWYody5zZWxlY3RlZERhdGVFbGVtPW4sInNpbmdsZSI9PT13LmNvbmZpZy5tb2RlKXcuc2VsZWN0ZWREYXRlcz1bYV07ZWxzZSBpZigibXVsdGlwbGUiPT09dy5jb25maWcubW9kZSl7dmFyIG89dmUoYSk7bz93LnNlbGVjdGVkRGF0ZXMuc3BsaWNlKHBhcnNlSW50KG8pLDEpOncuc2VsZWN0ZWREYXRlcy5wdXNoKGEpfWVsc2UicmFuZ2UiPT09dy5jb25maWcubW9kZSYmKDI9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiZ3LmNsZWFyKCExLCExKSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj1hLHcuc2VsZWN0ZWREYXRlcy5wdXNoKGEpLDAhPT1NKGEsdy5zZWxlY3RlZERhdGVzWzBdLCEwKSYmdy5zZWxlY3RlZERhdGVzLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZ2V0VGltZSgpLXQuZ2V0VGltZSgpfSkpKTtpZihTKCksaSl7dmFyIHI9dy5jdXJyZW50WWVhciE9PWEuZ2V0RnVsbFllYXIoKTt3LmN1cnJlbnRZZWFyPWEuZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD1hLmdldE1vbnRoKCksciYmKHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpLHBlKCJvbk1vbnRoQ2hhbmdlIil9aWYoRGUoKSxKKCksYmUoKSxpfHwicmFuZ2UiPT09dy5jb25maWcubW9kZXx8MSE9PXcuY29uZmlnLnNob3dNb250aHM\/dm9pZCAwIT09dy5zZWxlY3RlZERhdGVFbGVtJiZ2b2lkIDA9PT13LmhvdXJFbGVtZW50JiZ3LnNlbGVjdGVkRGF0ZUVsZW0mJncuc2VsZWN0ZWREYXRlRWxlbS5mb2N1cygpOkwobiksdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpLHcuY29uZmlnLmNsb3NlT25TZWxlY3Qpe3ZhciBsPSJzaW5nbGUiPT09dy5jb25maWcubW9kZSYmIXcuY29uZmlnLmVuYWJsZVRpbWUsYz0icmFuZ2UiPT09dy5jb25maWcubW9kZSYmMj09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJiF3LmNvbmZpZy5lbmFibGVUaW1lOyhsfHxjKSYmc2UoKX1OKCl9fXcucGFyc2VEYXRlPUMoe2NvbmZpZzp3LmNvbmZpZyxsMTBuOncubDEwbn0pLHcuX2hhbmRsZXJzPVtdLHcucGx1Z2luRWxlbWVudHM9W10sdy5sb2FkZWRQbHVnaW5zPVtdLHcuX2JpbmQ9QSx3Ll9zZXRIb3Vyc0Zyb21EYXRlPV8sdy5fcG9zaXRpb25DYWxlbmRhcj1jZSx3LmNoYW5nZU1vbnRoPUcsdy5jaGFuZ2VZZWFyPVEsdy5jbGVhcj1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PWUmJihlPSEwKTt2b2lkIDA9PT10JiYodD0hMCk7dy5pbnB1dC52YWx1ZT0iIix2b2lkIDAhPT13LmFsdElucHV0JiYody5hbHRJbnB1dC52YWx1ZT0iIik7dm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmKHcubW9iaWxlSW5wdXQudmFsdWU9IiIpO3cuc2VsZWN0ZWREYXRlcz1bXSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj12b2lkIDAsITA9PT10JiYody5jdXJyZW50WWVhcj13Ll9pbml0aWFsRGF0ZS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPXcuX2luaXRpYWxEYXRlLmdldE1vbnRoKCkpO2lmKCEwPT09dy5jb25maWcuZW5hYmxlVGltZSl7dmFyIG49eCh3LmNvbmZpZyksYT1uLmhvdXJzLGk9bi5taW51dGVzLG89bi5zZWNvbmRzO08oYSxpLG8pfXcucmVkcmF3KCksZSYmcGUoIm9uQ2hhbmdlIil9LHcuY2xvc2U9ZnVuY3Rpb24oKXt3LmlzT3Blbj0hMSx3LmlzTW9iaWxlfHwodm9pZCAwIT09dy5jYWxlbmRhckNvbnRhaW5lciYmdy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIiksdm9pZCAwIT09dy5faW5wdXQmJncuX2lucHV0LmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpKTtwZSgib25DbG9zZSIpfSx3Ll9jcmVhdGVFbGVtZW50PXMsdy5kZXN0cm95PWZ1bmN0aW9uKCl7dm9pZCAwIT09dy5jb25maWcmJnBlKCJvbkRlc3Ryb3kiKTtmb3IodmFyIGU9dy5faGFuZGxlcnMubGVuZ3RoO2UtLTspdy5faGFuZGxlcnNbZV0ucmVtb3ZlKCk7aWYody5faGFuZGxlcnM9W10sdy5tb2JpbGVJbnB1dCl3Lm1vYmlsZUlucHV0LnBhcmVudE5vZGUmJncubW9iaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh3Lm1vYmlsZUlucHV0KSx3Lm1vYmlsZUlucHV0PXZvaWQgMDtlbHNlIGlmKHcuY2FsZW5kYXJDb250YWluZXImJncuY2FsZW5kYXJDb250YWluZXIucGFyZW50Tm9kZSlpZih3LmNvbmZpZy5zdGF0aWMmJncuY2FsZW5kYXJDb250YWluZXIucGFyZW50Tm9kZSl7dmFyIHQ9dy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlO2lmKHQubGFzdENoaWxkJiZ0LnJlbW92ZUNoaWxkKHQubGFzdENoaWxkKSx0LnBhcmVudE5vZGUpe2Zvcig7dC5maXJzdENoaWxkOyl0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQuZmlyc3RDaGlsZCx0KTt0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9fWVsc2Ugdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcuY2FsZW5kYXJDb250YWluZXIpO3cuYWx0SW5wdXQmJih3LmlucHV0LnR5cGU9InRleHQiLHcuYWx0SW5wdXQucGFyZW50Tm9kZSYmdy5hbHRJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcuYWx0SW5wdXQpLGRlbGV0ZSB3LmFsdElucHV0KTt3LmlucHV0JiYody5pbnB1dC50eXBlPXcuaW5wdXQuX3R5cGUsdy5pbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCJmbGF0cGlja3ItaW5wdXQiKSx3LmlucHV0LnJlbW92ZUF0dHJpYnV0ZSgicmVhZG9ubHkiKSk7WyJfc2hvd1RpbWVJbnB1dCIsImxhdGVzdFNlbGVjdGVkRGF0ZU9iaiIsIl9oaWRlTmV4dE1vbnRoQXJyb3ciLCJfaGlkZVByZXZNb250aEFycm93IiwiX19oaWRlTmV4dE1vbnRoQXJyb3ciLCJfX2hpZGVQcmV2TW9udGhBcnJvdyIsImlzTW9iaWxlIiwiaXNPcGVuIiwic2VsZWN0ZWREYXRlRWxlbSIsIm1pbkRhdGVIYXNUaW1lIiwibWF4RGF0ZUhhc1RpbWUiLCJkYXlzIiwiZGF5c0NvbnRhaW5lciIsIl9pbnB1dCIsIl9wb3NpdGlvbkVsZW1lbnQiLCJpbm5lckNvbnRhaW5lciIsInJDb250YWluZXIiLCJtb250aE5hdiIsInRvZGF5RGF0ZUVsZW0iLCJjYWxlbmRhckNvbnRhaW5lciIsIndlZWtkYXlDb250YWluZXIiLCJwcmV2TW9udGhOYXYiLCJuZXh0TW9udGhOYXYiLCJtb250aHNEcm9wZG93bkNvbnRhaW5lciIsImN1cnJlbnRNb250aEVsZW1lbnQiLCJjdXJyZW50WWVhckVsZW1lbnQiLCJuYXZpZ2F0aW9uQ3VycmVudE1vbnRoIiwic2VsZWN0ZWREYXRlRWxlbSIsImNvbmZpZyJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RyeXtkZWxldGUgd1tlXX1jYXRjaChlKXt9fSkpfSx3LmlzRW5hYmxlZD1YLHcuanVtcFRvRGF0ZT1QLHcub3Blbj1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PXcuX3Bvc2l0aW9uRWxlbWVudCk7aWYoITA9PT13LmlzTW9iaWxlKXtpZihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49ZyhlKTtuJiZuLmJsdXIoKX1yZXR1cm4gdm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmKHcubW9iaWxlSW5wdXQuZm9jdXMoKSx3Lm1vYmlsZUlucHV0LmNsaWNrKCkpLHZvaWQgcGUoIm9uT3BlbiIpfWlmKHcuX2lucHV0LmRpc2FibGVkfHx3LmNvbmZpZy5pbmxpbmUpcmV0dXJuO3ZhciBhPXcuaXNPcGVuO3cuaXNPcGVuPSEwLGF8fCh3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm9wZW4iKSx3Ll9pbnB1dC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxwZSgib25PcGVuIiksY2UodCkpOyEwPT09dy5jb25maWcuZW5hYmxlVGltZSYmITA9PT13LmNvbmZpZy5ub0NhbGVuZGFyJiYoITEhPT13LmNvbmZpZy5hbGxvd0lucHV0fHx2b2lkIDAhPT1lJiZ3LnRpbWVDb250YWluZXIuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KXx8c2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gdy5ob3VyRWxlbWVudC5zZWxlY3QoKX0pLDUwKSl9LHcucmVkcmF3PWRlLHcuc2V0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSlmb3IodmFyIGEgaW4gT2JqZWN0LmFzc2lnbih3LmNvbmZpZyxlKSxlKXZvaWQgMCE9PWZlW2FdJiZmZVthXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSkpO2Vsc2Ugdy5jb25maWdbZV09dCx2b2lkIDAhPT1mZVtlXT9mZVtlXS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSkpOm4uaW5kZXhPZihlKT4tMSYmKHcuY29uZmlnW2VdPWModCkpO3cucmVkcmF3KCksYmUoITApfSx3LnNldERhdGU9ZnVuY3Rpb24oZSx0LG4pe3ZvaWQgMD09PXQmJih0PSExKTt2b2lkIDA9PT1uJiYobj13LmNvbmZpZy5kYXRlRm9ybWF0KTtpZigwIT09ZSYmIWV8fGUgaW5zdGFuY2VvZiBBcnJheSYmMD09PWUubGVuZ3RoKXJldHVybiB3LmNsZWFyKHQpO21lKGUsbiksdy5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dy5zZWxlY3RlZERhdGVzW3cuc2VsZWN0ZWREYXRlcy5sZW5ndGgtMV0sdy5yZWRyYXcoKSxQKHZvaWQgMCx0KSxfKCksMD09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJncuY2xlYXIoITEpO2JlKHQpLHQmJnBlKCJvbkNoYW5nZSIpfSx3LnRvZ2dsZT1mdW5jdGlvbihlKXtpZighMD09PXcuaXNPcGVuKXJldHVybiB3LmNsb3NlKCk7dy5vcGVuKGUpfTt2YXIgZmU9e2xvY2FsZTpbbGUsel0sc2hvd01vbnRoczpbcSxrLCRdLG1pbkRhdGU6W1BdLG1heERhdGU6W1BdLGNsaWNrT3BlbnM6W2Z1bmN0aW9uKCl7ITA9PT13LmNvbmZpZy5jbGlja09wZW5zPyhBKHcuX2lucHV0LCJmb2N1cyIsdy5vcGVuKSxBKHcuX2lucHV0LCJjbGljayIsdy5vcGVuKSk6KHcuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix3Lm9wZW4pLHcuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix3Lm9wZW4pKX1dfTtmdW5jdGlvbiBtZShlLHQpe3ZhciBuPVtdO2lmKGUgaW5zdGFuY2VvZiBBcnJheSluPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdy5wYXJzZURhdGUoZSx0KX0pKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBEYXRlfHwibnVtYmVyIj09dHlwZW9mIGUpbj1bdy5wYXJzZURhdGUoZSx0KV07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpc3dpdGNoKHcuY29uZmlnLm1vZGUpe2Nhc2Uic2luZ2xlIjpjYXNlInRpbWUiOm49W3cucGFyc2VEYXRlKGUsdCldO2JyZWFrO2Nhc2UibXVsdGlwbGUiOm49ZS5zcGxpdCh3LmNvbmZpZy5jb25qdW5jdGlvbikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdy5wYXJzZURhdGUoZSx0KX0pKTticmVhaztjYXNlInJhbmdlIjpuPWUuc3BsaXQody5sMTBuLnJhbmdlU2VwYXJhdG9yKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpfWVsc2Ugdy5jb25maWcuZXJyb3JIYW5kbGVyKG5ldyBFcnJvcigiSW52YWxpZCBkYXRlIHN1cHBsaWVkOiAiK0pTT04uc3RyaW5naWZ5KGUpKSk7dy5zZWxlY3RlZERhdGVzPXcuY29uZmlnLmFsbG93SW52YWxpZFByZWxvYWQ\/bjpuLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlJiZYKGUsITEpfSkpLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZ3LnNlbGVjdGVkRGF0ZXMuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9KSl9ZnVuY3Rpb24gZ2UoZSl7cmV0dXJuIGUuc2xpY2UoKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlfHxlIGluc3RhbmNlb2YgRGF0ZT93LnBhcnNlRGF0ZShlLHZvaWQgMCwhMCk6ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiZlLmZyb20mJmUudG8\/e2Zyb206dy5wYXJzZURhdGUoZS5mcm9tLHZvaWQgMCksdG86dy5wYXJzZURhdGUoZS50byx2b2lkIDApfTplfSkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSl9ZnVuY3Rpb24gcGUoZSx0KXtpZih2b2lkIDAhPT13LmNvbmZpZyl7dmFyIG49dy5jb25maWdbZV07aWYodm9pZCAwIT09biYmbi5sZW5ndGg+MClmb3IodmFyIGE9MDtuW2FdJiZhPG4ubGVuZ3RoO2ErKyluW2FdKHcuc2VsZWN0ZWREYXRlcyx3LmlucHV0LnZhbHVlLHcsdCk7Im9uQ2hhbmdlIj09PWUmJih3LmlucHV0LmRpc3BhdGNoRXZlbnQoaGUoImNoYW5nZSIpKSx3LmlucHV0LmRpc3BhdGNoRXZlbnQoaGUoImlucHV0IikpKX19ZnVuY3Rpb24gaGUoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIHQuaW5pdEV2ZW50KGUsITAsITApLHR9ZnVuY3Rpb24gdmUoZSl7Zm9yKHZhciB0PTA7dDx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoO3QrKylpZigwPT09TSh3LnNlbGVjdGVkRGF0ZXNbdF0sZSkpcmV0dXJuIiIrdDtyZXR1cm4hMX1mdW5jdGlvbiBEZSgpe3cuY29uZmlnLm5vQ2FsZW5kYXJ8fHcuaXNNb2JpbGV8fCF3Lm1vbnRoTmF2fHwody55ZWFyRWxlbWVudHMuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXt2YXIgbj1uZXcgRGF0ZSh3LmN1cnJlbnRZZWFyLHcuY3VycmVudE1vbnRoLDEpO24uc2V0TW9udGgody5jdXJyZW50TW9udGgrdCksdy5jb25maWcuc2hvd01vbnRocz4xfHwic3RhdGljIj09PXcuY29uZmlnLm1vbnRoU2VsZWN0b3JUeXBlP3cubW9udGhFbGVtZW50c1t0XS50ZXh0Q29udGVudD1oKG4uZ2V0TW9udGgoKSx3LmNvbmZpZy5zaG9ydGhhbmRDdXJyZW50TW9udGgsdy5sMTBuKSsiICI6dy5tb250aHNEcm9wZG93bkNvbnRhaW5lci52YWx1ZT1uLmdldE1vbnRoKCkudG9TdHJpbmcoKSxlLnZhbHVlPW4uZ2V0RnVsbFllYXIoKS50b1N0cmluZygpfSkpLHcuX2hpZGVQcmV2TW9udGhBcnJvdz12b2lkIDAhPT13LmNvbmZpZy5taW5EYXRlJiYody5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aDw9dy5jb25maWcubWluRGF0ZS5nZXRNb250aCgpOncuY3VycmVudFllYXI8dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpKSx3Ll9oaWRlTmV4dE1vbnRoQXJyb3c9dm9pZCAwIT09dy5jb25maWcubWF4RGF0ZSYmKHcuY3VycmVudFllYXI9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCk\/dy5jdXJyZW50TW9udGgrMT53LmNvbmZpZy5tYXhEYXRlLmdldE1vbnRoKCk6dy5jdXJyZW50WWVhcj53LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkpKX1mdW5jdGlvbiB3ZShlKXtyZXR1cm4gdy5zZWxlY3RlZERhdGVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHcuZm9ybWF0RGF0ZSh0LGUpfSkpLmZpbHRlcigoZnVuY3Rpb24oZSx0LG4pe3JldHVybiJyYW5nZSIhPT13LmNvbmZpZy5tb2RlfHx3LmNvbmZpZy5lbmFibGVUaW1lfHxuLmluZGV4T2YoZSk9PT10fSkpLmpvaW4oInJhbmdlIiE9PXcuY29uZmlnLm1vZGU\/dy5jb25maWcuY29uanVuY3Rpb246dy5sMTBuLnJhbmdlU2VwYXJhdG9yKX1mdW5jdGlvbiBiZShlKXt2b2lkIDA9PT1lJiYoZT0hMCksdm9pZCAwIT09dy5tb2JpbGVJbnB1dCYmdy5tb2JpbGVGb3JtYXRTdHImJih3Lm1vYmlsZUlucHV0LnZhbHVlPXZvaWQgMCE9PXcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cuZm9ybWF0RGF0ZSh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaix3Lm1vYmlsZUZvcm1hdFN0cik6IiIpLHcuaW5wdXQudmFsdWU9d2Uody5jb25maWcuZGF0ZUZvcm1hdCksdm9pZCAwIT09dy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQudmFsdWU9d2Uody5jb25maWcuYWx0Rm9ybWF0KSksITEhPT1lJiZwZSgib25WYWx1ZVVwZGF0ZSIpfWZ1bmN0aW9uIENlKGUpe3ZhciB0PWcoZSksbj13LnByZXZNb250aE5hdi5jb250YWlucyh0KSxhPXcubmV4dE1vbnRoTmF2LmNvbnRhaW5zKHQpO258fGE\/RyhuPy0xOjEpOncueWVhckVsZW1lbnRzLmluZGV4T2YodCk+PTA\/dC5zZWxlY3QoKTp0LmNsYXNzTGlzdC5jb250YWlucygiYXJyb3dVcCIpP3cuY2hhbmdlWWVhcih3LmN1cnJlbnRZZWFyKzEpOnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd0Rvd24iKSYmdy5jaGFuZ2VZZWFyKHcuY3VycmVudFllYXItMSl9cmV0dXJuIGZ1bmN0aW9uKCl7dy5lbGVtZW50PXcuaW5wdXQ9cCx3LmlzT3Blbj0hMSxmdW5jdGlvbigpe3ZhciB0PVsid3JhcCIsIndlZWtOdW1iZXJzIiwiYWxsb3dJbnB1dCIsImFsbG93SW52YWxpZFByZWxvYWQiLCJjbGlja09wZW5zIiwidGltZV8yNGhyIiwiZW5hYmxlVGltZSIsIm5vQ2FsZW5kYXIiLCJhbHRJbnB1dCIsInNob3J0aGFuZEN1cnJlbnRNb250aCIsImlubGluZSIsInN0YXRpYyIsImVuYWJsZVNlY29uZHMiLCJkaXNhYmxlTW9iaWxlIl0saT1lKGUoe30sSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwLmRhdGFzZXR8fHt9KSkpLHYpLG89e307dy5jb25maWcucGFyc2VEYXRlPWkucGFyc2VEYXRlLHcuY29uZmlnLmZvcm1hdERhdGU9aS5mb3JtYXREYXRlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywiZW5hYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9lbmFibGV9LHNldDpmdW5jdGlvbihlKXt3LmNvbmZpZy5fZW5hYmxlPWdlKGUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywiZGlzYWJsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fZGlzYWJsZX0sc2V0OmZ1bmN0aW9uKGUpe3cuY29uZmlnLl9kaXNhYmxlPWdlKGUpfX0pO3ZhciByPSJ0aW1lIj09PWkubW9kZTtpZighaS5kYXRlRm9ybWF0JiYoaS5lbmFibGVUaW1lfHxyKSl7dmFyIGw9VC5kZWZhdWx0Q29uZmlnLmRhdGVGb3JtYXR8fGEuZGF0ZUZvcm1hdDtvLmRhdGVGb3JtYXQ9aS5ub0NhbGVuZGFyfHxyPyJIOmkiKyhpLmVuYWJsZVNlY29uZHM\/IjpTIjoiIik6bCsiIEg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKX1pZihpLmFsdElucHV0JiYoaS5lbmFibGVUaW1lfHxyKSYmIWkuYWx0Rm9ybWF0KXt2YXIgZD1ULmRlZmF1bHRDb25maWcuYWx0Rm9ybWF0fHxhLmFsdEZvcm1hdDtvLmFsdEZvcm1hdD1pLm5vQ2FsZW5kYXJ8fHI\/Img6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMgSyI6IiBLIik6ZCsiIGg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKSsiIEsifU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWluRGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWluRGF0ZX0sc2V0Om9lKCJtaW4iKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWF4RGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWF4RGF0ZX0sc2V0Om9lKCJtYXgiKX0pO3ZhciBzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt3LmNvbmZpZ1sibWluIj09PWU\/Il9taW5UaW1lIjoiX21heFRpbWUiXT13LnBhcnNlRGF0ZSh0LCJIOmk6UyIpfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtaW5UaW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9taW5UaW1lfSxzZXQ6cygibWluIil9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1heFRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21heFRpbWV9LHNldDpzKCJtYXgiKX0pLCJ0aW1lIj09PWkubW9kZSYmKHcuY29uZmlnLm5vQ2FsZW5kYXI9ITAsdy5jb25maWcuZW5hYmxlVGltZT0hMCk7T2JqZWN0LmFzc2lnbih3LmNvbmZpZyxvLGkpO2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7dSsrKXcuY29uZmlnW3RbdV1dPSEwPT09dy5jb25maWdbdFt1XV18fCJ0cnVlIj09PXcuY29uZmlnW3RbdV1dO24uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09dy5jb25maWdbZV19KSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dy5jb25maWdbZV09Yyh3LmNvbmZpZ1tlXXx8W10pLm1hcChFKX0pKSx3LmlzTW9iaWxlPSF3LmNvbmZpZy5kaXNhYmxlTW9iaWxlJiYhdy5jb25maWcuaW5saW5lJiYic2luZ2xlIj09PXcuY29uZmlnLm1vZGUmJiF3LmNvbmZpZy5kaXNhYmxlLmxlbmd0aCYmIXcuY29uZmlnLmVuYWJsZSYmIXcuY29uZmlnLndlZWtOdW1iZXJzJiYvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7Zm9yKHU9MDt1PHcuY29uZmlnLnBsdWdpbnMubGVuZ3RoO3UrKyl7dmFyIGY9dy5jb25maWcucGx1Z2luc1t1XSh3KXx8e307Zm9yKHZhciBtIGluIGYpbi5pbmRleE9mKG0pPi0xP3cuY29uZmlnW21dPWMoZlttXSkubWFwKEUpLmNvbmNhdCh3LmNvbmZpZ1ttXSk6dm9pZCAwPT09aVttXSYmKHcuY29uZmlnW21dPWZbbV0pfWkuYWx0SW5wdXRDbGFzc3x8KHcuY29uZmlnLmFsdElucHV0Q2xhc3M9cmUoKS5jbGFzc05hbWUrIiAiK3cuY29uZmlnLmFsdElucHV0Q2xhc3MpO3BlKCJvblBhcnNlQ29uZmlnIil9KCksbGUoKSxmdW5jdGlvbigpe2lmKHcuaW5wdXQ9cmUoKSwhdy5pbnB1dClyZXR1cm4gdm9pZCB3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGlucHV0IGVsZW1lbnQgc3BlY2lmaWVkIikpO3cuaW5wdXQuX3R5cGU9dy5pbnB1dC50eXBlLHcuaW5wdXQudHlwZT0idGV4dCIsdy5pbnB1dC5jbGFzc0xpc3QuYWRkKCJmbGF0cGlja3ItaW5wdXQiKSx3Ll9pbnB1dD13LmlucHV0LHcuY29uZmlnLmFsdElucHV0JiYody5hbHRJbnB1dD1zKHcuaW5wdXQubm9kZU5hbWUsdy5jb25maWcuYWx0SW5wdXRDbGFzcyksdy5faW5wdXQ9dy5hbHRJbnB1dCx3LmFsdElucHV0LnBsYWNlaG9sZGVyPXcuaW5wdXQucGxhY2Vob2xkZXIsdy5hbHRJbnB1dC5kaXNhYmxlZD13LmlucHV0LmRpc2FibGVkLHcuYWx0SW5wdXQucmVxdWlyZWQ9dy5pbnB1dC5yZXF1aXJlZCx3LmFsdElucHV0LnRhYkluZGV4PXcuaW5wdXQudGFiSW5kZXgsdy5hbHRJbnB1dC50eXBlPSJ0ZXh0Iix3LmlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLCF3LmNvbmZpZy5zdGF0aWMmJncuaW5wdXQucGFyZW50Tm9kZSYmdy5pbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3LmFsdElucHV0LHcuaW5wdXQubmV4dFNpYmxpbmcpKTt3LmNvbmZpZy5hbGxvd0lucHV0fHx3Ll9pbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwicmVhZG9ubHkiKTt3Ll9wb3NpdGlvbkVsZW1lbnQ9dy5jb25maWcucG9zaXRpb25FbGVtZW50fHx3Ll9pbnB1dH0oKSxmdW5jdGlvbigpe3cuc2VsZWN0ZWREYXRlcz1bXSx3Lm5vdz13LnBhcnNlRGF0ZSh3LmNvbmZpZy5ub3cpfHxuZXcgRGF0ZTt2YXIgZT13LmNvbmZpZy5kZWZhdWx0RGF0ZXx8KCJJTlBVVCIhPT13LmlucHV0Lm5vZGVOYW1lJiYiVEVYVEFSRUEiIT09dy5pbnB1dC5ub2RlTmFtZXx8IXcuaW5wdXQucGxhY2Vob2xkZXJ8fHcuaW5wdXQudmFsdWUhPT13LmlucHV0LnBsYWNlaG9sZGVyP3cuaW5wdXQudmFsdWU6bnVsbCk7ZSYmbWUoZSx3LmNvbmZpZy5kYXRlRm9ybWF0KTt3Ll9pbml0aWFsRGF0ZT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjA\/dy5zZWxlY3RlZERhdGVzWzBdOncuY29uZmlnLm1pbkRhdGUmJncuY29uZmlnLm1pbkRhdGUuZ2V0VGltZSgpPncubm93LmdldFRpbWUoKT93LmNvbmZpZy5taW5EYXRlOncuY29uZmlnLm1heERhdGUmJncuY29uZmlnLm1heERhdGUuZ2V0VGltZSgpPHcubm93LmdldFRpbWUoKT93LmNvbmZpZy5tYXhEYXRlOncubm93LHcuY3VycmVudFllYXI9dy5faW5pdGlhbERhdGUuZ2V0RnVsbFllYXIoKSx3LmN1cnJlbnRNb250aD13Ll9pbml0aWFsRGF0ZS5nZXRNb250aCgpLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MCYmKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXcuc2VsZWN0ZWREYXRlc1swXSk7dm9pZCAwIT09dy5jb25maWcubWluVGltZSYmKHcuY29uZmlnLm1pblRpbWU9dy5wYXJzZURhdGUody5jb25maWcubWluVGltZSwiSDppIikpO3ZvaWQgMCE9PXcuY29uZmlnLm1heFRpbWUmJih3LmNvbmZpZy5tYXhUaW1lPXcucGFyc2VEYXRlKHcuY29uZmlnLm1heFRpbWUsIkg6aSIpKTt3Lm1pbkRhdGVIYXNUaW1lPSEhdy5jb25maWcubWluRGF0ZSYmKHcuY29uZmlnLm1pbkRhdGUuZ2V0SG91cnMoKT4wfHx3LmNvbmZpZy5taW5EYXRlLmdldE1pbnV0ZXMoKT4wfHx3LmNvbmZpZy5taW5EYXRlLmdldFNlY29uZHMoKT4wKSx3Lm1heERhdGVIYXNUaW1lPSEhdy5jb25maWcubWF4RGF0ZSYmKHcuY29uZmlnLm1heERhdGUuZ2V0SG91cnMoKT4wfHx3LmNvbmZpZy5tYXhEYXRlLmdldE1pbnV0ZXMoKT4wfHx3LmNvbmZpZy5tYXhEYXRlLmdldFNlY29uZHMoKT4wKX0oKSx3LnV0aWxzPXtnZXREYXlzSW5Nb250aDpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT1lJiYoZT13LmN1cnJlbnRNb250aCksdm9pZCAwPT09dCYmKHQ9dy5jdXJyZW50WWVhciksMT09PWUmJih0JTQ9PTAmJnQlMTAwIT0wfHx0JTQwMD09MCk\/Mjk6dy5sMTBuLmRheXNJbk1vbnRoW2VdfX0sdy5pc01vYmlsZXx8ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKHcuY2FsZW5kYXJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWNhbGVuZGFyIiksdy5jYWxlbmRhckNvbnRhaW5lci50YWJJbmRleD0tMSwhdy5jb25maWcubm9DYWxlbmRhcil7aWYoZS5hcHBlbmRDaGlsZCgody5tb250aE5hdj1zKCJkaXYiLCJmbGF0cGlja3ItbW9udGhzIiksdy55ZWFyRWxlbWVudHM9W10sdy5tb250aEVsZW1lbnRzPVtdLHcucHJldk1vbnRoTmF2PXMoInNwYW4iLCJmbGF0cGlja3ItcHJldi1tb250aCIpLHcucHJldk1vbnRoTmF2LmlubmVySFRNTD13LmNvbmZpZy5wcmV2QXJyb3csdy5uZXh0TW9udGhOYXY9cygic3BhbiIsImZsYXRwaWNrci1uZXh0LW1vbnRoIiksdy5uZXh0TW9udGhOYXYuaW5uZXJIVE1MPXcuY29uZmlnLm5leHRBcnJvdyxxKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsIl9oaWRlUHJldk1vbnRoQXJyb3ciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5fX2hpZGVQcmV2TW9udGhBcnJvd30sc2V0OmZ1bmN0aW9uKGUpe3cuX19oaWRlUHJldk1vbnRoQXJyb3chPT1lJiYoZCh3LnByZXZNb250aE5hdiwiZmxhdHBpY2tyLWRpc2FibGVkIixlKSx3Ll9faGlkZVByZXZNb250aEFycm93PWUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCJfaGlkZU5leHRNb250aEFycm93Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuX19oaWRlTmV4dE1vbnRoQXJyb3d9LHNldDpmdW5jdGlvbihlKXt3Ll9faGlkZU5leHRNb250aEFycm93IT09ZSYmKGQody5uZXh0TW9udGhOYXYsImZsYXRwaWNrci1kaXNhYmxlZCIsZSksdy5fX2hpZGVOZXh0TW9udGhBcnJvdz1lKX19KSx3LmN1cnJlbnRZZWFyRWxlbWVudD13LnllYXJFbGVtZW50c1swXSxEZSgpLHcubW9udGhOYXYpKSx3LmlubmVyQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci1pbm5lckNvbnRhaW5lciIpLHcuY29uZmlnLndlZWtOdW1iZXJzKXt2YXIgdD1mdW5jdGlvbigpe3cuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGFzV2Vla3MiKTt2YXIgZT1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla3dyYXBwZXIiKTtlLmFwcGVuZENoaWxkKHMoInNwYW4iLCJmbGF0cGlja3Itd2Vla2RheSIsdy5sMTBuLndlZWtBYmJyZXZpYXRpb24pKTt2YXIgdD1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla3MiKTtyZXR1cm4gZS5hcHBlbmRDaGlsZCh0KSx7d2Vla1dyYXBwZXI6ZSx3ZWVrTnVtYmVyczp0fX0oKSxuPXQud2Vla1dyYXBwZXIsYT10LndlZWtOdW1iZXJzO3cuaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQobiksdy53ZWVrTnVtYmVycz1hLHcud2Vla1dyYXBwZXI9bn13LnJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXJDb250YWluZXIiKSx3LnJDb250YWluZXIuYXBwZW5kQ2hpbGQoJCgpKSx3LmRheXNDb250YWluZXJ8fCh3LmRheXNDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWRheXMiKSx3LmRheXNDb250YWluZXIudGFiSW5kZXg9LTEpLEooKSx3LnJDb250YWluZXIuYXBwZW5kQ2hpbGQody5kYXlzQ29udGFpbmVyKSx3LmlubmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKHcuckNvbnRhaW5lciksZS5hcHBlbmRDaGlsZCh3LmlubmVyQ29udGFpbmVyKX13LmNvbmZpZy5lbmFibGVUaW1lJiZlLmFwcGVuZENoaWxkKGZ1bmN0aW9uKCl7dy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNUaW1lIiksdy5jb25maWcubm9DYWxlbmRhciYmdy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJub0NhbGVuZGFyIik7dmFyIGU9eCh3LmNvbmZpZyk7dy50aW1lQ29udGFpbmVyPXMoImRpdiIsImZsYXRwaWNrci10aW1lIiksdy50aW1lQ29udGFpbmVyLnRhYkluZGV4PS0xO3ZhciB0PXMoInNwYW4iLCJmbGF0cGlja3ItdGltZS1zZXBhcmF0b3IiLCI6Iiksbj1tKCJmbGF0cGlja3ItaG91ciIseyJhcmlhLWxhYmVsIjp3LmwxMG4uaG91ckFyaWFMYWJlbH0pO3cuaG91ckVsZW1lbnQ9bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTt2YXIgYT1tKCJmbGF0cGlja3ItbWludXRlIix7ImFyaWEtbGFiZWwiOncubDEwbi5taW51dGVBcmlhTGFiZWx9KTt3Lm1pbnV0ZUVsZW1lbnQ9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSx3LmhvdXJFbGVtZW50LnRhYkluZGV4PXcubWludXRlRWxlbWVudC50YWJJbmRleD0tMSx3LmhvdXJFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0SG91cnMoKTp3LmNvbmZpZy50aW1lXzI0aHI\/ZS5ob3VyczpmdW5jdGlvbihlKXtzd2l0Y2goZSUyNCl7Y2FzZSAwOmNhc2UgMTI6cmV0dXJuIDEyO2RlZmF1bHQ6cmV0dXJuIGUlMTJ9fShlLmhvdXJzKSksdy5taW51dGVFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0TWludXRlcygpOmUubWludXRlcyksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0ZXAiLHcuY29uZmlnLmhvdXJJbmNyZW1lbnQudG9TdHJpbmcoKSksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5jb25maWcubWludXRlSW5jcmVtZW50LnRvU3RyaW5nKCkpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLHcuY29uZmlnLnRpbWVfMjRocj8iMCI6IjEiKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4Iix3LmNvbmZpZy50aW1lXzI0aHI\/IjIzIjoiMTIiKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1pbiIsIjAiKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXgiLCI1OSIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heGxlbmd0aCIsIjIiKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQobiksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHQpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChhKSx3LmNvbmZpZy50aW1lXzI0aHImJncudGltZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJ0aW1lMjRociIpO2lmKHcuY29uZmlnLmVuYWJsZVNlY29uZHMpe3cudGltZUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNTZWNvbmRzIik7dmFyIGk9bSgiZmxhdHBpY2tyLXNlY29uZCIpO3cuc2Vjb25kRWxlbWVudD1pLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLHcuc2Vjb25kRWxlbWVudC52YWx1ZT1vKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLmdldFNlY29uZHMoKTplLnNlY29uZHMpLHcuc2Vjb25kRWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0ZXAiLHcubWludXRlRWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0ZXAiKSksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIiwiMCIpLHcuc2Vjb25kRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIjU5Iiksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChzKCJzcGFuIiwiZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yIiwiOiIpKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQoaSl9dy5jb25maWcudGltZV8yNGhyfHwody5hbVBNPXMoInNwYW4iLCJmbGF0cGlja3ItYW0tcG0iLHcubDEwbi5hbVBNW3IoKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqP3cuaG91ckVsZW1lbnQudmFsdWU6dy5jb25maWcuZGVmYXVsdEhvdXIpPjExKV0pLHcuYW1QTS50aXRsZT13LmwxMG4udG9nZ2xlVGl0bGUsdy5hbVBNLnRhYkluZGV4PS0xLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZCh3LmFtUE0pKTtyZXR1cm4gdy50aW1lQ29udGFpbmVyfSgpKTtkKHcuY2FsZW5kYXJDb250YWluZXIsInJhbmdlTW9kZSIsInJhbmdlIj09PXcuY29uZmlnLm1vZGUpLGQody5jYWxlbmRhckNvbnRhaW5lciwiYW5pbWF0ZSIsITA9PT13LmNvbmZpZy5hbmltYXRlKSxkKHcuY2FsZW5kYXJDb250YWluZXIsIm11bHRpTW9udGgiLHcuY29uZmlnLnNob3dNb250aHM+MSksdy5jYWxlbmRhckNvbnRhaW5lci5hcHBlbmRDaGlsZChlKTt2YXIgaT12b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbyYmdm9pZCAwIT09dy5jb25maWcuYXBwZW5kVG8ubm9kZVR5cGU7aWYoKHcuY29uZmlnLmlubGluZXx8dy5jb25maWcuc3RhdGljKSYmKHcuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCh3LmNvbmZpZy5pbmxpbmU\/ImlubGluZSI6InN0YXRpYyIpLHcuY29uZmlnLmlubGluZSYmKCFpJiZ3LmVsZW1lbnQucGFyZW50Tm9kZT93LmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUody5jYWxlbmRhckNvbnRhaW5lcix3Ll9pbnB1dC5uZXh0U2libGluZyk6dm9pZCAwIT09dy5jb25maWcuYXBwZW5kVG8mJncuY29uZmlnLmFwcGVuZFRvLmFwcGVuZENoaWxkKHcuY2FsZW5kYXJDb250YWluZXIpKSx3LmNvbmZpZy5zdGF0aWMpKXt2YXIgbD1zKCJkaXYiLCJmbGF0cGlja3Itd3JhcHBlciIpO3cuZWxlbWVudC5wYXJlbnROb2RlJiZ3LmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCx3LmVsZW1lbnQpLGwuYXBwZW5kQ2hpbGQody5lbGVtZW50KSx3LmFsdElucHV0JiZsLmFwcGVuZENoaWxkKHcuYWx0SW5wdXQpLGwuYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcil9dy5jb25maWcuc3RhdGljfHx3LmNvbmZpZy5pbmxpbmV8fCh2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbz93LmNvbmZpZy5hcHBlbmRUbzp3aW5kb3cuZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcil9KCksZnVuY3Rpb24oKXt3LmNvbmZpZy53cmFwJiZbIm9wZW4iLCJjbG9zZSIsInRvZ2dsZSIsImNsZWFyIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh3LmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtIitlKyJdIiksKGZ1bmN0aW9uKHQpe3JldHVybiBBKHQsImNsaWNrIix3W2VdKX0pKX0pKTtpZih3LmlzTW9iaWxlKXJldHVybiB2b2lkIGZ1bmN0aW9uKCl7dmFyIGU9dy5jb25maWcuZW5hYmxlVGltZT93LmNvbmZpZy5ub0NhbGVuZGFyPyJ0aW1lIjoiZGF0ZXRpbWUtbG9jYWwiOiJkYXRlIjt3Lm1vYmlsZUlucHV0PXMoImlucHV0Iix3LmlucHV0LmNsYXNzTmFtZSsiIGZsYXRwaWNrci1tb2JpbGUiKSx3Lm1vYmlsZUlucHV0LnRhYkluZGV4PTEsdy5tb2JpbGVJbnB1dC50eXBlPWUsdy5tb2JpbGVJbnB1dC5kaXNhYmxlZD13LmlucHV0LmRpc2FibGVkLHcubW9iaWxlSW5wdXQucmVxdWlyZWQ9dy5pbnB1dC5yZXF1aXJlZCx3Lm1vYmlsZUlucHV0LnBsYWNlaG9sZGVyPXcuaW5wdXQucGxhY2Vob2xkZXIsdy5tb2JpbGVGb3JtYXRTdHI9ImRhdGV0aW1lLWxvY2FsIj09PWU\/IlktbS1kXFxUSDppOlMiOiJkYXRlIj09PWU\/IlktbS1kIjoiSDppOlMiLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MCYmKHcubW9iaWxlSW5wdXQuZGVmYXVsdFZhbHVlPXcubW9iaWxlSW5wdXQudmFsdWU9dy5mb3JtYXREYXRlKHcuc2VsZWN0ZWREYXRlc1swXSx3Lm1vYmlsZUZvcm1hdFN0cikpO3cuY29uZmlnLm1pbkRhdGUmJih3Lm1vYmlsZUlucHV0Lm1pbj13LmZvcm1hdERhdGUody5jb25maWcubWluRGF0ZSwiWS1tLWQiKSk7dy5jb25maWcubWF4RGF0ZSYmKHcubW9iaWxlSW5wdXQubWF4PXcuZm9ybWF0RGF0ZSh3LmNvbmZpZy5tYXhEYXRlLCJZLW0tZCIpKTt3LmlucHV0LmdldEF0dHJpYnV0ZSgic3RlcCIpJiYody5tb2JpbGVJbnB1dC5zdGVwPVN0cmluZyh3LmlucHV0LmdldEF0dHJpYnV0ZSgic3RlcCIpKSk7dy5pbnB1dC50eXBlPSJoaWRkZW4iLHZvaWQgMCE9PXcuYWx0SW5wdXQmJih3LmFsdElucHV0LnR5cGU9ImhpZGRlbiIpO3RyeXt3LmlucHV0LnBhcmVudE5vZGUmJncuaW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUody5tb2JpbGVJbnB1dCx3LmlucHV0Lm5leHRTaWJsaW5nKX1jYXRjaChlKXt9QSh3Lm1vYmlsZUlucHV0LCJjaGFuZ2UiLChmdW5jdGlvbihlKXt3LnNldERhdGUoZyhlKS52YWx1ZSwhMSx3Lm1vYmlsZUZvcm1hdFN0cikscGUoIm9uQ2hhbmdlIikscGUoIm9uQ2xvc2UiKX0pKX0oKTt2YXIgZT1sKGllLDUwKTt3Ll9kZWJvdW5jZWRDaGFuZ2U9bChOLDMwMCksdy5kYXlzQ29udGFpbmVyJiYhL2lQaG9uZXxpUGFkfGlQb2QvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZBKHcuZGF5c0NvbnRhaW5lciwibW91c2VvdmVyIiwoZnVuY3Rpb24oZSl7InJhbmdlIj09PXcuY29uZmlnLm1vZGUmJmFlKGcoZSkpfSkpO0Eod2luZG93LmRvY3VtZW50LmJvZHksImtleWRvd24iLG5lKSx3LmNvbmZpZy5pbmxpbmV8fHcuY29uZmlnLnN0YXRpY3x8QSh3aW5kb3csInJlc2l6ZSIsZSk7dm9pZCAwIT09d2luZG93Lm9udG91Y2hzdGFydD9BKHdpbmRvdy5kb2N1bWVudCwidG91Y2hzdGFydCIsWik6QSh3aW5kb3cuZG9jdW1lbnQsIm1vdXNlZG93biIsWik7QSh3aW5kb3cuZG9jdW1lbnQsImZvY3VzIixaLHtjYXB0dXJlOiEwfSksITA9PT13LmNvbmZpZy5jbGlja09wZW5zJiYoQSh3Ll9pbnB1dCwiZm9jdXMiLHcub3BlbiksQSh3Ll9pbnB1dCwiY2xpY2siLHcub3BlbikpO3ZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKEEody5tb250aE5hdiwiY2xpY2siLENlKSxBKHcubW9udGhOYXYsWyJrZXl1cCIsImluY3JlbWVudCJdLEYpLEEody5kYXlzQ29udGFpbmVyLCJjbGljayIsdWUpKTtpZih2b2lkIDAhPT13LnRpbWVDb250YWluZXImJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCl7dmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGcoZSkuc2VsZWN0KCl9O0Eody50aW1lQ29udGFpbmVyLFsiaW5jcmVtZW50Il0sSSksQSh3LnRpbWVDb250YWluZXIsImJsdXIiLEkse2NhcHR1cmU6ITB9KSxBKHcudGltZUNvbnRhaW5lciwiY2xpY2siLFkpLEEoW3cuaG91ckVsZW1lbnQsdy5taW51dGVFbGVtZW50XSxbImZvY3VzIiwiY2xpY2siXSx0KSx2b2lkIDAhPT13LnNlY29uZEVsZW1lbnQmJkEody5zZWNvbmRFbGVtZW50LCJmb2N1cyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHcuc2Vjb25kRWxlbWVudCYmdy5zZWNvbmRFbGVtZW50LnNlbGVjdCgpfSkpLHZvaWQgMCE9PXcuYW1QTSYmQSh3LmFtUE0sImNsaWNrIiwoZnVuY3Rpb24oZSl7SShlKSxOKCl9KSl9dy5jb25maWcuYWxsb3dJbnB1dCYmQSh3Ll9pbnB1dCwiYmx1ciIsdGUpfSgpLCh3LnNlbGVjdGVkRGF0ZXMubGVuZ3RofHx3LmNvbmZpZy5ub0NhbGVuZGFyKSYmKHcuY29uZmlnLmVuYWJsZVRpbWUmJl8ody5jb25maWcubm9DYWxlbmRhcj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iajp2b2lkIDApLGJlKCExKSksaygpO3ZhciB0PS9eKCg\/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7IXcuaXNNb2JpbGUmJnQmJmNlKCkscGUoIm9uUmVhZHkiKX0oKSx3fWZ1bmN0aW9uIGsoZSx0KXtmb3IodmFyIG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fSkpLGE9W10saT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1uW2ldO3RyeXtpZihudWxsIT09by5nZXRBdHRyaWJ1dGUoImRhdGEtZnAtb21pdCIpKWNvbnRpbnVlO3ZvaWQgMCE9PW8uX2ZsYXRwaWNrciYmKG8uX2ZsYXRwaWNrci5kZXN0cm95KCksby5fZmxhdHBpY2tyPXZvaWQgMCksby5fZmxhdHBpY2tyPUUobyx0fHx7fSksYS5wdXNoKG8uX2ZsYXRwaWNrcil9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19cmV0dXJuIDE9PT1hLmxlbmd0aD9hWzBdOmF9InVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MRWxlbWVudCYmInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ29sbGVjdGlvbiYmInVuZGVmaW5lZCIhPXR5cGVvZiBOb2RlTGlzdCYmKEhUTUxDb2xsZWN0aW9uLnByb3RvdHlwZS5mbGF0cGlja3I9Tm9kZUxpc3QucHJvdG90eXBlLmZsYXRwaWNrcj1mdW5jdGlvbihlKXtyZXR1cm4gayh0aGlzLGUpfSxIVE1MRWxlbWVudC5wcm90b3R5cGUuZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKFt0aGlzXSxlKX0pO3ZhciBUPWZ1bmN0aW9uKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2sod2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSksdCk6ZSBpbnN0YW5jZW9mIE5vZGU\/ayhbZV0sdCk6ayhlLHQpfTtyZXR1cm4gVC5kZWZhdWx0Q29uZmlnPXt9LFQubDEwbnM9e2VuOmUoe30saSksZGVmYXVsdDplKHt9LGkpfSxULmxvY2FsaXplPWZ1bmN0aW9uKHQpe1QubDEwbnMuZGVmYXVsdD1lKGUoe30sVC5sMTBucy5kZWZhdWx0KSx0KX0sVC5zZXREZWZhdWx0cz1mdW5jdGlvbih0KXtULmRlZmF1bHRDb25maWc9ZShlKHt9LFQuZGVmYXVsdENvbmZpZyksdCl9LFQucGFyc2VEYXRlPUMoe30pLFQuZm9ybWF0RGF0ZT1iKHt9KSxULmNvbXBhcmVEYXRlcz1NLCJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiZ2b2lkIDAhPT1qUXVlcnkuZm4mJihqUXVlcnkuZm4uZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKHRoaXMsZSl9KSxEYXRlLnByb3RvdHlwZS5mcF9pbmNyPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksdGhpcy5nZXRNb250aCgpLHRoaXMuZ2V0RGF0ZSgpKygic3RyaW5nIj09dHlwZW9mIGU\/cGFyc2VJbnQoZSwxMCk6ZSkpfSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5mbGF0cGlja3I9VCksVH0pKTsKLyoqIC9qcy92YW5pbGxhanMvZmxhdHBpY2tyLmZyLmpzICoqLwp2YXIgX19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNToxNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDI0LTAxLTMxIDE0OjMyOjQ2IjsidXNlIHN0cmljdCI7X19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyMy0wMS0xMiAxMTo0MTo0NiI7InVzZSBzdHJpY3QiO19fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NTE6MzAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDIxLTEyLTIxIDEzOjMwOjUyIjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihiLGEpeyJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZHVsZT9hKGV4cG9ydHMpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImV4cG9ydHMiXSxhKTooYj0idW5kZWZpbmVkIiE9PXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6Ynx8c2VsZixhKGIuZnI9e30pKX0pKHRoaXMsZnVuY3Rpb24oYil7dmFyIGE9InVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZmxhdHBpY2tyP3dpbmRvdy5mbGF0cGlja3I6e2wxMG5zOnt9fSxjPXtmaXJzdERheU9mV2VlazoxLHdlZWtkYXlzOntzaG9ydGhhbmQ6ImRpbSBsdW4gbWFyIG1lciBqZXUgdmVuIHNhbSIuc3BsaXQoIiAiKSxsb25naGFuZDoiZGltYW5jaGUgbHVuZGkgbWFyZGkgbWVyY3JlZGkgamV1ZGkgdmVuZHJlZGkgc2FtZWRpIi5zcGxpdCgiICIpfSxtb250aHM6e3Nob3J0aGFuZDoiamFudiBmw6l2ciBtYXJzIGF2ciBtYWkganVpbiBqdWlsIGFvw7t0IHNlcHQgb2N0IG5vdiBkw6ljIi5zcGxpdCgiICIpLApsb25naGFuZDoiamFudmllciBmw6l2cmllciBtYXJzIGF2cmlsIG1haSBqdWluIGp1aWxsZXQgYW\/Du3Qgc2VwdGVtYnJlIG9jdG9icmUgbm92ZW1icmUgZMOpY2VtYnJlIi5zcGxpdCgiICIpfSxvcmRpbmFsOmZ1bmN0aW9uKGQpe3JldHVybiAxPGQ\/IiI6ImVyIn0scmFuZ2VTZXBhcmF0b3I6IiBhdSAiLHdlZWtBYmJyZXZpYXRpb246IlNlbSIsc2Nyb2xsVGl0bGU6IkTDqWZpbGVyIHBvdXIgYXVnbWVudGVyIGxhIHZhbGV1ciIsdG9nZ2xlVGl0bGU6IkNsaXF1ZXIgcG91ciBiYXNjdWxlciIsdGltZV8yNGhyOiEwfTthLmwxMG5zLmZyPWM7YT1hLmwxMG5zO2IuRnJlbmNoPWM7Yi5kZWZhdWx0PWE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSk7Ci8qKiAvanMvZnIubmV3Y2Fycy5pbmxpbmUuanMgKiovCnZhciBqc19kMmNfZ2V0X3ZhbD0oanNfZDJjX2dldF92YWx8fGZ1bmN0aW9uKGlkKXt0cnl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWx1ZTt9Y2F0Y2goZXgpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKWNvbnNvbGUubG9nKCJTeXN0ZW0gZmFpbGVkIHdoaWxlIHJldHJpZXZpbmcgcmVwbGFjZW1lbnQgdmFsdWU6ICIraWQsZXgpO3JldHVybicnO319KTt2YXIgaWRlbnRfNDg5NjQwNDljNTNjYjQyYzE2ZmVkMWU4ZGUwZDMzNjY7dHJ5e2Z1bmN0aW9uIE9wdGFub25XcmFwcGVyKCl7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOTU3NjdiOTVhODdkOWE1OWFlOWM3ZDRjMjlmODgyMjg7dHJ5eyhmdW5jdGlvbih3LGQscyxsLGkpe3dbbF09d1tsXXx8W107d1tsXS5wdXNoKHsnZ3RtLnN0YXJ0JzpuZXcgRGF0ZSgpLmdldFRpbWUoKSxldmVudDonZ3RtLmpzJ30pO3ZhciBmPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF0saj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic\/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zZXRBdHRyaWJ1dGVOb2RlKGQuY3JlYXRlQXR0cmlidXRlKCdkYXRhLW90LWlnbm9yZScpKTtqLnNyYz0naHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPScraStkbDtqLnNldEF0dHJpYnV0ZU5vZGUoZC5jcmVhdGVBdHRyaWJ1dGUoJ2RhdGEtb3QtaWdub3JlJykpO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaixmKTt9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2RhdGFMYXllcicsJ0dUTS1UN01LSzlDSCcpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfNTEwMWYyYzQ1Y2Q3OWU3MDE3MGVjNDMzZGMxMzBhMjk7dHJ5e0QyQVNDKHsidXNlckxhbmd1YWdlIjoiZnJlIiwicGFDb2RlIjoiWjk5OTkiLCJjbGllbnQiOiJraWEiLCJwYWdlSWQiOiJzaG93cm9vbSIsIm9lbUluZm8iOnsib2VtRGVhbGVyQ29kZSI6IiIsIjAiOiIiLCJvZW0iOiJDRVJUX1VTRUQiLCIxIjoiQ0VSVF9VU0VEIn0sImRlYWxlcl9uYW1lIjoiIiwiZm9ybU1hcCI6eyJBREZCdXJsaW5ndG9uX0NlbnRyZV8tX0VWX1RvdXJfLV9Ecml2ZWZlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgQnVybGluZ3RvbiBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gQnVybGluZ3RvbiBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZjYW1wYmVsbHJpdmVyY2Fycy5jYV8oRDJDX01lZGlhKV8tX0xlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FtcGJlbGxyaXZlcmNhcnMuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gVXNlZCAgIExvY19waHlzaWNhbD05MDAxNjEzXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FtcGJlbGxyaXZlcmNhcnMuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gVXNlZCAgIExvY19waHlzaWNhbD05MDAxNjEzXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfQXBwIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQXBwb2ludG1lbnQgcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X0NhciI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X09mZiI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfUERGIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1JlcSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfU2VyIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBbRmFjZWJvb2sgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBbRmFjZWJvb2sgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfVHJhIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1ZlaCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhXy1fT3JnYW5pYylfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtPcmdhbmljXSJ9LCJBREZkYW5pZWxwYXJlZG9kZ2UuY29tXyhwYXJfRDJDX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgZGFuaWVscGFyZWRvZGdlLmNvbSAocGFyIEQyQyBNZWRpYSkgLSBEMkMgTWVkaWEgLSBMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAgW0dvb2dsZSAtIE5ldWYtdmxhXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gZGFuaWVscGFyZWRvZGdlLmNvbSAocGFyIEQyQyBNZWRpYSkgLSBEMkMgTWVkaWEgLSBMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAgW0dvb2dsZSAtIE5ldWYtdmxhXSJ9LCJBREZkZW1vY3JtLmQyY21lZGlhLmNhXyhEMkNfTWVkaWFfLV9PcmdhIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgZGVtb2NybS5kMmNtZWRpYS5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGRlbW9jcm0uZDJjbWVkaWEuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkgW09yZ2FuaWNdIn0sIkFERk1vbl9zaXRlXy1fRDJDX01lZGlhXy1fTGVhZF86X0RlbWFuZGUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJyZBdGlsZGU7JmNvcHk7Y2hhbmdlIChTTVMpIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gTW9uIHNpdGUgLSBEMkMgTWVkaWEgLSBMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCcmQXRpbGRlOyZjb3B5O2NoYW5nZSAoU01TKSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX01lZGlhKV8tXyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gVXNlZC12bGEgICBMb2NfcGh5c2ljYWw9OTAwMTE0MV0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gVXNlZC12bGEgICBMb2NfcGh5c2ljYWw9OTAwMTE0MV0ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX01lZGlhKV9fLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgIC0gTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBbRmFjZWJvb2sgLSBVc2VkIFsgS2V5d29yZDogVXNlZCtUcnVja10gIExvY18iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgIC0gTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBbRmFjZWJvb2sgLSBVc2VkIFsgS2V5d29yZDogVXNlZCtUcnVja10gIExvY19wIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19fTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMThdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMThdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fXyhEMkNfTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tICAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMzNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tICAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMzNdIn0sIkFERnBhbGxhZGlub3N1YmFydS5jYV8ocGFyX0QyQ19NZWRpYV8tX08iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9zdWJhcnUuY2EgKHBhciBEMkMgTWVkaWEgLSBPcmdhbmljKSAtIEQyQyBNZWRpYSAtIExlYWQ6IFBERiBicm9jaHVyZSByZXF1ZXN0IFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vc3ViYXJ1LmNhIChwYXIgRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBEMkMgTWVkaWEgLSBMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCBbT3JnYW5pY10ifSwiQURGU2NhcmJvcm91Z2hfVG93bl9DZW50cmVfLV9FVl9Ub3VyXy1fRCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNjYXJib3JvdWdoIFRvd24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNjYXJib3JvdWdoIFRvd24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU2hlcndheV9HYXJkZW5zXy1fRVZfVG91cl8tX0RyaXZlZmVzdCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNoZXJ3YXkgR2FyZGVucyAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTaGVyd2F5IEdhcmRlbnMgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZTcXVhcmVfT25lXy1fRVZfVG91cl8tX0RyaXZlZmVzdF8rX0tpIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU3F1YXJlX09uZV8tX0VWX1RvdXJfLV9LaWFfU2lnbl9VcF9IbyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gS2lhIFNpZ24gVXAgSG90IExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIEtpYSBTaWduIFVwIEhvdCBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZVcHBlcl9DYW5hZGFfTWFsbF8tX0VWX1RvdXJfLV9Ecml2ZWZlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgVXBwZXIgQ2FuYWRhIE1hbGwgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gVXBwZXIgQ2FuYWRhIE1hbGwgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBdmFpbGFiaWxpdHlVc2VkIjp7IkZSRU5DSCI6IkxlYWQ6IERpc3BvbmliaWxpdGUgZCd1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSJ9LCJCYW5uZXJGb3JtIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgZm9ybSBiYW5uZXIiLCJFTkdMSVNIIjoiTGVhZDogQmFubmVyIEZvcm0gUmVxdWVzdCJ9LCJCZXN0UHJpY2VSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlICBtZWlsbGV1ciBwcml4ICh2ZWhpY3VsZSBuZXVmKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIGJlc3QgcHJpY2UgKG5ldyB2ZWhpY2xlKSJ9LCJCb2R5U2hvcCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBlbiBjYXJvc3NlcmllIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgYm9keSBzaG9wIGFwcG9pbnRtZW50IHJlcXVlc3QifSwiQnJvY2h1cmVzIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGJyb2NodXJlIiwiRU5HTElTSCI6IkxlYWQgOiBCcm9jaHVyZSByZXF1ZXN0In0sIkJyb2NodXJlc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgYnJvY2h1cmUiLCJFTkdMSVNIIjoiTGVhZCA6IEJyb2NodXJlIHJlcXVlc3QifSwiQnVpbGRBbmRQcmljZV9TYXZlIjp7IkZSRU5DSCI6IkxlYWQ6IENvbmZpZ3VyYXRpb24gZCd1biB2ZWhpY3VsZSBuZXVmIiwiRU5HTElTSCI6IkxlYWQ6IE5ldyBWZWhpY2xlIENvbmZpZ3VyYXRpb24gKEJ1aWxkICYgUHJpY2UpIn0sIkJ1aWxkQW5kUHJpY2VfU3RvY2siOnsiRlJFTkNIIjoiTGVhZDogRGlzcG9uaWJpbGl0ZSBkJ3VuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5In0sIkNhcnByb29mTWFpbCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBDYXJGYXgiLCJFTkdMSVNIIjoiTGVhZDogQ2FyRmF4IHJlcXVlc3QifSwiQ29udGFjdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0In0sIkNvbnRhY3RVc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0In0sIkNvbnRhY3RWaXNpdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBWZW50ZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFNhbGVzIn0sIkNvbnRhY3RWaXNpdFJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBWZW50ZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBjb250YWN0IFNhbGVzIn0sIkNyZWRpdEJvb3N0TXVsdGkiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBwcmVxdWFsaWZpY2F0aW9uIGRlIGNyZWRpdCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBDcmVkaXQgUHJlLVF1YWxpZmljYXRpb24ifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1c2lldXJzIGV0YXBlcykiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIn0sIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXNpZXVycyBldGFwZXMgMmUgY2hhbmNlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bGlzdGVwIDJuZCBjaGFuY2UpIn0sIkNyZWRpdE11bHRpc3RlcFJlcXVlc3RJbnN0YW50Ijp7IkZSRU5DSCI6IkxlYWQ6IEFwcHJvYmF0aW9uIGRlIGNyZWRpdCBpbnN0YW50YW5lZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IENyZWRpdCBBcHByb3ZhbCJ9LCJDcmVkaXRSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyJ9LCJDcmVkaXRSZXF1ZXN0TW9iaWxlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyJ9LCJDcmVkaXRSZXF1ZXN0TW9iaWxlRnVsbCI6eyJGUkVOQ0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmciLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RfU2hvcnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKHZlcnNpb24gY291cnRlKSIsIkVOR0xJU0giOiJMZWFkIDogQ3JlZGl0IGFwcGxpY2F0aW9uIChzaG9ydCB2ZXJzaW9uKSJ9LCJEZWFsZXJBcHBvaW50bWVudCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyIsIkVOR0xJU0giOiJMZWFkOiBBcHBvaW50bWVudCByZXF1ZXN0In0sIkRpc2NvdmVyT2ZmZXIiOnsiRlJFTkNIIjoiTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIiwiRU5HTElTSCI6IkxlYWQ6IFNlZSBPZmZlciBDb3Vwb24gaW4gU1JQIn0sIkVzdGhldGljUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGEgbCdlc3RoZXRxdWUgZXQgbGF2ZS1hdXRvIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgZXN0aGV0aWMgYW5kIGNhciB3YXNoIGFwcG9pbnRtZW50IHJlcXVlc3QifSwiZmFjZWJvb2tDb25uZWN0Ijp7IkZSRU5DSCI6IkxlYWQ6IFJhYmFpcyBGYWNlYm9vayIsIkVOR0xJU0giOiJMZWFkOiBGYWNlYm9vayBSZWJhdGUifSwiRmluZFZlaGljbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVjaGVyY2hlIGRlIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgdG8gZmluZCBhIHByZS1vd25lZCB2ZWhpY2xlIn0sImhlYWRlclNlcnZpY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBFeHByZXNzIn0sIk1ha2VPZmZlciI6eyJGUkVOQ0giOiJMZWFkIDogT2ZmcmUgZCdhY2hhdCBzdXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIn0sIk1ha2VPZmZlck5ldyI6eyJGUkVOQ0giOiJMZWFkIDogT2ZmcmUgZCdhY2hhdCBzdXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIn0sIm1lbnVTZXJ2aWNlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgRXhwcmVzcyJ9LCJNb250aGx5UGF5bWVudHMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIn0sIk1vbnRobHlQYXltZW50c19ORVciOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIn0sIk1vbnRobHlQYXltZW50c19TTVMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyAtIFNNUyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIC0gU01TIn0sIk1vbnRobHlQYXltZW50c19TTVNfTkVXIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMgLSBTTVMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyAtIFNNUyJ9LCJQYXJ0c1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29tbWFuZGUgcGkmZWdyYXZlO2NlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIHZlaGljbGUgcGFydHMifSwiUGhvdG9SZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcGhvdG9zIiwiRU5HTElTSCI6IkxlYWQ6IFBob3RvIHJlcXVlc3QifSwiUG9wVXBJbnN0YW50UmViYXRlIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGUzIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGVBQSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIFJhYmFpcyBJbnN0YW50YW5lIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgUmViYXRlIHJlcXVlc3QifSwiUHJpY2VSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHByaXgiLCJFTkdMSVNIIjoiTGVhZDogUHJpY2UgcmVxdWVzdCJ9LCJQcmljZVJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcHJpeCIsIkVOR0xJU0giOiJMZWFkOiBQcmljZSByZXF1ZXN0In0sIlByaWNlVmVoaWNsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCdlY2hhbmdlIiwiRU5HTElTSCI6IkxlYWQ6IFRyYWRlLWluIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlQWNjdXRyYWRlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZCA6IExlYWQ6IFRyYWRlLWluIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJRdWlja0VtYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogRXhwcmVzcyByZXF1ZXN0In0sIlF1aWNrRW1haWxOZXdJbnZlbnRvcnkiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgRXhwcmVzcyAoaW52ZW50YWlyZSBuZXVmKSIsIkVOR0xJU0giOiJMZWFkOiBFeHByZXNzIHJlcXVlc3QgKG5ldyBpbnZlbnRvcnkpIn0sIlJlYmF0ZUNvdXBvbiI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzICh2ZWhpY3VsZSBlbiBpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSJ9LCJSZWJhdGVDb3Vwb25JbnZlbnRvcnkiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoaW52ZW50YWlyZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkpIn0sIlJlYmF0ZUNvdXBvbk5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiJ9LCJSZWJhdGVDb3Vwb25OZXdCTlAiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY29uZmlndXJhdGV1cikiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChjb25maWd1cmF0b3IpIn0sIlJlYmF0ZUNvdXBvbk5ld0ludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSkifSwiUmViYXRlQ291cG9uTmV3U2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmViYXRlQ291cG9uUHJvbW8iOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChib3V0b24gJ1Byb21vdGlvbnMnKSIsIkVOR0xJU0giOiJMZWFkOiBSZWJhdGUgQ291cG9uIHJlcXVlc3QgKCdQcm9tb3Rpb25zJyBidXR0b24pIn0sIlJlYmF0ZUNvdXBvblNsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlYmF0ZUNvdXBvblVzZWRTbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWNhbGxzIjp7IkZSRU5DSCI6IkRlbWFuZGUgZCdpbmZvcm1hdGlvbiBzdXIgbGVzIHJhcHBlbHMiLCJFTkdMSVNIIjoiUmVjYWxsIGluZm9ybWF0aW9uIHJlcXVlc3QifSwiUmVzZXJ2ZUl0Tm93Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIHBvdXIgcmVzZXJ2ZXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gcHJlLW9yZGVyIGEgdmVoaWNsZSJ9LCJSZXNlcnZlSXROb3dOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgcG91ciByZXNlcnZlciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBwcmUtb3JkZXIgYSB2ZWhpY2xlIn0sIlNlbGxDYXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgVmVuZGV6IFZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIGJ1eSB5b3VyIGNhciJ9LCJTZWxsQ2FyX1Nob3J0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIFZlbmRlei1ub3VzIHZvdHJlIHZlaGljdWxlICh2ZXJzaW9uIGNvdXJ0ZSkiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gYnV5IHlvdXIgY2FyIChTaG9ydCB2ZXJzaW9uKSJ9LCJTZXJ2aWNlUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJTTVNMZWFkIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgU01TIChUZXh0bykiLCJFTkdMSVNIIjoiTGVhZDogU01TIHJlcXVlc3QifSwiU01TTGVhZF9vbGQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgU01TIChUZXh0bykiLCJFTkdMSVNIIjoiTGVhZCA6IFNNUyByZXF1ZXN0In0sIlNwZWNzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGZpY2hlIFBERiAtIFZlaGljdWxlIGVuIGludmVudGFpcmUiLCJFTkdMSVNIIjoiTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSJ9LCJTcGVjc1JlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBicm9jaHVyZSBQREYiLCJFTkdMSVNIIjoiTGVhZDogUERGIGJyb2NodXJlIHJlcXVlc3QifSwiU1JQQ29udGFjdFVzIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QgU1JQIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IGZvciBjb250YWN0IFNSUCJ9LCJUZXN0RHJpdmUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdlc3NhaSByb3V0aWVyIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgdGVzdCBkcml2ZSJ9LCJUZXN0RHJpdmVOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdlc3NhaSByb3V0aWVyIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgdGVzdCBkcml2ZSJ9LCJUaXJlc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcG5ldXMiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgdGlyZXMifSwiUHJvbW9NYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGQnaW52aXRhdGlvbiBhIGxhIHZlbnRlIHByaXZlZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBpbnZpdGF0aW9uIHRvIHByaXZhdGUgc2FsZSJ9LCJTbGlkZVdpZGdldEZvcm0iOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9LCJDb21wYXJlRm9ybSI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sIlNlYXJjaEZpbHRlcnMiOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9LCJoZWFkZXJHbG9iYWxTZWFyY2giOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9fSwic3ViX2dhNCI6IlkifSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9mNzNmYTZhYmJmYjRiYWIzZjQ5ZGFhZmIzODkxZTI3Zjt0cnl7KGZ1bmN0aW9uKHcsZCx0LHIsdSl7dmFyIGYsbixpO3dbdV09d1t1XXx8W10sZj1mdW5jdGlvbigpe3ZhciBvPXt0aToiNTA3OTM5MSIsZW5hYmxlQXV0b1NwYVRyYWNraW5nOnRydWV9O28ucT13W3VdLHdbdV09bmV3IFVFVChvKSx3W3VdLnB1c2goInBhZ2VMb2FkIil9LG49ZC5jcmVhdGVFbGVtZW50KHQpLG4uc3JjPXIsbi5hc3luYz0xLG4uc2V0QXR0cmlidXRlKCJkYXRhLW90LWlnbm9yZSIsdHJ1ZSksbi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKSxuLm9ubG9hZD1uLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3ZhciBzPXRoaXMucmVhZHlTdGF0ZTtzJiZzIT09ImxvYWRlZCImJnMhPT0iY29tcGxldGUifHwoZigpLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPW51bGwpfSxpPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodClbMF0saS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGkpfSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCIvL2JhdC5iaW5nLmNvbS9iYXQuanMiLCJ1ZXRxIik7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF82MDA1NzEwZDI5Mzk1ODlmMGRjNzBhM2YwNjNmM2E0ODt0cnl7dmFyIGRlcGxveW1lbnRUeXBlPScnK2pzX2QyY19nZXRfdmFsKCIyZWpoYmMweXlvZzB3d3ciKSsnJztpZihkZXBsb3ltZW50VHlwZT09J2xpdmUnKXtnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ1BhZ2VzIHZ1ZXMnLCdTZWN0aW9uLU5ldWYnLCcnLDEpO31lbHNlIGlmKGRlcGxveW1lbnRUeXBlPT0nc3RhZ2luZycpe2dhVHJhY2soJ2IuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q3NWI3NjgyODY4NDgwMWUyNjZkYmNiYjNjODEyMDU1O3RyeXskKGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyOm5vdCgubm90cmlnZ2VyKScpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuc2hvdygpO30pLm9uKCdtb3VzZWxlYXZlJyxmdW5jdGlvbigpeyQoJy5leHRlbmRlZFBob25lVHJpZ2dlciArIC5leHRlbmRlZFBob25lJykuaGlkZSgpO30pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMTUyNzY5YTBlMGM5ZGIzZDdlN2E4NGVkYjQxOGRlMGQ7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkJlZm9yZU9wZW4iOmZ1bmN0aW9uKCl7dHJhZGVpbnBvcHVwZDJjLm9uQmVmb3JlT3BlbigpO30sIm9uQmVmb3Jlc3VibWl0IjpmdW5jdGlvbihwb3B1cCl7cmV0dXJuIHRyYWRlaW5wb3B1cGQyYy5vbkJlZm9yZVN1Ym1pdChwb3B1cCk7fSwib25BZnRlcnN1Ym1pdCI6ZnVuY3Rpb24ocG9wdXApe3RyYWRlaW5wb3B1cGQyYy5vbkFmdGVyU3VibWl0KHBvcHVwKTtDb29raWVzLnNldCgncG9wdXBGb3JtRmlsbGVkJyxudWxsLG51bGwsJy8nKTtDb29raWVzLnNldCgndHJhZGVJblBvcHVwU2hvd24nLG51bGwsbnVsbCwnLycpO2lmKCQoJyN0cmFkZUluQmFyJykubGVuZ3RoKXskKCcjdHJhZGVJbkJhcicpLmhpZGUoKTt9CmlmKCQoJyN0cmFkZWluQmFyRmxvYXQnKS5sZW5ndGgpeyQoJyN0cmFkZWluQmFyRmxvYXQnKS5oaWRlKCk7fX0sIm9uQmVmb3JlVmFsaWRhdGlvbiI6ZnVuY3Rpb24ocG9wdXApe3JldHVybiB0cmFkZWlucG9wdXBkMmMub25CZWZvcmVWYWxpZGF0aW9uKHBvcHVwKTt9LCJvbkJlZm9yZUNsb3NlIjpmdW5jdGlvbihwb3B1cCl7Q29va2llcy5nZXQoJ3RyYWRlSW5Qb3B1cFNob3duJyxudWxsLG51bGwsJy8nKTskKCcjdHJhZGVJbkJhclBvcHVwU3VibWl0JykucHJvcCgnZGlzYWJsZWQnLGZhbHNlKTskKCcjdHJhZGVJbkJhclBvcHVwU3VibWl0Jykuc2hvdygpO3RyYWRlaW5wb3B1cGQyYy5pbml0VHJhZGVJblN0ZXAxKCk7JCgnaW5wdXRbbmFtZT1zdGVwM2RvbmVdJykudmFsKDApOyQoJyNsZWFkU2VudCcpLnJlbW92ZSgpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCcpLmhpZGUoKTt9LCJvbkJlZm9yZUluaXRpYWxpemUiOmZ1bmN0aW9uKHBvcHVwKXtwb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUbz1wb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUbztwb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERj1wb3B1cC5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERjt9LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7dHJhZGVJbkJhckluaXRpYWxpemUoKTt0cmFkZWlucG9wdXBkMmMuaW5pdCgpO3dpbmRvdy5sYXVuY2hUcmFkZUluUG9wdXA9ZnVuY3Rpb24oc291cmNlKXt2YXIgcD0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoe3BvcHVwRXZlbnRTb3VyY2U6c291cmNlfSk7aWYoc291cmNlIT0iYXV0b21hdGljIil7cC5zZXRUcmlnZ2VyKCJjbGljayIpO30KcC5vcGVuKCk7cmV0dXJuIGZhbHNlO30KaWYodHlwZW9mIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIT0idW5kZWZpbmVkIil7dmFyIHBvcHVwVHlwZT0idXNlZCI7dmFyIGN1cnJlbnRQYWdlPSIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiI7dmFyIHRtcD1wb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSgidXNlZCIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCJ0cmFkZUluQmFyUG9wdXAiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsIlRyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIsZmFsc2UpO3JldHVybiB0bXA7fX0sIm9uQmVmb3JlU2VuZE1haWwiOmZ1bmN0aW9uKHBvcHVwKXtpZignJz09Jycpe2lmKGVtYWlsSGFuZGxlci5nZXREZXAoKT09J05FVycpe2VtYWlsSGFuZGxlci5zZW5kVG89J2NlZWUxNjk0MjM0YWFkZGEwZTI5NzU0ZDE3YmQ3YzdkfDM3MzM3MTgyNzgnO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9JzNhNzgzZTk1MzNmYTcyM2RlZmViOGY0NWFkNjhhNDY0fDM3MzM3MTgyNzgnO2VtYWlsSGFuZGxlci5zZW5kVG9BREY9JzNhNzgzZTk1MzNmYTcyM2RlZmViOGY0NWFkNjhhNDY0fDM3MzM3MTgyNzgnO31lbHNle2VtYWlsSGFuZGxlci5zZW5kVG89JycranNfZDJjX2dldF92YWwoIjNwbTZ0dmdxcWVndzR3IikrJyc7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD0nJytqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrJyc7ZW1haWxIYW5kbGVyLnNlbmRUb0FERj0nJytqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrJyc7fX0KaWYoZW1haWxIYW5kbGVyLmdldERlcCgpPT0nTkVXJyl7ZW1haWxIYW5kbGVyLm1haWxJRD0ncHJpY2V2ZWhpY2xlbmV3Jzt9ZWxzZXtlbWFpbEhhbmRsZXIubWFpbElEPSdwcmljZXZlaGljbGUnO319LCJvbkFmdGVyQ29uc2VudCI6ZnVuY3Rpb24ocG9wdXApeyQoJyN0cmFkZUluQmFyUG9wdXBTdWJtaXQnKS5wcm9wKCdkaXNhYmxlZCcsZmFsc2UpOyQoJyN0cmFkZUluQmFyUG9wdXBTdWJtaXQnKS5zaG93KCk7fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoidHJhZGVJblBvcHVwU2hvd24iLCJjb29raWVDcmVhdGUiOiJvblN1Ym1pdCIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiUHJpY2VWZWhpY2xlIiwib2ZmZXJ0eXBlIjoidHJhZGVJbkJhclBvcHVwIiwibmFtZSI6bnVsbCwic2VuZFRvIjoiIitqc19kMmNfZ2V0X3ZhbCgiM3BtNnR2Z3FxZWd3NHciKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgicmQ1cDhzNGg2cjRzMGNrIikrIiIsIk9LQnV0dG9uQ2xhc3MiOiJ0cmFkZUluQmFyUG9wdXBTdWJtaXQiLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOmZhbHNlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOmZhbHNlLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsImNvdW50ZG93biI6MTc3MzQ2MDgwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9lMjVkNmNmYWIzOTI3ZDc4ZDllMmY1YTJlMzQ3NjAxNjt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfNzNhNmI0MjNmMGQxNDcwMTc4MTAzYjRiMzIwY2MwOWI7dHJ5e3ZhciBmb290ZXJNYXBBZGRyZXNzZXM9W107dmFyIGluZm9XaW5kb3dWYWw9IjxpbWcgYWx0PSdMb2dvIGRlIEtpYSBWYWwtQiZlYWN1dGU7bGFpcicgc3JjPScvaW1hZ2VzL01VTFRJX0xPQ0FUSU9OX0lNQUdFL2tpYXZhbGJlbGFpci1sb2dvLnBuZycgc3R5bGU9J21heC13aWR0aDoxNTBweDsgcGFkZGluZzoxMHB4IDA7JyAvPiA8ZGl2IHN0eWxlPSdjb2xvcjogYmxhY2s7Jz5LaWEgVmFsLUImZWFjdXRlO2xhaXI8YnI+MTkyMCBSdWUgZGUgbCdJbnRlcmx1ZGUsIFF1JmVhY3V0ZTtiZWMgUUMsIEczSyAwUjY8L2Rpdj4iO3ZhciBwaG9uZT0iNDE4IDY2MC0yOTI5IjtpbmZvV2luZG93VmFsKz0iPHNwYW4gc3R5bGU9J2NvbG9yOmJsYWNrJz4iK3Bob25lKyI8L3NwYW4+PC9kaXY+Ijtmb290ZXJNYXBBZGRyZXNzZXMucHVzaCh7J2RlYWxlcklkJzoiMjE5MSIsJ2FkZHJlc3MnOiIxOTIwIFJ1ZSBkZSBsJ0ludGVybHVkZSwgUXU\/YmVjIFFDIiwnaW5mb3dpbmRvdyc6aW5mb1dpbmRvd1ZhbCwnbWFya2VyUGluJzoiIiwndGl0bGUnOiJLaWEgVmFsLUImZWFjdXRlO2xhaXIiLCdzYWZlVGl0bGUnOiJLaWEgVmFsLUI\/bGFpcjMiLCdvcGVuaW5nSG91cnMnOiIgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtleHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiZxdW90OyBzdHlsZT0mcXVvdDtkaXNwbGF5Om5vbmU7JnF1b3Q7Jmd0OyAgICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ZmEgZmEtY2xvY2smcXVvdDsgYXJpYS1oaWRkZW49JnF1b3Q7dHJ1ZSZxdW90OyZndDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gc3R5bGU9JnF1b3Q7cGFkZGluZy1sZWZ0OjEwcHg7JnF1b3Q7Jmd0O1ZlbnRlcyZsdDsvc3BhbiZndDsgICAgICZsdDt0YWJsZSB3aWR0aD0mcXVvdDsxMDAlJnF1b3Q7Jmd0OyAgICAgICZsdDt0Ym9keSZndDsgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtMdW5kaSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0OzA5OjAwIC0gMjA6MDAmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgICZsdDt0ciZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7TWFyZGkmbHQ7L3RkJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDswOTowMCAtIDIwOjAwJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyAgICAgICAmbHQ7dHImZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0O01lcmNyZWRpJmx0Oy90ZCZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7MDk6MDAgLSAyMDowMCZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtKZXVkaSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0OzA5OjAwIC0gMjA6MDAmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgICZsdDt0ciZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7VmVuZHJlZGkmbHQ7L3RkJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDswOTowMCAtIDE4OjAwJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyAgICAgICAmbHQ7dHImZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0O1NhbWVkaSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0OzEwOjAwIC0gMTU6MDAmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgICZsdDt0ciZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7RGltYW5jaGUmbHQ7L3RkJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtFbiBsaWduZSBzZXVsZW1lbnQmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgJmx0Oy90Ym9keSZndDsgICAgICZsdDsvdGFibGUmZ3Q7ICAgICZsdDsvZGl2Jmd0OyIsJ2ljb24nOiIiLCdnZW9tZXRyeSc6eydsb2NhdGlvbic6eydsYXQnOiI0Ni44NjAyNDI0IiwnbG5nJzoiLTcxLjQwODM0MDUifX19KTt2YXIgaW5mb1dpbmRvd1ZhbD0iPGltZyBhbHQ9J0xvZ28gZGUgS2lhIFN0ZS1Gb3knIHNyYz0nL2ltYWdlcy9NVUxUSV9MT0NBVElPTl9JTUFHRS9LaWEtU3RlLUZveS1Mb2dvLnBuZycgc3R5bGU9J21heC13aWR0aDoxNTBweDsgcGFkZGluZzoxMHB4IDA7JyAvPiA8ZGl2IHN0eWxlPSdjb2xvcjogYmxhY2s7Jz5LaWEgU3RlLUZveTxicj4xNjAwLCBydWUgQ3lyaWxsZSBEdXF1ZXQsIFF1JmVhY3V0ZTtiZWMgUUMsIEcxTiAyRTU8L2Rpdj4iO3ZhciBwaG9uZT0iNDE4IDY1NC0yOTI5IjtpbmZvV2luZG93VmFsKz0iPHNwYW4gc3R5bGU9J2NvbG9yOmJsYWNrJz4iK3Bob25lKyI8L3NwYW4+PC9kaXY+Ijtmb290ZXJNYXBBZGRyZXNzZXMucHVzaCh7J2RlYWxlcklkJzoiMjE4NSIsJ2FkZHJlc3MnOiIxNjAwLCBydWUgQ3lyaWxsZSBEdXF1ZXQsIFF1P2JlYyBRQyIsJ2luZm93aW5kb3cnOmluZm9XaW5kb3dWYWwsJ21hcmtlclBpbic6IiIsJ3RpdGxlJzoiS2lhIFN0ZS1Gb3kiLCdzYWZlVGl0bGUnOiJLaWEgU3RlLUZveTIiLCdvcGVuaW5nSG91cnMnOiIgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtleHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiZxdW90OyBzdHlsZT0mcXVvdDtkaXNwbGF5Om5vbmU7JnF1b3Q7Jmd0OyAgICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ZmEgZmEtY2xvY2smcXVvdDsgYXJpYS1oaWRkZW49JnF1b3Q7dHJ1ZSZxdW90OyZndDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gc3R5bGU9JnF1b3Q7cGFkZGluZy1sZWZ0OjEwcHg7JnF1b3Q7Jmd0O1ZlbnRlcyZsdDsvc3BhbiZndDsgICAgICZsdDt0YWJsZSB3aWR0aD0mcXVvdDsxMDAlJnF1b3Q7Jmd0OyAgICAgICZsdDt0Ym9keSZndDsgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtMdW5kaSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0OzA5OjAwIC0gMjA6MDAmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgICZsdDt0ciZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7TWFyZGkmbHQ7L3RkJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDswOTowMCAtIDIwOjAwJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyAgICAgICAmbHQ7dHImZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0O01lcmNyZWRpJmx0Oy90ZCZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7MDk6MDAgLSAyMDowMCZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtKZXVkaSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0OzA5OjAwIC0gMjA6MDAmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgICZsdDt0ciZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7VmVuZHJlZGkmbHQ7L3RkJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDswOTowMCAtIDE4OjAwJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyAgICAgICAmbHQ7dHImZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0O1NhbWVkaSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0OzEwOjAwIC0gMTU6MDAmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgICZsdDt0ciZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7RGltYW5jaGUmbHQ7L3RkJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtFbiBsaWduZSBzZXVsZW1lbnQmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgJmx0Oy90Ym9keSZndDsgICAgICZsdDsvdGFibGUmZ3Q7ICAgICZsdDsvZGl2Jmd0OyIsJ2ljb24nOiIiLCdnZW9tZXRyeSc6eydsb2NhdGlvbic6eydsYXQnOiI0Ni43OTY3ODczIiwnbG5nJzoiLTcxLjI2NTQ2OTUifX19KTt2YXIgaW5mb1dpbmRvd1ZhbD0iPGltZyBhbHQ9J0xvZ28gZGUgS2lhIFF1JmVhY3V0ZTtiZWMnIHNyYz0nL2ltYWdlcy9NVUxUSV9MT0NBVElPTl9JTUFHRS9LaWEtUXVlYmVjLUxvZ28ucG5nJyBzdHlsZT0nbWF4LXdpZHRoOjE1MHB4OyBwYWRkaW5nOjEwcHggMDsnIC8+IDxkaXYgc3R5bGU9J2NvbG9yOiBibGFjazsnPktpYSBRdSZlYWN1dGU7YmVjPGJyPjg1NSBSdWUgZHUgTWFyYWlzLCBRdSZlYWN1dGU7YmVjIFFDLCBHMU0gM1I3PC9kaXY+Ijt2YXIgcGhvbmU9IjQxOCA2MjYtODYwMCI7aW5mb1dpbmRvd1ZhbCs9IjxzcGFuIHN0eWxlPSdjb2xvcjpibGFjayc+IitwaG9uZSsiPC9zcGFuPjwvZGl2PiI7Zm9vdGVyTWFwQWRkcmVzc2VzLnB1c2goeydkZWFsZXJJZCc6IjE1MDIiLCdhZGRyZXNzJzoiODU1IFJ1ZSBkdSBNYXJhaXMsIFF1P2JlYyBRQyIsJ2luZm93aW5kb3cnOmluZm9XaW5kb3dWYWwsJ21hcmtlclBpbic6IiIsJ3RpdGxlJzoiS2lhIFF1JmVhY3V0ZTtiZWMiLCdzYWZlVGl0bGUnOiJLaWEgUXU\/YmVjMSIsJ29wZW5pbmdIb3Vycyc6IiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2V4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uJnF1b3Q7IHN0eWxlPSZxdW90O2Rpc3BsYXk6bm9uZTsmcXVvdDsmZ3Q7ICAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmYSBmYS1jbG9jayZxdW90OyBhcmlhLWhpZGRlbj0mcXVvdDt0cnVlJnF1b3Q7Jmd0OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBzdHlsZT0mcXVvdDtwYWRkaW5nLWxlZnQ6MTBweDsmcXVvdDsmZ3Q7VmVudGVzJmx0Oy9zcGFuJmd0OyAgICAgJmx0O3RhYmxlIHdpZHRoPSZxdW90OzEwMCUmcXVvdDsmZ3Q7ICAgICAgJmx0O3Rib2R5Jmd0OyAgICAgICAmbHQ7dHImZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0O0x1bmRpJmx0Oy90ZCZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7MDk6MDAgLSAyMDowMCZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtNYXJkaSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0OzA5OjAwIC0gMjA6MDAmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgICZsdDt0ciZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7TWVyY3JlZGkmbHQ7L3RkJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDswOTowMCAtIDIwOjAwJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyAgICAgICAmbHQ7dHImZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0O0pldWRpJmx0Oy90ZCZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7MDk6MDAgLSAyMDowMCZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtWZW5kcmVkaSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0OzA5OjAwIC0gMTg6MDAmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7ICAgICAgICZsdDt0ciZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7U2FtZWRpJmx0Oy90ZCZndDsmbHQ7dGQgc3R5bGU9JiMwMzk7d2lkdGg6IDUwJTsmIzAzOTsmZ3Q7MTA6MDAgLSAxNTowMCZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCBzdHlsZT0mIzAzOTt3aWR0aDogNTAlOyYjMDM5OyZndDtEaW1hbmNoZSZsdDsvdGQmZ3Q7Jmx0O3RkIHN0eWxlPSYjMDM5O3dpZHRoOiA1MCU7JiMwMzk7Jmd0O0Zlcm0mZWFjdXRlOyZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsgICAgICAmbHQ7L3Rib2R5Jmd0OyAgICAgJmx0Oy90YWJsZSZndDsgICAgJmx0Oy9kaXYmZ3Q7IiwnaWNvbic6IiIsJ2dlb21ldHJ5Jzp7J2xvY2F0aW9uJzp7J2xhdCc6IjQ2LjgyNTk4NzUiLCdsbmcnOiItNzEuMjg4NTA3MyJ9fX0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZDc1Yjc2ODI4Njg0ODAxZTI2NmRiY2JiM2M4MTIwNTU7dHJ5eyQoZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXI6bm90KC5ub3RyaWdnZXIpJykub24oJ21vdXNlZW50ZXInLGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyICsgLmV4dGVuZGVkUGhvbmUnKS5zaG93KCk7fSkub24oJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyICsgLmV4dGVuZGVkUGhvbmUnKS5oaWRlKCk7fSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF83YzNmNDg1MzAzMzI2ZTI1M2RjMGMxYzJiNzBkMjM2MDt0cnl7dmFyIHV0bV9zb3VyY2U9Z2V0UGFyYW1ldGVyQnlOYW1lKCd1dG1fc291cmNlJyk7alF1ZXJ5KGZ1bmN0aW9uKCQpe2lmKHV0bV9zb3VyY2UhPSIiKXtDb29raWVzLnNldCgndXRtX2xhbmRpbmdfZm9vdGVyJyxudWxsLG51bGwsIi8iKTt9CmlmKENvb2tpZXMuZ2V0KCJ1dG1fbGFuZGluZ19mb290ZXIiKT09bnVsbCl7Q29va2llcy5zZXQoJ3V0bV9sYW5kaW5nX2Zvb3Rlcicsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLG51bGwsIi8iKTt9CmlmKCQoJyNnZW5lcmljX2Zvcm1fY29uZmlybScpLmxlbmd0aDwxKXt2YXIgRm9ybT0kKCc8Zm9ybSBpZD0iZ2VuZXJpY19mb3JtX2NvbmZpcm0iIHRhcmdldD0iaWZyYW1lZ3RyYWNrIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj48L2Zvcm0+Jyk7dmFyIG1ha2VWYWw9IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIjt2YXIgbW9kZWxWYWw9IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiO3ZhciB5ZWFyVmFsPSIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIjt2YXIgcmVmZXJhbFZhbD0iIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiI7dmFyIHNlY3Rpb25WYWw9JycranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKycnO3ZhciBmcm9tQXV0b2F1YmFpbmU9JCgnI2F1dG9hdWJhaW5lX3BvcHVwJykubGVuZ3RoPjAmJigkKCcjYXV0b2F1YmFpbmVfcG9wdXAnKS52YWwoKSE9J2ZhbHNlJyk7dmFyIGlucHV0cz1be25hbWU6ImxhYmVsIix2YWx1ZToiIiwnY2xhc3MnOiJsYWJlbGVtYWlsIn0se25hbWU6InNlY3Rpb24iLHZhbHVlOiIiLCdjbGFzcyc6ImxhYmVsc2VjdGlvbiJ9LHtuYW1lOiJicmFuZCIsdmFsdWU6bWFrZVZhbCwnY2xhc3MnOiJicmFuZGVtYWlsIn0se25hbWU6Im1vZGVsIix2YWx1ZTptb2RlbFZhbCwnY2xhc3MnOiJtb2RlbGVtYWlsIn0se25hbWU6InllYXIiLHZhbHVlOnllYXJWYWwsJ2NsYXNzJzoieWVhcmVtYWlsIn0se25hbWU6Imdvb2dsZWlkIix2YWx1ZToiIn0se25hbWU6Imdvb2dsZWlkZDJjbWVkaWEiLHZhbHVlOiIifSx7bmFtZToiYmluZ2NvbmlkIix2YWx1ZToiIn0se25hbWU6ImJpbmdhY3Rpb25pZCIsdmFsdWU6IiJ9LHtuYW1lOiJiaW5nZG9tYWluaWQiLHZhbHVlOiIifSx7bmFtZToiZ3RhZ19jb252ZXJzaW9uIix2YWx1ZToiZ3RhZyJ9LHtuYW1lOiJhZHJvbGxBZHYiLHZhbHVlOiIifSx7bmFtZToiYWRyb2xsUGl4Iix2YWx1ZToiIn0se25hbWU6ImZhY2Vib29rQ29uSWQiLHZhbHVlOiIxNTM3NjAwMzY1NzEzODAifSx7bmFtZToibGVhZF9kZXBhcnRtZW50Iix2YWx1ZToiIn0se25hbWU6ImxlYWRUeXBlIix2YWx1ZToiIn0se25hbWU6InBhZ2VJRCIsdmFsdWU6IiJ9LHtuYW1lOiJjdXJyZW50VVJMIix2YWx1ZToiIn0se25hbWU6ImRvbWFpbiIsdmFsdWU6ImZvcmNlZWxlY3RyaXF1ZS5jb20ifSx7bmFtZToicmVmZXJyZXIiLHZhbHVlOnJlZmVyYWxWYWx9LHtuYW1lOiJpc2V4cHJlc3MiLHZhbHVlOiIiLCdjbGFzcyc6J2lzZXhwcmVzcyd9LHtuYW1lOiJpc3Byb21vIix2YWx1ZToiIn0se25hbWU6ImlzaG9tZXBhZ2UiLHZhbHVlOiIifSx7bmFtZToidGVzdG1vZGUiLHZhbHVlOiIwIiwnY2xhc3MnOiJ0ZXN0bW9kZSJ9LHtuYW1lOid0ZXh0Q2FyU2VjdGlvblR5cGUnLHZhbHVlOnNlY3Rpb25WYWx9LHtuYW1lOiJsYW5nIix2YWx1ZToiRlJFTkNIIn0se25hbWU6ImJ1dHRvblBvc2l0aW9uIix2YWx1ZToiIn0se25hbWU6ImRlYWxlck5hbWUiLHZhbHVlOiIifSx7bmFtZToiaXNGdWxsV2lkdGgiLHZhbHVlOiIifSx7bmFtZToiaXNNb2JpbGVOZXdWRFAiLHZhbHVlOiIifSx7bmFtZToiZnJvbUF1dG9BdWJhaW5lIix2YWx1ZTowfV0KZm9yKHZhciBpPTA7aTxpbnB1dHMubGVuZ3RoO2krKyl7JCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgLz4nKS5hdHRyKGlucHV0c1tpXSkuYXBwZW5kVG8oRm9ybSk7fQpGb3JtLmFwcGVuZFRvKCcjY29uZmlybV9mb3JtcycpO0Zvcm0ub24oJ3N1Ym1pdCcsb25Db25maXJtU3VibWl0KTt9CmlmKCQoJyNndHJhY2tGcmFtZScpLmxlbmd0aDwxKXskKCc8aWZyYW1lPjwvaWZyYW1lPicpLmF0dHIoe3dpZHRoOjEsaGVpZ2h0OjEsZnJhbWVCb3JkZXI6MCxpZDonZ3RyYWNrRnJhbWUnLG5hbWU6J2lmcmFtZWd0cmFjaycscm9sZTonbm9uZScsc3R5bGU6J3dpZHRoOjFweDtoZWlnaHQ6MXB4OycsdGl0bGU6J2ZyYW1lJ30pLmFwcGVuZFRvKCcjY29uZmlybV9mb3JtcycpO319KTt2YXIgc2V0Q2hhdFppbmRleD1mdW5jdGlvbigpe3ZhciBjaGF0RWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaWZyYW1lW3RpdGxlPSJjaGF0IHdpZGdldCJdJyk7aWYoY2hhdEVsKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpZnJhbWVbdGl0bGU9ImNoYXQgd2lkZ2V0Il0nKS5wYXJlbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCd6LWluZGV4JywnMTAnLCdpbXBvcnRhbnQnKTt9fQpzZXRUaW1lb3V0KHNldENoYXRaaW5kZXgsMzAwMCk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8zYTI0NmE3OThkMjVkY2MzMzE1NzZlYjVmZDgwZDQ3ZTt0cnl7JCgnLmNvbnNlbnQuZGlzY2xhaW1lcicpLmRhcmtUb29sdGlwKHtncmF2aXR5Oidzb3V0aCcsdGhlbWU6J2xpZ2h0Jyx0cmlnZ2VyOidob3Zlcicsb3BhY2l0eToxLH0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYTIyYWQ1MzkzOTU4YzNjOGQyNzNhYTFkMzdhYTQ4YTg7dHJ5e3RyeXshZnVuY3Rpb24oZixiLGUsdixuLHQscyl7aWYoZi5mYnEpcmV0dXJuO249Zi5mYnE9ZnVuY3Rpb24oKXtuLmNhbGxNZXRob2Q\/bi5jYWxsTWV0aG9kLmFwcGx5KG4sYXJndW1lbnRzKTpuLnF1ZXVlLnB1c2goYXJndW1lbnRzKX07aWYoIWYuX2ZicSlmLl9mYnE9bjtuLnB1c2g9bjtuLmxvYWRlZD0hMDtuLnZlcnNpb249JzIuMCc7bi5xdWV1ZT1bXTt0PWIuY3JlYXRlRWxlbWVudChlKTt0LmFzeW5jPSEwO3Quc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUnKTt0LnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTt0LnNyYz12O3Quc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDItQzAwMDMtQzAwMDQtQzAwMDUnKTt0LnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTtzPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSlbMF07cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHMpfSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvZmJldmVudHMuanMnKTtmYnEoJ2luaXQnLCcxNTM3NjAwMzY1NzEzODAnKTtmYnEoJ3RyYWNrJywiUGFnZVZpZXciKTtmYnEoJ3RyYWNrJywnVmlld0NvbnRlbnQnKTt9Y2F0Y2goZXgpe307fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF84M2MyNTI4YTc1MzgwYzA3ODcyZTkyYWQyYzk5YWUyZTt0cnl7aWYodHlwZW9mIHBhZ2UhPT0ndW5kZWZpbmVkJyYmcGFnZT09Ik5FV0NBUkRFVEFJTFMiKXskKGRvY3VtZW50KS5vbignY2xpY2snLCdhJyxmdW5jdGlvbigpe3ZhciBvYmo9JCh0aGlzKTt2YXIgaHJlZj1vYmouYXR0cignaHJlZicpO3ZhciB0ZXh0PW9iai50ZXh0KCk7aWYodGV4dC5sZW5ndGg+MCYmb2JqLmZpbmQoJ2ltZycpLmxlbmd0aD09MCYmdHlwZW9mIGhyZWYhPSd1bmRlZmluZWQnKXt2YXIgdGl0bGU9JCgnLmJyYW5kZW1haWxbbmFtZT0iYnJhbmQiXScpLnZhbCgpKyctJyskKCcubW9kZWxlbWFpbFtuYW1lPSJtb2RlbCJdJykudmFsKCkrJy0nKyQoJy55ZWFyZW1haWwnKS52YWwoKTtpZihocmVmIT0iIyImJmhyZWYhPSIiJiZocmVmLmluZGV4T2YoImphdmFzY3JpcHQiKTwwJiZocmVmLmluZGV4T2YoJ3snKTwwKXt0aXRsZT1ocmVmO30KZ2FUcmFjaygnX3RyYWNrRXZlbnQnLCdOZXctVkRQLU91dGJvdW5kLWNsaWNrcycsb2JqLnRleHQoKSx0aXRsZSk7fX0pO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzNjOWYzMmEwY2QxYmQ0Y2RkNjMwODQxZDIyZmM4YWQzO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2QyY0Zvb3RlckNvb2tpZURlbGV0ZSIpLnBvcHVwaXplKHsiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjpudWxsLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6bnVsbCwic2VuZFRvQURGIjpudWxsLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjpmYWxzZSwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzczNDYwODAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIxNTM3NjAwMzY1NzEzODAifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6ImZvcmNlZWxlY3RyaXF1ZS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfNGE1ZjEyZjYyOWJiMWY5ZmUzMjA3MjYyYTk5ZWVkYzg7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjc2NyYXRjaEFuZFNhdmVQb3B1cENvbnRhaW5lcl9uZXciKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXtyZXR1cm4gc2NyYXRjaEFuZFNhdmUub25BZnRlckluaXRpYWxpemUoc2VsZiwiX25ldyIsIm5ldyIsIiIranNfZDJjX2dldF92YWwoIjE2ZDd2d3Q2NnBtb3dvMGsiKSsiIix7aXNGcm9tQUE6ImZhbHNlIixjb29raWVOYW1lOiJyZWJhdGVOZXdTaG93biIsZGVsYXk6IiIsb25Mb2FkSlM6ImZhbHNlIix0b0FjdGl2ZToiIitqc19kMmNfZ2V0X3ZhbCgiNmp5cDQ2NjR2Z3dzODB3IikrIiIsbWFpblBvcHVwOnRydWUsc2hvd09uR2VuZXJhbFNSUDp0cnVlfSk7fSwib25CZWZvcmVWYWxpZGF0aW9uIjpmdW5jdGlvbigpe3NjcmF0Y2hBbmRTYXZlLm9uQmVmb3JlVmFsaWRhdGlvbignX25ldycpO30sIm9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oKXtpZih0eXBlb2Ygc2NyYXRjaEFuZFNhdmUhPSd1bmRlZmluZWQnKXtzY3JhdGNoQW5kU2F2ZS5zY3JhdGNoUGFkSW1nPScvaW1hZ2VzL3BvcHVwcy9zdHlsZTMvc2NyYXRjaC5wbmcnO3NjcmF0Y2hBbmRTYXZlLnNjcmF0Y2hQYWRJbWdEaXNhYmxlZD0nL2ltYWdlcy9wb3B1cHMvc3R5bGUzL3NjcmF0Y2hfZGlzYWJsZWQucG5nJzt9CnNjcmF0Y2hBbmRTYXZlLm9uQmVmb3JlT3BlbignX25ldycse29sZEJyb3dzZXJFbmFibGVkOmZhbHNlLGJhY2tncm91bmRDb2xvcjonIzAxMGEyOCcsc2NyYXRjaFBhZEVuYWJsZWQ6ZmFsc2V9LCdORVcnKTt9LCJvbkNsb3NlIjpmdW5jdGlvbihwb3B1cCxpbnZva2VyKXtzY3JhdGNoQW5kU2F2ZS5vbkNsb3NlKCdfbmV3JyxpbnZva2VyLCdmYWxzZScpO30sIm9uQmVmb3Jlc3VibWl0IjpmdW5jdGlvbigpe3NjcmF0Y2hBbmRTYXZlLm9uQmVmb3JlU3VibWl0KCdfbmV3JywnLnNjcmF0Y2hidG4nKTt9LCJvbkFmdGVyc3VibWl0IjpmdW5jdGlvbigpe3NjcmF0Y2hBbmRTYXZlLm9uQWZ0ZXJTdWJtaXQoJ19uZXcnLCcuc2NyYXRjaGJ0bicse2V4cGlyZXM6NyxjdXJyZW50RGF0ZToyMDI2LTAzLTA3LHRleHRUb1Nob3c6IkYmRWFjdXRlO0xJQ0lUQVRJT05TISJ9LDApO30sIm9uQmVmb3JlU2VuZE1haWwiOmZ1bmN0aW9uKCl7dmFyIHNlYXJjaFZlaGljbGU9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS52YWwoKTt2YXIgbGFzdFZpZXdlZFZlaGljbGU9Q29va2llcy5nZXQoJ2xhc3R2aWV3ZWR2ZWhpY2xlJyk7aWYodHlwZW9mIHNlYXJjaFZlaGljbGUhPT0ndW5kZWZpbmVkJyl7c2VhcmNoVmVoaWNsZT1zZWFyY2hWZWhpY2xlLnRyaW0oKTt9CmlmKHR5cGVvZiBsYXN0Vmlld2VkVmVoaWNsZSE9PSd1bmRlZmluZWQnJiZsYXN0Vmlld2VkVmVoaWNsZSE9bnVsbCYmbGFzdFZpZXdlZFZlaGljbGUhPSIiKXtsYXN0Vmlld2VkVmVoaWNsZT1sYXN0Vmlld2VkVmVoaWNsZS5yZXBsYWNlKC9cfFx8XHwvZywnICcpLnRyaW0oKTt9CmlmKHNlYXJjaFZlaGljbGU9PWxhc3RWaWV3ZWRWZWhpY2xlKXtlbWFpbEhhbmRsZXIuc2V0TWFrZU1vZGVsWWVhckZyb21MYXN0Vmlld2VkKCk7fX0sImNvb2tpZUR1cmF0aW9uIjo2MCwiY29va2llTmFtZSI6InJlYmF0ZU5ld1Nob3duIiwiY29va2llQ3JlYXRlIjoib25PcGVuIiwiZmlsbGZsYWciOnRydWUsIm5hbWUiOiJzY3JhdGNoQW5kU2F2ZV9uZXciLCJhbmltYXRpb24iOmZhbHNlLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiZXJyb3JNc2ciOiJDZXJ0YWlucyBjaGFtcHMgb2JsaWdhdG9pcmVzIG4nb250IHBhcyAmZWFjdXRlO3QmZWFjdXRlOyByZW1wbGlzIiwibm90cmFuc2Zvcm0iOnRydWUsImNsb3NlT25TdWJtaXQiOmZhbHNlLCJ2ZWhpY2xlU3RhdGUiOiJOZXciLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6Il9zY3JhdGNoQW5kU2F2ZSIsImxhYmVsIjoiRGVtYW5kZXMtQ291cG9ucy1OZXVmIiwibGFiZWxzZWN0aW9uIjoiTmV1ZiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJSZWJhdGVDb3Vwb25OZXciLCJvZmZlcnR5cGUiOiJEaXNjb3VudEltYWdlUG9wdXBTY3JhdGNoQW5kU2F2ZSIsIm5hbWUiOiJmcm1SZWJhdGVfc2NyYXRjaEFuZFNhdmVfbmV3Iiwic2VuZFRvIjoiY2VlZTE2OTQyMzRhYWRkYTBlMjk3NTRkMTdiZDdjN2R8MzczMzcxODI3OCIsInNlbmRUb0FERiI6IjNhNzgzZTk1MzNmYTcyM2RlZmViOGY0NWFkNjhhNDY0fDM3MzM3MTgyNzgiLCJPS0J1dHRvbkNsYXNzIjoic2NyYXRjaGJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjpudWxsLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlfSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOiI3NSIsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjp0cnVlLCJjb3VudGRvd24iOjE3NzM0NjA4MDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IkRlbWFuZGVzLUNvdXBvbnMtTmV1ZiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6Ik5ldWYiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIxNTM3NjAwMzY1NzEzODAifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6ImZvcmNlZWxlY3RyaXF1ZS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfOGYyNzUxZTdlMzExZDdmYWYwZjUwZjEwMTQ0ZWI4M2U7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25BZnRlcnN1Ym1pdCI6ZnVuY3Rpb24oc2VsZil7c2V0Q29va2llKCdjcmVkaXRTY29yZUVtYmVkZGVkRmlsbGVkJywxLDMwKTtpZih0eXBlb2YgZ1VzZWRTcnBBcHB6IT09J3VuZGVmaW5lZCcpe2dVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuY2xlYXJQcm94eUNhY2hlQW5kUmVGZXRjaCgpO319LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7KG5ldyBGb3JtKCkpLm1hc2tQaG9uZSgiI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgI2NyZWRpdFNjb3JlUGhvbmUiKTt2YXIgbGFuZz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iZW4iOiJmciI7dmFyIHN0YXJ0RGF0ZT1uZXcgRGF0ZSgpO3N0YXJ0RGF0ZS5zZXRGdWxsWWVhcihzdGFydERhdGUuZ2V0RnVsbFllYXIoKS0zMCk7dmFyIG1heERhdGU9bmV3IERhdGUoKTttYXhEYXRlLnNldEZ1bGxZZWFyKG1heERhdGUuZ2V0RnVsbFllYXIoKS0xOCk7dmFyIG1pbkRhdGU9bmV3IERhdGUoKTttaW5EYXRlLnNldEZ1bGxZZWFyKG1pbkRhdGUuZ2V0RnVsbFllYXIoKS0xMjApOyQoIi5jcmVkaXRTY29yZUJpcnRoZGF0ZSIpLm5lYkNhbCh7bWF4RGF0ZTptYXhEYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLG1pbkRhdGU6bWluRGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxkZWZhdWx0RGF0ZTpzdGFydERhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZm9ybWF0OiJkZCBNTU0geXl5eSIsZGVmYXVsdFZpZXc6ImRlY2FkZSJ9KTskKCcjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl0nKS5nb29nbGVQbGFjZXMoKTt2YXIgcG9wdXBUeXBlPSJuZXciO2lmKHR5cGVvZiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSE9InVuZGVmaW5lZCIpe3ZhciB0bXA9cG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoIm5ldyIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsImNyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiLGZhbHNlKTtpZigwJiZ0bXApe3NlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD0xMDt9CmVsc2V7c2VsZi5zZXR0aW5ncy5zaG93b25sb2FkPWZhbHNlO30KcmV0dXJuIHRtcDt9fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoiY3JlZGl0U2NvcmVTaG93biIsImNvb2tpZUNyZWF0ZSI6Im9uT3BlbiIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiQ3JlZGl0U2NvcmUiLCJvZmZlcnR5cGUiOiJDcmVkaXRTY29yZSIsIm5hbWUiOm51bGwsInNlbmRUbyI6IiIranNfZDJjX2dldF92YWwoIjEzZHF0c25jZDgxd2s4NDQiKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgiNWNjeWdrOTI1bWd3ZzAiKSsiIiwiT0tCdXR0b25DbGFzcyI6ImNyZWRpdFNjb3JlX2J0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOiJWb3RyZSBkZW1hbmRlIGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ZSEiLCJib2R5IjoiTWVyY2khIFVuIGNvbnNlaWxsZXIgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBwb3VyIHZvdXMgZG9ubmVyIGxlcyBkJmVhY3V0ZTt0YWlscyBzdXIgdm90cmUgcG90ZW50aWVsIGRlIGNyJmVhY3V0ZTtkaXQuIn19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOjAsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwic2hvd29ubG9hZCI6ZmFsc2UsImNvdW50ZG93biI6MTc3MzQ2MDgwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9kNjZmNWQ5NDg1OTc0MmM2YTUxZjhiYWQ5YzBkZmFlMDt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXInKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzFkZWM4Yzg1Yzg3OTM1MWZhNzhhMDZiOTIyMDUxNWI1O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKHsib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe2NvbnRhY3RQb3B1cC5zZXRDb25maWcoe3R5cGU6c2VsZi5zZXR0aW5ncy5mb3JtLnR5cGV9KTtpZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJuZXciLCIiK2pzX2QyY19nZXRfdmFsKCI2anlwNDY2NHZnd3M4MHciKSsiIixmYWxzZSwiIiwiIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiLCJjb250YWN0cG9wdXAiLHRydWUpO2lmKGZhbHNlJiZ0bXApc2VsZi5zZXR0aW5ncy5zaG93b25sb2FkPTU7cmV0dXJuIHRtcDt9fSwib25CZWZvcmVTZW5kTWFpbCI6ZnVuY3Rpb24oc2VsZil7Y29udGFjdFBvcHVwLm9uQmVmb3JlU2VuZE1haWwoKTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDb250YWN0VXNSZXF1ZXN0Iiwic2VuZFRvIjpudWxsLCJzZW5kVG9BREYiOm51bGwsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgbWVzc2FnZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlOyEiLCJib2R5IjoiTWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSAmZWFjdXRlO3F1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS4ifSwidHlwZSI6Im5ldyJ9LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOjAsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwiY291bnRkb3duIjoxNzczNDYwODAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzNkNzg1NDI3NDEyNWVhNjliMDI0NTc1NjQ2YTY5OGRjO3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfY29udGFjdHBvcHVwJyk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9mMjhmMzlmMWY0MzZkYTI5NDI4YTEwYTgwYmJkYTIzNzt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXt2YXIgbXVsdGlzdGVwPWluaXRpYWxpemVGaW5hbmNlTXVsdGlTdGVwKHNlbGYudGFyZ2V0KTskKGRvY3VtZW50KS5vbignY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0JyxmdW5jdGlvbihlKXttdWx0aXN0ZXAuc3RhcnQoKTt9KTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Iiwib2ZmZXJ0eXBlIjoiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIsIm5hbWUiOm51bGwsInNlbmRUbyI6IiIranNfZDJjX2dldF92YWwoIjEzZHF0c25jZDgxd2s4NDQiKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgiNWNjeWdrOTI1bWd3ZzAiKSsiIiwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzczNDYwODAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIxNTM3NjAwMzY1NzEzODAifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6ImZvcmNlZWxlY3RyaXF1ZS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfNTUzODBlZmYzODBiYmVjMWMyMzcxZDQwNjgzYjNmYjE7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25CZWZvcmVPcGVuIjpmdW5jdGlvbihzZWxmKXtpZihzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0KXtzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0PWZhbHNlO2lmKENvb2tpZXMuZ2V0KCdwb3B1cEZvcm1GaWxsZWQnKT09IjEiKXskKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKS5oaWRlKCk7fQpyZXR1cm4gdHJ1ZTt9CmlmKCFzZWxmLnNldHRpbmdzLnN0eWxlaWQpcmV0dXJuIGZhbHNlO3NlbGYuc2V0dGluZ3MuaW5pdGlhbFN0eWxlaWQ9c2VsZi5zZXR0aW5ncy5zdHlsZWlkO2lmKCQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5sZW5ndGgpe3NlbGYuc2V0dGluZ3MucGF5bWVudE9wdGlvbnM9cGFyc2VJbnQoJCgiI29wdGlvblByaWNlVG90YWwiKS5odG1sKCkucmVwbGFjZSgiLCIsIiIpKTt9CmdhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCdDbGlxdWVzIENhbGN1bGF0cmljZScsJ05ldWYnLCdPcGVuJywxKTtwYXltZW50Q2FsY3VsYXRvclBvcHVwSW5pdCgpO30sIm9uQ2xvc2UiOmZ1bmN0aW9uKHNlbGYpe2lmKCFzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0KXtnYVRyYWNrKCdjLl90cmFja0V2ZW50JywnQ2xpcXVlcyBDYWxjdWxhdHJpY2UnLCdOZXVmJywnQ2xvc2UnLDEpO30KaWYoKCgkKCcjdGFyZ2V0UGFnZScpLnZhbCgpfHxmYWxzZSk9PSdORVdDQVJTJ3x8KCQoJyN0YXJnZXRQYWdlJykudmFsKCl8fGZhbHNlKT09J1VTRURDQVJTJykmJndpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD09dHJ1ZSl7bG9jYXRpb24ucmVsb2FkKCk7fX0sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXtwb3B1cENhbGN1bGF0b3JJbml0aWFsaXplZCgpO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6bnVsbCwib2ZmZXJ0eXBlIjpudWxsLCJuYW1lIjpudWxsLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzczNDYwODAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIxNTM3NjAwMzY1NzEzODAifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6ImZvcmNlZWxlY3RyaXF1ZS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fTsKLyoqIC9qcy9za2VsZXRvbi5jb250cm9sbGVyLmpzICoqLwp2YXIgX19fZDJjX3NrZWxldG9uY29udHJvbGxlcmpzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6NDIiOyd1c2Ugc3RyaWN0Jzt0cnl7alF1ZXJ5KGZ1bmN0aW9uKGMpe2xldCBlO2NvbnNvbGUubG9nKCJHU1BFRUQtQUZURVItSlFVRVJZOiIrKERhdGUubm93KCktKG51bGwhPShlPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/ZTowKSkvMUUzKTt3aW5kb3cuZ1Jlc291cmNlTG9hZGVyQW5kSnF1ZXJ5SXNSZWFkeT0hMDtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtjb25zb2xlLmxvZygiU0tFTEVUT058I2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtpZihiLmxlbmd0aCl7dmFyIGE9Yi5hdHRyKCJkYXRhLWlmcmFtZS1hdHRyaWJ1dGVzIik7InVuZGVmaW5lZCIhPT1hJiZ2b2lkIDAhPT1hJiYoYT1KU09OLnBhcnNlKGF0b2IoYSkpLGMoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYikpfX0sN0UzKTtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci1tYXBzLWhvbWVwYWdlLWJ5aWQiKTsKY29uc29sZS5sb2coIlNLRUxFVE9OfCNlbWJlZC1jb250YWluZXItbWFwcy1ob21lcGFnZS1ieWlkIik7aWYoYi5sZW5ndGgpe3ZhciBhPWIuYXR0cigiZGF0YS1pZnJhbWUtYXR0cmlidXRlcyIpOyJ1bmRlZmluZWQiIT09YSYmdm9pZCAwIT09YSYmKGE9SlNPTi5wYXJzZShhdG9iKGEpKSxpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKGYpe2Euc3JjPWEuc3JjLnJlcGxhY2UoIl9fS0VZX18iLGYpO2MoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYil9KSl9fSw3RTMpO3dpbmRvdy5kZWxheWVkQ3NzPWZ1bmN0aW9uKGIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7YS50eXBlPSJ0ZXh0L2NzcyI7YS5zdHlsZVNoZWV0P2Euc3R5bGVTaGVldC5jc3NUZXh0PWI6YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShiKSk7Y29uc29sZS5sb2coIlNLRUxFVE9OfERFTEFZRURMT0FEQ1NTfCIrYik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKX07CndpbmRvdy5kZWxheWVkQ3NzKCIuaGlkZU9uUHJlTG9hZHt2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDt9Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxzZXR0aW5nIG1lbnUgbXV0YXRpb24gb2JzZXJ2ZXIiKTt0cnl7bnVsbCE9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIpJiYobmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGEsZik9Pntmb3IoY29uc3QgZCBvZiBhKSJhdHRyaWJ1dGVzIj09PWQudHlwZSYmImNsYXNzIj09PWQuYXR0cmlidXRlTmFtZSYmZC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ1cF9tZW51IikmJihhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIpLGQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKT9hLmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKXx8YS5jbGFzc0xpc3QuYWRkKCJmaXhlZCIpOgphLmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJmaXhlZCIpKX0pKS5vYnNlcnZlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiA+IC51cF9tZW51Iikse2F0dHJpYnV0ZXM6ITAsY2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJTS0VMRVRPTnwuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiLGEpfWNvbnNvbGUubG9nKCJTS0VMRVRPTnxpcy1sb2FkZWQtbm93Iik7Y29uc3QgYj1jKCIuc2tlbGV0b24iKTtiLmFkZENsYXNzKCJpcy1sb2FkZWQtbm93Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxyZW1vdmluZyBza2VsZXRvbnMgZmlyc3QgaW1nIGJhY2tncm91bmQiKTtiLmZpbmQoImltZy5pcy1za2VsZXRvbi1iZy1pbWciKS5yZW1vdmUoKX0sMzx3aW5kb3cuZ1NwZWVkQ29ubj8KMUU0OjZFMyl9LDIwMCl9KX1jYXRjaChjKXt9Ow==","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudCI+CgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiIHZhbHVlPSJGUkVOQ0giLz4KCgkJPGlucHV0CgkJCXR5cGU9ImhpZGRlbiIKCQkJaWQ9ImQyY0RhdGFTdG9yZSIKCQkJZGF0YS1iYXNldXJsPSJodHRwczovL2ZvcmNlZWxlY3RyaXF1ZS5jb20iCgkJCWRhdGEtYm9keWNsYXNzPSIgaGVhZGluZ0NhcHNPbiBGUkVOQ0ggaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCB0ZW1wbGF0ZTEgaXNGdWxsV2lkdGhQYWdlIE5ld1NycDIiCgkJCWRhdGEtaXNtb2JpbGU9IjAiCgkJPgoKCQk8c2NyaXB0IHNyYz0iaHR0cHM6Ly9haWFwcHMuZDJjbWVkaWEuY2EvZXZib29zdC9ldi1jb21wYXJhdG9yLmlpZmUuanMiIGFzeW5jPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CiAgICB7IkBjb250ZXh0IjoiaHR0cHM6XC9cL3NjaGVtYS5vcmciLCJAdHlwZSI6IldlYlNpdGUiLCJuYW1lIjoiRm9yY2UgXHUwMGM5bGVjdHJpcXVlIiwidXJsIjoiaHR0cHM6XC9cL3d3dy5mb3JjZWVsZWN0cmlxdWUuY29tXC8iLCJwb3RlbnRpYWxBY3Rpb24iOnsiQHR5cGUiOiJTZWFyY2hBY3Rpb24iLCJ0YXJnZXQiOiJodHRwczpcL1wvd3d3LmZvcmNlZWxlY3RyaXF1ZS5jb21cL29jY2FzaW9uXC9yZWNoZXJjaGUuaHRtbD9xPXtzZWFyY2hfdGVybV9zdHJpbmd9IiwicXVlcnktaW5wdXQiOiJyZXF1aXJlZCBuYW1lPXNlYXJjaF90ZXJtX3N0cmluZyJ9fQo8L3NjcmlwdD48c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOiJBdXRvbW90aXZlQnVzaW5lc3MiLCJ1cmwiOiJodHRwczpcL1wvd3d3LmZvcmNlZWxlY3RyaXF1ZS5jb20iLCJuYW1lIjoiRm9yY2UgXHUwMGM5bGVjdHJpcXVlIiwiaW1hZ2UiOiJodHRwczpcL1wvd3d3LmZvcmNlZWxlY3RyaXF1ZS5jb21cL2ltYWdlc1wvTG9nb01vYmlsZVwvS0lhRm9yY2VFbGVjdHJpcXVlLUhPUi1SR0IucG5nIiwibG9nbyI6Imh0dHBzOlwvXC93d3cuZm9yY2VlbGVjdHJpcXVlLmNvbVwvaW1hZ2VzXC9Mb2dvTW9iaWxlXC9LSWFGb3JjZUVsZWN0cmlxdWUtSE9SLVJHQi5wbmciLCJzYW1lQXMiOlsiaHR0cHM6XC9cL3d3dy5mYWNlYm9vay5jb21cL0ZvcmNlZWxlY3RyaXF1ZWNvbS0xMDMzMjYzODg2NTEwMjIiXSwiZ2VvIjp7IkB0eXBlIjoiR2VvQ29vcmRpbmF0ZXMiLCJsYXRpdHVkZSI6IjQ2LjgzNjg1MzU1MTYiLCJsb25naXR1ZGUiOiItNzEuMjcyMTYzNjM5MSJ9LCJhZGRyZXNzIjp7IkB0eXBlIjoiUG9zdGFsQWRkcmVzcyIsInN0cmVldEFkZHJlc3MiOiIxNjAwIHJ1ZSBDeXJpbGxlIER1cXVldCIsImFkZHJlc3NMb2NhbGl0eSI6IlF1XHUwMGU5YmVjIiwiYWRkcmVzc1JlZ2lvbiI6IlF1ZWJlYyIsInBvc3RhbENvZGUiOiJHMU4gMkU1IiwiYWRkcmVzc0NvdW50cnkiOiJDQSJ9LCJ0ZWxlcGhvbmUiOiI0MTgtNjYwLTI5MjkiLCJwcmljZVJhbmdlIjoiMjU4OTQkLTYzMTQ0JCIsIm9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iOlt7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6Ik1vbmRheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIyMDowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiVHVlc2RheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIyMDowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiV2VkbmVzZGF5Iiwib3BlbnMiOiIwOTowMCIsImNsb3NlcyI6IjIwOjAwIn0seyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJUaHVyc2RheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIyMDowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiRnJpZGF5Iiwib3BlbnMiOiIwOTowMCIsImNsb3NlcyI6IjE4OjAwIn0seyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJTYXR1cmRheSIsIm9wZW5zIjoiMTA6MDAiLCJjbG9zZXMiOiIxNTowMCJ9XX0KPC9zY3JpcHQ+PGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovL2ZvcmNlZWxlY3RyaXF1ZS5jb20vaW1hZ2VzL0Zhdmljb24vZmF2aWNvbi5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiI+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIiBocmVmPSJodHRwczovL3d3dy5mb3JjZWVsZWN0cmlxdWUuY29tL2VtYmVkZXIvcHJvY2Vzcy9mcj9uZnI9MSI+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iaW1hZ2UiIGhyZWY9Imh0dHBzOi8vZm9yY2VlbGVjdHJpcXVlLmNvbS9pbWFnZXMvTG9nby9LSWFGb3JjZUVsZWN0cmlxdWUtSE9SLVJHQi53ZWJwIj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodE9ibGlxdWUud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHQud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9yY2VlbGVjdHJpcXVlLmNvbS9jc3Nfci9yZXNvdXJjZS5sb2FkZXIuZnIuY3NzP3Y9MyZhbXA7Y3NzcnBsPSZhbXA7d3N3aWR0aD0wJmFtcDtkZXZpY2U9ZGVza3RvcCZhbXA7dWE9UTBOQ2IzUXZNaTR3SUNob2RIUndjem92TDJOdmJXMXZibU55WVhkc0xtOXlaeTltWVhFdktRPT0iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9pbWFnZXNjZG4uZDJjbWVkaWEuY2EiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3LmZvcmNlZWxlY3RyaXF1ZS5jb20vZW1iZWRlci9wcm9jZXNzL2ZyIiBkYXRhLWNhbm9uaWNhbC1oZWFkZXItd2lkZ2V0PSIxIj48c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9zY3JpcHR0ZW1wbGF0ZXMvb3RTREtTdHViLmpzIiBkYXRhLWRvY3VtZW50LWxhbmd1YWdlPSJ0cnVlIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9IlVURi04IiBkYXRhLWRvbWFpbi1zY3JpcHQ9Ijc5ZWIyOTVmLTAwODAtNDJiMS1hMWI0LWE2ZTIyN2E2YjA2MyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9jb25zZW50Lzc5ZWIyOTVmLTAwODAtNDJiMS1hMWI0LWE2ZTIyN2E2YjA2My9PdEF1dG9CbG9jay5qcyI+PC9zY3JpcHQ+PGRpdiBpZD0iYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiBkYXRhLWFuYWx5dGljcz0iZ29vZ2xlX2FuYWx5dGljc180Ij4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZUNhdGVnb3J5IiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibWFrZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpbiIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRyaW0iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcmljZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImV4dGNvbG9yIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0ZV9saXN0aW5nIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZDJhc2NfaXNDZXJ0aWZpZWQiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlU3RhdHVzIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyQ29kZSIgdmFsdWU9Ilo5OTk5Ij4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZVR5cGUiIHZhbHVlPSJTaG93cm9vbSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlcl9uYW1lIiB2YWx1ZT0iRm9yY2Ugw4lsZWN0cmlxdWUiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfYWRkcmVzcyIgdmFsdWU9IjE2MDAgcnVlIEN5cmlsbGUgRHVxdWV0LCBRdcOpYmVjLCBRdcOpYmVjIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX3Bvc3RhbCIgdmFsdWU9IkcxTiAyRTUiPgoJCTwvZGl2PgoJCTwhLS0gT086OjUxMDFmMmM0NWNkNzllNzAxNzBlYzQzM2RjMTMwYTI5IC0tPgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBHbG9iYWwgc2l0ZSB0YWcgKGd0YWcuanMpIC0gR29vZ2xlIEFuYWx5dGljcyAtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM\/aWQ9Ry1KS1JTVkNFSzg2IiB0eXBlPSJ0ZXh0L3BsYWluIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMSI+PC9zY3JpcHQ+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+Cgo8IS0tICMjVk1KUzIjIyAtLT48IS0tIEdPIElEIC0tPgo8IS0tIEJJTkcgU0NSSVBUIC0tPgo8IS0tIE9POjpmNzNmYTZhYmJmYjRiYWIzZjQ5ZGFhZmIzODkxZTI3ZiAtLT4KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgZGF0YS1ybD0iMSI+Ci8qKiAvY3NzL3Jvb3QuY3NzICoqLwo6cm9vdHsgLS1yYXRpbzoxLjE1OyAtLXMwOjA7IC0tcy05OmNhbGModmFyKC0tcy04KSAvIHZhcigtLXJhdGlvKSk7IC0tcy04OmNhbGModmFyKC0tcy03KSAvIHZhcigtLXJhdGlvKSk7IC0tcy03OmNhbGModmFyKC0tcy02KSAvIHZhcigtLXJhdGlvKSk7IC0tcy02OmNhbGModmFyKC0tcy01KSAvIHZhcigtLXJhdGlvKSk7IC0tcy01OmNhbGModmFyKC0tcy00KSAvIHZhcigtLXJhdGlvKSk7IC0tcy00OmNhbGModmFyKC0tcy0zKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0zOmNhbGModmFyKC0tcy0yKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0yOmNhbGModmFyKC0tcy0xKSAvIHZhcigtLXJhdGlvKSk7IC0tcy0xOmNhbGModmFyKC0tcykgLyB2YXIoLS1yYXRpbykpOyAtLXM6MC41cmVtOyAtLXMxOmNhbGModmFyKC0tcykgKiB2YXIoLS1yYXRpbykpOyAtLXMyOmNhbGModmFyKC0tczEpICogdmFyKC0tcmF0aW8pKTsgLS1zMzpjYWxjKHZhcigtLXMyKSAqIHZhcigtLXJhdGlvKSk7IC0tczQ6Y2FsYyh2YXIoLS1zMykgKiB2YXIoLS1yYXRpbykpOyAtLXM1OmNhbGModmFyKC0tczQpICogdmFyKC0tcmF0aW8pKTsgLS1zNjpjYWxjKHZhcigtLXM1KSAqIHZhcigtLXJhdGlvKSk7IC0tczc6Y2FsYyh2YXIoLS1zNikgKiB2YXIoLS1yYXRpbykpOyAtLXM4OmNhbGModmFyKC0tczcpICogdmFyKC0tcmF0aW8pKTsgLS1zOTpjYWxjKHZhcigtLXM4KSAqIHZhcigtLXJhdGlvKSk7IC0tZnMtYmFzZTowLjg3NXJlbTsgLS1mczp2YXIoLS1mcy1iYXNlKTsgLS1mcy05OmNhbGModmFyKC0tZnMtOCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTggOmNhbGModmFyKC0tZnMtNykgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTcgOmNhbGModmFyKC0tZnMtNikgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTYgOmNhbGModmFyKC0tZnMtNSkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTUgOmNhbGModmFyKC0tZnMtNCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTQgOmNhbGModmFyKC0tZnMtMykgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTMgOmNhbGModmFyKC0tZnMtMikgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTIgOmNhbGModmFyKC0tZnMtMSkgLyB2YXIoLS1yYXRpbykpOyAtLWZzLTEgOmNhbGModmFyKC0tZnMwKSAvIHZhcigtLXJhdGlvKSk7IC0tZnMwIDp2YXIoLS1mcy1iYXNlLCAwLjg3NXJlbSk7IC0tZnMxIDpjYWxjKHZhcigtLWZzMCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzMiA6Y2FsYyh2YXIoLS1mczEpICogdmFyKC0tcmF0aW8pKTsgLS1mczMgOmNhbGModmFyKC0tZnMyKSAqIHZhcigtLXJhdGlvKSk7IC0tZnM0IDpjYWxjKHZhcigtLWZzMykgKiB2YXIoLS1yYXRpbykpOyAtLWZzNSA6Y2FsYyh2YXIoLS1mczQpICogdmFyKC0tcmF0aW8pKTsgLS1mczYgOmNhbGModmFyKC0tZnM1KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM3IDpjYWxjKHZhcigtLWZzNikgKiB2YXIoLS1yYXRpbykpOyAtLWZzOCA6Y2FsYyh2YXIoLS1mczcpICogdmFyKC0tcmF0aW8pKTsgLS1mczkgOmNhbGModmFyKC0tZnM4KSAqIHZhcigtLXJhdGlvKSk7IC0tZGVmYXVsdC1ibGFjazojMDAwMDAwOyAtLXRhYi1jb2xvci1zcGVjaWFsY2FzZTojMzJhN2RhOyAtLXRhYi1jb2xvcjojMzJhN2RhOyAtLXRhYi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tdGFiLWNvbG9yLW1vYjojMzJhN2RhOyAtLXRhYi10ZXh0LWNvbG9yLW1vYjojZmZmZmZmOyAtLXRhYi1jb2xvci1tb2ItZXg6IzY2NjY2NjsgLS10YWItdGV4dC1jb2xvci1tb2ItZXg6I2ZmZmZmZjsgLS1tZW51LWNvbG9yLWJvcmRlcjojZmZmZmZmOyAtLW1lbnUtY29sb3ItbW9iOiNmZmZmZmY7IC0tbWVudS10ZXh0LWNvbG9yLW1vYjojMDAwMDAwOyAtLW1lbnUtY29sb3ItbW9iLWV4OiNmM2YzZjM7IC0tbWVudS10ZXh0LWNvbG9yLW1vYi1leDojMDAwMDAwOyAtLXByb21vLWNvbG9yOiNmZjAwMDA7IC0tcHJvbW8tdGV4dC1jb2xvcjojZmZmZmZmOyAtLW5ld3NycC1tb2RlbC1jb2xvcjojMDAwMDAwOyAtLWZvb3Rlci1saW5rLXRpdGxlLWNvbDojMzJhN2RhOyAtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yOiM2NjY2NjY7IC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3I6IzY2NjY2NjsgLS1mb290ZXItYmctY29sb3I6I2ZmZmZmZjsgLS1nZW5lcmFsLWJnLWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQ6OyAtLXRvcC1wcm9tby1idG4tYmc6OyAtLXByb21vLWJ0bi1jb2xvcjojZmYwMDAwOyAtLXByb21vLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tcHJvbW8tYnRuLWhvdmVyLWJnLWNvbG9yOiNmZjAwMDA7IC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1czozcHg7IC0taG9tZS1iZy1jb2xvcjojZmZmZmZmOyAtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yOiMwMDAwMDA7IC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcjojZmZmZmZmOyAtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYjojMDAwMDAwOyAtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iOiNmZmZmZmY7IC0tdXNlZC1zbGlkZXItYmc6I2ZmZmZmZjsgLS11c2VkLXNsaWRlci10eHQ6IzAwMDAwMDsgLS11c2VkLXNsaWRlci1wcmljZTojZmYwMDAwOyAtLW5ldy1zbGlkZXItYmc6OyAtLW5ldy12ZHAtYmVzdHByaWNlLWJ0bi1iZy1jb2xvcjojZmYwMDAwOyAtLW5ldy12ZHAtYmVzdHByaWNlLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tZGVhbGVyLW5hbWUtY29sb3I6IzAwMDAwMDsgLS1uZXdzLWJnLWNvbG9yOiNmZmZmZmY7IC0tbmV3cy10ZXh0LWNvbG9yOiMwMDAwMDA7IC0tZXhpdC1wb3B1cC1iZ2NvbDo7IC0tdXNlZC1vZmZlci1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLXVzZWQtb2ZmZXItYnRuLWJnLWNvbG9yOiNjYzAwMDA7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWZpbmFuY2UtYnRuLWJnLWNvbG9yOiMzMmE3ZGE7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvci1uZXdpbnY6IzAwMDAwMDsgLS1maW5hbmNlLWJ0bi1iZy1jb2xvci1uZXdpbnY6IzAwMDAwMDsgLS1tZW51LWhvdmVyLXRleHQtY29sb3I6IzAwMDAwMDsgLS1tZW51LWhvdmVyLWJnLWNvbG9yOiNmZmZmZmY7IC0tbWVudS1iZy1jb2xvcjpyZ2IoNTAsMTY3LDIxOCk7IC0tbWFpbi1tZW51LWJnLWNvbG9yOnJnYig1MCwxNjcsMjE4KTsgLS1kZWFsZXItYWRkcmVzcy1jb2xvcjojMDAwMDAwOyAtLWRlYWxlci1hZGRyZXNzLWZvbnQtc2l6ZToxNDsgLS13aGl0ZTojZmZmOyAtLWxpZ2h0OiNmNmY2ZjY7IC0tbGlnaHQtZ3JheTojZWZlZmVmOyAtLW1pZC1ncmF5OiNkZGQ7IC0tZ3JheTojOTk5OyAtLWNudHItZ3JheTojNzY3Njc2OyAtLWRhcmstZ3JheTojNjY2OyAtLWJsYWNrLWdyYXk6IzMzMzsgLS1ibGFjazojMDAwOyAtLWJvcmRlci10aGluOjFweDsgLS1ib3JkZXItdGhpY2s6MnB4OyAtLXR4dC11cHBlcjp1cHBlcmNhc2U7IC0tZm9udC1tZW51OkF2ZW5pcjsgLS1mb250LW1lbnUtbW9iOkF2ZW5pcjsgLS1mb250LW1lbnUtd2VpZ2h0OjQwMDsgLS1mb250LWgxOkF2ZW5pcjsgLS1mb250LWgxLW1vYjpBdmVuaXI7IC0tZm9udC1oMS13ZWlnaHQ6NDAwOyAtLWZvbnQtaDI6QXZlbmlyOyAtLWZvbnQtaDItbW9iOkF2ZW5pcjsgLS1mb250LWgyLXdlaWdodDo0MDA7IC0tZm9udC10ZXh0OkF2ZW5pcjsgLS1mb250LXRleHQtbW9iOkF2ZW5pcjsgLS1mb250LXRleHQtd2VpZ2h0OjQwMDsgLS1mb250LWJ1dHRvbnM6QXZlbmlyOyAtLWZvbnQtYnV0dG9ucy1tb2I6QXZlbmlyOyAtLWZvbnQtYnV0dG9ucy13ZWlnaHQ6NDAwOyAtLWNvcm5lci1yaWJib24tYmctY29sb3I6IzMyYTdkYTsgLS1jb3JuZXItcmliYm9uLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLWJhbm5lci1zZWFyY2gtYmFyLXZpZGVvLW9wYWNpdHk6MzA7IC0taG9tZXBhZ2Utc29jaWFsLWJnLWNvbG9yOjsgLS1ob21lcGFnZS1zb2NpYWwtdGV4dC1jb2xvcjojMDAwMDAwOyAtLWhvbWVwYWdlLXNvY2lhbC1sb2dvLWNvbG9yOiMxODc3RjI7IC0tcHJvbW90aW9uLWJhY2tncm91bmQtY29sb3I6I0Q2RDZENjsgLS1wcm9tb3Rpb24tdGV4dC1jb2xvcjojMDAwMDAwOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYmc6OyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfY29sb3I6OyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYnRuX2JnOjsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2J0bl9jb2xvcjo7IC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlOiNmZjAwMDA7IC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dDojMzJhN2RhOyAtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yOiNmZmZmZmY7IC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtYmctY29sb3I6I2NjMDAwMDsgLS10cmFkZWluYmFyLWJ0bi1iZzojMmZiZjE5OyAtLXRyYWRlaW5iYXItYnRuLWNvbG9yOiNmZmZmZmY7IC0tZGVmYXVsdC1ibGFjay10ZXh0OiMwMDAwMDA7IC0tcHJvbW8tYnRuLWJnLWNvbG9yOiNmZjAwMDA7IC0tdHJhZGVpbmJhci1iZzojZTllOWU5OyAtLXRyYWRlaW5iYXItY29sb3I6IzJmYmYxOTsgLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yOiMwMDAwMDA7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZzojMDAwMDAwOyAtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLWFsZXJ0LWJhci10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLS10b3AtcHJvbW8tYnRuLWJnLWNvbG9yOnJnYig1MCwxNjcsMjE4KTsgLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3I6OyAtLWRpZ2l0YWwtcmV0YWlsaW5nLWRyYXdlci13aWR0aDolOyB9ICogeyBib3JkZXItY29sb3I6aW5oZXJpdDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItd2lkdGg6MDsgZm9udC1mYW1pbHk6aW5oZXJpdDsgbGluZS1oZWlnaHQ6MS4yZW07IH0gb2wsIHVsLCBtZW51IHsgbGlzdC1zdHlsZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGEgeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6aW5oZXJpdDsgfSBoMSxoMixoMyxoNCxoNSxoNiwgcCB7IG1hcmdpbjowOyB9IGgxLGgyLGgzLGg0LGg1LGg2eyBmb250LXNpemU6aW5oZXJpdDsgZm9udC13ZWlnaHQ6aW5oZXJpdDsgfSBpbWcgeyBtYXgtd2lkdGg6MTAwJTsgfSB0YWJsZSB7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgfSB0ZXh0YXJlYSB7IHdoaXRlLXNwYWNlOnJldmVydDsgfSA6d2hlcmUoW2hpZGRlbl0peyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSA6d2hlcmUoW2NvbnRlbnRlZGl0YWJsZV0peyAtbW96LXVzZXItbW9kaWZ5OnJlYWQtd3JpdGU7IC13ZWJraXQtdXNlci1tb2RpZnk6cmVhZC13cml0ZTsgb3ZlcmZsb3ctd3JhcDpicmVhay13b3JkOyBsaW5lLWJyZWFrOmFmdGVyLXdoaXRlLXNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6YWZ0ZXItd2hpdGUtc3BhY2U7IH0gOndoZXJlKFtkcmFnZ2FibGU9InRydWUiXSkgeyAtd2Via2l0LXVzZXItZHJhZzplbGVtZW50OyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29udGFpbmVyLWZsdWlkeyBvdmVyZmxvdy14OmhpZGRlbjsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgLmNvbnRhaW5lci1mbHVpZCAqIHsgbGluZS1oZWlnaHQ6aW5pdGlhbDsgfSAuY2tlZGl0b3JXcmFwcGVyeyBvdmVyZmxvdy14OmhpZGRlbjsgc2Nyb2xsYmFyLXdpZHRoOm5vbmU7IH0gKiB7IGZvbnQtdmFyaWFudC1udW1lcmljOmxpbmluZy1udW1zOyB9Ci8qKiAvY3NzL3YyL25hdi5jc3MgKiovCmhlYWRlci5tb2JpbGUtaGVhZGVyeyAtLXR4dC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjMuMnJlbTsgYm94LXNoYWRvdzpyZ2JhKDAsIDAsIDAsIDAuNSkgMCAwIDVweCAzcHg7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1jb2xvci1tb2IsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10eHQtY29sb3IpOyB6LWluZGV4OjEwMDA7IH0gZGl2Lm1vYmlsZS1oZWFkZXItc3BhY2VyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwdnc7IGhlaWdodDozLjJyZW07IGRpc3BsYXk6YmxvY2s7IH0gaGVhZGVyLm1vYmlsZS1oZWFkZXIgPiAqICsgKiB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBoZWlnaHQ6MTAwJTsgfSBoZWFkZXIubW9iaWxlLWhlYWRlci50YWxsID4gKiArICp7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCAjZGRkOyBmbGV4OjEgMSBhdXRvOyB9IGhlYWRlciAubG9nby1hY3Rpb24gfiAqIHsgbWluLXdpZHRoOjIuNXJlbTsgfSAuaGVhZGVyLWRlYWxlci1uYW1lIHsgY29sb3I6aW5oZXJpdDsgZm9udC1zaXplOnZhcigtLWZzLTEpOyAtLWZzOnZhcigtLWZzLTEpOyB9IGhlYWRlciBhc2lkZXsgLS10eHQtY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyLjk1cmVtOyBsZWZ0Oi0xOXJlbTsgd2lkdGg6bWluKDgwdncsIDE5cmVtKTsgbWluLWhlaWdodDoxMDB2aDsgZm9udC1zaXplOnZhcigtLWZzKTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMzAwbXMgZWFzZS1pbjsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvcik7IG1heC1oZWlnaHQ6MTAwdmg7IG92ZXJmbG93OmF1dG87IHotaW5kZXg6MTAwOyB9IG5hdnsgLS1mczp2YXIoLS1mczEpOyBmb250LXNpemU6dmFyKC0tZnMpOyB9IG5hdiAubWVudS1pdGVtLCBuYXYgLnN1Ym1lbnUtaXRlbSB7IHBhZGRpbmc6dmFyKC0tcyk7IH0gbmF2IC5tZW51LWl0ZW17IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSBuYXYgLm1lbnUtaXRlbS5pbnZlcnNlLWNvbG9yeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IG5hdiAuc3VibWVudS1pdGVteyBib3JkZXItY29sb3I6dmFyKC0tZ3JheSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLWV4KTsgfSBuYXYgLnN1Ym1lbnUtaXRlbSBzdmcuaWNvbiB7IGZpbGw6dmFyKC0tdGFiLXRleHQtY29sb3ItbW9iLWV4LCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9IG5hdiAubWVudS1ncm91cCB7IGJvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IG5hdiAubWVudS1ncm91cCB+IC5tZW51LWdyb3VwIHsgYm9yZGVyLXRvcC13aWR0aDowOyB9IG5hdiAubWVudUNvbGxwYXNlIHN2Z3sgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOyB9ICNob21lbmF2IG5hdnsgLS10eHQtY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVteyBiYWNrZ3JvdW5kOnZhcigtLXRhYi1jb2xvci1tb2IsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW0uaW52ZXJzZS1jb2xvcnsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAjaG9tZW5hdiBuYXYgLnN1Ym1lbnUtaXRlbXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3ItbW9iLWV4LCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3ItbW9iLWV4LCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9ICNob21lbmF2IG5hdiBsaXsgcGFkZGluZy10b3A6dmFyKC0tcy04KTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbXsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVtLkxBTkdVQUdFeyBkaXNwbGF5Om5vbmU7IH0gLmJ1cmdlci1tZW51LWNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmJ1cmdlcl90b3AgeyB0cmFuc2Zvcm0tb3JpZ2luOjAgNTAlOyB9IC5idXJnZXJfYm90dG9tIHsgdHJhbnNmb3JtLW9yaWdpbjowIDUwJTsgfSAuYnVyZ2VyLW1lbnUtYnV0dG9uID4gc3BhbiB7IHdpZHRoOjEuNnJlbTsgaGVpZ2h0OjAuMjVyZW07IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yLW1vYik7IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC40cyBlYXNlOyB6LWluZGV4OjEwMTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfdG9wLCAjYm1fYm90dG9tX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX3RvcHsgb3BhY2l0eToxOyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoMC4xcmVtLCAwKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfbWlkZGxlLCAjYm1fYm90dG9tX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX21pZGRsZXsgb3BhY2l0eTowOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIHNjYWxlKDAuMiwgMC4yKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfYm90dG9tLCAjYm1fYm90dG9tX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX2JvdHRvbXsgb3BhY2l0eToxOyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZykgdHJhbnNsYXRlKDAuMXJlbSwgMCk7IH0gI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiB+IGFzaWRleyB0cmFuc2Zvcm06dHJhbnNsYXRlKDE5cmVtKTsgfSBsYWJlbFtmb3I9ImJtX3RvZ2dsZSJdeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTAyOyB9IC50aGluTGVmdCAuaGVhZGVyLWRlYWxlci1uYW1lIHsgZm9udC1zaXplOnZhcigtLWZzMCk7IG1hcmdpbi1sZWZ0OjhweDsgfSAudGhpbkxlZnQgLmxvZ28tYWN0aW9uIGEgeyBmbGV4LWJhc2lzOjE1JSB9IGhlYWRlci50aGluTGVmdCBhc2lkZSB7IGxlZnQ6dW5zZXQ7IHJpZ2h0OjA7IHRyYW5zZm9ybTpzY2FsZVgoMCkgdHJhbnNsYXRlWCgxOXJlbSk7IHRyYW5zZm9ybS1vcmlnaW46MTAwJSA1MCU7IH0gLnRoaW5MZWZ0ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gfiBhc2lkZXsgdHJhbnNmb3JtOnVuc2V0OyB9Ci8qKiAvY3NzL3NrZWxldG9uLmNzcyAqKi8KLmhpZGVPblByZUxvYWQgeyB2aXNpYmlsaXR5OmhpZGRlbjsgfSAucmV2ZWFsLW1vZGFsIHsgdmlzaWJpbGl0eTpoaWRkZW47IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTEwMDBweDsgfSAuc2tlbGV0b24geyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZDojZWVlOyB9IC5za2VsZXRvbjo6YmVmb3JlIHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NDsgY29udGVudDoiIjsgZm9udC1zaXplOjAuNzVyZW07IGxpbmUtaGVpZ2h0OjAuNzVyZW07IGNvbG9yOiM4ODg7IGFuaW1hdGlvbjpza2VsZXRvbi1hbmltIDJzIGxpbmVhciBpbmZpbml0ZTsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgbGV0dGVyLXNwYWNpbmc6MC4yNXJlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyB9IEBrZXlmcmFtZXMgc2tlbGV0b24tYW5pbSB7IDAlIHsgY29udGVudDoiIjsgfSAyNSUgeyBjb250ZW50OiJ8IjsgfSA1MCUgeyBjb250ZW50OiJ8fCI7IH0gNzUlIHsgY29udGVudDoifHx8IjsgfSB9IC5za2VsZXRvbiBkaXY6Zmlyc3QtY2hpbGQsIC5za2VsZXRvbiBzcGFuOmZpcnN0LWNoaWxkIHsgb3BhY2l0eTowOyB0cmFuc2l0aW9uOm9wYWNpdHkgLjMwMHM7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIHsgYmFja2dyb3VuZDpub25lOyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZCB7IHdpZHRoOmluaGVyaXQgIWltcG9ydGFudDsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyB7IGJhY2tncm91bmQ6dW5zZXQ7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3cgZGl2OmZpcnN0LWNoaWxkLCAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyBzcGFuOmZpcnN0LWNoaWxkIHsgb3BhY2l0eToxOyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93OjpiZWZvcmUgeyBjb250ZW50OiIiOyBkaXNwbGF5Om5vbmU7IGFuaW1hdGlvbjp1bnNldDsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIuZml4ZWQuaXMtbG9hZGVkLW5vdyA+IGRpdjpmaXJzdC1jaGlsZCB7IG9wYWNpdHk6Ljc1OyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZC5pcy1sb2FkZWQtbm93ID4gZGl2OmZpcnN0LWNoaWxkOmhvdmVyIHsgb3BhY2l0eToxOyB9Ci8qKiAvY3NzL2Nzcy5jc3MgKiovCmh0bWwsIGJvZHksIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGZvbnQsIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkIHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSBodG1seyBmb250LXNpemU6MXJlbSA7IH0gYm9keSB7IHBhZGRpbmc6MDsgbWFyZ2luLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LWZhbWlseTp2YXIoLS1mb250LXRleHQpOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgYmFja2dyb3VuZDogdG9wIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyB9IGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBidXR0b24geyBmb250LWZhbWlseTp2YXIoLS1mb250LXRleHQpOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgfSAubmF2IGxpIGEudG9wX2xpbmssIC51cF9tZW51IHVsLm5hdiB1bC5zdWIgbGkgYS5zdWJ0aXRsZSwgLmltZ19tZW51LnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9ORVc+dWwuc3ViIGxpPnVsLnN1Yj5saS5oYXNTdWIgbGkgYSwgYm9keSAud3JhcHBlciAudXBfbWVudSAubmF2eyBmb250LWZhbWlseTp2YXIoLS1mb250LW1lbnUpOyBmb250LXdlaWdodDp2YXIoLS1mb250LW1lbnUtd2VpZ2h0KTsgfSBoMXsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1oMSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDEtd2VpZ2h0KTsgY2xlYXI6Ym90aDsgfSAuZm4ub3JneyBmb250LWZhbWlseTp2YXIoLS1mb250LWgxKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyB9IGlucHV0W3R5cGU9YnV0dG9uXSwgYnV0dG9uLmpxVHJhbnNmb3JtQnV0dG9uIHNwYW4gc3BhbiwgLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhLCAuYnV0dG9uXzMgYSwgLmJ1dHRvbl91bmRlciBhLCAuYnV0dG9uX2NtcF9sZWZ0IGEsIC5idXR0b25fY21wX3JpZ2h0IGEsIC5idXR0b25fY21wX2FjdCBhLCAucHVsbG91dHMgYSwgLmlkTmF2MSBsaSBhLnRvcF9saW5rMSwgLmN0YV9wcmljZS5hbHQsIC5jdGFfY3JlZGl0LmFsdCwgLmN0YV90ZXN0RHJpdmUsIC5jdGFfZXZhbC5hbHQsIC5jdGFfc2VydmljZS5hbHQsIC5jdGFfcGFydHMuYWx0LCAuY3RhX3RpcmVzLmFsdCwgLmN0YV9zdmNwcm9tby5hbHQsIC5ib3gxNSBoMiBhLCAuYm94MTkgaDIgYSwgLmJveDI3IGEsIC52aW9yLCAuYnRuLWRlZmF1bHQsIC5idG4tc20sIC5idG4tbGcgeyBmb250LWZhbWlseTp2YXIoLS1mb250LWJ1dHRvbnMpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWJ1dHRvbnMtd2VpZ2h0KTsgfSBoMixoMyxoNCxoNSxoNnsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1oMik7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgfSBzdHJvbmd7IGZvbnQtd2VpZ2h0OjkwMCAhaW1wb3J0YW50OyB9ICNtYWluRGl2LndyYXBwZXIgLnRvcF9iZ3sgbWF4LWhlaWdodDoyNTBweDsgbWluLWhlaWdodDoxMTVweDsgfSAuaGVhZGVyLWltYWdlLXdyYXBwZXIgaW1nLmltYWdlLXBhZGRpbmcgeyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gLmNrZWRpdG9yV3JhcHBlciBoMiB7IG1hcmdpbi1sZWZ0OjBweCAhaW1wb3J0YW50OyBtYXJnaW4tcmlnaHQ6MHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6MTVweCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjE1cHggIWltcG9ydGFudDsgfSAuY2tlZGl0b3JXcmFwcGVyIGEgeyBmbG9hdDpub25lICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjBweCAhaW1wb3J0YW50OyBmb250LXNpemU6MTAwJSAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgcCB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgfSAuY2tlZGl0b3JXcmFwcGVyIHA6ZW1wdHkgeyBtYXJnaW4tYm90dG9tOjFyZW07IH0gLmNscnsgY2xlYXI6Ym90aDt9IC5mbGVmdHsgZmxvYXQ6bGVmdDsgfSBpbnB1dDppbnZhbGlke2JveC1zaGFkb3c6bm9uZTsgLW1vei1ib3gtc2hhZG93Om5vbmU7fSAuY29uZGl0aW9ucy0tY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3c7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tYm90dG9tOjhweDsgfSAuY29uZGl0aW9ucy0tY29udGFpbmVyIC5jb25kaXRpb25zIHsgZmxleC1ncm93OjI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IGNvbG9yOiM2NjY2NjY7IH0gLmNvbmRpdGlvbnNGb290ZXJ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7IGNvbG9yOiM2NjY2NjY7IH0gLmNvbmRpdGlvbnMtLWNvbnRhaW5lciBhLCAuY29uZGl0aW9uc0Zvb3RlciBhIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM2NjY2NjY7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgYXsgY29sb3I6aW5oZXJpdDsgfSAubWFpbkRpdi13cmFwcGVyID4gLmxhbmd1YWdlQmFyLXplcm8geyBtYXJnaW46MDsgaGVpZ2h0OmluaGVyaXQ7IHdpZHRoOjEwMCU7IH0gLmhlYWRlci1zZWN0aW9uIC5sYW5ndWFnZUJhciB7IG1hcmdpbjowIGF1dG8gMi43NXJlbTsgd2lkdGg6aW5oZXJpdDsgfSAuaGVhZGVyLXNlY3Rpb24gLmxhbmd1YWdlQmFyICsgLnBob25lIHsgbWFyZ2luLWJvdHRvbTowLjVyZW07IH0gLmxhbmd1YWdlQmFyIHVsIGE6aG92ZXJ7Zm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzY2NjY2NjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5sYW5ndWFnZUJhciB1bCBhOnZpc2l0ZWR7cGFkZGluZy1yaWdodDozNXB4OyB3aWR0aDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2NjY2OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB0ZXh0LWFsaWduOnJpZ2h0O30gLmxhbmd1YWdlQmFyLmxhbmd1YWdlQmFyLXplcm8geyBoZWlnaHQ6MDsgcGFkZGluZzowOyBtYXJnaW46MDsgfSAjbWFpbkRpdi53cmFwcGVyLm5vLWljb25zIHsgcGFkZGluZy10b3A6MC4wMXJlbTsgfSAudG9wX3JvdXsgd2lkdGg6OTYwcHg7IGhlaWdodDo0cHg7IGZsb2F0OmxlZnQ7IH0gLmxvZ297IH0gLmxvZ29Ob1BhZGRpbmcgaW1neyB3aWR0aDoxMDAlO30gLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbiwgLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbnsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBmb250LXNpemU6MC43NXJlbSA7IHdpZHRoOjI4cHg7IGhlaWdodDoyNnB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXI6MXB4IHNvbGlkICNCNkI3Qjk7IGNvbG9yOiNCNkI3Qjk7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uLmFjdGl2ZSwgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpob3ZlcnsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojQjZCN0I5OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IH0gLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbjpudGgtY2hpbGQoZXZlbiksIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246bnRoLWNoaWxkKGV2ZW4peyBtYXJnaW4tbGVmdDoycHg7IH0gLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbiBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCwgLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbiBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH0gLmxvZ29Ob1BhZGRpbmd7IG1heC13aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTRweDt9IC52LWNhcmQudG9wX2JnIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IH0gLnYtY2FyZC50b3BfYmcuLW10MCAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpIHsgbWFyZ2luLXRvcDo3NHB4OyB9IC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6ZmxleDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciB7IG1pbi1oZWlnaHQ6OTdweDsgfSAuaGVhZGVyLXNlY3Rpb24uaW1hZ2UgeyB3aWR0aDoyNSU7IH0gLmhlYWRlci1zZWN0aW9uLmltYWdlID4gLmhlYWRlci1pbWFnZS13cmFwcGVyIGltZyB7IG1heC1oZWlnaHQ6MjUwcHg7IH0gLmhlYWRlci1zZWN0aW9uID4gZGl2IHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZSB7IHdpZHRoOmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246cmlnaHQ7IHBhZGRpbmc6MC41cmVtIDA7IH0gLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKS5pbWFnZSB7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9yaWdodHsgdGV4dC1hbGlnbjpyaWdodDsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX2xlZnQgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmhlYWRlci1zZWN0aW9uID4gLnYtY2FyZCB7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZXsgZGlzcGxheTpmbGV4OyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgLm11bHRpLWFkZHJlc3MtLXBob25leyB3aWR0aDphdXRvOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSAubXVsdGktYWRkcmVzcy0tcGhvbmUgaXsgZm9udC1zaXplOjAuNjI1cmVtIDsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5tdWx0aS1hZGRyZXNzIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7IH0gLm11bHRpLWFkZHJlc3MtLXBob25lIHsgd2lkdGg6MTMzcHg7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IH0gLm11bHRpLWFkZHJlc3MgaSB7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAudG9wX2JnIHRhYmxlIHRib2R5IHRkOm50aC1jaGlsZCgyKSAuaGVhZGVyLXNlY3Rpb24geyB3aWR0aDoxMDAlOyB9IC50b3BfYmcuZGl2VGFibGUgLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKSB7IHRleHQtYWxpZ246cmlnaHQ7IH0gLnRvcF9iZyB0YWJsZSB0ZCAuaGVhZGVyLXNlY3Rpb24geyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucGhvbmUgaDJ7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZSBoMXsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmUgZGl2Lm9yZ3sgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmVfdGV4dCB7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDoycHg7IHBhZGRpbmctdG9wOjJweDt9IC5waG9uZV90ZXh0IGF7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWxsLWNoYW5nZTp0cmFuc2Zvcm07IHRyYW5zZm9ybS1vcmlnaW46cmlnaHQgY2VudGVyOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7IH0gLnBob25lX3RleHQgYTpob3ZlcnsgdHJhbnNmb3JtOnNjYWxlKDAuOTMpOyBjb2xvcjojMDA1NzljOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBhLnBob25lLWxpbmsgeyBkaXNwbGF5IDppbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgcGFkZGluZyA6MCAhaW1wb3J0YW50OyBjb2xvciA6aW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uIDpub25lOyB9IGEucGhvbmUtbGluazpob3ZlciB7IGNvbG9yOmluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNzbGlkZXJ7IHdpZHRoOjk2MHB4OyBtYXJnaW4tbGVmdDowcHg7IGJveC1zaGFkb3c6bm9uZTsgfSAuY2VudGVyZWQge3Bvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUwJTsgdG9wOjUwJTt9IC51cF9tZW51eyB3aWR0aDo5NjBweDsgaGVpZ2h0OjMxcHg7IHotaW5kZXg6MTExMTsgZmxvYXQ6cmlnaHQ7d2hpdGUtc3BhY2U6bm93cmFwOyB9IC5iYW5uZXJ7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MzAxcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjJweDsgbWFyZ2luLWJvdHRvbTo2cHg7IH0gLm1lX3RvcHsgd2lkdGg6OTY3cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAubWVfYmd7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZV9iZ19yb3UucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5tZV9kZXNje21hcmdpbjowcHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjAuODc1cmVtIDsgb3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NXB4IDE1cHh9IC5tZV9ib3V7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm9uZXsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDt9IC50d297IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTRweDsgbWFyZ2luLXRvcDo4cHg7fSAudGhyZWV7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTRweDsgbWFyZ2luLXRvcDo4cHg7fSAuZm91cnsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo0cHg7IG1hcmdpbi10b3A6NHB4O30gLlZvdXN7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbToycHg7fSAuY2xhc3N7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTowcHg7IHBhZGRpbmctdG9wOjZweDt9IC5jbGFzczF7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBoZWlnaHQ6MTU3cHg7IG1hcmdpbi10b3A6NnB4O30gLmJvcmRlcntib3JkZXI6MXB4IHNvbGlkICNkM2QzZDM7IHdpZHRoOjIxOHB4O30gLmJveHsgd2lkdGg6NzVweDsgaGVpZ2h0OjczcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLXRvcDoxMHB4OyBtYXJnaW46MCBhdXRvO30gLmNhe2hlaWdodDoxNDNweDt9IC5ib3gyMjV7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206M3B4O30gLmJveDIyNHsgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctYm90dG9tOjZweDt9IC5ib3gyMjN7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDozcHg7fSAubm9zeyB3aWR0aDo3MTBweDsgaGVpZ2h0OjEwMCU7IG1hcmdpbi10b3A6NXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gLm5vc190b3B7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm5vc19iZ3sgd2lkdGg6NzE2cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL25vc19iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLm5vc19ib3V7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm5vc190ZXh0e2hlaWdodDozMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYXJvd3sgd2lkdGg6Njk1cHg7IGhlaWdodDoxNjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NHB4O30gLmNvbnsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzNjM2MzYzt9IC5kZXNjIHttYXgtd2lkdGg6MTAwJTt9IC5kZXNjX2JnIHt3aWR0aDoxMDAlOyBoZWlnaHQ6MjQ4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL25vc19iZy5wbmciKSByZXBlYXQteSBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7fSAuYWRkcnttYXJnaW4tdG9wOjI1cHg7fSAuYWRkcl9taWR7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZV9iZ19yb3UucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5oaWRkZW57ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fSAuaG91cnNfcmVtIHsgdGV4dC1hbGlnbjpyaWdodDtsaW5lLWhlaWdodDoxOHB4OyBmbG9hdDpyaWdodDtwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLmhvdXJzX3JlbSBheyBmb250LXNpemU6MC42ODhyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbHt3aWR0aDo2MHB4OyBmbG9hdDpsZWZ0O30gLmRlcnt3aWR0aDo0NjBweDsgaGVpZ2h0OjI1NXB4OyBtYXJnaW4tdG9wOjFweDsgZmxvYXQ6bGVmdDt9IC5kZXJfdG9weyB3aWR0aDo0NjRweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5kZXJfYmd7IHdpZHRoOjQ0NHB4OyBoZWlnaHQ6MjI2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6NnB4IDEwcHggMTBweCAxMHB4O30gLmRlcl9ib3V7IHdpZHRoOjQ2NHB4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLmRlbXt3aWR0aDo0OTVweDsgaGVpZ2h0OjI1NXB4OyBtYXJnaW4tdG9wOjNweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4O21hcmdpbi1ib3R0b206NnB4O30gLnNib3gxeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDJ7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94M3sgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3g0eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuYm90dG9tNGJveGVze2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTtwYWRkaW5nOjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30gLmJvdHRvbTRib3hlcyAqIHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fSAuYm90dG9tNGJveGVzID4gLmJveDI0NXtmbG9hdDpsZWZ0O3dpZHRoOjI1JTttYXgtd2lkdGg6MjQ1cHg7fSAuYm90dG9tNGJveGVzID4gLmJveDI0MXtmbG9hdDpsZWZ0O21hcmdpbjoxMHB4IDZweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjBweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjBweDt9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmJvdHRvbTRib3hlcyB0YWJsZSB7IHBhZGRpbmc6MCAxMHB4OyB9IH0gLnNib3hVc2VkeyBmbG9hdDpsZWZ0OyB9IC5zYm94X3RvcHsgd2lkdGg6MjQ3cHg7IGhlaWdodDo1cHg7IGZsb2F0OmxlZnQ7fSAuc2JveF9iZ3sgd2lkdGg6MjQ3cHg7IGhlaWdodDoxMDdweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zYm94X2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyO30gLnNib3hfYm91eyB3aWR0aDoyNDdweDsgaGVpZ2h0OjVweDsgZmxvYXQ6bGVmdDt9IC5kYXsgbWFyZ2luLXRvcDoxMnB4O30gLmRhMXsgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5kYTEgaDF7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpub3JtYWw7fSAuYWRkbGluZXsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI3JldHVyblBvcHVwTmV4dE1vZGVseyBoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7IH0gLmFkZGxpbmU6OmJlZm9yZSwgLmFkZGxpbmU6OmFmdGVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBjb250ZW50OiIiOyBkaXNwbGF5OmlubGluZS1ibG9jazsgaGVpZ2h0OjFweDsgcG9zaXRpb246cmVsYXRpdmU7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NTAlOyB9IC5hZGRsaW5lOmJlZm9yZSB7IHJpZ2h0OjAuNWVtOyBtYXJnaW4tbGVmdDotNTAlOyB9IC5hZGRsaW5lOmFmdGVyIHsgbGVmdDowLjVlbTsgbWFyZ2luLXJpZ2h0Oi01MCU7IH0gLnNib3gxIGEuY0xpbmssIC5zYm94MiBhLmNMaW5rLCAuc2JveDMgYS5jTGluaywgLnNib3g0IGEuY0xpbmt7IGRpc3BsYXk6YmxvY2s7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuc2JveDEgYS5jTGluazpob3ZlciwgLnNib3gyIGEuY0xpbms6aG92ZXIsIC5zYm94MyBhLmNMaW5rOmhvdmVyLCAuc2JveDQgYS5jTGluazpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0LCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiMzMmE3ZGE7IGNvbG9yOiMwMDAwMDA7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiBhLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgYSB7IGNvbG9yOiMzMmE3ZGE7IGNvbG9yOiMwMDAwMDA7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiAuYm9yZGVyX2JveCwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0IC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBjb2xvcjppbmhlcml0OyB9IC5ibGFja190ZXh0eyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzE5MTkxOTsgbWFyZ2luLWJvdHRvbTo0cHg7fSAuZ3JheV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMTkxOTE5O30gLmJ1dHsgZmxvYXQ6cmlnaHQ7IG1hcmdpbjowcHggMHB4IDBweCAwcHg7fSAubGluZXsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2QyZDJkMjsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1ib3R0b206NXB4O30gLnZpdnsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiNmZmY7IGNvbG9yOiMzMmE3ZGE7IHRleHQtYWxpZ246anVzdGlmeTt9IC50d3sgd2lkdGg6MjYwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IHRleHQtYWxpZ246cmlnaHQ7fSAuRU5HTElTSCAudml2e3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuTWFpbkJveExheWVyIC52aXYgeyBtYXJnaW4tbGVmdDowOyB9IC5zb2NpYWwtc2hhcmluZ3sgd2lkdGg6MTAwJTsgY2xlYXI6Ym90aDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi10b3A6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWx7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nLWxlZnQ6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6bGFzdC1jaGlsZHsgcGFkZGluZy1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpmaXJzdC1jaGlsZHsgcGFkZGluZy1yaWdodDo1cHg7IH0gLk1haW5Cb3hMYXllciAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjA7IH0gI2Zvb3RlckRpdiAuYWRkLCAjZm9vdGVyRGl2IC5hZGQgYSB7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgfSAjZm9vdGVyRGl2IC5hZGQgLm9yZ3sgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAucG91cnsgd2lkdGg6NzI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLnBhZ2Vub3t3aWR0aDoyMzZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjVweDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi10b3A6MTBweDsgfSAucGFnZW5vIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjAgMCAxNXB4IDA7IHBhZGRpbmc6MDsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAucGFnZW5vIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7ZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5wYWdlbm8gdWwgbGkgYXsgd2lkdGg6MjM3cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vIHVsIGxpIHNwYW4sIC5wYWdlbm8gdWwgbGkgYS5mdGl0bGV7IHdpZHRoOjIzNnB4OyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZTpob3ZlcnsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnBhZ2VubyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLnBhZ2VubyBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6MThweDt9IC5FTkdMSVNIIC5wYWdlbm8gdWwgbGkgYXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO30gLmFkZHsgd2lkdGg6MjMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOnJpZ2h0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4O30gLmNvcHl7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7fSAuY29weSBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyBmb250LXdlaWdodDpub3JtYWx9IC5jb3B5IGE6aG92ZXJ7IGNvbG9yOiNkNGQ0ZDQ7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuZm9vdGVyLWxpc3RzIGxpID4gc3BhbiB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IH0gI2Zvb3RlcldyYXBwZXIgLnYtY2FyZC5hZGQgeyBsaW5lLWhlaWdodDppbml0aWFsOyB9ICNmb290ZXIgLmZvb3Rlci10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wsIHZhcigtLXdoaXRlKSk7IH0gLkVOR0xJU0ggI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDp2YXIoLS1zNSk7IH0gI2Zvb3RlciA+IC5mbGV4LWJveCA+IC5mb290ZXItbG9nb19fY29udGFpbmVyIGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0OjE1MHB4OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLW1lZGlhLWljb25zIHsgdGV4dC1hbGlnbjpsZWZ0OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgeyB3aWR0aCA6YXV0bzsgaGVpZ2h0OmF1dG87IG1hcmdpbjowIDRweDsgfSAjZm9vdGVyIGEuc29jaWFsLWxpbmsgPiBzdmcgeyBoZWlnaHQ6MjJweDsgbWFyZ2luLWxlZnQ6M3B4OyB9IGhlYWRlciAuaGVhZGVyLXNvY2lhbCAjc29jaWFsX21lZGlhX2ljb25zX2RpdiA+IGEgPiBzdmcgeyBoZWlnaHQ6MjFweDsgbWFyZ2luLXRvcDo0cHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyAuc29jaWFsLWljb25zIC5mYWIgeyBtYXJnaW4tdG9wOjA7IGZvbnQtc2l6ZSA6MS45ZW07IGNvbG9yIDp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjFyZW07IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5mb290ZXItbG9nb19fY29udGFpbmVyIHsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjE4MHB4OyBtYXgtaGVpZ2h0OjEwMHB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9sZWZ0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gI2Zvb3RlciB7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6OTk5cHgpIHsgI01haW5NZW51X1NFQVJDSF9CQVIgeyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkuZmlyc3RNZW51IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgeyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgPiB1bC5zdWIgeyByaWdodDoxMHB4OyB9IC5sYW5ndWFnZUJhciBkaXY6Zmlyc3Qtb2YtdHlwZSB7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5tZW51NyAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTggLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0xNjBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMzAwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IH0gLmRpdlNwYW4ucGFnZW5vIHsgbWFyZ2luLWxlZnQ6MDsgfSAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgc3BhbiwgLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEuZnRpdGxlIHsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWF4LXdpZHRoOjIyNXB4OyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAuYWRyIHsgbGluZS1oZWlnaHQ6MS4ycmVtOyBtYXJnaW46MC41cmVtIDA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZm9vdGVyLXRpdGxlX19jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOjJyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjMgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjE1cHg7IHBhZGRpbmctcmlnaHQ6MzBweDsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLmRpdlNwYW45IHsgZmxvYXQ6cmlnaHQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyBmbG9hdDp1bnNldDsgY2xlYXI6dW5zZXQ7IG1hcmdpbjowOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbC1zaGFyaW5nIHsgd2lkdGg6MjUlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6NzUlOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxcmVtOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWw6Zmlyc3QtY2hpbGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9ICNmb290ZXIgLmljb24tdGV4dHsgbWFyZ2luLWJvdHRvbTouNHJlbTsgfSAjZm9vdGVyIC5pY29uLXRleHQgc3Bhbnsgd2lkdGg6MjBweDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2Zvb3RlciAuZm4ub3JnIHsgbGluZS1oZWlnaHQ6Mi4wNjI1cmVtOyB9IC5zbWFsbHBpY19ib3h7d2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDt9IC5zbWFsbHBpYzQze3dpZHRoOjQzcHg7IGhlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA1cHggMCAwOyBib3JkZXI6MnB4IHNvbGlkICNGRkZGRkY7fSAuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgZGlzcGxheTpibG9jazsgfSBhLmRldGFpbHN7d2lkdGg6ODFweDsgaGVpZ2h0OjMwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGV0YWlscy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IGE6aG92ZXIuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCAtMzJweCBuby1yZXBlYXQ7fSAuYmlnX3BpY2JveHttaW4taGVpZ2h0OjExMHB4O3dpZHRoOjE0NnB4O30gLmJpZ19waWNib3ggaW1neyBkaXNwbGF5OmJsb2NrOyB9IC5waWNib3hfdmlkZW9idG5fZW4sIC5waWNib3hfdmlkZW9idG5fZnIge2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjQ1cHg7fSAucGljYm94X3ZpZGVvYnRuX2VuIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW4ucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2VuOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW5faG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnJfaG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAuYmlnX3BpY2JveF93cmFwcGVyIHsgd2lkdGg6MTQ2cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDEwcHggMHB4IDIxcHg7IH0gLnRleHRfdGl0bGUgYXsgZGlzcGxheTpibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxOyBmb250LXdlaWdodDpib2xkO30gLnRleHRfdGl0bGUye3dpZHRoOjMyOXB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnNvbGRfY2FyX25vdGV7YmFja2dyb3VuZC1jb2xvcjojMUUxRTFFOyBib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0ZGRjsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjE1cHg7fSAuc29sZF9jYXJfbm90ZSBhIHtjb2xvcjojRkZGO30gLnNvbGRfY2FyX25vdGUgYTpob3ZlciB7Y29sb3I6I0JCQjt9IC50ZXh0X3RpdGxlM3t3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDsgcGFkZGluZy1ib3R0b206N3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDg0ODQ4O30gLnRleHRfYm94Mnt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDBweCAwcHggMHB4OyB9IC5tYWluX3BpY2JveHt3aWR0aDo2NzFweDsgbWluLWhlaWdodDoxNzBweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMnt3aWR0aDo2ODFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyX2RldGFpbHNfbWlkRXh7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzowIDBweDtoZWlnaHQ6ODVweDt9IC5ib3gyX2RldGFpbHNfdGV4dCBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMjJ7d2lkdGg6OTcxcHg7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjk3MXB4IGF1dG87fSAuYm94MTcwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDBweCAxMHB4IDA7fSAuY3VzdG9tQm94QmFzaWN7IHdpZHRoOjI0MXB4OyBoZWlnaHQ6MTE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDAgMCAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZToyNDFweCAxMjFweDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLmN1c3RvbUJveEJhc2ljOmhvdmVyeyBjb2xvcjojZmZmOyB9IC5jdXN0b201IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMl9ob3Zlci5wbmcpOyB9IC5jdXN0b201NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjIucG5nKTsgfSAuY3VzdG9tNjY1IHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3gyM19ob3Zlci5wbmcpOyB9IC5jdXN0b202NjU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMy5wbmcpOyB9IC5jdXN0b202NzUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3LnBuZyk7IH0gLmN1c3RvbTY3NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3X2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY4NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjgucG5nKTsgfSAuY3VzdG9tNjg1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjhfaG92ZXIucG5nKTsgfSAuaW1hZ2VfcmliYm9uIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6LTVweDsgdG9wOi00cHg7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMTJweDsgaGVpZ2h0OjExMnB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5pbWFnZV9yaWJib24gc3BhbiB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyOHB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoxNDhweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojZmYwMDAwOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjMwcHg7IGxlZnQ6LTMwcHg7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgI2ZmMDAwMDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNmZjAwMDA7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDozcHggc29saWQgI2ZmMDAwMDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNmZjAwMDA7IH0gLmltYWdlX3JpYmJvbl92ZHAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTZweDsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxOTRweDsgaGVpZ2h0OjE5NHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB6LWluZGV4OjQwOyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW4geyBmb250LXNpemU6MS4wNjNyZW0gOyBjb2xvcjojZmZmZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzZweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgd2lkdGg6MjczcHg7IGRpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQ6I2ZmMDAwMDsgYm94LXNoYWRvdzowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo2N3B4OyBsZWZ0Oi01MXB4OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjMzJhN2RhOzsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMzMmE3ZGE7OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjMzJhN2RhOzsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMzMmE3ZGE7OyB9IC5yaWJib24tY29udGFpbmVyIHsgd2lkdGggOjMwMHB4OyBoZWlnaHQgOjMwMHB4OyBvdmVyZmxvdyA6aGlkZGVuOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbiB7IHotaW5kZXggOjU1NTsgbWFyZ2luIDowOyBwYWRkaW5nIDowLjVyZW0gMCAhaW1wb3J0YW50OyBib3gtc2hhZG93IDowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgZm9udC1zaXplIDoxN3B4OyBsaW5lLWhlaWdodCA6MjNweDsgdGV4dC1hbGlnbiA6Y2VudGVyOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgdHJhbnNmb3JtIDp0cmFuc2xhdGVYKC0zMCUpIHRyYW5zbGF0ZVkoMCUpIHJvdGF0ZSgtNDVkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luIDp0b3AgcmlnaHQ7IGJhY2tncm91bmQgOiMzMmE3ZGE7IGNvbG9yIDojZmZmZmZmOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSwgLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YWZ0ZXIgeyBjb250ZW50IDoiIjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IG1hcmdpbiA6MCAtMXB4OyB3aWR0aCA6MTAwJTsgaGVpZ2h0IDoxMDAlOyBiYWNrZ3JvdW5kIDojMzJhN2RhOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSB7IGxlZnQ6MTAwJTsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IHJpZ2h0OjEwMCU7IH0gLnNlYXJjaHJpZ2h0IHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsO2N1cnNvcjpwb2ludGVyOyB9IC5zZWFyY2hyaWdodGhvdmVyIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0WFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdCByZ2IoNTAsMTY3LDIxOCk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkO2N1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodGhvdmVyWFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQgcmdiKDUwLDE2NywyMTgpOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1yYWRpdXM6OHB4OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gLnNlYXJjaHJpZ2h0LXRleHR7IG1hcmdpbi1sZWZ0OjEwMHB4OyB0ZXh0LWFsaWduOmxlZnQ7IHdpZHRoOjYwJTsgfSAuc2VhcmNocmlnaHQtdGV4dCBweyBtYXJnaW46MTVweCAwIDA7IH0gLnBhZ2VubzJ7aGVpZ2h0OjI0cHg7IH0gLnBhZ2VubzIgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5wYWdlbm8yIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6aW5saW5lO30gLnBhZ2VubzIgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6I2IzYjRiNTsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5wYWdlbm8yIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiMyODI4Mjg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAucGFnZW5vMiBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6IzI4MjgyODsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5tYWluX2JveHt3aWR0aDo5NjBweDsgbWFyZ2luOjAgYXV0bzt9IC5tYWluX2xlZnRfYm94e3dpZHRoOjY3MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDtwYWRkaW5nLXJpZ2h0OjEwcHg7fSAubWFpbl9sZWZ0X2JveCB1bHtwYWRkaW5nOjBweDt9IC5ib3hfbWlkX3JvdW5kIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6bm9uZTsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IG1hcmdpbi10b3A6MTBweDsgfSAuYm94X3RvcF9yb3VuZCB7IGRpc3BsYXk6bm9uZTsgfSAuYm94Ml9kZXRhaWxzX2Zvb3RlcjIgeyBkaXNwbGF5Om5vbmU7IH0gLmRldGFpbHNfYm94IGltZy52aXB7IG1hcmdpbi10b3A6LTQ4cHg7IHdpZHRoOjE0MHB4OyBib3JkZXI6MXB4OyBib3JkZXItcmFkaXVzOjRweDsgfSAuYm94X3RvcF9yb3VuZDJ7d2lkdGg6OTcxcHg7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjk3MXB4IGF1dG87IG1hcmdpbi10b3A6NXB4O30gLmJveF9taWRfcm91bmQye3dpZHRoOjk3MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3hfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7YmFja2dyb3VuZC1zaXplOjk3MXB4IGF1dG87IHBhZGRpbmc6MCA1cHg7fSAucGFnZV9uYW1le3dpZHRoOjY1MHB4OyBoZWlnaHQ6MzBweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zaG8ucG5nKSBjZW50ZXIgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MCAwcHggMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAucGFnZV9uYW1lIGF7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnBhZ2VfbmFtZSBhOmhvdmVyeyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODljOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gdGFibGUudmVoaWNsZUxpc3RUYWJsZSBhe2Rpc3BsYXk6dGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMjt9IHRhYmxlLnZlaGljbGVMaXN0VGFibGUgYTpob3ZlcntkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTtsaW5lLWhlaWdodDoxLjI7fSAuUG9yc2NoZTJ7d2lkdGg6MTAwJTtoZWlnaHQ6MzFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAyMHB4IDIxcHg7IG1hcmdpbjoxNXB4IDAgMjVweCAwOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO2Rpc3BsYXk6aW5saW5lfSAuUG9yc2NoZTIgaDF7Zm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLlRyaWVycGFyeyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM1QjY5OUM7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6NXB4O30gLnNlbGVjdGVkX2JveDJ7d2lkdGg6MTc1cHg7IGhlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IG1hcmdpbjoxNXB4IDA7IGxpbmUtaGVpZ2h0OjMxcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuc2VsZWN0ZWRfb3JkZXJieXt3aWR0aDoxMzVweDsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbWFyZ2luOjEwcHggMTBweCAwcHggMHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnByaXh7d2lkdGg6NzlweDsgaGVpZ2h0Ojc4cHg7IGZsb2F0OmxlZnQ7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjExOyBtYXJnaW4tdG9wOi00cHg7IG1hcmdpbi1sZWZ0Oi00cHg7IHRvcDowcHg7fSAucGFnZW5vNXt3aWR0aDoxMDAlOyBoZWlnaHQ6MjRweDsgbWFyZ2luOjMwcHggMCAyMHB4IDBweDsgcGFkZGluZzowOyBmbG9hdDpsZWZ0IH0gLnBhZ2VubzZ7d2lkdGg6MjU0cHg7IGhlaWdodDoyNHB4OyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOnJpZ2h0O30gLnN1aXZhbnR7d2lkdGg6MjgwcHg7IGhlaWdodDoxOXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDo1cHg7fSAubWFpbl9yaWdodF9ib3h7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDd7d2lkdGg6MjkwcHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgfSAuYm94N0xpbmt7d2lkdGg6MjkwcHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgfSAuYm94N19taWR7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgMnB4O30gLmJveDdfbWlkX2Z1bGx7d2lkdGg6OTU2cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOm5vbmUgbGVmdCB0b3Agbm8tcmVwZWF0IDAgMCB0cmFuc3BhcmVudDsgcGFkZGluZzowIDJweCAxNXB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjQkJCO30gLnNpbXVsYXJfdl9ib3h7IHdpZHRoOjI2NXB4OyBwYWRkaW5nOjBweCAwcHggNXB4IDEwcHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5ib3hTZWFyY2hOZXdze21hcmdpbi10b3A6LTNweDttYXJnaW4tbGVmdDotNXB4O3dpZHRoOjI4NXB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF90b3BfMjgwLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveFNlYXJjaE5ld3NfbWlke21hcmdpbi1sZWZ0Oi01cHg7cGFkZGluZzowcHg7d2lkdGg6MjgxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X21pZF8yODAucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgfSAuYm94U2VhcmNoTmV3c19mb290ZXIxNXttYXJnaW4tbGVmdDotNXB4O3dpZHRoOjI4NXB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9mb290ZXJfMjgwLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDdIX21pZHt3aWR0aDoyODBweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy1ib3R0b206NnB4O30gLlJlY2hlcmNoZTIye2hlaWdodDoyMHB4OyBwYWRkaW5nOjEwcHggN3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMDAwMDAwO30gLnNpbVRpdGxle2hlaWdodDphdXRvOyBwYWRkaW5nOjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzBmMWExZTt9IC5ib3g4e3dpZHRoOjI3MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDBweCAxMHB4O30gLmJveDl7d2lkdGg6MjBweDsgaGVpZ2h0OjE4cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAxNHB4IDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzBmMWExZTt9IC5ib3gxMXt3aWR0aDoxMDBweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6N3B4IDBweCAxNHB4IDBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgbGluZS1oZWlnaHQ6MThweDt9IC5ib3gxMnt3aWR0aDoxMzBweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6N3B4IDBweCAxNHB4IDBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgbGluZS1oZWlnaHQ6MThweDt9IC5zZWxlY3RfYm94MTR7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDBweDsgbWFyZ2luLWJvdHRvbTozcHg7fSAuc2VsZWN0X2JveDE2e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4IDBweCAxMHB4OyBtYXJnaW4tYm90dG9tOjNweDt9IC5zZWxlY3RfYm94MTV7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDBweCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuc2VsZWN0X2JveDExNXt3aWR0aDoxMTVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAwcHggMTBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnNlbGVjdF9ib3g4MHt3aWR0aDo4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDBweCAwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5hX3RleHR7d2lkdGg6MjBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgbGluZS1oZWlnaHQ6MzFweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MCA1cHg7fSAuYWpvdXRlcnt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IGJhY2tncm91bmQtY29sb3I6IzFmMWYxZjttYXJnaW46NXB4IDAgMTBweCAwcHg7fSAuYWpvdXRlcl9he2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3NlYXJjaC1kb3duLWFycm93LnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCAzcHggdHJhbnNwYXJlbnQ7IHBhZGRpbmctbGVmdDoyNXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWpvdXRlcl9hX2Z1bGx7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvc2VhcmNoLXJpZ2h0LWFycm93LnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgcmlnaHQgLTFweCB0cmFuc3BhcmVudDsgcGFkZGluZy1yaWdodDoyNXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYm94MTN7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4IDBweCAxMHB4O30gLmlucHV0X2JveDJ7d2lkdGg6MjBweDsgaGVpZ2h0OjE4cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAxNHB4IDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzBmMWExZTt9IC5pbnB1dF90ZXh0eyB3aWR0aDoxOTVweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6M3B4IDBweCA3cHggNXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4OyB9IC5idXR0b25fYm94Mnt3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gLmJ1dHRvbl9ib3hTMnsgd2lkdGg6MjQ2cHg7IGhlaWdodDoyOXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggM3B4IDEzcHggM3B4OyB9IC5ib3gtZm9vdGVyMTV7d2lkdGg6MjkwcHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5kaXN7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDo1cHg7IHdpZHRoOjI0MHB4O30gLmRpc19jdXN0b217IHdpZHRoOjI0MHB4O3dpZHRoOjI0MHB4O30gLmRpc190b3B7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLmRpc190b3BfY3VzdG9teyB3aWR0aDoyMzhweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6I2NiY2JjYjt9IC5kaXNfYmd7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6MTUwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGlzX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7fSAuX2Rpc19iZ3sgd2lkdGg6MjQwcHg7IGhlaWdodDoyMDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODt9IC5kaXNfYmdfY3VzdG9teyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuX2Rpc19iZ19jdXN0b217IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5kaXNfYm91eyB3aWR0aDoyNDZweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyZDJkMmQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGlzX2JvdS5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5fZGlzX2JvdXsgd2lkdGg6MjQwcHg7IGhlaWdodDozOHB4OyBmbG9hdDpsZWZ0OyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyBtYXJnaW4tdG9wOjE0cHg7IGNvbG9yOiMyZDJkMmQ7OyB9IC5kaXNfYm91X2N1c3RvbXsgd2lkdGg6MjM4cHg7IGhlaWdodDo1MHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDo1cHg7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6IzMyYTdkYTt9IC5fZGlzX2JvdV9jdXN0b217IHdpZHRoOjI0MHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgbWFyZ2luLXRvcDoxMnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMzMmE3ZGE7IH0gLmRpc19ib3VfMnsgd2lkdGg6MjQ2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyZDJkMmQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGlzX2JvdV8yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmRpc190ZXh0eyBmb250LXNpemU6MS40MzhyZW0gOyBwYWRkaW5nOjRweCAwcHggMHB4IDE1cHg7fSAubHVuZGlfdGV4dHsgZm9udC1zaXplOjAuODEzcmVtIDsgcGFkZGluZzoycHggMHB4IDBweCAyMHB4OyBsaW5lLWhlaWdodDoxNHB4O30gLmx1bmRpX3RleHRfaG9tZXBhZ2VfaDI0OHtmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxOHB4OyBwYWRkaW5nOjEwcHggMCAwIDIwcHg7IH0gLmx1bmRpX3RleHQgdGh7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0Om5vcm1hbDt3aWR0aDo2MHB4O30gLmx1bmRpX3RleHQgdGR7dGV4dC1hbGlnbjpsZWZ0O30gLnB7IGhlaWdodDoxNnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjdweCA1cHggMHB4IDEwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7fSAuZXsgaGVpZ2h0OjE2cHg7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nOjdweCAwcHggMHB4IDBweDsgZm9udC1zaXplOjAuODc1cmVtIDt9IC5ib3gyODgsIC5ib3gyODhfY3VzdG9te3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAuX2JveDI4OCwgLl9ib3gyODhfY3VzdG9te3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyB9IC5ib3gyODhVc2Vke3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MHB4O30gLmJveDI4OE5ld3t3aWR0aDoyODBweDsgZmxvYXQ6bGVmdDsgfSAuYm94Mjg4TmV3X2N1c3RvbXtmbG9hdDpsZWZ0O30gLmJveDI4OE5ld1FNLCAuYm94Mjg4TmV3UU1fbW9iaWxlIHsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJveC1zaGFkb3c6bm9uZTsgY2xlYXI6Ym90aDsgZmxvYXQ6bGVmdDsgd2lkdGg6MjgwcHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgeyB3aWR0aDoxMDAlOyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLlJlY2hlcmNoZTIyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmJveDI4OE5ld1FNX21vYmlsZSB0YWJsZSB7IHdpZHRoOjEwMCU7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciBpbnB1dCB7IHdpZHRoOjk1JSFpbXBvcnRhbnQ7IH0gLmJveDI4OFFNeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7Zm9udC13ZWlnaHQ6bm9ybWFsO30gLmJveDI4OFFNX2N1c3RvbXt3aWR0aDoyNzhweDttYXJnaW46NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgb3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaGFkb3c6MCAwIDRweCAjMzMzO30gLnRleHRBcmVhUU17IGZvbnQtc2l6ZTowLjgxM3JlbSA7bGluZS1oZWlnaHQ6MTVweDt9IC5ib3gyODhfdG9we3dpZHRoOjI4OHB4OyBoZWlnaHQ6MTRweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgbWFyZ2luLXRvcDowcHg7fSAuYm94Mjg4X3RvcF9jdXN0b217d2lkdGg6Mjc4cHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOiNjYmNiY2I7fSAuX2JveDI4OFFNeyB3aWR0aDoyODBweDsgfSAuX2JveDI4OF90b3B7fSAuX2JveDI4OF90b3BfY3VzdG9teyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgV2lkdGg6MTAwJTsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojMzJhN2RhOyBib3JkZXItcmFkaXVzOjZweCA2cHggMCAwOyB9IC5fYm94Mjg4MF9taWR7fSAuX2JveDI4ODBfbWlkX2N1c3RvbXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuYm94Mjg4X21pZHsgYm94LXNoYWRvdzowIDAgNXB4ICMzMzMzMzM7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IH0gLmJveDI4OF9taWRfY3VzdG9teyBib3gtc2hhZG93OjAgMCA1cHggIzMzMzMzMzsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5ib3gyODgwX21pZHt3aWR0aDoyNThweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDE1cHggMHB4IDE1cHg7fSAuYm94Mjg4MF9taWRfY3VzdG9te3dpZHRoOjIyOHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMjVweDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmJveDI2OV9taWR7d2lkdGg6MjU4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAxNXB4IDBweCAxNXB4O30gLnpvb20yMnt3aWR0aDoyNThweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyO30gLnNlYXJjaF9yaWdodCB7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zZWFyY2gucG5nKSAwIDAgbm8tcmVwZWF0OyB3aWR0aDoyNzhweDsgaGVpZ2h0OjExMXB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IDVweCA1cHggNXB4fSAuRGVtYW5kZTIye3dpZHRoOjI3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM5YTAxMDE7IGxpbmUtaGVpZ2h0OjI2cHg7IG1hcmdpbi10b3A6NjdweDt9IC5EZW1hbmRlMjIgYXsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM5YTAxMDE7IGxpbmUtaGVpZ2h0OjIwcHggOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5EZW1hbmRlMjIgYTpob3ZlcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM5YTAxMDE7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSAuRGVtYW5kZTIyIHNwYW4gYXsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyOTI5Mjk7IGxpbmUtaGVpZ2h0OjIwcHggOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5EZW1hbmRlMjIgc3BhbiBhOmhvdmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI5MjkyOTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5ib3gyODhfZm9vdGVye3dpZHRoOjI4OHB4OyBoZWlnaHQ6MTRweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyODhfZm9vdGVyX3Fze3dpZHRoOjI4OHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyODhfZm9vdGVyX3Fze3dpZHRoOjI4OHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyODhfZm9vdGVyNTV7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZC1jb2xvcjojQ0JDQkNCOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyB9IC5ib3gyODhfZm9vdGVyNTVfY3VzdG9teyB3aWR0aDoyODBweDsgaGVpZ2h0OjM1cHg7IHBhZGRpbmctdG9wOjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMzJhN2RhOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyB9IC5wIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuZ2FwMTB7d2lkdGg6MjMwcHg7IGhlaWdodDoxMHB4OyBmbG9hdDpsZWZ0O30gLnBhZ2VfbmFtZTJ7d2lkdGg6NjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMCAyMHB4IDA7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGNvbG9yOiMwMDAwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lM3sgd2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4IDEwcHggMTBweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNDI0MjQ7fSAucGFnZV9uYW1lMyBoMXsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI0MjQyNDtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWU0e3dpZHRoOjY1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zaG8ucG5nKSBjZW50ZXIgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMDE0RjgwO30gLnBhZ2VfbmFtZTQgaDJ7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjpyZ2IoNTAsMTY3LDIxOCk7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lNXt3aWR0aDoxMDAlO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDA7IG1hcmdpbi1ib3R0b206MTVweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNDI0MjQ7Zm9udC13ZWlnaHQ6bm9ybWFsIH0gI3NlYXJjaENvbnRhaW5lclBhcmVudCAucGFnZV9uYW1lNTpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi10b3A6MzBweDsgfSAuYm94Ml90ZXh0e2hlaWdodDphdXRvOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5ib3gyX3RleHQgcHsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDtjb2xvcjojMDAwMDAwOyBtYXJnaW4tYm90dG9tOjIwcHg7fSAucG9zaXRpdmVSYXRpbmdUeHQgcHtmb250LXNpemU6MXJlbSA7fSAucG9zaXRpdmVSYXRpbmdUeHQgaDMsIC5wb3NpdGl2ZVJhdGluZ1R4dCBoNHtmb250LXdlaWdodDpub3JtYWw7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e3RleHQtdHJhbnNmb3JtOm5vbmU7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e2ZvbnQtc2l6ZToxLjI1cmVtIDt9IC5ldGFwZXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7fSAudGV4dDF7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDt9IC50ZXh0MSBhe3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQzNDM0MzsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNmM2YzZjM7IH0gLnRleHQxIGE6aG92ZXJ7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAudGV4dDEgYS5hY3RpdmV7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAub25lMXt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi1sZWZ0OjEwcHg7fSAub25lMSBhe3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfcm91bmQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I0ZGRkZGRjsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLm9uZTEgYTpob3Zlcnt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy8xX2hvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6Mi4yNXJlbSA7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjQ2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5vbmUxIGEuYWN0aXZle3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgY29sb3I6IzAwMDAwMDsgbGluZS1oZWlnaHQ6NDZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnNlbGVjdGlvbm5lent3aWR0aDphdXRvOyBoZWlnaHQ6YXV0byA7IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6M3B4OyBwYWRkaW5nLXRvcDo0cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxYTFhMWE7IGxpbmUtaGVpZ2h0OjIycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuZm9ybXNfYm94MjJ7Ym94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMCAxMHB4IDA7IH0gLndpdGhfYm9yZGVyIHsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MCAxNnB4OyB9IC5QcmVub217d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzo4cHggMCAxMHB4IDA7fSAuUHJlbm9tIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tMnt3aWR0aDozMjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDEwcHggMDt9IC5QcmVub20yIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tM3t3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub200e3dpZHRoOjMyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTV7d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzpweCAwIDEwcHggMDt9IC5QcmVub202e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTd7d2lkdGg6MTA3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tOHt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6cHggMCAxMHB4IDA7IGRpc3BsYXk6YmxvY2t9IC5QcmVub205e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLlByZW5vbTEwe3dpZHRoOjEwN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLnRleHQxNXt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNnt3aWR0aDoxNzJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxN3t3aWR0aDoxMTJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxOHt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDNweCAwO30gLnRleHQxNSBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojZmYwMTAxO30gLmJ1dHRvbjV7d2lkdGg6Mjg1cHg7IG1hcmdpbi1ib3R0b206MzBweDsgbWFyZ2luLXRvcDo3MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5ib3hfZGF0ZXt3aWR0aDoxNjdweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDoxcHg7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94X2RhdGUye3dpZHRoOjEwN3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3hfZGF0ZTN7d2lkdGg6ODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gc3Bhbi5hc3RreyBjb2xvcjojRkYwMTAxO2ZvbnQtc2l6ZTowLjY4OHJlbSA7ZmxvYXQ6bGVmdDtwYWRkaW5nLXJpZ2h0OjNweDsgfSAuYm94NjF7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IH0gLmJveDYxNjZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IH0gLlBvbGl0aXF1ZXt3aWR0aDphdXRvOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmc6MCAycHggMHB4IDJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkNTlhZjsgbGluZS1oZWlnaHQ6MjJweDsgfSAuUG9saXRpcXVlIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDU5YWY7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjNmI5MWJkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMy5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTt9IC5Qb2xpdGlxdWUgYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjRweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lNC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMyNDI0MjQ7fSAudGV4dDE1NXt3aWR0aDoyODVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNTVjaGt7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAxMHB4IDEwcHggMTVweDt0ZXh0LWFsaWduOmxlZnQ7fSAuVmV1aWxsZXp7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWx9IC5WZXVpbGxleiBzcGFue3RleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjJweDt9IC5WZXVpbGxleiBzcGFuIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OnJpZ2h0OyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzI0MjQyNDsgZGlzcGxheTpibG9ja30gLlZldWlsbGV6IHNwYW4gYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNDQ2ZjsgZmxvYXQ6cmlnaHQ7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMDA0NDZmOyBkaXNwbGF5OmJsb2NrO30gLkh5cG90aGVxdWV7d2lkdGg6MTk1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo1MHB4O30gLkh5cG90aGVxdWUyMnt3aWR0aDoyMjRweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLkh5cG90aGVxdWUzM3t3aWR0aDo1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwOyBsaW5lLWhlaWdodDozNXB4O30gLmNpdmlxdWV7d2lkdGg6MTMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5SdWV7d2lkdGg6MjkwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5BcHB7d2lkdGg6MTgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5mb3JtczEwMHt3aWR0aDoxMzBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLmZvcm1zMTAxe3dpZHRoOjI5MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuZm9ybXMxMDJ7d2lkdGg6MTgwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5WaWxsZXsgd2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuUHJvdmluY2V7IHdpZHRoOjE1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLkNvZGV7IHdpZHRoOjE2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLmZvcm1zMTAzeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDR7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNXsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA2eyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnR9IC5UeXBle3dpZHRoOjIwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAuYm94NjAwe3dpZHRoOjYwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgcGFkZGluZy1ib3R0b206MjBweDsgbWFyZ2luLXJpZ2h0OjBweDt9IC5EZW1hbmRlNTV7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTY2e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2FsMi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU3N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL20ucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6NDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlODh7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTg4N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2YucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX3RleHQye3dpZHRoOjY0OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDBweCAxNXB4IDIzcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7fSAuYm94X2JyYW5ke3dpZHRoOjY0OHB4OyBmbG9hdDpsZWZ0O3BhZGRpbmc6MjBweCAwcHggMTVweCAwcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDN7d2lkdGg6NjYxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDEwcHggMTBweDsgbWFyZ2luLXRvcDoxNXB4OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5jYXJfYm94e3dpZHRoOjIwOHB4OyBoZWlnaHQ6MTMwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDhweCAwIDA7IHBhZGRpbmc6MDsgYm9yZGVyOjA7fSAuY2FyX2ltYWdlc3t3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJvcmRlcjowOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5jYXJfdGV4dHt3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMwMDAwMDA7IHRleHQtYWxpZ246Y2VudGVyfSAuY2FyX3RleHQgYSB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjEuMTt9IC5jYXJfdGV4dCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAwMDAwMH0gLmNhcl9ib3gyeyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgMTBweCAxMHB4IDA7IG92ZXJmbG93OmhpZGRlbjsgYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6I0ZGRjsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IH0gLmNhcl9ib3gyX3RheHR7aGVpZ2h0OmF1dG87IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWFsaWduOmxlZnQ7IGxpbmUtaGVpZ2h0OjIxcHg7fSAucGljX2JveDJ7IGJvcmRlcjoxcHggc29saWQgI0FBQTsgYmFja2dyb3VuZDojRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljX2JveDIgaW1nIHt3aWR0aDoxMDAlO30gLnByaW50e3dpZHRoOjE5MnB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmctdG9wOjdweDt9IC5wcmludCBheyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByaW50LnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyBwYWRkaW5nLWxlZnQ6MzVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucHJpbnQgYTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9wcmludF9ob3Zlci5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNGE3ODsgcGFkZGluZy1sZWZ0OjM1cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5wYWdlX25hbWVfY29ue3dpZHRoOjg0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDIxcHggMTBweCAyMHB4OyB9IC5ob21lMnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OjIwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzM3MzczNzsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWUze3dpZHRoOjUxMHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzczNzM3OyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwe3dpZHRoOjMxMHB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgbGluZS1oZWlnaHQ6MzJweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQwZDBkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwIHNwYW57IGNvbG9yOiNGRjAwMDA7fSAuaW5wdXQyNXt3aWR0aDozMTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAudmV1eHt3aWR0aDo2MDBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbToxMHB4OyBwYWRkaW5nLXRvcDo1cHg7IGxpbmUtaGVpZ2h0OjE3cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkMGQwZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDt9IC5Ob3N7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiMwMDAwMDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTVweCAwIDE1cHggMTVweDsgbWFyZ2luOjVweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I0ZGRkZGRjt9IC5idXR0b25fam9ib2ZmZXIgeyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9pY29uX2VtcGxveS5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDBweCAwcHggcmdiKDIzMSwgMjMyLCAyMzIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDo0MHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnV0dG9uXzEsIC5idXR0b25fMiwgLmJ1dHRvbl8zIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IH0gLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhIHsgYmFja2dyb3VuZDojMzJhN2RhOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IH0gLmJ1dHRvbl8xIGE6aG92ZXIsIC5idXR0b25fMiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgfSAuYnV0dG9uXzMgYXsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IH0gLmJ1dHRvbl8zIGE6aG92ZXJ7IGJhY2tncm91bmQ6I0ZGRjsgY29sb3I6IzAwMDsgfSAuZmJDb25uZWN0QnRuIHsgcG9zaXRpb246cmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6IzMwNTg5ODsgY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czozcHg7IGxpbmUtaGVpZ2h0OjM4cHg7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2NoYXQtd2lkZ2V0LWNvbnRhaW5lciwgI2xpdmVfY2hhdF9zdGF0dXMsICNDaGF0RGl2LCAjcG9kaXVtLWJ1YmJsZSwgI2pjb250LCBqZGl2LCAjdHN3X3dyYXBwZXIsIC5mYl9kaWFsb2csIC5mYl9pZnJhbWVfd2lkZ2V0LCAuZmItY3VzdG9tZXJjaGF0LCAuZWstY2hhdCwgLm1hdGFkb3ItbGl2ZWNoYXQtMTIzNzg5LW1haW4td3JhcHBlciwgI21hdGFkb3ItY29ubmVjdC10ZXh0LWxhYmVsLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwtYmFkZ2V7IHotaW5kZXg6MTAwMDAgIWltcG9ydGFudDsgfSBzdmcuY2hhdC1idWJibGV7IHdpZHRoOnJldmVydDsgaGVpZ2h0OnJldmVydDsgfSAuZmJDb25uZWN0QnRuIC5mYS1mYWNlYm9va3sgY29sb3I6IzMwNTg5ODsgfSBhLmZhY2Vib29rQ29ubmVjdEJ0biB7IGNvbG9yOiNmZmY7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1mYW1pbHk6aW5oZXJpdDsgfSAuYnV0dG9uX3ZpZGVvc19mciBhLCAuYnV0dG9uX3ZpZGVvc19lbiBheyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGRpc3BsYXk6YmxvY2s7IH0gLmJ1dHRvbl92aWRlb3NfZnIgYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlb3MtYnV0dG9uX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb3NfZnIgYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlb3MtYnV0dG9uLWhvdmVyX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb3NfZW4gYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlb3MtYnV0dG9uX2VuLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb3NfZW4gYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlb3MtYnV0dG9uLWhvdmVyX2VuLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19mciBhLCAuYnV0dG9uX3ZpZGVvX2VuIGF7IHdpZHRoOjE5M3B4OyBoZWlnaHQ6NTFweDsgZGlzcGxheTpibG9jazsgfSAuYnV0dG9uX3ZpZGVvX2ZyIGF7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19mciBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbi1ob3Zlcl9mci5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZW4gYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b25fZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2VuIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uLWhvdmVyX2VuLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl91bmRlcnt3aWR0aDoyNDlweDsgcGFkZGluZzowcHg7IG1hcmdpbjoxMHB4IDBweDt9IC5idXR0b25fdW5kZXIgYXsgd2lkdGg6MTAwJTttaW4taGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IHRleHQtc2hhZG93Om5vbmU7IGRpc3BsYXk6YmxvY2sgfSAuYnV0dG9uX3VuZGVyIGE6aG92ZXJ7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IH0gLmJ1dHRvbl91bmRlci5wcm9tbyBhe2JhY2tncm91bmQtY29sb3I6I2U4MGQwZDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojRkZGOyB3aWR0aDoyMzdweDsgbWFyZ2luLWxlZnQ6NXB4O30gLmJ1dHRvbl91bmRlci5wcm9tbzMgYXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgY29sb3I6I0ZGRjsgd2lkdGg6MjM3cHg7IG1hcmdpbi1sZWZ0OjVweDt9IC5idXR0b25fdW5kZXIucHJvbW8gYTpob3ZlciwuYnV0dG9uX3VuZGVyLnByb21vMiBhOmhvdmVyLC5idXR0b25fdW5kZXIucHJvbW8zIGE6aG92ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9idXR0b25fMWhvdmVyLnBuZyl9IC5idXR0b25fNHt3aWR0aDoyNDlweDsgaGVpZ2h0OjU3cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuYnV0dG9uXzQgYXsgd2lkdGg6MjQ5cHg7IGhlaWdodDo1MHB4OyBwYWRkaW5nLXRvcDo3cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzQucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgYm9yZGVyLXJhZGl1czozcHg7Zm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyBkaXNwbGF5OmJsb2NrIH0gLmJ1dHRvbl80IGE6aG92ZXJ7d2lkdGg6MjQ5cHg7IGhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl80aG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MjJweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgfSAuY2hlY2tib3gxNTJ7d2lkdGg6YXV0bzsgaGVpZ2h0OjE4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyBwYWRkaW5nOjAgNnB4IDAgMDsgbWFyZ2luLXRvcDowOyBib3JkZXI6MDsgdG9wOjA7IH0gLkJhc2UyMnt3aWR0aDphdXRvOyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjZweDsgcGFkZGluZzo2cHggNnB4IDAgMDsgbWFyZ2luLXRvcDowOyBib3JkZXI6MDsgdG9wOjA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLmJveDk0MF9saW5le3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMjUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IGJvdHRvbTowO30gLndoaXRlX2JveHt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I0ZGRkZGRjsgb3ZlcmZsb3c6aGlkZGVuOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDt9IC5ib3gxMDB7d2lkdGg6MjIwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nOjEzcHggMCAxNXB4IDEwcHg7fSAuYm94MTAxe3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmJveDEwMnt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDt9IC5ib3gxMDN7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuYm94MTA0e3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O30gLmJveEV2ZW57d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwcHggMHB4IDBweDt9IC5ib3hPZGR7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwcHggMHB4IDBweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5maWxlaW5wdXQtYnV0dG9uLCAuZmlsZWlucHV0LWJ1dHRvbjpob3ZlciB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDozMXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZmlsZWlucHV0LWJ1dHRvbiBpbnB1dCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgbWFyZ2luOjA7IG9wYWNpdHk6MDsgLW1zLWZpbHRlcjonYWxwaGEob3BhY2l0eT0wKSc7IGN1cnNvcjpwb2ludGVyOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuYm94OTQwX21haW57d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwIDE1cHggMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDIwMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdDsgLW1vei1ib3JkZXItcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyLXJhZGl1czo2cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjZweDt9IC53aGl0ZV9ib3hfdGV4dDJ7d2lkdGg6MjMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAud2hpdGVfYm94X3RleHQze2JhY2tncm91bmQtY29sb3I6I0Y2RjZGNjtib3JkZXItbGVmdDoxcHggc29saWQgI0M5QzlDOTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNDOUM5Qzk7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDR7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDV7YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC53aGl0ZV9ib3hfdGV4dDZ7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfYmxhbmt7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAud2hpdGVfYm94X3RleHRPZGR7cGFkZGluZzoxMHB4IDBweDt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dEV2ZW57YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLmJveF90aXRsZXt3aWR0aDo5MzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MzBweCAwcHggNXB4IDEwcHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7fSAuY3VzdG9tXzIyIHt3aWR0aDoyNDFweDsgaGVpZ2h0OjEyMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjAgOHB4IDhweCAwOyBiYWNrZ3JvdW5kOiNlYmViZWI7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt9IC5jdXN0b21fMjIyIHt3aWR0aDoyNDFweDsgaGVpZ2h0OjEyMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjAgOHB4IDhweCAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt9IC50b3lvdGFfY2Ftcnl7d2lkdGg6NDMwcHg7IGhlaWdodDoyMjJweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDBweCAwcHggMTBweDsgbWFyZ2luLXJpZ2h0OjhweDsgYmFja2dyb3VuZDojZWJlYmViOy1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7fSAudG95b3RhX2NhbXJ5IGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206NXB4O30gLnRveW90YV9jYW1yeSBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206OHB4O30gLmJveDJfZGV0YWlsc190ZXh0MjV7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjoxNXB4IGF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDRweCAjODI4MjgyO30gLmJveDJfZGV0YWlsc190ZXh0MjUgc3BhbnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuYm94MTV7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDJweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE1IGgye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTUgaDIgYXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo0MHB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNSBoMiBhOmhvdmVye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTZ7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTYgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNiBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24zLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjIwcHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE2IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjMucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxN3t3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNyBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE3IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjVweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTcgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE4e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE4IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTggaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNS5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBwYWRkaW5nLXJpZ2h0OjVweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOCBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb241LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTl7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4OyBwYWRkaW5nLXJpZ2h0OjNweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE5IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTkgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE5IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjYucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxMTE0e2N1cnNvcjpwb2ludGVyO3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl8xLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTExNCBoMntjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDExMTQgaDIgYXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo0MHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTExNCBoMiBhOmhvdmVye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuU3BlY2lmaWNhdGlvbnN7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNTI1MjU7IHRleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW4tdG9wOjVweDt9IC5Nb3JiaTJ7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHg7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDtmb250LXdlaWdodDpub3JtYWw7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLk1vcmJpMiBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206OHB4O30gLmJveDI4ODlfbWlke3dpZHRoOjI3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgNXB4IDIwcHggNXB4O30gLk1vcmJpMjJ7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjBweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94Mjg4OV9taWQgaDF7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMTBweCAyMHB4IDEwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjRweH0gLl9ib3gyODg5X21pZCBoMXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDIwcHggMTBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyNHB4fSAuYm94Mjg4OV9taWQgaDJ7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjRweCAxMHB4IDIwcHggMTVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjNweH0gI3NpbWlsYXJUaXRsZXsgcGFkZGluZzo0cHggMTBweCA5cHggMTVweDsgZm9udC1zaXplOjEuNDM4cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC50YWJlNXt3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gLnRhYmU1IHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAudGFiZTUgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC50YWJlNSB1bCBsaSBzcGFue2N1cnNvcjpwb2ludGVyOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3RhYl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDt9IC50YWJlNSB1bCBsaSBzcGFuOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6ICNlYmViZWI7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyB9IC50YWJlNSB1bCBsaSBzcGFuLmFjdGl2ZXtjdXJzb3I6ZGVmYXVsdDsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiAjZWJlYmViOyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgfSAudGFiX2RldGFpbHMye3dpZHRoOjYzMXB4OyBwYWRkaW5nOjEwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7fSAuYm94MjV7d2lkdGg6NDg3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbjowIDEzcHggMCAwOyBwYWRkaW5nOjIwcHggMCAyMHB4IDIwcHg7fSAuYm94MjZ7d2lkdGg6MjQzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDI2IHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MjYgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC5ib3gyNiB1bCBsaSBzcGFueyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0O30gLmJveDI2IHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5ib3gyNiB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNiB1bCBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI3e3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmJveDMze3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDt9IC5ib3gzMyB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDMzIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7fSAuYm94MzMgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MzMgdWwgbGkgc3BhbnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MzMgcHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCAwcHggN3B4IDBweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5ib3gzMyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYXJyb3c4LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5Nb3RldXJ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjVweDt9IC5Nb3RldXIgaDJ7d2hpdGUtc3BhY2U6bm9ybWFsOyB3aWR0aDoxMzVweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojMjAyMDIwO30gLk1vdGV1ciBoM3t3aGl0ZS1zcGFjZTpub3JtYWw7IHdpZHRoOjE0MHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM1YTVhNWE7fSAuYm94MjYgdWwgbGkgc3BhbjpiZWZvcmUsLmJveDMzIHVsIGxpIHNwYW46YmVmb3JlLC5Nb3RldXIgaDI6YmVmb3JlIHsgY29udGVudDoiXGYxMzgiOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyBtYXJnaW4tcmlnaHQ6NXB4OyB9IC5ib3gyNyBhe3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14IDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDoyOHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gyNyBhOmhvdmVye3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgLTMycHggcmVwZWF0LXggOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjhweDsgfSAuYm94Mjh7d2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiM2ZjZmNmYgdXJsKC9pbWFnZXMvbGl0ZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgbWFyZ2luOjAgMHB4IDAgMDt9IC50ZXh0NDR7d2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpdGVyX2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbTo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjB7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IH0gLnRleHRfYm94NjAgaDJ7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNjI2MjY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC50ZXh0X2JveDYwIGgze3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjAgcHt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNjI2MjY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC52aW9ye3dpZHRoOmF1dG87IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Zpb3IucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyB9IC5ib3gxMzN7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IG1hcmdpbjowO30gLmJveDI1OHt3aWR0aDoyNThweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2I5YjliOTsgcGFkZGluZzowIDEwcHggNXB4IDEwcHg7IG1hcmdpbi1ib3R0b206NXB4OyBmbG9hdDpsZWZ0O30gLmJveDExNnt3aWR0aDoxMTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJvcmRlcjoycHggc29saWQgI0ZGRkZGRjsgcGFkZGluZzowOyBtYXJnaW4tcmlnaHQ6NXB4O30gLmJveDExNiBpbWd7d2lkdGg6MTIwcHg7IH0gLmJveDJ7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NDdweDsgbWFyZ2luLWxlZnQ6MjBweDsgcGFkZGluZzowIDAgMTBweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgO30gLmJveDIgc3Bhbntmb250OmJvbGQgMTJweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwfSAuYm94M3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDoyMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7fSAuYm94MyBzcGFue2ZvbnQ6Ym9sZCAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDB9IC5ib3g0e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCA0NXB4IDEwcHggMjBweDsgfSAuYm94NDR7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDQ3cHggMTBweCAyMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTt9IC5ib3g1e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAyMHB4IDEwcHggMDt9IC5ib3g2e3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjEwcHggMHB4IDBweCAwO30gLmJveDU1e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAyMHB4IDEwcHggMDtwb3NpdGlvbjpyZWxhdGl2ZTt9IC5saW4ye3dpZHRoOjYxN3B4OyBoZWlnaHQ6MnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDAgMTBweCAwOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZTIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDt9IC5ib3gxNHtwYWRkaW5nOjBweCAwOyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdH0gLmJveDIwe3BhZGRpbmc6MCAxMHB4OyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoyN3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC50ZXh0MzB7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzI0MjQyNH0gLnRleHQzMCBzcGFue3BhZGRpbmctcmlnaHQ6MTBweDsgZmxvYXQ6cmlnaHQ7IHRleHQtYWxpZ246cmlnaHQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzI0MjQyNDt9IC50ZXh0MzAgc3BhbiBzdHJvbmd7Zm9udDpib2xkIDIwcHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMCB9IC5ib3g2MTd7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBwYWRkaW5nLWJvdHRvbToyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4O30gLm1haW42MTd7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjE1cHg7fSAuYm94MjBBe3BhZGRpbmc6MCA1cHg7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBmb250LXdlaWdodDpib2xkO30gLm9uU2l0ZSArIC5wcmVmZXJyZWQsIC5wcmVmZXJyZWQ6aGFzKCsub25TaXRlKSB7IGFsaWduLXNlbGY6ZW5kOyB9ICNzZXJ2aWNlUGFja2FnZXMgdGFibGUge2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgd2lkdGg6MTAwJTsgbGluZS1oZWlnaHQ6MzBweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6OTAlO30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7YmFja2dyb3VuZDojZjNmM2YzO30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0ZHtwYWRkaW5nLXRvcDowLjVyZW07IHZlcnRpY2FsLWFsaWduOnRvcDsgbGluZS1oZWlnaHQ6MS41O30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0ZDpudGgtY2hpbGQoMikge3BhZGRpbmc6MC41cmVtO30gLmRldGFpbENhclRpdGxlLCAuZGV0YWlsQ2FyVGl0bGVXaWRlLCAuZGV0YWlsQ2FyVGl0bGVGdWxsIHt3b3JkLXdyYXA6YnJlYWstd29yZDtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTtmb250LXdlaWdodDpub3JtYWw7fSAuZGV0YWlsQ2FyVGl0bGUge3dpZHRoOjQ5MHB4O30gLmRldGFpbENhclRpdGxlV2lkZSB7d2lkdGg6Nzc1cHg7fSAuZGV0YWlsQ2FyVGl0bGVGdWxsIHt3aWR0aDoxMDAlO30gLm1haW5ib3hfdGV4dGFyZTYxN3toZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjIwcHggMDsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAwJSk7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjUwJTt9IC50ZXh0Ym94MjJ7d2lkdGg6MzgxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MHB4IDBweCAwIDA7fSAuYnV0dG9uNTF7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyB9IC5idXR0b241MSBheyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b241LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkYgOyBwYWRkaW5nOjAgMTBweDsgbGluZS1oZWlnaHQ6MzZweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAuYnV0dG9uNTEgYTpob3Zlcnsgd2lkdGg6YXV0bzsgaGVpZ2h0OjM2cHg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uNS5wbmcpIGxlZnQgLTQ0cHggcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkYgOyBwYWRkaW5nOjAgMTBweDsgbGluZS1oZWlnaHQ6MzZweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9IC50ZXh0NTV7d2lkdGg6MzgxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MHB4IDBweCAyMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spIDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnRleHQ1NSBweyBwYWRkaW5nLWxlZnQ6MHB4IDVweCAwIDA7IG1hcmdpbjowcHggMHB4IDBweCAwOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBpY2JveF8yMjF7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMTVweCAwIDA7fSAucGljYm94XzIyMSBpbWcgeyB3aWR0aDozMzJweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IH0gLmlzRnVsbFdpZHRoUGFnZSAucGljYm94XzIyMSBpbWcgeyB3aWR0aDo0NDJweDsgfSAucGljYm94NjUxe3dpZHRoOjY1MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjVweCAxMHB4IDBweDt9IC5waWNib3g5MzB7d2lkdGg6OTMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46NXB4IDVweCAwcHg7fSAucGljYm94NjUxIGltZyB7IHdpZHRoOjY1MXB4OyB9IC5waWNib3g5MzAgaW1nIHsgd2lkdGg6OTMwcHg7IH0gLnBpY2JveDY1MSBpbWcsIC5waWNib3g5MzAgaW1nIHsgZmxvYXQ6bGVmdDsgY3Vyc29yOnBvaW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IH0gLnRvcFByb21vSW1hZ2UgaW1nIHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luLXRvcDo1cHg7IHdpZHRoOjkzMHB4OyBjdXJzb3I6cG9pbnRlcjsgfSAudG9wUHJvbW9JbWFnZVVzZWQgaW1nIHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgd2lkdGg6NjUwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC50ZWFtX3RpdGxlX2RlYWxlcnttYXJnaW4tYm90dG9tOjE1cHg7IHRleHQtYWxpZ246Y2VudGVyO30gLmZvcm1zX2JveDY2MXt3aWR0aDo5NjBweDsgaGVpZ2h0OmF1dG87IG1hcmdpbjoxMHB4IGF1dG87IH0gLnBpY2JveDkwe3dpZHRoOjkwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6OHB4OyBib3JkZXI6MXB4IHNvbGlkICNhY2FjYWM7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IH0gLnBpY2JveDkwIGltZyB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IH0gLnRleHRib3gxOTF7d2lkdGg6NTIlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MS4yOyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0Ym94MTkxIGg0eyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMjQyNDI0OyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gLm1haW5ib3gyOTF7d2lkdGg6MjkxcHg7IG1pbi1oZWlnaHQ6MTIzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA1cHggMTBweCAwOyBiYWNrZ3JvdW5kOiNlNmU2ZTY7IGJvcmRlcjoxcHggc29saWQgI2Q0ZDRkNDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzoxNXB4IDEwcHg7fSAubGF6eXtib3JkZXI6MDtkaXNwbGF5Om5vbmV9IC50ZWNoU3BlY3N7d2lkdGg6NjIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjI1cHggMTVweDsgYmFja2dyb3VuZDojZWJlYmViOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IGJvdHRvbTsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDowcHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjZweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDo2cHg7LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDstd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDstd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDstd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7fSAuZW1haWxfbGlua3t0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6Izg4ODt9IC5lbWFpbF9saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojMzMzO30gLnBhZ2VfbmFtZTU1NSB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjVyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDozMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDA7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luOjA7IH0gLnBhZ2VfbmFtZTU1NSBheyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWU1NTUgYTpob3ZlcnsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAucGFnZV9uYW1lNTU1IGE6dmlzaXRlZHsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lTkVXNTU1IHsgY29sb3I6IzI0MjQyNDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBoZWlnaHQ6YXV0bzsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAucGFnZV9uYW1lTkVXNTU1IGF7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZU5FVzU1NSBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wYWdlX25hbWVORVc1NTUgYTp2aXNpdGVkeyBjb2xvcjojMjQyNDI0OyB9IC5ib3gyX3RleHQ0NCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZToxcmVtOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6MThweDsgcGFkZGluZzoxMHB4IDAgMCAwOyB3aWR0aDphdXRvOyB9IC50ZXh0X2JveDExIHsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjAgMjBweCAxMHB4IDA7IHdpZHRoOmF1dG87IGxpbmUtaGVpZ2h0OjIxcHg7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyB9IC50ZXh0X2JveDExIGg0IHsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nOjEwcHggMDsgfSAudGV4dF9ib3gxMSBhIHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjAuNzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MDsgcGFkZGluZzoxMHB4IDA7IGZsb2F0OmxlZnQ7IH0gLnRleHRfYm94MTEgYTpob3ZlciB7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRfYm94MTEgYTp2aXNpdGVkIHsgY29sb3I6IzI0MjQyNDsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IH0gLnRleHRfYm94MTEgdWwsIC50ZXh0X2JveDExIHAgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MC44NzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MCAwIDVweDsgfSAudGV4dF9ib3gxMSB1bCB7IGxpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlOyB9IC50ZXh0X2JveDExIHAgYSB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZsb2F0Om5vbmU7IH0gLnBpY2JveDMzNiB7IGJvcmRlcjoxcHggc29saWQgIzdEN0Q3RDsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1yaWdodDo2OHB4OyB9IC5mb250X3NpemUyMSB7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50OyB9IC5wYWdlX25hbWUxOCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDozMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDA7IHdpZHRoOjEwMCU7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnBhZ2VfbmFtZTE4IGF7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5wYWdlX25hbWUxOCBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC52aWRlbzUgeyBmbG9hdDpsZWZ0OyBoZWlnaHQ6NDFweDsgbWFyZ2luLXRvcDo3MHB4OyBtYXJnaW4tbGVmdDo3MHB4OyB9IC5mbG9hdExvZ297IHdpZHRoOjYyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgcGFkZGluZzoyNXB4IDE1cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvTE9HT19HQV9UUkFOU1BBUkVOVC5wbmcpIHJpZ2h0IGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbiB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJvcmRlcjptZWRpdW0gbm9uZTsgY29sb3I6I0ZGRkZGRjsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IG1hcmdpbjowOyBvdmVyZmxvdzp2aXNpYmxlOyBwYWRkaW5nOjA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHNwYW4geyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9idG5fcmlnaHQyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgcmlnaHQgdG9wIHRyYW5zcGFyZW50OyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MzVweDsgbWFyZ2luOjA7IHBhZGRpbmc6MCA2cHggMCAwOyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHNwYW4gc3BhbiB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2J0bl9sZWZ0Mi5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50OyBjb2xvcjojRkZGRkZGOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44MTNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDoyNnB4OyBsaW5lLWhlaWdodDoxM3B4OyBwYWRkaW5nOjEycHggMTNweCAwIDE1cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25faG92ZXIgc3BhbiBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0zOHB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2hvdmVyIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0zOHB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2NsaWNrIHNwYW4gc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNjZweDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9jbGljayBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtNjZweDsgfSAudmVoaWNsZUxpc3RUYWJsZSB7IG1hcmdpbjoxMHB4OyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgeyBib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgIzY2NjY2NjsgaGVpZ2h0OjMwcHg7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYXsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGE6aG92ZXJ7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBhOnZpc2l0ZWR7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAuZXhwYW5kUm93eyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjFmMWY7IHRleHQtYWxpZ246cmlnaHQ7IGNvbG9yOiM0MTQxNDE7IG1hcmdpbi1sZWZ0OjRweDsgbWFyZ2luLXJpZ2h0OjJweDsgfSBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmRkZGQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNkMTAwMGM7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgei1pbmRleDo5OTk5OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I2VmZmZlZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMDk3NzAwOyBjb2xvcjojMDk3NzAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSBkaXYudG95b3RJbWFnZSB7IGNvbG9yOiM2NjY2NjY7IGZvbnQtc2l6ZTozLjQzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDoyNTBweDsgbGVmdDowOyBvcGFjaXR5OjAuODsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nOjVweCAxMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjM4MHB4OyB6LWluZGV4Ojg7IH0gZGl2LnRveW90SW1hZ2UgcCB7IHBhZGRpbmc6NXB4OyBtYXJnaW46MDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6I0E2QTZBNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gZGl2Lm5ld0Nhck1haW5Cb3ggeyB3aWR0aDo5NjBweDsgbWFyZ2luOjAgYXV0bzsgfSBkaXYubmV3Q2FyTWFpbkJveDIgeyBtYXJnaW4tdG9wOjVweDsgfSBkaXYubmV3Q2FyTWFpbkJveDMgeyB3aWR0aDo5NjBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94OTcwX3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgfSAuc3RvY2tJbWdTdHlsZXsgd2lkdGg6MTAwJTsgaGVpZ2h0OjUwJTsgZm9udC1zaXplOjIuMjVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy10b3A6MzBweDsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbjowcHg7IGNvbG9yOiMzMDMwMzA7IH0gI2ZpcnN0U2xpZGVySW1nIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxNTsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IG9wYWNpdHk6MTsgcGFkZGluZzowOyBtYXJnaW46MDsgfSAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyeyBib3JkZXI6MXB4IHNvbGlkICNGRkY7IHdpZHRoOjY0MHB4OyBoZWlnaHQ6NDgwcHg7IH0gI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlciAuaW5uZXItcGxhY2Vob2xkZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmZsZXg7IHRvcDowOyBib3R0b206MDsgbGVmdDowOyByaWdodDowOyB9ICNmaXJzdFNsaWRlckltZyBJTUd7IGhlaWdodDphdXRvOyBtYXgtd2lkdGg6NjQwcHg7IG1heC1oZWlnaHQ6NDgwcHg7IHdpZHRoOmF1dG87IG1hcmdpbjphdXRvOyB9ICNmaXJzdFNsaWRlckltZy5mYWRlLW91dHsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgLXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgLW1vei10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgLW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IHRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyB9ICNzb2NpYWxUaW1lbGluZXsgd2lkdGg6OTYwcHg7IGhlaWdodDphdXRvOyB9IGRpdi5uZXdDYXJNYWluQm94NCB7IHdpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3g5NzBfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MTBweCAxNXB4OyB9IGRpdi5uZXdDYXJUaXRsZUJveCBoMXsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuZ3JheWJveCB7IGJhY2tncm91bmQtY29sb3I6I0VGRUZFRjsgYm9yZGVyOjFweCBzb2xpZCAjRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6IzAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjEwcHggMCAxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXNoYWRvdzowIDFweCAwICNGRkZGRkY7IH0gLmdyYXlib3ggPiBzcGFuIHsgY29sb3I6IzAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmdyYXlib3ggLnNtYWxsdGV4dCB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNDQ0NDQ0M7IGJvcmRlci10b3A6MXB4IHNvbGlkICNDQ0NDQ0M7IGNvbG9yOiMzMzMzMzM7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IG1hcmdpbi10b3A6MTBweDsgcGFkZGluZzoxMHB4OyB9IC5ncmF5Ym94IGgyIHsgY29sb3I6IzAwMDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbjo1cHggYXV0bzsgfSAuZXh0ZW5kZWRQaG9uZXsgcG9zaXRpb246Zml4ZWQ7IGJhY2tncm91bmQtY29sb3I6IzY3Njc2NzsgY29sb3I6I2RkZDsgcGFkZGluZzowLjZlbTsgYm9yZGVyLXJhZGl1czo1cHg7IHotaW5kZXg6OTk5OTsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5leHRlbmRlZFBob25lIGxhYmVseyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZXh0ZW5kZWRQaG9uZSBzcGFueyBjb2xvcjojZmZmOyB9IC5waG9uZU5vdGV7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHBhZGRpbmctdG9wOjdweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdkV4IHsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjFyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmctbGVmdDoyMHB4OyBwYWRkaW5nLXRvcDozMHB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IGRpdnsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctdG9wOjEwcHg7IHdpZHRoOjIwMHB4OyBmbG9hdDpsZWZ0OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVseyBtYXJnaW4tYm90dG9tOjIwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IG1hcmdpbi10b3A6NXB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpeyBsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDo0MHB4OyB0ZXh0LWluZGVudDotMTBweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBheyBjb2xvcjojMzMzOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGkgYXsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYXJyb3dfcmVkLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgMCAxMHB4IHRyYW5zcGFyZW50OyBjb2xvcjojMzMzMzMzOyBtYXJnaW4tcmlnaHQ6MnB4OyBwYWRkaW5nOjZweCAxMHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuY29tcGFyZUxpbmtzIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5jb21wYXJlTGlua3MgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuZW1haWxCb2R5LCAuZW1haWxTdWJqZWN0eyBkaXNwbGF5Om5vbmU7IH0gI2NvbnRhY3R1cyBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmRkZGQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNkMTAwMGM7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9ICNjb250YWN0dXMgZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I2VmZmZlZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMDk3NzAwOyBjb2xvcjojMDk3NzAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAjUGFnZUZpbmFuY2UgLnN0ZXBBY3RpdmUgeyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy8xX2hvdmVyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiMwMDAwMDA7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6NDZweDsgbWFyZ2luLWxlZnQ6MTBweDsgfSAjUGFnZUZpbmFuY2UgLnN0ZXBVbmFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzLzFfcm91bmQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6I0ZGRkZGRjsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDo0NnB4OyBtYXJnaW4tbGVmdDoxMHB4OyB9ICNQYWdlRmluYW5jZSAudGV4dDEgc3BhbiB7IGNvbG9yOiM0MzQzNDM7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNGM0YzRjM7IHdpZHRoOmF1dG87IH0gI1BhZ2VGaW5hbmNlIGRpdi5lbWFpbFNlbnRNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNCOEZGQjg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2FjY2VwdGVkLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQgIzBCOTYwMDsgY29sb3I6IzBCOTYwMDsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gLm90aGVyX2xpbmtzIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5vdGhlcl9saW5rcyBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wcm9tb3Rpb25TaWRlQnRuQSB7IGJhY2tncm91bmQ6I2ZmMDAwMDsgY29sb3I6I2ZmZmZmZjsgZGlzcGxheTpibG9jaztmb250LXNpemU6MS4yNXJlbSA7d2lkdGg6Zml0LWNvbnRlbnQ7aGVpZ2h0OjUzcHg7cGFkZGluZzoycHggMTVweCAwcHggMTVweDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDo1M3B4O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtc2l6ZToxMDAlOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDozcHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDozcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowcHg7IHRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgLW1zLXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IH0gLmZvb3Rlck11bHRpQWRkcmVzczMgeyBib3JkZXItcmlnaHQ6MXB4ICM5MTkxOTEgc29saWQ7IHBhZGRpbmctcmlnaHQ6NzBweDsgbWFyZ2luLWxlZnQ6MTRweDsgY29sb3I6IzU3NTc1NzsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMiB7IGJvcmRlci1yaWdodDoxcHggIzkxOTE5MSBzb2xpZDsgcGFkZGluZy1yaWdodDoxNTBweDsgbWFyZ2luLWxlZnQ6OTNweDsgY29sb3I6IzU3NTc1NzsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMSB7IG1hcmdpbi1sZWZ0OjM0NXB4OyBjb2xvcjojNTc1NzU3OyB9IC5zbWFsbEFjdGlvbldlYnNpdGVDb2xvciB7IGJhY2tncm91bmQgOnVybCgiL2ltYWdlcy9ibF9iZzIucG5nIikgbGVmdCB0b3AgcmVwZWF0LXg7IGNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IH0gLnNtYWxsQWN0aW9uV2Vic2l0ZUNvbG9yOmhvdmVyeyBiYWNrZ3JvdW5kIDp1cmwoIi9pbWFnZXMvbWVudTEwX2JnLnBuZyIpIGxlZnQgdG9wIHJlcGVhdC14OyBjb2xvcjojRkZGOyB9IC5uYXYgbGkgYS50b3BfbGluay5pc0JvbGQsIC5uYXYgbGkgYS5pc0JvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI21haW5IZWFkZXIgZGl2LmJveDE1UGFkZGluZ3sgcGFkZGluZy10b3A6MTVweDsgfSAubmF2IC5ub3RDbGlja2FibGV7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IH0gLlMxMDBQZXJjZW50V2lkdGh7IHdpZHRoOjEwMCU7IH0gI2ZpbHRlck1haW5Cb3ggeyBjb2xvcjojMDAwOyB9ICNmaWx0ZXJNYWluQm94IC5maWx0ZXJTcGFuLCAjZmlsdGVyTWFpbkJveCAuZmlsdGVyQ2hlY2ssICNmaWx0ZXJNYWluQm94IC5yYWRpb1NvcnQgeyBjdXJzb3I6cG9pbnRlcjsgfSAuYkNvZGVTdHlsZSB7IGZsb2F0OmxlZnQ7IHdpZHRoOjI1JTsgZm9udC1zaXplOjAuOGVtOyBwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbToxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOjsgfSAuYkNvZGVTb3J0IHsgZmxvYXQ6bGVmdDsgd2lkdGg6MTYlOyBiYWNrZ3JvdW5kLWNvbG9yOjsgZm9udC1zaXplOjAuOGVtOyBwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbToxNXB4OyB9IC5iQ29kZVNvcnQgLmJDb2RlSGVhZGluZywgLmJDb2RlU3R5bGUgLmJDb2RlSGVhZGluZyB7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWxlZnQ6MnB4OyB9IC5wYWdlX25hbWU0Mnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDt9IC5wYWdlX25hbWU0MiBoMiB7Zm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMwMDAwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsO2JvcmRlcjpub25lO30gLnBhZ2VfbmFtZTQyIGgyLm5vdGZpcnN0IHtmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWw7bWFyZ2luLXRvcDowcHg7cGFkZGluZy10b3A6NDBweDtib3JkZXItdG9wOjFweCAjY2NjY2NjIHNvbGlkO3dpZHRoOjkyMHB4O30gI2ZpbHRlck1haW5Cb3gubmV3Y2Fyc3N0eWxlMnsgLW1vei1ib3JkZXItcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXItcmFkaXVzOjBweDsgYm9yZGVyOm5vbmU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNiZWJlYmU7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNiZWJlYmU7IHdpZHRoOjk1NXB4OyBsZWZ0OjNweDsgfSBkaXYuaW1kZXYgbGFiZWx7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctdG9wOjEwcHg7IH0gZGl2LmltZGV2IGRpdnsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiNEOUQ5RDk7IHBhZGRpbmc6MTBweCAwcHggMTBweCAwcHg7IHdpZHRoOjEwMCU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gZGl2LmltZGV2X2lubmVyIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBtYXJnaW4tbGVmdDozMHB4OyB3aWR0aDo5MCUgIWltcG9ydGFudDsgfSB1bC5xdWl6IHtwYWRkaW5nOjEwcHggMCAxMHB4IDIwcHg7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBoZWlnaHQ6MTc1cHg7fSB1bC5xdWl6IGxpIHtwYWRkaW5nOjEwcHg7fSB1bC5xdWl6IGxpIGlucHV0IHttYXJnaW4tcmlnaHQ6MTBweDt9IC5uZXdzLWJvZHkge3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6MC44MTNyZW0gO2NvbG9yOiMxOTE5MTk7cGFkZGluZy1yaWdodDoxNXB4O21hcmdpbi10b3A6LTIwcHg7cGFkZGluZy1ib3R0b206MTBweDt9IC5uZXdzLWFsbC10ZXh0IHtjb2xvcjojMTkxOTE5O30gI25ld3NDb250YWluZXIgLnRleHRfYm94MTEgaW1nIHsgbWF4LXdpZHRoOjY0MHB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IGF1dG87IH0gI25ld3NDb250YWluZXIgLnVzZWR7IGNsZWFyOmJvdGg7IH0gLmhvbWVfYWN0aW9uX2FkaiB7IHdpZHRoOjk2MXB4OyB9IC5ob21lX2FjdGlvbl9hZGoyIHsgd2lkdGg6NzMwcHghaW1wb3J0YW50OyBoZWlnaHQ6NjAwcHghaW1wb3J0YW50OyB9IC5ob21lX2VtYWlseyB3aWR0aDoyMzJweDsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAud2lkZ2V0X21lbnVfYWRqMXsgZm9udC1zaXplOjAuOGVtOyB9IC53aWRnZXRfbWVudV9hZGoyeyBmbG9hdDpyaWdodDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTJweDsgfSAud2lkZ2V0X21lbnVfZXh0ZW5kZWRQaG9uZXsgZm9udC1zaXplOjAuOGVtOyBtYXJnaW4tbGVmdDoxMDRweDsgdG9wOjEzMnB4OyB9IC53aWRnZXRfbWVudV9hZGozeyBmb250LXNpemU6MC44ZW07Y29sb3I6IzU3NTc1Nztwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0Oi04cHg7IH0gLndpZGdldF9tZW51X2FkajR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MC44ZW07IGRpc3BsYXk6dGFibGU7IH0gLnBob25lX3RleHQucmlnaHQgeyBmbG9hdDpub25lOyBoZWlnaHQ6aW5pdGlhbDsgbWFyZ2luLWxlZnQ6YXV0bzsgd2lkdGg6aW5oZXJpdDsgfSAucGhvbmVfdGV4dCAudGVsIHsgbWFyZ2luLWxlZnQ6MTBweDsgfSAucGhvbmVfdGV4dCBsYWJlbCB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206NHB4OyB9IC53aWRnZXRfbWVudV9hZGo0LnJpZ2h0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLndpZGdldF9tZW51X2FkajQubGVmdCB7IHBhZGRpbmctcmlnaHQ6MTBweDsgd2lkdGg6aW5oZXJpdDsgfSAud2lkZ2V0X21lbnVfYWRqNnsgZm9udC1zaXplOjAuOGVtO3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6LTNweDtjb2xvcjojNTc1NzU3O2N1cnNvcjpwb2ludGVyOyB9IC53aWRnZXRfZXhwcmVzc19tYWlsX3Bob25lX3RpdGxleyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYWFhO3RleHQtYWxpZ246IGNlbnRlcjtmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206OHB4OyBwYWRkaW5nLXRvcDo4cHg7IGNvbG9yOiMwMDAwMDA7IH0gLndpZGdldF9leHByZXNzX21haWxfYWRqMXsgcGFkZGluZzoxNXB4IDEwcHg7IGxpbmUtaGVpZ2h0OjYwcHg7IGZvbnQtc2l6ZToyZW07IHBhZGRpbmc6MTVweCAxMHB4O3RleHQtYWxpZ246Y2VudGVyOyB9IC5iYW5uZXJQb3B1cENsb3NleyBsZWZ0OjcxMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTVweDsgdG9wOjIwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5wcmljZU5vdGUgeyBjb2xvcjojNzU3NTc1OyBmb250LXN0eWxlOml0YWxpYzsgdGV4dC1hbGlnbjpqdXN0aWZ5OyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTRweDsgfSAuc3RhY2tlZERpc2NsYWltZXJ7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6MTBweDsgfSBzcGFuLnN0YWNrZWREaXNjbGFpbWVyOmJlZm9yZXsgY29udGVudDoiKioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjFyZW07IH0gLnRvcHJpbnR7IGRpc3BsYXk6bm9uZTsgfSAucmVmZmVyZW5jZUNvbnRlbnREZW1vLCAucmVmZmVyZW5jZUNvbnRlbnRDbGVhcmFuY2V7IHBhZGRpbmc6MzBweCAyMHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjOyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gLmJveDJfZGV0YWlsc190ZXh0MiAuY29tcGFyZUJ1dHRvbiwgLmJveDJfZGV0YWlsc190ZXh0MjIgLmNvbXBhcmVCdXR0b257IHBvc2l0aW9uOmFic29sdXRlOyBtYXJnaW4tdG9wOi0yMHB4OyB6LWluZGV4OjE7IGxlZnQ6LTMwcHg7IH0gLnZkcHsgY2xlYXI6Ym90aDsgd2lkdGg6MTYwcHg7IH0gLmNvbXBhcmVCdXR0b257IHRyYW5zaXRpb246Ym94LXNoYWRvdyAwLjI1cyBlYXNlLW91dCAwczsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQgMHM7IGRpc3BsYXk6bm9uZTsgfSBkaXYjc2xpZGVyLXByby0xMiB7IGJvcmRlcjoxcHggc29saWQgI0VCRUJFQjsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQ6I2ZmZjsgfSAjc2xpZGVyUHJvbW9BbGVydHsgYm9yZGVyLXJhZGl1czozcHggM3B4IDAgMDsgfSAuc2xpZGUtd3JhcHBlcnsgYm9yZGVyLXJhZGl1czozcHg7IH0gI3NsaWRlaXQgbGFiZWwub3BlbnsgYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDsgfSBpbWcuaW1hZ2UgeyBib3JkZXItcmFkaXVzOjNweDsgfSAubmV3VmRwVmlld2VyIC5jb21wYXJlQnV0dG9ueyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjJweDsgcmlnaHQ6MHB4OyB6LWluZGV4OjExMTE7IH0gLmxpdmVBbGVydF9saW5reyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubGl2ZUFsZXJ0X2xpbms6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5idXR0b24tdG9hc3RyeyBiYWNrZ3JvdW5kOiNGRkY7cGFkZGluZzo0cHggMjBweDtib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0JEMzYyRiFpbXBvcnRhbnQ7IH0gLmJ1dHRvbi10b2FzdHI6aG92ZXJ7IGJhY2tncm91bmQ6IzAwMDsgY29sb3I6I0ZGRjsgfSAucmV0dXJuUG9wdXBfc3VibWl0IHNwYW4geyBwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7IHRvcDo1MCUhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50OyBsZWZ0OjAhaW1wb3J0YW50OyByaWdodDowIWltcG9ydGFudDsgcGFkZGluZzowIDhweCAwIDhweCFpbXBvcnRhbnQ7IGN1cnNvcjpwb2ludGVyIWltcG9ydGFudDsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IG1hcmdpbjowIWltcG9ydGFudDsgY29sb3I6I0ZGRiFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6LTlweCFpbXBvcnRhbnQ7IH0gcmV0dXJuUG9wdXBfc3VibWl0OmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojMGJiMWUwOyBjb2xvcjojZmZmOyB9IC5yZXR1cm5Qb3B1cF9zdWJtaXQgeyBkaXNwbGF5OmJsb2NrOyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1yYWRpdXM6NXB4OyBsZWZ0OjIyOHB4OyB6LWluZGV4OjU7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6NDBweDsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6OyB0ZXh0LXNoYWRvdzoxcHggMXB4ICMwMDJiNDY7IGNvbG9yOiNmZmY7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBmb250LXNpemU6MXJlbSA7IGxpbmUtaGVpZ2h0OjE5cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjcmV0dXJuUG9wdXBGb3JtX3dyYXBwZXIgeyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOnJnYmEoNjYsNjYsNjYsMSk7IGJvcmRlci1zdHlsZTpub25lOyBib3JkZXItcmFkaXVzOjExcHg7IGxlZnQ6MjgwcHg7IHRvcDoxNTVweDsgei1pbmRleDoyOyB3aWR0aDo1MzFweDsgaGVpZ2h0OjM4NHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjcmV0dXJuUG9wdXBUaWx0ZXsgd2lkdGg6MzM1cHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW46MjBweDsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjcmV0dXJuUG9wdXBUaWx0ZSAucnBfbWN7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyB9ICNyZXR1cm5Qb3B1cFRpbHRlMnsgY29sb3I6I0ZGRjsgbWFyZ2luOjIwcHggMTBweCAyMHB4IDIwcHg7IHBhZGRpbmc6MDsgfSAucmV0dXJuUG9wdXBGb3JtX2xhYmVsIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxNHB4OyBjb2xvcjojYmZiZmJmOyBtYXJnaW4tbGVmdDoyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucmV0dXJuUG9wdXBGb3JtX3RhYmxlIHRyIHRkeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5ycF9tYyB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBjb2xvcjohaW1wb3J0YW50OyBwYWRkaW5nOjAhaW1wb3J0YW50OyBtYXJnaW46MCFpbXBvcnRhbnQ7IH0gI2V4aXRQb3B1cENvbnRhaW5lcnsgcGFkZGluZzowOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX2Zvcm17IGhlaWdodDozNHJlbTsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvdHJhZGVpbi1leGl0cG9wdXAtZnIucG5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1leGl0LXBvcHVwLWJnY29sLCAjZWVlKTsgfSBib2R5LkVOR0xJU0ggI2V4aXRfcG9wdXBfYWNjdXRyYWRlX2Zvcm17IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL3RyYWRlaW4tZXhpdHBvcHVwLWVuLnBuZyk7IH0gLmV4aXRfcG9wdXBfYnV0dG9ucyBidXR0b24geyB3aWR0aDoxMXJlbTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuZXhpdF9wb3B1cF90ZXh0X2xpbmVfMnsgbWFyZ2luLXRvcDoyN3B4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuZXhpdF9wb3B1cF90ZXh0X2xpbmVfM3sgZm9udC1zaXplOjEuNjI1cmVtIDsgbWFyZ2luLWJvdHRvbTozcHg7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgfSAuZXhpdF9wb3B1cF90ZXh0X2xpbmVfNSB7IG1hcmdpbi1ib3R0b206MjBweDsgZm9udC1zaXplOjEuNjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBtYXJnaW4tdG9wOjYzcHg7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX3RpdGxleyBoZWlnaHQ6OTVweDsgd2lkdGg6NTcwcHg7IG1hcmdpbi10b3A6MjBweDsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfdGl0bGUuX0ZSRU5DSHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvYWNjdS10cmFkZS1leGl0LXRpdGxlX2ZyLnBuZyk7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX3RpdGxlLl9FTkdMSVNIeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy9hY2N1LXRyYWRlLWV4aXQtdGl0bGVfZW4ucG5nKTsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXJ7IHdpZHRoOjQ4MHB4OyBoZWlnaHQ6NTEwcHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgd2lkdGg6NDgwcHg7IGhlaWdodDo1MTVweDsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIgLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9wb3B1cHMvZnIvYmVzdFByaWNlTmV3VmRwLnBuZycpOyB9IC5wb3B1cF9iZ3sgYmFja2dyb3VuZC1jb2xvcjojMzJhN2RhOyBiYWNrZ3JvdW5kLXNpemU6NDgwcHggNTE1cHg7IH0gLnBvcHVwRm9ybSAuYXN0ZXJpc2t7IGNvbG9yOiNkMDA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOmluaGVyaXQ7IG1hcmdpbjowOyB9IC5wb3B1cEZvcm17IHotaW5kZXg6NTA7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MjQ4cHg7IGhlaWdodDoyNDlweDsgbGVmdDo4MHB4OyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9jb3Vwb24tZm9ybS1iZy0yLnBuZyIpIG5vLXJlcGVhdDsgd2lkdGg6MzM1cHg7IHBhZGRpbmc6MzBweDsgfSAucG9wdXBGb3JtVGl0bGV7IGhlaWdodDo0MHB4OyBtYXJnaW46OHB4OyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IC5wb3B1cEZvcm1JbnB1dHMgdGQgeyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOnJpZ2h0OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IHBhZGRpbmctYm90dG9tOjNweDsgfSAucG9wdXBGb3JtIGlucHV0eyB3aWR0aDoyMTBweDsgfSAjYXNQdXJjaGFzZUludGVudHsgd2lkdGg6NjAwcHg7IHBhZGRpbmc6MzBweCAzMHB4OyBoZWlnaHQ6YXV0bzsgY29sb3I6IzAwMDsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyB6LWluZGV4OjEwMDAwMjE7IH0gI3Byb21vRGlzY292ZXJCdXR0b257IH0gLm5ld1ZkcFZpZXdlciB7IHdpZHRoOjY0MHB4OyBoZWlnaHQ6NDgwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjIwcHg7IH0gLmxvY2F0aW9uLW5hbWVzIHsgcG9zaXRpb246c3RhdGljOyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyA+IHVsLnN1YiA+IGxpID4gdWwgeyBwb3NpdGlvbjpzdGF0aWM7IH0gLmltZ19tZW51LnVwX21lbnUgdWwubmF2IHVsLnN1YiBsaSAubG9jYXRpb24tbmFtZXMgeyBtaW4td2lkdGg6MjAwcHg7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIGxpLmxvY2F0aW9uLW5hbWVzIHsgbWluLXdpZHRoOjIwMHB4OyB9IC5sb2NhdGlvbi1uYW1lcywgLmxvY2F0aW9uLW5hbWVzIGxpIHsgbGlzdC1zdHlsZTpub25lOyB9IC5MMTAwIHsgbGVmdDoxMDAlOyB9IC5SMTAwIHsgcmlnaHQ6MTAwJTsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHBhZGRpbmc6MTRweDsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IGRpc3BsYXk6bm9uZTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgbWluLXdpZHRoOjI5MHB4OyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyA+IC50aXRsZSB7IG1hcmdpbi1ib3R0b206MWVtOyBmb250LXNpemU6aW5pdGlhbDsgY29sb3I6IzAwMDAwMDsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgPiAubG9jYXRpb24tZGV0YWlscy1sb2dvID4gaW1nIHsgbWF4LXdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206OHB4OyB9IGxpLmxvY2F0aW9uLW5hbWVzOmhvdmVyIC5sb2NhdGlvbi1kZXRhaWxzIHsgZGlzcGxheTpibG9jazsgfSBsaS5sb2NhdGlvbi1uYW1lczpob3ZlciAubWFpbm1lbnUtc3VibWVudSB7IG9wYWNpdHk6MTsgdmlzaWJpbGl0eTp2aXNpYmxlOyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyAubG9jYXRpb24tZGV0YWlscy1sb2dvIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgbWFyZ2luLWJvdHRvbTo4cHg7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyAubG9jYXRpb24tbmFtZXMgLm1haW5tZW51LXN1Ym1lbnUgLmxvY2F0aW9uLWRldGFpbHMgeyBtYXgtaGVpZ2h0OjYwdmg7IHBvc2l0aW9uOnN0YXRpYzsgfSAudXBfbWVudSB1bC5uYXYgLmxvY2F0aW9uLWRldGFpbHMtaW5mbyBhIHsgY29sb3I6IzAwMDAwMDsgcGFkZGluZzowOyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gLmxvY2F0aW9uLXNwYWNpbmctbWwtMTMgeyBtYXJnaW4tbGVmdDoxMy40OXB4OyB9IC51cF9tZW51IHVsLm5hdiBsaS5kZXRhaWxzLWluZm8tbGluayBhIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnVwX21lbnUgdWwubmF2IC5kZXRhaWxzLWluZm8tbGluazpob3ZlciBhIHsgY29sb3I6IzAwMDAwMDsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgPiBsaSA+IHVsIHsgbWF4LWhlaWdodDo2MHZoOyBvdmVyZmxvdy15OmF1dG87IG92ZXJmbG93LXg6aGlkZGVuOyB9IGJvZHkgLndyYXBwZXIgLnVwX21lbnUgLm5hdiA+IGxpOmhvdmVyIHVsLnN1YiBsaTpob3ZlciAuZGV0YWlscy1pbmZvLWxpbmsgbGk6aG92ZXIgYSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSBsaS5kZXRhaWxzLWluZm8tbGluazpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMDsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvIHVsIGxpIHsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWJvdHRvbTo0cHg7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyA+IHVsID4gbGk6YmVmb3JlIHsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6N3B4OyBtYXJnaW4tYm90dG9tOjFweDsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgdWwgeyBwYWRkaW5nOjA7IH0gQG1lZGlhIHByaW50eyAudG9wcmludHsgZGlzcGxheTpibG9jazt9IH0gLm1yLTE1IHsgbWFyZ2luLXJpZ2h0OjE1cHg7IH0gLm1sLTE1IHsgbWFyZ2luLWxlZnQ6MTVweDsgfSAubWwtNyB7IG1hcmdpbi1sZWZ0OjdweDsgfSBzcGFuLmFycm93IHsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTJweDsgfSBzcGFuLmFycm93LmFycm93LWxhcmdlIHsgYm9yZGVyLXdpZHRoOjAgM3B4IDNweCAwOyBwYWRkaW5nOjRweDsgYm9yZGVyLXJhZGl1czozcHg7IH0gc3Bhbi5hcnJvdy5hcnJvdy1yaWdodCB7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy1sZWZ0IHsgdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LXVwIHsgdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctZG93biB7IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOyB9IC50b3BiYXIzYnRuV3JhcHsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6IzJmYmYxOTsgYm9yZGVyOjJweCBzb2xpZCAjRDZENkQ2OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGhlaWdodDo0MnB4OyBwYWRkaW5nOjAgMjBweDsgY29sb3I6I2ZmZmZmZjsgfSAudG9wYmFyM2J0bnsgZm9udC13ZWlnaHQ6Ym9sZDsgdHJhbnNpdGlvbjouMnM7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IGJvcmRlci1jb2xvcjp3aGl0ZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGN1cnNvcjpwb2ludGVyOyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6aW5oZXJpdDsgfSAudHJhZGVJbkJhcl9idG57IGZvbnQtd2VpZ2h0OmJvbGQ7IGJvcmRlci1yYWRpdXM6NXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB0cmFuc2l0aW9uOi4yczsgYm9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6d2hpdGU7IGJvcmRlci1jb2xvcjp3aGl0ZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGN1cnNvcjpwb2ludGVyOyBoZWlnaHQ6NTBweDsgYmFja2dyb3VuZC1jb2xvcjojMmZiZjE5OyBjb2xvcjogI2ZmZmZmZjsgYm9yZGVyOjJweCBzb2xpZCAjRDZENkQ2OyBtaW4td2lkdGg6MjAwcHg7IG1heC13aWR0aDoyMDBweDsgfSAudHJhZGVJbkJhcl9idG46aG92ZXIsLnRvcGJhcjNidG5XcmFwOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiMyZmJmMTkhaW1wb3J0YW50OyB9ICNnUmF0aW5nTGFyZ2V7IGJhY2tncm91bmQ6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjVweCAwcHg7IG1hcmdpbi10b3A6NXB4OyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxNTBweDsgbWFyZ2luLWxlZnQ6MzBweDsgfSAjZ1JhdGluZ3sgY3Vyc29yOnBvaW50ZXI7IH0gLnRyYWRlSW5WaW5JbnB1dHsgaGVpZ2h0OjUwcHg7IGJvcmRlci1yYWRpdXM6NXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYm94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDoxMDAlOyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzYzM4MzY7IGJvcmRlcjoycHggc29saWQgI0Q2RDZENjsgfSAudHJhZGVJblZpbklucHV0OjpwbGFjZWhvbGRlcnsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojM2MzODM2OyB9IC50cmFkZUluT3JMYWJlbHsgbWF4LXdpZHRoOjI1cHg7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyeyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHg7IG1hcmdpbi10b3A6MTBweDsgZm9udC1zaXplOjFyZW0gOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0eyBkaXNwbGF5Om5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3RMYWJlbHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjowIDEycHg7IGN1cnNvcjpwb2ludGVyOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0OmNoZWNrZWQrbGFiZWx7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIGJsYWNrOyB9IC50cmFkaW5TZWxlY3RXeyBtaW4td2lkdGg6MjAwcHg7IG1heC13aWR0aDoyMDBweDsgfSAudHJhZGluU2VsZWN0Vy53aXRoVklOTWFrZXsgbWluLXdpZHRoOjE0MHB4OyBtYXgtd2lkdGg6MTQwcHg7IH0gLnRyYWRpblNlbGVjdFcud2l0aFZJTlllYXJ7IG1pbi13aWR0aDo4MHB4OyBtYXgtd2lkdGg6ODBweDsgfSAudHJhZGluSW5wdXRXeyBtaW4td2lkdGg6MjAwcHg7IG1heC13aWR0aDoyMDBweDsgfSAudHJhZGluU2VsZWN0QXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnRyYWRpblNlbGVjdEE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAudHJhZGluU2VsZWN0eyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICNENkQ2RDY7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjEwcHggMTBweDsgZm9udC1zaXplOjFyZW0gOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIDUwJTsgd2lkdGg6MTAwJTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGhlaWdodDo1MHB4OyB9IC50cmFkaW5TZWxlY3Q6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgfSAubXVsdGlzZWxlY3RWZWhpY2xlT3B0aW9ucyBzcGFueyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IG1hcmdpbjowICFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkJhck11bHRpc2VsZWN0eyB3aWR0aDo1NjhweCFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MC4zcmVtIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOjFweCFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MC4zcmVtIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNhOWE5YTkhaW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1tZW51LnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgbWluLXdpZHRoOjI3MnB4OyB6LWluZGV4OjEwMDAwMjA7IG1heC1oZWlnaHQ6MTIwcHg7IG92ZXJmbG93OnNjcm9sbDsgfSAudHJhZGVJbkJhckRlYWxlclN0ZXB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyRGVhbGVyU3RlcE1ha2VNb2RlbFllYXJ7IGZvbnQtd2VpZ2h0OjcwMDsgfSAudHJhZGVJbkJhckRlYWxlclN0ZXAgc3BhbnsgbWFyZ2luOjAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAhaW1wb3J0YW50OyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KSB7IC50cmFkaW5TZWxlY3RXIHsgbWluLXdpZHRoOmNhbGMoKDIwMHB4IC0gdmFyKC0tcykpIC0gdmFyKC0tcywgMC41cmVtKSk7IG1heC13aWR0aDpjYWxjKCgyMDBweCAtIHZhcigtLXMpKSAtIHZhcigtLXMsIDAuNXJlbSkpOyB9IH0gI2dvb2dsZVJldmlld3NGb290ZXJ7IG1hcmdpbjowIGF1dG87IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czo1cHg7IG1heC13aWR0aDo5NDBweDsgaGVpZ2h0OjI3NXB4OyB9IC5yZXZpZXctaXRlbSB7IGZsb2F0OmxlZnQ7IGhlaWdodDoxODVweDsgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjQ2MHB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgYm9yZGVyLXRvcDo0cHggc29saWQgI0VCRUJFQjsgcGFkZGluZy10b3A6MTBweDsgfSAuZmlyc3RjaGFydXA6OmZpcnN0LWxldHRlcnsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IEkuaWNvbi1jb21wYXJlLTEsIHNwYW4uaWNvbi1jb21wYXJlLTF7IGNvbG9yOiNmZjAwMDA7IH0gSS5pY29uLWNvbXBhcmUtMTpob3Zlciwgc3Bhbi5pY29uLWNvbXBhcmUtMTpob3ZlcnsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzojZmYwMDAwIDFweCAxcHgsICNmZjAwMDAgLTFweCAxcHgsICNmZjAwMDAgLTFweCAtMXB4LCAjZmYwMDAwIDFweCAtMXB4OyBib3JkZXItcmFkaXVzOjIwcHg7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgfSAuZ1JhdGluZy1pY29uIGkgeyBmb250LXNpemU6MS4wNjNyZW0gOyB9IC5nUmF0aW5nLWljb24jZ1JhdGluZyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB3aWR0aDo5MHB4OyBoZWlnaHQ6MjhweDsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOyBjb2xvcjp3aGl0ZTsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgZ2FwOjdweDsgfSAuZ1JhdGluZy1pbWcjZ1JhdGluZyB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvZ3JhdGluZy5wbmcpOyBjb2xvcjojMzU2Q0YyOyB3aWR0aDo5NXB4OyBoZWlnaHQ6MjhweDsgcGFkZGluZzo0cHggMzFweCAxMHB4IDEwcHg7IG1hcmdpbi10b3A6MXB4OyB9ICNnUmF0aW5neyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGRpc3BsYXk6YmxvY2s7IH0gSU5QVVRbdHlwZT0idGV4dCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBJTlBVVFt0eXBlPSJ0ZWwiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSU5QVVRbdHlwZT0iZW1haWwiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSU5QVVRbdHlwZT0icGFzc3dvcmQiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSDEuZGVmYXVsdHsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjbGVhcjpib3RoOyBwYWRkaW5nOjAgMCAyNXB4IDA7IH0gSDEuZGVmYXVsdCBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBIMS5kZWZhdWx0IEkuaWNvbiwgSDEuZGVmYXVsdCBzcGFuLmljb24geyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIzcHg7IGhlaWdodDoyOXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDoxMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS41NjNyZW0gOyBtYXJnaW4tcmlnaHQ6MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMmE3ZGE7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEgxLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgxeyBtYXJnaW4tdG9wOjEwcHg7IH0gSDEuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgxLCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MnB4OyB9IEgxLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgxKXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMyl7IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtc2l6ZTowLjhyZW07IGNvbG9yOiNiYmI7IHBhZGRpbmctdG9wOjVweDsgfSBoMS5ja2VkaXRvci1kZWZhdWx0IHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjIuMTI1cmVtIDsgcGFkZGluZzowIDAgMTVweCAwOyBjb2xvcjojMDAwMDAwOyB9IGgxLmNrZWRpdG9yLWRlZmF1bHQ6OmJlZm9yZSB7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1mYW1pbHk6Rm9udEF3ZXNvbWU7IHdpZHRoOjI4cHg7IGhlaWdodDozNXB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgcGFkZGluZzo0cHggMCAwIDExcHg7IGJvcmRlci1yYWRpdXM6NDFweDsgZm9udC1zaXplOjEuOTM4cmVtIDsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMmE3ZGE7IH0gSDIuZGVmYXVsdHsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzoxMHB4IDA7IG1hcmdpbi10b3A6MTBweDsgfSBIMi5kZWZhdWx0IEkuaWNvbiwgSDIuZGVmYXVsdCBzcGFuLmljb257IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuMzc1cmVtIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMzJhN2RhOyB9IEgyLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgyLCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMnsgbWFyZ2luLXRvcDo3cHg7IH0gSDIuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgyLCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDJ7IG1hcmdpbi10b3A6MHB4OyB9IEgyLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgxKXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBIMi5kZWZhdWx0LmNyZWRzaWlVc2VkTWluSGVpZ2h0IC5UaXRsZVRleHQgeyB3aWR0aDo4MCU7IH0gSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkICNmaXJzdFNsaWRlckltZyAucGxhY2Vob2xkZXJ7IHdpZHRoOjgwMHB4OyBoZWlnaHQ6NjAwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCAjZmlyc3RTbGlkZXJJbWcgSU1HeyBtYXgtd2lkdGg6ODAwcHg7IG1heC1oZWlnaHQ6NjAwcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC1zaXplOjEuNDM4cmVtIDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgc3Bhbi5pY29uIHsgd2lkdGg6MjhweDsgaGVpZ2h0OjM1cHg7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IHBhZGRpbmctbGVmdDoxMXB4OyBib3JkZXItcmFkaXVzOjQxcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMSwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMXsgbWFyZ2luLXRvcDoxMXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgxLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMXsgbWFyZ2luLXRvcDoxcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHsgZm9udC1zaXplOjEuODc1cmVtIDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC1zaXplOjEuMTg4cmVtIDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQuY3JlZHNpaVVzZWRNaW5IZWlnaHQgLlRpdGxlVGV4dCB7IHdpZHRoOjkwJTsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgyLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgyeyBtYXJnaW4tdG9wOjExcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDIsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgyeyBtYXJnaW4tdG9wOjRweDsgfSB9ICNjaXR5VGl0bGUge2NvbG9yOiMwMDAwMDA7fSAubWFpbl9sZWZ0X2JveCB7IGNvbG9yOiMwMDAwMDA7IH0gLmRpdlRhYmxlIHsgZGlzcGxheTp0YWJsZTsgfSAuZGl2VGFibGUuYWxpZ24tY2VudGVyIHsgbWFyZ2luOjAgYXV0bzsgfSAuZGl2VGFibGUgLmZvcm1zX2JveDIyLCAuZGl2VGFibGUgZm9ybVtuYW1lPSJzZW5kRW1haWxGb3JtIl0geyB3aWR0aDo5NDBweDsgfSAuZGl2VGFibGUgLnRleHQzMCB7IHdpZHRoOjEwMCU7IH0gLnNlcnZpY2UtdGl0bGUgeyBtYXJnaW4tdG9wOjIwcHg7IH0gLmZ1bGxXaWR0aEZvcm0gLmZvcm1zX2JveDIyIHsgd2lkdGg6MTAwJTsgbWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZnVsbFdpZHRoRm9ybSAudGV4dDMwIHsgd2lkdGg6MTAwJTsgfSAuZm9ybS1ncm91cCB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuaW5saW5lLWZvcm0tZ3JvdXAgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZm9ybS1ncm91cCBsYWJlbCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXgtd2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OjcwMDsgfSAuZGl2U2VhcmNoTXNnIHsgZm9udC1zaXplOjAuOXJlbTsgbWFyZ2luOjIwcHggMCAwIDA7IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBib3JkZXItcmFkaXVzOjVweDsgY2xlYXI6Ym90aDsgfSAuY3JlZHNpaU5ldyB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDo0NzBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyB9IC5jcmVkc2lpTmV3VkRQIHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjM1MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IGhlaWdodDphdXRvOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IHJpZ2h0OjA7IH0gLmNyZWRzaWlVc2VkTWluSGVpZ2h0IHsgbWluLWhlaWdodDoxMzBweDsgfSAuY3JlZHNpaUZpbmFuY2UgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6OTYwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoxMjVweDsgbWFyZ2luLXRvcDoxNXB4OyB9IC5jcmVkc2lpRmluYW5jZSAuY3JlZHNpaS13aWRnZXQtY29udGFpbmVyeyBtYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gLmNyZWRzaWlGaW5hbmNlTWVudSB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDozNDVweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyByaWdodDowOyB9IC5jcmVkc2lpRGl2IC5jcmVkc2lpRmluYW5jZU1lbnUgeyBtYXgtd2lkdGg6Mzc1cHg7IH0gLmNyZWRzaWlGaW5hbmNlTWVudSAuY3JlZHNpaS13aWRnZXR7IGJvcmRlcjowOyB9IC5wcm9tby1jYXJkIHsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDphdXRvOyBtYXJnaW4tYm90dG9tOjEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YxZjFmMTsgcGFkZGluZzoyMHB4OyBvdmVyZmxvdzpoaWRkZW47IH0gLnByb21vLWJvZHkgLnBpY19ib3gyIHsgbWluLWhlaWdodDoxMzBweDsgfSAucHJvbW8taG92ZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgb3BhY2l0eTowOyB9IC5wcm9tby1ib2R5OmhvdmVyIC5wcm9tby1ob3ZlciB7IG9wYWNpdHk6MTsgfSAucHJvbW8tYm9keTpob3ZlciAucHJvbW8taW5mbyB7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEsMSk7IH0gLnByb21vLW1hc2sgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpOyB9IC5wcm9tby1pbmZvIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjUwJTsgd2lkdGg6MzUlOyBtYXJnaW46YXV0bzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjI1cHg7IC1tb3otYm9yZGVyLXJhZGl1czoyNXB4OyBib3JkZXItcmFkaXVzOjI1cHg7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggNXB4IHJiZ2EoMCwwLDAsMC4yKTsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IGJveC1zaGFkb3c6MCAwIDEwcHggNXB4IHJiZ2EoMCwwLDAsMC4yKTsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyB9IC5mb3JtLWVuZCB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5mb3JtLWVuZCAuYnRuLXdyYXBwZXIgeyBtYXJnaW46MCBhdXRvOyB9IC5mb3JtLWVuZCAuZW1wdHktc3BhY2UgeyBtYXJnaW46YXV0bzsgfSAuZm9ybS1lbmQgLnByb21vLWJ0biB7IHBvc2l0aW9uOmluaXRpYWw7IH0gLmZvcm0tZW5kIC5wcmludCB7IG1hcmdpbi1sZWZ0OmF1dG87IHdpZHRoOmluaXRpYWw7IH0gLnByb21vLWJ0biB7IHBhZGRpbmc6MTBweCAxMHB4IDEwcHggMTBweDsgd2lkdGg6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgYm9yZGVyOjFweCBzb2xpZDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwb3NpdGlvbjphYnNvbHV0ZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1cyk7IHRyYW5zaXRpb246MC4yNXM7IH0gLnByb21vcyB7IGJhY2tncm91bmQ6I2YxZjFmMTsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgcG9zaXRpb246cmVsYXRpdmU7IGN1cnNvcjpkZWZhdWx0OyBtYXJnaW46MTJweCAxMHB4OyBkaXNwbGF5OiBncmlkOyBncmlkLXJvdzpzcGFuIDg7IGdyaWQtY29sdW1uOnNwYW4gMTsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnN1YmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyB9IC5wcm9tb3MgLmhlYWRlciB7IGdyaWQtYXJlYTpoZWFkZXI7IH0gI3NlcnZpY2UgLnByb21vcyAucHJvbW8tY29udGVudHsgZGlzcGxheTpibG9jazsgZ3JpZC1yb3c6YXV0bzsgfSAucHJvbW9zIC5wcm9tby1jb250ZW50IHsgZ3JpZC1hcmVhOmNvbnRlbnQ7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOnN1YmdyaWQ7IGdyaWQtcm93OjIgLyA3OyB9IC5wcm9tb3MgLnByb21vLWZvb3RlciB7IGdyaWQtYXJlYTpmb290ZXI7IHBhZGRpbmc6MCAxNXB4IDE1cHggMTVweDsgfSAucHJvbW9zOmhvdmVyIC5wcm9tby1idG4sIC5wcm9tby1idG46aG92ZXIgeyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgfSAucHJvbW9zIC5wcm9tby1idG4geyB3aWR0aDppbmhlcml0OyBwb3NpdGlvbjppbml0aWFsOyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjE1cHggNDVweDsgfSAucHJvbW9zLnByb21vLXNtYWxsIC5wcm9tby1idG4geyBwYWRkaW5nOjEwcHggMjVweDsgfSAucHJvbW8tYnJlYWsgeyBib3JkZXItdG9wOjFweCBzb2xpZCAjYWJhYmFiOyBwYWRkaW5nLXRvcDoxMHB4OyBtYXJnaW46MTVweCAwOyB9IC5wcm9tby1pbWFnZSwgLnByb21vLWRldGFpbHMtaW1hZ2UgeyBvdmVyZmxvdzpoaWRkZW47IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgLW1vei1ib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvbnRhaW47IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGFzcGVjdC1yYXRpbzp2YXIoLS1wcm9tby1pbWctcmF0aW8sIG5vbmUpOyB9IC5wcm9tby1kZXRhaWxzLWltYWdleyB3aWR0aDoxMDAlOyB9IC5wcm9tb3M6aG92ZXIgLnByb21vLWltYWdlIGltZyB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMSk7IC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMSk7IC1tcy10cmFuc2Zvcm06c2NhbGUoMS4xKTsgLW8tdHJhbnNmb3JtOnNjYWxlKDEuMSk7IHRyYW5zZm9ybTpzY2FsZSgxLjEpOyB9IC5wcm9tby1pbWFnZSBpbWcgeyBtYXgtd2lkdGg6MTAwJTsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMXM7IGRpc3BsYXk6dGFibGUtY2VsbDsgbWFyZ2luOjAgYXV0bzsgfSAucHJvbW8tYm9keSB7IHBhZGRpbmc6MTVweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnByb21vLWJvZHkuZ3JpZCB7IGRpc3BsYXk6Z3JpZDsgaGVpZ2h0OjEwMCU7IGdyaWQtdGVtcGxhdGUtcm93czoxZnIgM2ZyOyB9IC5wcm9tby1ib2R5LmdyaWQgLnByb21vLWNhcHRpb24uaGVhZGVyIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6MWZyIGF1dG87IH0gLnByb21vLWNvbnRlbnQucGFkZGVkIHsgcGFkZGluZzoxNXB4OyB9IC5wcm9tby1kZXNjIHsgZGlzcGxheTpub25lOyB9IC5wcm9tby10aXRsZSB7IGZvbnQtc2l6ZToxLjVyZW0gOyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo2MDA7IGNvbG9yOiMzMzMzMzM7IG1pbi1oZWlnaHQ6NzhweDsgfSAucHJvbW8tbWVkaXVtIC5wcm9tby10aXRsZSB7IG1pbi1oZWlnaHQ6ODdweDsgfSAucHJvbW8tc21hbGwgLnByb21vLXRpdGxlIHsgZm9udC1zaXplOjEuMjVyZW0gOyB9IC5wcm9tby1jYXB0aW9uIHsgY29sb3I6IzMzMzMzMzsgfSAucHJvbW8tY2FwdGlvbjpub3QoOmxhc3QtY2hpbGQpIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5wcm9tby1vZmZlciAucHJvbW8tdGl0bGUgeyBtaW4taGVpZ2h0OjA7IH0gLnByb21vLXN1YmNhcHRpb24geyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOjAuODc1cmVtOyB9IC5wcm9tby1zdWJjYXB0aW9uLnN1YmhlYWRpbmcuLW1oIHsgbWluLWhlaWdodDozMXB4OyB9IC5wcm9tby1zdWJjYXB0aW9uLmRlc2NyaXB0aW9uLi1taCB7IG1pbi1oZWlnaHQ6NDhweDsgfSAucHJvbW8tZGlzbGNhaW1lciB7IGZvbnQtc2l6ZTowLjc1cmVtOyB9IC5wcm9tby1saW5rcyB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAucHJvbW8tbGluay1pdGVtIC5wcmludCB7IHdpZHRoOmF1dG87IHRleHQtYWxpZ246cmlnaHQ7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZCB7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmdyaWQ7IH0gLnByb21vcy1jb250YWluZXIgLmZhLWFycm93LWRvd24tdG8tbGluZSB7IGZvbnQtc2l6ZToycmVtOyBjb2xvcjojMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDo1MCU7IHRvcDo1MCU7IGJhY2tncm91bmQ6I2ZmZmZmZjsgcGFkZGluZzo2cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMik7IHRyYW5zaXRpb246YWxsIDAuMjVzIGVhc2Utb3V0OyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQucHJvbW8tbWVkaXVtIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLCAxZnIpOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQucHJvbW8tc21hbGwgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsIDFmcik7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZSB7IGhlaWdodDoxNDJweDsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2U6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgbGVmdDoxMHB4OyByaWdodDoxMHB4OyB0b3A6MTBweDsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiKDAgMCAwIC8gMzAlKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKSB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2U6aG92ZXI6OmJlZm9yZSB7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYigxMzggMTM4IDEzOCAvIDMwJSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7IGN1cnNvcjpwb2ludGVyOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2U6aG92ZXIgLmZhLWFycm93LWRvd24tdG8tbGluZSB7IHRvcDo1NSU7IGNvbG9yOiM4MzgzODM7IH0gLmJhbm5lci1mb3JtIHsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6dGFibGU7IG1hcmdpbjowIGF1dG87IH0gLmJhbm5lci1mb3JtIC5NYWluQm94TGF5ZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDsgbGVmdDowOyByaWdodDowOyB0b3A6MDsgZGlzcGxheTp0YWJsZS1jZWxsOyBoZWlnaHQ6MTAwJTsgfSAuYmFubmVyLWZvcm0tYm94IHsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyBtYXgtd2lkdGg6MzUwcHg7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MzVweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IC5NYWluQm94TGF5ZXIgLmJhbm5lci1mb3JtLWJveCB7IHRvcDo1MCU7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyBtYXJnaW4tdG9wOjA7IH0gfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTMwMXB4KSB7IC5iYW5uZXItZm9ybSAuYmFubmVyLWZvcm0tYm94IHsgcGFkZGluZzoxNXB4OyBtYXgtd2lkdGg6MjcwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gLmJhbm5lci1mb3JtICNiYW5uZXJGb3JtIC5mb3JtLWNvbnRyb2wgeyBwYWRkaW5nOjRweCA4cHg7IGhlaWdodDozMHB4OyBtYXJnaW4tYm90dG9tOjEycHg7IH0gLmJhbm5lci1mb3JtIC5iYW5uZXItZm9ybS10aXRsZSB7IGZvbnQtc2l6ZToxNXB0OyB9IC5iYW5uZXItZm9ybSAuYmFubmVyLWZvcm0tc3VidGl0bGUgeyBmb250LXNpemU6MTFwdDsgfSAuYmFubmVyLWZvcm0gLmJ0bi5iYW5uZXItYnRuIHsgcGFkZGluZzo0cHggMTJweDsgfSB9IC5vdGhlckxvZ29NZW51Q29udGFpbmVyeyBmbG9hdDpsZWZ0OyB9IC5vdGhlckxvZ29NZW51Q29udGFpbmVyUmlnaHR7IGZsb2F0OnJpZ2h0OyB9IC5vdGhlckxvZ29NZW51SW1hZ2V7IG1heC13aWR0aDoyNTBweDsgbWF4LWhlaWdodDoxMDBweDsgfSAuY3RhYm94LS13cmFwcGVyIHsgY2xlYXI6Ym90aDsgcGFkZGluZzowLjc1cmVtIDA7IGJhY2tncm91bmQ6I2ZmZmZmZjsgfSAuY3RhYm94LS10YWJsZSB7IHdpZHRoOjg1JSFpbXBvcnRhbnQ7IG1heC13aWR0aDoxMjAwcHg7IG1hcmdpbjphdXRvOyBib3JkZXItc3BhY2luZzoxcmVtOyBib3JkZXItY29sbGFwc2U6dW5zZXQ7IH0gLmN0YWJveC0tY2VsbCB7IHdpZHRoOjI1JTsgdHJhbnNpdGlvbjphbGwgMC4ycyBsaW5lYXI7IH0gLmN0YWJveC0tY2VsbDpub3QoW29uY2xpY2s9JyddKTpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyB9IC5jdGFib3gtLWNlbGwuY3RhYm94LS1jZWxsX18xIHsgd2lkdGg6MTAwJTsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMiB7IHdpZHRoOjQ4MHB4OyB9IC5jdGFib3gtLWNlbGwuY3RhYm94LS1jZWxsX18zIHsgd2lkdGg6MzMlOyB9IC5jdGFib3gtLWNvbnRhaW5lciB7IHBhZGRpbmc6MXJlbTsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbiB7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24uY3RhYm94LS1pY29uX190b3AgeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uLmN0YWJveC0taWNvbl9fbGVmdCB7IGZsb2F0OmxlZnQ7IH0gLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLXRpdGxlLCAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tZGVzY3JpcHRpb24sIC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS1idXR0b24geyBtYXJnaW4tbGVmdDozNXB4OyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS10aXRsZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWRlc2NyaXB0aW9uIHsgbWFyZ2luLXRvcDoxMHB4OyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1idXR0b24geyBtYXJnaW4tdG9wOjIwcHg7IH0gLnBhcmFsbGF4LXNlY3Rpb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6bG9jYWw7IHBhZGRpbmc6MjVweCAwOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgfSAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyIHsgd2lkdGg6NjAlOyBwYWRkaW5nLXJpZ2h0OjE1cHg7IHBhZGRpbmctbGVmdDoxNXB4OyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6YXV0bzsgfSAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyLmxhcmdlIHsgd2lkdGg6ODAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnBhcmFsbGF4LWNvbnRlbnQgeyB3aWR0aDo0NSU7IHBhZGRpbmc6NDBweCA0MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KTsgY29sb3I6I2ZmZjsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy10aXRsZSB7IGZvbnQtc2l6ZToxLjQzOHJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWwgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToyMHB4OyBjb2xvcjppbmhlcml0OyB9IC5wYXJhbGxheC1jb250ZW50IC5wYXJhbGxheC1jb250ZW50LWJ1c2luZXNzLWRlc2MgeyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgdGV4dC1hbGlnbjpsZWZ0OyBjb2xvcjppbmhlcml0OyB9IC5wYXJhbGxheC1jb250ZW50IC5wYXJhbGxheC1jb250ZW50LWJ1c2luZXNzLWRlc2MgYXsgY29sb3I6aW5oZXJpdDsgfSBAbWVkaWEgKG1heC13aWR0aDoxMzMwcHgpIHsgLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lciB7IHdpZHRoOjgwJTsgfSAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyLmxhcmdlIHsgd2lkdGg6MTAwJTsgfSB9IC5zci1vbmx5IHsgcG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDsgd2lkdGg6MXB4ICFpbXBvcnRhbnQ7IGhlaWdodDoxcHggIWltcG9ydGFudDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IG1hcmdpbjotMXB4ICFpbXBvcnRhbnQ7IG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50OyBjbGlwOnJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDsgYm9yZGVyOjAgIWltcG9ydGFudDsgfSAuYm5wX3B1bGxvdXRfaW1neyBtYXgtd2lkdGg6MTByZW07IG1hcmdpbjphdXRvOyB9IC5ibnBfcHVsbG91dF9jb2xfc2VwYXJhdG9yeyB3aWR0aDoxcHg7IGJhY2tncm91bmQtY29sb3I6I0VCRUJFQjsgaGVpZ2h0Ojk4cHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MjBweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbHsgd2lkdGg6NzAlOyBkaXNwbGF5OnRhYmxlLWNlbGw7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcmlnaHR7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9zZXBhcmF0b3J7IHdpZHRoOjFweDsgYmFja2dyb3VuZC1jb2xvcjojRUJFQkVCOyBoZWlnaHQ6NDBweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo3OHB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3ByaWNlX3dpdGhfdGl0bGV7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6NDUlOyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3ByaWNleyBmb250LXNpemU6MnJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6MTMzMHB4KSB7IC5ibnBfcHVsbG91dF9taWRfY29sIHsgd2lkdGg6NTAlOyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3ByaWNlX3dpdGhfdGl0bGUgeyB3aWR0aDoxMDAlOyB9IC5ibnBfcHVsbG91dF9jb2xfc2VwYXJhdG9yIHsgaGVpZ2h0OjE2NHB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3NlcGFyYXRvciB7IGhlaWdodDoxMDZweDsgfSB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dEltZ3sgaGVpZ2h0OjExMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiM0ZDhmMTQ7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0QnV0dG9ueyBiYWNrZ3JvdW5kOiM0MTdGMUEgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOiNmZmZmZmY7IHBhZGRpbmc6N3B4IDIwcHggN3B4OyBmb250LXNpemU6MXJlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgdGV4dC1zaGFkb3c6MC40cHggMDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50eyBjb2xvcjojMDAwMDAwOyBmb250LXNpemU6MS41NjNyZW0gOyBmb250LXdlaWdodDo3MDA7IG1hcmdpbi1ib3R0b206LTE1cHg7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudFNjb3JleyBjb2xvcjojMDAwMDAwOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IHRleHQtc2hhZG93OjJweCAwOyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnRGcmVleyBjb2xvcjojNDE3RjFBOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IHRleHQtc2hhZG93OjJweCAwOyB9IC5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkLmlzRnVsbFdpZHRoUGFnZSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRNYXhXaWR0aHsgbWF4LXdpZHRoOjEyMDBweDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRNYXhXaWR0aHsgbWF4LXdpZHRoOjk2MHB4OyB9IC5zbGlkZXItbWFpbiBpbWd7IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuNXMgZWFzZS1vdXQgfSAuY29tbXVuaWNhdGlvblByZWZ7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB3aWR0aDo1MCUgIWltcG9ydGFudDsgfSAuZDJjZm9ybSB7IC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sOiIqIjsgLS1sYWJlbC1yZXF1aXJlZC1jb2xvcjojRkYwMDAwOyAtLWlucHV0LXBhZGRpbmc6dmFyKC0tcy0xKSB2YXIoLS1zMSk7IC0taW5wdXQtYmctY29sb3I6dmFyKC0td2hpdGUpOyAtLWlucHV0LWJvcmRlci1jb2xvcjp2YXIoLS1taWQtZ3JheSk7IC0taW5wdXQtcmFkaXVzOnZhcigtLXMtNik7IC0taW5wdXQtZm9udC1zaXplOnZhcigtLWZzMCk7IC0taW5wdXQtbGluZS1oZWlnaHQ6dmFyKC0tZnMyKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudXBfbWVudSAuUzEwMFBlcmNlbnRXaWR0aCB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IH0gLnVwX21lbnUuZml4ZWQgLlMxMDBQZXJjZW50V2lkdGh7IGJhY2tncm91bmQtY29sb3I6cmdiKDUwLDE2NywyMTgpIH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLm9yZywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnN0cmVldC1hZGRyZXNzLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAubG9jYWxpdHksIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5yZWdpb24sIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5wb3N0YWwtY29kZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmV4dGVuZGVkUGhvbmVUcmlnZ2VyLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAucGhvbmUtbGluayB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKSAhaW1wb3J0YW50OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5kZWFsZXJNYXBMaW5rIHN2ZyB7IGZpbGw6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5mYS1jYXJldC1kb3duOjpiZWZvcmUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5mYS1waG9uZTo6YmVmb3JlIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC51cF9tZW51IC5TMTAwUGVyY2VudFdpZHRoID4gdWwgPiBsaSA+IGEudG9wX2xpbmsgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZ1JhdGluZy1pY29uI2dSYXRpbmcsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbi5hY3RpdmUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbiB7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciBpLmZhciB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gLmJ0biB7IGJvcmRlci1jb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZywgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSwgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uIHsgYm9yZGVyLXJhZGl1czp2YXIoLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDsgfSAuZ1JhdGluZy1pY29uI2dSYXRpbmcgLnJhdGluZyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsaW5lLWhlaWdodDoxOyB9IC5tYXJnaW4tYm90dG9tLS00cHggeyBtYXJnaW4tYm90dG9tOi00cHg7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkLCAubWFpbkRpdkFkanVzdEhlYWRlciAuYmFubmVyLXNlYXJjaC1ib3gtd3JhcHBlciB7IHotaW5kZXg6MjsgcG9zaXRpb246cmVsYXRpdmUgfQovKiogL2Nzcy9wcm9fZHJvcGRvd25fNC5jc3MgKiovCi5pZE5hdjEgeyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTsgaGVpZ2h0OjI4cHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6I0Y5RjlGOTsgfSAuaWROYXYxIGxpLnRvcCB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MDt9IC5pZE5hdjEgbGkudG9wMSB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgcGFkZGluZzowOyBwYWRkaW5nLXJpZ2h0OjJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDt9IC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBsaW5lLWhlaWdodDozMHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiMzMmE3ZGE7IGNvbG9yOiNmZmZmZmY7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rOmhvdmVyIHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IGZpbHRlcjpicmlnaHRuZXNzKDk1JSk7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rMSB7IGNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBsaW5lLWhlaWdodDozMHB4OyBjb2xvcjojZmVmZWZlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uX3BvcHVwLnBuZykgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyB9ICNmcm1SZWJhdGUgLmlkTmF2MSBsaSBhLnRvcF9saW5rOmhvdmVyIHsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyB9IC5pZE5hdjEgbGkgYS5zZXJ2aWNlLWxpbmt7IG1hcmdpbi1ib3R0b206MTJweDsgd2lkdGg6MjAycHg7IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuaWROYXYxIGxpIGEuc2VydmljZS1saW5rX19zdWJtaXQgeyBmb250LXNpemU6MC44cmVtOyBmb250LXdlaWdodDpub3JtYWw7IH0gLmxhbmd1YWdlQmFyIC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGJhY2tncm91bmQ6aW5oZXJpdDsgYmFja2dyb3VuZC1jb2xvcjojOTI5MjkyOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgfQovKiogL2Nzcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5jc3MgKiovCi51aS1oZWxwZXItaGlkZGVue2Rpc3BsYXk6bm9uZX0udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxle2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS51aS1oZWxwZXItcmVzZXR7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO291dGxpbmU6MDtsaW5lLWhlaWdodDoxLjM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjEwMCU7bGlzdC1zdHlsZTpub25lfS51aS1oZWxwZXItY2xlYXJmaXg6YmVmb3JlLC51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0udWktaGVscGVyLWNsZWFyZml4OmFmdGVye2NsZWFyOmJvdGh9LnVpLWhlbHBlci16Zml4e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTApIn0udWktZnJvbnR7ei1pbmRleDoxMDB9LnVpLXN0YXRlLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lfS51aS1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tdG9wOi0uMjVlbTtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDotOTk5OTlweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS51aS13aWRnZXQtaWNvbi1ibG9ja3tsZWZ0OjUwJTttYXJnaW4tbGVmdDotOHB4O2Rpc3BsYXk6YmxvY2t9LnVpLXdpZGdldC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXJ7ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MnB4IDAgMCAwO3BhZGRpbmc6LjVlbSAuNWVtIC41ZW0gLjdlbTtmb250LXNpemU6MTAwJX0udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudHtwYWRkaW5nOjFlbSAyLjJlbTtib3JkZXItdG9wOjA7b3ZlcmZsb3c6YXV0b30udWktc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdH0udWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt3aWR0aDoxLjJlbTtoZWlnaHQ6MS4yZW07Y3Vyc29yOnBvaW50ZXI7LW1zLXRvdWNoLWFjdGlvbjpub25lO3RvdWNoLWFjdGlvbjpub25lfS51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7Zm9udC1zaXplOi43ZW07ZGlzcGxheTpibG9jaztib3JkZXI6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItaGFuZGxlLC51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1yYW5nZXtmaWx0ZXI6aW5oZXJpdH0udWktc2xpZGVyLWhvcml6b250YWx7aGVpZ2h0Oi44ZW19LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxle3RvcDotLjNlbTttYXJnaW4tbGVmdDotLjZlbX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZXt0b3A6MDtoZWlnaHQ6MTAwJX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1heHtyaWdodDowfS51aS1zbGlkZXItdmVydGljYWx7d2lkdGg6LjhlbTtoZWlnaHQ6MTAwcHh9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0uM2VtO21hcmdpbi1sZWZ0OjA7bWFyZ2luLWJvdHRvbTotLjZlbX0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2V7bGVmdDowO3dpZHRoOjEwMCV9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1pbntib3R0b206MH0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfS51aS13aWRnZXR7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IC51aS13aWRnZXR7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IGlucHV0LC51aS13aWRnZXQgc2VsZWN0LC51aS13aWRnZXQgdGV4dGFyZWEsLnVpLXdpZGdldCBidXR0b257Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2M1YzVjNX0udWktd2lkZ2V0LWNvbnRlbnR7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMzMzfS51aS13aWRnZXQtY29udGVudCBhe2NvbG9yOiMzMzN9LnVpLXdpZGdldC1oZWFkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2U5ZTllOTtjb2xvcjojMzMzO2ZvbnQtd2VpZ2h0OmJvbGR9LnVpLXdpZGdldC1oZWFkZXIgYXtjb2xvcjojMzMzfS51aS1zdGF0ZS1kZWZhdWx0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCwudWktYnV0dG9uLGh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDpob3ZlcixodG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6YWN0aXZle2JvcmRlcjoxcHggc29saWQgI2M1YzVjNTtiYWNrZ3JvdW5kOiNmNmY2ZjY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiM0NTQ1NDV9LnVpLXN0YXRlLWRlZmF1bHQgYSwudWktc3RhdGUtZGVmYXVsdCBhOmxpbmssLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkLGEudWktYnV0dG9uLGE6bGluay51aS1idXR0b24sYTp2aXNpdGVkLnVpLWJ1dHRvbiwudWktYnV0dG9ue2NvbG9yOiM0NTQ1NDU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXN0YXRlLWhvdmVyLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLC51aS1zdGF0ZS1mb2N1cywudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywudWktYnV0dG9uOmhvdmVyLC51aS1idXR0b246Zm9jdXN7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JhY2tncm91bmQ6I2VkZWRlZDtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6IzJiMmIyYn0udWktc3RhdGUtaG92ZXIgYSwudWktc3RhdGUtaG92ZXIgYTpob3ZlciwudWktc3RhdGUtaG92ZXIgYTpsaW5rLC51aS1zdGF0ZS1ob3ZlciBhOnZpc2l0ZWQsLnVpLXN0YXRlLWZvY3VzIGEsLnVpLXN0YXRlLWZvY3VzIGE6aG92ZXIsLnVpLXN0YXRlLWZvY3VzIGE6bGluaywudWktc3RhdGUtZm9jdXMgYTp2aXNpdGVkLGEudWktYnV0dG9uOmhvdmVyLGEudWktYnV0dG9uOmZvY3Vze2NvbG9yOiMyYjJiMmI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXZpc3VhbC1mb2N1c3tib3gtc2hhZG93OjAgMCAzcHggMXB4IHJnYig5NCwxNTgsMjE0KX0udWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1hY3RpdmUsYS51aS1idXR0b246YWN0aXZlLC51aS1idXR0b246YWN0aXZlLC51aS1idXR0b24udWktc3RhdGUtYWN0aXZlOmhvdmVye2JvcmRlcjoxcHggc29saWQgIzAwM2VmZjtiYWNrZ3JvdW5kOiMwMDdmZmY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiNmZmZ9LnVpLWljb24tYmFja2dyb3VuZCwudWktc3RhdGUtYWN0aXZlIC51aS1pY29uLWJhY2tncm91bmR7Ym9yZGVyOiMwMDNlZmY7YmFja2dyb3VuZC1jb2xvcjojZmZmfS51aS1zdGF0ZS1hY3RpdmUgYSwudWktc3RhdGUtYWN0aXZlIGE6bGluaywudWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZHtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodHtib3JkZXI6MXB4IHNvbGlkICNkYWQ1NWU7YmFja2dyb3VuZDojZmZmYTkwO2NvbG9yOiM3Nzc2MjB9LnVpLXN0YXRlLWNoZWNrZWR7Ym9yZGVyOjFweCBzb2xpZCAjZGFkNTVlO2JhY2tncm91bmQ6I2ZmZmE5MH0udWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0IGF7Y29sb3I6Izc3NzYyMH0udWktc3RhdGUtZXJyb3IsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3J7Ym9yZGVyOjFweCBzb2xpZCAjZjFhODk5O2JhY2tncm91bmQ6I2ZkZGZkZjtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvciBhLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYXtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvci10ZXh0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dHtjb2xvcjojNWYzZjNmfS51aS1wcmlvcml0eS1wcmltYXJ5LC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeXtmb250LXdlaWdodDpib2xkfS51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXNlY29uZGFyeXtvcGFjaXR5Oi43Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9NzApIjtmb250LXdlaWdodDpub3JtYWx9LnVpLXN0YXRlLWRpc2FibGVkLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjM1Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIjtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnVpLXN0YXRlLWRpc2FibGVkIC51aS1pY29uey1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIn0udWktaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS51aS1pY29uLC51aS13aWRnZXQtY29udGVudCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzQ0NDQ0NF8yNTZ4MjQwLnBuZyIpfS51aS13aWRnZXQtaGVhZGVyIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhvdmVyIC51aS1pY29uLC51aS1zdGF0ZS1mb2N1cyAudWktaWNvbiwudWktYnV0dG9uOmhvdmVyIC51aS1pY29uLC51aS1idXR0b246Zm9jdXMgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc181NTU1NTVfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLC51aS1idXR0b246YWN0aXZlIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhpZ2hsaWdodCAudWktaWNvbiwudWktYnV0dG9uIC51aS1zdGF0ZS1oaWdobGlnaHQudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzc3NzYyMF8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1lcnJvciAudWktaWNvbiwudWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zX2NjMDAwMF8yNTZ4MjQwLnBuZyIpfS51aS1idXR0b24gLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc183Nzc3NzdfMjU2eDI0MC5wbmciKX0udWktaWNvbi1ibGFuay51aS1pY29uLWJsYW5rLnVpLWljb24tYmxhbmt7YmFja2dyb3VuZC1pbWFnZTpub25lfS51aS1pY29uLWNhcmV0LTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktaWNvbi1jYXJldC0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggMH0udWktaWNvbi1jYXJldC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAwfS51aS1pY29uLWNhcmV0LTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAwfS51aS1pY29uLWNhcmV0LTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IDB9LnVpLWljb24tY2FyZXQtMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IDB9LnVpLWljb24tY2FyZXQtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggMH0udWktaWNvbi1jYXJldC0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IDB9LnVpLWljb24tY2FyZXQtMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggMH0udWktaWNvbi1jYXJldC0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAwfS51aS1pY29uLXRyaWFuZ2xlLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTZweH0udWktaWNvbi1hcnJvdy0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zMnB4fS51aS1pY29uLWFycm93LTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uZS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTMycHh9LnVpLWljb24tYXJyb3d0aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjoxcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLW5lLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtNDhweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS13e2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1le2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTY0cHh9LnVpLWljb24tYXJyb3ctNHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTgwcHh9LnVpLWljb24tYXJyb3ctNC1kaWFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTgwcHh9LnVpLWljb24tZXh0bGlua3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC04MHB4fS51aS1pY29uLW5ld3dpbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC04MHB4fS51aS1pY29uLXJlZnJlc2h7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtODBweH0udWktaWNvbi1zaHVmZmxle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTgwcHh9LnVpLWljb24tZm9sZGVyLWNvbGxhcHNlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTk2cHh9LnVpLWljb24tZm9sZGVyLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtOTZweH0udWktaWNvbi1kb2N1bWVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC05NnB4fS51aS1pY29uLWRvY3VtZW50LWJ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtOTZweH0udWktaWNvbi1ub3Rle2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTk2cHh9LnVpLWljb24tbWFpbC1jbG9zZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtOTZweH0udWktaWNvbi1tYWlsLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtOTZweH0udWktaWNvbi1zdWl0Y2FzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtOTZweH0udWktaWNvbi1jb21tZW50e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC05NnB4fS51aS1pY29uLXBlcnNvbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtOTZweH0udWktaWNvbi1wcmludHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtOTZweH0udWktaWNvbi10cmFzaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtOTZweH0udWktaWNvbi1sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTk2cHh9LnVpLWljb24tdW5sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTk2cHh9LnVpLWljb24tYm9va21hcmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTk2cHh9LnVpLWljb24tdGFne2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC05NnB4fS51aS1pY29uLWhvbWV7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMTJweH0udWktaWNvbi1mbGFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTExMnB4fS51aS1pY29uLWNhbGVuZGFye2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTExMnB4fS51aS1pY29uLWNhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTEycHh9LnVpLWljb24tcGVuY2lse2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTExMnB4fS51aS1pY29uLWNsb2Nre2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTExMnB4fS51aS1pY29uLWRpc2t7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTEycHh9LnVpLWljb24tY2FsY3VsYXRvcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTEycHh9LnVpLWljb24tem9vbWlue2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xMTJweH0udWktaWNvbi16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xMTJweH0udWktaWNvbi1zZWFyY2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTExMnB4fS51aS1pY29uLXdyZW5jaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTEycHh9LnVpLWljb24tZ2VhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTEycHh9LnVpLWljb24taGVhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTExMnB4fS51aS1pY29uLXN0YXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTExMnB4fS51aS1pY29uLWxpbmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTExMnB4fS51aS1pY29uLWNhbmNlbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEyOHB4fS51aS1pY29uLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTI4cHh9LnVpLWljb24tcGx1c3RoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTEyOHB4fS51aS1pY29uLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTEyOHB4fS51aS1pY29uLW1pbnVzdGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTI4cHh9LnVpLWljb24tY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTI4cHh9LnVpLWljb24tY2xvc2V0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xMjhweH0udWktaWNvbi1rZXl7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTEyOHB4fS51aS1pY29uLWxpZ2h0YnVsYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTI4cHh9LnVpLWljb24tc2Npc3NvcnN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTEyOHB4fS51aS1pY29uLWNsaXBib2FyZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTI4cHh9LnVpLWljb24tY29weXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTI4cHh9LnVpLWljb24tY29udGFjdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTI4cHh9LnVpLWljb24taW1hZ2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTEyOHB4fS51aS1pY29uLXZpZGVve2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0xMjhweH0udWktaWNvbi1zY3JpcHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTEyOHB4fS51aS1pY29uLWFsZXJ0e2JhY2tncm91bmQtcG9zaXRpb246MCAtMTQ0cHh9LnVpLWljb24taW5mb3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNDRweH0udWktaWNvbi1ub3RpY2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTQ0cHh9LnVpLWljb24taGVscHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNDRweH0udWktaWNvbi1jaGVja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNDRweH0udWktaWNvbi1idWxsZXR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb257YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNDRweH0udWktaWNvbi1waW4td3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTQ0cHh9LnVpLWljb24tcGluLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE0NHB4fS51aS1pY29uLXBsYXl7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNjBweH0udWktaWNvbi1wYXVzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNjBweH0udWktaWNvbi1zZWVrLW5leHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTYwcHh9LnVpLWljb24tc2Vlay1wcmV2e2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE2MHB4fS51aS1pY29uLXNlZWstZW5ke2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE2MHB4fS51aS1pY29uLXNlZWstc3RhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTYwcHh9LnVpLWljb24tc2Vlay1maXJzdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNjBweH0udWktaWNvbi1zdG9we2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2MHB4fS51aS1pY29uLWVqZWN0e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb257YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE2MHB4fS51aS1pY29uLXBvd2Vye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTc2cHh9LnVpLWljb24tc2lnbmFsLWRpYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTc2cHh9LnVpLWljb24tc2lnbmFse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTF7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0ye2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktM3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNzZweH0udWktaWNvbi1jaXJjbGUtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE5MnB4fS51aS1pY29uLWNpcmNsZS1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29taW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2hlY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1wbHVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTIwOHB4fS51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246MCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMjRweH0udWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTIyNHB4fS51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0yMjRweH0udWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0yMjRweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLWxlZnQsLnVpLWNvcm5lci10bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLXJpZ2h0LC51aS1jb3JuZXItdHJ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItbGVmdCwudWktY29ybmVyLWJse2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItcmlnaHQsLnVpLWNvcm5lci1icntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHh9LnVpLXdpZGdldC1vdmVybGF5e2JhY2tncm91bmQ6I2FhYTtvcGFjaXR5Oi4zOy1tcy1maWx0ZXI6QWxwaGEoT3BhY2l0eT0zMCl9LnVpLXdpZGdldC1zaGFkb3d7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCA1cHggIzY2Njtib3gtc2hhZG93OjAgMCA1cHggIzY2Nn0KLyoqIC9jc3MvZGFya3Rvb2x0aXAuY3NzICoqLwouZGFyay10b29sdGlwe2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6bm9ybWFsO2hlaWdodDphdXRvO3RvcDowO2xlZnQ6MH0uZGFyay10b29sdGlwLnNtYWxse3BhZGRpbmc6NHB4O2ZvbnQtc2l6ZTowLjc1cmVtIDttYXgtd2lkdGg6MTUwcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjJweDstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fS5kYXJrLXRvb2x0aXAubWVkaXVte3BhZGRpbmc6NnB4O2ZvbnQtc2l6ZTowLjY4OHJlbSA7bWF4LXdpZHRoOjIwMHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjRweH0uZGFyay10b29sdGlwLmxhcmdle3BhZGRpbmc6MTZweDtmb250LXNpemU6MXJlbSA7bWF4LXdpZHRoOjI1MHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7LW1vei1ib3JkZXItcmFkaXVzOjZweDtib3JkZXItcmFkaXVzOjZweH0uZGFyay10b29sdGlwIC50aXB7dHJhbnNmb3JtOnNjYWxlKDEuMDEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMDEpO3RyYW5zZm9ybTpzY2FsZSgxLjAxKTtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2xpbmUtaGVpZ2h0OjB9LmRhcmstdG9vbHRpcC5zb3V0aCAudGlwe2xlZnQ6NTAlO3RvcDoxMDAlfS5kYXJrLXRvb2x0aXAud2VzdCAudGlwe2xlZnQ6MDt0b3A6NTAlfS5kYXJrLXRvb2x0aXAubm9ydGggLnRpcHtsZWZ0OjUwJTt0b3A6MH0uZGFyay10b29sdGlwLmVhc3QgLnRpcHtsZWZ0OjEwMCU7dG9wOjUwJX0uZGFyay10b29sdGlwLnNvdXRoLnNtYWxsIC50aXB7Ym9yZGVyLXdpZHRoOjAgNXB4IDAgNXB4O21hcmdpbi1sZWZ0Oi01cHh9LmRhcmstdG9vbHRpcC5zb3V0aC5tZWRpdW0gLnRpcHtib3JkZXItd2lkdGg6MCA2cHggMCA2cHg7bWFyZ2luLWxlZnQ6LTZweH0uZGFyay10b29sdGlwLnNvdXRoLmxhcmdlIC50aXB7Ym9yZGVyLXdpZHRoOjAgMTJweCAwIDEycHg7bWFyZ2luLWxlZnQ6LTEycHh9LmRhcmstdG9vbHRpcC53ZXN0LnNtYWxsIC50aXB7Ym9yZGVyLXdpZHRoOjVweCA3cHggNXB4IDA7bWFyZ2luLWxlZnQ6LTdweDttYXJnaW4tdG9wOi01cHh9LmRhcmstdG9vbHRpcC53ZXN0Lm1lZGl1bSAudGlwe2JvcmRlci13aWR0aDo2cHggOHB4IDZweCAwO21hcmdpbi1sZWZ0Oi04cHg7bWFyZ2luLXRvcDotNnB4fS5kYXJrLXRvb2x0aXAud2VzdC5sYXJnZSAudGlwe2JvcmRlci13aWR0aDoxMnB4IDE0cHggMTJweCAwO21hcmdpbi1sZWZ0Oi0xNHB4O21hcmdpbi10b3A6LTEycHh9LmRhcmstdG9vbHRpcC5ub3J0aC5zbWFsbCAudGlwe2JvcmRlci13aWR0aDowIDVweCA3cHggNXB4O21hcmdpbi1sZWZ0Oi01cHg7bWFyZ2luLXRvcDotN3B4fS5kYXJrLXRvb2x0aXAubm9ydGgubWVkaXVtIC50aXB7Ym9yZGVyLXdpZHRoOjAgNnB4IDhweCA2cHg7bWFyZ2luLWxlZnQ6LTZweDttYXJnaW4tdG9wOi04cHh9LmRhcmstdG9vbHRpcC5ub3J0aC5sYXJnZSAudGlwe2JvcmRlci13aWR0aDowIDEycHggMTRweCAxMnB4O21hcmdpbi1sZWZ0Oi0xMnB4O21hcmdpbi10b3A6LTE0cHh9LmRhcmstdG9vbHRpcC5lYXN0LnNtYWxsIC50aXB7Ym9yZGVyLXdpZHRoOjVweCAwIDVweCAwO21hcmdpbi10b3A6LTVweH0uZGFyay10b29sdGlwLmVhc3QubWVkaXVtIC50aXB7Ym9yZGVyLXdpZHRoOjZweCAwIDZweCAwO21hcmdpbi10b3A6LTZweH0uZGFyay10b29sdGlwLmVhc3QubGFyZ2UgLnRpcHtib3JkZXItd2lkdGg6MTJweCAwIDEycHggMDttYXJnaW4tdG9wOi0xMnB4fS5kYXJrLXRvb2x0aXAgdWwuY29uZmlybXtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW4tdG9wOjVweDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCBhdXRvfS5kYXJrLXRvb2x0aXAgdWwuY29uZmlybSBsaXtwYWRkaW5nOjEwcHg7ZmxvYXQ6bGVmdDttYXJnaW46NXB4O21pbi13aWR0aDoyNXB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweDstby1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweH0uZGFyay10b29sdGlwLmRhcmt7YmFja2dyb3VuZC1jb2xvcjojZGFkOWRiO2NvbG9yOiMwMDB9LmRhcmstdG9vbHRpcC5saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Y29sb3I6IzVlNWU1ZTtib3JkZXI6MXB4IHNvbGlkICM1ZTVlNWU7ei1pbmRleDoxMDAwMDMwfS5kYXJrLXRvb2x0aXAuZGFyay5zb3V0aCAudGlwe2JvcmRlci1jb2xvcjojZGFkOWRiIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O19ib3JkZXItY29sb3I6I2RhZDlkYiAjMDAwICMwMDAgIzAwMDtfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKX0uZGFyay10b29sdGlwLmRhcmsud2VzdCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjZGFkOWRiIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O19ib3JkZXItY29sb3I6IzAwMCAjZGFkOWRiICMwMDAgIzAwMDtfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKX0uZGFyay10b29sdGlwLmRhcmsubm9ydGggLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2RhZDlkYiB0cmFuc3BhcmVudDtfYm9yZGVyLWNvbG9yOiMwMDAgIzAwMCAjZGFkOWRiICMwMDA7X2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyl9LmRhcmstdG9vbHRpcC5kYXJrLmVhc3QgLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2RhZDlkYjtfYm9yZGVyLWNvbG9yOiMwMDAgIzAwMCAjMDAwICNkYWQ5ZGI7X2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyl9LmRhcmstdG9vbHRpcC5saWdodC5zb3V0aCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwcy5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDt3aWR0aDoxMnB4O2hlaWdodDo4cHh9LmRhcmstdG9vbHRpcC5saWdodC53ZXN0IC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXB3LnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjhweDtoZWlnaHQ6MTJweH0uZGFyay10b29sdGlwLmxpZ2h0Lm5vcnRoIC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBuLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjEycHg7aGVpZ2h0OjhweH0uZGFyay10b29sdGlwLmxpZ2h0LmVhc3QgLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcGUucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IGNlbnRlcjt3aWR0aDo4cHg7aGVpZ2h0OjEycHh9LmRhcmstdG9vbHRpcC5kYXJrIHVsLmNvbmZpcm0gbGl7YmFja2dyb3VuZC1jb2xvcjojNDE2ZTg1fS5kYXJrLXRvb2x0aXAuZGFyayB1bC5jb25maXJtIGxpOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzQxN2U4NX0uZGFyay10b29sdGlwLmxpZ2h0IHVsLmNvbmZpcm0gbGl7YmFja2dyb3VuZC1jb2xvcjojYzFkYmRifS5kYXJrLXRvb2x0aXAubGlnaHQgdWwuY29uZmlybSBsaTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkY2U4ZTh9LmFuaW1hdGVkey13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tcy1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW8tYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7LW1vei1hbmltYXRpb24tZHVyYXRpb246LjVzOy1tcy1hbmltYXRpb24tZHVyYXRpb246LjVzOy1vLWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7YW5pbWF0aW9uLWR1cmF0aW9uOi41c31ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluVXB7MC4wMDAxJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyl9NzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDApO29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGZsaXBJblVwezAuMDAwMSV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowfTQwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyl9NzAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMCk7b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGZsaXBJblVwezAuMDAwMSV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowfTQwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyl9NzAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9MTAwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMCk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGZsaXBJblVwezAuMDAwMSV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7b3BhY2l0eTowfTQwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoNWRlZyl9NzAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMCk7b3BhY2l0eToxfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluUmlnaHR7MC4wMDAxJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyl9NzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGZsaXBJblJpZ2h0ezAuMDAwMSV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowfTQwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyl9NzAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGZsaXBJblJpZ2h0ezAuMDAwMSV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowfTQwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyl9NzAley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9MTAwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGZsaXBJblJpZ2h0ezAuMDAwMSV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7b3BhY2l0eTowfTQwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoNWRlZyl9NzAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMCk7b3BhY2l0eToxfX0uZmxpcEluey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDstby1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudH0uZmxpcEluLnNvdXRoLC5mbGlwSW4ubm9ydGh7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwSW5VcDstbW96LWFuaW1hdGlvbi1uYW1lOmZsaXBJblVwOy1vLWFuaW1hdGlvbi1uYW1lOmZsaXBJblVwO2FuaW1hdGlvbi1uYW1lOmZsaXBJblVwfS5mbGlwSW4ud2VzdCwuZmxpcEluLmVhc3R7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDstbW96LWFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0Oy1vLWFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0O2FuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW57MHtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUAtbW96LWtleWZyYW1lcyBmYWRlSW57MHtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUAtby1rZXlmcmFtZXMgZmFkZUluezB7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGZhZGVJbnswe29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19LmZhZGVJbnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJbjstbW96LWFuaW1hdGlvbi1uYW1lOmZhZGVJbjstby1hbmltYXRpb24tbmFtZTpmYWRlSW47YW5pbWF0aW9uLW5hbWU6ZmFkZUlufQovKiogL2Nzcy9kaXZfYmxvY2tzLmNzcyAqKi8KZGl2LmRpdkJsb2NrVmlld3sgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RpdGxlLCBkaXYuZGl2QmxvY2tWaWV3IGxhYmVsLmRpdkJsb2NrVGl0bGV7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzozMHB4IDEwcHggMTBweCAxMHB4OyBjb2xvcjojMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUaXRsZS5ibG9ja1RpdGxlU3R5bGUyLCBkaXYuZGl2QmxvY2tWaWV3IGxhYmVsLmRpdkJsb2NrVGl0bGUuYmxvY2tUaXRsZVN0eWxlMnsgcGFkZGluZzowIDQwcHggMTBweDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnR7IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzoxNXB4IDBweDsgbWFyZ2luOjA7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50IGRpdi5kaXZCbG9ja0NvbHVtbnsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjAgNDBweDsgbWFyZ2luOjA7IHdpZHRoOjg2MHB4ICFpbXBvcnRhbnQ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0eyBiYWNrZ3JvdW5kOmluaXRpYWw7IHBhZGRpbmc6MDsgbWFyZ2luOjAgMCAyMHB4IDA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgeyBwYWRkaW5nOjEwcHggMCAwIDA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Quc2l6ZUZvcjRDb2x1bW5zTGlzdHsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdDpub3QoLnNpemVGb3I0Q29sdW1uc0xpc3QpOm50aC1jaGlsZCgzbisxKSwgZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Quc2l6ZUZvcjRDb2x1bW5zTGlzdDpudGgtY2hpbGQoNG4rMSl7IGNsZWFyOmxlZnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgZGl2LmRpdkJsb2NrTGlzdFRpdGxleyBiYWNrZ3JvdW5kOmluaXRpYWw7IHBhZGRpbmc6MCAwIDEwcHggMDsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGZvbnQtd2VpZ2h0OmJvbGQgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbXsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyBtYXJnaW46MDsgdGV4dC1pbmRlbnQ6MDsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYXJyb3dfcmVkLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgMCA1cHggdHJhbnNwYXJlbnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0gPiBBeyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOm5vbmU7IGZvbnQtc2l6ZTppbml0aWFsOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RUaXRsZTJ7IGZvbnQtc2l6ZToxLjFlbTsgYm9yZGVyOjA7IG1hcmdpbjowOyBwYWRkaW5nOjAgMCAxMHB4IDA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpc3Qtc3R5bGU6bm9uZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTJ7IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgdGV4dC1pbmRlbnQ6MDsgbGlzdC1zdHlsZTpub25lIG91dHNpZGUgbm9uZTsgZGlzcGxheTpibG9jazsgbWFyZ2luOjAgMCAwIDEycHg7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yOmJlZm9yZXsgY29udGVudDoiXGYxMzgiOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyBtYXJnaW4tcmlnaHQ6MDsgbWFyZ2luLWxlZnQ6LTIxcHg7IHBhZGRpbmctcmlnaHQ6NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMjpiZWZvcmV7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCBMSSB7IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5ub1N0eWxlSXRlbXsgcGFkZGluZzowIDAgNXB4IDA7IG1hcmdpbjowOyB0ZXh0LWluZGVudDowOyBiYWNrZ3JvdW5kOm5vbmU7IGxpc3Qtc3R5bGU6bm9uZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5vblNhbWVMaW5leyBwYWRkaW5nLXJpZ2h0OjE1cHg7IGRpc3BsYXk6aW5saW5lLXRhYmxlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm9uU2FtZUxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1yaWdodDowOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGFibGVPdXRlcnsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RhYmxleyBkaXNwbGF5OnRhYmxlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrUm93eyBkaXNwbGF5OnRhYmxlLXJvdzsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NlbGx7IGRpc3BsYXk6dGFibGUtY2VsbDsgfSBkaXYuZGl2RGlzY2xhaW1lckJsb2NreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOjNweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50IGRpdi5kaXZCbG9ja0NvbHVtbiB7IHdpZHRoOjExMDBweCAhaW1wb3J0YW50OyB9IH0KLyoqIC9jc3MvbmV3Y2Fycy5jc3MgKiovCi5kaXZGaWx0ZXJPdXRlckJveHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNhYWE7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW46MTVweCAwIDAgMDsgcGFkZGluZzoxNXB4OyB9IC5kaXZGaWx0ZXJPdXRlckJveCBVTCB7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowcHggMTBweCAyMHB4IDA7IG1hcmdpbjowOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmRpdkZpbHRlck91dGVyQm94IFVMLnNob3dBc1JvdyB7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGZsZXgtd3JhcDp3cmFwOyB9IC5kaXZGaWx0ZXJPdXRlckJveCBVTCBMSXsgbWFyZ2luOjAgMCAzcHggMDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggVUwuc2hvd0FzUm93IExJeyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZsZXg6MCAwIDE1MHB4OyB9IC5kaXZGaWx0ZXJPdXRlckJveCAuZGl2RmlsdGVyVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJCb3hUaXRsZXsgbWFyZ2luOjAgMCAxNXB4IDA7IGNvbG9yOiM2NjY7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MCAwIDEwcHggMDsgZm9udC1zaXplOjAuOTM4cmVtIDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXJ7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXJ7IG1hcmdpbi1ib3R0b206MjBweDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlcjpsYXN0LWNoaWxkeyBtYXJnaW4tYm90dG9tOjA7IH0gSDEuZGVmYXVsdC5pc1NpbmdsZVRpdGxlLmlzQm90dG9tQm9yZGVyZWQsIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIEgyeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhcnNCb3hXcmFwcGVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94eyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luOjE1cHggNXB4IDEwcHggNXB4OyBwYWRkaW5nOjEwcHg7IGJvcmRlcjoxcHggI2RkZCBzb2xpZDsgaGVpZ2h0OjMyMHB4OyB0cmFuc2l0aW9uOmJvcmRlciAwLjJzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGxpbmVhcjsgLXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlciAwLjJzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGxpbmVhciA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6Y2FsYygzMy4zMzMzMzMlIC0gMTBweCk7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seXsgaGVpZ2h0OjE1NnB4OyB3aWR0aDphdXRvOyBtYXJnaW4tdG9wOjIwcHg7IHBhZGRpbmc6MjBweDsgYm9yZGVyLWNvbG9yOiNlZWU7IHRleHQtYWxpZ246Y2VudGVyOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5kaXZNYWtlTG9nb09ubHkgSU1HIHsgaGVpZ2h0OjEwMCU7IHdpZHRoOmF1dG87IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94Om50aC1jaGlsZCgzKXsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94OmFjdGl2ZSB7IGJvcmRlci1jb2xvcjojNjY2OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5Nb3ZpbmdCb3hFZmZlY3QgeyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3h7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgZmxvYXQ6bGVmdDsgb3BhY2l0eToxOyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6MDsgYm9yZGVyOjA7IGN1cnNvcjpwb2ludGVyOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyeyBmbG9hdDpsZWZ0OyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBIM3sgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS4zMTNyZW0gOyB3aWR0aDphdXRvOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6bm9ybWFsOyBjb2xvcjojMDAwMDAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIGRpdi5kaXZOZXdDYXJTdGFydFByaWNlLCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBkaXYuZGl2TmV3Q2FyUHJvbW9QcmljZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC43NXJlbSA7IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXJ7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MjBweDsgbGVmdDoxMHB4OyByaWdodDoxMHB4OyBoZWlnaHQ6ODAlOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckltYWdlQ29udGFpbmVyIEF7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXIgSU1HeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94eyBoZWlnaHQ6Mzg1cHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5eyBoZWlnaHQ6MTU2cHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXNpemU6MS4wNjNyZW0gOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXNpemU6MS42MjVyZW0gOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgZGl2LmRpdk5ld0NhclN0YXJ0UHJpY2V7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2RmlsdGVyT3V0ZXJCb3ggZGl2LmRpdkZpbHRlckJveFRpdGxleyB3aWR0aDoxMTAwcHg7IH0gfSAucmViYXRlVGFneyBwYWRkaW5nOjJweCAxMHB4IDRweCAxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTZweDsgcmlnaHQ6MTVweDsgYmFja2dyb3VuZDojZmYwMDAwIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiFpbXBvcnRhbnQ7IHRleHQtc2hhZG93Om5vbmUhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyB9IC5yZWJhdGVUYWcgc3Bhbi5yZWJhdGVUZXh0eyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC43NXJlbSA7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZUFtb3VudHsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NzAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5yZWJhdGVCb3JkZXJDb2xvcnsgYm9yZGVyLWNvbG9yOiNkZGQ7IG1hcmdpbi10b3A6MjBweCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjE1cHggIWltcG9ydGFudDsgfSBkaXYuZGl2Q2FyRm9vdGVyQ29udGFpbmVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgbGVmdDowOyByaWdodDowOyB3aWR0aDoxMDAlOyB9IGRpdi5jYXJQYXltZW50V3JhcHBlcnsgaGVpZ2h0OjZyZW07IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEyOTlweCkgeyBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3h7IGhlaWdodDozODBweCFpbXBvcnRhbnQ7IH0gZGl2LmNhclBheW1lbnRXcmFwcGVyeyBoZWlnaHQ6NnJlbSFpbXBvcnRhbnQ7IH0gfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tY2VydC1jb25jcmV0ZS1ncmF5LCB2YXIoLS1saWdodC1ncmF5KSk7IHBhZGRpbmctYm90dG9tOjVweDsgcGFkZGluZy10b3A6NXB4OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUyeyBmb250LXNpemU6MS4xODhyZW0gOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRMaW5lMiBzcGFueyBjb2xvcjojZmYwMDAwOyBmb250LXNpemU6MS4xODhyZW0gOyBmb250LXdlaWdodDo3MDA7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUzeyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM2QjZCNkI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUxeyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM2QjZCNkI7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyQ29udGFjdENUQUNvbnRhaW5lcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXJXaXRoQ1RBeyBib3R0b206NTBweCFpbXBvcnRhbnQ7IH0gZGl2LmRpdkNhclNpbmdsZU91dGVyQm94V2l0aENUQXsgaGVpZ2h0OjQyNXB4IWltcG9ydGFudDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJbWFnZUNvbnRhaW5lcldpdGhDVEF7IGJvdHRvbTo2MHB4IWltcG9ydGFudDsgfSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJUb29sdGlweyBkaXNwbGF5OmlubGluZS10YWJsZTsgcGFkZGluZzowIDEwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjEwJTsgfSAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAucGF5bWVudEluZm9CdWJibGV7IGRpc3BsYXk6bm9uZTsgfSBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6aG92ZXIgZGl2LmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gZGl2LmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IHBhZGRpbmc6M3B4IDhweDsgYm9yZGVyLXJhZGl1czozcHg7IHdpZHRoOmZpdC1jb250ZW50OyBjb2xvcjojMDAwOyBtYXJnaW4tdG9wOjEwcHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW5TdG9ja0xpbmsgYXsgY29sb3I6IzAwMDsgfSBkaXYuZGl2RGlzY2xhaW1lckJsb2NreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOjNweDsgfQovKiogL2Nzcy9kaXZfcmFuZ2VzbGlkZXIuY3NzICoqLwpkaXYuZGl2UHJpY2VSYW5nZVNsaWRlcnsgbWFyZ2luOjAgMCAxMHB4IDA7IHBhZGRpbmc6MDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXRpdGxleyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjAgMCAxMHB4IDA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXN7IHBhZGRpbmc6MCAwIDE1cHggMDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlcyBzcGFuLnByaWNlLW1pbnt9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzIHNwYW4ucHJpY2UtbWF4e30gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlcnsgYm9yZGVyLXJhZGl1czo1cHggIWltcG9ydGFudDsgaGVpZ2h0OjEwcHg7IG1hcmdpbjo0cHggNnB4IDAgLTNweDsgcGFkZGluZzowOyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1sZWZ0LCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXJpZ2h0eyBmb250LXNpemU6MC43NXJlbSA7IGxpbmUtaGVpZ2h0OjIwcHg7IGNvbG9yOiM3NTc1NzU7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1sZWZ0eyB0ZXh0LWFsaWduOmxlZnQ7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1yaWdodHsgdGV4dC1hbGlnbjpyaWdodDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIGRpdi51aS1zbGlkZXItcmFuZ2V7IGJhY2tncm91bmQ6IzMyYTdkYTsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZSwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGV7IG1hcmdpbjotOHB4IDAgMCAtMTFweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBwYWRkaW5nOjAgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo1MHB4ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50OyB0b3A6MDsgaGVpZ2h0OjI1cHg7IHdpZHRoOjI1cHg7IGN1cnNvcjpwb2ludGVyOyBvdXRsaW5lOm5vbmUgIWltcG9ydGFudDsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBBLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtYWN0aXZlLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtYWN0aXZleyBib3JkZXItY29sb3I6IzY2NjsgfSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1cywgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtZm9jdXN7IG91dGxpbmU6bm9uZSAhaW1wb3J0YW50OyB9Ci8qKiAvY3NzL2Rpdl9hbmltYXRpb25zLm1pbi5jc3MgKiovCi5ib3VuY2luZy1wcmljZS1hcnJvd3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jaW5nLWFycm93Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjVzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tbmFtZTpib3VuY2luZy1hcnJvdzthbmltYXRpb24tZHVyYXRpb246NXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKX0uZmFkZS1pbi1vdXQsLmZhZGUtaW4tb3V0LWZhc3R7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfUBrZXlmcmFtZXMgYm91bmNpbmctYXJyb3d7MCUsMTAwJSwxNiUsMzIley1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpO3RyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpfTI0JSw4JXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KX19QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jaW5nLWFycm93ezAlLDEwMCUsMTYlLDMyJXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKX0yNCUsOCV7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSl9fS5mYWRlLWluLW91dHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1uYW1lOmZhZGUtaW4tb3V0O2FuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO29wYWNpdHk6MX1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1pbi1vdXR7MCUsMTAwJSw1MCV7b3BhY2l0eToxfTI1JXtvcGFjaXR5Oi41fX1Aa2V5ZnJhbWVzIGZhZGUtaW4tb3V0ezAlLDEwMCUsNDAle29wYWNpdHk6MX0yMCV7b3BhY2l0eTouNX19LmZhZGUtaW4tb3V0LWZhc3R7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlLWluLW91dC1mYXN0Oy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24tbmFtZTpmYWRlLWluLW91dC1mYXN0O2FuaW1hdGlvbi1kdXJhdGlvbjouNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTtvcGFjaXR5OjF9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtaW4tb3V0LWZhc3R7MCUsMTAwJXtvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgZmFkZS1pbi1vdXQtZmFzdHswJSwxMDAle29wYWNpdHk6MX01MCV7b3BhY2l0eTouNX19Lmljb24tY2lyY2xpbmd7LXdlYmtpdC1hbmltYXRpb24tbmFtZTppY29uLWNpcmNsaW5nOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjFzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC42OCwtLjU1LC4yNywxLjU1KTthbmltYXRpb24tbmFtZTppY29uLWNpcmNsaW5nO2FuaW1hdGlvbi1kdXJhdGlvbjoxczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC42OCwtLjU1LC4yNywxLjU1KX1ALXdlYmtpdC1rZXlmcmFtZXMgaWNvbi1jaXJjbGluZ3tmcm9tey1tcy10cmFuc2Zvcm06cm90YXRlKDApOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwKTt0cmFuc2Zvcm06cm90YXRlKDApfXRvey1tcy10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIGljb24tY2lyY2xpbmd7ZnJvbXstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3stbXMtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19Ci8qKiAvY3NzL2ZvbnRzLmNzcyAqKi8KQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FsaWJyaSc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQuc3ZnI0NhbGlicmknKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXNpemU6MWVtOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhbGlicmknOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQuc3ZnI0NhbGlicmknKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWxpYnJpJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LnN2ZyNDYWxpYnJpJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtUmVndWxhci53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVJlZ3VsYXJJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmEnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hTGlnaHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1MaWdodC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtTGlnaHRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1TZW1pYm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVNlbWlib2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1SZWcud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLVJlZ0l0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUxpZ2h0LndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLUxpZ2h0SXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1NZWQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFDb25kV0dMLU1lZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhci53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXJJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXJJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFySXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0Lm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0SXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHRJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1yZWd1bGFyLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhci13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHQtUmVndWxhckl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1ib2xkLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtYm9sZC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dC1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0b2ZmaWNlLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0T2ZmaWNlLUJvbGRJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZGxpbmVvdC1zZW1pYm9sZF8wLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRsaW5lb3Qtc2VtaWJvbGRfMC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZGxpbmVPVC1TZW1pYm9sZF8wLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LWxpZ2h0LXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtbGlnaHQtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHQtTGlnaHQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1yZWd1bGFyLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtUmVndWxhckl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtYm9sZGl0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWV4dHJhYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWV4dHJhYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1FeHRyYUJvbGQub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRvZmZpY2UtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1SZWd1bGFySXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWRPZmZpY2UnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkT2ZmaWNlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkT2ZmaWNlJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRvZmZpY2UtYm9sZGl0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1Cb2xkSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHRPZmZpY2UnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiLy9mb250cy5kMmNtZWRpYS5jYS9WV1RleHRPZmZpY2UtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHRPZmZpY2UnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0T2ZmaWNlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFjay53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuTWlsbGVyQic7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1JdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJvbGQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2tJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2tJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1JdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuUHJveGltYU5vdmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZEl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmFMaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmFMaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpib2xkOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qcm94aW1hTm92YS1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUm9ib3RvJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LnN2ZyNSb2JvdG8nKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JvYm90byc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC5zdmcjUm9ib3RvQmxhY2tJdGFsaWMnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQuc3ZnI1JvYm90b0JvbGQnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1MaWdodC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC5zdmcjUm9ib3RvTGlnaHQnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rYic7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmtiJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LWJvbGQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rYic7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtsLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2wtd2ViZm9udC1saWdodC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmttJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgiZW90IiksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Rlc2lnbmttJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmttLXdlYmZvbnQtbWVkaXVtLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bWVkaXVtOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVTJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX3JlZ3VsYXJfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19yZWd1bGFyX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NvcnBvcmF0ZVMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfbGlnaHRfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19saWdodF93ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVTJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX2JvbGRfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19ib2xkX3dlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVBQ29uZGVuc2VkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYWNvbmRwcm9fcmVndWxhcl93ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYWNvbmRwcm9fcmVndWxhcl93ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVBUmVndWxhcic7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvcmF0ZWFwcm9fcmVndWxhcl9sb2dvX3dlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3JhdGVhcHJvX3JlZ3VsYXJfbG9nb193ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OiJTb3VyY2VTYW5zUHJvIjsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC5lb3QnKTsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tcmVndWxhci13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9yZWd1bGFyIikgZm9ybWF0KCJzdmciKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OiJTb3VyY2VTYW5zUHJvIjsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC5lb3QiKTsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tYm9sZC13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9ib2xkIikgZm9ybWF0KCJzdmciKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseToiU291cmNlU2Fuc1BybyI7IHNyYzp1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LmVvdCIpOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC5lb3Q\/I2llZml4IikgZm9ybWF0KCJlb3QiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LnN2ZyNzb3VyY2Vfc2Fuc19wcm9saWdodCIpIGZvcm1hdCgic3ZnIik7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLU5vcm1hbC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLU5vcm1hbC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZVYwMy1Ob3JtYWwub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGknOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLUl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZVYwMy1Cb2xkIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRCb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRCb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlVjAzLUV4dGVuZGVkQm9sZEl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVJlZ3VsYXIub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVJlZ3VsYXIud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1JdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW4ub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbi53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW4ud29mZiIpIGZvcm1hdCgid29mZiIpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbkl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LVRoaW5JdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPc3dhbGQnOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZC5zdmcnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09zd2FsZEJvbGQnOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZEJvbGQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGRCb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZEJvbGQuc3ZnJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidzaG93cm9vbSc7IHNyYzogbG9jYWwoJ3Nob3dyb29tJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9zaG93cm9vbS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL3Nob3dyb29tLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL3Nob3dyb29tLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL3Nob3dyb29tLnN2ZycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHRPYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHRPYmxpcXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0T2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2tPYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2tPYmxpcXVlLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUJsYWNrT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyUHJvJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFByby1ub3JtYWwud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyUHJvJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRQcm8tYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dExUUHJvLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0TFRQcm8tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dExUUHJvLUl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHRSb3VuZGVkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFJvdW5kZWRTdGQtUmVnLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHRSb3VuZGVkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRSb3VuZGVkU3RkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dFJvdW5kZWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0Um91bmRlZFN0ZC1Cb2xkSXQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHRSb3VuZGVkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFJvdW5kZWRTdGQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FwZXhOZXdCb29rJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9hcGV4LW5ldy1ib29rLXJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXItd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZC13ZWJmb250LnN2ZyNtb250c2VycmF0Ym9sZCcpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGRpdGFsaWMtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkaXRhbGljLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRib2xkX2l0YWxpYycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhcml0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC5zdmcjbW9udHNlcnJhdGl0YWxpYycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW0td2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW0td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bS13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRtZWRpdW0nKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtaXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW1pdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bWl0YWxpYy13ZWJmb250LnN2ZyNtb250c2VycmF0bWVkaXVtX2l0YWxpYycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTU1DJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtUmVndWxhci5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01NQyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtTWVkaXVtLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNTUMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0h5dW5kYWlTYW5zSGVhZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLVJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTWVkaXVtLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTWVkaXVtLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0h5dW5kYWlTYW5zSGVhZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0JNVyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0JNV1R5cGVOZXh0LUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCTVcnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CTVdUeXBlTmV4dC1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQk1XR2xvYmFsUHJvJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQk1XR2xvYmFsX1Byb19yZWcud29mZicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCTVdHbG9iYWxQcm8nOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CTVdHbG9iYWxfUHJvX2JvbGQud29mZicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtVGhpbi5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtVGhpbkl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTGlnaHRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtUmVndWxhckl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVJlZ3VsYXJJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLU1lZGl1bUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1TZW1pYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVNlbWlib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVNlbWlib2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtU2VtaWJvbGRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvbGRJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtRXh0cmFib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtRXh0cmFib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUV4dHJhYm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUV4dHJhYm9sZEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQmxhY2tJdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsQm9vayc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvb2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb29rLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbEJvb2snOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb29rSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9va0l0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGFuZFJvdmVyJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xhbmRSb3ZlcldlYi1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGFuZFJvdmVyV2ViLUJvbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xhbmRSb3Zlcic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xhbmRSb3ZlcldlYi1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xhbmRSb3ZlcldlYi1MaWdodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmlzc2FuJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmlzc2FuJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmlzc2FuJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRSZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRSZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXItUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyTW9kZXJuJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyTW9kZXJuLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyTW9kZXJuJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3Vhck1vZGVybi1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3VhckdvdGhhbSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3VhckdvdGhhbS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXJHb3RoYW0nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyR290aGFtLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR290aGFtJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR290aGFtJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1MaWdodEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR290aGFtJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR290aGFtJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dPVEhBTS1NZWRpdW1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLU1lZGl1bUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW5maW5pdGknOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbmZpbml0aUJyYW5kLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbmZpbml0aSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbmZpbml0aUJyYW5kLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1NpZ25hdHVyZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVSZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTaWduYXR1cmUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1NpZ25hdHVyZUxpZ2h0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVMaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU2lnbmF0dXJlTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RveW90YVR5cGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RveW90YVR5cGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLVJlZ3VsYXJJdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtUmVndWxhckl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUb3lvdGFUeXBlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVG95b3RhVHlwZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ub3lvdGFUeXBlLUJvbGRJdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtQm9sZEl0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxia18td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bGJraS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsaWctd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bGl0LXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bWRpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bG1lZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy01X1BsYWluLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy01aVBsYWluSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtM19MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTNpTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy03X0JvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy03aUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC01X1BsYWluLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtNWlQbGFpbkl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC0zX0xpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTNpTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtN19Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTdpQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLUxpZ2h0SXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtVGhpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtQmxhY2sud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xvdWlzJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Mb3Vpc0dsb2JhbDItUmVnLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMb3Vpcyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xvdWlzR2xvYmFsMi1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMb3Vpcyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTG91aXNHbG9iYWwyLUhlYXZ5LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpYyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWMnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpYyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY1dpZGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLVdpZGVSZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY1dpZGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1XaWRlQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNXaWRlJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1XaWRlTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY05hcnJvdyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtTmFycm93UmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FkaWxsYWNHb3RoaWNOYXJyb3cnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1OYXJyb3dCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY05hcnJvdyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtTmFycm93TWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNaW5pU2VyaWYnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01JTklTZXJpZi1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBzaXplLWFkanVzdDoxMjAlOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01pbmlTZXJpZic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTUlOSVNlcmlmLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgc2l6ZS1hZGp1c3Q6MTIwJTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNaW5pU2VyaWYnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NSU5JU2VyaWYtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgc2l6ZS1hZGp1c3Q6MTIwJTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNaW5pU2VyaWYnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01JTklTZXJpZi1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgc2l6ZS1hZGp1c3Q6MTIwJTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb2JlbCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTm9iZWxMaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm9iZWwnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05vYmVsUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm9iZWwnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05vYmVsQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm9iZWxCb29rJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ob2JlbEJvb2sud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1SZWd1bGFySXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1NZWRpdW1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tU2VtaUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tU2VtaUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1Cb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LVRoaW4td2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtVGhpbi13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1MaWdodC13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1saWdodC13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1SZWd1bGFyLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LVJlZ3VsYXItd2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtTWVkaXVtLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LU1lZGl1bS13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1Cb2xkLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LUJvbGQtd2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHRNb25vJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0TW9uby1SZWd1bGFyLXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0TW9uby1SZWd1bGFyLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4tSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4tSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1VbHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVVsdHJhTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVVsdHJhTGlnaHQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVVsdHJhTGlnaHQtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTGlnaHQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUxpZ2h0LUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1SZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1SZWd1bGFyLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1SZWd1bGFyLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTWVkaXVtLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1NZWRpdW0tSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJvbGQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJvbGQtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1IZWF2eS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1IZWF2eS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtSGVhdnktSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUhlYXZ5LUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJsYWNrLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1CbGFjay1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVGhpbi5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1UaGluLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVRoaW4tT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1VbHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1VbHRyYUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVVsdHJhTGlnaHQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVWx0cmFMaWdodC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1MaWdodC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1MaWdodC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtUmVndWxhci1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1SZWd1bGFyLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTWVkaXVtLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLU1lZGl1bS1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQm9sZC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1Cb2xkLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtSGVhdnkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUhlYXZ5Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUhlYXZ5LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUhlYXZ5LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJsYWNrLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJsYWNrLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtRXh0cmFCbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtRXh0cmFCbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1FeHRyYUJsYWNrLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUV4dHJhQmxhY2stT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1UaGluLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1UaGluLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtVGhpbi1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1MaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTGlnaHQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1MaWdodC1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVJlZ3VsYXItT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1SZWd1bGFyLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLU1lZGl1bS1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLU1lZGl1bS1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJvbGQtT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1Cb2xkLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUhlYXZ5LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUhlYXZ5Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1IZWF2eS1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUhlYXZ5LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1CbGFjay1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJsYWNrLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FjdXJhQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBY3VyYUJlc3Bva2UnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FjdXJhQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQWN1cmFCZXNwb2tlQm9vayc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLUJvb2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtQm9vay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtU2VtaWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRm9yZEYxJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc0xpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNNZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc01lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zUmVndWxhckl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNY0xhcmVuQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTWNMYXJlbkJlc3Bva2VfTHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWNMYXJlbkJlc3Bva2UnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL01jTGFyZW5CZXNwb2tlX1JnLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01jTGFyZW5CZXNwb2tlJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9NY0xhcmVuQmVzcG9rZV9CZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTm90b1NhbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL05vdG9TYW5zLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidESU5OZXh0TFRQcm8nOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0RJTk5leHRMVFByby1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidESU5OZXh0TFRQcm8nOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0RJTk5leHRMVFByby1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0RJTk5leHRMVFBybyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRElOTmV4dExUUHJvLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVHVuZ3N0ZW4nOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL1R1bmdzdGVuLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUdW5nc3Rlbic7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvVHVuZ3N0ZW4tQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0KLyoqIC9jc3MvbWFpbi5jc3MgKiovCi4tbGVmdCB7ZmxvYXQ6bGVmdCFpbXBvcnRhbnQ7fSAuLXJpZ2h0IHtmbG9hdDpyaWdodH0gLi1zbWFsbCB7Zm9udC1zaXplOi44ZW07bWFyZ2luLWJvdHRvbToxLjg3NWVtO2xpbmUtaGVpZ2h0OjEuODc1ZW0haW1wb3J0YW50O30gLi1sYXJnZSB7Zm9udC1zaXplOjEuMmVtO2xpbmUtaGVpZ2h0OjIuNWVtO21hcmdpbi1ib3R0b206MS4yNWVtIWltcG9ydGFudDt9IC4taGlkZSB7ZGlzcGxheTpub25lIWltcG9ydGFudDt9IC4tcXVpZXQge2NvbG9yOiM2NjYhaW1wb3J0YW50O30gLi1sb3VkIHtjb2xvcjojMDAwMDAwIWltcG9ydGFudDt9IC4taGlnaGxpZ2h0IHtiYWNrZ3JvdW5kOiNmZjAhaW1wb3J0YW50O30gLi1hZGRlZCB7YmFja2dyb3VuZDojMDYwO2NvbG9yOiNmZmYhaW1wb3J0YW50O30gLi1yZW1vdmVkIHtiYWNrZ3JvdW5kOiM5MDA7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7fSAuLXB1c2gtZmlyc3Qge21hcmdpbi1sZWZ0OjA7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O30gLi1wdXNoLWxhc3Qge21hcmdpbi1yaWdodDowO3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtbGVmdCB7bWFyZ2luLXRvcDowO3BhZGRpbmctdG9wOjAhaW1wb3J0YW50O30gLi1wdXNoLWJvdHRvbSB7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50O30gLi1ub2JvcmRlciB7Ym9yZGVyOjAhaW1wb3J0YW50O30gLi1ub2RlY29yYXRpb24sIC4tbm8tdGV4dC1kZWNvcmF0aW9uLCAuLW5vdGV4dC1kZWNvcmF0aW9uIHt0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7fSAuLXRleHQtdXBwZXJjYXNlLCAuLXVwcGVyY2FzZSwgLnRleHQtdXBwZXJjYXNlIHt0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpO30gLi10ZXh0LWxvd2VyY2FzZSwgLi1sb3dlcmNhc2Uge3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZSFpbXBvcnRhbnQ7fSAuLWhpZGRlbiB7IGRpc3BsYXk6bm9uZTsgfSAuLXRleHQtYm9sZCwuYm9sZHtmb250LXdlaWdodDpib2xkIWltcG9ydGFudDt9IC4tdGV4dC1ub3JtYWwsLm5vcm1hbHtmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50O30gLi1hbGlnbi10b3Age3ZlcnRpY2FsLWFsaWduOnRvcCFpbXBvcnRhbnQ7fSAuLWFsaWduLW1pZGRsZSB7dmVydGljYWwtYWxpZ246bWlkZGxlIWltcG9ydGFudDt9IC4tbGluZS1oMXsgbGluZS1oZWlnaHQ6MWVtOyB9IC4tbGluZS1oMnsgbGluZS1oZWlnaHQ6MmVtOyB9IC4tYm90dG9tMHsgYm90dG9tOjA7IH0gLi1ib3R0b20wLWltcG9ydGFudHsgYm90dG9tOjAhaW1wb3J0YW50OyB9IC5Qb3JzY2hlMnsgY2xlYXI6Ym90aDsgfSAuYmxhY2stdGV4dCB7IGNvbG9yOiMwMDAwMDA7IH0gOjpwbGFjZWhvbGRlciB7IHBhZGRpbmctdG9wOjFweDsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9IDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9IDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSAjY2FyVGl0bGUgLmZhLWNoZXZyb24tcmlnaHQsIC5TcGVjaWZpY2F0aW9ucyAuZmEtY2hldnJvbi1yaWdodCB7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMzJhN2RhOyBjb2xvcjojZmZmZmZmIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLlNwZWNpZmljYXRpb25zIC5mYS1jaGV2cm9uLXJpZ2h0eyBtYXJnaW4tdG9wOjFweDsgfSAjY2FyVGl0bGUgLm1ha2VNb2RlbFllYXJ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gI2NhclRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGxldHRlci1zcGFjaW5nOi0xcHg7IH0gLmNhclRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyNXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDo5cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6MS4zNzVyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzMyYTdkYTsgY29sb3I6I2ZmZmZmZiA7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5jYXJUaXRsZSAubWFrZU1vZGVsWWVhcnsgZm9udC1zaXplOjEuNDM4cmVtIDsgfSAuY2FyVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjAuOTM4cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAjU2VhcmNoVGl0bGUgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MzFweDsgaGVpZ2h0OjQxcHg7IHBhZGRpbmctdG9wOjVweDsgcGFkZGluZy1sZWZ0OjE0cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6Mi4xODhyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzMyYTdkYTsgY29sb3I6I2ZmZmZmZiA7IG1hcmdpbi1yaWdodDoxMHB4OyB9ICNTZWFyY2hUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MXJlbSA7IGxldHRlci1zcGFjaW5nOi0xcHg7IG1hcmdpbi1sZWZ0OjQ1cHg7IGRpc3BsYXk6YmxvY2s7IH0gLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGFiZWwgaW5wdXQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjFweDsgbWFyZ2luLXJpZ2h0OjhweDsgaGVpZ2h0OjEzcHg7IH0gLnVpLXdpZGdldCwudWktc3RhdGUtaG92ZXIsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1ob3ZlciwgLnVpLXN0YXRlLWZvY3VzLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZm9jdXMsIC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0eyBiYWNrZ3JvdW5kOiNmZmYhaW1wb3J0YW50OyBjb2xvcjojNTU1OyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgfSAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdHsgcGFkZGluZzo4cHggMTBweCFpbXBvcnRhbnQ7IH0gLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGl7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC51aS1jb3JuZXItYWxseyBib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7IH0gLi1jb2xsYXBzZXsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9IC4tbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyB9IC4tbm8tc2hhZG93LCAuLXNoYWRvdzAsIC4tbm9zaGFkb3d7IGJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gLi11bmRlcmxpbmV7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50OyB9IC4tdG9wMHsgdG9wOjA7IH0gLi10ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudDt9IC4tdGV4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudDt9IC4tdGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O30gLi10ZXh0LXJlZCwgLi1yZWQtdGV4dHtjb2xvcjpyZWQhaW1wb3J0YW50O30gLi1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt9IC4taW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDt9IC4tbm9uZSwgLi1oaWRkZW4sIC4taGlkZGUge2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7fSAuLWlubGluZSB7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50O30gLi1jb2xvcjEgeyBjb2xvcjojNTc1NzU3IWltcG9ydGFudDt9IC4tdGl0bGUxIHsgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7IGZvbnQtY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyB0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7IH0gLi1pbnB1dCB7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE1cHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgaGVpZ2h0OjMycHg7IGNvbG9yOiM0MDQwNDA7IHBhZGRpbmc6MHB4IDZweCFpbXBvcnRhbnQ7IG1hcmdpbjowcHg7IG91dGxpbmU6bm9uZTsgbWluLWhlaWdodDoyMHB4OyBib3JkZXI6MXB4IHNvbGlkICNjZWQ0ZGE7IGJvcmRlci1yYWRpdXM6LjI1cmVtOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDsgfSAuLWlucHV0OmZvY3VzLCAuLWlucHV0OmhvdmVyeyBib3JkZXItY29sb3I6IzgwYmRmZiAhaW1wb3J0YW50OyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpOyB9IC4tcG9zaXRpb24tc3RhdGljLCAuLXBvcy1zdGF0aWMsIC4tcG9zLXN0YXQge3Bvc2l0aW9uOnN0YXRpYyFpbXBvcnRhbnQ7fSAuLXBvc2l0aW9uLWFic29sdXRlLCAuLXBvcy1hYnNvbHV0ZSwgLi1wb3MtYWJzIHtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7fSAuLXBvc2l0aW9uLWZpeGVkLCAuLXBvcy1maXhlZCwgLi1wb3MtZml4IHtwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7fSAuLXBvc2l0aW9uLXJlbGF0aXZlLCAuLXBvcy1yZWxhdGl2ZSwgLi1wb3MtcmVsIHtwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7fSAuLXBvc2l0aW9uLWluaGVyaXQsIC4tcG9zLWluaGVyaXQsIC4tcG9zLWluaCB7cG9zaXRpb246aW5oZXJpdCFpbXBvcnRhbnQ7fSAtbGgtMS0zLCAtbGluZS1oZWlnaHQtMS0zeyBsaW5lLWhlaWdodDoxLjM7IH0gLWxoLTIweyBsaW5lLWhlaWdodDoyMHB4OyB9IC4tZXJyb3IsIC4tYWxlcnQsIC4tbm90aWNlLCAuLXN1Y2Nlc3MsIC4taW5mbyB7cGFkZGluZzowLjhlbTttYXJnaW4tYm90dG9tOjFlbTtib3JkZXI6MnB4IHNvbGlkICNkZGQhaW1wb3J0YW50O30gLi1lcnJvciwgLi1hbGVydCB7YmFja2dyb3VuZDojZmJlM2U0O2NvbG9yOiM4YTFmMTE7Ym9yZGVyLWNvbG9yOiNmYmMyYzQhaW1wb3J0YW50O30gLi1ub3RpY2Uge2JhY2tncm91bmQ6I2ZmZjZiZjtjb2xvcjojNTE0NzIxO2JvcmRlci1jb2xvcjojZmZkMzI0IWltcG9ydGFudDt9IC4tc3VjY2VzcyB7YmFja2dyb3VuZDojZTZlZmMyO2NvbG9yOiMyNjQ0MDk7Ym9yZGVyLWNvbG9yOiNjNmQ4ODAhaW1wb3J0YW50O30gLi1pbmZvIHtiYWNrZ3JvdW5kOiNkNWVkZjg7Y29sb3I6IzIwNTc5MTtib3JkZXItY29sb3I6IzkyY2FlNCFpbXBvcnRhbnQ7fSAuLWVycm9yIGEsIC5hbGVydCBhIHtjb2xvcjojOGExZjExIWltcG9ydGFudDt9IC4tbm90aWNlIGEge2NvbG9yOiM1MTQ3MjEhaW1wb3J0YW50O30gLi1zdWNjZXNzIGEge2NvbG9yOiMyNjQ0MDkhaW1wb3J0YW50O30gLi1pbmZvIGEge2NvbG9yOiMyMDU3OTEhaW1wb3J0YW50O30gLi1ib3gge3BhZGRpbmc6MS41ZW07bWFyZ2luLWJvdHRvbToxLjVlbTtiYWNrZ3JvdW5kOiNlNWVDZjkhaW1wb3J0YW50O30gLWhyIHtiYWNrZ3JvdW5kOiNkZGRkZGQ7Y29sb3I6I2RkZGRkZDtjbGVhcjpib3RoO2Zsb2F0Om5vbmU7d2lkdGg6MTAwJTtoZWlnaHQ6MXB4O21hcmdpbjowIDAgMTdweDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7fSAtc3BhY2Uge2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojZmZmO3Zpc2liaWxpdHk6aGlkZGVuO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxcHg7bWFyZ2luOjAgMCAxN3B4O2JvcmRlcjpub25lIWltcG9ydGFudDt9IC4tY2xlYXJmaXg6YWZ0ZXIge2NvbnRlbnQ6IlwwMDIwIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO2NsZWFyOmJvdGg7dmlzaWJpbGl0eTpoaWRkZW47b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDt9IC4tY2xlYXJmaXh7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7fSAuLWNsZWFyIHtjbGVhcjpib3RoIWltcG9ydGFudDt9IC5pbnZpc2libGUge3Zpc2liaWxpdHk6aGlkZGVuO30gLmNsZWFyZml4OmFmdGVyIHtjb250ZW50OiIiOyBkaXNwbGF5OnRhYmxlOyBjbGVhcjpib3RoO30gLi1vdmVyZmxvdy1oaWRkZW4ge292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7fSAuLXc1IHt3aWR0aDo1cHghaW1wb3J0YW50O30gLi13MTAge3dpZHRoOjEwcHghaW1wb3J0YW50O30gLi13MTUge3dpZHRoOjE1cHghaW1wb3J0YW50O30gLi13MTgge3dpZHRoOjE4cHghaW1wb3J0YW50O30gLi13MjAge3dpZHRoOjIwcHghaW1wb3J0YW50O30gLi13MjUge3dpZHRoOjI1cHghaW1wb3J0YW50O30gLi13MzAge3dpZHRoOjMwcHghaW1wb3J0YW50O30gLi13MzUge3dpZHRoOjM1cHghaW1wb3J0YW50O30gLi13NDAge3dpZHRoOjQwcHghaW1wb3J0YW50O30gLi13NDUge3dpZHRoOjQ1cHghaW1wb3J0YW50O30gLi13NTAge3dpZHRoOjUwcHghaW1wb3J0YW50O30gLi13NTUge3dpZHRoOjU1cHghaW1wb3J0YW50O30gLi13NjAge3dpZHRoOjYwcHghaW1wb3J0YW50O30gLi13NjUge3dpZHRoOjY1cHghaW1wb3J0YW50O30gLi13NzAge3dpZHRoOjcwcHghaW1wb3J0YW50O30gLi13NzMge3dpZHRoOjczcHghaW1wb3J0YW50O30gLi13NzUge3dpZHRoOjc1cHghaW1wb3J0YW50O30gLi13ODAge3dpZHRoOjgwcHghaW1wb3J0YW50O30gLi13ODUge3dpZHRoOjg1cHghaW1wb3J0YW50O30gLi13ODgge3dpZHRoOjg4cHghaW1wb3J0YW50O30gLi13OTAge3dpZHRoOjkwcHghaW1wb3J0YW50O30gLi13OTUge3dpZHRoOjk1cHghaW1wb3J0YW50O30gLi13MTAwIHt3aWR0aDoxMDBweCFpbXBvcnRhbnQ7fSAuLXcxMTAge3dpZHRoOjExMHB4IWltcG9ydGFudDt9IC4tdzEyMCB7d2lkdGg6MTIwcHghaW1wb3J0YW50O30gLi13MTI1IHt3aWR0aDoxMjVweCFpbXBvcnRhbnQ7fSAuLXcxMzAge3dpZHRoOjEzMHB4IWltcG9ydGFudDt9IC4tdzEzNSB7d2lkdGg6MTM1cHghaW1wb3J0YW50O30gLi13MTQwIHt3aWR0aDoxNDBweCFpbXBvcnRhbnQ7fSAuLXcxNDMge3dpZHRoOjE0M3B4IWltcG9ydGFudDt9IC4tdzE0NSB7d2lkdGg6MTQ1cHghaW1wb3J0YW50O30gLi13MTUwIHt3aWR0aDoxNTBweCFpbXBvcnRhbnQ7fSAuLXcxNzAge3dpZHRoOjE4MHB4IWltcG9ydGFudDt9IC4tdzE4MCB7d2lkdGg6MTgwcHghaW1wb3J0YW50O30gLi13MTg1IHt3aWR0aDoxODVweCFpbXBvcnRhbnQ7fSAuLXcxOTAge3dpZHRoOjE5MHB4IWltcG9ydGFudDt9IC4tdzIwMCB7d2lkdGg6MjAwcHghaW1wb3J0YW50O30gLi13MjEwIHt3aWR0aDoyMTBweCFpbXBvcnRhbnQ7fSAuLXcyMTUge3dpZHRoOjIxNXB4IWltcG9ydGFudDt9IC4tdzIyMCB7d2lkdGg6MjIwcHghaW1wb3J0YW50O30gLi13MjMwIHt3aWR0aDoyMzBweCFpbXBvcnRhbnQ7fSAuLXcyNDAge3dpZHRoOjI0MHB4IWltcG9ydGFudDt9IC4tdzI1MCB7d2lkdGg6MjUwcHghaW1wb3J0YW50O30gLi13MjU1IHt3aWR0aDoyNTVweCFpbXBvcnRhbnQ7fSAuLXcyNjAge3dpZHRoOjI2MHB4IWltcG9ydGFudDt9IC4tdzI3MCB7d2lkdGg6MjcwcHghaW1wb3J0YW50O30gLi13Mjc1IHt3aWR0aDoyNzVweCFpbXBvcnRhbnQ7fSAuLXcyODAge3dpZHRoOjI4MHB4IWltcG9ydGFudDt9IC4tdzI5MCB7d2lkdGg6MjkwcHghaW1wb3J0YW50O30gLi13MzAwIHt3aWR0aDozMDBweCFpbXBvcnRhbnQ7fSAuLXczMTUge3dpZHRoOjMxNXB4IWltcG9ydGFudDt9IC4tdzMyMCB7d2lkdGg6MzIwcHghaW1wb3J0YW50O30gLi13MzI1IHt3aWR0aDozMjVweCFpbXBvcnRhbnQ7fSAuLXczNTAge3dpZHRoOjM1MHB4IWltcG9ydGFudDt9IC4tdzQwMCB7d2lkdGg6NDAwcHghaW1wb3J0YW50O30gLi13NDUwIHt3aWR0aDo0NTBweCFpbXBvcnRhbnQ7fSAuLXc0NjAge3dpZHRoOjQ1MHB4IWltcG9ydGFudDt9IC4tdzUwMCB7d2lkdGg6NTAwcHghaW1wb3J0YW50O30gLi13NjMwIHt3aWR0aDo2MzBweCFpbXBvcnRhbnQ7fSAuLXc2MjAge3dpZHRoOjYyMHB4IWltcG9ydGFudDt9IC4tdzYyNSB7d2lkdGg6NjI1cHghaW1wb3J0YW50O30gLi13Njc1IHt3aWR0aDo2NzVweCFpbXBvcnRhbnQ7fSAuLXc2ODAge3dpZHRoOjY4MHB4IWltcG9ydGFudDt9IC4tdzY3MCB7d2lkdGg6NjcwcHghaW1wb3J0YW50O30gLi13NzAwIHt3aWR0aDo3MDBweCFpbXBvcnRhbnQ7fSAuLXc3MjAge3dpZHRoOjcyMHB4IWltcG9ydGFudDt9IC4tdzcyNSB7d2lkdGg6NzI1cHghaW1wb3J0YW50O30gLi13NzMwIHt3aWR0aDo3MzBweCFpbXBvcnRhbnQ7fSAuLXc3NTAge3dpZHRoOjc1MHB4IWltcG9ydGFudDt9IC4tdzgwMCB7d2lkdGg6ODAwcHghaW1wb3J0YW50O30gLi13OTAwIHt3aWR0aDo5MDBweCFpbXBvcnRhbnQ7fSAuLXc5Mzcge3dpZHRoOjkzN3B4IWltcG9ydGFudDt9IC4tdzk0MCB7d2lkdGg6OTQwcHghaW1wb3J0YW50O30gLi13OTYwIHt3aWR0aDo5NjBweCFpbXBvcnRhbnQ7fSAuLXc5NzAge3dpZHRoOjk3MHB4IWltcG9ydGFudDt9IC4tdzEwMDAge3dpZHRoOjEwMDBweCFpbXBvcnRhbnQ7fSAuLXc1cCB7d2lkdGg6NSUhaW1wb3J0YW50O30gLi13MTBwIHt3aWR0aDoxMCUhaW1wb3J0YW50O30gLi13MTVwIHt3aWR0aDoyMCUhaW1wb3J0YW50O30gLi13MjBwIHt3aWR0aDoyMCUhaW1wb3J0YW50O30gLi13cSwgLi13MjVwIHt3aWR0aDoyNSUhaW1wb3J0YW50O30gLi13MzBwIHt3aWR0aDozMCUhaW1wb3J0YW50O30gLi13MzVwIHt3aWR0aDozNSUhaW1wb3J0YW50O30gLi13NDBwIHt3aWR0aDo0MCUhaW1wb3J0YW50O30gLi13NDVwIHt3aWR0aDo0NSUhaW1wb3J0YW50O30gLi13aCwuLXc1MHAge3dpZHRoOjUwJSFpbXBvcnRhbnQ7fSAuLXc1NXAge3dpZHRoOjU1JSFpbXBvcnRhbnQ7fSAuLXc2MHAge3dpZHRoOjYwJSFpbXBvcnRhbnQ7fSAuLXc2NXAge3dpZHRoOjY1JSFpbXBvcnRhbnQ7fSAuLXc3MHAge3dpZHRoOjcwJSFpbXBvcnRhbnQ7fSAuLXc3NXAge3dpZHRoOjc1JSFpbXBvcnRhbnQ7fSAuLXc4MHAge3dpZHRoOjgwJSFpbXBvcnRhbnQ7fSAuLXc4NXAge3dpZHRoOjg1JSFpbXBvcnRhbnQ7fSAuLXc5MHAge3dpZHRoOjkwJSFpbXBvcnRhbnQ7fSAuLXc5NXAge3dpZHRoOjk1JSFpbXBvcnRhbnQ7fSAuLXdmLC4tdzEwMHAge3dpZHRoOjEwMCUhaW1wb3J0YW50O30gLi1tYXgtdy1ub25lIHttYXgtd2lkdGg6bm9uZSFpbXBvcnRhbnQ7fSAuLWg1IHtoZWlnaHQ6NXB4IWltcG9ydGFudDt9IC4taDYge2hlaWdodDo2cHghaW1wb3J0YW50O30gLi1oNyB7aGVpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLWg4IHtoZWlnaHQ6OHB4IWltcG9ydGFudDt9IC4taDkge2hlaWdodDo5cHghaW1wb3J0YW50O30gLi1oMTAge2hlaWdodDoxMHB4IWltcG9ydGFudDt9IC4taDExIHtoZWlnaHQ6MTFweCFpbXBvcnRhbnQ7fSAuLWgxMiB7aGVpZ2h0OjEycHghaW1wb3J0YW50O30gLi1oMTMge2hlaWdodDoxM3B4IWltcG9ydGFudDt9IC4taDE0IHtoZWlnaHQ6MTRweCFpbXBvcnRhbnQ7fSAuLWgxNSB7aGVpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1oMjAge2hlaWdodDoyMHB4IWltcG9ydGFudDt9IC4taDI1IHtoZWlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLWgzMCB7aGVpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1oMzIge2hlaWdodDozMnB4IWltcG9ydGFudDt9IC4taDM1IHtoZWlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLWg0MCB7aGVpZ2h0OjQwcHghaW1wb3J0YW50O30gLi1oNDUge2hlaWdodDo0NXB4IWltcG9ydGFudDt9IC4taDUwIHtoZWlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLWg1NSB7aGVpZ2h0OjU1cHghaW1wb3J0YW50O30gLi1oNjAge2hlaWdodDo2MHB4IWltcG9ydGFudDt9IC4taDY1IHtoZWlnaHQ6NjVweCFpbXBvcnRhbnQ7fSAuLWg3MCB7aGVpZ2h0OjcwcHghaW1wb3J0YW50O30gLi1oNzUge2hlaWdodDo3NXB4IWltcG9ydGFudDt9IC4taDgwIHtoZWlnaHQ6ODBweCFpbXBvcnRhbnQ7fSAuLWg4NSB7aGVpZ2h0Ojg1cHghaW1wb3J0YW50O30gLi1oOTAge2hlaWdodDo5MHB4IWltcG9ydGFudDt9IC4taDk1IHtoZWlnaHQ6OTVweCFpbXBvcnRhbnQ7fSAuLWgxMDAge2hlaWdodDoxMDBweCFpbXBvcnRhbnQ7fSAuLWgxMTAge2hlaWdodDoxMTBweCFpbXBvcnRhbnQ7fSAuLWgxMjAge2hlaWdodDoxMjBweCFpbXBvcnRhbnQ7fSAuLWgxMzAge2hlaWdodDoxMzBweCFpbXBvcnRhbnQ7fSAuLWgxNDAge2hlaWdodDoxNDBweCFpbXBvcnRhbnQ7fSAuLWgxNTAge2hlaWdodDoxNTBweCFpbXBvcnRhbnQ7fSAuLWgxNjAge2hlaWdodDoxNjBweCFpbXBvcnRhbnQ7fSAuLWgxNzAge2hlaWdodDoxNzBweCFpbXBvcnRhbnQ7fSAuLWgxODAge2hlaWdodDoxODBweCFpbXBvcnRhbnQ7fSAuLWgxOTAge2hlaWdodDoxOTBweCFpbXBvcnRhbnQ7fSAuLWgyMDAge2hlaWdodDoyMDBweCFpbXBvcnRhbnQ7fSAuLWgyMjAge2hlaWdodDoyMjBweCFpbXBvcnRhbnQ7fSAuLWgyMzAge2hlaWdodDoyMzBweCFpbXBvcnRhbnQ7fSAuLWgyNDAge2hlaWdodDoyNDBweCFpbXBvcnRhbnQ7fSAuLWgyNDUge2hlaWdodDoyNDVweCFpbXBvcnRhbnQ7fSAuLWgyNDgge2hlaWdodDoyNDhweCFpbXBvcnRhbnQ7fSAuLWgyNTAge2hlaWdodDoyNTBweCFpbXBvcnRhbnQ7fSAuLWgyNTUge2hlaWdodDoyNTVweCFpbXBvcnRhbnQ7fSAuLWgyNjAge2hlaWdodDoyNjBweCFpbXBvcnRhbnQ7fSAuLWgzMDAge2hlaWdodDozMDBweCFpbXBvcnRhbnQ7fSAuLWgzNTAge2hlaWdodDozNTBweCFpbXBvcnRhbnQ7fSAuLWg0MDAge2hlaWdodDo0MDBweCFpbXBvcnRhbnQ7fSAuLWg0NTAge2hlaWdodDo0NTBweCFpbXBvcnRhbnQ7fSAuLWg1MDAge2hlaWdodDo1MDBweCFpbXBvcnRhbnQ7fSAuLWg1NTAge2hlaWdodDo1NTBweCFpbXBvcnRhbnQ7fSAuLWg2MDAge2hlaWdodDo2MDBweCFpbXBvcnRhbnQ7fSAuLWg2NTAge2hlaWdodDo2NTBweCFpbXBvcnRhbnQ7fSAuLWg3MDAge2hlaWdodDo3MDBweCFpbXBvcnRhbnQ7fSAuLWg3NTAge2hlaWdodDo3NTBweCFpbXBvcnRhbnQ7fSAuLWg4MDAge2hlaWdodDo4MDBweCFpbXBvcnRhbnQ7fSAuLWg5MDAge2hlaWdodDo5MDBweCFpbXBvcnRhbnQ7fSAuLWgxMDAwIHtoZWlnaHQ6MTAwMHB4IWltcG9ydGFudDt9IC4taDVwIHtoZWlnaHQ6NSUhaW1wb3J0YW50O30gLi1oMTBwIHtoZWlnaHQ6MTAlIWltcG9ydGFudDt9IC4taDE1cCB7aGVpZ2h0OjE1JSFpbXBvcnRhbnQ7fSAuLWgyMHAge2hlaWdodDoyMCUhaW1wb3J0YW50O30gLi1ocSwgLi1oMjVwIHtoZWlnaHQ6MjUlIWltcG9ydGFudDt9IC4taGgsLi1oNTBwIHtoZWlnaHQ6NTAlIWltcG9ydGFudDt9IC4taGYsLi1oMTAwcCB7aGVpZ2h0OjEwMCUhaW1wb3J0YW50O30gLi1ib3gtcy1ieyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuLWJveC1jb250ZW50eyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC4tZmxleHtkaXNwbGF5OmZsZXg7fSAuLWZsZXgtY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fSAuLWFpLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXI7fSAuLXAwLC4tbm9wYWRkaW5nLC4tbm9wYWRkaW5ncyB7cGFkZGluZzowO30gLi1wMSB7cGFkZGluZzoxcHghaW1wb3J0YW50O30gLi1wMiB7cGFkZGluZzoycHghaW1wb3J0YW50O30gLi1wMyB7cGFkZGluZzozcHghaW1wb3J0YW50O30gLi1wNCB7cGFkZGluZzo0cHghaW1wb3J0YW50O30gLi1wNSB7cGFkZGluZzo1cHghaW1wb3J0YW50O30gLi1wNiB7cGFkZGluZzo2cHghaW1wb3J0YW50O30gLi1wNyB7cGFkZGluZzo3cHghaW1wb3J0YW50O30gLi1wOCB7cGFkZGluZzo4cHghaW1wb3J0YW50O30gLi1wOSB7cGFkZGluZzo5cHghaW1wb3J0YW50O30gLi1wMTAge3BhZGRpbmc6MTBweCFpbXBvcnRhbnQ7fSAuLXAxNSB7cGFkZGluZzoxNXB4IWltcG9ydGFudDt9IC4tcDIwIHtwYWRkaW5nOjIwcHghaW1wb3J0YW50O30gLi1wMjUge3BhZGRpbmc6MjVweCFpbXBvcnRhbnQ7fSAuLXAzMCB7cGFkZGluZzozMHB4IWltcG9ydGFudDt9IC4tcDM1IHtwYWRkaW5nOjM1cHghaW1wb3J0YW50O30gLi1wNDAge3BhZGRpbmc6NDBweCFpbXBvcnRhbnQ7fSAuLXA0NSB7cGFkZGluZzo0NXB4IWltcG9ydGFudDt9IC4tcDUwIHtwYWRkaW5nOjUwcHghaW1wb3J0YW50O30gLi1wbDAge3BhZGRpbmctbGVmdDowIWltcG9ydGFudDt9IC4tcGwxIHtwYWRkaW5nLWxlZnQ6MXB4IWltcG9ydGFudDt9IC4tcGwyIHtwYWRkaW5nLWxlZnQ6MnB4IWltcG9ydGFudDt9IC4tcGwzIHtwYWRkaW5nLWxlZnQ6M3B4IWltcG9ydGFudDt9IC4tcGw0IHtwYWRkaW5nLWxlZnQ6NHB4IWltcG9ydGFudDt9IC4tcGw1IHtwYWRkaW5nLWxlZnQ6NXB4IWltcG9ydGFudDt9IC4tcGw2IHtwYWRkaW5nLWxlZnQ6NnB4IWltcG9ydGFudDt9IC4tcGw3IHtwYWRkaW5nLWxlZnQ6N3B4IWltcG9ydGFudDt9IC4tcGw4IHtwYWRkaW5nLWxlZnQ6OHB4IWltcG9ydGFudDt9IC4tcGw5IHtwYWRkaW5nLWxlZnQ6OXB4IWltcG9ydGFudDt9IC4tcGwxMCB7cGFkZGluZy1sZWZ0OjEwcHghaW1wb3J0YW50O30gLi1wbDE1IHtwYWRkaW5nLWxlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLXBsMTYge3BhZGRpbmctbGVmdDoxNnB4IWltcG9ydGFudDt9IC4tcGwxNyB7cGFkZGluZy1sZWZ0OjE3cHghaW1wb3J0YW50O30gLi1wbDIwIHtwYWRkaW5nLWxlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLXBsMjUge3BhZGRpbmctbGVmdDoyNXB4IWltcG9ydGFudDt9IC4tcGwzMCB7cGFkZGluZy1sZWZ0OjMwcHghaW1wb3J0YW50O30gLi1wbDM1IHtwYWRkaW5nLWxlZnQ6MzVweCFpbXBvcnRhbnQ7fSAuLXBsNDAge3BhZGRpbmctbGVmdDo0MHB4IWltcG9ydGFudDt9IC4tcGw0NSB7cGFkZGluZy1sZWZ0OjQ1cHghaW1wb3J0YW50O30gLi1wbDUwIHtwYWRkaW5nLWxlZnQ6NTBweCFpbXBvcnRhbnQ7fSAuLXBsNTUge3BhZGRpbmctbGVmdDo1NXB4IWltcG9ydGFudDt9IC4tcHIwIHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50O30gLi1wcjEge3BhZGRpbmctcmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tcHIyIHtwYWRkaW5nLXJpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLXByMyB7cGFkZGluZy1yaWdodDozcHghaW1wb3J0YW50O30gLi1wcjQge3BhZGRpbmctcmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tcHI1IHtwYWRkaW5nLXJpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLXByNiB7cGFkZGluZy1yaWdodDo2cHghaW1wb3J0YW50O30gLi1wcjcge3BhZGRpbmctcmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tcHI4IHtwYWRkaW5nLXJpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLXByOSB7cGFkZGluZy1yaWdodDo5cHghaW1wb3J0YW50O30gLi1wcjEwIHtwYWRkaW5nLXJpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1wcjE1IHtwYWRkaW5nLXJpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1wcjIwIHtwYWRkaW5nLXJpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1wcjI1IHtwYWRkaW5nLXJpZ2h0OjI1cHghaW1wb3J0YW50O30gLi1wcjMwIHtwYWRkaW5nLXJpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1wcjM1IHtwYWRkaW5nLXJpZ2h0OjM1cHghaW1wb3J0YW50O30gLi1wcjQwIHtwYWRkaW5nLXJpZ2h0OjQwcHghaW1wb3J0YW50O30gLi1wcjQ1IHtwYWRkaW5nLXJpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1wcjUwIHtwYWRkaW5nLXJpZ2h0OjUwcHghaW1wb3J0YW50O30gLi1wcjU1IHtwYWRkaW5nLXJpZ2h0OjU1cHghaW1wb3J0YW50O30gLi1wdDB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7fSAuLXB0MSB7cGFkZGluZy10b3A6MXB4IWltcG9ydGFudDt9IC4tcHQyIHtwYWRkaW5nLXRvcDoycHghaW1wb3J0YW50O30gLi1wdDMge3BhZGRpbmctdG9wOjNweCFpbXBvcnRhbnQ7fSAuLXB0NCB7cGFkZGluZy10b3A6NHB4IWltcG9ydGFudDt9IC4tcHQ1IHtwYWRkaW5nLXRvcDo1cHghaW1wb3J0YW50O30gLi1wdDYge3BhZGRpbmctdG9wOjZweCFpbXBvcnRhbnQ7fSAuLXB0NyB7cGFkZGluZy10b3A6N3B4IWltcG9ydGFudDt9IC4tcHQ4IHtwYWRkaW5nLXRvcDo4cHghaW1wb3J0YW50O30gLi1wdDkge3BhZGRpbmctdG9wOjlweCFpbXBvcnRhbnQ7fSAuLXB0MTAge3BhZGRpbmctdG9wOjEwcHghaW1wb3J0YW50O30gLi1wdDE1IHtwYWRkaW5nLXRvcDoxNXB4IWltcG9ydGFudDt9IC4tcHQyMCB7cGFkZGluZy10b3A6MjBweCFpbXBvcnRhbnQ7fSAuLXB0MjUge3BhZGRpbmctdG9wOjI1cHghaW1wb3J0YW50O30gLi1wdDMwIHtwYWRkaW5nLXRvcDozMHB4IWltcG9ydGFudDt9IC4tcHQzNSB7cGFkZGluZy10b3A6MzVweCFpbXBvcnRhbnQ7fSAuLXB0NDAge3BhZGRpbmctdG9wOjQwcHghaW1wb3J0YW50O30gLi1wdDQ1IHtwYWRkaW5nLXRvcDo0NXB4IWltcG9ydGFudDt9IC4tcHQ1MCB7cGFkZGluZy10b3A6NTBweCFpbXBvcnRhbnQ7fSAuLXB0NTUge3BhZGRpbmctdG9wOjU1cHghaW1wb3J0YW50O30gLi1wdDIwMCB7cGFkZGluZy10b3A6MjAwcHghaW1wb3J0YW50O30gLi1wYjAge3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50O30gLi1wYjEge3BhZGRpbmctYm90dG9tOjFweCFpbXBvcnRhbnQ7fSAuLXBiMiB7cGFkZGluZy1ib3R0b206MnB4IWltcG9ydGFudDt9IC4tcGIzIHtwYWRkaW5nLWJvdHRvbTozcHghaW1wb3J0YW50O30gLi1wYjQge3BhZGRpbmctYm90dG9tOjRweCFpbXBvcnRhbnQ7fSAuLXBiNSB7cGFkZGluZy1ib3R0b206NXB4IWltcG9ydGFudDt9IC4tcGI2IHtwYWRkaW5nLWJvdHRvbTo2cHghaW1wb3J0YW50O30gLi1wYjcge3BhZGRpbmctYm90dG9tOjdweCFpbXBvcnRhbnQ7fSAuLXBiOCB7cGFkZGluZy1ib3R0b206OHB4IWltcG9ydGFudDt9IC4tcGI5IHtwYWRkaW5nLWJvdHRvbTo5cHghaW1wb3J0YW50O30gLi1wYjEwIHtwYWRkaW5nLWJvdHRvbToxMHB4IWltcG9ydGFudDt9IC4tcGIxNSB7cGFkZGluZy1ib3R0b206MTVweCFpbXBvcnRhbnQ7fSAuLXBiMjAge3BhZGRpbmctYm90dG9tOjIwcHghaW1wb3J0YW50O30gLi1wYjI1IHtwYWRkaW5nLWJvdHRvbToyNXB4IWltcG9ydGFudDt9IC4tcGIzMCB7cGFkZGluZy1ib3R0b206MzBweCFpbXBvcnRhbnQ7fSAuLXBiNDAge3BhZGRpbmctYm90dG9tOjQwcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMwLC1yYWRpdXMwLC1yYWQwIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czEsLXJhZGl1czEsLXJhZDEge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMiwtcmFkaXVzMiwtcmFkMiB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMzLC1yYWRpdXMzLC1yYWQzIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czQsLXJhZGl1czQsLXJhZDQge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNSwtcmFkaXVzNSwtcmFkNSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM2LC1yYWRpdXM2LC1yYWQ2IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czcsLXJhZGl1czcsLXJhZDcge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzOCwtcmFkaXVzOCwtcmFkOCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM5LC1yYWRpdXM5LC1yYWQ5IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czEwLC1yYWRpdXMxMCwtcmFkMTAge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC4tbWF1dG8ge21hcmdpbjphdXRvIWltcG9ydGFudDt9IC4tbTAgLi1ub21hcmdpbnMsLi1ub21hcmdpbnttYXJnaW46MCFpbXBvcnRhbnQ7fSAuLW0xIHttYXJnaW46MXB4IWltcG9ydGFudDt9IC4tbTIge21hcmdpbjoycHghaW1wb3J0YW50O30gLi1tMyB7bWFyZ2luOjNweCFpbXBvcnRhbnQ7fSAuLW00IHttYXJnaW46NHB4IWltcG9ydGFudDt9IC4tbTUge21hcmdpbjo1cHghaW1wb3J0YW50O30gLi1tNiB7bWFyZ2luOjZweCFpbXBvcnRhbnQ7fSAuLW03IHttYXJnaW46N3B4IWltcG9ydGFudDt9IC4tbTgge21hcmdpbjo4cHghaW1wb3J0YW50O30gLi1tOSB7bWFyZ2luOjlweCFpbXBvcnRhbnQ7fSAuLW0xMCB7bWFyZ2luOjEwcHghaW1wb3J0YW50O30gLi1tMTUge21hcmdpbjoxNXB4IWltcG9ydGFudDt9IC4tbTIwIHttYXJnaW46MjBweCFpbXBvcnRhbnQ7fSAuLW0yMiB7bWFyZ2luOjIycHghaW1wb3J0YW50O30gLi1tMjUge21hcmdpbjoyNXB4IWltcG9ydGFudDt9IC4tbTVwIHttYXJnaW46NSUhaW1wb3J0YW50O30gLi1tMTBwIHttYXJnaW46MTAlIWltcG9ydGFudDt9IC4tbTE1cCB7bWFyZ2luOjE1JSFpbXBvcnRhbnQ7fSAuLW0yMHAge21hcmdpbjoyMCUhaW1wb3J0YW50O30gLi1tMjVwIHttYXJnaW46MjUlIWltcG9ydGFudDt9IC4tbWxhdXRvIHttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDt9IC4tbWwwIHttYXJnaW4tbGVmdDowIWltcG9ydGFudDt9IC4tbWwxIHttYXJnaW4tbGVmdDoxcHghaW1wb3J0YW50O30gLi1tbDIge21hcmdpbi1sZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLW1sMyB7bWFyZ2luLWxlZnQ6M3B4IWltcG9ydGFudDt9IC4tbWw0IHttYXJnaW4tbGVmdDo0cHghaW1wb3J0YW50O30gLi1tbDUge21hcmdpbi1sZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLW1sNiB7bWFyZ2luLWxlZnQ6NnB4IWltcG9ydGFudDt9IC4tbWw3IHttYXJnaW4tbGVmdDo3cHghaW1wb3J0YW50O30gLi1tbDgge21hcmdpbi1sZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLW1sOSB7bWFyZ2luLWxlZnQ6OXB4IWltcG9ydGFudDt9IC4tbWwxMCB7bWFyZ2luLWxlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLW1sMTUge21hcmdpbi1sZWZ0OjE1cHghaW1wb3J0YW50O30gLi1tbDIwIHttYXJnaW4tbGVmdDoyMHB4IWltcG9ydGFudDt9IC4tbWwyNSB7bWFyZ2luLWxlZnQ6MjVweCFpbXBvcnRhbnQ7fSAuLW1sMjcge21hcmdpbi1sZWZ0OjI3cHghaW1wb3J0YW50O30gLi1tbDMwIHttYXJnaW4tbGVmdDozMHB4IWltcG9ydGFudDt9IC4tbWw1MCB7bWFyZ2luLWxlZnQ6NTBweCFpbXBvcnRhbnQ7fSAuLW1sODAge21hcmdpbi1sZWZ0OjgwcHghaW1wb3J0YW50O30gLi1tbDEwMCB7bWFyZ2luLWxlZnQ6MTAwcHghaW1wb3J0YW50O30gLi1tbDEzMCB7bWFyZ2luLWxlZnQ6MTMwcHghaW1wb3J0YW50O30gLi1tbDE1MCB7bWFyZ2luLWxlZnQ6MTUwcHghaW1wb3J0YW50O30gLi1tbDJwIHttYXJnaW4tbGVmdDoyJSFpbXBvcnRhbnQ7fSAuLW1sM3Age21hcmdpbi1sZWZ0OjMlIWltcG9ydGFudDt9IC4tbWw1cCB7bWFyZ2luLWxlZnQ6NSUhaW1wb3J0YW50O30gLi1tbDEwcCB7bWFyZ2luLWxlZnQ6MTAlIWltcG9ydGFudDt9IC4tbWwxNXAge21hcmdpbi1sZWZ0OjE1JSFpbXBvcnRhbnQ7fSAuLW1sMjBwIHttYXJnaW4tbGVmdDoyMCUhaW1wb3J0YW50O30gLi1tbDI1cCB7bWFyZ2luLWxlZnQ6MjUlIWltcG9ydGFudDt9IC4tbXJhdXRvIHttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnQ7fSAuLW1yMCB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50O30gLi1tcjEge21hcmdpbi1yaWdodDoxcHghaW1wb3J0YW50O30gLi1tcjIge21hcmdpbi1yaWdodDoycHghaW1wb3J0YW50O30gLi1tcjMge21hcmdpbi1yaWdodDozcHghaW1wb3J0YW50O30gLi1tcjQge21hcmdpbi1yaWdodDo0cHghaW1wb3J0YW50O30gLi1tcjUge21hcmdpbi1yaWdodDo1cHghaW1wb3J0YW50O30gLi1tcjYge21hcmdpbi1yaWdodDo2cHghaW1wb3J0YW50O30gLi1tcjcge21hcmdpbi1yaWdodDo3cHghaW1wb3J0YW50O30gLi1tcjgge21hcmdpbi1yaWdodDo4cHghaW1wb3J0YW50O30gLi1tcjkge21hcmdpbi1yaWdodDo5cHghaW1wb3J0YW50O30gLi1tcjEwIHttYXJnaW4tcmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLW1yMTUge21hcmdpbi1yaWdodDoxNXB4IWltcG9ydGFudDt9IC4tbXIyMCB7bWFyZ2luLXJpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1tcjI1IHttYXJnaW4tcmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLW1yMzAge21hcmdpbi1yaWdodDozMHB4IWltcG9ydGFudDt9IC4tbXIzNSB7bWFyZ2luLXJpZ2h0OjM1cHghaW1wb3J0YW50O30gLi1tcjQwIHttYXJnaW4tcmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLW1yNDUge21hcmdpbi1yaWdodDo0NXB4IWltcG9ydGFudDt9IC4tbXI1MCB7bWFyZ2luLXJpZ2h0OjUwcHghaW1wb3J0YW50O30gLi1tcjEwMCB7bWFyZ2luLXJpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4tbXIycCB7bWFyZ2luLXJpZ2h0OjIlIWltcG9ydGFudDt9IC4tbXIzcCB7bWFyZ2luLXJpZ2h0OjMlIWltcG9ydGFudDt9IC4tbXI1cCB7bWFyZ2luLXJpZ2h0OjUlIWltcG9ydGFudDt9IC4tbXIxMHAge21hcmdpbi1yaWdodDoxMCUhaW1wb3J0YW50O30gLi1tcjE1cCB7bWFyZ2luLXJpZ2h0OjE1JSFpbXBvcnRhbnQ7fSAuLW1yMjBwIHttYXJnaW4tcmlnaHQ6MjAlIWltcG9ydGFudDt9IC4tbXIyNXAge21hcmdpbi1yaWdodDoyNSUhaW1wb3J0YW50O30gLi1tdGF1dG8ge21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnQ7fSAuLW10LTd7bWFyZ2luLXRvcDotN3B4IWltcG9ydGFudDt9IC4tbXQwe21hcmdpbi10b3A6MCFpbXBvcnRhbnQ7fSAuLW10MSB7bWFyZ2luLXRvcDoxcHghaW1wb3J0YW50O30gLi1tdDIge21hcmdpbi10b3A6MnB4IWltcG9ydGFudDt9IC4tbXQzIHttYXJnaW4tdG9wOjNweCFpbXBvcnRhbnQ7fSAuLW10NCB7bWFyZ2luLXRvcDo0cHghaW1wb3J0YW50O30gLi1tdDUge21hcmdpbi10b3A6NXB4IWltcG9ydGFudDt9IC4tbXQ2IHttYXJnaW4tdG9wOjZweCFpbXBvcnRhbnQ7fSAuLW10NyB7bWFyZ2luLXRvcDo3cHghaW1wb3J0YW50O30gLi1tdDgge21hcmdpbi10b3A6OHB4IWltcG9ydGFudDt9IC4tbXQ5IHttYXJnaW4tdG9wOjlweCFpbXBvcnRhbnQ7fSAuLW10MTAge21hcmdpbi10b3A6MTBweCFpbXBvcnRhbnQ7fSAuLW10MTEge21hcmdpbi10b3A6MTFweCFpbXBvcnRhbnQ7fSAuLW10MTIge21hcmdpbi10b3A6MTJweCFpbXBvcnRhbnQ7fSAuLW10MTMge21hcmdpbi10b3A6MTNweCFpbXBvcnRhbnQ7fSAuLW10MTQge21hcmdpbi10b3A6MTRweCFpbXBvcnRhbnQ7fSAuLW10MTUge21hcmdpbi10b3A6MTVweCFpbXBvcnRhbnQ7fSAuLW10MjAge21hcmdpbi10b3A6MjBweCFpbXBvcnRhbnQ7fSAuLW10MjUge21hcmdpbi10b3A6MjVweCFpbXBvcnRhbnQ7fSAuLW10Mjcge21hcmdpbi10b3A6MjdweCFpbXBvcnRhbnQ7fSAuLW10MzAge21hcmdpbi10b3A6MzBweCFpbXBvcnRhbnQ7fSAuLW10MzUge21hcmdpbi10b3A6MzVweCFpbXBvcnRhbnQ7fSAuLW10NDAge21hcmdpbi10b3A6NDBweCFpbXBvcnRhbnQ7fSAuLW10NTAge21hcmdpbi10b3A6NTBweCFpbXBvcnRhbnQ7fSAuLW10MTE1IHttYXJnaW4tdG9wOjExNXB4IWltcG9ydGFudDt9IC4tbXQyMDAge21hcmdpbi10b3A6MjAwcHghaW1wb3J0YW50O30gLi1tYmF1dG8ge21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnQ7fSAuLW1iMCB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudDt9IC4tbWIxIHttYXJnaW4tYm90dG9tOjFweCFpbXBvcnRhbnQ7fSAuLW1iMiB7bWFyZ2luLWJvdHRvbToycHghaW1wb3J0YW50O30gLi1tYjMge21hcmdpbi1ib3R0b206M3B4IWltcG9ydGFudDt9IC4tbWI0IHttYXJnaW4tYm90dG9tOjRweCFpbXBvcnRhbnQ7fSAuLW1iNSB7bWFyZ2luLWJvdHRvbTo1cHghaW1wb3J0YW50O30gLi1tYjYge21hcmdpbi1ib3R0b206NnB4IWltcG9ydGFudDt9IC4tbWI3IHttYXJnaW4tYm90dG9tOjdweCFpbXBvcnRhbnQ7fSAuLW1iOCB7bWFyZ2luLWJvdHRvbTo4cHghaW1wb3J0YW50O30gLi1tYjkge21hcmdpbi1ib3R0b206OXB4IWltcG9ydGFudDt9IC4tbWIxMCB7bWFyZ2luLWJvdHRvbToxMHB4IWltcG9ydGFudDt9IC4tbWIxNSB7bWFyZ2luLWJvdHRvbToxNXB4IWltcG9ydGFudDt9IC4tbWIyMCB7bWFyZ2luLWJvdHRvbToyMHB4IWltcG9ydGFudDt9IC4tbWIyNSB7bWFyZ2luLWJvdHRvbToyNXB4IWltcG9ydGFudDt9IC4tbWIzMCB7bWFyZ2luLWJvdHRvbTozMHB4IWltcG9ydGFudDt9IC4tbWI1MCB7bWFyZ2luLWJvdHRvbTo1MHB4IWltcG9ydGFudDt9IC4tdG9wLTEwLCAuLXQtMTAge3RvcDotMTBweCFpbXBvcnRhbnQ7fSAuLXRvcDAsIC4tdDAge3RvcDowcHghaW1wb3J0YW50O30gLi10b3AxLCAuLXQxIHt0b3A6MXB4IWltcG9ydGFudDt9IC4tdG9wMiwgLi10MiB7dG9wOjJweCFpbXBvcnRhbnQ7fSAuLXRvcDMsIC4tdDMge3RvcDozcHghaW1wb3J0YW50O30gLi10b3A0LCAuLXQ0IHt0b3A6NHB4IWltcG9ydGFudDt9IC4tdG9wNSwgLi10NSB7dG9wOjVweCFpbXBvcnRhbnQ7fSAuLXRvcDYsIC4tdDYge3RvcDo2cHghaW1wb3J0YW50O30gLi10b3A3LCAuLXQ3IHt0b3A6N3B4IWltcG9ydGFudDt9IC4tdG9wOCwgLi10OCB7dG9wOjhweCFpbXBvcnRhbnQ7fSAuLXRvcDksIC4tdDkge3RvcDo5cHghaW1wb3J0YW50O30gLi10b3AxMCwgLi10MTAge3RvcDoxMHB4IWltcG9ydGFudDt9IC4tdG9wMTUsIC4tdDE1IHt0b3A6MTVweCFpbXBvcnRhbnQ7fSAuLXRvcDIwLCAuLXQyMCB7dG9wOjIwcHghaW1wb3J0YW50O30gLi10b3AyNSwgLi10MjV7dG9wOjI1cHghaW1wb3J0YW50O30gLi10b3AzMCwgLi10MzAge3RvcDozMHB4IWltcG9ydGFudDt9IC4tdG9wMzUsIC4tdDM1IHt0b3A6MzVweCFpbXBvcnRhbnQ7fSAuLXRvcDQwLCAuLXQ0MCB7dG9wOjQwcHghaW1wb3J0YW50O30gLi10b3A0NSwgLi10NDUge3RvcDo0NXB4IWltcG9ydGFudDt9IC4tdG9wNTAsIC4tdDUwIHt0b3A6NTBweCFpbXBvcnRhbnQ7fSAuLXRvcDEwMCwgLi10MTAwIHt0b3A6MTAwcHghaW1wb3J0YW50O30gLi10b3AyMDAsIC4tdDIwMCB7dG9wOjIwMHB4IWltcG9ydGFudDt9IC4tdG9wNXAsIC4tdDVwIHt0b3A6NSUhaW1wb3J0YW50O30gLi10b3AxMHAsIC4tdDEwcCB7dG9wOjEwJSFpbXBvcnRhbnQ7fSAuLXRvcDE1cCwgLi10MTVwIHt0b3A6MTUlIWltcG9ydGFudDt9IC4tdG9wMjBwLCAuLXQyMHAge3RvcDoyMCUhaW1wb3J0YW50O30gLi10b3AyNXAsIC4tdDI1cCB7dG9wOjI1JSFpbXBvcnRhbnQ7fSAuLXRvcDUwcCwgLi10NTBwIHt0b3A6NTAlIWltcG9ydGFudDt9IC4tdG9wMTAwcCwgLi10MTAwcCB7dG9wOjEwMCUhaW1wb3J0YW50O30gLi1sZWZ0MCwgLi1sMCB7bGVmdDowcHghaW1wb3J0YW50O30gLi1sZWZ0MSwgLi1sMSB7bGVmdDoxcHghaW1wb3J0YW50O30gLi1sZWZ0MiwgLi1sMiB7bGVmdDoycHghaW1wb3J0YW50O30gLi1sZWZ0MywgLi1sMyB7bGVmdDozcHghaW1wb3J0YW50O30gLi1sZWZ0NCwgLi1sNCB7bGVmdDo0cHghaW1wb3J0YW50O30gLi1sZWZ0NSwgLi1sNSB7bGVmdDo1cHghaW1wb3J0YW50O30gLi1sZWZ0NiwgLi1sNiB7bGVmdDo2cHghaW1wb3J0YW50O30gLi1sZWZ0NywgLi1sNyB7bGVmdDo3cHghaW1wb3J0YW50O30gLi1sZWZ0OCwgLi1sOCB7bGVmdDo4cHghaW1wb3J0YW50O30gLi1sZWZ0OSwgLi1sOSB7bGVmdDo5cHghaW1wb3J0YW50O30gLi1sZWZ0MTAsIC4tbDEwIHtsZWZ0OjEwcHghaW1wb3J0YW50O30gLi1sZWZ0MTUsIC4tbDE1IHtsZWZ0OjE1cHghaW1wb3J0YW50O30gLi1sZWZ0MjAsIC4tbDIwIHtsZWZ0OjIwcHghaW1wb3J0YW50O30gLi1sZWZ0MjUsIC4tbDI1e2xlZnQ6MjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQzMCwgLi1sMzAge2xlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLWxlZnQzNSwgLi1sMzUge2xlZnQ6MzVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0MCwgLi1sNDAge2xlZnQ6NDBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0NSwgLi1sNDUge2xlZnQ6NDVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1MCwgLi1sNTAge2xlZnQ6NTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1NSwgLi1sNTUge2xlZnQ6NTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2MCwgLi1sNjAge2xlZnQ6NjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2NSwgLi1sNjUge2xlZnQ6NjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3MCwgLi1sNzAge2xlZnQ6NzBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3NSwgLi1sNzUge2xlZnQ6NzVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4MCwgLi1sODAge2xlZnQ6ODBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4NSwgLi1sODUge2xlZnQ6ODVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5MCwgLi1sOTAge2xlZnQ6OTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5NSwgLi1sOTUge2xlZnQ6OTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQxMDAsIC4tbDEwMCB7bGVmdDoxMDBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxNTAsIC4tbDE1MCB7bGVmdDoxNTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyMDAsIC4tbDIwMCB7bGVmdDoyMDBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyNTAsIC4tbDI1MCB7bGVmdDoyNTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQzMDAsIC4tbDMwMCB7bGVmdDozMDBweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1cCwgLi1sNXAge2xlZnQ6NSUhaW1wb3J0YW50O30gLi1sZWZ0MTBwLCAuLWwxMHAge2xlZnQ6MTAlIWltcG9ydGFudDt9IC4tbGVmdDE1cCwgLi1sMTVwIHtsZWZ0OjE1JSFpbXBvcnRhbnQ7fSAuLWxlZnQyMHAsIC4tbDIwcCB7bGVmdDoyMCUhaW1wb3J0YW50O30gLi1sZWZ0MjVwLCAuLWwyNXAge2xlZnQ6MjUlIWltcG9ydGFudDt9IC4tbGVmdDQwcCwgLi1sNDBwIHtsZWZ0OjQwJSFpbXBvcnRhbnQ7fSAuLWxlZnQ1MHAsIC4tbDUwcCB7bGVmdDo1MCUhaW1wb3J0YW50O30gLi1sZWZ0MTAwcCwgLi1sMTAwcCB7bGVmdDoxMDAlIWltcG9ydGFudDt9IC4tcmlnaHQwLCAuLXIwIHtyaWdodDowcHghaW1wb3J0YW50O30gLi1yaWdodDEsIC4tcjEge3JpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MiwgLi1yMiB7cmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tcmlnaHQzLCAuLXIzIHtyaWdodDozcHghaW1wb3J0YW50O30gLi1yaWdodDQsIC4tcjQge3JpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NSwgLi1yNSB7cmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ2LCAuLXI2IHtyaWdodDo2cHghaW1wb3J0YW50O30gLi1yaWdodDcsIC4tcjcge3JpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0OCwgLi1yOCB7cmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tcmlnaHQ5LCAuLXI5IHtyaWdodDo5cHghaW1wb3J0YW50O30gLi1yaWdodDEwLCAuLXIxMCB7cmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTUsIC4tcjE1IHtyaWdodDoxNXB4IWltcG9ydGFudDt9IC4tcmlnaHQyMCwgLi1yMjAge3JpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1yaWdodDI1LCAuLXIyNSB7cmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MzAsIC4tcjMwIHtyaWdodDozMHB4IWltcG9ydGFudDt9IC4tcmlnaHQzNSwgLi1yMzUge3JpZ2h0OjM1cHghaW1wb3J0YW50O30gLi1yaWdodDQwLCAuLXI0MCB7cmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NDUsIC4tcjQ1IHtyaWdodDo0NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ1MCwgLi1yNTAge3JpZ2h0OjUwcHghaW1wb3J0YW50O30gLi1yaWdodDU1LCAuLXI1NSB7cmlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NjAsIC4tcjYwIHtyaWdodDo2MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ2NSwgLi1yNjUge3JpZ2h0OjY1cHghaW1wb3J0YW50O30gLi1yaWdodDcwLCAuLXI3MCB7cmlnaHQ6NzBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NzUsIC4tcjc1IHtyaWdodDo3NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ4MCwgLi1yODAge3JpZ2h0OjgwcHghaW1wb3J0YW50O30gLi1yaWdodDg1LCAuLXI4NSB7cmlnaHQ6ODVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0OTAsIC4tcjkwIHtyaWdodDo5MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ5NSwgLi1yOTUge3JpZ2h0Ojk1cHghaW1wb3J0YW50O30gLi1yaWdodDEwMCwgLi1yMTAwIHtyaWdodDoxMDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTUwLCAuLXIxNTAge3JpZ2h0OjE1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQyMDAsIC4tcjIwMCB7cmlnaHQ6MjAwcHghaW1wb3J0YW50O30gLi1yaWdodDI1MCwgLi1yMjUwIHtyaWdodDoyNTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NXAsIC4tcjVwIHtyaWdodDo1JSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTBwLCAuLXIxMHAge3JpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTVwLCAuLXIxNXAge3JpZ2h0OjE1JSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjBwLCAuLXIyMHAge3JpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjVwLCAuLXIyNXAge3JpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTBwLCAuLXI1MHAge3JpZ2h0OjUwJSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAwcCwgLi1yMTAwcCB7cmlnaHQ6MTAwJSFpbXBvcnRhbnQ7fSAuLXotaW5kZXg5OXt6LWluZGV4Ojk5IWltcG9ydGFudDt9IC4tei1pbmRleDEwMHt6LWluZGV4OjEwMCFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDF7ei1pbmRleDoxMDEhaW1wb3J0YW50O30gLi16LWluZGV4MTAwMSwgLnppbmRleDEwMDF7IHotaW5kZXg6MTAwMSFpbXBvcnRhbnQ7IH0gLi16LWluZGV4MzYwMDEsIC56aW5kZXgzNjAwMXsgei1pbmRleDozNjAwMSFpbXBvcnRhbnQ7IH0gLi1uby1ib3JkZXItc3BhY2luZ3sgYm9yZGVyLXNwYWNpbmc6MCFpbXBvcnRhbnQ7IH0gLi10YWJsZXsgY2VsbHBhZGRpbmc6MCFpbXBvcnRhbnQ7IGNlbGxzcGFjaW5nOjAhaW1wb3J0YW50OyBib3JkZXI6MCFpbXBvcnRhbnQ7IH0gdGFibGUuLXRhYmxlIHRoZWFkIHRoIHsgYmFja2dyb3VuZDojYzNkOWZmIWltcG9ydGFudDsgfSB0YWJsZS4tdGFibGUgdHIgdGgsIHRhYmxlLi10YWJsZSB0ciB0ZCB7IHBhZGRpbmc6NHB4IDEwcHggNHB4IDVweCFpbXBvcnRhbnQ7IH0gdHIuLWJvcmRlci1ib3R0b20gdGQsIHRyLi1ib3JkZXItYm90dG9tIHRoIHsgYm9yZGVyLWJvdHRvbToxcHQgc29saWQgYmxhY2shaW1wb3J0YW50OyB9IC13aGl0ZS1zcGFjZS1ub3dyYXAge3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnQ7fSAuLWN1cnNvci1hdXRvIHsgY3Vyc29yOmF1dG87IH0gLi1jdXJzb3ItZGVmYXVsdCB7IGN1cnNvcjpkZWZhdWx0OyB9IC4tY3Vyc29yLW5vbmUgeyBjdXJzb3I6bm9uZTsgfSAuLWN1cnNvci1jb250ZXh0LW1lbnUgeyBjdXJzb3I6Y29udGV4dC1tZW51OyB9IC4tY3Vyc29yLWhlbHAgeyBjdXJzb3I6aGVscDsgfSAuLWN1cnNvci1wb2ludGVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLi1jdXJzb3ItcHJvZ3Jlc3MgeyBjdXJzb3I6cHJvZ3Jlc3M7IH0gLi1jdXJzb3Itd2FpdCB7IGN1cnNvcjp3YWl0OyB9IC4tY3Vyc29yLWNlbGwgeyBjdXJzb3I6Y2VsbDsgfSAuLWN1cnNvci1jcm9zc2hhaXIgeyBjdXJzb3I6Y3Jvc3NoYWlyOyB9IC4tY3Vyc29yLXRleHQgeyBjdXJzb3I6dGV4dDsgfSAuLWN1cnNvci12ZXJ0aWNhbC10ZXh0IHsgY3Vyc29yOnZlcnRpY2FsLXRleHQ7IH0gLi1jdXJzb3ItYWxpYXMgeyBjdXJzb3I6YWxpYXM7IH0gLi1jdXJzb3ItY29weSB7IGN1cnNvcjpjb3B5OyB9IC4tY3Vyc29yLW1vdmUgeyBjdXJzb3I6bW92ZTsgfSAuLWN1cnNvci1uby1kcm9wIHsgY3Vyc29yOm5vLWRyb3A7IH0gLi1jdXJzb3Itbm90LWFsbG93ZWQgeyBjdXJzb3I6bm90LWFsbG93ZWQ7IH0gLi1jdXJzb3ItYWxsLXNjcm9sbCB7IGN1cnNvcjphbGwtc2Nyb2xsOyB9IC4tY3Vyc29yLWNvbC1yZXNpemUgeyBjdXJzb3I6Y29sLXJlc2l6ZTsgfSAuLWN1cnNvci1yb3ctcmVzaXplIHsgY3Vyc29yOnJvdy1yZXNpemU7IH0gLi1jdXJzb3Itbi1yZXNpemUgeyBjdXJzb3I6bi1yZXNpemU7IH0gLi1jdXJzb3ItZS1yZXNpemUgeyBjdXJzb3I6ZS1yZXNpemU7IH0gLi1jdXJzb3Itcy1yZXNpemUgeyBjdXJzb3I6cy1yZXNpemU7IH0gLi1jdXJzb3Itdy1yZXNpemUgeyBjdXJzb3I6dy1yZXNpemU7IH0gLi1jdXJzb3ItbnMtcmVzaXplIHsgY3Vyc29yOm5zLXJlc2l6ZTsgfSAuLWN1cnNvci1ldy1yZXNpemUgeyBjdXJzb3I6ZXctcmVzaXplOyB9IC4tY3Vyc29yLW5lLXJlc2l6ZSB7IGN1cnNvcjpuZS1yZXNpemU7IH0gLi1jdXJzb3ItbnctcmVzaXplIHsgY3Vyc29yOm53LXJlc2l6ZTsgfSAuLWN1cnNvci1zZS1yZXNpemUgeyBjdXJzb3I6c2UtcmVzaXplOyB9IC4tY3Vyc29yLXN3LXJlc2l6ZSB7IGN1cnNvcjpzdy1yZXNpemU7IH0gLi1jdXJzb3ItbmVzdy1yZXNpemUgeyBjdXJzb3I6bmVzdy1yZXNpemU7IH0gLi1jdXJzb3ItbndzZS1yZXNpemUgeyBjdXJzb3I6bndzZS1yZXNpemU7IH0gLi1mb250LXNpemUwLCAuLWZzMHsgZm9udC1zaXplOjAhaW1wb3J0YW50O30gLi1mb250LXNpemUxLCAuLWZzMXsgZm9udC1zaXplOjFweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIsIC4tZnMyeyBmb250LXNpemU6MnB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplMywgLi1mczN7IGZvbnQtc2l6ZTozcHghaW1wb3J0YW50O30gLi1mb250LXNpemU0LCAuLWZzNHsgZm9udC1zaXplOjRweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTUsIC4tZnM1eyBmb250LXNpemU6NXB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNiwgLi1mczZ7IGZvbnQtc2l6ZTo2cHghaW1wb3J0YW50O30gLi1mb250LXNpemU3LCAuLWZzN3sgZm9udC1zaXplOjdweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTgsIC4tZnM4eyBmb250LXNpemU6MC41cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTksIC4tZnM5eyBmb250LXNpemU6MC41NjNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTAsIC4tZnMxMHsgZm9udC1zaXplOjAuNjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTExLCAuLWZzMTF7IGZvbnQtc2l6ZTowLjY4OHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMiwgLi1mczEyeyBmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMywgLi1mczEzeyBmb250LXNpemU6MC44MTNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTQsIC4tZnMxNHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE1LCAuLWZzMTV7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNiwgLi1mczE2eyBmb250LXNpemU6MXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNywgLi1mczE3eyBmb250LXNpemU6MS4wNjNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTgsIC4tZnMxOHsgZm9udC1zaXplOjEuMTI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE5LCAuLWZzMTl7IGZvbnQtc2l6ZToxLjE4OHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMCwgLi1mczIweyBmb250LXNpemU6MS4yNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMSwgLi1mczIxeyBmb250LXNpemU6MS4zMTNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjIsIC4tZnMyMnsgZm9udC1zaXplOjEuMzc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIzLCAuLWZzMjN7IGZvbnQtc2l6ZToxLjQzOHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNCwgLi1mczI0eyBmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI1LCAuLWZzMjV7IGZvbnQtc2l6ZToxLjU2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNiwgLi1mczI2eyBmb250LXNpemU6MS42MjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjcsIC4tZnMyN3sgZm9udC1zaXplOjEuNjg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI4LCAuLWZzMjh7IGZvbnQtc2l6ZToxLjc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI5LCAuLWZzMjl7IGZvbnQtc2l6ZToxLjgxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMCwgLi1mczMweyBmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzEsIC4tZnMzMXsgZm9udC1zaXplOjEuOTM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMyLCAuLWZzMzJ7IGZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMzLCAuLWZzMzN7IGZvbnQtc2l6ZToyLjA2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNCwgLi1mczM0eyBmb250LXNpemU6Mi4xMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzUsIC4tZnMzNXsgZm9udC1zaXplOjIuMTg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM2LCAuLWZzMzZ7IGZvbnQtc2l6ZToyLjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM3LCAuLWZzMzd7IGZvbnQtc2l6ZToyLjMxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzOCwgLi1mczM4eyBmb250LXNpemU6Mi4zNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzksIC4tZnMzOXsgZm9udC1zaXplOjIuNDM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTQwLCAuLWZzNDB7IGZvbnQtc2l6ZToyLjVyZW0gIWltcG9ydGFudDt9IC4tcmVkLWxpbmUtaDM1eyBoZWlnaHQ6MzVweDsgbWFyZ2luLWJvdHRvbTotMzVweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMjVweDsgfSAjYnJlYWRjcnVtYnN7IGZvbnQtc2l6ZToxcmVtIDsgbWFyZ2luLWxlZnQ6MTBweDsgbWFyZ2luLXRvcDo4cHg7IG1hcmdpbi1ib3R0b206MTVweDsgY29sb3I6Izc1NzU3NTsgfSAuVXNlZFZkcDJNb2JpbGUgI2JyZWFkY3J1bWJzeyBmb250LXNpemU6MC45cmVtOyBjb2xvcjojMjIyMjIyOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjEwcHg7IG1hcmdpbjowOyBsaW5lLWhlaWdodDoxLjI1cmVtOyB9ICNicmVhZGNydW1icyBheyBjb2xvcjojNzU3NTc1OyB9ICNjYXJwcm9vZl9tYWluLmNhcnByb29mX21haW57IHdpZHRoOjM0MHB4OyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwYWRkaW5nOjIwcHg7IGRpc3BsYXk6bm9uZTsgei1pbmRleDo5OTk5OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJvcmRlci1yYWRpdXM6NXB4OyBwb3NpdGlvbjpmaXhlZDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7IGxlZnQ6NTAlOyB0b3A6NTAlOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZkNsb3NlQnV0dG9ueyBmbG9hdDpyaWdodDsgdG9wOjA7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiB7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6I2ZmZjsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IFVMeyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgVUwgTEkgeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDAgNXB4IDA7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2ZpZWxkeyBtYXJnaW4tYm90dG9tOjdweDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNZXNzYWdleyBmb250LXNpemU6MXJlbTsgY29sb3I6IzAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nLWJvdHRvbToxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNpbm5lclBhZ2VEaXZ7IGRpc3BsYXk6dGFibGU7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2xhYmVseyBmb250LXNpemU6MXJlbTsgY29sb3I6IzY2NjY2NjsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6MTAwJTsgbGluZS1oZWlnaHQ6MjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9pbnB1dHsgZm9udC1zaXplOjFyZW07IHBhZGRpbmc6NXB4OyBib3JkZXI6MXB4IHNvbGlkICNiOWJkYzE7IHdpZHRoOjEwMCU7IGNvbG9yOiM3OTc5Nzk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXItcmFkaXVzOjVweDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfaW5wdXQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGNEY0RjQ7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgfSAjY2FycHJvb2ZfbWFpbiAucGhvbmVJbnB1dHsgZm9udC1zaXplOjFyZW07IHBhZGRpbmc6NXB4OyBib3JkZXI6MXB4IHNvbGlkICNiOWJkYzE7IHdpZHRoOjQ3cHg7IG1hcmdpbi1yaWdodDo1cHg7IGNvbG9yOiM3OTc5Nzk7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICNjYXJwcm9vZl9tYWluIC5waG9uZUlucHV0OmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjojRjRGNEY0OyBjb2xvcjojMDAwMDAwOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b25JRSB7IGJvcmRlcjoxcHggc29saWQgI0M4M0Y0MTsgbWFyZ2luOjEwcHggMTBweCAxMHB4IDA7IHBhZGRpbmc6M3B4IDEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBmbG9hdDpyaWdodDsgd2lkdGg6NjBweDsgY29sb3I6I2ZmZjsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci10b3AtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLXJpZ2h0LWNvbG9yOiNDODNGNDE7IGJvcmRlci1ib3R0b20tY29sb3I6I0M4M0Y0MTsgYm9yZGVyLWxlZnQtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLXRvcC13aWR0aDoxcHg7IGJvcmRlci1yaWdodC13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6MXB4OyBib3JkZXItbGVmdC13aWR0aDoxcHg7IGJvcmRlci10b3Atc3R5bGU6c29saWQ7IGJvcmRlci1yaWdodC1zdHlsZTpzb2xpZDsgYm9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDsgYm9yZGVyLWxlZnQtc3R5bGU6c29saWQ7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjhweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHg7IGJveC1zaGFkb3c6MHB4IDJweCAzcHggIzY2NjsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6c2Nyb2xsOyBiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246MCAwOyBiYWNrZ3JvdW5kLXNpemU6YXV0bzsgYmFja2dyb3VuZC1vcmlnaW46cGFkZGluZy1ib3g7IGJhY2tncm91bmQtY2xpcDpib3JkZXItYm94OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMDAsIDYzLCA2NSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfYnV0dG9uSUVIb3ZlciB7IGJhY2tncm91bmQtY29sb3I6I0M4M0Y0MTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfYnV0dG9uIHsgZm9udC1zaXplOjEuMnJlbTsgZmxvYXQ6cmlnaHQ7IG1hcmdpbjoyNXB4IDAgMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxcmVtOyBwYWRkaW5nOjEwcHggMTVweDsgY3Vyc29yOnBvaW50ZXI7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXNoYWRvdzowIC0xcHggMXB4ICM2NDc5OWU7IGJhY2tncm91bmQ6I2JiMDAwMzsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNDODNGNDEgMCUsICNiYjAwMDMgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAlIDAlLCAwJSAxMDAlLCBmcm9tKCNDODNGNDEpLCB0bygjYmIwMDAzKSk7IGJvcmRlcjoxcHggc29saWQgIzVjNmY5MTsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfYnV0dG9uOmhvdmVyIHsgYmFja2dyb3VuZDojQzgzRjQxOyBjdXJzb3I6cG9pbnRlcjsgfSAjY2FycHJvb2ZfZGlhbG9nLW92ZXJsYXkgeyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpOyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgYm90dG9tOjA7IHotaW5kZXg6OTk5ODsgZGlzcGxheTpub25lOyB9IC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wIHsgbWFyZ2luLWxlZnQ6LTE1cHg7IGhlaWdodDo1NnB4OyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbi10b3A6LTEwcHg7IGZsb2F0OmxlZnQ7IH0gLnByZVByb2Nlc3Nvckh0bWxDYXJQb29mQVBJcmVwb3J0LmNhcnByb29mLWJhZGdlLmRlc2t0b3AsIC5wcmVQcm9jZXNzb3JDYXJQb29mQVBJcmVwb3J0VjUuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCwgLnByZVByb2Nlc3Nvckh0bWxDYXJQcm9vZkRlZmF1bHQuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCB7IHdpZHRoOjEwNnB4OyBtYXJnaW46MnB4IDVweCAwIDA7IGZsb2F0OmxlZnQ7IH0gI2NhcnByb29mX21haW4gaW1nIHsgd2lkdGg6NTAlOyBmbG9hdDpsZWZ0OyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjAgMCAxNXB4IDA7IH0gI2FzUG9wVXB7IGJhY2tncm91bmQ6I2ZmZmZmZjsgd2lkdGg6NjAwcHg7IHBhZGRpbmc6MzBweDsgY29sb3I6IzAwMDAwMDsgei1pbmRleDoxMDAwMDIxOyB9ICNhc1BvcFVwIC5wb3B1cC1wb2xpY3kgeyBtaW4taGVpZ2h0OjEwMHB4OyBtYXgtaGVpZ2h0OjE1MHB4OyBvdmVyZmxvdy15OmF1dG87IH0gLnBvcHVwLXBvbGljeSBhIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6Ymx1ZTsgfSAjYXNQb3BVcCAuYXNUaXRsZXsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6OyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gI2FzUG9wVXAgLmJ0bkV4cGxpY2l0eyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6NzBweDsgd2lkdGg6MTAwcHg7IH0gI2FzUG9wVXAgLmJ0bkltcGxpY2l0eyBmbG9hdDpyaWdodDsgd2lkdGg6MTAwcHg7IHBhZGRpbmctcmlnaHQ6NzBweDsgfSAjYXNQdXJjaGFzZUludGVudC5yZXZlYWwtbW9kYWwgc3Bhbi5qcVRyYW5zZm9ybVJhZGlvV3JhcHBlcnsgcGFkZGluZzowOyBtYXJnaW46NnB4IDRweCAwOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5wb3B1cC1wb2xpY3kgeyBtYXgtaGVpZ2h0OjE3MHB4OyBvdmVyZmxvdy15OmF1dG87IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzUElUaXRsZXsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS41NjNyZW0gOyBtYXJnaW4tYm90dG9tOjA7IHBhZGRpbmctYm90dG9tOjEwcHg7IGRpc3BsYXk6YmxvY2s7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpVGV4dHsgY2xlYXI6Ym90aDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206MTBweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zeyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6NXB4OyBtYXJnaW4tYm90dG9tOjNweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zIGxpIHsgcGFkZGluZzoycHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9ucyBsaXsgY2xlYXI6Ym90aDsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgbGkgbGFiZWx7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5idXR0b25EZWZhdWx0Q29sb3IgeyBtYXJnaW46MCBhdXRvIDVweDsgZGlzcGxheTpibG9jazsgY2xlYXI6Ym90aDsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgeyBsaXN0LXN0eWxlOmluc2lkZSBub25lIG5vbmU7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBzID4gbGl7IGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjYmJiYmJiOyBib3JkZXItd2lkdGg6MCAxcHggMXB4IDA7IHBhZGRpbmc6MTVweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXN5ZXNubyB7IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6MTBweDsgd2lkdGg6OTBweDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXN5ZXN7IHBhZGRpbmctbGVmdDo5MHB4OyB3aWR0aDo3MHB4OyB9IC5jb25zZW50LmRpc2NsYWltZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjpibHVlOyBhbGlnbi1zZWxmOmNlbnRlcjsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBjdXJzb3I6aGVscDsgfSAuY3VzdG9tNV9sZWZ0LCAuY3VzdG9tMjVfbGVmdCwgLmN1c3RvbTM1X2xlZnQsIC5jdXN0b200NV9sZWZ0LCAuY3RhX3ByaWNlLC5jdGFfY3JlZGl0LC5jdGFfdGVzdERyaXZlLC5jdGFfZXZhbCwuY3RhX3N2Y3Byb21vLC5jdGFfc2VydmljZSwuY3RhX3BhcnRzLC5jdGFfdGlyZXMgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjYxcHg7IHBhZGRpbmc6MCAxNXB4IDAgNjBweDsgZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY3Vyc29yOnBvaW50ZXI7IGNvbG9yOiMxOTE5MTk7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JveDI1LnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3A7IGJhY2tncm91bmQtc2l6ZTo1ODlweCA1NTBweDsgfSAuY3RhX3ByaWNlLmFsdDpob3ZlciwgLmN0YV9jcmVkaXQuYWx0OmhvdmVyLCAuY3RhX3Rlc3REcml2ZS5hbHQ6aG92ZXIsIC5jdGFfZXZhbC5hbHQ6aG92ZXIsIC5jdGFfc2VydmljZS5hbHQ6aG92ZXIsIC5jdGFfcGFydHMuYWx0OmhvdmVyLCAuY3RhX3RpcmVzLmFsdDpob3ZlciwgLmN0YV9zdmNwcm9tby5hbHQ6aG92ZXIgeyBjb2xvcjojMTkxOTE5OyB9IC5jdXN0b201NV9sZWZ0LCAuY3VzdG9tMjU1X2xlZnQsIC5jdXN0b20zNTVfbGVmdCwgLmN1c3RvbTQ1NV9sZWZ0LCAuY3RhX3ByaWNlLmFsdCwuY3RhX3ByaWNlOmhvdmVyLCAuY3RhX2NyZWRpdC5hbHQsIC5jdGFfY3JlZGl0OmhvdmVyLCAuY3RhX3Rlc3REcml2ZS5hbHQsIC5jdGFfdGVzdERyaXZlOmhvdmVyLCAuY3RhX2V2YWwuYWx0LCAuY3RhX2V2YWw6aG92ZXIsIC5jdGFfc2VydmljZS5hbHQsIC5jdGFfc2VydmljZTpob3ZlciwgLmN0YV9wYXJ0cy5hbHQsIC5jdGFfcGFydHM6aG92ZXIsIC5jdGFfdGlyZXMuYWx0LCAuY3RhX3RpcmVzOmhvdmVyLCAuY3RhX3N2Y3Byb21vLmFsdCwgLmN0YV9zdmNwcm9tbzpob3ZlciB7IGNvbG9yOiNGRkZGRkY7IH0gLmN0YV9wcmljZSwgLmN0YV9wcmljZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsgfSAuY3RhX3ByaWNlLmFsdCwgLmN0YV9wcmljZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IDA7IH0gLmN0YV9jcmVkaXQsIC5jdGFfY3JlZGl0LmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNjdweDsgfSAuY3RhX2NyZWRpdC5hbHQsIC5jdGFfY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTY3cHg7IH0gLmN0YV90ZXN0RHJpdmUsIC5jdGFfdGVzdERyaXZlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMTM1cHg7IH0gLmN0YV90ZXN0RHJpdmUuYWx0LCAuY3RhX3Rlc3REcml2ZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0xMzVweDsgfSAuY3RhX2V2YWwsIC5jdGFfZXZhbC5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTIwNHB4OyB9IC5jdGFfZXZhbC5hbHQsIC5jdGFfZXZhbDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0yMDRweDsgfSAuY3RhX3N2Y3Byb21vLCAuY3RhX3N2Y3Byb21vLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMjczcHg7IH0gLmN0YV9zdmNwcm9tby5hbHQsIC5jdGFfc3ZjcHJvbW86aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtMjczcHg7IH0gLmN0YV9zZXJ2aWNlLCAuY3RhX3NlcnZpY2UuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0zNDFweDsgfSAuY3RhX3NlcnZpY2UuYWx0LCAuY3RhX3NlcnZpY2U6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtMzQxcHg7IH0gLmN0YV9wYXJ0cywgLmN0YV9wYXJ0cy5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTQxMHB4OyB9IC5jdGFfcGFydHMuYWx0LCAuY3RhX3BhcnRzOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTQxMHB4OyB9IC5jdGFfdGlyZXMsIC5jdGFfdGlyZXMuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC00ODJweDsgfSAuY3RhX3RpcmVzLmFsdCwgLmN0YV90aXJlczpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC00ODJweDsgfSAuY3RhX3NlcnZpY2UuaGlkZV90ZXh0LCAuY3RhX3BhcnRzLmhpZGVfdGV4dCwgLmN0YV90aXJlcy5oaWRlX3RleHQsIC5jdGFfcHJpY2UuaGlkZV90ZXh0LCAuY3RhX2NyZWRpdC5oaWRlX3RleHQsIC5jdGFfdGVzdERyaXZlLmhpZGVfdGV4dCwgLmN0YV9ldmFsLmhpZGVfdGV4dCwgLmN0YV9zdmNwcm9tby5oaWRlX3RleHQgeyB0ZXh0LWluZGVudDotMjAwMGVtOyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UucmVkLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwucmVkLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UucmVkLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUucmVkLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8ucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LmhlYWRpbmdDYXBzT24gaDEsIGJvZHkuaGVhZGluZ0NhcHNPbiBoMiwgYm9keS5oZWFkaW5nQ2Fwc09uIGgzLCBib2R5LmhlYWRpbmdDYXBzT24gc3Bhbi5oMi1hbHQsIGJvZHkuaGVhZGluZ0NhcHNPbiBzcGFuLmgzLWFsdCwgYm9keS5oZWFkaW5nQ2Fwc09uLlVzZWRTcnAyIC5jYXJCYXNpY3MgLmNhclRpdGxlIC5kaXZDaXR5LCBib2R5LmhlYWRpbmdDYXBzT24gLnYtY2FyZCAuaGVhZGVyLXNlY3Rpb24gLm9yZywgYm9keS5oZWFkaW5nQ2Fwc09uICNmb290ZXIgLm9yZywgYm9keS5oZWFkaW5nQ2Fwc09uIC5sb2dvYXJlYSAuYWRkcmVzcyAuYWRyIHNwYW46Zmlyc3QtY2hpbGQsIGJvZHkuaGVhZGluZ0NhcHNPbiAjZm9vdGVyIC52aXYsIGJvZHkuaGVhZGluZ0NhcHNPbiAuc2VhcmNoLWxpbmtzLXdyYXBwZXIgLnNlYXJjaC1saW5rLXRpdGxlLCBib2R5LmhlYWRpbmdDYXBzT24gLnBvcHVwaXplckJvZHkgI3RyYWRlSW5CYXJQb3B1cF9saW5lMSwgYm9keS5oZWFkaW5nQ2Fwc09uIC5jYXJvdXNzZWwgLmNhcm91c2VsVGFicyAudGFiLWxhYmVsLCBib2R5LmhlYWRpbmdDYXBzT24gLmZvcm1IZWFkaW5nLCBib2R5LmhlYWRpbmdDYXBzT24gLmNvbXBhcmUtdmVoaWNsZXMtZm9ybS10YWJsZSAudHJpbS1wcmV2aWV3IC5jb21wYXJlLXRpdGxlIHsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlICFpbXBvcnRhbnQ7IH0gYm9keS5oZWFkaW5nQ2Fwc09uIC5jYXJvdXNzZWwgLmNhcm91c2VsVGFicyAudGFiLWxhYmVsIHsgZm9udC1zaXplOjEuMjVyZW07IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmhlYWRpbmdDYXBzT24gLmRpdkNlcnRpZmljYXRpb25CbG9jayBoMi5kZWZhdWx0IHsgZm9udC1zaXplOjEuNHJlbSAhaW1wb3J0YW50OyB9IH0gLmRpdkNlcnRpZmljYXRpb25CbG9jayBoMiBzcGFuLmljb24sIC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgc3Bhbi5oMi1hbHQgc3Bhbi5pY29uIHsgbWluLXdpZHRoOjIwcHg7IH0gLmRpdkNlcnRpZmljYXRpb25CbG9jayAuY2VydC10aXRsZSB7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1sZWZ0OjIwcHg7IGZvbnQtc2l6ZToxLjNlbTsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LXN1YnRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6MjBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjojNzc3OyBmb250LXNpemU6MWVtOyBtYXJnaW4tdG9wOjVweDsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LWhpZ2hsaWdodGVkLXZhbHVlIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGNvbG9yOiNGRkY7IHBhZGRpbmc6MTFweCAyMHB4IDlweCAyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLklubmVyQm94TGF5ZXIuZGl2Q2VydGlmaWNhdGlvbkJsb2NrLmlzT25lUm93IGltZyB7IG1heC13aWR0aDphdXRvICFpbXBvcnRhbnQ7IH0gLnVzZWRWZHBBY3Rpb25zIC5hY3Rpb24tYm94IGEuYnRuLWRlZmF1bHQgeyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IGRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxMHB4ICFpbXBvcnRhbnQ7IH0gLmN0YV9wcmljZTpob3ZlciwgLmN0YV9jcmVkaXQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlOmhvdmVyLCAuY3RhX2V2YWw6aG92ZXIsIC5jdGFfc2VydmljZTpob3ZlciwgLmN0YV9wYXJ0czpob3ZlciwgLmN0YV90aXJlczpob3ZlciwgLmN0YV9zdmNwcm9tbzpob3Zlcnsgb3BhY2l0eTowLjc1OyB9IC5zZWFyY2hfY2VydF9nZW5lcmljeyBoZWlnaHQ6NDRweDsgbWFyZ2luOjJweCA1cHggMCAwOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOi0wcHg7IH0gI25ld0NhckluVXNlZFBhZ2V7IG1hcmdpbi10b3A6LTJweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGRpc3BsYXk6bm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gI25ld0NhckluVXNlZFBhZ2UgLmJveDI4OF90b3B7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfdG9wLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IH0gI25ld0NhckluVXNlZFBhZ2UgLmJveDI4ODBfbWlkeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcnKSByZXBlYXQteSBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4X2Zvb3Rlcl9xc3sgYmFja2dyb3VuZCA6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQgfSAjbmV3Q2FySW5Vc2VkUGFnZV9zY3JhdGNoUHJpY2V7IHdpZHRoOjExMHB4OyBoZWlnaHQ6MzVweDsgZmxvYXQ6cmlnaHQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0Oi04M3B4OyBkaXNwbGF5Om5vbmU7IH0gI25ld0NhckluVXNlZFBhZ2VfdGl0bGV7IGRpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjAuOTM4cmVtIDtmb250LXdlaWdodDpib2xkO3RleHQtZGVjb3JhdGlvbjpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluLCB1bCNjcmVkaXRfZnVlbHR5cGUsIHVsI2NyZWRpdF9ib2R5VHlwZXMgeyBsaXN0LXN0eWxlOm5vbmU7IGZsb2F0OmxlZnQ7IHdpZHRoOjMzJTsgcGFkZGluZy1ib3R0b206MTBweDsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGxhYmVsLCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBsYWJlbCwgdWwjY3JlZGl0X2JvZHlUeXBlcyBsaSA+IGxhYmVseyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bm9uZTsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGRpdiwgdWwjY3JlZGl0X2Z1ZWx0eXBlIGxpID4gZGl2LCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gZGl2eyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzAwMDAwMDsgZmxvYXQ6bm9uZTsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGxhYmVsID4gc3BhbiwgdWwjY3JlZGl0X2Z1ZWx0eXBlIGxpID4gbGFiZWwgPiBzcGFuLCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gbGFiZWwgPiBzcGFueyBtYXJnaW4tcmlnaHQ6OHB4OyBtYXJnaW4tdG9wOjBweDsgfSAjY3JlZGl0X3ZpX2FkdmFuY2VkIGxhYmVseyBmbG9hdDpsZWZ0OyB9ICNjcmVkaXRfdmlfYWR2YW5jZWQgbGFiZWwgZGl2LmxhYmVseyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDozMnB4OyBtYXJnaW4tcmlnaHQ6NnB4OyB3aWR0aDoyMDBweDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQsIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQyNSBzcGFuLCAuZGV0YWlsc19ib3ggLmJveDJfZGV0YWlsc19taWQgLmJveDJfZGV0YWlsc190ZXh0IHNwYW57IGNvbG9yOiNmZjAwMDA7IH0gLnVzcC1jb2xvciB7IGNvbG9yOiNmZjAwMDA7IH0gLm15Y2Fyb3VzZWxfdGR7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjU2MHB4OyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbi1sZWZ0OjMwcHg7IG1hcmdpbi10b3A6MTBweDsgfSAudmVoaWNsZUNhcm91c2VseyB3aWR0aDoxOTBweDsgfSAuZGV0YWlsc19ib3gsIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZEV4IHsgYmFja2dyb3VuZDojYjViNWI0OyB9ICNleHRDb2xvclNlbGVjdC5maXhlZFdpZHRoICwgI2ludENvbG9yU2VsZWN0LmZpeGVkV2lkdGggeyB3aWR0aDoyMzBweDsgfSAuY29sb3JDaG9pY2V7IGhlaWdodDozMXB4OyB3aWR0aDozMXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1pbmRlbnQ6LTIwMDBlbTsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBtYXJnaW46MnB4OyBjb2xvcjojZmZmOyB9IC5jb2xvckNob2ljZS5jaG9zZW4geyB0ZXh0LWluZGVudDowOyB9IC5jb2xvckNob2ljZS50YW4geyBiYWNrZ3JvdW5kLWNvbG9yOiNkMmI0OGM7IH0gLmNvbG9yQ2hvaWNlLmJsYWNrIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5nb2xkIHsgYmFja2dyb3VuZC1jb2xvcjojYjI5NjAwOyB9IC5jb2xvckNob2ljZS5icm93biB7IGJhY2tncm91bmQtY29sb3I6IzY2MzMwZTsgfSAuY29sb3JDaG9pY2UuZ3JlZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDk5MDA7IH0gLmNvbG9yQ2hvaWNlLmdyYXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5Nzk3OTc7IH0gLmNvbG9yQ2hvaWNlLmdyZXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5Nzk3OTc7IH0gLmNvbG9yQ2hvaWNlLm9yYW5nZSB7IGJhY2tncm91bmQtY29sb3I6I2U2OTQwMDsgfSAuY29sb3JDaG9pY2Uuc2lsdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojYzBjMGMwOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5tYXV2ZSB7IGJhY2tncm91bmQtY29sb3I6I2Q0NzNkNDsgfSAuY29sb3JDaG9pY2UucmVkIHsgYmFja2dyb3VuZC1jb2xvcjojY2MwMDAwOyB9IC5jb2xvckNob2ljZS53aGl0ZSB7IGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjsgY29sb3I6IzAwMDAwMDsgfSAuY29sb3JDaG9pY2UueWVsbG93IHsgYmFja2dyb3VuZC1jb2xvcjojZjBjMDAwOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5ibHVlIHsgYmFja2dyb3VuZC1jb2xvcjojMTkxOWM0OyB9IC5jb2xvckNob2ljZS5jb3BwZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNBRjQ3NDQ7IH0gLmNvbG9yQ2hvaWNlLnB1cnBsZSB7IGJhY2tncm91bmQtY29sb3I6IzUzMTVCMjsgfSAubGlnaHQtZ3JheSB7IGJhY2tncm91bmQtY29sb3I6IzRiNGM0YzsgY29sb3I6IzAwMDAwMDt9IGEuY29sb3JDaG9pY2UgeyBjb2xvcjojZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSB0ci5ib3JkZXJfYm90dG9tX2xpbmUgdGQsIHRyLmJvcmRlcl9ib3R0b21fbGluZSB0aCB7IGJvcmRlci1ib3R0b206MXB0IHNvbGlkIGJsYWNrOyB9IC5ib3JkZXJfYm94eyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJveC1zaGFkb3c6bm9uZTsgY2xlYXI6Ym90aDsgfSAuaG9tZXBhZ2UgLmJvcmRlcl9ib3h7IGJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gI2hvbWVfc29jaWFsVGltZWxpbmV7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taG9tZXBhZ2Utc29jaWFsLWJnLWNvbG9yKTsgfSAjZm9vdGVyV3JhcHBlcnsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IGNsZWFyOmJvdGg7IHBhZGRpbmctdG9wOjE1cHg7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgY29sb3I6IzY2NjY2NjsgYmFja2dyb3VuZC1jb2xvcjojMzJhN2RhOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gI2Zvb3RlcldyYXBwZXIgc3ZnIHsgZmlsbDp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5jdXN0b21mb3JtX3N1Ym1pdHsgbWFyZ2luLXRvcDoyMHB4OyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gLnNlZU9wdGlvbnN7IGRpc3BsYXk6bm9uZTsgfSAuc3RyaWtlLXByaWNlLCAuc3RyaWtlLXByaWNlLWJsYWNrLCAuc3RyaWtlLXByaWNlLXdoaXRlIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zdHJpa2UtcHJpY2U6OmJlZm9yZSwgLnN0cmlrZS1wcmljZS1ibGFjazo6YmVmb3JlLCAuc3RyaWtlLXByaWNlLXdoaXRlOjpiZWZvcmUgeyBjb250ZW50OiIiOyBoZWlnaHQ6MnB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjQwJTsgLW1vei10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHRyYW5zZm9ybS1vcmlnaW46NTAlIDUwJSAwOyB3aWR0aDoxMDAlOyB9IC5zdHJpa2UtcHJpY2UuLXRoaW46OmJlZm9yZXsgaGVpZ2h0OjFweDsgfSAuc3RyaWtlLXByaWNlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgIzAwMDsgfSAuc3RyaWtlLXByaWNlLWJsYWNrOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgYmxhY2s7IH0gLnN0cmlrZS1wcmljZS13aGl0ZTo6YmVmb3JlIHsgYmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwIHdoaXRlOyB9IC5ibHVyLXByaWNlIHsgLXdlYmtpdC1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbW96LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tcy1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtby1maWx0ZXI6Ymx1cigwLjE1ZW0pOyBmaWx0ZXI6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIGhlaWdodD0nMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48ZmlsdGVyIGlkPSdzdmdCbHVyJyB4PSctNSUnIHk9Jy01JScgd2lkdGg9JzExMCUnIGhlaWdodD0nMTEwJSc+PGZlR2F1c3NpYW5CbHVyIGluPSdTb3VyY2VHcmFwaGljJyBzdGREZXZpYXRpb249JzUnLz4jc3ZnQmx1ciIpOyBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJsdXIoUGl4ZWxSYWRpdXM9JzUnKTsgZmlsdGVyOmJsdXIoMC4xNWVtKTsgfSAubGVmdF9ib3h7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IG1hcmdpbi10b3A6MTBweCA7IHBhZGRpbmc6MTBweCAwIDEwcHg7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZywuY3VzdG9tZm9ybV9zdWJtaXQsLnN1Ym1pdHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgfSAuYnRuLWRlZmF1bHR7IGJhY2tncm91bmQtY29sb3I6IzMyYTdkYTsgfSAuYnRuLWRlZmF1bHQsIC5zdWJtaXQsIC5jdXN0b21mb3JtX3N1Ym1pdCwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1kZWZhdWx0LCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWRlZmF1bHQgeyBwYWRkaW5nOjExcHggMjBweCA5cHggMjBweDsgYm9yZGVyLXJhZGl1czozcHg7IH0gLmJ0bi1zbSwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1zbSwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1zbSB7IGZvbnQtc2l6ZTppbmhlcml0IWltcG9ydGFudDsgcGFkZGluZzo0cHggMTBweCFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4IWltcG9ydGFudDsgfSAuYnRuLWxnLCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWxnLCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWxnIHsgZm9udC1zaXplOjEuMDYzcmVtIDsgcGFkZGluZzoxMnB4IDUwcHg7IGJvcmRlci1yYWRpdXM6NnB4OyBmb250LXdlaWdodDpib2xkOyB9IC5idG4tZGVmYXVsdDpmb2N1cywgLmN1c3RvbWZvcm1fc3VibWl0OmZvY3VzLCAuYnRuLXNtOmZvY3VzLCAuYnRuLWxnOmZvY3VzLCAjZXhpdF9wb3B1cF95ZXM6Zm9jdXMsICNleGl0X3BvcHVwX25vOmZvY3VzIHsgb3V0bGluZTpub25lOyB9IC5idG4tZGVmYXVsdC5hcHBseS1jcmVkaXQgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyB3b3JkLXdyYXA6bm9ybWFsOyB3aWR0aDoxMDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6M3B4IDVweDsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5idG4tZGVmYXVsdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdHsgZm9udC1zaXplOjAuOHJlbTsgfSAuYnRuLWRlZmF1bHQsIC5idG4tc20sLmJ0bi1sZywgLnN1Ym1pdCwgI3NsaWRlaXQgaW5wdXQuc2VuZCwgLmN1c3RvbWZvcm1fc3VibWl0IHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgdGV4dC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQuYnRuLWJnLXNhbWUgeyBib3JkZXItY29sb3I6IzMyYTdkYTsgfSAuYnRuLWRlZmF1bHQuYnRuLWJnLXNhbWU6aG92ZXIgeyBib3JkZXItY29sb3I6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQ6aG92ZXIsIC5jdXN0b21mb3JtX3N1Ym1pdDpob3ZlciwgLmJ0bi1zbTpob3ZlciwgLmJ0bi1sZzpob3ZlciwgLnN1Ym1pdDpob3ZlciwgI3NsaWRlaXQgaW5wdXQuc2VuZDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IH0gLmJ0bi1kZWZhdWx0LnByb21vY29sb3IsIC5idG4tc20ucHJvbW9jb2xvciwgLmJ0bi1sZy5wcm9tb2NvbG9yIHsgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAwOyBib3JkZXI6MXB4IHNvbGlkICNmZjAwMDA7IGNvbG9yOiNmZmZmZmY7IH0gLmJ0bi1kZWZhdWx0LnByb21vY29sb3I6aG92ZXIsIC5idG4tc20ucHJvbW9jb2xvcjpob3ZlciwgLmJ0bi1sZy5wcm9tb2NvbG9yOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiNmZjAwMDA7IH0gLmJ0bi1kZWZhdWx0LmJsYWNrLCAuYnRuLXNtLmJsYWNrLCAuYnRuLWxnLmJsYWNrIHsgYmFja2dyb3VuZC1jb2xvciA6IzAwMDAwMDsgYm9yZGVyIDoxcHggc29saWQgIzAwMDAwMDsgY29sb3IgOiNmZmZmZmY7IH0gLmJ0bi1kZWZhdWx0LmJsYWNrLndpdGhib3JkZXIsIC5idG4tc20uYmxhY2sud2l0aGJvcmRlciwgLmJ0bi1sZy5ibGFjay53aXRoYm9yZGVyIHsgYm9yZGVyIDoxcHggc29saWQgI2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQuYmxhY2s6aG92ZXIsIC5idG4tc20uYmxhY2s6aG92ZXIsIC5idG4tbGcuYmxhY2s6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yIDojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyB9IC5idG4tZGVmYXVsdC5ubywgLmJ0bi1zbS5ubywgLmJ0bi1sZy5ubyB7IGJhY2tncm91bmQtY29sb3I6I0ZGRjsgYm9yZGVyOjFweCBzb2xpZCAjNTU1OyBjb2xvcjojMDAwOyB9IC5idG4tZGVmYXVsdC5ubzpob3ZlciwgLmJ0bi1zbS5ubzpob3ZlciwgLmJ0bi1sZy5ubzpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojNjY2NjY2OyBib3JkZXI6MXB4IHNvbGlkICM2NjY2NjY7IGNvbG9yOiNGRkZGRkY7IH0gLmJ0bi1kZWZhdWx0LmludmVydCwgLmJ0bi1zbS5pbnZlcnQsIC5idG4tbGcuaW52ZXJ0LCAuYnRuLWRlZmF1bHQuaW52ZXJ0LmZsYXQsIC5idG4tc20uaW52ZXJ0LmZsYXQsIC5idG4tbGcuaW52ZXJ0LmZsYXQgeyBiYWNrZ3JvdW5kOiB2YXIoLS10YWItdGV4dC1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS10YWItY29sb3IpOyBib3gtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LmludmVydDpob3ZlciwgLmJ0bi1zbS5pbnZlcnQ6aG92ZXIsIC5idG4tbGcuaW52ZXJ0OmhvdmVyLCAuYnRuLWRlZmF1bHQuaW52ZXJ0LmZsYXQ6aG92ZXIsIC5idG4tc20uaW52ZXJ0LmZsYXQ6aG92ZXIsIC5idG4tbGcuaW52ZXJ0LmZsYXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgfSAuYnRuLWRlZmF1bHQucmVkLCAuYnRuLXNtLnJlZCwgLmJ0bi1sZy5yZWQgeyBiYWNrZ3JvdW5kOiNmZjMzMzMhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjMzMzMhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICNmNTFhMWEhaW1wb3J0YW50OyBjb2xvcjojRkZGRkZGIWltcG9ydGFudDsgfSAuYnRuLWRlZmF1bHQucmVkOmhvdmVyLCAuYnRuLXNtLnJlZDpob3ZlciwgLmJ0bi1sZy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6IzMzMzMzMyFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6IzMzMzMzMyFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgIzMzMzMzMyFpbXBvcnRhbnQ7IGNvbG9yOiNGRkZGRkYhaW1wb3J0YW50OyB9IC5idG4tZGVmYXVsdC53aGl0ZSwgLmJ0bi1zbS53aGl0ZSwgLmJ0bi1sZy53aGl0ZSB7IGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBjb2xvcjojMDAwMDAwOyBib3gtc2hhZG93Om5vbmU7IH0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlciB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7IGNvbHVtbi1nYXA6MS41cmVtOyByb3ctZ2FwOjAuNXJlbTsgZ3JpZC1hdXRvLWNvbHVtbnM6MC41ZnI7IG1hcmdpbi1ib3R0b206MTBweDsgbWFyZ2luLXRvcDoxNXB4OyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0biB7IHRleHQtd3JhcDphdXRvOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmctbGVmdDoxMHB4OyB0cmFuc2l0aW9uOjAuMnMgZWFzZS1pbi1vdXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG4uZm9jdXNlZCwgLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgycHgpOyB9IC5hcHBseS1jcmVkaXQgeyAtbW96LWJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjM2ZiNGU3OyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjM2ZiNGU3OyBib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggIzNmYjRlNzsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAuMDUsICM2NWRhZmYpLCBjb2xvci1zdG9wKDEsICMzMmE3ZGEpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICM2NWRhZmYgNSUsICMzMmE3ZGEgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjNjVkYWZmIDUlLCAjMzJhN2RhIDEwMCUpOyBiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICM2NWRhZmYgNSUsICMzMmE3ZGEgMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICM2NWRhZmYgNSUsICMzMmE3ZGEgMTAwJSk7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzY1ZGFmZiA1JSwgIzMyYTdkYSAxMDAlKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYzMzMzJywgZW5kQ29sb3JzdHI9JyNEQjAwMDAnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojNjVkYWZmOyBib3JkZXI6MXB4IHNvbGlkICM0Y2MxZjQ7IH0gLmFwcGx5LWNyZWRpdDpob3ZlciB7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLjA1LCAjNjVkYWZmKSwgY29sb3Itc3RvcCgxLCAjMzJhN2RhKSk7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMzJhN2RhIDUlLCAjNjVkYWZmIDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzMyYTdkYSA1JSwgIzY1ZGFmZiAxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCAjMzJhN2RhIDUlLCAjNjVkYWZmIDEwMCUpOyBiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjMzJhN2RhIDUlLCAjNjVkYWZmIDEwMCUpOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMzMmE3ZGEgNSUsICM2NWRhZmYgMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzMzMycsIGVuZENvbG9yc3RyPScjREIwMDAwJyxHcmFkaWVudFR5cGU9MCk7IGJhY2tncm91bmQtY29sb3I6IzY1ZGFmZjsgfSAub2ZmZXItYnRueyBjb2xvcjp2YXIoLS1idG4tdHh0LWNvbCwgdmFyKC0tdXNlZC1vZmZlci1idG4tdGV4dC1jb2xvciwgI2ZmZikpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ0bi1iZy1jb2wsIHZhcigtLXVzZWQtb2ZmZXItYnRuLWJnLWNvbG9yLCB2YXIoLS1wcm9tby1jb2xvcikpKTsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgKnsgYm94LXNpemluZzpib3JkZXItYm94OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAucHJvbW9CVE57IHRleHQtYWxpZ246bGVmdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLnByb21vQlROOjphZnRlcnsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybycsIHNlcmlmOyBmb250LXdlaWdodDo5MDA7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMsIC51c2VkLWRldGFpbHMsIC5uZXctZGV0YWlscykgLnByb21vQlROID4gc3Bhbi5mYXsgZGlzcGxheTpmbGV4OyB3aWR0aDoxLjVlbTsgaGVpZ2h0OjEuNWVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGNvbG9yOmluaGVyaXQ7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5jb21wbGV0ZWQucHJvbW9CVE46OmFmdGVyeyBjb250ZW50OiJcZjAwYyI7IGNvbG9yOmluaGVyaXQ7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5jb21wbGV0ZWQucHJvbW9CVE4gc3Bhbi5mYXsgY29sb3I6IzAwMDsgfSAuZ3JheWJveCAucHJvbW9CVE4sIC51c2VkVmRwQWN0aW9ucyAucHJvbW9CVE57IGJvcmRlci1yYWRpdXM6M3B4IWltcG9ydGFudDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgdGV4dC1hbGlnbjp1bnNldDsgbGluZS1oZWlnaHQ6MS41cmVtOyB9IC5ncmF5Ym94IC5idXR0b25fdW5kZXIgLnByb21vQlROIHN0YWNrLWxjLCAubmV3VmRwQWN0aW9ucyAuYnV0dG9uX3VuZGVyIC5wcm9tb0JUTiBzdGFjay1sYyB7IGZsZXgtZ3JvdzoxICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7IH0gLm11bHRpZm9ybV9lbWJlZGRlZF9mb290ZXIgLi1mb3JjZWQtLWEtY2ZhOjphZnRlciB7IGZsZXg6MCAxOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4taWNvbmVkeyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbjphdXRvOyB3aWR0aDo5NSU7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1kZWZhdWx0IHNwYW4uZmF7IGRpc3BsYXk6bm9uZTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWljb25lZCBzcGFuLmZheyBkaXNwbGF5OmZsZXg7IH0gLmdyYXlib3ggLnByb21vQlROIHNwYW4sIC51c2VkVmRwQWN0aW9ucyAucHJvbW9CVE4gc3BhbnsgbWFyZ2luLWxlZnQ6dW5zZXQ7IGxpbmUtaGVpZ2h0OjEuNWVtOyB9IC5wcm9tb0JUTi5jaGV2cm9uLXJpZ2h0IC5jdGEtbGFiZWwgeyBwYWRkaW5nLXJpZ2h0OjEuNXJlbTsgfSAucHJvbW9CVE4sIC5wcm9tb0JUTiBhLCAuYnJvY2h1cmVCdG57IGJhY2tncm91bmQ6I2ZmMDAwMDsgY29sb3I6I2ZmZmZmZjsgdGV4dC1zaGFkb3c6bm9uZTsgYW5pbWF0aW9uOmFsbCAzczsgYm9yZGVyLWNvbG9yOiNmZjAwMDA7IH0gLnByb21vQlROOmhvdmVyLCAucHJvbW9CVE4gYTpob3ZlcnsgYmFja2dyb3VuZDojZmYwMDAwOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICNmZjAwMDA7IH0gLnByb21vQlROOmhvdmVyID4gKiA+IC5mYSwgLnByb21vQlROIGE6aG92ZXIgPiAqID4gLmZhIHsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojZmYwMDAwOyB9IC5wcm9tb0JUTi5ncm93OmhvdmVyIHsgdHJhbnNmb3JtOnNjYWxlKDEuMSk7IH0gLnByb21vQlROLmdyb3c6aG92ZXIsIC5wcm9tb0JUTi5ncm93OmhvdmVyID4gKiA+IC5mYSwgLnByb21vQlROLmdyb3cgYTpob3ZlciA+ICogPiAuZmEgeyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlIHsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB0cmFuc2l0aW9uOjFzIGFsbCBlYXNlOyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6YmVmb3JlIHsgY29udGVudCA6IiAiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHotaW5kZXggOi0xOyBib3JkZXItcmFkaXVzIDoxMDBweDsgd2lkdGggOjAlOyBoZWlnaHQgOjEyMCU7IHRvcCA6NTAlOyBib3R0b20gOjUwJTsgbGVmdCA6NTAlOyByaWdodCA6NTAlOyB0cmFuc2Zvcm0gOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgdHJhbnNpdGlvbiA6YWxsIDAuNnMgZWFzZTsgYm9yZGVyOnVuc2V0OyBiYWNrZ3JvdW5kOiNmZjAwMDA7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpob3ZlciB7IGJhY2tncm91bmQ6I2ZmMDAwMDsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOzsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyOmJlZm9yZSB7IHdpZHRoOjEyMCU7IH0gLnByb21vQlROLnJpcHBsZTpob3ZlciBzcGFuLmZheyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IH0gLnByb21vQXJyb3csLnByb21vQ29sb3J7IGNvbG9yOiNmZjAwMDAhaW1wb3J0YW50OyB9IC5icm9jaHVyZUJ0bnsgYm9yZGVyOm5vbmU7IGRpc3BsYXk6YmxvY2s7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjVweDsgfSAudmRwLWJ0biB7IGJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4wNjNyZW0gOyBwYWRkaW5nOjhweCA1cHg7IHdpZHRoOjIzN3B4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MDBweCkgeyAuYnRuLWRlZmF1bHQsIC5jdXN0b21mb3JtX3N1Ym1pdCwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1kZWZhdWx0LCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWRlZmF1bHR7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC5hcHBseS1jcmVkaXQgeyBiYWNrZ3JvdW5kOiM2NWRhZmY7IGJvcmRlcjoxcHggc29saWQgIzRjYzFmNDsgfSAuYXBwbHktY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZDp7JEFQUExZX0NSRURJVF9CVE5fQ09MT1JfRU5ESE9WRVJDT0xPUn07IH0gfSAuYmdfYmx1ZXsgYmFja2dyb3VuZC1jb2xvcjojMDY4OGZhIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfcmVkeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDAhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ncmVlbnsgYmFja2dyb3VuZC1jb2xvcjojNjhhNTRiIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfYmxhY2t7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2dyYXl7IGJhY2tncm91bmQtY29sb3I6Izc5Nzk3OSFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2JsdWUgYSwuYmdfcmVkIGEsLmJnX2dyZWVuIGEsLmJnX2JsYWNrIGEsLmJnX2dyYXkgYSB7IGNvbG9yOiNmZmY7IH0gLmJnX2RlZmF1bHR7IGJhY2tncm91bmQtY29sb3I6IzMyYTdkYSFpbXBvcnRhbnQ7IH0gLmJveDI3eyB3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5ib3gyNyBheyB3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uMTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteCA7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjI4cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MjcgYTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgLTMycHggcmVwZWF0LXg7IGNvbG9yOiNGRkZGRkY7IH0gLmJveDI4eyB3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6IzZmNmY2ZiB1cmwoL2ltYWdlcy9saXRlcl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgbWFyZ2luOjAgMHB4IDAgMDsgfSAudGV4dDQ0eyB3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGl0ZXJfbGluZS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4OyB9IC5jb25zdW1wdGlvbi1ub3QtYXZhaWxhYmxlID4gLnRleHQ0NCA+IHNwYW4gPiAjY2l0eUZ1ZWwgeyBkaXNwbGF5Om5vbmU7IH0gLmNvbnN1bXB0aW9uLW5vdC1hdmFpbGFibGUgPiAudGV4dDQ0ID4gc3BhbiA+ICNoaWdod2F5RnVlbCB7IGRpc3BsYXk6bm9uZTsgfSAudGV4dF9zbGlkZSBhIHsgaGVpZ2h0OjM4cHg7IG1hcmdpbi1yaWdodDowLjNlbTsgcGFkZGluZy10b3A6MXB4ICFpbXBvcnRhbnQ7IH0gLnRleHRfc2xpZGUgYSA+IGIgeyBkaXNwbGF5OmJsb2NrOyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoyNXB4OyB3aWR0aDoxMDAlOyB9IC50ZXh0X3NsaWRlIGEgPiBiID4gbTEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IHdoaXRlLXNwYWNlOm5vd3JhcDsgbGluZS1oZWlnaHQ6MzhweCAhaW1wb3J0YW50OyB0b3A6LThweDsgbGVmdDowOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfNCBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfNCA0cyBlYXNlIDVzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfMyBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfMyAzcyBlYXNlIDRzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfMiBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfMiAycyBlYXNlIDJzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnByb21vY29kZWJveCB7IHBhZGRpbmc6MHB4IDBweDsgbWFyZ2luLWxlZnQ6MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjlweDsgfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfNCB7IDAlIHsgdG9wOi04cHg7IH0gMjUlIHsgdG9wOi00NnB4OyB9IDUwJSB7IHRvcDotODRweDsgfSA3NSUgeyB0b3A6LTEyMnB4OyB9IDEwMCUgeyB0b3A6LTE2MHB4OyB9IH0gQGtleWZyYW1lcyB0ZXh0X3NsaWRlXzMgeyAwJSB7IHRvcDotOHB4OyB9IDMzJSB7IHRvcDotNDZweDsgfSA2NiUgeyB0b3A6LTg0cHg7IH0gMTAwJSB7IHRvcDotMTIycHg7IH0gfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfMiB7IDAlIHsgdG9wOi04cHg7IH0gNTAlIHsgdG9wOi00NnB4OyB9IDEwMCUgeyB0b3A6LTg0cHg7IH0gfSAubWFwIHsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5tYXAgLndyYXBwZXJ7IHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50OyB9IC5tYXBfZGVhbGVyX2xpc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcGFkZGluZzowIDMwcHg7IHdpZHRoOjMxNXB4OyBoZWlnaHQ6MTAwJTsgdGV4dC1hbGlnbjpsZWZ0OyBvdmVyZmxvdy15OmF1dG87IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtIHsgY3Vyc29yOnBvaW50ZXI7IHBhZGRpbmc6MTNweCAwOyBmb250LXNpemU6MC44MTNyZW0gOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWU6aG92ZXIgeyBmb250LXdlaWdodDo3MDA7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWVfYWN0aXZlIHsgZm9udC13ZWlnaHQ6NzAwOyB9IC5tYXJrZXJTcGFuIHsgaGVpZ2h0OjE4cHg7IHdpZHRoOjIwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLm1hcmtlclNwYW46YmVmb3JlIHsgY29udGVudDonJzsgaGVpZ2h0OjRweDsgd2lkdGg6NHB4OyBib3JkZXI6MnB4IHNvbGlkICMzMzM7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MnB4OyBsZWZ0OjBweDsgei1pbmRleDoxOyBiYWNrZ3JvdW5kOiNmZmY7IGxpbmUtaGVpZ2h0OjI2cHg7IGJvcmRlci1yYWRpdXM6NDBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjQwcHg7IC1tb3otYm9yZGVyLXJhZGl1czo0MHB4OyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFya2VyU3BhbjphZnRlciB7IGNvbnRlbnQ6Jyc7IGhlaWdodDowcHg7IHdpZHRoOjBweDsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbToycHg7IGxlZnQ6MnB4OyBib3JkZXI6MTBweCB0cmFuc3BhcmVudCBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjojMzMzOyBib3JkZXItd2lkdGg6N3B4IDJweCAwcHggMnB4OyB9IC5tYXBfb3Blbl9ob3VycyB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyB3aWR0aDo0MDBweDsgaGVpZ2h0OjEwMCU7IHRleHQtYWxpZ246bGVmdDsgfSAub3Blbl9ob3Vyc19jb250YWluZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHRleHQtYWxpZ246bGVmdDsgfSAubWFwX29wZW5faG91cnMgLm1hcF9vcGVuX2hvdXJzLS10aXRsZSwgLm9wZW5faG91cnNfY29udGFpbmVyIGgyLCAub3Blbl9ob3Vyc19jb250YWluZXIgc3Bhbi5oMi1hbHQgeyBmb250LXNpemU6MS41ZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctbGVmdDoxNXB4OyBtYXJnaW4tdG9wOjIwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgY29sb3I6aW5oZXJpdDsgfSAubWFwX29wZW5faG91cnMgdWwsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciB1bCB7IHBhZGRpbmc6MCAwOyB9IC5tYXBfb3Blbl9ob3VycyB1bCBsaSwgLm9wZW5faG91cnNfY29udGFpbmVyIHVsIGxpIHsgbGlzdC1zdHlsZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgY3Vyc29yOmhhbmQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNmM2YzZjM7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZHsgcGFkZGluZzo2cHggMzBweCA4cHggMTVweDsgZGlzcGxheTpibG9jazsgfSAuZXhwYW5kYWJsZV9jb250ZW50eyBwYWRkaW5nOjBweCAxNnB4IDVweCAxNnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyB9IC5leHBhbmRhYmxlX2NvbnRlbnQgZGl2LCAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gZGl2IHsgZGlzcGxheSA6ZmxleDsgZmxleC1kaXJlY3Rpb24gOnJvdzsgfSAuZXhwYW5kYWJsZV9jb250ZW50ID4gZGl2ID4gc3BhbjpmaXJzdC1vZi10eXBlLCAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gZGl2IHNwYW46Zmlyc3Qtb2YtdHlwZSB7IHdpZHRoOjQwJTsgfSAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb257IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IG1hcmdpbi10b3A6MTVweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOjc1OXB4KSB7IC5leHBhbmRhYmxlX2NvbnRlbnQsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IH0gLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIHRhYmxleyBtYXJnaW4tdG9wOjE1cHg7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvd3sgZmxvYXQ6cmlnaHQ7IG1hcmdpbi10b3A6M3B4OyB9IC5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3cuZXhwYW5kZWR7IHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTsgfSAubWFwX29wZW5faG91cnNfbW9iaWxleyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgLm1hcF9vcGVuX2hvdXJzX21vYmlsZS0tdGl0bGUgeyBmb250LXNpemU6dmFyKC0tZnM0KTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSB1bHsgcGFkZGluZzowIDA7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSB1bCBsaXsgbGlzdC1zdHlsZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2YzZjNmMzsgfSAubWFpbl9sZWZ0X2JveCAjZm9vdGVyR29vZ2xlTWFwSG91cnNDb250YWluZXJ7IHdpZHRoOjk2MHB4OyB9IC52aWRlb0J0blNsaWRlciwgLnBob3RvQnRuU2xpZGVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjOTk5OTk5OyBjb2xvcjojOTk5OTk5OyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBvcGFjaXR5OjAuNTsgfSAudmlkZW9CdG5TbGlkZXI6aG92ZXIsIC5waG90b0J0blNsaWRlcjpob3ZlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6Izk5OTk5OTsgb3BhY2l0eTowLjU7IH0gLnBob3RvQnRuU2xpZGVyIC5mYSwgLnZpZGVvQnRuU2xpZGVyIC5mYXsgY29sb3I6Izk5OTk5OTsgfSAucGhvdG9CdG5TbGlkZXI6aG92ZXIgLmZhLCAudmlkZW9CdG5TbGlkZXI6aG92ZXIgLmZheyBjb2xvcjojZmZmZmZmOyB9IC52aWRlb0J0blNsaWRlclVzZWQsIC5waG90b0J0blNsaWRlclVzZWR7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNiM2IzYjM7IGNvbG9yOiNiM2IzYjM7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IG9wYWNpdHk6MC45OyB9IC52aWRlb0J0blNsaWRlclVzZWQ6aG92ZXIsIC5waG90b0J0blNsaWRlclVzZWQ6aG92ZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNmZmY7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNiM2IzYjM7IG9wYWNpdHk6MC41OyB9IC5waG90b0J0blNsaWRlclVzZWQgLmZhLCAudmlkZW9CdG5TbGlkZXJVc2VkIC5mYXsgY29sb3I6I2IzYjNiMzsgfSAucGhvdG9CdG5TbGlkZXJVc2VkOmhvdmVyIC5mYSwgLnZpZGVvQnRuU2xpZGVyVXNlZDpob3ZlciAuZmF7IGNvbG9yOiNmZmY7IH0gLnZpZGVvc19waWN0dXJlc19idXR0b25zX2NvbnRhaW5lcnsgbGVmdDo1cHg7IGJvdHRvbTo4MnB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo5OTk7IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206LTgwcHg7IH0gLi1kaXNwbGF5LW5vbmV7IGRpc3BsYXk6bm9uZTsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IHRleHQtYWxpZ246Y2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IHBhZGRpbmc6NDBweCAxNXB4OyB9ICNkZWZhdWx0VG9wQmFubmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo2cHg7IGN1cnNvcjpwb2ludGVyOyB9ICNkZWZhdWx0VG9wQmFubmVyVGl0bGUsICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXAgZGl2LmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyeyBtYXJnaW46MzBweCAwIDIwcHggMDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgfSAjZGVmYXVsdFRvcEJhbm5lckJ0bnsgcGFkZGluZzoxMHB4IDMwcHg7IGJhY2tncm91bmQ6YmxhY2s7IGJvcmRlcjoycHggd2hpdGUgc29saWQ7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiNmZmZmZmY7IGJveC1zaGFkb3c6MHB4IDJweCAxM3B4IDBweCAjMWIxYjFiOyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IGZvbnQtc2l6ZTozLjEyNXJlbSA7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXNpemU6Mi44MTNyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6My4xMjVyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IH0gI3RvcEJhbm5lckltYWdlOmVtcHR5eyBtYXJnaW46MCAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MjY1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MjY1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI2dvb2dsZV9yZXZpZXdzeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2OyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6MDsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgbGkgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHBhZGRpbmc6aW5pdGlhbDsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgbGkgaSB7IGNvbG9yOiNFNEIyNDg7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXNpemU6MC45MzhyZW0gOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSBpLmluYWN0aXZlIHsgY29sb3I6I2M2YzZjNjsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcjphZnRlciB7IGNvbnRlbnQ6IlwyNjA1IjsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0eyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjVweCA4cHg7IGhlaWdodDoyN3B4OyBsaW5lLWhlaWdodDoyN3B4OyB9IC5yZXZpZXctYXV0aG9yeyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQuZGVmYXVsdHsgY29sb3I6IzQ0NDsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjZjVmNWY1LCAjZjFmMWYxKTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5yZWR7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgI0RENEIzOSwgI0QxNDgzNik7IGJvcmRlcjoxcHggc29saWQgI0QxNDgzNjsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LmJsdWV7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQtY29sb3I6IzREOTBGRTsgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgIzREOTBGRSwgIzQ3ODdFRCk7IGJvcmRlcjoxcHggc29saWQgIzMwNzlFRDsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgaWZyYW1lLCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgb2JqZWN0LCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgZW1iZWQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMnsgcG9zaXRpb246cmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOjU2LjI1JTsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbjsgbWF4LXdpZHRoOjEwMCU7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBpZnJhbWUsIC5lbWJlZC1jb250YWluZXIteW91dHViZTIgb2JqZWN0LCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIGVtYmVkIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9ICNzZWFyY2hDcml0ZXJpYVc6OmFmdGVyLCAjYWN0aW9uQm94QnRuOjphZnRlciwgI2xpbmtDb250YWluZXI6OmFmdGVyeyBjb250ZW50OicnOyBoZWlnaHQ6MXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luLWJvdHRvbTonMTVweCc7IH0gI3NlYXJjaENyaXRlcmlhVzo6YWZ0ZXIsICNhY3Rpb25Cb3hCdG46OmFmdGVyLCAjbGlua0NvbnRhaW5lcjo6YWZ0ZXJ7IGJhY2tncm91bmQ6I2FhYTsgd2lkdGg6MjgwcHg7IH0gLmJhbm5lclBvcHVwQ2xvc2V7IGNvbG9yOiNhYWE7IH0gLnNlZVZpZGVvQnRuMXsgYmFja2dyb3VuZC1jb2xvcjojMDAwICFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2ZmZiAhaW1wb3J0YW50OyBjb2xvcjojZmZmICFpbXBvcnRhbnQ7IH0gLnNlZVZpZGVvQnRuMTpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmICFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgIzAwMCAhaW1wb3J0YW50OyBjb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IH0gI2JvdHRvbUxlZnRCYW5uZXJJbWFnZXsgbWFyZ2luOjEwcHggMHB4IDBweDsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjZweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyV3JhcHsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgcGFkZGluZzoxNXB4OyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lclRpdGxleyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6Mi4xODhyZW0gOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lclRleHR7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyV3JhcCBkaXYuZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJCdG5XcmFwcGVyeyBtYXJnaW46MjBweCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJCdG57IHBhZGRpbmc6N3B4IDIxcHg7IGJhY2tncm91bmQ6YmxhY2s7IGJvcmRlcjoycHggd2hpdGUgc29saWQ7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiNmZmZmZmY7IGJveC1zaGFkb3c6MHB4IDJweCAxM3B4IDBweCAjMWIxYjFiOyBmb250LXNpemU6NzAlOyB9IC5tYWluRGl2LXdyYXBwZXIgeyBwYWRkaW5nLXRvcDowLjAxcmVtOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSB7IHBhZGRpbmc6MCAxMnB4OyBoZWlnaHQ6MjZweDsgbGluZS1oZWlnaHQ6MjdweDsgYm9yZGVyLXJhZGl1czowOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgY29sb3I6d2hpdGU7IGNvbG9yOiNmZmZmZmY7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLmJ0biB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiAuYnRuLWRlZmF1bHQ6aG92ZXIgeyBib3JkZXItY29sb3I6IzAwMDAwMDsgYm9yZGVyLWNvbG9yOiMwMDAwMDA7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6bm9uZTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE3NSk7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDozNTBweDsgcmlnaHQ6MDsgcGFkZGluZzoxNXB4OyB6LWluZGV4Ojk5OTk7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGhlaWdodDphdXRvOyB0b3A6MjNweDsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgZGl2Om5vdChbY2xhc3NdKSB7IGZsb2F0OmluaXRpYWw7IHdpZHRoOjEwMCU7IG1hcmdpbi1yaWdodDowOyB0ZXh0LWFsaWduOmluaXRpYWw7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXI6aG92ZXIgLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6YmxvY2s7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlci5pc09wZW4gLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6YmxvY2s7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdywgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdyBkaXYgeyBtYXJnaW4tcmlnaHQ6aW5oZXJpdDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBmbG9hdDpub25lOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3cgdGFibGUgdGV4dGFyZWEgeyB3aWR0aDpjYWxjKDEwMCUgKyAycHgpICFpbXBvcnRhbnQ7IH0gI3VzZWRfNDA0X21lc3NhZ2UgeyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozMHB4OyBib3JkZXI6MXB4IHNvbGlkICNmMDA7IG1hcmdpbjowIDAgMjBweCAwOyB9IC5hdWRpLXRpdGxlIGgyIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5hdWRpLWNvbG9yIHsgY29sb3I6I2JiMGEzMDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBkaXYjc29jaWFsX21lZGlhX2ljb25zX2RpdiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IGEuc29jaWFsLWxpbmsgeyAtLWZzOnZhcigtLWZzNik7IC0tdHh0LWNvbG9yOiMwMDAwMDA7IH0gI3NvY2lhbF9tZWRpYV9pY29uc19kaXYgLnNvY2lhbC1saW5rW2RhdGEtdG9vbHRpcD0nWW91dHViZSddIC5zb2NpYWwtaWNvbnMgeyBtYXJnaW4tcmlnaHQ6M3B4OyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgdGFibGV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgd2lkdGg6MTAwJTsgcGFkZGluZzowIDAgMTBweCAwOyBib3JkZXItcmFkaXVzOjNweCAzcHggMCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxlIHRyOmZpcnN0LWNoaWxkeyBmb250LXNpemU6MS4xMjVyZW0gOyBoZWlnaHQ6NDBweDsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxlIHNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MzVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAucGF5cGFsX2J1dHRvbl9odG1sIGlucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il17IHdpZHRoOjEwMCU7IGJvcmRlcjpub25lOyBwYWRkaW5nOjA7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQwMHB4KSB7IC5wYXlwYWxfYnV0dG9uX2h0bWx7IHdpZHRoOjkwJTsgbWFyZ2luOjAgYXV0bzsgfSB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24geyB6LWluZGV4OjEwMDAwMDAwMDIxOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uZGVza3RvcCB7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uZGVza3RvcCBzZWxlY3QgeyBtYXgtd2lkdGg6MzAwcHg7IG1hcmdpbjowIGF1dG87IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5zbWFsbCB7IHBhZGRpbmc6MjBweCAxMHB4OyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gbGFiZWwgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uICNtdXRsaUFkZHJlc3NTdWJtaXQgeyBtYXJnaW46MCBhdXRvOyBtYXJnaW4tdG9wOjhweDsgZGlzcGxheTp0YWJsZTsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uICNtdWx0aS1kZWFsZXItbWFwIHsgaGVpZ2h0OjUyMHB4OyBtYXJnaW4tYm90dG9tOjEycHg7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5yZXZlYWwtbW9kYWwgc3BhbiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC52YWxpZGl0eS1lcnJvbmVvdXMgeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyFpbXBvcnRhbnQ7IH0gLmJveDQudmFsaWRpdHktZXJyb25lb3VzLCAuYm94NS52YWxpZGl0eS1lcnJvbmVvdXMgeyB3aWR0aDoyNjNweDsgfSAuZm9ybS1jb250cm9sIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgaGVpZ2h0OjM0cHg7IHBhZGRpbmc6NnB4IDEycHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IGNvbG9yOiM1NTU7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7IGJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7IC13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IC1vLXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cywtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgfSAuYmFubmVyLWZvcm0tYm94IHsgcGFkZGluZzozMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOjsgY29sb3I6OyB9IC5iYW5uZXItZm9ybS10aXRsZSB7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zaXplOjE4cHQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5iYW5uZXItZm9ybS1zdWJ0aXRsZSB7IGZvbnQtc2l6ZToxMS41cHQ7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5iYW5uZXItZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbToyNXB4OyB9IC5iYW5uZXItZm9ybS1ib2R5IC5mb3JtLWNvbnRyb2wgeyBoZWlnaHQ6NDFweDsgbWFyZ2luLWJvdHRvbToxNXB4OyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuYmFubmVyLWZvcm0tYm94LWZvb3RlciB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IH0gLmJhbm5lci1mb3JtLWJveC1oZWFkZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5idG4uYmFubmVyLWJ0biB7IHBhZGRpbmc6NnB4IDI0cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6d2hpdGU7IGJhY2tncm91bmQtY29sb3I6OyBjb2xvcjo7IH0gLmJ0bi5iYW5uZXItYnRuOmhvdmVyIHsgYm94LXNoYWRvdzppbnNldCAwIDAgMTAwcHggMTAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9IC5idG4geyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzo2cHggMTJweDsgbWFyZ2luLWJvdHRvbTowOyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDo0MDA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IHRleHQtYWxpZ246Y2VudGVyOyB3aGl0ZS1zcGFjZTpub3dyYXA7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgLW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247IHRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247IGN1cnNvcjpwb2ludGVyOyAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IC1tb3otdXNlci1zZWxlY3Q6bm9uZTsgLW1zLXVzZXItc2VsZWN0Om5vbmU7IHVzZXItc2VsZWN0Om5vbmU7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5sYXp5bG9hZHsgdmlzaWJpbGl0eTpoaWRkZW47IH0gLmdib3ggeyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyB9IC5wZCB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGZvbnQtc2l6ZTowLjVlbTsgdmVydGljYWwtYWxpZ246c3VwZXI7IH0gLnVpLWxvYWRlci1iYWNrZ3JvdW5keyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwLjMpOyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmZpeGVkOyB6LWluZGV4OjEwMDAwMDAwMDsgfSAudWktbG9hZGVyLWJhY2tncm91bmQtZ2lmeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgbGVmdDo1MCU7IH0gLmQyY0Zvb3RlckNvb2tpZURlbGV0ZVRpdGxlIHsgZm9udC1zaXplOjEuM2VtOyB9IC5kMmNGb290ZXJDb29raWVEZWxldGVUZXh0IHsgbWFyZ2luLXRvcDozMHB4OyB9IC5tb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9idG57IGJhY2tncm91bmQ6I2ZmMDAwMDsgY29sb3I6I2ZmZmZmZjsgcGFkZGluZzoxMHB4IDIwcHggMTBweCAyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAubW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfYnRuIHNwYW57IGJhY2tncm91bmQ6I2ZmMDAwMDsgY29sb3I6I2ZmZmZmZjsgfSAjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfc21zeyBiYWNrZ3JvdW5kOiNmZjAwMDA7IGNvbG9yOiNmZmZmZmY7IH0gI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX3NtcyBzcGFueyBiYWNrZ3JvdW5kOiNmZjAwMDA7IGNvbG9yOiNmZmZmZmY7IH0gLmJsYWNrQ29sb3JCb2xkeyBjb2xvcjojMDAwIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDsgfSAuZmxleC1jZW50ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIHsgZmxleC1ncm93OjE7IH0gLnJldmVhbC1tb2RhbHsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAuZ20tc3R5bGUtaXctZCB7IHBhZGRpbmctdG9wOjEycHg7IG1hcmdpbi1yaWdodDotMjRweDsgfSAuZ20tc3R5bGUgLmdtLXN0eWxlLWl3LWMgeyBmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTsgfQovKiogL2Nzcy9iYXNlLmNzcyAqKi8Kc3RhY2stbGMsIC5zdGFjay1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyB9IHN0YWNrLWxjID4gKiwgLnN0YWNrLWxjID4gKiB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRvbTowOyB9IHN0YWNrLWxjID4gKiArICosIC5zdGFjay1sYyA+ICogKyAqIHsgbWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7IH0gc3RhY2stbGMuLS1zMCA+ICogKyAqLCAuc3RhY2stbGMuLS1zMCA+ICogKyAqIHsgYm9yZGVyLXdpZHRoOjA7IGJvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyBib3JkZXItY29sb3I6aW5oZXJpdDsgfSAuYm94LWxjLCBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6dmFyKC0tc3BhY2UpOyBvdXRsaW5lOnZhcigtLWJvcmRlci10aGluKSB0cmFuc3BhcmVudDsgb3V0bGluZS1vZmZzZXQ6Y2FsYyh2YXIoLS1ib3JkZXItdGhpbikgKiAtMSk7IH0gLmJveC1sYywgYm94LWxjICogeyBjb2xvcjppbmhlcml0OyB9IC5iZy1ib3h7IGNvbG9yOnZhcigtLWJsYWNrKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gLmdsYXNzLWJveHsgYm9yZGVyOm5vbmU7IGJhY2tncm91bmQ6bm9uZTsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgY29sb3I6aW5oZXJpdDsgfSAuY3RyLWJveCwgLmZsZXgtYm94LCAuZmxleC1jb2x1bW4sIC5mbGV4LWFyb3VuZCwgLmZsZXgtYmV0d2VlbiwgLmZsZXgtZXZlbmx5LCAuZmxleC1jZW50ZXIsIC5mbGV4LXN0YXJ0LCAuZmxleC1lbmQsIC5mbGV4LWF1dG8sIC5mbGV4LWVxdWFseyBkaXNwbGF5OmZsZXg7IH0gLmlubGluZS1ib3h7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5zaGFkb3ctYm94eyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCB2YXIoLS1taWQtZ3JheSk7IGJvcmRlci1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgfSAuZmxleC1ib3g6bm90KDppcyguZmxleC1iZXR3ZWVuLC5mbGV4LWV2ZW5seSwuZmxleC1hcm91bmQpKSA+ICogKyAqeyBtYXJnaW4tbGVmdDp2YXIoLS1zKTsgfSAuZ3JvdXAtbGMsIGdyb3VwLWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyB9IC5ncm91cC1sYyA+ICosIGdyb3VwLWxjID4gKiB7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIgKiAtMSk7IH0gLmdyb3VwLWxjID4gKiA+ICosIGdyb3VwLWxjID4gKiA+ICogeyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgeyBvdmVyZmxvdzpoaWRkZW47IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpID4gKiB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMiAqIC0xKTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqID4gKiB7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyBmbGV4LWdyb3c6MTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqID4gOmZpcnN0LWNoaWxkIHsgZmxleC1iYXNpczowOyBmbGV4LWdyb3c6OTk5OyBtaW4td2lkdGg6Y2FsYyh2YXIoLS1zaWRlYmFyLWJwLCA1MCUpIC0gdmFyKC0tc3BhY2UpKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IG1hcmdpbjpjYWxjKCh2YXIoLS1zcGFjZSkgLyAyKSAqIC0xKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiAqIHsgZmxleC1ncm93OjE7IGZsZXgtYmFzaXM6Y2FsYygodmFyKC0tc3dpdGNoLWJwLCAzMHJlbSkgLSAoMTAwJSAtIHZhcigtLXNwYWNlKSkpICogOTk5KTsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IH0gOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gOm50aC1sYXN0LWNoaWxkKG4rNSksIDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+IDpudGgtbGFzdC1jaGlsZChuKzUpIH4gKiB7IGZsZXgtYmFzaXM6MTAwJTsgfSAuLS1zMHstLXNwYWNlOnZhcigtLXMwKTt9IC4tLXMtOXstLXNwYWNlOnZhcigtLXMtOSk7fSAuLS1zLTh7LS1zcGFjZTp2YXIoLS1zLTgpO30gLi0tcy03ey0tc3BhY2U6dmFyKC0tcy03KTt9IC4tLXMtNnstLXNwYWNlOnZhcigtLXMtNik7fSAuLS1zLTV7LS1zcGFjZTp2YXIoLS1zLTUpO30gLi0tcy00ey0tc3BhY2U6dmFyKC0tcy00KTt9IC4tLXMtM3stLXNwYWNlOnZhcigtLXMtMyk7fSAuLS1zLTJ7LS1zcGFjZTp2YXIoLS1zLTIpO30gLi0tcy0xey0tc3BhY2U6dmFyKC0tcy0xKTt9IC4tLXN7LS1zcGFjZTp2YXIoLS1zKTt9IC4tLXMxey0tc3BhY2U6dmFyKC0tczEpO30gLi0tczJ7LS1zcGFjZTp2YXIoLS1zMik7fSAuLS1zM3stLXNwYWNlOnZhcigtLXMzKTt9IC4tLXM0ey0tc3BhY2U6dmFyKC0tczQpO30gLi0tczV7LS1zcGFjZTp2YXIoLS1zNSk7fSAuLS1zNnstLXNwYWNlOnZhcigtLXM2KTt9IC4tLXM3ey0tc3BhY2U6dmFyKC0tczcpO30gLi0tczh7LS1zcGFjZTp2YXIoLS1zOCk7fSAuLS1zOXstLXNwYWNlOnZhcigtLXM5KTt9IC4tLWZzLTl7Zm9udC1zaXplOnZhcigtLWZzLTkpOy0tZnM6dmFyKC0tZnMtOSk7fSAuLS1mcy04e2ZvbnQtc2l6ZTp2YXIoLS1mcy04KTstLWZzOnZhcigtLWZzLTgpO30gLi0tZnMtN3tmb250LXNpemU6dmFyKC0tZnMtNyk7LS1mczp2YXIoLS1mcy03KTt9IC4tLWZzLTZ7Zm9udC1zaXplOnZhcigtLWZzLTYpOy0tZnM6dmFyKC0tZnMtNik7fSAuLS1mcy01e2ZvbnQtc2l6ZTp2YXIoLS1mcy01KTstLWZzOnZhcigtLWZzLTUpO30gLi0tZnMtNHtmb250LXNpemU6dmFyKC0tZnMtNCk7LS1mczp2YXIoLS1mcy00KTt9IC4tLWZzLTN7Zm9udC1zaXplOnZhcigtLWZzLTMpOy0tZnM6dmFyKC0tZnMtMyk7fSAuLS1mcy0ye2ZvbnQtc2l6ZTp2YXIoLS1mcy0yKTstLWZzOnZhcigtLWZzLTIpO30gLi0tZnMtMXtmb250LXNpemU6dmFyKC0tZnMtMSk7LS1mczp2YXIoLS1mcy0xKTt9IC4tLWZzMHtmb250LXNpemU6dmFyKC0tZnMwKTstLWZzOnZhcigtLWZzMCk7fSAuLS1mczF7Zm9udC1zaXplOnZhcigtLWZzMSk7LS1mczp2YXIoLS1mczEpO30gLi0tZnMye2ZvbnQtc2l6ZTp2YXIoLS1mczIpOy0tZnM6dmFyKC0tZnMyKTt9IC4tLWZzM3tmb250LXNpemU6dmFyKC0tZnMzKTstLWZzOnZhcigtLWZzMyk7fSAuLS1mczR7Zm9udC1zaXplOnZhcigtLWZzNCk7LS1mczp2YXIoLS1mczQpO30gLi0tZnM1e2ZvbnQtc2l6ZTp2YXIoLS1mczUpOy0tZnM6dmFyKC0tZnM1KTt9IC4tLWZzNntmb250LXNpemU6dmFyKC0tZnM2KTstLWZzOnZhcigtLWZzNik7fSAuLS1mczd7Zm9udC1zaXplOnZhcigtLWZzNyk7LS1mczp2YXIoLS1mczcpO30gLi0tZnM4e2ZvbnQtc2l6ZTp2YXIoLS1mczgpOy0tZnM6dmFyKC0tZnM4KTt9IC4tLWZzOXtmb250LXNpemU6dmFyKC0tZnM5KTstLWZzOnZhcigtLWZzOSk7fSAuc2hyaW5rLWdyb3d7ZmxleDoxIDE7fSAuZmxleC13cmFwIHtmbGV4LXdyYXA6d3JhcDt9IC5mbGV4LXJldmVyc2Uge2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30gLmZsZXgtYXV0byA+ICp7ZmxleDoxIDEgYXV0bzt9IC5mbGV4LWVxdWFsID4gKntmbGV4OjEgMTt9IC5hbGlnbi1jZW50ZXIge2FsaWduLWl0ZW1zOmNlbnRlcjt9IC5hbGlnbi1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30gLmFsaWduLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZDt9IC5hbGlnbi1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZTt9IC5mbGV4LWNvbHVtbiB7ZmxleC1mbG93OmNvbHVtbjt9IC5mbGV4LXJvdyB7ZmxleC1mbG93OnJvdzt9IC5mbGV4LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO30gLmZsZXgtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjt9IC5mbGV4LWV2ZW5seXtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5O30gLmZsZXgtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7fSAuZmxleC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt9IC5mbGV4LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7fSAuLXAwIHtwYWRkaW5nOjA7fSAuLXB0MCB7cGFkZGluZy10b3A6MDt9IC4tcGIwIHtwYWRkaW5nLWJvdHRvbTowO30gLi1wdjAge3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MH0gLi1waDAge3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0gLi1wIHtwYWRkaW5nOnZhcigtLXNwYWNlKTt9IC4tcHZ7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLXBoe3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UpO30gLi1wdHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZSk7fSAuLXBie3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tbTAge21hcmdpbjowO30gLi1tdDAge21hcmdpbi10b3A6MDt9IC4tbWIwIHttYXJnaW4tYm90dG9tOjA7fSAuLW12MCB7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0gLi1taDAge21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9IC4tbSB7bWFyZ2luOnZhcigtLXNwYWNlKTt9IC4tbXZ7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7IG1hcmdpbi1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1taHttYXJnaW4tbGVmdDp2YXIoLS1zcGFjZSk7IG1hcmdpbi1yaWdodDp2YXIoLS1zcGFjZSk7fSAuLW10e21hcmdpbi10b3A6dmFyKC0tc3BhY2UpO30gLi1tYnttYXJnaW4tYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tYjAge2JvcmRlcjpub25lO30gLi1iMiB7Ym9yZGVyLXdpZHRoOjJweDt9IC4tYntib3JkZXItd2lkdGg6MXB4O30gLi1idHtib3JkZXItdG9wLXdpZHRoOjFweDt9IC4tYmJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7fSAuLWJ2e2JvcmRlci10b3Atd2lkdGg6MXB4O2JvcmRlci1ib3R0b20td2lkdGg6MXB4O30gLi1iaHtib3JkZXItbGVmdC13aWR0aDoxcHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDt9IC4tdy1mdWxsIHt3aWR0aDoxMDB2dzt9IC4tdy0xMDAge3dpZHRoOjEwMCU7fSAuLXctNTAge3dpZHRoOjUwJTt9IC4tdy0zMyB7d2lkdGg6MzMuMzMlO30gLi13LTI1IHt3aWR0aDoyNSU7fSAuLXctNTB3IHt3aWR0aDo1MHZ3O30gLi1mcy14eHN7Zm9udC1zaXplOjAuMTVyZW07IC0tZnM6MC4xNXJlbTt9IC4tZnMteHN7Zm9udC1zaXplOjAuNXJlbTsgLS1mczowLjVyZW07fSAuLWZzLXN7Zm9udC1zaXplOjAuNzVyZW07IC0tZnM6MC43NXJlbTt9IC4tZnMtc3J7Zm9udC1zaXplOjAuOXJlbTsgLS1mczowLjlyZW07fSAuLWZzLWxye2ZvbnQtc2l6ZToxLjFyZW07IC0tZnM6MS4xcmVtO30gLi1mcy1se2ZvbnQtc2l6ZToxLjI1cmVtOyAtLWZzOjEuMjVyZW07fSAuLWZzLXhse2ZvbnQtc2l6ZToxLjVyZW07IC0tZnM6MS41cmVtO30gLi1mcy14eGx7Zm9udC1zaXplOjJyZW07IC0tZnM6MnJlbTt9IC4tZnMteHh4bHtmb250LXNpemU6Mi4yNXJlbTsgLS1mczoyLjI1cmVtO30gLi1mdzEge2ZvbnQtd2VpZ2h0OjEwMDt9IC4tZncyIHtmb250LXdlaWdodDoyMDA7fSAuLWZ3MyB7Zm9udC13ZWlnaHQ6MzAwO30gLi1mdzQge2ZvbnQtd2VpZ2h0OjQwMDt9IC4tZnc1IHtmb250LXdlaWdodDo1MDA7fSAuLWZ3NiB7Zm9udC13ZWlnaHQ6NjAwO30gLi1mdzcge2ZvbnQtd2VpZ2h0OjcwMDt9IC4tZnc4IHtmb250LXdlaWdodDo4MDA7fSAuLWZ3OSB7Zm9udC13ZWlnaHQ6OTAwO30gLi1ib2xkIHtmb250LXdlaWdodDpib2xkO30gLnR4dC1yZWQge2NvbG9yOiNjYzAwMDA7fSAudHh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcjt9IC50eHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodDt9IC50eHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQ7fSAudHh0LXVwcGVye3RleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpKTt9IC50eHQtbm90ZXtmb250LXN0eWxlOml0YWxpYzt9IC50eHQtcGF5bWVudCB7Y29sb3I6dmFyKC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlKSAhaW1wb3J0YW50O30gLi1wb3NyZWx7cG9zaXRpb246cmVsYXRpdmU7fSAuY2VydC10eHQtdHJhbnNmb3Jte3RleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgbm9uZSk7fSBbaGlkZGVuXSwgLmhpZGRlbiB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IC5za2VsZXRvbi1zbGlkZXIgPiAqeyBkaXNwbGF5Om5vbmU7IH0gLnNrZWxldG9uLXR4dHsgdGV4dC1pbmRlbnQ6MTAwJTsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgfSAuc2tlbGV0b24tYnRueyB3aWR0aDptaW4oMjByZW0sMTAwJSk7IGhlaWdodDoyLjVyZW07IGJvcmRlci1yYWRpdXM6MC41cmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgbWFyZ2luOmF1dG87IH0gLnNrZWxldG9uLWJsb2NreyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IH0gLnNrZWxldG9uLXNsaWRlciwgLnNrZWxldG9uLXR4dCwgLnNrZWxldG9uLWJ0biwgLnNrZWxldG9uLWJsb2NrIHsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgZGlzcGxheTpibG9jazsgfSAuc2tlbGV0b24tc2xpZGVyOjphZnRlciwgLnNrZWxldG9uLXR4dDo6YWZ0ZXIsIC5za2VsZXRvbi1idG46OmFmdGVyLCAuc2tlbGV0b24tYmxvY2s6OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBib3R0b206MDsgbGVmdDowOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7IGJhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAyMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSA2MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpOyBhbmltYXRpb246c2hpbW1lciAycyBpbmZpbml0ZTsgfSAuc2tlbGV0b24tc2xpZGVyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgNTEyIDUxMiclM0UlM0NwYXRoIGQ9J000NjQgNDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4ek0xMTIgMTIwYy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2IDU2LTI1LjA3MiA1Ni01Ni0yNS4wNzItNTYtNTYtNTZ6TTY0IDM4NGgzODRWMjcybC04Ny41MTUtODcuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMjA4IDMyMGwtNTUuNTE1LTU1LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDY0IDMzNnY0OHonIGZpbGw9JyUyM2VlZScvJTNFJTNDL3N2ZyUzRSIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7IG9wYWNpdHk6MC45OyB9IEBrZXlmcmFtZXMgc2hpbW1lciB7IDEwMCUge3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO30gfSBAc3VwcG9ydHMgKC13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lKSB7IC5za2VsZXRvbi1zbGlkZXI6OmFmdGVyLCAuc2tlbGV0b24tdHh0OjphZnRlcnsgYW5pbWF0aW9uOm5vbmU7IH0gfSAuY29udGVudC1za2VsZXRvbiB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyLXJhZGl1czowLjVyZW07IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IG1heC13aWR0aDo0MDBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmNvbnRlbnQtc2tlbGV0b24ucmVjdGFuZ2xlIHsgYXNwZWN0LXJhdGlvOnZhcigtLXJhdGlvLCAxNi85KTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0IHsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MXJlbTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0OjpiZWZvcmUsIC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjFyZW07IGJhY2tncm91bmQ6I2RkZDsgbWFyZ2luLWJvdHRvbTowLjVyZW07IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0OjphZnRlciB7IHdpZHRoOjcwJTsgfSAuY29udGVudC1za2VsZXRvbi5hY3RpdmUgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywgI2Y5ZjlmOSAyNSUsICNkZWRlZGUgNTAlLCAjZjlmOWY5IDc1JSk7IGJhY2tncm91bmQtc2l6ZToyMDAlIDEwMCU7IGFuaW1hdGlvbjpzaGltbWVyIDJzIGluZmluaXRlIGxpbmVhcjsgfSBAa2V5ZnJhbWVzIHNoaW1tZXIgeyAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246MjAwJSAwOyB9IDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDAlIDA7IH0gfSAuY29udGVudC1za2VsZXRvbi5kZWJ1Zzo6YWZ0ZXIgeyBjb250ZW50OmF0dHIoZGF0YS1ibG9jaykgIiB8ICIgYXR0cihkYXRhLXNvdXJjZSkgIiB8ICIgYXR0cihkYXRhLWdlbmVyYXRlZC1hdCk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NHB4OyBsZWZ0OjRweDsgcmlnaHQ6NHB4OyBmb250LXNpemU6MC43cmVtOyBmb250LWZhbWlseTptb25vc3BhY2UsIHNhbnMtc2VyaWY7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpOyBwYWRkaW5nOjJweCA0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyB6LWluZGV4OjEwOyBwb2ludGVyLWV2ZW50czpub25lOyB9IGJvZHkgeyB3aWR0aDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbTsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0LW1vYik7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgfSB1bCB7IGxpc3Qtc3R5bGU6bm9uZTsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGxpc3Qtc3R5bGUtcG9zaXRpb246aW5pdGlhbDsgbGlzdC1zdHlsZS1pbWFnZTppbml0aWFsOyB9IC5yZXNwb25zaXZlLWVkaXRvciB1bCB7IGxpc3Qtc3R5bGU6aW5oZXJpdDsgbGlzdC1zdHlsZS10eXBlOmluaGVyaXQ7IGxpc3Qtc3R5bGUtcG9zaXRpb246aW5oZXJpdDsgbGlzdC1zdHlsZS1pbWFnZTppbmhlcml0OyB9IHN2Zywgc3ZnLmljb257IC0taWNvbi1zaXplOmNhbGModmFyKC0tZnMsIHZhcigtLWZzMCkpIC8gdmFyKC0tcmF0aW8pKTsgZmlsbDp2YXIoLS10eHQtY29sb3IsIHZhcigtLWJsYWNrKSk7IHdpZHRoOnZhcigtLWljb24tc2l6ZSk7IGhlaWdodDp2YXIoLS1pY29uLXNpemUpOyB9IHN2Zy5hdXRob3JpemVkLWJsYWNre2ZpbGw6IzI4MjgyOCFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC1ibGFjay1raWF7ZmlsbDojMDUxNDFGIWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLXJlZHtmaWxsOiNGRjAwMDAhaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtd2hpdGV7ZmlsbDojRkZGRkZGIWltcG9ydGFudDt9IC5hdXRob3JpemVkLXJlZC13aGl0ZS1wbGF5LWJ0bntiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gc3ZnLm9nY29sb3ItZmFjZWJvb2t7ZmlsbDojNDI2N0IyIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXR3aXR0ZXJ7ZmlsbDojMURBMUYyIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXgtdHdpdHRlcntmaWxsOiMxNDE3MUEhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteC10d2l0dGVyLXdoaXRle2ZpbGw6I0ZGRkZGRiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1saW5rZWRpbntmaWxsOiMwMDc3QjUhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItYmxvZ2dlcntmaWxsOiNGRjU3MjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItcGludGVyZXN0e2ZpbGw6I0U2MDAyMyFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci15b3V0dWJle2ZpbGw6I0ZGMDAwMCFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSBzdmcub2djb2xvci1pbnN0YWdyYW17ZmlsbDojODMzQUI0IWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXRpa3Rva3tmaWxsOiNmZjAwNTAhaW1wb3J0YW50O30gLmZhY2Vib29rLW9naWNvbi10d2Vha3N7aGVpZ2h0OjI0cHghaW1wb3J0YW50O21hcmdpbi10b3A6MnB4IWltcG9ydGFudDt9ICNmb290ZXIgLmZhY2Vib29rLW9naWNvbi10d2Vha3N7aGVpZ2h0OjIzcHghaW1wb3J0YW50O21hcmdpbi10b3A6MHB4IWltcG9ydGFudDt9IC5pbnN0YWdyYW0tb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjhweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDowcHghaW1wb3J0YW50O30gI2Zvb3RlciAuaW5zdGFncmFtLW9naWNvbi10d2Vha3N7aGVpZ2h0OjI5cHghaW1wb3J0YW50O21hcmdpbi10b3A6LTRweCFpbXBvcnRhbnQ7fSBzdmcuY3VzdG9tbWVkaWEtY29sb3JwaWNrZXJ7ZmlsbDp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMjgyODI4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1ibGFjay1raWF7YmFja2dyb3VuZC1jb2xvcjojMDUxNDFGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1yZWR7YmFja2dyb3VuZC1jb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWZhY2Vib29re2JhY2tncm91bmQtY29sb3I6IzNhNTk5OCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItdHdpdHRlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjZWQhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXgtdHdpdHRlcntiYWNrZ3JvdW5kLWNvbG9yOiMxNDE3MUEhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXgtdHdpdHRlci13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWxpbmtlZGlue2JhY2tncm91bmQtY29sb3I6IzAwNzdCNSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItYmxvZ2dlcntiYWNrZ3JvdW5kLWNvbG9yOiNGRjU3MjIhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXBpbnRlcmVzdHtiYWNrZ3JvdW5kLWNvbG9yOiNFNjAwMjMhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXlvdXR1YmV7YmFja2dyb3VuZC1jb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1pbnN0YWdyYW17YmFja2dyb3VuZC1jb2xvcjojZjIzOTk1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci10aWt0b2t7YmFja2dyb3VuZC1jb2xvcjojZmYwMDUwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctY3VzdG9tbWVkaWEtY29sb3JwaWNrZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC1ibGFja3tjb2xvcjojMjgyODI4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLWJsYWNrLWtpYXtjb2xvcjojMDUxNDFGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLXJlZHtjb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLXdoaXRle2NvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItZmFjZWJvb2t7Y29sb3I6IzNhNTk5OCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci10d2l0dGVye2NvbG9yOiMwMGFjZWQhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteC10d2l0dGVye2NvbG9yOiMxNDE3MUEhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteC10d2l0dGVyLXdoaXRle2NvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItbGlua2VkaW57Y29sb3I6IzAwNzdCNSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1ibG9nZ2Vye2NvbG9yOiNGRjU3MjIhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItcGludGVyZXN0e2NvbG9yOiNFNjAwMjMhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteW91dHViZXtjb2xvcjojRkYwMDAwIWltcG9ydGFudDsgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWluc3RhZ3JhbXtjb2xvcjojZjIzOTk1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXRpa3Rva3tjb2xvcjojZmYwMDUwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntjb2xvcjp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAubm90ZS1ib3h7IGRpc3BsYXk6YmxvY2s7IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgfSAubm90ZS1zdWNjZXNzeyBjb2xvcjojMTU1NzI0OyBiYWNrZ3JvdW5kLWNvbG9yOiNkNGVkZGE7IGJvcmRlci1jb2xvcjojMTU1NzI0OyBib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IC5ub3RlLWVycm9yeyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IGJvcmRlci1jb2xvcjojZmYwMDAwOyBib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IHVsLmNoZWNrbGlzdCBsaTpiZWZvcmV7IGNvbnRlbnQ6IiI7IGJvcmRlci1sZWZ0OjAuMnJlbSBzb2xpZDsgYm9yZGVyLWJvdHRvbTowLjJyZW0gc29saWQ7IHdpZHRoOjAuN3JlbTsgaGVpZ2h0OjAuNHJlbTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjFyZW07IH0gdWwuY2hlY2tsaXN0IGxpeyBtYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC4tYmctd2hpdGV7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctZGFyay1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRhcmstZ3JheSk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWJsYWNrLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stZ3JheSk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWJsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrKTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctbGlnaHR7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQpOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLi1iZy1saWdodC1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLi1iZy1ub25le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7fSAuLXJvdW5keyBib3JkZXItcmFkaXVzOjAuM3JlbTsgfSAucHVzaC1kb3dueyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgfSAucHJpY2UtbWFpbnsgY29sb3I6I2ZmMDAwMDsgfSAucHJpY2Utc3RyaWtleyBjb2xvcjojOTk5OyB0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoOyB9IC5mb3JtYXQtcHJpY2V7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXgtd2lkdGg6Zml0LWNvbnRlbnQ7IG1hcmdpbi1yaWdodDowLjdyZW07IGxpbmUtaGVpZ2h0OjFlbTsgfSA6aXMoLkVOR0xJU0gsW2RhdGEtbGFuZz0iZW4iXSkgLmZvcm1hdC1wcmljZXsgbWFyZ2luLWxlZnQ6MC42cmVtOyBtYXJnaW4tcmlnaHQ6dW5zZXQ7IH0gLmZvcm1hdC1wcmljZTphZnRlcnsgY29udGVudDoiJCI7IGZvbnQtc2l6ZTptYXgoMC41cmVtLDAuNmVtKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDp2YXIoLS1mb3JtYXQtcGljZS1zaWduLXBvc2l0aW9uLDApOyByaWdodDotMC42ZW07IGxpbmUtaGVpZ2h0OmluaGVyaXQ7IH0gLmZpbmFsLXByaWNlIC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IG1hcmdpbi10b3A6LTVweDsgfSAuZmluYWwtcHJpY2UgLmZvcm1hdC1wcmljZXsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6MnB4OyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSAuZm9ybWF0LXByaWNlOmFmdGVyeyBsZWZ0Oi0wLjdlbTsgcmlnaHQ6dW5zZXQ7IH0gLnByaWNlLWVuOmJlZm9yZXsgY29udGVudDoiJCI7IH0gOmlzKC5wcmljZS1lbik6YmVmb3JleyBmb250LXNpemU6MC42ZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTAuNWVtOyB9IC5wcmljZS1mcjphZnRlcnsgY29udGVudDoiICQiOyB9IDppcygucHJpY2UtZnIpOmFmdGVyeyBmb250LXNpemU6MC42ZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTAuNWVtOyB9IC5zY3JhdGNoLW92ZXIsIC5zY3JhdGNoLWxlYXNleyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuc2NyYXRjaC1vdmVyOmJlZm9yZSwgLnNjcmF0Y2gtbGVhc2U6YmVmb3JleyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgYmxhY2s7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MnB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjQ1JTsgLW1vei10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHdpZHRoOjkwJTsgfSAuRU5HTElTSCA6aXMoLnNjcmF0Y2gtbGVhc2UsLnNjcmF0Y2gtb3Zlcik6aGFzKC5mb3JtYXQtcHJpY2UpOmJlZm9yZXsgbWFyZ2luLWxlZnQ6MC41cmVtOyB9IC5ibHVyLW92ZXIsIC5ibHVyLWxlYXNlIHsgLXdlYmtpdC1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbW96LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tcy1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtby1maWx0ZXI6Ymx1cigwLjE1ZW0pOyBmaWx0ZXI6Ymx1cigwLjE1ZW0pOyB9IC5vdXQtdmlld3sgcG9zaXRpb246Zml4ZWQ7IHRvcDotMjBweDsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTsgei1pbmRleDowOyB9IC50b3AtZml4ZWQgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjMuMnJlbTsgbGVmdDowOyB6LWluZGV4OjEwMDsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0tcyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlci1ib3R0b20td2lkdGg6MXB4OyBib3JkZXItYm90dG9tLWNvbG9yOiMwMDA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCA+IC5wcm9tb0JUTiB7IG1hcmdpbjowOyB3aWR0aDo5MHZ3OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCAuY3RhLWxhYmVseyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFpbi1jb2xvcnN7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB9IC5wcm9tby1jb2xvcnN7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tdGV4dC1jb2xvcik7IH0gLmJ0bnsgLS1idG4tYmctY29sOnZhcigtLXRhYi1jb2xvcik7IC0tYnRuLXR4dC1jb2w6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ0bi1iZy1jb2wpOyBjb2xvcjp2YXIoLS1idG4tdHh0LWNvbCk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYnRuLWJyZC1jb2wsIHZhcigtLWJ0bi10eHQtY29sKSk7IHBhZGRpbmc6MC41cmVtOyBmb250LXdlaWdodDpib2xkOyB9IC5idG4tZGFyay1ncmV5LCAuY2JEYXJrR3JleXsgLS1idG4tYmctY29sOiMzMzM7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSBbcm9sZT0iYnV0dG9uIl17IGN1cnNvcjpwb2ludGVyOyB9IC5idG4tcHJvbW97IC0tdHh0LWNvbG9yOnZhcigtLXByb21vLXRleHQtY29sb3IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IGNvbG9yOnZhcigtLXR4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tcHJvbW8tdGV4dC1jb2xvcik7IHBvc2l0aW9uOnJlbGF0aXZlOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlcjpub25lOyB9IC5idG4tY3RhOmFmdGVyeyBjb250ZW50OiJcZjA1NCI7IGZvbnQtc3R5bGU6bm9ybWFsOyB0ZXh0LWRlY29yYXRpb246aW5oZXJpdDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjFyZW07IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IH0gLmJ0bi1tYWlueyAtLWJ0bi1iZy1jb2w6dmFyKC0tdGFiLWNvbG9yKTsgLS1idG4tdHh0LWNvbDp2YXIoLS10YWItdGV4dC1jb2xvcik7IC0tYnRuLWJyZC1jb2w6dmFyKC0tdGFiLXRleHQtY29sb3IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gLmJ0bi1tYWluMiwgLmJ0bi1tYWluOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IH0gLmJ0bi1ibGFja3sgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBjb2xvcjojZmZmOyAtLXR4dC1jb2xvcjojZmZmOyB9IC5idG4tbGlnaHR7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjYWFhOyBjb2xvcjojODg4OyB9IC5idG4tc3VjY2Vzc3sgLS1idG4tYmctY29sOiM0Y2FmNTA7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSAuYnRuLXdhcm5pbmd7IC0tYnRuLWJnLWNvbDojZmY5ODAwOyAtLWJ0bi10eHQtY29sOiNmZmY7IH0gLmJudC1kaXNhYmxlZCwgLmJ0bltkaXNhYmxlZF0geyBjb2xvcjp2YXIoLS1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ncmF5KTsgfSAuYnRuLWVtYWlsLW1lLCAuYnRuLXRleHQtbWV7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5idG4tZW1haWwtbWU6YmVmb3JleyBjb250ZW50OiJcZjBlMCI7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLXRleHQtbWU6YmVmb3JleyBjb250ZW50OiJcZjNjZCI7IGZvbnQtc2l6ZTp4LWxhcmdlOyBmb250LXdlaWdodDo5MDA7IH0gLmJ0bi1lbWFpbC1tZTpiZWZvcmUsIC5idG4tdGV4dC1tZTpiZWZvcmV7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBtYXJnaW4tcmlnaHQ6NXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0xcHg7IH0gYnV0dG9uLnJvdW5kLWJ1dHRvbnsgYWxsOmluaGVyaXQ7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgZmlsbDp2YXIoLS10YWItY29sb3IpOyBwYWRkaW5nOjAuM3JlbTsgY3Vyc29yOnBvaW50ZXI7IH0gYnV0dG9uLmljb24tYnV0dG9ueyBjb2xvcjp2YXIoLS1wcm9tby1idG4tY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlcjpub25lOyBwYWRkaW5nOjAuNXJlbTsgd2lkdGg6YXV0bzsgfSAueC1jbG9zZXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZScgdmlld0JveD0nMCAwIDEwIDEwJyUzRSUzQ3N0eWxlJTNFLnZlcnQlN0JmaWxsOiUyMzAwMDslN0QlM0Mvc3R5bGUlM0UlM0NyZWN0IGNsYXNzPSd2ZXJ0JyBoZWlnaHQ9JzgnIHdpZHRoPScyJyB5PScxJyB4PSc0JyUzRSUzQy9yZWN0JTNFJTNDcmVjdCBoZWlnaHQ9JzInIHdpZHRoPSc4JyB5PSc0JyB4PScxJyUzRSUzQy9yZWN0JTNFJTNDL3N2ZyUzRSIpOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBib3JkZXI6bm9uZTsgd2lkdGg6MS41cmVtOyBoZWlnaHQ6MS41cmVtOyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgY3Vyc29yOnBvaW50ZXI7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGU6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBsZWZ0OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGJhY2tncm91bmQtaW1hZ2U6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiKDAsIDAsIDApIDEwJSwgdHJhbnNwYXJlbnQgMTAuMDElKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTsgdHJhbnNmb3JtOnNjYWxlKDEwLDEwKTsgb3BhY2l0eTowOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMsIG9wYWNpdHkgMXM7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGU6YWN0aXZlOmFmdGVyIHsgdHJhbnNmb3JtOnNjYWxlKDAsMCk7IG9wYWNpdHk6LjI7IHRyYW5zaXRpb246MHM7IH0gLmxvZ29hcmVhIHsgbWluLWhlaWdodDo3cmVtOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWVlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yKTsgfSBhID4gOndoZXJlKDppcyhzdmcsIC5mYSwgLmZhcyk6Zmlyc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSl7IG1hcmdpbi1yaWdodDowLjZyZW07IH0gLnByb21vVG9wQnRuIDppcyhhLGJ1dHRvbikgeyAtLWZzOnZhcigtLWZzMSk7IC0tdHh0LWNvbG9yOnZhcigtLXRvcC1wcm9tby1idG4tdHh0LCB2YXIoLS10b3AtcHJvbW8tYnRuLXR4dC1jb2xvcikpOyBib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXRvcC13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6MXB4OyBib3JkZXItY29sb3I6I2YzZjNmMzsgaGVpZ2h0OjMuMnJlbTsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBiYWNrZ3JvdW5kOnZhcigtLXRvcC1wcm9tby1idG4tYmcsIHZhcigtLXRvcC1wcm9tby1idG4tYmctY29sb3IpKTsgY29sb3I6dmFyKC0tdG9wLXByb21vLWJ0bi10eHQsIHZhcigtLXRvcC1wcm9tby1idG4tdHh0LWNvbG9yKSk7IH0gLnByb21vVG9wQnRuLmRlYWxlckxpbmVCdXR0b24gOmlzKGEsYnV0dG9uKXsgLS10eHQtY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS1iZy1jb2xvcik7IGNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yKTsgd2lkdGg6MTAwJTsgfSA6aXMoLnByb21vVG9wQnRuLGxhYmVsKS5mbG9hdGluZ3sgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxLjVyZW07IHJpZ2h0OjEuNXJlbTsgei1pbmRleDoxMDsgfSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcud2l0aFRvYXN0ZXIge2JvdHRvbTo2cmVtO30gLnByb21vVG9wQnRuLmZsb2F0aW5nIDppcyhhLGJ1dHRvbil7IC0tZnM6dmFyKC0tZnM1KTsgcGFkZGluZzoxcmVtOyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyLXdpZHRoOjFweDsgaGVpZ2h0OnVuc2V0OyB9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZyA6aXMoYSxidXR0b24pIHNwYW4ge2Rpc3BsYXk6bm9uZTt9IC5pY29uLWhlYWRpbmcgc3Bhbi5mYXsgZm9udC1zaXplOmluaGVyaXQ7IHdpZHRoOjFlbTsgcGFkZGluZzowLjJlbTsgaGVpZ2h0OjFlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJsYWNrKTsgY29sb3I6dmFyKC0td2hpdGUpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrKTsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAuaWNvbi1oZWFkaW5nIC5zZWNvbmRhcnlUZXh0eyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MC43NWVtOyB9IC5ncm91cFRhYnMgPiAqeyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOmNhbGMoMS4ycmVtICsgKDIwIC0gMTgpICogKCgxMDB2dyAtIDMyMHB4KSAvICgxMTAwIC0gMzAwKSkpOyB9IC5ncm91cFRhYnMgPiAqOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IH0gLmdyb3VwVGFicyAudGFiLWxhYmVsLCAubmV3Q2FyU2xpZGVyIC5jYXJvdXNlbFRpdGxleyBjb2xvcjp2YXIoLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3IsIHZhcigtLWRlZmF1bHQtYmxhY2spKTsgfSAuZ3JvdXBUYWJzIC5hY3RpdmVUYWIgLnRhYi1sYWJlbHsgY29sb3I6dmFyKC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yLCB2YXIoLS1kZWZhdWx0LWJsYWNrKSk7IGJvcmRlci1ib3R0b206M3B4IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiMwMDA7IGJvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgfSAuY2FyU2xpZGVyeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmNhclNsaWRlciA+ICp7IHdpZHRoOm1pbig5MHJlbSwxMDAlKTsgfSAuY2FyU2xpZGVyLi1iZy1saWdodC1ncmF5ID4gKnsgbWF4LXdpZHRoOm1pbig3NXJlbSwxMDAlKTsgfSAubmV3Q2FyQ2FyZHsgaGVpZ2h0OjEwMCU7IG1pbi1oZWlnaHQ6MjdyZW07IGJvcmRlcjoxcHggc29saWQgI2JiYjsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IH0gLm5ld0NhckNhcmQgaW1neyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOi0xcmVtOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuY2FyUGF5bWVudFdyYXBwZXJ7IHdpZHRoOm1pbigxMDAlLDI1cmVtKTsgbWluLWhlaWdodDo1cmVtOyB9IC5jYXJQYXltZW50V3JhcHBlciAucGF5bWVudEJsb2NreyBoZWlnaHQ6MTAwJTsgfSAucGF5bWVudHNEaXNhYmxlZCAubmV3Q2FyQ2FyZHsgbWluLWhlaWdodDoyMnJlbTsgfSAudmVoaWNsZUNhcm91c2VsIC5uZXdDYXJDYXJkeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgd2lkdGg6MjMuN3JlbTsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBtYXJnaW46MCAwLjRyZW07IGhlaWdodDoxMDAlIH0gLm5ld0NhckNhcmQgLnByb21vLWJhZGdleyBoZWlnaHQ6Zml0LWNvbnRlbnQ7IG1pbi13aWR0aDo2cmVtOyB9IC5uZXdDYXJDYXJkOmhvdmVyeyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCB2YXIoLS1taWQtZ3JheSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IH0gLm5ld0NhckNhcmQ6aG92ZXIgLmluU3RvY2tMaW5rIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5uZXdDYXJDYXJkIC5jYXJkLWJvZHl7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBoZWlnaHQ6MTJyZW07IG92ZXJmbG93OmhpZGRlbjsgfSAubmV3Q2FyQ2FyZCA+IC5ib3gtbGN7IG1hcmdpbi10b3A6MDsgcGFkZGluZy10b3A6MDsgcGFkZGluZy1ib3R0b206MDsgfSAubmV3Q2FyQ2FyZCA+IC5ib3gtbGM6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjAuNXJlbTsgbWF4LWhlaWdodDoxMHJlbTsgfSAubmV3Q2FyQ2FyZCAuZGVza3RvcFBheW1lbnR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5uZXdDYXJDYXJkIHNwYW4ucGF5bWVudENhbGNCdG4uZGVza3RvcHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjclOyBmb250LXNpemU6MS43ZW07IGN1cnNvcjpwb2ludGVyOyB9IC51c2VkQ2FyU2xpZGV7IGRpc3BsYXk6YmxvY2s7IGJvcmRlcjoxcHggc29saWQgI2JiYjsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBoZWlnaHQ6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51c2VkQ2FyU2xpZGUgKnsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51c2VkQ2FyU2xpZGUgLnNsaWRlQ29udGVudHsgaGVpZ2h0OjEwMCUgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlciB7IGNvbnRlbnQ6IlxmMDcxIjsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgaXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gc3ZnLCAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyIHsgYW5pbWF0aW9uOnJpcHBsZS0xIDFzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb24tZGVsYXk6MC41czsgYW5pbWF0aW9uOnJpcHBsZS0yIDFzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb24tZGVsYXk6MC43NXM7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXJ7IHRvcDowOyBsZWZ0OjA7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gc3ZneyB0b3A6MXB4OyBsZWZ0Oi0xcmVtOyB9IEBrZXlmcmFtZXMgcmlwcGxlLTEgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgb3BhY2l0eToxOyB9IDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoMS43KTsgb3BhY2l0eTowOyB9IH0gQGtleWZyYW1lcyByaXBwbGUtMiB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyBvcGFjaXR5OjE7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgyKTsgb3BhY2l0eTowOyB9IH0gc3Bhbi5hc3Rlcml4OmFmdGVyeyBjb250ZW50OiIqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToycmVtOyB9IGRpdi5wcmljZU5vdGUuYXN0ZXJpeDpiZWZvcmV7IGNvbnRlbnQ6IioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjFyZW07IH0gZm9vdGVyIHsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwcHggMTBweCAxMXB4IC0xMXB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7IGJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgLS10eHQtY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZvb3Rlci1iZy1jb2xvcik7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgfSBhLnZpc2l0Q29udGFjdEJ1dHRvbnsgLS10eHQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1iZy1jb2xvcik7IGNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgfSAuY0Zvb3RlckNhckxpbmtzIGxpLmNJdGVtRXhwZW5keyBkaXNwbGF5Om5vbmU7IH0gLmNGb290ZXJDYXJMaW5rcyBoMywgLmZvb3Rlcl9hZGRyZXNzIC5hZHIgPiBzcGFueyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5jRm9vdGVyQ2FyTGlua3Mgc3Bhbi5oMy1hbHQgeyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5jRm9vdGVyQ2FyTGlua3MuY0xpc3RFeHBlbmRlZCBsaS5jSXRlbUV4cGVuZHsgZGlzcGxheTpibG9jazsgfSAuY0V4cGVuZExpc3QgYnV0dG9ueyBwYWRkaW5nOnZhcigtLXMpIDA7IGJhY2tncm91bmQ6bm9uZTsgfSAuY29uZGl0aW9uc0Zvb3RlciB7IGNvbG9yOnZhcigtLWZvb3Rlci1jb25kaXRpb25zLWNvbG9yLCAjOTE5MTkxKTsgLS10eHQtY29sb3I6dmFyKC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3IpOyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIHsgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxMHB4OyBtYXJnaW46NXB4IDVweCAxNXB4IDE1cHg7IHotaW5kZXg6NDsgd2lkdGg6MTQwcHggIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOjFweDsgYmFja2dyb3VuZC1jb2xvcjojZWEwMDI5OyB0ZXh0LWFsaWduOmxlZnQ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdHJhZGVpbmJhci1idG4tYmcpOyBjb2xvcjogdmFyKC0tdHJhZGVpbmJhci1idG4tY29sb3IpOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItd2lkdGg6MXB4IDNweCA0cHggMXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgcGFkZGluZy10b3A6MTBweDsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiBpeyBkaXNwbGF5OmlubGluZS1mbGV4OyBib3JkZXItcmFkaXVzOjEwMCU7IHdpZHRoOjJlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBib3JkZXI6MnB4IHNvbGlkICNmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgaGVpZ2h0OjEuNWVtOyBjb2xvcjojMDAwOyBmbG9hdDpsZWZ0OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uLndpdGhUb2FzdGVyIHsgYm90dG9tOjVyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9saW5lMXsgYmFja2dyb3VuZC1jb2xvcjojZjFmMWYxOyBib3JkZXI6MXB4IHNvbGlkIGdyZXk7IHBhZGRpbmc6MjBweCA0MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYnRuLnRyYWRlSW5CYXJQb3B1cFN1Ym1pdHsgcGFkZGluZzowLjc1cmVtIDAuMzc1cmVtOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItY29sb3I6IzAwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIGlucHV0eyBtYXJnaW46NXB4IDAgMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XeyBoZWlnaHQ6NTgwcHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjay10ZXh0KTsgcGFkZGluZzoxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIGlucHV0eyBwYWRkaW5nOjExcHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6MjUwcHg7IG1hcmdpbjo1cHggMCAwOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTkhaW1wb3J0YW50OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRpblNlbGVjdFBvcHVweyBjb2xvcjojM2MzODM2OyBmb250LXNpemU6MXJlbTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IGFwcGVhcmFuY2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBtYXJnaW46NXB4IDAgMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDo6cGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyBvcGFjaXR5OjE7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSAudHJhZGluU2VsZWN0LCAudHJhZGluU2VsZWN0UG9wdXAgeyBjb2xvcjojM2MzODM2OyBmb250LXNpemU6MXJlbTsgbWFyZ2luOjVweCAwIDA7IGFwcGVhcmFuY2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyB9IC50cmFkaW5TZWxlY3RBIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnRyYWRpblNlbGVjdEE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAuZW1haWxCb2R5LCAuZW1haWxTdWJqZWN0eyBkaXNwbGF5Om5vbmU7IH0gLnJldmVhbC1tb2RhbDpub3QoI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIpICo6bm90KC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciA6aXMoaW5wdXQsIHNlbGVjdCkpeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnJldmVhbC1tb2RhbDpub3QoI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIpIDppcyhpbnB1dFt0eXBlPSJ0ZXh0Il06bm90KC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBpbnB1dCksaW5wdXRbdHlwZT0iZW1haWwiXSxpbnB1dFt0eXBlPSJ0ZWwiXSxzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QsIHNlbGVjdC5zdGVwMjRzZWxlY3QpKXsgcGFkZGluZzowLjRyZW07IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB3aWR0aDoxMDAlOyBib3JkZXItY29sb3I6I2E5YTlhOTsgfSBbZGF0YS1wYWdlPSJIT01FUEFHRSJdeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhvbWUtYmctY29sb3IsICNGRkZGRkYpOyB9IC55dC1iZy1jb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmJhbm5lci1iZy1jb250YWluZXJ7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyOyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6Y29sb3I7IH0gI3lvdXR1YmVfX2NvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMCU7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmctYm90dG9tOm1pbihjYWxjKDEwMHZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCwxMHJlbSkpLDY3dncpOyBiYWNrZ3JvdW5kLWNvbG9yOiM4ODg7IH0gI2hvbWVwYWdlX3lvdXR1YmVfcGxheWVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi00NSU7IGxlZnQ6LTEwJTsgaGVpZ2h0OjE5MCU7IHdpZHRoOjEyMCU7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gI3lvdXR1YmVfX2NvbnRhaW5lcjppcyguZnVsbEhlaWdodCwudmlzaWJsZUhlaWdodCl7IHBhZGRpbmctYm90dG9tOmNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0LDEwcmVtKSk7IH0gOmlzKC5mdWxsSGVpZ2h0LC52aXNpYmxlSGVpZ2h0KSAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IGhlaWdodDoxMDAlOyB0b3A6MDsgfSAjeW91dHViZV9fY29udGFpbmVyLmZ1bGxXaWR0aHsgcGFkZGluZy1ib3R0b206NTYuMjUlOyB9ICNtb2JpbGVTbGlkZXIgI3lvdXR1YmVfX2NvbnRhaW5lcnsgcGFkZGluZy1ib3R0b206bWF4KDY3dncsMjRyZW0pOyB9ICNtb2JpbGVTbGlkZXIgI3lvdXR1YmVfX2NvbnRhaW5lciAjYmFubmVyX3NlYXJjaF9iYXJfY29udGFpbmVyeyBoZWlnaHQ6bWF4KDY3dncsMjRyZW0pOyBtaW4taGVpZ2h0OjE4cmVtOyB6LWluZGV4OjE7IH0gLmZ1bGxXaWR0aCAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IGhlaWdodDoxMjAlOyB0b3A6LTEwJTsgfSAueXQtdmlkZW97IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgfSAueXQtcGxheXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTc2IDUxMiI+PCEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6Q0MgQlkgNC4wLCBGb250czpTSUwgT0ZMIDEuMSwgQ29kZTpNSVQgTGljZW5zZSkgLS0+PHBhdGggZD0iTTU0OS42NTUgMTI0LjA4M2MtNi4yODEtMjMuNjUtMjQuNzg3LTQyLjI3Ni00OC4yODQtNDguNTk3QzQ1OC43ODEgNjQgMjg4IDY0IDI4OCA2NFMxMTcuMjIgNjQgNzQuNjI5IDc1LjQ4NmMtMjMuNDk3IDYuMzIyLTQyLjAwMyAyNC45NDctNDguMjg0IDQ4LjU5Ny0xMS40MTIgNDIuODY3LTExLjQxMiAxMzIuMzA1LTExLjQxMiAxMzIuMzA1czAgODkuNDM4IDExLjQxMiAxMzIuMzA1YzYuMjgxIDIzLjY1IDI0Ljc4NyA0MS41IDQ4LjI4NCA0Ny44MjFDMTE3LjIyIDQ0OCAyODggNDQ4IDI4OCA0NDhzMTcwLjc4IDAgMjEzLjM3MS0xMS40ODZjMjMuNDk3LTYuMzIxIDQyLjAwMy0yNC4xNzEgNDguMjg0LTQ3LjgyMSAxMS40MTItNDIuODY3IDExLjQxMi0xMzIuMzA1IDExLjQxMi0xMzIuMzA1czAtODkuNDM4LTExLjQxMi0xMzIuMzA1em0tMzE3LjUxIDIxMy41MDhWMTc1LjE4NWwxNDIuNzM5IDgxLjIwNS0xNDIuNzM5IDgxLjIwMXoiIGZpbGw9IiUyM2MzM2MyZCIgLyUzRSUzQy9zdmclM0UnKTsgd2lkdGg6NXJlbTsgaGVpZ2h0OjVyZW07IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IG9wYWNpdHk6MC43OyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6Y2FsYygxMDB2dyAvICgxNiAvIDkpKTsgb3ZlcmZsb3c6aGlkZGVuOyBtYXgtd2lkdGg6MTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyB9IC5tb2JpbGVfYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKSk7IH0gLmJ1c2luZXNzRGVzYyB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCkpOyB9IC5idXNpbmVzc0Rlc2MgKiB7IGxpbmUtaGVpZ2h0OjEuNXJlbTsgfSAud3JhcHBlciB7IG1hcmdpbjowIGF1dG87IHdpZHRoOjk2MHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubGFuZ3VhZ2VCYXIgeyBtYXJnaW46MXJlbSBhdXRvIDVweDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCB2YXIoLS1zKTsgfSAudi1jYXJkLnRvcF9iZyB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luLXRvcDoxMHB4OyBtaW4taGVpZ2h0OjhyZW07IHBhZGRpbmc6MCB2YXIoLS1zKTsgfSAuaGVhZGVyLXNlY3Rpb24geyBkaXNwbGF5OmZsZXg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgYWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gI3RyYWRlSW5CYXJNb2JpbGV7IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czo1cHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjozcHggNXB4IDVweCA1cHg7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLm1pZGRsZXsgY29sb3I6I2ZmZmZmZjsgfSAjdHJhZGVJbkJhck1vYmlsZSAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBwYWRkaW5nOjVweCAyMHB4IDBweCAyMHB4OyB9ICN0cmFkZUluQmFyTW9iaWxlIC5kZWZhdWx0VG9wQmFubmVyQnRuV3JhcHBlciBkaXZ7IG1heC13aWR0aDozMzBweDsgbWFyZ2luOjEwcHggYXV0bzsgcGFkZGluZzoxMnB4IDA7IGJvcmRlci1yYWRpdXM6MnB4OyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1iZy1jb2xvcik7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyIGF7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW46MCBhdXRvOyBmb250LXdlaWdodDo3MDA7IH0gI3RyYWRlSW5CYXJNb2JpbGUgI2RlZmF1bHRUb3BCYW5uZXJMb2dvIHNwYW57IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0OjMwMDsgY29sb3I6dmFyKC0tbWlkLWdyYXkpOyB9ICN0cmFkZUluQmFyeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRyYWRlaW5iYXItYmcpOyBjb2xvcjogdmFyKC0tdHJhZGVpbmJhci1jb2xvcik7IH0gI3RyYWRlSW5CYXJXTW9iaWxlLCAjdHJhZGVJbkJhclcgeyBkaXNwbGF5OmZsZXg7IG1pbi1oZWlnaHQ6NTBweDsgbWFyZ2luOmF1dG87IHdpZHRoOm1pbigxMDAlLDEzNTBweCk7IHBvc2l0aW9uOnJlbGF0aXZlOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSA+IGF7IHBhZGRpbmc6NHB4IDEycHg7IGhlaWdodDoxOHB4OyBsaW5lLWhlaWdodDoxOHB4OyBib3JkZXItcmFkaXVzOjA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnLCB2YXIoLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3IsIHdoaXRlICk7IH0gLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtIGE6aG92ZXIgeyBib3JkZXItY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZywgdmFyKC0tbGFuZ3VhZ2UtYnRuLWFjdGl2ZS1iZy1jb2xvcikpOyB9ICNhbGVydE1zZ0NvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgei1pbmRleDo5OTk7IHdpZHRoOjEwMCU7IGNvbG9yOndoaXRlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtYWxlcnQtYmFyLXRleHQtY29sb3IpOyBmb250LXdlaWdodDo2MDA7IH0gI2FsZXJ0TXNnQ29udGFpbmVyLnN0aWNrLXRvcHsgcG9zaXRpb246c3RpY2t5OyB0b3A6MDsgei1pbmRleDo5OTk5OTsgfSAuZmEtZml4LWNlbnRlcjpiZWZvcmUgeyB3aWR0aDoxLjVlbTsgaGVpZ2h0OjEuNWVtOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGRpc3BsYXk6ZmxleDsgfSAjeW91dHViZV9fY29udGFpbmVyLmZ1bGxzY3JlZW57IG9iamVjdC1maXQ6Y292ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDowOyBvcGFjaXR5OjAuODsgfSAubWFpbkRpdkFkanVzdEhlYWRlciB7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzLCBib3JkZXIgLjNzOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgfSAubWFpbkRpdkFkanVzdEhlYWRlci53aXRoLWFsZXJ0IHsgdG9wOjQwcHg7IH0gLnBheW1lbnRCbG9ja0NvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tY2VydC1jb25jcmV0ZS1ncmF5LCB2YXIoLS1saWdodC1ncmF5KSk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLnZlaGljbGVMb2NhdGlvbnsgYm9yZGVyLXRvcDoxcHggc29saWQgI2RkZDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmxpbmVTZXBhcmF0b3J7IGJvcmRlci10b3A6MXB4IHNvbGlkICNBOUE5QTk7IG1hcmdpbi10b3A6NDBweDsgbWFyZ2luLWJvdHRvbTo0MHB4OyB9IC5yZXZlYWwtbW9kYWwgc3Bhbi5mYS1oYW5kLXBvaW50ZXItY29sb3IgeyBjb2xvcjojZmZmZmZmOyBtYXJnaW4tcmlnaHQ6NXB4OyBtYXJnaW4tdG9wOjVweDsgfSAuY29uZmxpY3QtcmVzb2x2ZS1vcHRpb25zIHsgZm9udC1zaXplOjAuODEzcmVtIDsgfQovKiogL2Nzcy9mb250YXdlc29tZS1hbGwubWluLmNzcyAqKi8KLmZhLC5mYXMsLmZhciwuZmFsLC5mYWQsLmZhYnstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtcmVuZGVyaW5nOmF1dG87bGluZS1oZWlnaHQ6MX0uZmEtbGd7Zm9udC1zaXplOjEuMzMzMzNlbTtsaW5lLWhlaWdodDouNzVlbTt2ZXJ0aWNhbC1hbGlnbjotLjA2NjdlbX0uZmEteHN7Zm9udC1zaXplOi43NWVtfS5mYS1zbXtmb250LXNpemU6Ljg3NWVtfS5mYS0xeHtmb250LXNpemU6MWVtfS5mYS0yeHtmb250LXNpemU6MmVtfS5mYS0zeHtmb250LXNpemU6M2VtfS5mYS00eHtmb250LXNpemU6NGVtfS5mYS01eHtmb250LXNpemU6NWVtfS5mYS02eHtmb250LXNpemU6NmVtfS5mYS03eHtmb250LXNpemU6N2VtfS5mYS04eHtmb250LXNpemU6OGVtfS5mYS05eHtmb250LXNpemU6OWVtfS5mYS0xMHh7Zm9udC1zaXplOjEwZW19LmZhLWZ3e3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEuMjVlbX0uZmEtdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luLWxlZnQ6Mi41ZW07cGFkZGluZy1sZWZ0OjB9LmZhLXVsID4gbGl7cG9zaXRpb246cmVsYXRpdmV9LmZhLWxpe2xlZnQ6LTJlbTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoyZW07bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtYm9yZGVye2JvcmRlcjpzb2xpZCAuMDhlbSAjZWVlO2JvcmRlci1yYWRpdXM6LjFlbTtwYWRkaW5nOi4yZW0gLjI1ZW0gLjE1ZW19LmZhLXB1bGwtbGVmdHtmbG9hdDpsZWZ0fS5mYS1wdWxsLXJpZ2h0e2Zsb2F0OnJpZ2h0fS5mYS5mYS1wdWxsLWxlZnQsLmZhcy5mYS1wdWxsLWxlZnQsLmZhci5mYS1wdWxsLWxlZnQsLmZhbC5mYS1wdWxsLWxlZnQsLmZhYi5mYS1wdWxsLWxlZnR7bWFyZ2luLXJpZ2h0Oi4zZW19LmZhLmZhLXB1bGwtcmlnaHQsLmZhcy5mYS1wdWxsLXJpZ2h0LC5mYXIuZmEtcHVsbC1yaWdodCwuZmFsLmZhLXB1bGwtcmlnaHQsLmZhYi5mYS1wdWxsLXJpZ2h0e21hcmdpbi1sZWZ0Oi4zZW19LmZhLXNwaW57LXdlYmtpdC1hbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7YW5pbWF0aW9uOmZhLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyfS5mYS1wdWxzZXstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpO2FuaW1hdGlvbjpmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpfUAtd2Via2l0LWtleWZyYW1lcyBmYS1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5mYS1yb3RhdGUtOTB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0xKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5mYS1yb3RhdGUtMTgwey1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Mik7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5mYS1yb3RhdGUtMjcwey1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Myk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfS5mYS1mbGlwLWhvcml6b250YWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MCxtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLDEpO3RyYW5zZm9ybTpzY2FsZSgtMSwxKX0uZmEtZmxpcC12ZXJ0aWNhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSwtMSk7dHJhbnNmb3JtOnNjYWxlKDEsLTEpfS5mYS1mbGlwLWJvdGgsLmZhLWZsaXAtaG9yaXpvbnRhbC5mYS1mbGlwLXZlcnRpY2Fsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgtMSwtMSk7dHJhbnNmb3JtOnNjYWxlKC0xLC0xKX06cm9vdCAuZmEtcm90YXRlLTkwLDpyb290IC5mYS1yb3RhdGUtMTgwLDpyb290IC5mYS1yb3RhdGUtMjcwLDpyb290IC5mYS1mbGlwLWhvcml6b250YWwsOnJvb3QgLmZhLWZsaXAtdmVydGljYWwsOnJvb3QgLmZhLWZsaXAtYm90aHstd2Via2l0LWZpbHRlcjpub25lO2ZpbHRlcjpub25lfS5mYS1zdGFja3tkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MmVtO2xpbmUtaGVpZ2h0OjJlbTtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2lkdGg6Mi41ZW19LmZhLXN0YWNrLTF4LC5mYS1zdGFjay0yeHtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAwJX0uZmEtc3RhY2stMXh7bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtc3RhY2stMnh7Zm9udC1zaXplOjJlbX0uZmEtaW52ZXJzZXtjb2xvcjojZmZmfS5mYS01MDBweDpiZWZvcmV7Y29udGVudDoiXGYyNmUifS5mYS1hY2Nlc3NpYmxlLWljb246YmVmb3Jle2NvbnRlbnQ6IlxmMzY4In0uZmEtYWRkcmVzcy1ib29rOmJlZm9yZXtjb250ZW50OiJcZjJiOSJ9LmZhLWFkZHJlc3MtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYmIifS5mYS1haXItZnJlc2hlbmVyOmJlZm9yZXtjb250ZW50OiJcZjVkMCJ9LmZhLWFsYXJtLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjM0ZSJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwMCJ9LmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDEifS5mYS1hbmdsZS1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwNCJ9LmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9LmZhLWFuZ2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwNiJ9LmZhLWFwcGxlOmJlZm9yZXtjb250ZW50OiJcZjE3OSJ9LmZhLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTg3In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1OCJ9LmZhLWFycm93LWFsdC1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTkifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1YSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzViIn0uZmEtYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU0In0uZmEtYXJyb3ctYWx0LWZyb20tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjM0NiJ9LmZhLWFycm93LWFsdC1mcm9tLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ3In0uZmEtYXJyb3ctYWx0LWZyb20tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ4In0uZmEtYXJyb3ctYWx0LWZyb20tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0OSJ9LmZhLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1NSJ9LmZhLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTYifS5mYS1hcnJvdy1hbHQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzUwIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1MSJ9LmZhLWFycm93LWFsdC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzUyIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNTMifS5mYS1hcnJvdy1hbHQtdG8tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjM0YSJ9LmZhLWFycm93LWFsdC10by1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM0YiJ9LmZhLWFycm93LWFsdC10by1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNGMifS5mYS1hcnJvdy1hbHQtdG8tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0ZCJ9LmZhLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzNTcifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYWIifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDYzIn0uZmEtYXJyb3ctZnJvbS1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzQyIn0uZmEtYXJyb3ctZnJvbS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM0MyJ9LmZhLWFycm93LWZyb20tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ0In0uZmEtYXJyb3ctZnJvbS10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ1In0uZmEtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNjAifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1hcnJvdy1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMzkifS5mYS1hcnJvdy1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzM2EifS5mYS1hcnJvdy1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNiIn0uZmEtYXJyb3ctc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMzYyJ9LmZhLWFycm93LXRvLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzM2QifS5mYS1hcnJvdy10by1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMzZSJ9LmZhLWFycm93LXRvLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0MCJ9LmZhLWFycm93LXRvLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDEifS5mYS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYwNjIifS5mYS1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ3In0uZmEtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwYjIifS5mYS1hcnJvd3MtYWx0LWg6YmVmb3Jle2NvbnRlbnQ6IlxmMzM3In0uZmEtYXJyb3dzLWFsdC12OmJlZm9yZXtjb250ZW50OiJcZjMzOCJ9LmZhLWFycm93cy1oOmJlZm9yZXtjb250ZW50OiJcZjA3ZSJ9LmZhLWFycm93cy12OmJlZm9yZXtjb250ZW50OiJcZjA3ZCJ9LmZhLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczpiZWZvcmV7Y29udGVudDoiXGYyYTIifS5mYS1hdDpiZWZvcmV7Y29udGVudDoiXGYxZmEifS5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyOWUifS5mYS1hd2FyZDpiZWZvcmV7Y29udGVudDoiXGY1NTkifS5mYS1iYWRnZTpiZWZvcmV7Y29udGVudDoiXGYzMzUifS5mYS1iYWRnZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYzMzYifS5mYS1iYW46YmVmb3Jle2NvbnRlbnQ6IlxmMDVlIn0uZmEtYmFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMmEifS5mYS1iYXJjb2RlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0NjMifS5mYS1iYXJzOmJlZm9yZXtjb250ZW50OiJcZjBjOSJ9LmZhLWJhdHRlcnktZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyNDAifS5mYS1iYXR0ZXJ5LWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjQyIn0uZmEtYmVsbDpiZWZvcmV7Y29udGVudDoiXGYwZjMifS5mYS1iZWxsLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjg0OCJ9LmZhLWJlbGwtcGx1czpiZWZvcmV7Y29udGVudDoiXGY4NDkifS5mYS1iZWxsLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmNiJ9LmZhLWJsb2c6YmVmb3Jle2NvbnRlbnQ6IlxmNzgxIn0uZmEtYmxvZ2dlcjpiZWZvcmV7Y29udGVudDoiXGYzN2MifS5mYS1ibG9nZ2VyLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdkIn0uZmEtYmx1ZXRvb3RoOmJlZm9yZXtjb250ZW50OiJcZjI5MyJ9LmZhLWJsdWV0b290aC1iOmJlZm9yZXtjb250ZW50OiJcZjI5NCJ9LmZhLWJvbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGU3In0uZmEtYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMDJlIn0uZmEtYm94LW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmNDllIn0uZmEtYnJvYWRjYXN0LXRvd2VyOmJlZm9yZXtjb250ZW50OiJcZjUxOSJ9LmZhLWJ0YzpiZWZvcmV7Y29udGVudDoiXGYxNWEifS5mYS1idWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0uZmEtYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWFkIn0uZmEtYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6IlxmMGExIn0uZmEtYnVsbHNleWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQwIn0uZmEtYnVzOmJlZm9yZXtjb250ZW50OiJcZjIwNyJ9LmZhLWJ1cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTVlIn0uZmEtYnVzLXNjaG9vbDpiZWZvcmV7Y29udGVudDoiXGY1ZGQifS5mYS1jYWxjdWxhdG9yOmJlZm9yZXtjb250ZW50OiJcZjFlYyJ9LmZhLWNhbGN1bGF0b3ItYWx0OmJlZm9yZXtjb250ZW50OiJcZjY0YyJ9LmZhLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OiJcZjEzMyJ9LmZhLWNhbGVuZGFyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwNzMifS5mYS1jYWxlbmRhci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyNzQifS5mYS1jYWxlbmRhci1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjMzMyJ9LmZhLWNhbGVuZGFyLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjMzNCJ9LmZhLWNhbGVuZGFyLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNhbGVuZGFyLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjI3MyJ9LmZhLWNhbWVyYTpiZWZvcmV7Y29udGVudDoiXGYwMzAifS5mYS1jYW1lcmEtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMzMiJ9LmZhLWNhbWVyYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjhmZSJ9LmZhLWNhcjpiZWZvcmV7Y29udGVudDoiXGYxYjkifS5mYS1jYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjVkZSJ9LmZhLWNhci1iYXR0ZXJ5OmJlZm9yZXtjb250ZW50OiJcZjVkZiJ9LmZhLWNhci1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGY4NTkifS5mYS1jYXItYnVtcDpiZWZvcmV7Y29udGVudDoiXGY1ZTAifS5mYS1jYXItYnVzOmJlZm9yZXtjb250ZW50OiJcZjg1YSJ9LmZhLWNhci1jcmFzaDpiZWZvcmV7Y29udGVudDoiXGY1ZTEifS5mYS1jYXItZ2FyYWdlOmJlZm9yZXtjb250ZW50OiJcZjVlMiJ9LmZhLWNhci1tZWNoYW5pYzpiZWZvcmV7Y29udGVudDoiXGY1ZTMifS5mYS1jYXItc2lkZTpiZWZvcmV7Y29udGVudDoiXGY1ZTQifS5mYS1jYXItdGlsdDpiZWZvcmV7Y29udGVudDoiXGY1ZTUifS5mYS1jYXItd2FzaDpiZWZvcmV7Y29udGVudDoiXGY1ZTYifS5mYS1jYXJhdmFuOmJlZm9yZXtjb250ZW50OiJcZjhmZiJ9LmZhLWNhcmF2YW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZTAwMCJ9LmZhLWNhcmV0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyZCJ9LmZhLWNhcmV0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyZSJ9LmZhLWNhcmV0LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMzAifS5mYS1jYXJldC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzMxIn0uZmEtY2FyZXQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZDcifS5mYS1jYXJldC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBkOSJ9LmZhLWNhcmV0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBkYSJ9LmZhLWNhcmV0LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1MCJ9LmZhLWNhcmV0LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE5MSJ9LmZhLWNhcmV0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNTIifS5mYS1jYXJldC1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0uZmEtY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ4In0uZmEtY2FyczpiZWZvcmV7Y29udGVudDoiXGY4NWIifS5mYS1jYXJ0LWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMjE4In0uZmEtY2FydC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIxNyJ9LmZhLWNjLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZjQifS5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGYwYTMifS5mYS1jaGFpcjpiZWZvcmV7Y29udGVudDoiXGY2YzAifS5mYS1jaGFsa2JvYXJkOmJlZm9yZXtjb250ZW50OiJcZjUxYiJ9LmZhLWNoYXJnaW5nLXN0YXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmNWU3In0uZmEtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifS5mYS1jaGFydC1saW5lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmNjRkIn0uZmEtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDBjIn0uZmEtY2hlY2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OCJ9LmZhLWNoZWNrLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGY1NjAifS5mYS1jaGVjay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRhIn0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxM2EifS5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEzNyJ9LmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEzOCJ9LmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9LmZhLWNoZXZyb24tZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzIyIn0uZmEtY2hldnJvbi1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMjMifS5mYS1jaGV2cm9uLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMjQifS5mYS1jaGV2cm9uLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMjUifS5mYS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDc4In0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA1MyJ9LmZhLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDU0In0uZmEtY2hldnJvbi1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMjkifS5mYS1jaGV2cm9uLXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyYSJ9LmZhLWNoZXZyb24tc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMyYiJ9LmZhLWNoZXZyb24tc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMyYyJ9LmZhLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDc3In0uZmEtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjExMSJ9LmZhLWNpcmNsZS1ub3RjaDpiZWZvcmV7Y29udGVudDoiXGYxY2UifS5mYS1jaXR5OmJlZm9yZXtjb250ZW50OiJcZjY0ZiJ9LmZhLWNsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGYzMjgifS5mYS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMTcifS5mYS1jbG9uZTpiZWZvcmV7Y29udGVudDoiXGYyNGQifS5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmV7Y29udGVudDoiXGYyMGEifS5mYS1jbG91ZDpiZWZvcmV7Y29udGVudDoiXGYwYzIifS5mYS1jbG91ZC1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwZWQifS5mYS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgxIn0uZmEtY2xvdWQtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjBlZSJ9LmZhLWNsb3VkLXVwbG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgyIn0uZmEtY2x1YjpiZWZvcmV7Y29udGVudDoiXGYzMjcifS5mYS1jb2ZmZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMGY0In0uZmEtY29nOmJlZm9yZXtjb250ZW50OiJcZjAxMyJ9LmZhLWNvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYwNzUifS5mYS1jb21tZW50LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyN2EifS5mYS1jb21tZW50LWFsdC1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY0YTIifS5mYS1jb21tZW50LWFsdC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUwIn0uZmEtY29tbWVudC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUxIn0uZmEtY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg2In0uZmEtY29tbWVudHMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjRiNiJ9LmZhLWNvbW1lbnRzLWFsdC1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUyIn0uZmEtY29tbWVudHMtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MyJ9LmZhLWNvbXByZXNzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MjIifS5mYS1jb21wcmVzcy1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjc4YyJ9LmZhLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWNvdWNoOmJlZm9yZXtjb250ZW50OiJcZjRiOCJ9LmZhLWNyZWF0aXZlLWNvbW1vbnMtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNGYyIn0uZmEtY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDlkIn0uZmEtY3V0OmJlZm9yZXtjb250ZW50OiJcZjBjNCJ9LmZhLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjFjMCJ9LmZhLWRlc2t0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTA4In0uZmEtZGlhbW9uZDpiZWZvcmV7Y29udGVudDoiXGYyMTkifS5mYS1kaWdpdGFsLXRhY2hvZ3JhcGg6YmVmb3Jle2NvbnRlbnQ6IlxmNTY2In0uZmEtZG9sbGFyLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtZG90LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjA0NCJ9LmZhLWVsbGlwc2lzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0uZmEtZWxsaXBzaXMtaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzliIn0uZmEtZWxsaXBzaXMtdjpiZWZvcmV7Y29udGVudDoiXGYxNDIifS5mYS1lbGxpcHNpcy12LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOWMifS5mYS1lbmdpbmUtd2FybmluZzpiZWZvcmV7Y29udGVudDoiXGY1ZjIifS5mYS1lbnZlbG9wZTpiZWZvcmV7Y29udGVudDoiXGYwZTAifS5mYS1lbnZlbG9wZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjJiNiJ9LmZhLWVudmVsb3BlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTkifS5mYS1lcmFzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTJkIn0uZmEtZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGVjIn0uZmEtZXhjaGFuZ2UtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MiJ9LmZhLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9LmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNmEifS5mYS1leGNsYW1hdGlvbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzIxIn0uZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcxIn0uZmEtZXhwYW5kLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MjQifS5mYS1leHBhbmQtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZjMxZCJ9LmZhLWV4cGFuZC1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMxZSJ9LmZhLWV4dGVybmFsLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMDhlIn0uZmEtZXh0ZXJuYWwtbGluay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVkIn0uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRjIn0uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MCJ9LmZhLWV5ZTpiZWZvcmV7Y29udGVudDoiXGYwNmUifS5mYS1leWUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDcwIn0uZmEtZmFjZWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDlhIn0uZmEtZmFjZWJvb2stZjpiZWZvcmV7Y29udGVudDoiXGYzOWUifS5mYS1mYWNlYm9vay1tZXNzZW5nZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzlmIn0uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MiJ9LmZhLWZheDpiZWZvcmV7Y29udGVudDoiXGYxYWMifS5mYS1maWxlOmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9LmZhLWZpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLWZpbGUtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxYzYifS5mYS1maWxlLWF1ZGlvOmJlZm9yZXtjb250ZW50OiJcZjFjNyJ9LmZhLWZpbGUtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGY2NTkifS5mYS1maWxlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjMxNiJ9LmZhLWZpbGUtY29kZTpiZWZvcmV7Y29udGVudDoiXGYxYzkifS5mYS1maWxlLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjU2ZCJ9LmZhLWZpbGUtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYzMWMifS5mYS1maWxlLWV4Y2VsOmJlZm9yZXtjb250ZW50OiJcZjFjMyJ9LmZhLWZpbGUtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMzFhIn0uZmEtZmlsZS1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZlIn0uZmEtZmlsZS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYzUifS5mYS1maWxlLWltcG9ydDpiZWZvcmV7Y29udGVudDoiXGY1NmYifS5mYS1maWxlLWludm9pY2UtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjU3MSJ9LmZhLWZpbGUtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE4In0uZmEtZmlsZS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGY4YjYifS5mYS1maWxlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE5In0uZmEtZmlsZS1wb3dlcnBvaW50OmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9LmZhLWZpbGUtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjg2NSJ9LmZhLWZpbGUtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzE3In0uZmEtZmlsZS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTc0In0uZmEtZmlsZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxYzgifS5mYS1maWxlLXdvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWMyIn0uZmEtZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjBiMCJ9LmZhLWZpbmdlcnByaW50OmJlZm9yZXtjb250ZW50OiJcZjU3NyJ9LmZhLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZkIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1mbGFnLWFsdDpiZWZvcmV7Y29udGVudDoiXGY3NGMifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS1mbHV4LWNhcGFjaXRvcjpiZWZvcmV7Y29udGVudDoiXGY4YmEifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDdiIn0uZmEtZm9sZGVyLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZTA1MyJ9LmZhLWZvbGRlci1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjA3YyJ9LmZhLWZvbGRlci11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDU0In0uZmEtZnJvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtZnJvd24tb3BlbjpiZWZvcmV7Y29udGVudDoiXGY1N2EifS5mYS1nYWxhY3RpYy1zZW5hdGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTBkIn0uZmEtZ2FyYWdlOmJlZm9yZXtjb250ZW50OiJcZTAwOSJ9LmZhLWdhcmFnZS1jYXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDBhIn0uZmEtZ2FyYWdlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMDBiIn0uZmEtZ2FzLXB1bXA6YmVmb3Jle2NvbnRlbnQ6IlxmNTJmIn0uZmEtZ2FzLXB1bXAtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWY0In0uZmEtZ2xhc3NlczpiZWZvcmV7Y29udGVudDoiXGY1MzAifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDoiXGYwYWMifS5mYS1nb29nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0uZmEtZ3JpcC1ob3Jpem9udGFsOmJlZm9yZXtjb250ZW50OiJcZjU4ZCJ9LmZhLWdyaXAtbGluZXM6YmVmb3Jle2NvbnRlbnQ6IlxmN2E0In0uZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGY3YTUifS5mYS1ncmlwLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjU4ZSJ9LmZhLWhhbmQtaG9sZGluZy11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmNGMwIn0uZmEtaGFuZC1wb2ludC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhNyJ9LmZhLWhhbmQtcG9pbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTUifS5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtcG9pbnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGE2In0uZmEtaGFuZC1wb2ludGVyOmJlZm9yZXtjb250ZW50OiJcZjI1YSJ9LmZhLWhhbmRzLXVzZDpiZWZvcmV7Y29udGVudDoiXGY0YzUifS5mYS1oYXNodGFnOmJlZm9yZXtjb250ZW50OiJcZjI5MiJ9LmZhLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZjAwNCJ9LmZhLWhlYXJ0LWJyb2tlbjpiZWZvcmV7Y29udGVudDoiXGY3YTkifS5mYS1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMxMiJ9LmZhLWhpc3Rvcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWRhIn0uZmEtaG9tZTpiZWZvcmV7Y29udGVudDoiXGYwMTUifS5mYS1ob21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4MGEifS5mYS1ob21lLWxnOmJlZm9yZXtjb250ZW50OiJcZjgwYiJ9LmZhLWhvbWUtbGctYWx0OmJlZm9yZXtjb250ZW50OiJcZjgwYyJ9LmZhLWhvdXNlOmJlZm9yZXtjb250ZW50OiJcZTAwZCJ9LmZhLWktY3Vyc29yOmJlZm9yZXtjb250ZW50OiJcZjI0NiJ9LmZhLWluYm94OmJlZm9yZXtjb250ZW50OiJcZjAxYyJ9LmZhLWluYm94LWluOmJlZm9yZXtjb250ZW50OiJcZjMxMCJ9LmZhLWluYm94LW91dDpiZWZvcmV7Y29udGVudDoiXGYzMTEifS5mYS1pbmZvOmJlZm9yZXtjb250ZW50OiJcZjEyOSJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1YSJ9LmZhLWluZm8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjMwZiJ9LmZhLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYxNmQifS5mYS1pbnN0YWdyYW0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZTA1NSJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1sYW5ndWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYWIifS5mYS1sYXNzbzpiZWZvcmV7Y29udGVudDoiXGY4YzgifS5mYS1sZWFmOmJlZm9yZXtjb250ZW50OiJcZjA2YyJ9LmZhLWxldmVsLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTQ5In0uZmEtbGV2ZWwtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JlIn0uZmEtbGV2ZWwtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ4In0uZmEtbGV2ZWwtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZiJ9LmZhLWxpbmtlZGluOmJlZm9yZXtjb250ZW50OiJcZjA4YyJ9LmZhLWxpbmtlZGluLWluOmJlZm9yZXtjb250ZW50OiJcZjBlMSJ9LmZhLWxvY2F0aW9uLWFycm93OmJlZm9yZXtjb250ZW50OiJcZjEyNCJ9LmZhLWxvbmctYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzA5In0uZmEtbG9uZy1hcnJvdy1hbHQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMGEifS5mYS1sb25nLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMGIifS5mYS1sb25nLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzMGMifS5mYS1sb25nLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTc1In0uZmEtbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9LmZhLWxvbmctYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0uZmEtbG9uZy1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYxNzYifS5mYS1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjc5In0uZmEtbWFwLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYwNDEifS5mYS1tYXAtbWFya2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYzUifS5mYS1tYXAtcGluOmJlZm9yZXtjb250ZW50OiJcZjI3NiJ9LmZhLW1hcC1zaWduczpiZWZvcmV7Y29udGVudDoiXGYyNzcifS5mYS1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWExIn0uZmEtbWVkYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNWEyIn0uZmEtbWVoOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9LmZhLW1pY3JvY2hpcDpiZWZvcmV7Y29udGVudDoiXGYyZGIifS5mYS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjEzMCJ9LmZhLW1pY3JvcGhvbmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjOSJ9LmZhLW1pY3JvcGhvbmUtYWx0LXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjUzOSJ9LmZhLW1pY3JvcGhvbmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTMxIn0uZmEtbWluZC1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGY2NzcifS5mYS1taW51czpiZWZvcmV7Y29udGVudDoiXGYwNjgifS5mYS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU2In0uZmEtbWludXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDcifS5mYS1taW51cy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwOCJ9LmZhLW1pbnVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDYifS5mYS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTBiIn0uZmEtbW9iaWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2QifS5mYS1tb2JpbGUtYW5kcm9pZDpiZWZvcmV7Y29udGVudDoiXGYzY2UifS5mYS1tb2JpbGUtYW5kcm9pZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NmIn0uZmEtbW9uZXktY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmNTNjIn0uZmEtbW9uZXktY2hlY2stYWx0OmJlZm9yZXtjb250ZW50OiJcZjUzZCJ9LmZhLW1vbmV5LWNoZWNrLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmODcyIn0uZmEtbW9uZXktY2hlY2stZWRpdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODczIn0uZmEtbW90b3JjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMWMifS5mYS1tb3VudGFpbjpiZWZvcmV7Y29udGVudDoiXGY2ZmMifS5mYS1tb3VzZS1wb2ludGVyOmJlZm9yZXtjb250ZW50OiJcZjI0NSJ9LmZhLW1wMy1wbGF5ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmOGNlIn0uZmEtbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDAxIn0uZmEtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDYifS5mYS1vaWwtY2FuOmJlZm9yZXtjb250ZW50OiJcZjYxMyJ9LmZhLW9pbC10ZW1wOmJlZm9yZXtjb250ZW50OiJcZjYxNCJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZXtjb250ZW50OiJcZjFmYyJ9LmZhLXBhbGV0dGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTNmIn0uZmEtcGFwZXItcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ4In0uZmEtcGFzdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGVhIn0uZmEtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9LmZhLXBlbjpiZWZvcmV7Y29udGVudDoiXGYzMDQifS5mYS1wZW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwNSJ9LmZhLXBlbi1mYW5jeTpiZWZvcmV7Y29udGVudDoiXGY1YWMifS5mYS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDQwIn0uZmEtcGVuY2lsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMDMifS5mYS1wZW5jaWwtcnVsZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWFlIn0uZmEtcGVvcGxlLWFycm93czpiZWZvcmV7Y29udGVudDoiXGUwNjgifS5mYS1waG9uZTpiZWZvcmV7Y29udGVudDoiXGYwOTUifS5mYS1waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODc5In0uZmEtcGhvbmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5OCJ9LmZhLXBob25lLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODdiIn0uZmEtcGhvbmUtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjJhMCJ9LmZhLXBob3RvLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjg3YyJ9LmZhLXBpbnRlcmVzdDpiZWZvcmV7Y29udGVudDoiXGYwZDIifS5mYS1waW50ZXJlc3QtcDpiZWZvcmV7Y29udGVudDoiXGYyMzEifS5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkMyJ9LmZhLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDRiIn0uZmEtcGxheS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ0In0uZmEtcGx1ZzpiZWZvcmV7Y29udGVudDoiXGYxZTYifS5mYS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjA2NyJ9LmZhLXBsdXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NSJ9LmZhLXBsdXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDAifS5mYS1wbHVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzAxIn0uZmEtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGZlIn0uZmEtcG9vOmJlZm9yZXtjb250ZW50OiJcZjJmZSJ9LmZhLXByaW50OmJlZm9yZXtjb250ZW50OiJcZjAyZiJ9LmZhLXFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMjkifS5mYS1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMjgifS5mYS1xdWVzdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU5In0uZmEtcXVlc3Rpb24tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJmZCJ9LmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtcXVvdGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBlIn0uZmEtcmFuZG9tOmJlZm9yZXtjb250ZW50OiJcZjA3NCJ9LmZhLXJlY3RhbmdsZS1sYW5kc2NhcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZhIn0uZmEtcmVjdGFuZ2xlLXBvcnRyYWl0OmJlZm9yZXtjb250ZW50OiJcZjJmYiJ9LmZhLXJlY3RhbmdsZS13aWRlOmJlZm9yZXtjb250ZW50OiJcZjJmYyJ9LmZhLXJlY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI4In0uZmEtcmVkbzpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1yZWRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjkifS5mYS1yZXBlYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYzIn0uZmEtcmVwZWF0LTE6YmVmb3Jle2NvbnRlbnQ6IlxmMzY1In0uZmEtcmVwZWF0LTEtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2NiJ9LmZhLXJlcGVhdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY0In0uZmEtcmVwbHk6YmVmb3Jle2NvbnRlbnQ6IlxmM2U1In0uZmEtcmVwbHktYWxsOmJlZm9yZXtjb250ZW50OiJcZjEyMiJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc5In0uZmEtcmV0d2VldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYxIn0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1yb2JvdDpiZWZvcmV7Y29udGVudDoiXGY1NDQifS5mYS1yc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDllIn0uZmEtcnNzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDMifS5mYS1ydjpiZWZvcmV7Y29udGVudDoiXGY3YmUifS5mYS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZjBjNyJ9LmZhLXNjcmV3ZHJpdmVyOmJlZm9yZXtjb250ZW50OiJcZjU0YSJ9LmZhLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGYwMDIifS5mYS1zZWFyY2gtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDEwIn0uZmEtc2VhcmNoLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBlIn0uZmEtc2hhcGVzOmJlZm9yZXtjb250ZW50OiJcZjYxZiJ9LmZhLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjA2NCJ9LmZhLXNoYXJlLWFsbDpiZWZvcmV7Y29udGVudDoiXGYzNjcifS5mYS1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTEifS5mYS1zaGFyZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0uZmEtc2hpZWxkOmJlZm9yZXtjb250ZW50OiJcZjEzMiJ9LmZhLXNoaWVsZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2VkIn0uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZXtjb250ZW50OiJcZjI5MSJ9LmZhLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDdhIn0uZmEtc2h1dHRsZS12YW46YmVmb3Jle2NvbnRlbnQ6IlxmNWI2In0uZmEtc2lnbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwOTAifS5mYS1zaWduLWluLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjYifS5mYS1zaWduLW91dDpiZWZvcmV7Y29udGVudDoiXGYwOGIifS5mYS1zaWduLW91dC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY1In0uZmEtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjAxMiJ9LmZhLXNpZ25hbC1zdHJlYW06YmVmb3Jle2NvbnRlbnQ6IlxmOGRkIn0uZmEtc2l0ZW1hcDpiZWZvcmV7Y29udGVudDoiXGYwZTgifS5mYS1zbGlkZXJzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRlIn0uZmEtc2xpZGVycy1oLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzZjAifS5mYS1zbGlkZXJzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmM2YxIn0uZmEtc2xpZGVycy12LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzZjIifS5mYS1zbWlsZTpiZWZvcmV7Y29udGVudDoiXGYxMTgifS5mYS1zbXM6YmVmb3Jle2NvbnRlbnQ6IlxmN2NkIn0uZmEtc25vd2ZsYWtlOmJlZm9yZXtjb250ZW50OiJcZjJkYyJ9LmZhLXNvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRjIn0uZmEtc29ydC1hbHBoYS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1ZCJ9LmZhLXNvcnQtYWxwaGEtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgxIn0uZmEtc29ydC1hbHBoYS11cDpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1zb3J0LWFscGhhLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODIifS5mYS1zb3J0LWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODMifS5mYS1zb3J0LWFtb3VudC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9LmZhLXNvcnQtYW1vdW50LWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NCJ9LmZhLXNvcnQtYW1vdW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MSJ9LmZhLXNvcnQtYW1vdW50LXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODUifS5mYS1zb3J0LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUwMzAifS5mYS1zb3J0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZTAzMSJ9LmZhLXNvcnQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZTAzMiJ9LmZhLXNvcnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZGQifS5mYS1zb3J0LW51bWVyaWMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjIifS5mYS1zb3J0LW51bWVyaWMtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg2In0uZmEtc29ydC1udW1lcmljLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9LmZhLXNvcnQtbnVtZXJpYy11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg3In0uZmEtc29ydC1zaGFwZXMtZG93bjpiZWZvcmV7Y29udGVudDoiXGY4ODgifS5mYS1zb3J0LXNoYXBlcy1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODkifS5mYS1zb3J0LXNoYXBlcy11cDpiZWZvcmV7Y29udGVudDoiXGY4OGEifS5mYS1zb3J0LXNoYXBlcy11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhiIn0uZmEtc29ydC1zaXplLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmODhjIn0uZmEtc29ydC1zaXplLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4ZCJ9LmZhLXNvcnQtc2l6ZS11cDpiZWZvcmV7Y29udGVudDoiXGY4OGUifS5mYS1zb3J0LXNpemUtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4ZiJ9LmZhLXNvcnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGRlIn0uZmEtc3BhZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmY0In0uZmEtc3Bpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYxMTAifS5mYS1zcGlubmVyLXRoaXJkOmJlZm9yZXtjb250ZW50OiJcZjNmNCJ9LmZhLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwYzgifS5mYS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjAwNSJ9LmZhLXN0YXItZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmYzIn0uZmEtc3Rhci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjA4OSJ9LmZhLXN0YXItaGFsZi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWMwIn0uZmEtc3RlZXJpbmctd2hlZWw6YmVmb3Jle2NvbnRlbnQ6IlxmNjIyIn0uZmEtc3RpY2t5LW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ5In0uZmEtc3RvcHdhdGNoOmJlZm9yZXtjb250ZW50OiJcZjJmMiJ9LmZhLXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjU0ZSJ9LmZhLXN0b3JlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1NGYifS5mYS1zdWl0Y2FzZS1yb2xsaW5nOmJlZm9yZXtjb250ZW50OiJcZjVjMSJ9LmZhLXN1bjpiZWZvcmV7Y29udGVudDoiXGYxODUifS5mYS1zeW5jOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLXN5bmMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmMSJ9LmZhLXRhYmxldDpiZWZvcmV7Y29udGVudDoiXGYxMGEifS5mYS10YWJsZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmYSJ9LmZhLXRhY2hvbWV0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGU0In0uZmEtdGFjaG9tZXRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZkIn0uZmEtdGFjaG9tZXRlci1hbHQtYXZlcmFnZTpiZWZvcmV7Y29udGVudDoiXGY2MjQifS5mYS10YWNob21ldGVyLWFsdC1mYXN0OmJlZm9yZXtjb250ZW50OiJcZjYyNSJ9LmZhLXRhY2hvbWV0ZXItYWx0LWZhc3Rlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI2In0uZmEtdGFjaG9tZXRlci1hbHQtc2xvdzpiZWZvcmV7Y29udGVudDoiXGY2MjcifS5mYS10YWNob21ldGVyLWFsdC1zbG93ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyOCJ9LmZhLXRhY2hvbWV0ZXItYXZlcmFnZTpiZWZvcmV7Y29udGVudDoiXGY2MjkifS5mYS10YWNob21ldGVyLWZhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJhIn0uZmEtdGFjaG9tZXRlci1mYXN0ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyYiJ9LmZhLXRhY2hvbWV0ZXItc2xvdzpiZWZvcmV7Y29udGVudDoiXGY2MmMifS5mYS10YWNob21ldGVyLXNsb3dlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJkIn0uZmEtdGFnOmJlZm9yZXtjb250ZW50OiJcZjAyYiJ9LmZhLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDJjIn0uZmEtdGF4aTpiZWZvcmV7Y29udGVudDoiXGYxYmEifS5mYS10ZW1wZXJhdHVyZS1oaWdoOmJlZm9yZXtjb250ZW50OiJcZjc2OSJ9LmZhLXRlbXBlcmF0dXJlLWxvdzpiZWZvcmV7Y29udGVudDoiXGY3NmIifS5mYS10ZXh0LWhlaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzQifS5mYS10ZXh0LXdpZHRoOmJlZm9yZXtjb250ZW50OiJcZjAzNSJ9LmZhLXRoZXJtb21ldGVyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMmM5In0uZmEtdGh1bWJzLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTY1In0uZmEtdGh1bWJzLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9LmZhLXRpY2tldDpiZWZvcmV7Y29udGVudDoiXGYxNDUifS5mYS10aWt0b2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDdiIn0uZmEtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBkIn0uZmEtdGltZXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NyJ9LmZhLXRpbWVzLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMmVlIn0uZmEtdGltZXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYyZjAifS5mYS10aW1lcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQzIn0uZmEtdGludDpiZWZvcmV7Y29udGVudDoiXGYwNDMifS5mYS10aXJlOmJlZm9yZXtjb250ZW50OiJcZjYzMSJ9LmZhLXRpcmUtZmxhdDpiZWZvcmV7Y29udGVudDoiXGY2MzIifS5mYS10aXJlLXByZXNzdXJlLXdhcm5pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNjMzIn0uZmEtdGlyZS1ydWdnZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjM0In0uZmEtdG9nZ2xlLW9mZjpiZWZvcmV7Y29udGVudDoiXGYyMDQifS5mYS10b2dnbGUtb246YmVmb3Jle2NvbnRlbnQ6IlxmMjA1In0uZmEtdG9vbHM6YmVmb3Jle2NvbnRlbnQ6IlxmN2Q5In0uZmEtdHJhaWxlcjpiZWZvcmV7Y29udGVudDoiXGUwNDEifS5mYS10cmFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjgifS5mYS10cmFzaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVkIn0uZmEtdHJhc2gtcmVzdG9yZTpiZWZvcmV7Y29udGVudDoiXGY4MjkifS5mYS10cmFzaC1yZXN0b3JlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4MmEifS5mYS10cmFzaC11bmRvOmJlZm9yZXtjb250ZW50OiJcZjg5NSJ9LmZhLXRyYXNoLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg5NiJ9LmZhLXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OiJcZjJlYyJ9LmZhLXRyb3BoeTpiZWZvcmV7Y29udGVudDoiXGYwOTEifS5mYS10cm9waHktYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYiJ9LmZhLXRydWNrOmJlZm9yZXtjb250ZW50OiJcZjBkMSJ9LmZhLXRydWNrLWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNGRlIn0uZmEtdHJ1Y2stbW9uc3RlcjpiZWZvcmV7Y29udGVudDoiXGY2M2IifS5mYS10cnVjay1waWNrdXA6YmVmb3Jle2NvbnRlbnQ6IlxmNjNjIn0uZmEtdHR5OmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9LmZhLXR2OmJlZm9yZXtjb250ZW50OiJcZjI2YyJ9LmZhLXR3aXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDk5In0uZmEtdHdpdHRlci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgxIn0uZmEtdW5kbzpiZWZvcmV7Y29udGVudDoiXGYwZTIifS5mYS11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWEifS5mYS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDkzIn0uZmEtdXNkLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyZTgifS5mYS11c2Qtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJlOSJ9LmZhLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA3In0uZmEtdXNlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDA2In0uZmEtdXNlci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY0ZmMifS5mYS11c2VyLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyYmQifS5mYS11c2VyLWZyaWVuZHM6YmVmb3Jle2NvbnRlbnQ6IlxmNTAwIn0uZmEtdXNlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGMwIn0uZmEtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMDNkIn0uZmEtdm9pY2VtYWlsOmJlZm9yZXtjb250ZW50OiJcZjg5NyJ9LmZhLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGY2YTgifS5mYS12b2x1bWUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS12b2x1bWUtbXV0ZTpiZWZvcmV7Y29udGVudDoiXGY2YTkifS5mYS12b2x1bWUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAyNiJ9LmZhLXZvbHVtZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYyZTIifS5mYS12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDI4In0uZmEtd2Fnb24tY292ZXJlZDpiZWZvcmV7Y29udGVudDoiXGY4ZWUifS5mYS13YWxraWUtdGFsa2llOmJlZm9yZXtjb250ZW50OiJcZjhlZiJ9LmZhLXdlYmNhbTpiZWZvcmV7Y29udGVudDoiXGY4MzIifS5mYS13ZWJjYW0tc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmODMzIn0uZmEtd2hlZWxjaGFpcjpiZWZvcmV7Y29udGVudDoiXGYxOTMifS5mYS13aWZpOmJlZm9yZXtjb250ZW50OiJcZjFlYiJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS15b3V0dWJlOmJlZm9yZXtjb250ZW50OiJcZjE2NyJ9LmZhLXlvdXR1YmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQzMSJ9LmZhLXNoaWVsZC1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyZjcifS5mYS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjBjMSJ9LmZhLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYxMjcifS5mYS1iYWRnZS1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjQ1In0uZmEtcGVuLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGIifS5mYS1jb21tZW50LWFsdC1kb3RzOmJlZm9yZXtjb250ZW50OiJcZjRhMyJ9LmZhLWFycm93LWRvd24tdG8tbGluZTpiZWZvcmV7Y29udGVudDoiXGYzM2QifS5mYS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTYiO30uc3Itb25seXtib3JkZXI6MDtjbGlwOnJlY3QoMCwwLDAsMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLC5zci1vbmx5LWZvY3VzYWJsZTpmb2N1c3tjbGlwOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luOjA7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpzdGF0aWM7d2lkdGg6YXV0b31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBCcmFuZHMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFie2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBCcmFuZHMnO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjMwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFse2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtd2VpZ2h0OjMwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmFye2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtd2VpZ2h0OjQwMH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjkwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLnN2ZyNmb250YXdlc29tZSkgZm9ybWF0KCJzdmciKX0uZmEsLmZhc3tmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJyFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6OTAwfUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6J0QyQ0N1c3RvbUljb25zJztzcmM6bG9jYWwoRDJDQ3VzdG9tSWNvbnMpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLnN2ZyNzdmdGb250TmFtZSkgZm9ybWF0KCJzdmciKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9LmZhLXgtdHdpdHRlcjpiZWZvcmV7Zm9udC1mYW1pbHk6J0QyQ0N1c3RvbUljb25zJyxzZXJpZjtjb250ZW50OiJcZTkwMCI7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9Ci8qKiAvY3NzL2ZvbnQtYXdlc29tZS5jb250ZW50Lm1pbi5jc3MgKiovCi5mYS01MDBweDpiZWZvcmV7Y29udGVudDoiXGYyNmUifS5mYS1hY2Nlc3NpYmxlLWljb246YmVmb3Jle2NvbnRlbnQ6IlxmMzY4In0uZmEtYWNjdXNvZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY5In0uZmEtYWRkcmVzcy1ib29rOmJlZm9yZXtjb250ZW50OiJcZjJiOSJ9LmZhLWFkZHJlc3MtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYmIifS5mYS1hZGp1c3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDQyIn0uZmEtYWRuOmJlZm9yZXtjb250ZW50OiJcZjE3MCJ9LmZhLWFkdmVyc2FsOmJlZm9yZXtjb250ZW50OiJcZjM2YSJ9LmZhLWFmZmlsaWF0ZXRoZW1lOmJlZm9yZXtjb250ZW50OiJcZjM2YiJ9LmZhLWFsZ29saWE6YmVmb3Jle2NvbnRlbnQ6IlxmMzZjIn0uZmEtYWxpZ24tY2VudGVyOmJlZm9yZXtjb250ZW50OiJcZjAzNyJ9LmZhLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMDM5In0uZmEtYWxpZ24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwMzYifS5mYS1hbGlnbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzgifS5mYS1hbWF6b246YmVmb3Jle2NvbnRlbnQ6IlxmMjcwIn0uZmEtYW1hem9uLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MmMifS5mYS1hbWJ1bGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGY5In0uZmEtYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMmEzIn0uZmEtYW1pbGlhOmJlZm9yZXtjb250ZW50OiJcZjM2ZCJ9LmZhLWFuY2hvcjpiZWZvcmV7Y29udGVudDoiXGYxM2QifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWFuZ2VsbGlzdDpiZWZvcmV7Y29udGVudDoiXGYyMDkifS5mYS1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDMifS5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDAifS5mYS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAxIn0uZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwMiJ9LmZhLWFuZ2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTA3In0uZmEtYW5nbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDQifS5mYS1hbmdsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDUifS5mYS1hbmdsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDYifS5mYS1hbmdyeWNyZWF0aXZlOmJlZm9yZXtjb250ZW50OiJcZjM2ZSJ9LmZhLWFuZ3VsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDIwIn0uZmEtYXBwLXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjM2ZiJ9LmZhLWFwcC1zdG9yZS1pb3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzcwIn0uZmEtYXBwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzcxIn0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtYXBwbGUtcGF5OmJlZm9yZXtjb250ZW50OiJcZjQxNSJ9LmZhLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTg3In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1OCJ9LmZhLWFycm93LWFsdC1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTkifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1YSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzViIn0uZmEtYXJyb3ctY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGFiIn0uZmEtYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE4In0uZmEtYXJyb3ctY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhOSJ9LmZhLWFycm93LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYwYWEifS5mYS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA2MyJ9LmZhLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYwIn0uZmEtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYxIn0uZmEtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDYyIn0uZmEtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwYjIifS5mYS1hcnJvd3MtYWx0LWg6YmVmb3Jle2NvbnRlbnQ6IlxmMzM3In0uZmEtYXJyb3dzLWFsdC12OmJlZm9yZXtjb250ZW50OiJcZjMzOCJ9LmZhLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczpiZWZvcmV7Y29udGVudDoiXGYyYTIifS5mYS1hc3RlcmlzazpiZWZvcmV7Y29udGVudDoiXGYwNjkifS5mYS1hc3ltbWV0cmlrOmJlZm9yZXtjb250ZW50OiJcZjM3MiJ9LmZhLWF0OmJlZm9yZXtjb250ZW50OiJcZjFmYSJ9LmZhLWF1ZGlibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzczIn0uZmEtYXVkaW8tZGVzY3JpcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMjllIn0uZmEtYXV0b3ByZWZpeGVyOmJlZm9yZXtjb250ZW50OiJcZjQxYyJ9LmZhLWF2aWFuZXg6YmVmb3Jle2NvbnRlbnQ6IlxmMzc0In0uZmEtYXZpYXRvOmJlZm9yZXtjb250ZW50OiJcZjQyMSJ9LmZhLWF3czpiZWZvcmV7Y29udGVudDoiXGYzNzUifS5mYS1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNGEifS5mYS1iYWxhbmNlLXNjYWxlOmJlZm9yZXtjb250ZW50OiJcZjI0ZSJ9LmZhLWJhbjpiZWZvcmV7Y29udGVudDoiXGYwNWUifS5mYS1iYW5kY2FtcDpiZWZvcmV7Y29udGVudDoiXGYyZDUifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyYSJ9LmZhLWJhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM5In0uZmEtYmFzZWJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzMifS5mYS1iYXNrZXRiYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM0In0uZmEtYmF0aDpiZWZvcmV7Y29udGVudDoiXGYyY2QifS5mYS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjI0NCJ9LmZhLWJhdHRlcnktZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyNDAifS5mYS1iYXR0ZXJ5LWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjQyIn0uZmEtYmF0dGVyeS1xdWFydGVyOmJlZm9yZXtjb250ZW50OiJcZjI0MyJ9LmZhLWJhdHRlcnktdGhyZWUtcXVhcnRlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjQxIn0uZmEtYmVkOmJlZm9yZXtjb250ZW50OiJcZjIzNiJ9LmZhLWJlZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGZjIn0uZmEtYmVoYW5jZTpiZWZvcmV7Y29udGVudDoiXGYxYjQifS5mYS1iZWhhbmNlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxYjUifS5mYS1iZWxsOmJlZm9yZXtjb250ZW50OiJcZjBmMyJ9LmZhLWJlbGwtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY2In0uZmEtYmljeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMDYifS5mYS1iaW1vYmplY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMzc4In0uZmEtYmlub2N1bGFyczpiZWZvcmV7Y29udGVudDoiXGYxZTUifS5mYS1iaXJ0aGRheS1jYWtlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9LmZhLWJpdGJ1Y2tldDpiZWZvcmV7Y29udGVudDoiXGYxNzEifS5mYS1iaXRjb2luOmJlZm9yZXtjb250ZW50OiJcZjM3OSJ9LmZhLWJpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMzdhIn0uZmEtYmxhY2stdGllOmJlZm9yZXtjb250ZW50OiJcZjI3ZSJ9LmZhLWJsYWNrYmVycnk6YmVmb3Jle2NvbnRlbnQ6IlxmMzdiIn0uZmEtYmxpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjlkIn0uZmEtYmxvZ2dlcjpiZWZvcmV7Y29udGVudDoiXGYzN2MifS5mYS1ibG9nZ2VyLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdkIn0uZmEtYmx1ZXRvb3RoOmJlZm9yZXtjb250ZW50OiJcZjI5MyJ9LmZhLWJsdWV0b290aC1iOmJlZm9yZXtjb250ZW50OiJcZjI5NCJ9LmZhLWJvbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDMyIn0uZmEtYm9sdDpiZWZvcmV7Y29udGVudDoiXGYwZTcifS5mYS1ib21iOmJlZm9yZXtjb250ZW50OiJcZjFlMiJ9LmZhLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDJkIn0uZmEtYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMDJlIn0uZmEtYm93bGluZy1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzNiJ9LmZhLWJyYWlsbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmExIn0uZmEtYnJpZWZjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBiMSJ9LmZhLWJ0YzpiZWZvcmV7Y29udGVudDoiXGYxNWEifS5mYS1idWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0uZmEtYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWFkIn0uZmEtYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6IlxmMGExIn0uZmEtYnVsbHNleWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQwIn0uZmEtYnVyb21vYmVsZXhwZXJ0ZTpiZWZvcmV7Y29udGVudDoiXGYzN2YifS5mYS1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0uZmEtYnV5c2VsbGFkczpiZWZvcmV7Y29udGVudDoiXGYyMGQifS5mYS1jYWxjdWxhdG9yOmJlZm9yZXtjb250ZW50OiJcZjFlYyJ9LmZhLWNhbGVuZGFyOmJlZm9yZXtjb250ZW50OiJcZjEzMyJ9LmZhLWNhbGVuZGFyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYwNzMifS5mYS1jYWxlbmRhci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYyNzQifS5mYS1jYWxlbmRhci1taW51czpiZWZvcmV7Y29udGVudDoiXGYyNzIifS5mYS1jYWxlbmRhci1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjI3MSJ9LmZhLWNhbGVuZGFyLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjI3MyJ9LmZhLWNhbWVyYTpiZWZvcmV7Y29udGVudDoiXGYwMzAifS5mYS1jYW1lcmEtcmV0cm86YmVmb3Jle2NvbnRlbnQ6IlxmMDgzIn0uZmEtY2FyOmJlZm9yZSwuZmEtYXV0b21vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxYjkifS5mYS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkNyJ9LmZhLWNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ5In0uZmEtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRhIn0uZmEtY2FyZXQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0uZmEtY2FyZXQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0uZmEtY2FyZXQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE1MiJ9LmZhLWNhcmV0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJ0LWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMjE4In0uZmEtY2FydC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIxNyJ9LmZhLWNjLWFtYXpvbi1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDJkIn0uZmEtY2MtYW1leDpiZWZvcmV7Y29udGVudDoiXGYxZjMifS5mYS1jYy1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE2In0uZmEtY2MtZGluZXJzLWNsdWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjRjIn0uZmEtY2MtZGlzY292ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWYyIn0uZmEtY2MtamNiOmJlZm9yZXtjb250ZW50OiJcZjI0YiJ9LmZhLWNjLW1hc3RlcmNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWYxIn0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLWNjLXN0cmlwZTpiZWZvcmV7Y29udGVudDoiXGYxZjUifS5mYS1jYy12aXNhOmJlZm9yZXtjb250ZW50OiJcZjFmMCJ9LmZhLWNlbnRlcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzgwIn0uZmEtY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGEzIn0uZmEtY2hhcnQtYXJlYTpiZWZvcmV7Y29udGVudDoiXGYxZmUifS5mYS1jaGFydC1iYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDgwIn0uZmEtY2hhcnQtbGluZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifS5mYS1jaGFydC1waWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAwIn0uZmEtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDBjIn0uZmEtY2hlY2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OCJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1jaGVzczpiZWZvcmV7Y29udGVudDoiXGY0MzkifS5mYS1jaGVzcy1iaXNob3A6YmVmb3Jle2NvbnRlbnQ6IlxmNDNhIn0uZmEtY2hlc3MtYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDNjIn0uZmEtY2hlc3Mta2luZzpiZWZvcmV7Y29udGVudDoiXGY0M2YifS5mYS1jaGVzcy1rbmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDQxIn0uZmEtY2hlc3MtcGF3bjpiZWZvcmV7Y29udGVudDoiXGY0NDMifS5mYS1jaGVzcy1xdWVlbjpiZWZvcmV7Y29udGVudDoiXGY0NDUifS5mYS1jaGVzcy1yb29rOmJlZm9yZXtjb250ZW50OiJcZjQ0NyJ9LmZhLWNoZXZyb24tY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTNhIn0uZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMzcifS5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMzgifS5mYS1jaGV2cm9uLWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMzkifS5mYS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDc4In0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA1MyJ9LmZhLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDU0In0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1jaGlsZDpiZWZvcmV7Y29udGVudDoiXGYxYWUifS5mYS1jaHJvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjY4In0uZmEtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjExMSJ9LmZhLWNpcmNsZS1ub3RjaDpiZWZvcmV7Y29udGVudDoiXGYxY2UifS5mYS1jbGlwYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzI4In0uZmEtY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDE3In0uZmEtY2xvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRkIn0uZmEtY2xvc2VkLWNhcHRpb25pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMjBhIn0uZmEtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGMyIn0uZmEtY2xvdWQtZG93bmxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MSJ9LmZhLWNsb3VkLXVwbG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgyIn0uZmEtY2xvdWRzY2FsZTpiZWZvcmV7Y29udGVudDoiXGYzODMifS5mYS1jbG91ZHNtaXRoOmJlZm9yZXtjb250ZW50OiJcZjM4NCJ9LmZhLWNsb3VkdmVyc2lmeTpiZWZvcmV7Y29udGVudDoiXGYzODUifS5mYS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjEyMSJ9LmZhLWNvZGUtYnJhbmNoOmJlZm9yZXtjb250ZW50OiJcZjEyNiJ9LmZhLWNvZGVwZW46YmVmb3Jle2NvbnRlbnQ6IlxmMWNiIn0uZmEtY29kaWVwaWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjg0In0uZmEtY29mZmVlOmJlZm9yZXtjb250ZW50OiJcZjBmNCJ9LmZhLWNvZzpiZWZvcmV7Y29udGVudDoiXGYwMTMifS5mYS1jb2dzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWdlYXJzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWNvbHVtbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGRiIn0uZmEtY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYwNzUifS5mYS1jb21tZW50LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyN2EifS5mYS1jb21tZW50czpiZWZvcmV7Y29udGVudDoiXGYwODYifS5mYS1jb21wYXNzOmJlZm9yZXtjb250ZW50OiJcZjE0ZSJ9LmZhLWNvbXByZXNzOmJlZm9yZXtjb250ZW50OiJcZjA2NiJ9LmZhLWNvbm5lY3RkZXZlbG9wOmJlZm9yZXtjb250ZW50OiJcZjIwZSJ9LmZhLWNvbnRhbzpiZWZvcmV7Y29udGVudDoiXGYyNmQifS5mYS1jb3B5OmJlZm9yZXtjb250ZW50OiJcZjBjNSJ9LmZhLWNvcHlyaWdodDpiZWZvcmV7Y29udGVudDoiXGYxZjkifS5mYS1jcGFuZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzg4In0uZmEtY3JlYXRpdmUtY29tbW9uczpiZWZvcmV7Y29udGVudDoiXGYyNWUifS5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1jcm9wOmJlZm9yZXtjb250ZW50OiJcZjEyNSJ9LmZhLWNyb3NzaGFpcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDViIn0uZmEtY3NzMzpiZWZvcmV7Y29udGVudDoiXGYxM2MifS5mYS1jc3MzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOGIifS5mYS1jdWJlOmJlZm9yZXtjb250ZW50OiJcZjFiMiJ9LmZhLWN1YmVzOmJlZm9yZXtjb250ZW50OiJcZjFiMyJ9LmZhLWN1dDpiZWZvcmV7Y29udGVudDoiXGYwYzQifS5mYS1jdXR0bGVmaXNoOmJlZm9yZXtjb250ZW50OiJcZjM4YyJ9LmZhLWQtYW5kLWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzhkIn0uZmEtZGFzaGN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZGVhZjpiZWZvcmV7Y29udGVudDoiXGYyYTQifS5mYS1kZWxpY2lvdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0uZmEtZGVwbG95ZG9nOmJlZm9yZXtjb250ZW50OiJcZjM4ZSJ9LmZhLWRlc2twcm86YmVmb3Jle2NvbnRlbnQ6IlxmMzhmIn0uZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDoiXGYxMDgifS5mYS1kZXZpYW50YXJ0OmJlZm9yZXtjb250ZW50OiJcZjFiZCJ9LmZhLWRpZ2c6YmVmb3Jle2NvbnRlbnQ6IlxmMWE2In0uZmEtZGlnaXRhbC1vY2VhbjpiZWZvcmV7Y29udGVudDoiXGYzOTEifS5mYS1kaXNjb3JkOmJlZm9yZXtjb250ZW50OiJcZjM5MiJ9LmZhLWRpc2NvdXJzZTpiZWZvcmV7Y29udGVudDoiXGYzOTMifS5mYS1kb2NodWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzk0In0uZmEtZG9ja2VyOmJlZm9yZXtjb250ZW50OiJcZjM5NSJ9LmZhLWRvbGxhci1zaWduOmJlZm9yZSwuZmEtZG9sbGFyOmJlZm9yZSwuZmEtdXNkOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9LmZhLWRvdC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTkyIn0uZmEtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE5In0uZmEtZHJhZnQyZGlnaXRhbDpiZWZvcmV7Y29udGVudDoiXGYzOTYifS5mYS1kcmliYmJsZTpiZWZvcmV7Y29udGVudDoiXGYxN2QifS5mYS1kcmliYmJsZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzk3In0uZmEtZHJvcGJveDpiZWZvcmV7Y29udGVudDoiXGYxNmIifS5mYS1kcnVwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWE5In0uZmEtZHlhbG9nOmJlZm9yZXtjb250ZW50OiJcZjM5OSJ9LmZhLWVhcmx5YmlyZHM6YmVmb3Jle2NvbnRlbnQ6IlxmMzlhIn0uZmEtZWRnZTpiZWZvcmV7Y29udGVudDoiXGYyODIifS5mYS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjA0NCJ9LmZhLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZjA1MiJ9LmZhLWVsZW1lbnRvcjpiZWZvcmV7Y29udGVudDoiXGY0MzAifS5mYS1lbGxpcHNpcy1oOmJlZm9yZXtjb250ZW50OiJcZjE0MSJ9LmZhLWVsbGlwc2lzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMTQyIn0uZmEtZW1iZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDIzIn0uZmEtZW1waXJlOmJlZm9yZXtjb250ZW50OiJcZjFkMSJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OiJcZjBlMCJ9LmZhLWVudmVsb3BlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMmI2In0uZmEtZW52ZWxvcGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5OSJ9LmZhLWVudmlyYTpiZWZvcmV7Y29udGVudDoiXGYyOTkifS5mYS1lcmFzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTJkIn0uZmEtZXJsYW5nOmJlZm9yZXtjb250ZW50OiJcZjM5ZCJ9LmZhLWV0aGVyZXVtOmJlZm9yZXtjb250ZW50OiJcZjQyZSJ9LmZhLWV0c3k6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ3In0uZmEtZXVyby1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1MyJ9LmZhLWV4Y2hhbmdlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjIifS5mYS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMmEifS5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZhIn0uZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcxIn0uZmEtZXhwYW5kOmJlZm9yZXtjb250ZW50OiJcZjA2NSJ9LmZhLWV4cGFuZC1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMxZSJ9LmZhLWV4cGVkaXRlZHNzbDpiZWZvcmV7Y29udGVudDoiXGYyM2UifS5mYS1leHRlcm5hbC1saW5rLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWQifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYwIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OiJcZjA2ZSJ9LmZhLWV5ZS1kcm9wcGVyOmJlZm9yZXtjb250ZW50OiJcZjFmYiJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS1mYWNlYm9vazpiZWZvcmV7Y29udGVudDoiXGYwOWEifS5mYS1mYWNlYm9vay1mOmJlZm9yZXtjb250ZW50OiJcZjM5ZSJ9LmZhLWZhY2Vib29rLW1lc3NlbmdlcjpiZWZvcmV7Y29udGVudDoiXGYzOWYifS5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgyIn0uZmEtZmFzdC1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNDkifS5mYS1mYXN0LWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUwIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxODIifS5mYS1maWdodGVyLWpldDpiZWZvcmV7Y29udGVudDoiXGYwZmIifS5mYS1maWxlOmJlZm9yZSwuZmEtZmlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9LmZhLWZpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLWZpbGUtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxYzYifS5mYS1maWxlLWF1ZGlvOmJlZm9yZXtjb250ZW50OiJcZjFjNyJ9LmZhLWZpbGUtY29kZTpiZWZvcmV7Y29udGVudDoiXGYxYzkifS5mYS1maWxlLWV4Y2VsOmJlZm9yZXtjb250ZW50OiJcZjFjMyJ9LmZhLWZpbGUtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWM1In0uZmEtZmlsZS1wZGY6YmVmb3Jle2NvbnRlbnQ6IlxmMWMxIn0uZmEtZmlsZS1wb3dlcnBvaW50OmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9LmZhLWZpbGUtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM4In0uZmEtZmlsZS13b3JkOmJlZm9yZXtjb250ZW50OiJcZjFjMiJ9LmZhLWZpbG06YmVmb3Jle2NvbnRlbnQ6IlxmMDA4In0uZmEtZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjBiMCJ9LmZhLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZkIn0uZmEtZmlyZS1leHRpbmd1aXNoZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTM0In0uZmEtZmlyZWZveDpiZWZvcmV7Y29udGVudDoiXGYyNjkifS5mYS1maXJzdC1vcmRlcjpiZWZvcmV7Y29udGVudDoiXGYyYjAifS5mYS1maXJzdGRyYWZ0OmJlZm9yZXtjb250ZW50OiJcZjNhMSJ9LmZhLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDI0In0uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0uZmEtZmxhc2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGMzIn0uZmEtZmxpY2tyOmJlZm9yZXtjb250ZW50OiJcZjE2ZSJ9LmZhLWZsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGY0NGQifS5mYS1mbHk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE3In0uZmEtZm9sZGVyOmJlZm9yZXtjb250ZW50OiJcZjA3YiJ9LmZhLWZvbGRlci1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjA3YyJ9LmZhLWZvbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDMxIn0uZmEtZm9udC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZjJiNCJ9LmZhLWZvbnQtYXdlc29tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVjIn0uZmEtZm9udC1hd2Vzb21lLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmNDI1In0uZmEtZm9udGljb25zOmJlZm9yZXtjb250ZW50OiJcZjI4MCJ9LmZhLWZvbnRpY29ucy1maTpiZWZvcmV7Y29udGVudDoiXGYzYTIifS5mYS1mb290YmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ0ZSJ9LmZhLWZvcnQtYXdlc29tZTpiZWZvcmV7Y29udGVudDoiXGYyODYifS5mYS1mb3J0LWF3ZXNvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNhMyJ9LmZhLWZvcnVtYmVlOmJlZm9yZXtjb250ZW50OiJcZjIxMSJ9LmZhLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRlIn0uZmEtZm91cnNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxODAifS5mYS1mcmVlLWNvZGUtY2FtcDpiZWZvcmV7Y29udGVudDoiXGYyYzUifS5mYS1mcmVlYnNkOmJlZm9yZXtjb250ZW50OiJcZjNhNCJ9LmZhLWZyb3duOmJlZm9yZXtjb250ZW50OiJcZjExOSJ9LmZhLWZ1dGJvbDpiZWZvcmV7Y29udGVudDoiXGYxZTMifS5mYS1nYW1lcGFkOmJlZm9yZXtjb250ZW50OiJcZjExYiJ9LmZhLWdhdmVsOmJlZm9yZXtjb250ZW50OiJcZjBlMyJ9LmZhLWdlbTpiZWZvcmV7Y29udGVudDoiXGYzYTUifS5mYS1nZW5kZXJsZXNzOmJlZm9yZXtjb250ZW50OiJcZjIyZCJ9LmZhLWdldC1wb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjY1In0uZmEtZ2c6YmVmb3Jle2NvbnRlbnQ6IlxmMjYwIn0uZmEtZ2ctY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI2MSJ9LmZhLWdpZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDZiIn0uZmEtZ2l0OmJlZm9yZXtjb250ZW50OiJcZjFkMyJ9LmZhLWdpdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQyIn0uZmEtZ2l0aHViOmJlZm9yZXtjb250ZW50OiJcZjA5YiJ9LmZhLWdpdGh1Yi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTEzIn0uZmEtZ2l0aHViLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTIifS5mYS1naXRrcmFrZW46YmVmb3Jle2NvbnRlbnQ6IlxmM2E2In0uZmEtZ2l0bGFiOmJlZm9yZXtjb250ZW50OiJcZjI5NiJ9LmZhLWdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGY0MjYifS5mYS1nbGFzcy1tYXJ0aW5pOmJlZm9yZXtjb250ZW50OiJcZjAwMCJ9LmZhLWdsaWRlOmJlZm9yZXtjb250ZW50OiJcZjJhNSJ9LmZhLWdsaWRlLWc6YmVmb3Jle2NvbnRlbnQ6IlxmMmE2In0uZmEtZ2xvYmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGFjIn0uZmEtZ29mb3JlOmJlZm9yZXtjb250ZW50OiJcZjNhNyJ9LmZhLWdvbGYtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NTAifS5mYS1nb29kcmVhZHM6YmVmb3Jle2NvbnRlbnQ6IlxmM2E4In0uZmEtZ29vZHJlYWRzLWc6YmVmb3Jle2NvbnRlbnQ6IlxmM2E5In0uZmEtZ29vZ2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMCJ9LmZhLWdvb2dsZS1kcml2ZTpiZWZvcmV7Y29udGVudDoiXGYzYWEifS5mYS1nb29nbGUtcGxheTpiZWZvcmV7Y29udGVudDoiXGYzYWIifS5mYS1nb29nbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyYjMifS5mYS1nb29nbGUtcGx1cy1nOmJlZm9yZXtjb250ZW50OiJcZjBkNSJ9LmZhLWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDQifS5mYS1nb29nbGUtd2FsbGV0OmJlZm9yZXtjb250ZW50OiJcZjFlZSJ9LmZhLWdyYWR1YXRpb24tY2FwOmJlZm9yZXtjb250ZW50OiJcZjE5ZCJ9LmZhLWdyYXRpcGF5OmJlZm9yZXtjb250ZW50OiJcZjE4NCJ9LmZhLWdyYXY6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ2In0uZmEtZ3JpcGZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2FjIn0uZmEtZ3J1bnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2FkIn0uZmEtZ3VscDpiZWZvcmV7Y29udGVudDoiXGYzYWUifS5mYS1oLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmQifS5mYS1oYWNrZXItbmV3czpiZWZvcmV7Y29udGVudDoiXGYxZDQifS5mYS1oYWNrZXItbmV3cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2FmIn0uZmEtaGFuZC1saXphcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjU4In0uZmEtaGFuZC1wYXBlcjpiZWZvcmV7Y29udGVudDoiXGYyNTYifS5mYS1oYW5kLXBlYWNlOmJlZm9yZXtjb250ZW50OiJcZjI1YiJ9LmZhLWhhbmQtcG9pbnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYTcifS5mYS1oYW5kLXBvaW50LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE1In0uZmEtaGFuZC1wb2ludC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTQifS5mYS1oYW5kLXBvaW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjBhNiJ9LmZhLWhhbmQtcG9pbnRlcjpiZWZvcmUsLmZhLWhhbmQtcG9pbnRlci1vOmJlZm9yZXtjb250ZW50OiJcZjI1YSJ9LmZhLWhhbmQtcm9jazpiZWZvcmV7Y29udGVudDoiXGYyNTUifS5mYS1oYW5kLXNjaXNzb3JzOmJlZm9yZXtjb250ZW50OiJcZjI1NyJ9LmZhLWhhbmQtc3BvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjU5In0uZmEtaGFuZHNoYWtlOmJlZm9yZXtjb250ZW50OiJcZjJiNSJ9LmZhLWhhc2h0YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkyIn0uZmEtaGRkOmJlZm9yZXtjb250ZW50OiJcZjBhMCJ9LmZhLWhlYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWRjIn0uZmEtaGVhZHBob25lczpiZWZvcmV7Y29udGVudDoiXGYwMjUifS5mYS1oZWFydDpiZWZvcmV7Y29udGVudDoiXGYwMDQifS5mYS1oZWFydGJlYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFlIn0uZmEtaGlwczpiZWZvcmV7Y29udGVudDoiXGY0NTIifS5mYS1oaXJlLWEtaGVscGVyOmJlZm9yZXtjb250ZW50OiJcZjNiMCJ9LmZhLWhpc3Rvcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWRhIn0uZmEtaG9ja2V5LXB1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmNDUzIn0uZmEtaG9tZTpiZWZvcmV7Y29udGVudDoiXGYwMTUifS5mYS1ob29saTpiZWZvcmV7Y29udGVudDoiXGY0MjcifS5mYS1ob3NwaXRhbDpiZWZvcmV7Y29udGVudDoiXGYwZjgifS5mYS1ob3RqYXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2IxIn0uZmEtaG91cmdsYXNzOmJlZm9yZXtjb250ZW50OiJcZjI1NCJ9LmZhLWhvdXJnbGFzcy1lbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUzIn0uZmEtaG91cmdsYXNzLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjUyIn0uZmEtaG91cmdsYXNzLXN0YXJ0OmJlZm9yZXtjb250ZW50OiJcZjI1MSJ9LmZhLWhvdXp6OmJlZm9yZXtjb250ZW50OiJcZjI3YyJ9LmZhLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjEzYiJ9LmZhLWh1YnNwb3Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2IyIn0uZmEtaS1jdXJzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ2In0uZmEtaWQtYmFkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmMxIn0uZmEtaWQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYzIifS5mYS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYwM2UifS5mYS1pbWFnZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzAyIn0uZmEtaW1kYjpiZWZvcmV7Y29udGVudDoiXGYyZDgifS5mYS1pbmJveDpiZWZvcmV7Y29udGVudDoiXGYwMWMifS5mYS1pbmRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDNjIn0uZmEtaW5kdXN0cnk6YmVmb3Jle2NvbnRlbnQ6IlxmMjc1In0uZmEtaW5mbzpiZWZvcmV7Y29udGVudDoiXGYxMjkifS5mYS1pbmZvLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNWEifS5mYS1pbnN0YWdyYW06YmVmb3Jle2NvbnRlbnQ6IlxmMTZkIn0uZmEtaW50ZXJuZXQtZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjZiIn0uZmEtaW94aG9zdDpiZWZvcmV7Y29udGVudDoiXGYyMDgifS5mYS1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDMzIn0uZmEtaXR1bmVzOmJlZm9yZXtjb250ZW50OiJcZjNiNCJ9LmZhLWl0dW5lcy1ub3RlOmJlZm9yZXtjb250ZW50OiJcZjNiNSJ9LmZhLWplbmtpbnM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I2In0uZmEtam9nZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2I3In0uZmEtam9vbWxhOmJlZm9yZXtjb250ZW50OiJcZjFhYSJ9LmZhLWpzOmJlZm9yZXtjb250ZW50OiJcZjNiOCJ9LmZhLWpzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzYjkifS5mYS1qc2ZpZGRsZTpiZWZvcmV7Y29udGVudDoiXGYxY2MifS5mYS1rZXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDg0In0uZmEta2V5Ym9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFjIn0uZmEta2V5Y2RuOmJlZm9yZXtjb250ZW50OiJcZjNiYSJ9LmZhLWtpY2tzdGFydGVyOmJlZm9yZXtjb250ZW50OiJcZjNiYiJ9LmZhLWtpY2tzdGFydGVyLWs6YmVmb3Jle2NvbnRlbnQ6IlxmM2JjIn0uZmEta29ydnVlOmJlZm9yZXtjb250ZW50OiJcZjQyZiJ9LmZhLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjFhYiJ9LmZhLWxhcHRvcDpiZWZvcmV7Y29udGVudDoiXGYxMDkifS5mYS1sYXJhdmVsOmJlZm9yZXtjb250ZW50OiJcZjNiZCJ9LmZhLWxhc3RmbTpiZWZvcmV7Y29udGVudDoiXGYyMDIifS5mYS1sYXN0Zm0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjIwMyJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtbGVhbnB1YjpiZWZvcmV7Y29udGVudDoiXGYyMTIifS5mYS1sZW1vbjpiZWZvcmV7Y29udGVudDoiXGYwOTQifS5mYS1sZXNzOmJlZm9yZXtjb250ZW50OiJcZjQxZCJ9LmZhLWxldmVsLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZSJ9LmZhLWxldmVsLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmYifS5mYS1saWZlLXJpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWNkIn0uZmEtbGlnaHRidWxiOmJlZm9yZXtjb250ZW50OiJcZjBlYiJ9LmZhLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2MwIn0uZmEtbGluazpiZWZvcmV7Y29udGVudDoiXGYwYzEifS5mYS1saW5rZWRpbjpiZWZvcmV7Y29udGVudDoiXGYwOGMifS5mYS1saW5rZWRpbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwZTEifS5mYS1saW5vZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI4In0uZmEtbGludXg6YmVmb3Jle2NvbnRlbnQ6IlxmMTdjIn0uZmEtbGlyYS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE5NSJ9LmZhLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDNhIn0uZmEtbGlzdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDIyIn0uZmEtbGlzdC1vbDpiZWZvcmV7Y29udGVudDoiXGYwY2IifS5mYS1saXN0LXVsOmJlZm9yZXtjb250ZW50OiJcZjBjYSJ9LmZhLWxvY2F0aW9uLWFycm93OmJlZm9yZXtjb250ZW50OiJcZjEyNCJ9LmZhLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDIzIn0uZmEtbG9jay1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjNjMSJ9LmZhLWxvbmctYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzA5In0uZmEtbG9uZy1hcnJvdy1hbHQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMGEifS5mYS1sb25nLWFycm93LWFsdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMGIifS5mYS1sb25nLWFycm93LWFsdC11cDpiZWZvcmV7Y29udGVudDoiXGYzMGMifS5mYS1sb3ctdmlzaW9uOmJlZm9yZXtjb250ZW50OiJcZjJhOCJ9LmZhLWx5ZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2MzIn0uZmEtbWFnZW50bzpiZWZvcmV7Y29udGVudDoiXGYzYzQifS5mYS1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS1tYWduZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc2In0uZmEtbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxODMifS5mYS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjc5In0uZmEtbWFwLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYwNDEifS5mYS1tYXAtbWFya2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYzUifS5mYS1tYXAtcGluOmJlZm9yZXtjb250ZW50OiJcZjI3NiJ9LmZhLW1hcC1zaWduczpiZWZvcmV7Y29udGVudDoiXGYyNzcifS5mYS1tYXJzOmJlZm9yZXtjb250ZW50OiJcZjIyMiJ9LmZhLW1hcnMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNyJ9LmZhLW1hcnMtc3Ryb2tlOmJlZm9yZXtjb250ZW50OiJcZjIyOSJ9LmZhLW1hcnMtc3Ryb2tlLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMjJiIn0uZmEtbWFycy1zdHJva2UtdjpiZWZvcmV7Y29udGVudDoiXGYyMmEifS5mYS1tYXhjZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTM2In0uZmEtbWVkYXBwczpiZWZvcmV7Y29udGVudDoiXGYzYzYifS5mYS1tZWRpdW06YmVmb3Jle2NvbnRlbnQ6IlxmMjNhIn0uZmEtbWVkaXVtLW06YmVmb3Jle2NvbnRlbnQ6IlxmM2M3In0uZmEtbWVka2l0OmJlZm9yZXtjb250ZW50OiJcZjBmYSJ9LmZhLW1lZHJ0OmJlZm9yZXtjb250ZW50OiJcZjNjOCJ9LmZhLW1lZXR1cDpiZWZvcmV7Y29udGVudDoiXGYyZTAifS5mYS1tZWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtbWVyY3VyeTpiZWZvcmV7Y29udGVudDoiXGYyMjMifS5mYS1taWNyb2NoaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmRiIn0uZmEtbWljcm9waG9uZTpiZWZvcmV7Y29udGVudDoiXGYxMzAifS5mYS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjEzMSJ9LmZhLW1pY3Jvc29mdDpiZWZvcmV7Y29udGVudDoiXGYzY2EifS5mYS1taW51czpiZWZvcmV7Y29udGVudDoiXGYwNjgifS5mYS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU2In0uZmEtbWludXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0NiJ9LmZhLW1peDpiZWZvcmV7Y29udGVudDoiXGYzY2IifS5mYS1taXhjbG91ZDpiZWZvcmV7Y29udGVudDoiXGYyODkifS5mYS1taXp1bmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2NjIn0uZmEtbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjEwYiJ9LmZhLW1vYmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NkIn0uZmEtbW9keDpiZWZvcmV7Y29udGVudDoiXGYyODUifS5mYS1tb25lcm86YmVmb3Jle2NvbnRlbnQ6IlxmM2QwIn0uZmEtbW9uZXktYmlsbC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2QxIn0uZmEtbW9vbjpiZWZvcmV7Y29udGVudDoiXGYxODYifS5mYS1tb3RvcmN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIxYyJ9LmZhLW1vdXNlLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ1In0uZmEtbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMDAxIn0uZmEtbmFwc3RlcjpiZWZvcmV7Y29udGVudDoiXGYzZDIifS5mYS1uZXV0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjJjIn0uZmEtbmV3c3BhcGVyOmJlZm9yZSwuZmEtbmV3c3BhcGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMWVhIn0uZmEtbmludGVuZG8tc3dpdGNoOmJlZm9yZXtjb250ZW50OiJcZjQxOCJ9LmZhLW5vZGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDE5In0uZmEtbm9kZS1qczpiZWZvcmV7Y29udGVudDoiXGYzZDMifS5mYS1ucG06YmVmb3Jle2NvbnRlbnQ6IlxmM2Q0In0uZmEtbnM4OmJlZm9yZXtjb250ZW50OiJcZjNkNSJ9LmZhLW51dHJpdGlvbml4OmJlZm9yZXtjb250ZW50OiJcZjNkNiJ9LmZhLW9iamVjdC1ncm91cDpiZWZvcmV7Y29udGVudDoiXGYyNDcifS5mYS1vYmplY3QtdW5ncm91cDpiZWZvcmV7Y29udGVudDoiXGYyNDgifS5mYS1vZG5va2xhc3NuaWtpOmJlZm9yZXtjb250ZW50OiJcZjI2MyJ9LmZhLW9kbm9rbGFzc25pa2ktc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjI2NCJ9LmZhLW9wZW5jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjIzZCJ9LmZhLW9wZW5pZDpiZWZvcmV7Y29udGVudDoiXGYxOWIifS5mYS1vcGVyYTpiZWZvcmV7Y29udGVudDoiXGYyNmEifS5mYS1vcHRpbi1tb25zdGVyOmJlZm9yZXtjb250ZW50OiJcZjIzYyJ9LmZhLW9zaTpiZWZvcmV7Y29udGVudDoiXGY0MWEifS5mYS1vdXRkZW50OmJlZm9yZXtjb250ZW50OiJcZjAzYiJ9LmZhLXBhZ2U0OmJlZm9yZXtjb250ZW50OiJcZjNkNyJ9LmZhLXBhZ2VsaW5lczpiZWZvcmV7Y29udGVudDoiXGYxOGMifS5mYS1wYWludC1icnVzaDpiZWZvcmV7Y29udGVudDoiXGYxZmMifS5mYS1wYWxmZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q4In0uZmEtcGFwZXItcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ4In0uZmEtcGFwZXJjbGlwOmJlZm9yZXtjb250ZW50OiJcZjBjNiJ9LmZhLXBhcmFncmFwaDpiZWZvcmV7Y29udGVudDoiXGYxZGQifS5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1wYXRyZW9uOmJlZm9yZXtjb250ZW50OiJcZjNkOSJ9LmZhLXBhdXNlOmJlZm9yZXtjb250ZW50OiJcZjA0YyJ9LmZhLXBhdXNlLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyOGIifS5mYS1wYXc6YmVmb3Jle2NvbnRlbnQ6IlxmMWIwIn0uZmEtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9LmZhLXBlbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRiIn0uZmEtcGVuY2lsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMDMifS5mYS1wZXJjZW50OmJlZm9yZXtjb250ZW50OiJcZjI5NSJ9LmZhLXBlcmlzY29wZTpiZWZvcmV7Y29udGVudDoiXGYzZGEifS5mYS1waGFicmljYXRvcjpiZWZvcmV7Y29udGVudDoiXGYzZGIifS5mYS1waG9lbml4LWZyYW1ld29yazpiZWZvcmV7Y29udGVudDoiXGYzZGMifS5mYS1waG9uZTpiZWZvcmV7Y29udGVudDoiXGYwOTUifS5mYS1waG9uZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk4In0uZmEtcGhvbmUtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjJhMCJ9LmZhLXBocDpiZWZvcmV7Y29udGVudDoiXGY0NTcifS5mYS1waWVkLXBpcGVyOmJlZm9yZXtjb250ZW50OiJcZjJhZSJ9LmZhLXBpZWQtcGlwZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9LmZhLXBpZWQtcGlwZXItcHA6YmVmb3Jle2NvbnRlbnQ6IlxmMWE3In0uZmEtcGludGVyZXN0OmJlZm9yZXtjb250ZW50OiJcZjBkMiJ9LmZhLXBpbnRlcmVzdC1wOmJlZm9yZXtjb250ZW50OiJcZjIzMSJ9LmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQzIn0uZmEtcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcyIn0uZmEtcGxheTpiZWZvcmV7Y29udGVudDoiXGYwNGIifS5mYS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxNDQifS5mYS1wbGF5c3RhdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzZGYifS5mYS1wbHVnOmJlZm9yZXtjb250ZW50OiJcZjFlNiJ9LmZhLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY3In0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU1In0uZmEtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGZlIn0uZmEtcG9kY2FzdDpiZWZvcmV7Y29udGVudDoiXGYyY2UifS5mYS1wb3VuZC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NCJ9LmZhLXBvd2VyLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMTEifS5mYS1wcmludDpiZWZvcmV7Y29udGVudDoiXGYwMmYifS5mYS1wcm9kdWN0LWh1bnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjg4In0uZmEtcHVzaGVkOmJlZm9yZXtjb250ZW50OiJcZjNlMSJ9LmZhLXB1enpsZS1waWVjZTpiZWZvcmV7Y29udGVudDoiXGYxMmUifS5mYS1weXRob246YmVmb3Jle2NvbnRlbnQ6IlxmM2UyIn0uZmEtcXE6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ2In0uZmEtcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyOSJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTkifS5mYS1xdWlkZGl0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNDU4In0uZmEtcXVpbnNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjQ1OSJ9LmZhLXF1b3JhOmJlZm9yZXtjb250ZW50OiJcZjJjNCJ9LmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtcXVvdGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBlIn0uZmEtcmFuZG9tOmJlZm9yZXtjb250ZW50OiJcZjA3NCJ9LmZhLXJhdmVscnk6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ5In0uZmEtcmVhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNDFiIn0uZmEtcmViZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWQwIn0uZmEtcmVjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifS5mYS1yZWQtcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2UzIn0uZmEtcmVkZGl0OmJlZm9yZXtjb250ZW50OiJcZjFhMSJ9LmZhLXJlZGRpdC1hbGllbjpiZWZvcmV7Y29udGVudDoiXGYyODEifS5mYS1yZWRkaXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFhMiJ9LmZhLXJlZG86YmVmb3Jle2NvbnRlbnQ6IlxmMDFlIn0uZmEtcmVkby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY5In0uZmEtcmVnaXN0ZXJlZDpiZWZvcmV7Y29udGVudDoiXGYyNWQifS5mYS1yZW5kYWN0OmJlZm9yZXtjb250ZW50OiJcZjNlNCJ9LmZhLXJlbnJlbjpiZWZvcmV7Y29udGVudDoiXGYxOGIifS5mYS1yZXBseTpiZWZvcmV7Y29udGVudDoiXGYzZTUifS5mYS1yZXBseS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0uZmEtcmVwbHlkOmJlZm9yZXtjb250ZW50OiJcZjNlNiJ9LmZhLXJlc29sdmluZzpiZWZvcmV7Y29udGVudDoiXGYzZTcifS5mYS1yZXR3ZWV0OmJlZm9yZXtjb250ZW50OiJcZjA3OSJ9LmZhLXJvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE4In0uZmEtcm9ja2V0OmJlZm9yZXtjb250ZW50OiJcZjEzNSJ9LmZhLXJvY2tldGNoYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2U4In0uZmEtcm9ja3JtczpiZWZvcmV7Y29udGVudDoiXGYzZTkifS5mYS1yc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDllIn0uZmEtcnNzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDMifS5mYS1ydWJsZS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1OCJ9LmZhLXJ1cGVlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU2In0uZmEtc2FmYXJpOmJlZm9yZXtjb250ZW50OiJcZjI2NyJ9LmZhLXNhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDFlIn0uZmEtc2F2ZTpiZWZvcmV7Y29udGVudDoiXGYwYzcifS5mYS1zY2hsaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2VhIn0uZmEtc2NyaWJkOmJlZm9yZXtjb250ZW50OiJcZjI4YSJ9LmZhLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGYwMDIifS5mYS1zZWFyY2gtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDEwIn0uZmEtc2VhcmNoLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBlIn0uZmEtc2VhcmNoZW5naW46YmVmb3Jle2NvbnRlbnQ6IlxmM2ViIn0uZmEtc2VsbGNhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmRhIn0uZmEtc2VsbHN5OmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9LmZhLXNlcnZlcjpiZWZvcmV7Y29udGVudDoiXGYyMzMifS5mYS1zZXJ2aWNlc3RhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmM2VjIn0uZmEtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDY0In0uZmEtc2hhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjFlMCJ9LmZhLXNoYXJlLWFsdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWUxIn0uZmEtc2hhcmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0ZCJ9LmZhLXNoZWtlbC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjIwYiJ9LmZhLXNoaWVsZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2VkIn0uZmEtc2hpcDpiZWZvcmV7Y29udGVudDoiXGYyMWEifS5mYS1zaGlydHNpbmJ1bGs6YmVmb3Jle2NvbnRlbnQ6IlxmMjE0In0uZmEtc2hvcHBpbmctYmFnOmJlZm9yZXtjb250ZW50OiJcZjI5MCJ9LmZhLXNob3BwaW5nLWJhc2tldDpiZWZvcmV7Y29udGVudDoiXGYyOTEifS5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjA3YSJ9LmZhLXNob3dlcjpiZWZvcmV7Y29udGVudDoiXGYyY2MifS5mYS1zaWduLWluLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjYifS5mYS1zaWduLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjJhNyJ9LmZhLXNpZ24tb3V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjUifS5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtc2ltcGx5YnVpbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE1In0uZmEtc2lzdHJpeDpiZWZvcmV7Y29udGVudDoiXGYzZWUifS5mYS1zaXRlbWFwOmJlZm9yZXtjb250ZW50OiJcZjBlOCJ9LmZhLXNreWF0bGFzOmJlZm9yZXtjb250ZW50OiJcZjIxNiJ9LmZhLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjE3ZSJ9LmZhLXNsYWNrOmJlZm9yZXtjb250ZW50OiJcZjE5OCJ9LmZhLXNsYWNrLWhhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmM2VmIn0uZmEtc2xpZGVycy1oOmJlZm9yZXtjb250ZW50OiJcZjFkZSJ9LmZhLXNsaWRlc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWU3In0uZmEtc21pbGU6YmVmb3JlLC5mYS1zbWlsZS1vOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLXNuYXBjaGF0OmJlZm9yZXtjb250ZW50OiJcZjJhYiJ9LmZhLXNuYXBjaGF0LWdob3N0OmJlZm9yZXtjb250ZW50OiJcZjJhYyJ9LmZhLXNuYXBjaGF0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyYWQifS5mYS1zbm93Zmxha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmRjIn0uZmEtc29ydDpiZWZvcmV7Y29udGVudDoiXGYwZGMifS5mYS1zb3J0LWFscGhhLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0uZmEtc29ydC1hbHBoYS11cDpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1zb3J0LWFtb3VudC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9LmZhLXNvcnQtYW1vdW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MSJ9LmZhLXNvcnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZGQifS5mYS1zb3J0LW51bWVyaWMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjIifS5mYS1zb3J0LW51bWVyaWMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYzIn0uZmEtc29ydC11cDpiZWZvcmV7Y29udGVudDoiXGYwZGUifS5mYS1zb3VuZGNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjFiZSJ9LmZhLXNwYWNlLXNodXR0bGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk3In0uZmEtc3BlYWthcDpiZWZvcmV7Y29udGVudDoiXGYzZjMifS5mYS1zcGlubmVyOmJlZm9yZXtjb250ZW50OiJcZjExMCJ9LmZhLXNwb3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWJjIn0uZmEtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBjOCJ9LmZhLXNxdWFyZS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1YyJ9LmZhLXN0YWNrLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9LmZhLXN0YWNrLW92ZXJmbG93OmJlZm9yZXtjb250ZW50OiJcZjE2YyJ9LmZhLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA1In0uZmEtc3Rhci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjA4OSJ9LmZhLXN0YXlsaW5rZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y1In0uZmEtc3RlYW06YmVmb3Jle2NvbnRlbnQ6IlxmMWI2In0uZmEtc3RlYW0tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNyJ9LmZhLXN0ZWFtLXN5bWJvbDpiZWZvcmV7Y29udGVudDoiXGYzZjYifS5mYS1zdGVwLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OCJ9LmZhLXN0ZXAtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTEifS5mYS1zdGV0aG9zY29wZTpiZWZvcmV7Y29udGVudDoiXGYwZjEifS5mYS1zdGlja2VyLW11bGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y3In0uZmEtc3RpY2t5LW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ5In0uZmEtc3RvcDpiZWZvcmV7Y29udGVudDoiXGYwNGQifS5mYS1zdG9wLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyOGQifS5mYS1zdG9wd2F0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmYyIn0uZmEtc3RyYXZhOmJlZm9yZXtjb250ZW50OiJcZjQyOCJ9LmZhLXN0cmVldC12aWV3OmJlZm9yZXtjb250ZW50OiJcZjIxZCJ9LmZhLXN0cmlrZXRocm91Z2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGNjIn0uZmEtc3RyaXBlOmJlZm9yZXtjb250ZW50OiJcZjQyOSJ9LmZhLXN0cmlwZS1zOmJlZm9yZXtjb250ZW50OiJcZjQyYSJ9LmZhLXN0dWRpb3ZpbmFyaTpiZWZvcmV7Y29udGVudDoiXGYzZjgifS5mYS1zdHVtYmxldXBvbjpiZWZvcmV7Y29udGVudDoiXGYxYTQifS5mYS1zdHVtYmxldXBvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEzIn0uZmEtc3Vic2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYyJ9LmZhLXN1YndheTpiZWZvcmV7Y29udGVudDoiXGYyMzkifS5mYS1zdWl0Y2FzZTpiZWZvcmV7Y29udGVudDoiXGYwZjIifS5mYS1zdW46YmVmb3JlLC5mYS1zdW4tbzpiZWZvcmV7Y29udGVudDoiXGYxODUifS5mYS1zdXBlcnBvd2VyczpiZWZvcmV7Y29udGVudDoiXGYyZGQifS5mYS1zdXBlcnNjcmlwdDpiZWZvcmV7Y29udGVudDoiXGYxMmIifS5mYS1zdXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y5In0uZmEtc3luYzpiZWZvcmV7Y29udGVudDoiXGYwMjEifS5mYS1zeW5jLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjEifS5mYS10YWJsZTpiZWZvcmV7Y29udGVudDoiXGYwY2UifS5mYS10YWJsZS10ZW5uaXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDVkIn0uZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9LmZhLXRhYmxldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZhIn0uZmEtdGFjaG9tZXRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZkIn0uZmEtdGFnOmJlZm9yZXtjb250ZW50OiJcZjAyYiJ9LmZhLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDJjIn0uZmEtdGFza3M6YmVmb3Jle2NvbnRlbnQ6IlxmMGFlIn0uZmEtdGF4aTpiZWZvcmV7Y29udGVudDoiXGYxYmEifS5mYS10ZWxlZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYyYzYifS5mYS10ZWxlZ3JhbS1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYzZmUifS5mYS10ZW5jZW50LXdlaWJvOmJlZm9yZXtjb250ZW50OiJcZjFkNSJ9LmZhLXRlcm1pbmFsOmJlZm9yZXtjb250ZW50OiJcZjEyMCJ9LmZhLXRleHQtaGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzNCJ9LmZhLXRleHQtd2lkdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDM1In0uZmEtdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDBhIn0uZmEtdGgtbGFyZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDA5In0uZmEtdGgtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwMGIifS5mYS10aGVtZWlzbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmIyIn0uZmEtdGhlcm1vbWV0ZXItZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMmNiIn0uZmEtdGhlcm1vbWV0ZXItZnVsbDpiZWZvcmV7Y29udGVudDoiXGYyYzcifS5mYS10aGVybW9tZXRlci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjJjOSJ9LmZhLXRoZXJtb21ldGVyLXF1YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmNhIn0uZmEtdGhlcm1vbWV0ZXItdGhyZWUtcXVhcnRlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMmM4In0uZmEtdGh1bWJzLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTY1In0uZmEtdGh1bWJzLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9LmZhLXRodW1idGFjazpiZWZvcmV7Y29udGVudDoiXGYwOGQifS5mYS10aWNrZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmZiJ9LmZhLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjAwZCJ9LmZhLXRpbWVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTcifS5mYS10aW50OmJlZm9yZXtjb250ZW50OiJcZjA0MyJ9LmZhLXRvZ2dsZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMjA0In0uZmEtdG9nZ2xlLW9uOmJlZm9yZXtjb250ZW50OiJcZjIwNSJ9LmZhLXRyYWRlbWFyazpiZWZvcmV7Y29udGVudDoiXGYyNWMifS5mYS10cmFpbjpiZWZvcmV7Y29udGVudDoiXGYyMzgifS5mYS10cmFuc2dlbmRlcjpiZWZvcmV7Y29udGVudDoiXGYyMjQifS5mYS10cmFuc2dlbmRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjI1In0uZmEtdHJhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY4In0uZmEtdHJhc2gtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlZCJ9LmZhLXRyZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMWJiIn0uZmEtdHJlbGxvOmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9LmZhLXRyaXBhZHZpc29yOmJlZm9yZXtjb250ZW50OiJcZjI2MiJ9LmZhLXRyb3BoeTpiZWZvcmV7Y29udGVudDoiXGYwOTEifS5mYS10cnVjazpiZWZvcmV7Y29udGVudDoiXGYwZDEifS5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtdHVtYmxyOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9LmZhLXR1bWJsci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc0In0uZmEtdHY6YmVmb3Jle2NvbnRlbnQ6IlxmMjZjIn0uZmEtdHdpdGNoOmJlZm9yZXtjb250ZW50OiJcZjFlOCJ9LmZhLXR3aXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDk5In0uZmEtdHdpdHRlci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgxIn0uZmEtdHlwbzM6YmVmb3Jle2NvbnRlbnQ6IlxmNDJiIn0uZmEtdWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MDIifS5mYS11aWtpdDpiZWZvcmV7Y29udGVudDoiXGY0MDMifS5mYS11bWJyZWxsYTpiZWZvcmV7Y29udGVudDoiXGYwZTkifS5mYS11bmRlcmxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGNkIn0uZmEtdW5kbzpiZWZvcmV7Y29udGVudDoiXGYwZTIifS5mYS11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWEifS5mYS11bmlyZWdpc3RyeTpiZWZvcmV7Y29udGVudDoiXGY0MDQifS5mYS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZXtjb250ZW50OiJcZjI5YSJ9LmZhLXVuaXZlcnNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTljIn0uZmEtdW5saW5rOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLXVubG9jazpiZWZvcmV7Y29udGVudDoiXGYwOWMifS5mYS11bmxvY2stYWx0OmJlZm9yZXtjb250ZW50OiJcZjEzZSJ9LmZhLXVudGFwcGQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDA1In0uZmEtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjA5MyJ9LmZhLXVzYjpiZWZvcmV7Y29udGVudDoiXGYyODcifS5mYS11c2VyOmJlZm9yZXtjb250ZW50OiJcZjAwNyJ9LmZhLXVzZXItY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJiZCJ9LmZhLXVzZXItbWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGYwIn0uZmEtdXNlci1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjIzNCJ9LmZhLXVzZXItc2VjcmV0OmJlZm9yZXtjb250ZW50OiJcZjIxYiJ9LmZhLXVzZXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM1In0uZmEtdXNlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGMwIn0uZmEtdXNzdW5uYWg6YmVmb3Jle2NvbnRlbnQ6IlxmNDA3In0uZmEtdXRlbnNpbC1zcG9vbjpiZWZvcmV7Y29udGVudDoiXGYyZTUifS5mYS11dGVuc2lsczpiZWZvcmV7Y29udGVudDoiXGYyZTcifS5mYS12YWFkaW46YmVmb3Jle2NvbnRlbnQ6IlxmNDA4In0uZmEtdmVudXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIxIn0uZmEtdmVudXMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNiJ9LmZhLXZlbnVzLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjI4In0uZmEtdmlhY29pbjpiZWZvcmV7Y29udGVudDoiXGYyMzcifS5mYS12aWFkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMmE5In0uZmEtdmlhZGVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyYWEifS5mYS12aWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MDkifS5mYS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYwM2QifS5mYS12aW1lbzpiZWZvcmV7Y29udGVudDoiXGY0MGEifS5mYS12aW1lby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk0In0uZmEtdmltZW8tdjpiZWZvcmV7Y29udGVudDoiXGYyN2QifS5mYS12aW5lOmJlZm9yZXtjb250ZW50OiJcZjFjYSJ9LmZhLXZrOmJlZm9yZXtjb250ZW50OiJcZjE4OSJ9LmZhLXZudjpiZWZvcmV7Y29udGVudDoiXGY0MGIifS5mYS12b2xsZXliYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDVmIn0uZmEtdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDI3In0uZmEtdm9sdW1lLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMjYifS5mYS12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDI4In0uZmEtdnVlanM6YmVmb3Jle2NvbnRlbnQ6IlxmNDFmIn0uZmEtd2VpYm86YmVmb3Jle2NvbnRlbnQ6IlxmMThhIn0uZmEtd2VpeGluOmJlZm9yZXtjb250ZW50OiJcZjFkNyJ9LmZhLXdoYXRzYXBwOmJlZm9yZXtjb250ZW50OiJcZjIzMiJ9LmZhLXdoYXRzYXBwLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MGMifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXdobWNzOmJlZm9yZXtjb250ZW50OiJcZjQwZCJ9LmZhLXdpZmk6YmVmb3Jle2NvbnRlbnQ6IlxmMWViIn0uZmEtd2lraXBlZGlhLXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjY2In0uZmEtd2luZG93LWNsb3NlOmJlZm9yZXtjb250ZW50OiJcZjQxMCJ9LmZhLXdpbmRvdy1tYXhpbWl6ZTpiZWZvcmV7Y29udGVudDoiXGYyZDAifS5mYS13aW5kb3ctbWluaW1pemU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQxIn0uZmEtd2luZG93LXJlc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQyIn0uZmEtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxN2EifS5mYS13b24tc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTkifS5mYS13b3JkcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0uZmEtd29yZHByZXNzLXNpbXBsZTpiZWZvcmV7Y29udGVudDoiXGY0MTEifS5mYS13cGJlZ2lubmVyOmJlZm9yZXtjb250ZW50OiJcZjI5NyJ9LmZhLXdwZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmRlIn0uZmEtd3Bmb3JtczpiZWZvcmV7Y29udGVudDoiXGYyOTgifS5mYS13cmVuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGFkIn0uZmEteGJveDpiZWZvcmV7Y29udGVudDoiXGY0MTIifS5mYS14aW5nOmJlZm9yZXtjb250ZW50OiJcZjE2OCJ9LmZhLXhpbmctc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE2OSJ9LmZhLXktY29tYmluYXRvcjpiZWZvcmV7Y29udGVudDoiXGYyM2IifS5mYS15YWhvbzpiZWZvcmV7Y29udGVudDoiXGYxOWUifS5mYS15YW5kZXg6YmVmb3Jle2NvbnRlbnQ6IlxmNDEzIn0uZmEteWFuZGV4LWludGVybmF0aW9uYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNDE0In0uZmEteWVscDpiZWZvcmV7Y29udGVudDoiXGYxZTkifS5mYS15ZW4tc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTcifS5mYS15b2FzdDpiZWZvcmV7Y29udGVudDoiXGYyYjEifS5mYS15b3V0dWJlOmJlZm9yZXtjb250ZW50OiJcZjE2NyJ9LmZhLXlvdXR1YmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQzMSJ9Ci8qKiAvY3NzL3YyL2FuaW1hdGUuY3NzICoqLwouYW5pbS1iZWF0IHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJlYXQ7IGFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdDsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpIH0gLmFuaW0tYm91bmNlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJvdW5jZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1ib3VuY2U7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC4yOCwuODQsLjQyLDEpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjI4LC44NCwuNDIsMSkpIH0gLmFuaW0tZmFkZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1mYWRlOyBhbmltYXRpb24tbmFtZTphbmltLWZhZGU7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKSB9IC5hbmltLWJlYXQtZmFkZSwuYW5pbS1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKSB9IC5hbmltLWJlYXQtZmFkZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0LWZhZGU7IGFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdC1mYWRlOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSkgfSAuYW5pbS1mbGlwIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWZsaXA7IGFuaW1hdGlvbi1uYW1lOmFuaW0tZmxpcDsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwzcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDNzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpIH0gLmFuaW0tc2hha2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc2hha2U7IGFuaW1hdGlvbi1uYW1lOmFuaW0tc2hha2U7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpIH0gLmFuaW0tc2hha2UsLmFuaW0tc3BpbiB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCkgfSAuYW5pbS1zcGluIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLXNwaW47IGFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwycyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDJzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcikgfSAuYW5pbS1zcGluLXJldmVyc2UgeyAtLWFuaW0tZGlyZWN0aW9uOnJldmVyc2UgfSAuYW5pbS1wdWxzZSwuYW5pbS1zcGluLXB1bHNlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLXNwaW47IGFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxzdGVwcyg4KSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsc3RlcHMoOCkpIH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYmVhdCB7IDAlLDkwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA0NSUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKSB9IH0gQGtleWZyYW1lcyBhbmltLWJlYXQgeyAwJSw5MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNDUlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWJvdW5jZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSAxMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCkgfSAzMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKSB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKSB9IDU3JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpIH0gNjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYm91bmNlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKSB9IDMwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpIH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApIH0gNTclIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSkgfSA2NCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWZhZGUgeyA1MCUgeyBvcGFjaXR5OnZhcigtLWFuaW0tZmFkZS1vcGFjaXR5LC40KSB9IH0gQGtleWZyYW1lcyBhbmltLWZhZGUgeyA1MCUgeyBvcGFjaXR5OnZhcigtLWFuaW0tZmFkZS1vcGFjaXR5LC40KSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYmVhdC1mYWRlIHsgMCUsdG8geyBvcGFjaXR5OnZhcigtLWFuaW0tYmVhdC1mYWRlLW9wYWNpdHksLjQpOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNTAlIHsgb3BhY2l0eToxOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKSB9IH0gQGtleWZyYW1lcyBhbmltLWJlYXQtZmFkZSB7IDAlLHRvIHsgb3BhY2l0eTp2YXIoLS1hbmltLWJlYXQtZmFkZS1vcGFjaXR5LC40KTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDUwJSB7IG9wYWNpdHk6MTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWZsaXAgeyA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpOyB0cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKSB9IH0gQGtleWZyYW1lcyBhbmltLWZsaXAgeyA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpOyB0cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tc2hha2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xNWRlZykgfSA0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpIH0gOCUsMjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKSB9IDEyJSwyOCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE4ZGVnKSB9IDE2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0yMmRlZykgfSAyMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDIyZGVnKSB9IDMyJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xMmRlZykgfSAzNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDEyZGVnKSB9IDQwJSx0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IH0gQGtleWZyYW1lcyBhbmltLXNoYWtlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpIH0gNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE1ZGVnKSB9IDglLDI0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xOGRlZykgfSAxMiUsMjglIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZykgfSAxNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpIH0gMjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZykgfSAzMiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpIH0gMzYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZykgfSA0MCUsdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLXNwaW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTsgdHJhbnNmb3JtOnJvdGF0ZSgxdHVybikgfSB9IEBrZXlmcmFtZXMgYW5pbS1zcGluIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7IHRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pIH0gfSBAc3VwcG9ydHMgKC13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lKSB7IGJvZHkgI3Byb21vVG9wQnRuIC5hbmltLWZsaXB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnVuc2V0OyBhbmltYXRpb24tZGVsYXk6dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp1bnNldDsgYW5pbWF0aW9uLWRpcmVjdGlvbjp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dW5zZXQ7IGFuaW1hdGlvbi1kdXJhdGlvbjp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnVuc2V0OyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dW5zZXQ7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dW5zZXQ7IH0gfSAucHVsc2F0aW5nLWNpcmNsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDozMHB4OyBoZWlnaHQ6MzBweDsgZmxleDowIDAgYXV0bzsgJjpiZWZvcmUgeyBjb250ZW50OicnOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpibG9jazsgd2lkdGg6MzAwJTsgaGVpZ2h0OjMwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLWxlZnQ6LTEwMCU7IG1hcmdpbi10b3A6LTEwMCU7IGJvcmRlci1yYWRpdXM6NDVweDsgYmFja2dyb3VuZC1jb2xvcjojMDFhNGU5OyBhbmltYXRpb246cHVsc2UtcmluZyAxLjI1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSBpbmZpbml0ZTsgfSAmOmFmdGVyIHsgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXItcmFkaXVzOjE1cHg7IGJveC1zaGFkb3c6MCAwIDhweCByZ2JhKDAsMCwwLC4zKTsgYW5pbWF0aW9uOnB1bHNlLWRvdCAxLjI1cyBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMsIDAuNTE1LCAwLjk1NSkgLS40cyBpbmZpbml0ZTsgfSB9IEBrZXlmcmFtZXMgcHVsc2UtcmluZyB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKC4zMyk7IH0gODAlLCAxMDAlIHsgb3BhY2l0eTowOyB9IH0gQGtleWZyYW1lcyBwdWxzZS1kb3QgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSguOCk7IH0gNTAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyB9IDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjgpOyB9IH0KLyoqIC9jc3MvZGl2X2xheWVycy5jc3MgKiovCmRpdi5NYWluQm94TGF5ZXJ7IHdpZHRoOm1pbigxMDAlLDk2MHB4KTsgbWFyZ2luOjAgYXV0bzsgfSBkaXYuTWFpbkJveExheWVyIEgxeyB3aWR0aDo5NDBweDsgfSBkaXYuTWFpbkJveExheWVyIC5yZXNwb25zaXZlLWVkaXRvciBoMSB7IHdpZHRoOmluaXRpYWw7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuY3JlZHNpaURpdiBIMXsgd2lkdGg6YXV0bzsgfSAuY3JlZHNpaURpdnsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkxlZnRCb3hMYXllciB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuUmlnaHRCb3hMYXllciB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciB7IHBhZGRpbmc6MTBweDsgZmxvYXQ6bGVmdDsgd2lkdGg6OTQwcHg7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllciB7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjBweDsgd2lkdGg6MTAwJTsgY2xlYXI6Ym90aDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyLnRvcEJvcmRlcmVkeyBib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIuYm90dG9tQm9yZGVyZWR7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQgeyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLmVhc3R7IGZsb2F0OnJpZ2h0OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLndlc3R7IGZsb2F0OmxlZnQ7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZXsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0bzsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlID4gaW1neyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIjaGlzdG9yeURpdiBkaXYuSW5uZXJCb3hMYXllciAjYnJlYWRjcnVtYnMgeyBtYXJnaW46MDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciB7IHdpZHRoOjEyMDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIgeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyLnh0aW1lRnJhbWUgeyB3aWR0aDoxMjAwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIEgxeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIC5yZXNwb25zaXZlLWVkaXRvciBoMSB7IHdpZHRoOmluaXRpYWw7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIGRpdi5jcmVkc2lpRGl2IEgxeyB3aWR0aDphdXRvOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UgeyB3aWR0aDoxMTgwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZS5URUFNIHsgd2lkdGg6OTYwcHg7IH0gfSBkaXYuTWFpbkJveExheWVyLnVjcENvbnRlbnRGdWxsV2lkdGggeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5MZWZ0Qm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9Ci8qKiAvY3NzL2Rpdl9zcGFucy5jc3MgKiovCi5kaXZTcGFue2Zsb2F0OmxlZnQ7Ym94LXNpemluZzpib3JkZXItYm94fS5kaXZTcGFuLmRpdlNwYW5MZWZ0e2Zsb2F0OmxlZnR9LmRpdlNwYW4uZGl2U3BhblJpZ2h0e2Zsb2F0OnJpZ2h0fS5kaXZTcGFuLmRpdlNwYW4xe3dpZHRoOjguMzMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuMnt3aWR0aDoxNi42NjY2NjY2NjY2NjY2NyV9LmRpdlNwYW4uZGl2U3BhbjN7d2lkdGg6MjUlfS5kaXZTcGFuLmRpdlNwYW40e3dpZHRoOjMzLjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuNXt3aWR0aDo0MS42NjY2NjY2NjY2NjY2NyV9LmRpdlNwYW4uZGl2U3BhbjZ7d2lkdGg6NTAlfS5kaXZTcGFuLmRpdlNwYW43e3dpZHRoOjU4LjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuOHt3aWR0aDo2Ni42NjY2NjY2NjY2NjY2NiV9LmRpdlNwYW4uZGl2U3Bhbjl7d2lkdGg6NzUlfS5kaXZTcGFuLmRpdlNwYW4xMHt3aWR0aDo4My4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjExe3dpZHRoOjkxLjY2NjY2NjY2NjY2NjY2JX0uZGl2U3Bhbi5kaXZTcGFuMTJ7d2lkdGg6MTAwJX0KLyoqIC9jc3MvbWVudS1iYXNlLmNzcyAqKi8KYm9keSAudXBfbWVudSwgYm9keSAudXBfbWVudSAqIHsgYm94LXNpemluZzpjb250ZW50LWJveCAhaW1wb3J0YW50OyB9IGJvZHkgLnVwX21lbnUgdWwubmF2ID4gbGkgPiB1bC5zdWIsIGJvZHkgLnVwX21lbnUgdWwubmF2ID4gbGkgPiB1bC5zdWIgKiwgYm9keSAudXBfbWVudSBpbnB1dCwgYm9keSAudXBfbWVudSBzZWxlY3QsIGJvZHkgLnVwX21lbnUgdGV4dGFyZWEsIGJvZHkgLnVwX21lbnUgYnV0dG9uIHsgYm94LXNpemluZzpib3JkZXItYm94ICFpbXBvcnRhbnQ7IH0gYm9keSAudXBfbWVudSwgYm9keSAudXBfbWVudSA+IC5TMTAwUGVyY2VudFdpZHRoIHsgYm9yZGVyLXdpZHRoOmluaXRpYWw7IGJvcmRlci1zdHlsZTppbml0aWFsOyBib3JkZXItY29sb3I6aW5pdGlhbDsgfSAucHJpY2UgeyBkaXNwbGF5Om5vbmU7IH0gLm1lbnUtc3BlYy1wcmljZSA+IC5wcmljZSB7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjppbml0aWFsOyBtYXJnaW4tdG9wOjRweDsgd2lkdGg6aW5pdGlhbDsgZmxvYXQ6aW5pdGlhbDsgfSAubWVudS1zcGVjLXByaWNlID4gLnByaWNlID4gc3BhbiB7IGRpc3BsYXk6bGlzdC1pdGVtOyBsaW5lLWhlaWdodDoxNXB4OyB9IGltZy5ob21lLWljb24geyBwYWRkaW5nLXRvcDowICFpbXBvcnRhbnQ7IH0gYm9keSA+IC51cF9tZW51ID4gLm5hdiA+IC5pc0JvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLm5hdiA+IGxpI01haW5NZW51X0hPTUUgPiBhLmlzSW1hZ2UgPiBzcGFueyBoZWlnaHQ6MzNweDsgd2lkdGg6MzFweDsgcGFkZGluZzowOyB0ZXh0LWluZGVudDotMjAwMGVtOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9pY29uX2hvbWVfdGFiQ29sb3IucG5nJyk7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIDA7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGRpc3BsYXk6YmxvY2s7IH0gLm5hdiA+IGxpI01haW5NZW51X0hPTUU6aG92ZXIgPiBhLmlzSW1hZ2UgPiBzcGFueyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9pY29uX2hvbWVfaG92ZXIucG5nJyk7IH0gdWwuc2xpbS1zdWJtZW51ID4gbGkgPiBhIHsgcGFkZGluZzo2cHggMTVweCAhaW1wb3J0YW50OyB0ZXh0LXdyYXA6YXV0bzsgfSB1bC5zbGltLXN1Ym1lbnUtMiA+IGxpID4gYSB7IHBhZGRpbmc6OXB4IDE1cHggIWltcG9ydGFudDsgdGV4dC13cmFwOmF1dG87IH0gdWwuc2xpbS1zdWJtZW51LTMgPiBsaSA+IGEgeyBwYWRkaW5nOjEycHggMTVweCAhaW1wb3J0YW50OyB9IHVsLnNsaW0tc3VibWVudS0zID4gbGkgPiBhOm5vdCgudG9wX2xpbmspIHsgdGV4dC13cmFwOmF1dG87IG1pbi13aWR0aDoyMDBweDsgfSB1bC5zdWIgPiBsaSA+IGEgeyB0ZXh0LXdyYXA6YXV0bzsgbWluLXdpZHRoOjIwMHB4OyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBwYWRkaW5nLWJvdHRvbToxNXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBsZXR0ZXItc3BhY2luZzoxcHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhOmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpub25lOyB9IC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfTkVXPnVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPmxpLmhhc1N1Yjpob3ZlciA+IGEsIC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUw+dWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+bGkuaGFzU3ViOmhvdmVyID4gYXsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IGRpdi5tYWlubWVudS1zdWJtZW51IHsgbGVmdDoxNDAlOyB0b3A6MDsgcG9zaXRpb246YWJzb2x1dGU7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6aGlkZGVuOyBvcGFjaXR5OjA7IHotaW5kZXg6MTsgfSAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpOmhvdmVyID4gLm1haW5tZW51LXN1Ym1lbnUsIC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9VU0VEIHVsLnN1YiA+IGxpOmhvdmVyID4gLm1haW5tZW51LXN1Ym1lbnUsIGxpW2RhdGEtaWQ9IlNVQl9UQUJfQ09NTUVSQ0lBTF9DT01NRVIiXTpob3ZlciA+IC5tYWlubWVudS1zdWJtZW51IHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyBsZWZ0OjEwMCU7IHRyYW5zaXRpb246YWxsIDAuMnMsIG9wYWNpdHkgMC41czsgb3BhY2l0eToxOyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSB7IHBvc2l0aW9uOnN0YXRpYzsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViLCBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7IH0gLm1lbnUtdGVjaC1zcGVjcyB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0Ojk0JTsgdG9wOjA7IC13ZWJraXQtYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBkaXNwbGF5Om5vbmU7IHBhZGRpbmc6MTRweDsgYmFja2dyb3VuZDp3aGl0ZTsgdGV4dC1hbGlnbjpsZWZ0OyB6LWluZGV4OjEwOyBjb2xvcjp2YXIoLS1ibGFjayk7IG1pbi13aWR0aDoyNTBweDsgZGlzcGxheTpub25lOyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyB9IC5tZW51LXRlY2gtc3BlY3MgbGkuZGl2aWRlciB7IGhlaWdodDoxcHg7IG1hcmdpbjo5cHggMDsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNWU1ZTU7IH0gLm1lbnUtdGVjaC1zcGVjcyA+IC5tZW51LXNwZWNzLXRpdGxlIHsgbWFyZ2luLWJvdHRvbToxZW07IGZvbnQtc2l6ZTppbml0aWFsOyBjb2xvcjpibGFjazsgfSB1bC5tZW51LXNwZWNzLWxpc3QgbGkgeyBmb250LXNpemU6MC43NXJlbSA7IH0gdWwubWVudS1zcGVjcy1saXN0ID4gbGk6bnRoLWNoaWxkKG4rMykgeyBtYXJnaW4tYm90dG9tOjFlbTsgfSAubWVudS10ZWNoLXNwZWNzID4gdWwubWVudS1zcGVjcy1saXN0ID4gbGkgPiBhIHsgcGFkZGluZzozcHggNHB4ICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50OyBmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudDsgfSAubWVudS1zcGVjcy1saXN0ID4gbGkgeyBib3JkZXItYm90dG9tOm5vbmU7IH0gLm1lbnUtc3BlY3MtbGlzdCBsaSBzdHJvbmcsIC5tZW51LXNwZWNzLWxpc3QgbGkgc3BhbiB7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSB1bC5tZW51LXNwZWNzLWxpc3QgPiBsaSA+IHN0cm9uZyB7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OzsgfSB1bC5tZW51LXNwZWNzLWxpc3QgPiBsaSA+IHNwYW4geyBsaW5lLWhlaWdodDoyOyB9IC5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IC5tZW51LXRlY2gtc3BlY3MgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IHRyYW5zaXRpb246MC41czsgb3BhY2l0eToxOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiAubWVudS10ZWNoLXNwZWNzLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiAubWVudS10ZWNoLXNwZWNzeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IHRyYW5zaXRpb246MC41czsgb3BhY2l0eToxOyB9IGJvZHk6bm90KC5pc0Z1bGxXaWR0aFBhZ2UpIC51cF9tZW51IHsgcG9zaXRpb246aW5oZXJpdDsgfSBib2R5Om5vdCguaXNGdWxsV2lkdGhQYWdlKSAjbWFpbkRpdjo6YWZ0ZXIgeyBoZWlnaHQ6MDsgfSAjbWFpbkRpdi53cmFwcGVyIHsgcGFkZGluZzowOyB9IGJvZHkgLnVwX21lbnV7IGhlaWdodDphdXRvOyB3aWR0aDo5NjBweDsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTAwMDsgd2hpdGUtc3BhY2U6bm93cmFwOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gYm9keSAudXBfbWVudS5oaWRkZW5oZWFkZXJ7IG1hcmdpbi10b3A6MTA2cHg7IHBhZGRpbmctdG9wOjNweDsgfSBib2R5IC51cF9tZW51LmhpZGRlbmhlYWRlci5maXhlZCwgYm9keSAudXBfbWVudS5maXhlZCB7IHRvcDowOyBwb3NpdGlvbjpmaXhlZDsgbWFyZ2luLXRvcDowOyBvcGFjaXR5OjAuNzU7IH0gYm9keSAudXBfbWVudS5maXhlZDpob3Zlcnsgb3BhY2l0eToxOyB9IGJvZHkgLnVwX21lbnUgPiAuUzEwMFBlcmNlbnRXaWR0aCB7IGJhY2tncm91bmQ6dmFyKC0tbWVudS1iZy1jb2xvcik7IGhlaWdodDphdXRvOyB9IGJvZHkgLnVwX21lbnUgLm5hdiA+IGxpLm5vZnggPiBheyB0cmFuc2l0aW9uOm5vbmU7IH0gYm9keSAudXBfbWVudSAubmF2ID4gbGl7IGZsZXgtZ3JvdzoxOyB9IGJvZHkgLnVwX21lbnUgLm5hdiA+IGxpIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gLnN1YiB7IGhlaWdodDphdXRvOyB9IHVsLnN1YiB7IHBhZGRpbmc6MDsgfSAudXBfbWVudSB7IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyB9IC51cF9tZW51IHVsIHsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB6LWluZGV4OjE7IH0gLnVwX21lbnUgdWwuc3ViIHsgLXdlYmtpdC1ib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IH0gLnVwX21lbnUgdWwubmF2IHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tYWluLW1lbnUtYmctY29sb3IpOyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X05FVyB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC51cF9tZW51IHVsLm5hdiBsaSA+IGEgeyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1ibGFjayk7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzoxNXB4IDUlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6YXV0bzsgfSAudXBfbWVudSB1bC5uYXYgbGkgdWwuc3ViIHsgZGlzcGxheTpub25lOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpID4gYSB7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnVwX21lbnUgdWwubmF2IGxpOmhvdmVyID4gYSwgLnVwX21lbnUgdWwubmF2IGxpLmlzT3BlbiA+IGEgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpOmhvdmVyID4gdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgPiBsaS5pc09wZW4gPiB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9ORVc6aG92ZXIgPiB1bC5zdWIsIC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMOmhvdmVyID4gdWwuc3VieyBtaW4td2lkdGg6MTAwJTsgfSAudXBfbWVudSB1bC5uYXYgbGk6aG92ZXIgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiB7IGxlZnQ6MTQwJTsgdG9wOjA7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyB9ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgeyBtYXgtaGVpZ2h0OjY0MHB4OyBvdmVyZmxvdy15OmF1dG87IH0gLnVwX21lbnUgdWwubmF2ID4gbGkgPiB1bC5zdWIgPiBsaTpub3QoLmxhc3RJdGVtKTpub3QoLmxhc3RNZW51KTpub3QoLmhhc0l0ZW1zKSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6bm90KC5sYXN0SXRlbSkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9IGxpIHVsLnN1YiBhIHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpOmhvdmVyIHVsLnN1YiwgLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1VTRUQgdWwuc3ViID4gbGk6aG92ZXIgdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGk6aG92ZXIgdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfVVNFRCB1bC5zdWIgPiBsaTpob3ZlciB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IGxlZnQ6MTAwJTsgdHJhbnNpdGlvbjphbGwgMC4ycywgb3BhY2l0eSAwLjVzOyBvcGFjaXR5OjE7IH0gLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1VTRUQ6aG92ZXIgdWwuc3ViIGxpIHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6dmlzaWJsZTsgbGVmdDowOyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3BhY2l0eToxOyBib3gtc2hhZG93Om5vbmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpLmhvdmVyID4gYSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkuaG92ZXIgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkuaG92ZXIgbGkgPiB1bC5zdWIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpLmhvdmVyIGxpID4gdWwuc3ViIHsgZGlzcGxheTpibG9jazsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGk6aG92ZXIgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YjpmaXJzdC1jaGlsZCwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGk6aG92ZXIgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YjpmaXJzdC1jaGlsZCB7IGRpc3BsYXk6YmxvY2s7IH0gI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gLnN1YiB7IG1pbi13aWR0aDoxMDAlOyB9ICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiAuaXRlbS13cmFwLmltZ0xpbmsgeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9ICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiB7IGJhY2tncm91bmQ6d2hpdGU7IHdpZHRoOjQyMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgeyBkaXNwbGF5OmJsb2NrOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6bm90KC5sYXN0SXRlbSksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpub3QoLmxhc3RJdGVtKSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IH0gLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9ORVc+dWwuc3ViIGxpPnVsLnN1Yj5saS5oYXNTdWI6aG92ZXI+YSwgLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTD51bC5zdWIgbGk+dWwuc3ViPmxpLmhhc1N1Yjpob3Zlcj5hIHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfTkVXPnVsLnN1YiBsaSBhLmVtcHR5LCAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X1RBQl9DT01NRVJDSUFMPnVsLnN1YiBsaSBhLmVtcHR5IHsgcGFkZGluZzowOyBib3JkZXItYm90dG9tOm5vbmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgeyBsZWZ0OjA7IHRvcDppbmhlcml0OyBwb3NpdGlvbjpzdGF0aWM7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyBib3gtc2hhZG93Om5vbmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiB1bC5zdWIgLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gdWwuc3ViIHsgZGlzcGxheTpibG9jazsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IGEsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IGEgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm5vdCguaXRlbS13cmFwKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpub3QoLml0ZW0td3JhcCkgeyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjYwcHg7IGhlaWdodDo2MHB4OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1yaWdodDoxNXB4OyB3aWR0aDoyNSU7IG1pbi13aWR0aDpmaXQtY29udGVudDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKSB7IHBhZGRpbmctbGVmdDoxNXB4OyB3aWR0aDo3NSU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluaywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rIHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayA+IGltZywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rID4gaW1nIHsgaGVpZ2h0OjYwcHg7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGEsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBwYWRkaW5nLWJvdHRvbToxNXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBsZXR0ZXItc3BhY2luZzoxcHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYTphZnRlciwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhOmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpub25lOyB9IGxpLmFsaWduLWxldmVsIHsgcG9zaXRpb246c3RhdGljOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMikuaXRlbS13cmFwLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMikuaXRlbS13cmFweyBwYWRkaW5nLXRvcDoxMXB4OyBwYWRkaW5nLWJvdHRvbToxMHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gdWwuc3ViIGxpIGEuaXRlbS13cmFwIHsgbGluZS1oZWlnaHQ6MjBweDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSAqLCAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgKiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSAqLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bm90KC5pdGVtLXdyYXApLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bm90KC5pdGVtLXdyYXApIHsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo2MHB4OyBoZWlnaHQ6NjBweDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctcmlnaHQ6MTVweDsgd2lkdGg6MzAlOyBtaW4td2lkdGg6Zml0LWNvbnRlbnQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpeyBwYWRkaW5nLWxlZnQ6MTVweDsgd2lkdGg6NzAlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQ6YWZ0ZXIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZDphZnRlcnsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0b3A6LTI3cHg7IHJpZ2h0Oi03cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkOmFmdGVyLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkOmFmdGVyeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRvcDotMjdweDsgcmlnaHQ6LTdweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGlua3sgcmlnaHQ6MDsgZmxvYXQ6cmlnaHQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYS5pbWdMaW5rID4gaW1nLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayA+IGltZ3sgaGVpZ2h0OjYxcHg7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9IGxpLmxhc3RNZW51IHVsLnN1YiB7IHJpZ2h0OjA7IH0gLnVwX21lbnUgdWwubmF2IGxpIHVsLnN1YiBsaSBhOm50aC1vZi10eXBlKDEpLml0ZW0td3JhcCB7IHBhZGRpbmc6MDsgfSBsaS5oYXNJdGVtcyA+IGE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgd2lkdGg6MDsgaGVpZ2h0OjA7IGJvcmRlci1yYWRpdXM6MnB4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkOyBtYXJnaW4tbGVmdDo3cHg7IH0gbGkuaGFzU3ViID4gYTphZnRlciB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbGVmdDoxMDAlOyBtYXJnaW4tbGVmdDo3cHg7IHBvc2l0aW9uOnN0aWNreTsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCBsaS5oYXNJdGVtcyA+IGE6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpiZWZvcmUsIC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIGE6YmVmb3JlIHsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6N3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0xcHg7IH0gaS50cmlhbmdsZSB7IHdpZHRoOjA7IGhlaWdodDowOyBib3JkZXItcmFkaXVzOjJweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSBpLnRyaWFuZ2xlLnRyaWFuZ2xlLXVwIHsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjVweCBzb2xpZDsgfSBpLnRyaWFuZ2xlLnRyaWFuZ2xlLWRvd24geyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkOyB9IGkudHJpYW5nbGUudHJpYW5nbGUtcmlnaHQgeyBib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1sZWZ0OjVweCBzb2xpZDsgfSBpLnRyaWFuZ2xlLnRyaWFuZ2xlLWxlZnQgeyBib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQ7IH0gbGkjTWFpbk1lbnVfVVNFRF9TRUFSQ0hFUyB1bCBsaSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHdoaXRlOyB9IC5tZW51LWFkZHJlc3MtZGVzYyB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHBhZGRpbmctYm90dG9tOjIwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IGxpbmUtaGVpZ2h0OjE5cHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSAudXBfbWVudSAjTWFpbk1lbnVfQ09OVEFDVCB1bC5zdWIgPiAuY29udGFjdC1jb250YWluZXIgI21lbnUtbWFwLWxpbmsgeyBwYWRkaW5nOjA7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfQ09OVEFDVCA+IHVsLnN1YiA+IGxpLmNvbnRhY3QtY29udGFpbmVyIHsgYm9yZGVyLWJvdHRvbTpub25lOyBkaXNwbGF5OmdyaWQ7IGdyaWQtYXV0by1mbG93OmNvbHVtbjsgZ3JpZC1jb2x1bW4tZ2FwOjIwcHg7IH0gLnVwX21lbnUgI01haW5NZW51X0NPTlRBQ1QgdWwuc3ViLmNvbnRhY3R1cy1mb3JtIHsgd2lkdGg6MTAwJTsgcGFkZGluZzoxNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGxlZnQ6MDsgfSAudXBfbWVudSAjTWFpbk1lbnVfQ09OVEFDVCB1bC5zdWIuY29udGFjdHVzLWZvcm0uY29udGFjdC1zaG9ydCB7IHdpZHRoOjYxOXB4OyBsZWZ0OmF1dG87IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7IHJpZ2h0OjA7IH0gLnVwX21lbnUgI01haW5NZW51X0NPTlRBQ1QgdWwuc3ViLmNvbnRhY3Qtc2hvcnQgPiAuY29udGFjdC1jb250YWluZXIgPiAuYWRkcmVzcyB7IHBhZGRpbmctcmlnaHQ6MTVweDsgYm94LXNpemluZzpib3JkZXItYm94OyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gLm1lbnUtcGhvbmVzIHsgYm9yZGVyLXRvcDoycHggc29saWQgdmFyKC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlKTsgbWFyZ2luLXRvcDo4cHg7IH0gLnBob25lLXdyYXBwZXIgc3Bhbi5maXJzdCAuZmEtcGhvbmUgeyBtYXJnaW4tcmlnaHQ6OHB4OyB9IC5waG9uZS13cmFwcGVyIHsgcGFkZGluZy1ib3R0b206NXB4OyB9IC5tZW51LXBob25lcyAucGhvbmUtd3JhcHBlciB7IG1hcmdpbi10b3A6OHB4OyB9IC5tZW51LWFkZHJlc3MtZGVzYyAubWVudS1hZGRyZXNzLXdyYXBwZXIgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWF4LXdpZHRoOjI2NnB4OyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLm1lbnUtYWRkcmVzcy1kZXNjID4gLmZhLW1hcC1tYXJrZXIgeyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1hcmdpbi1yaWdodDo4cHg7IH0gLm1lbnUtbXVsdGlsb2NhdGlvbiB7IGJvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IG1hcmdpbi10b3A6OHB4OyBwYWRkaW5nLXRvcDo4cHg7IH0gLm1lbnUtbXVsdGlsb2MgeyBtYXJnaW4tdG9wOjZweDsgfSAubWVudS1tdWx0aWxvYyBzdW1tYXJ5IHsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpc3Qtc3R5bGU6bm9uZTsgfSAubWVudS1tdWx0aWxvYyBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsgZGlzcGxheTpub25lOyB9IC5tZW51LW11bHRpbG9jIHN1bW1hcnk6OmJlZm9yZSB7IGNvbnRlbnQ6IlwyNUI2IjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDo2cHg7IHRyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlOyB0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjsgfSAubWVudS1tdWx0aWxvY1tvcGVuXSBzdW1tYXJ5OjpiZWZvcmUgeyB0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTsgfSAubWVudS1tdWx0aWxvYy1ib2R5IHsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6MTJweDsgfSAuY29udGFjdC1jb250YWluZXIgLnRpdGxlIHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tdGFiLWNvbG9yLXNwZWNpYWxjYXNlKTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdGV4dC11cHBlcik7IGNvbG9yOnZhcigtLWJsYWNrKTsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzo2cHggMTVweCA2cHggMDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmNvbnRhY3QtY29udGFpbmVyIC5SZWNoZXJjaGUyMiB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IHRleHQtdHJhbnNmb3JtOnZhcigtLXRleHQtdXBwZXIpOyBjb2xvcjp2YXIoLS1ibGFjayk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6NnB4IDE1cHggNnB4IDA7IGZvbnQtc2l6ZToxMy4yOHB4OyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6aW5oZXJpdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmNvbnRhY3QtY29udGFpbmVyICNxdWlja0VtYWlsRm9ybSB7IG1hcmdpbjowIGF1dG87IH0gLmNvbnRhY3QtY29udGFpbmVyIC5hZGRyZXNzID4gdWwgPiBsaSA+IGE6YmVmb3JlIHsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBtYXJnaW4tcmlnaHQ6N3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0xcHg7IH0gLmNvbnRhY3QtY29udGFpbmVyIC5idXR0b25fYm94UzIgeyBmbG9hdDpub25lOyB3aWR0aDoyNTVweDsgcGFkZGluZy1yaWdodDowOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC51cF9tZW51ICNNYWluTWVudV9TRVJWSUNFIHVsLnN1Yi5zZXJ2aWNlLWZvcm0geyB3aWR0aDo2MCU7IGxlZnQ6YXV0bzsgcmlnaHQ6MDsgcGFkZGluZy1sZWZ0OjE1cHg7IHBhZGRpbmctcmlnaHQ6MTVweDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIsIC5tZW51LXNlcnZpY2Utd3JhcHBlciAqIHsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyLCAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyLCAubWVudS1zZXJ2aWNlLXdyYXBwZXIsIC5tZW51LXNlcnZpY2Utd3JhcHBlciAuanFUcmFuc2Zvcm1TZWxlY3RXcmFwcGVyeyAtd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7IC1tb3otYm94LXNpemluZzpjb250ZW50LWJveDsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXIgeyBtYXJnaW4tbGVmdDotMTVweDsgbWFyZ2luLXJpZ2h0Oi0xNXB4OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlcjo6YmVmb3JlLCAubWVudS1zZXJ2aWNlLXdyYXBwZXI6OmFmdGVyIHsgZGlzcGxheTp0YWJsZTsgY29udGVudDoiICI7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyOjphZnRlciB7IGNsZWFyOmJvdGg7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLWxlZnQsIC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1yaWdodCB7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLWRpdmlkZXIgeyBmbG9hdDpsZWZ0OyB3aWR0aDowLjElOyBoZWlnaHQ6NDAycHg7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCAjZTVlNWU1OyBtYXJnaW4tdG9wOjE1cHg7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLXJpZ2h0IHsgd2lkdGg6MzkuOCU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfU0VSVklDRSA+IHVsID4gbGkgPiAubWVudS1zZXJ2aWNlLXdyYXBwZXIgPiAuc2VydmljZS1yaWdodCB1bCBsaSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIC5zZXJ2aWNlLWxlZnQgeyB3aWR0aDo2MCU7IH0gLnNob3J0LXNlcnZpY2UtZm9ybSBpbnB1dCB7IGRpc3BsYXk6YmxvY2s7IH0gLnNlcnZpY2UtZm9ybS10aXRsZSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NnB4IDE1cHggNnB4IDA7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5zc2Ytc3VibWl0IHsgbWFyZ2luLXRvcDoxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuc3NmLXN1Ym1pdCAuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuIHsgLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94OyAtbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLnVwX21lbnUgdWwubmF2IGxpLm1lbnUtYWN0aXZlIHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC51cF9tZW51IHVsLm5hdiBsaS5tZW51LWFjdGl2ZSA+IGEgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IGZvcm0uc2hvcnQtc2VydmljZS1mb3JtLmpxdHJhbnNmb3JtZG9uZSAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIsIGZvcm0uc2hvcnQtc2VydmljZS1mb3JtLmpxdHJhbnNmb3JtZG9uZSAuanFUcmFuc2Zvcm1TZWxlY3RXcmFwcGVyIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5zc2YtZGF0ZS1jYWxlbmRhciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDowLjVyZW07IHJpZ2h0OjEuM3JlbTsgY29sb3I6I2FhYTsgd2lkdGg6MDsgfSAuaXRlbS13cmFwIHsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IC51cF9tZW51IHVsLnN1YiBsaSAuaXRlbS13cmFwIHsgbWluLWhlaWdodDo2MXB4OyB9IGJvZHkuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZC5pc0Z1bGxXaWR0aFBhZ2UgLk1haW5Cb3hMYXllciAudXBfbWVudSwgYm9keS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkLmlzRnVsbFdpZHRoUGFnZSAud3JhcHBlci5NYWluQm94TGF5ZXIgLnVwX21lbnUgeyB3aWR0aDppbmhlcml0OyB9ICNmdWxsV2lkdGhNZW51QmFyIHsgd2lkdGg6MTAwdnc7IGJvdHRvbTowOyBoZWlnaHQ6MTAwJTsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyByaWdodDo1MCU7IG1hcmdpbi1sZWZ0Oi01MHZ3OyBtYXJnaW4tcmlnaHQ6LTUwdnc7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYmFja2dyb3VuZDppbmhlcml0OyB6LWluZGV4Oi0xOyB9IC51cF9tZW51LndpdGgtYm9yZGVyICNmdWxsV2lkdGhNZW51QmFyIHsgYm9yZGVyLXRvcDoycHggc29saWQgdmFyKC0tbWVudS1jb2xvci1ib3JkZXIpOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS1tZW51LWNvbG9yLWJvcmRlcik7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDJweCk7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaS5pbnZlbnRvcnkgPiB1bC5zdWIgeyBvdmVyZmxvdzpoaWRkZW47IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2hvcnQgPiB1bC5zdWIgeyBsZWZ0OmluaGVyaXQ7IHdpZHRoOmF1dG87IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2hvcnQgPiB1bC5zdWIgPiBsaVtkYXRhLWlkXj0iVVNFRF8iXSB7IHdpZHRoOmF1dG87IG1pbi13aWR0aDoyNjBweDsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaG9ydCA+IHVsLnN1YiA+IGxpLmludmVudG9yeSA+IHVsID4gbGlbZGF0YS1pZF49IlVTRURfQ0FSU19HIl0geyB3aWR0aDphdXRvOyB9IC5za2VsZXRvbi5oZWFkZXItbWVudS5maXhlZCB7IHBvc2l0aW9uOmluaGVyaXQ7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEzMDBweCkgeyAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaG9ydC5zaG9ydC0yID4gdWwuc3ViIHsgbGVmdDowOyB9IH0KLyoqIC9jc3MvbWVudTUuY3NzICoqLwoudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1Ynsgd2lkdGg6MTAwJTsgbGVmdDowOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkgeyBmbG9hdDpsZWZ0OyB3aWR0aDoyNSU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzo1cHg7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaS5pbnZlbnRvcnkgeyBmbG9hdDpsZWZ0OyB3aWR0aDo3NSU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpID4gYSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGRpc3BsYXk6YmxvY2s7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaTpob3ZlciA+IGEgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgPiB1bC5zdWIgPiBsaS5pbnZlbnRvcnkgPiB1bCA+IGxpIHsgd2lkdGg6MzMlOyBmbG9hdDpsZWZ0OyB9IC5jb250YWN0LWNvbnRhaW5lciAjcXVpY2tFbWFpbEZvcm0geyB3aWR0aDoxMDAlOyB9IC5jb250YWN0LWNvbnRhaW5lciAuYnV0dG9uX2JveFMyIHsgbWFyZ2luOmF1dG87IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2ltcGxpZmllZCB1bC5zdWIgeyB3aWR0aDppbmhlcml0OyBsZWZ0OmluaGVyaXQ7IH0gLmV4cHJlc3MtZm9ybSB0YWJsZSB7IG1hcmdpbjowIGF1dG87IH0gLmV4cHJlc3MtZm9ybSAud2lkZ2V0X2V4cHJlc3NfbWFpbF9waG9uZV90aXRsZSB7IGRpc3BsYXk6bm9uZTsgfSBpbWcjbWVudS1jb250YWN0LW1hcCB7IHdpZHRoOjEwMCU7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQuc2ltcGxpZmllZCB1bC5zdWIgI01haW5NZW51X1VTRURfU0VBUkNIRVMgeyB3aWR0aDoxMDAlOyB9IC5maW5hbmNlLW1lbnUtY3JlZHNpaXsgbWluLXdpZHRoOjM3NXB4OyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X0ZJTkFOQ0UgPiB1bCA+IGxpID4gLm1lbnUtZmluYW5jZS13cmFwcGVyID4gdWwgbGkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9ICNNYWluTWVudV9GSU5BTkNFIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5sZWZ0IHsgbGVmdDowOyByaWdodDphdXRvOyB9IC5tZW51NSAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQucmlnaHQgeyByaWdodDowOyBsZWZ0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMjUwcHg7IGxlZnQ6YXV0bzsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IHsgbWluLXdpZHRoOjgwMHB4OyB9IC51cF9tZW51IHVsLm5hdiA+IGxpLmxhc3RNZW51ID4gdWwuc3ViID4gbGkgPiB1bCA+IGxpID4gZGl2IHsgcmlnaHQ6MTAwJTsgbGVmdDppbml0aWFsOyB9IC51cF9tZW51IHVsLm5hdiBsaS5pbnZlcnNlLWNvbG9yID4gYSB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gLmRlYWxlck1hcExpbmsgLmZhLWxvY2F0aW9uLWFycm93IHsgbWFyZ2luOjAgN3B4IDAgMDsgfSAudi1jYXJkLnRvcF9iZy5oZWFkZXItaW5mbyAuaGVhZGVyLXNlY3Rpb24uYWRkcmVzcy1yaWdodCB7IGZsZXgtZ3JvdzoyOyBqdXN0aWZ5LWNvbnRlbnQ6cmlnaHQ7IH0gLnYtY2FyZC50b3BfYmcuaGVhZGVyLWluZm8gLmhlYWRlci1zZWN0aW9uLmxvZ28tcmlnaHQgeyBtYXJnaW4tbGVmdDoxMHB4OyB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLmNzcyAqKi8KLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0LCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gdGV4dGFyZWE6Zm9jdXMgeyBib3JkZXItY29sb3I6Izg2YjdmZTsgb3V0bGluZTowOyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2IoMTMgMTEwIDI1MyAvIDI1JSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7IHotaW5kZXg6MzsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGJvcmRlci1jb2xvcjojZGMzNTQ1ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBjb2xvcjojZGMzNTQ1OyB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLnByZWxvYWQuY3NzICoqLwouZDJjZm9ybSB7IC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sOiIqIjsgLS1sYWJlbC1yZXF1aXJlZC1jb2xvcjojRkYwMDAwOyAtLWlucHV0LXBhZGRpbmc6dmFyKC0tcy0xKSB2YXIoLS1zMSk7IC0taW5wdXQtYmctY29sb3I6dmFyKC0td2hpdGUpOyAtLWlucHV0LWJvcmRlci1jb2xvcjp2YXIoLS1taWQtZ3JheSk7IC0taW5wdXQtcmFkaXVzOnZhcigtLXMtNik7IC0taW5wdXQtZm9udC1zaXplOnZhcigtLWZzMCk7IC0taW5wdXQtbGluZS1oZWlnaHQ6dmFyKC0tZnMyKTsgfSAuZDJjZm9ybSAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kMmNmb3JtIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy00KTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLXRoaW4gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTkpOyB9IC5kMmNmb3JtLS1yb3cgc3RhY2stbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtd3JhcDp3cmFwOyB9IC5kMmNmb3JtLS1yb3cgYm94LWxjIHsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDoxMTVweDsgd2lkdGg6MzAlOyBwYWRkaW5nLXJpZ2h0OnZhcigtLXMpOyBtYXJnaW4tdG9wOnZhcigtLXMxKTsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIGxhYmVsOmhhcyhbcmVxdWlyZWRdKSBzcGFuOmFmdGVyeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWw6bm90KC5maW5hbmNlQ2FsYyksIC5kMmNmb3JtIC5sYWJlbDpub3QoLmZpbmFuY2VDYWxjKSB7IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctcmlnaHQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gOndoZXJlKGlucHV0Om5vdChbdHlwZT1zdWJtaXRdLC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50KTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSkpLCAuZDJjZm9ybSBzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QpLCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCB7IGhlaWdodDozNXB4OyB9IC5kMmNmb3JtIC5pbnZhbGlkID4gOmlzKGlucHV0LHNlbGVjdCx0ZXh0YXJlYSl7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAuZDJjZm9ybSBpbnB1dDpkaXNhYmxlZCwgLmQyY2Zvcm0gaW5wdXQuZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKTsgY29sb3I6cmdiKDg0LCA4NCwgODQpOyBib3JkZXItY29sb3I6cmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpOyBjdXJzb3I6bm90LWFsbG93ZWQ7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyIHsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXI6OnBsYWNlaG9sZGVyIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQsIC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB0b3A6dmFyKC0tczEpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBjb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IC5pbnB1dC1pY29uIHsgcmlnaHQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgLmlucHV0LWljb24geyBsZWZ0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IGlucHV0IHsgcGFkZGluZy1sZWZ0OnZhcigtLXM5KTsgfSAuZDJjZm9ybSAuc2VwYXJhdG9yIHsgd2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2Q0ZDRkNDsgbWFyZ2luLXRvcDp2YXIoLS1zNyk7IG1hcmdpbi1ib3R0b206dmFyKC0tczcpOyB9IC5kMmNmb3JtIC5yYWRpby1pbmxpbmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0ID4gKiB7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0ID4gKjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBtYXJnaW4tcmlnaHQ6dmFyKC0tczEpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCB7IGRpc3BsYXk6ZmxleDsgd2lkdGggOjEwMCU7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC10ZXh0IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQ6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsgYm9yZGVyLWxlZnQ6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmxhc3QtY2hpbGQpIHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6OTgwcHgpIHsgLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjg1cHg7IH0gfQovKiogL2Nzcy9qcXVlcnkubXVsdGlzZWxlY3QuY3NzICoqLwoudWktbXVsdGlzZWxlY3R7cGFkZGluZzoycHggMCAycHggNHB4O3RleHQtYWxpZ246bGVmdH0udWktbXVsdGlzZWxlY3Qgc3Bhbi51aS1pY29ue2Zsb2F0OnJpZ2h0fS51aS1tdWx0aXNlbGVjdC1zaW5nbGUgLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgaW5wdXR7cG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDt0b3A6YXV0byAhaW1wb3J0YW50O2xlZnQ6LTk5OTlweH0udWktbXVsdGlzZWxlY3Qtc2luZ2xlIC51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVse3BhZGRpbmc6NXB4ICFpbXBvcnRhbnR9LnVpLW11bHRpc2VsZWN0LWhlYWRlcnttYXJnaW4tYm90dG9tOjNweDtwYWRkaW5nOjNweCAwIDNweCA0cHh9LnVpLW11bHRpc2VsZWN0LWhlYWRlciB1bHtmb250LXNpemU6LjllbX0udWktbXVsdGlzZWxlY3QtaGVhZGVyIHVsIGxpe2Zsb2F0OmxlZnQ7cGFkZGluZzowIDEwcHggMCAwfS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgYXt0ZXh0LWRlY29yYXRpb246bm9uZX0udWktbXVsdGlzZWxlY3QtaGVhZGVyIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0udWktbXVsdGlzZWxlY3QtaGVhZGVyIHNwYW4udWktaWNvbntmbG9hdDpsZWZ0fS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgbGkudWktbXVsdGlzZWxlY3QtY2xvc2V7ZmxvYXQ6cmlnaHQ7dGV4dC1hbGlnbjpyaWdodDtwYWRkaW5nLXJpZ2h0OjB9LnVpLW11bHRpc2VsZWN0LW1lbnV7ZGlzcGxheTpub25lO3BhZGRpbmc6M3B4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDA7dGV4dC1hbGlnbjpsZWZ0fS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVze3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93LXk6YXV0b30udWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsYWJlbHtjdXJzb3I6ZGVmYXVsdDtkaXNwbGF5OmJsb2NrO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7cGFkZGluZzozcHggMXB4fS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVsIGlucHV0e3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoxcHh9LnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGl7Y2xlYXI6Ym90aDtmb250LXNpemU6LjllbTtwYWRkaW5nLXJpZ2h0OjNweH0udWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaS51aS1tdWx0aXNlbGVjdC1vcHRncm91cC1sYWJlbHt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkO2JvcmRlci1ib3R0b206MXB4IHNvbGlkfS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxpLnVpLW11bHRpc2VsZWN0LW9wdGdyb3VwLWxhYmVsIGF7ZGlzcGxheTpibG9jaztwYWRkaW5nOjNweDttYXJnaW46MXB4IDA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9KiBodG1sIC51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVse2JvcmRlcjowfS51aS1tdWx0aXNlbGVjdC1oYXNmaWx0ZXIgdWx7cG9zaXRpb246cmVsYXRpdmU7dG9wOjJweH0udWktbXVsdGlzZWxlY3QtZmlsdGVye2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjEwcHg7Zm9udC1zaXplOjExcHh9LnVpLW11bHRpc2VsZWN0LWZpbHRlciBpbnB1dHt3aWR0aDoxMDBweDtmb250LXNpemU6MC42MjVyZW0gO21hcmdpbi1sZWZ0OjVweDtoZWlnaHQ6MTVweDtwYWRkaW5nOjJweDtib3JkZXI6MXB4IHNvbGlkICMyOTI5Mjk7LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3h9Ci8qKiAvY3NzL3RyYWRlaW5wb3B1cC5jc3MgKiovCi50cmFkZUluQmFyU3RlcDIgLnRyYWRlSW5CYXJTdGVwMlF1ZXN0aW9ueyBtYXJnaW46MjBweCAwOyB9IC50cmFkZUluQmFyU3RlcDIgLnJhZGlvX2RpdiBsYWJlbHsgd2lkdGg6NTBweDsgcGFkZGluZzowOyBtYXJnaW46NXB4OyBkaXNwbGF5OmlubGluZS1ibG9jayB9IC50cmFkZUluQmFyU3RlcDIgLnJhZGlvX2RpdiBpbnB1dHsgd2lkdGg6YXV0byAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjVweCAhaW1wb3J0YW50OyBib3JkZXI6bm9uZSAhaW1wb3J0YW50OyB9IC50cmFkZUluQmFyU3RlcDIsIC50cmFkZUluQmFyU3RlcDMsIC50cmFkZUluQmFyU3RlcDQsIC50cmFkZUluQmFyU3RlcDV7IG1hcmdpbjo2MHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC50cmFkZUluQmFyU3RlcDZ7IG1hcmdpbjowIDAgMzBweCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAudHJhZGVJbkJhclN0ZXAzIC50cmFkZUluQmFyU3RlcDNRdWVzdGlvbiwgLnRyYWRlSW5CYXJTdGVwNCAudHJhZGVJbkJhclN0ZXA0UXVlc3Rpb24sIC50cmFkZUluQmFyU3RlcDUgLnRyYWRlSW5CYXJTdGVwNVF1ZXN0aW9uLCAudHJhZGVJbkJhclN0ZXA2IC50cmFkZUluQmFyU3RlcDZRdWVzdGlvbnsgbWFyZ2luOjIwcHggMDsgfSAjdHJhZGVJbkJhclBvcHVwU3VibWl0LCAudHJhZGVJbkJhclN0ZXAzICN0cmFkZUluU3RlcDNZZXMsIC50cmFkZUluQmFyU3RlcDQgI3RyYWRlSW5TdGVwNFllcywgLnRyYWRlSW5CYXJTdGVwNSAjdHJhZGVJblN0ZXA1WWVzLCAudHJhZGVJbkJhclN0ZXA2ICN0cmFkZUluU3RlcDZZZXN7IGJhY2tncm91bmQ6IzJmYmYxOTsgY29sb3I6I2ZmZmZmZjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MTJweDsgZm9udC13ZWlnaHQ6NTAwOyBib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBtYXgtd2lkdGg6MzUwcHg7IH0gLnRyYWRlSW5CYXJTdGVwMyAjdHJhZGVJblN0ZXAzTm97IGJhY2tncm91bmQ6I2UwZTBlMDsgY29sb3I6IzMzMzsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4OyBmb250LXdlaWdodDo1MDA7IGJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IHRyYW5zaXRpb246YWxsIDAuM3M7IG1heC13aWR0aDozNTBweDsgbWFyZ2luLXRvcDoxMHB4OyB9ICN0cmFkZUluQmFyUG9wdXBTdWJtaXQ6aG92ZXIsIC50cmFkZUluQmFyU3RlcDMgI3RyYWRlSW5TdGVwM1llczpob3ZlciwgLnRyYWRlSW5CYXJTdGVwNCAjdHJhZGVJblN0ZXA0WWVzOmhvdmVyLCAudHJhZGVJbkJhclN0ZXA1ICN0cmFkZUluU3RlcDVZZXM6aG92ZXIsIC50cmFkZUluQmFyU3RlcDYgI3RyYWRlSW5TdGVwNlllczpob3ZlcnsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojMmZiZjE5OyBvcGFjaXR5OjAuOTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQgI3RyYWRlSW5LZXlTZWxlY3R7IHdpZHRoOjM1MHB4OyBtYXgtd2lkdGg6MzUwcHg7IHBhZGRpbmc6MTBweDsgbWFyZ2luLWJvdHRvbToyMHB4OyBib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBmb250LXNpemU6MC44NzVyZW0gOyBvdXRsaW5lOm5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA1ICNzdGVwNVZpbnsgd2lkdGg6MzUwcHg7IG1heC13aWR0aDozNTBweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDYgLnRyYWRlSW5CYXJTdGVwNlRpdGxleyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwX2xpbmUxeyBib3JkZXItcmFkaXVzOjZweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWRlci1jb250YWluZXIgeyBtYXgtd2lkdGg6NjAwcHg7IHdpZHRoOjEwMCU7IG1hcmdpbjowIGF1dG87IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgcGFkZGluZzoyMHB4OyBib3JkZXItcmFkaXVzOjhweDsgYm94LXNoYWRvdzowIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZGVyLWNvbnRhaW5lciBoMiB7IGZvbnQtc2l6ZToxLjJyZW07IG1hcmdpbi1ib3R0b206MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAudXBsb2FkZXItY29udGFpbmVyIHAgeyBjb2xvcjojNjY2OyBtYXJnaW4tYm90dG9tOjIwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC45cmVtOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLmltYWdlLWdyaWQgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwgMWZyKTsgZ2FwOjE1cHg7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6MjgwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWQtYXJlYSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDAlOyBhc3BlY3QtcmF0aW86MSAvIDE7IGJvcmRlcjoycHggZGFzaGVkICNjY2M7IGJvcmRlci1yYWRpdXM6MTBweDsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgYmFja2dyb3VuZC1zaXplOjkwJTsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhIGlucHV0W3R5cGU9ImZpbGUiXSB7IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5wbGFjZWhvbGRlciB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgb2JqZWN0LWZpdDpjb250YWluOyBkaXNwbGF5Om5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAucGxhY2Vob2xkZXItdGl0bGUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjVweDsgbGVmdDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOyBmb250LXNpemU6MC44cmVtOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojNjY2OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsgcGFkZGluZzoxcHggNnB4OyBib3JkZXItcmFkaXVzOjRweDsgcG9pbnRlci1ldmVudHM6bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHdoaXRlLXNwYWNlOm5vd3JhcDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLmFkZC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTo1cHg7IHJpZ2h0OjVweDsgZm9udC1zaXplOjEuMXJlbTsgY29sb3I6IzAwN0JGRjsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czo1MCU7IHdpZHRoOjI4cHg7IGhlaWdodDoyOHB4OyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm94LXNoYWRvdzowIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLmRlbGV0ZS1idG4geyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjVweDsgcmlnaHQ6NXB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjBweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNyk7IGNvbG9yOndoaXRlOyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1MCU7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbGluZS1oZWlnaHQ6MjBweDsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWQtYXJlYTpob3ZlciAuZGVsZXRlLWJ0biB7IGRpc3BsYXk6ZmxleDsgfSAudHJhZGVJbkJvdHRvbUxvZ297IHRleHQtYWxpZ246Y2VudGVyOyBjb2xvcjojYTlhOWE5OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSBAbWVkaWEgKG1heC13aWR0aDo2MDBweCkgeyAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWRlci1jb250YWluZXIgeyBwYWRkaW5nOjE1cHg7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuaW1hZ2UtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywgMWZyKTsgZ2FwOjEwcHg7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAucGxhY2Vob2xkZXItdGl0bGUgeyBmb250LXNpemU6MC43cmVtOyB9IH0gQG1lZGlhIChtYXgtd2lkdGg6NDAwcHgpIHsgI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuaW1hZ2UtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwgMWZyKTsgZ2FwOjhweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5wbGFjZWhvbGRlci10aXRsZSB7IGZvbnQtc2l6ZTowLjZyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuYWRkLWljb24geyB3aWR0aDoyNHB4OyBoZWlnaHQ6MjRweDsgZm9udC1zaXplOjFyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuZGVsZXRlLWJ0biB7IHdpZHRoOjE2cHg7IGhlaWdodDoxNnB4OyBmb250LXNpemU6MC42MjVyZW0gOyB9IH0KLyoqIC9jc3MvcmV2ZWFsLmNzcyAqKi8KLnJldmVhbC1tb2RhbC1iZyB7IHBvc2l0aW9uOmZpeGVkOyBoZWlnaHQ6MTAwJTsgd2lkdGg6MTAwJTsgYmFja2dyb3VuZDojMDAwOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpOyB6LWluZGV4OjEwMDAwMDk7IGRpc3BsYXk6bm9uZTsgdG9wOjA7IGxlZnQ6MDsgfSAucmV2ZWFsLW1vZGFsIHsgdmlzaWJpbGl0eTpoaWRkZW47IHRvcDotMTAwMHB4OyB3aWR0aDptaW4oNTIwcHgsIDkwdncpOyBiYWNrZ3JvdW5kOiNlZWUgdXJsKC9pbWFnZXMvbW9kYWwtZ2xvc3MucG5nKSBuby1yZXBlYXQgLTIwMHB4IC04MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IG1hcmdpbjphdXRvOyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MzBweCA0MHB4IDM0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgLWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IH0gLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHZpc2liaWxpdHk6aGlkZGVuOyB0b3A6MTAwcHg7IHdpZHRoOjUyMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDAwMDIwOyBwYWRkaW5nOjMwcHggNDBweCAzNHB4OyBiYWNrZ3JvdW5kOm5vbmU7IC1tb3otYm9yZGVyLXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlci1yYWRpdXM6MHB4OyAtbW96LWJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IC1ib3gtc2hhZG93Om5vbmU7IH0gLi0taXMtcG9wdXAtZml4ZWQtY29udGFpbmVyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IHotaW5kZXg6MTAwMDAwMDAwOyB9IC5yZXZlYWwtbW9kYWwuc21hbGwgeyB3aWR0aDoyMDBweDt9IC5yZXZlYWwtbW9kYWwubWVkaXVtIHsgd2lkdGg6NDAwcHg7fSAucmV2ZWFsLW1vZGFsLmxhcmdlIHsgd2lkdGg6NjAwcHg7fSAucmV2ZWFsLW1vZGFsLnhsYXJnZSB7IHdpZHRoOjgwMHB4O30gLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZm9udC1zaXplOjEuMzc1cmVtIDsgbGluZS1oZWlnaHQ6LjU7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6OXB4OyByaWdodDoxMHB4OyBjb2xvcjojNDQ0OyB0ZXh0LXNoYWRvdzowIC0xcHggMXB4IHJiZ2EoMCwwLDAsLjYpOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgfSAuY2xvc2UtcmV2ZWFsLW1vZGFsLm1vZGFsLWNsb3NlLWhpZGUgeyBkaXNwbGF5Om5vbmU7IH0gLnJldmVhbC1tb2RhbCBzcGFuIHsgcGFkZGluZzowcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM0MTQxNDE7IH0gLnJldmVhbC1tb2RhbCBzcGFuLnN1Y2Nlc3MgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NpcmNsZS1ncmVlbi0yNC1ucy5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IH0gLnJldmVhbC1tb2RhbCBzcGFuLmZhaWwgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NpcmNsZS1yZWQtMjQtbnMucG5nKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgY2VudGVyIHRyYW5zcGFyZW50OyB9IC5yZXZlYWwtbW9kYWwgcCB7IG1hcmdpbjowIDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzQxNDE0MTsgfSAucG9wdXAtZG9tLW5vd3JhcHBlciB7IGJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50OyBib3gtc2hhZG93Om5vbmU7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDo0ODBweCkgeyAucmV2ZWFsLW1vZGFsLCAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IHsgdG9wOjEwcHg7IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzowLjVyZW07IHBhZGRpbmctdG9wOjJyZW07IH0gLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZm9udC1zaXplOjEuODc1cmVtIDsgbGluZS1oZWlnaHQ6MC42OyByaWdodDowLjVyZW07IHRvcDowLjVyZW07IHotaW5kZXg6MTsgfSB9IC5lbWFpbC1jb25zZW50LWJveCA6aXMoLnRpdGxlLXR4dCwgcCl7IG1hcmdpbi1sZWZ0OjA7IHBhZGRpbmc6MDsgY29sb3I6IzQxNDE0MTsgfSAuZW1haWwtY29uc2VudC1ib3h7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgY29sb3I6IzQxNDE0MTsgfSAuZW1haWwtY29uc2VudC1ib3ggLmljb24tdGl0bGV7IHRleHQtYWxpZ246Y2VudGVyOyB9Ci8qKiAvY3NzL2FkdmFuY2VkLXNsaWRlci1iYXNlLmNzcyAqKi8KLmFkdmFuY2VkLXNsaWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzp2aXNpYmxlOyBvdXRsaW5lOm5vbmU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgKiB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGVyLW1haW4geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtd3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzp2aXNpYmxlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIHVsLnNsaWRlcyB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbjowOyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6ZmxleDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHZpc2liaWxpdHk6aGlkZGVuOyBsaXN0LXN0eWxlOm5vbmU7IGZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7IG9wYWNpdHk6MTsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5pbWFnZSwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAudGh1bWJuYWlsLCAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5jYXB0aW9uLCAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5odG1sIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSBpbWcsIC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCBpbWcgeyBtYXgtd2lkdGg6bm9uZTsgbWF4LWhlaWdodDpub25lOyBib3JkZXI6MCBub25lOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLmh0bWwgeyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAudmlkZW8geyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUuYWN0aXZlIC52aWRlbyB7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpY2UtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5zbGlkZXMgeyAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IC1tb3otdXNlci1zZWxlY3Q6bm9uZTsgLW8tdXNlci1zZWxlY3Q6bm9uZTsgdXNlci1zZWxlY3Q6bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5zbGlkZXMgLnNlbGVjdGFibGUgeyAtd2Via2l0LXVzZXItc2VsZWN0OmF1dG87IC1tb3otdXNlci1zZWxlY3Q6YXV0bzsgLW8tdXNlci1zZWxlY3Q6YXV0bzsgdXNlci1zZWxlY3Q6YXV0bzsgY3Vyc29yOmF1dG87IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuZ3JhYiB7IGN1cnNvcjpncmFiOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgLmdyYWJiaW5nIHsgY3Vyc29yOmdyYWJiaW5nOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWNlIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAucHJlbG9hZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcHJlbG9hZGVyMi5naWYpIG5vLXJlcGVhdDsgd2lkdGg6NjJweDsgaGVpZ2h0OjE0cHg7IHotaW5kZXg6MTU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYXJyb3dzIHsgcG9zaXRpb246c3RhdGljOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWFycm93cyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MzA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6ODBweDsgaGVpZ2h0OjgwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi00MHB4OyBtYXJnaW4tbGVmdDotNDBweDsgY3Vyc29yOnBvaW50ZXI7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAubGlnaHRib3gtaWNvbi5wbGF5IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9wbGF5LnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAubGlnaHRib3gtaWNvbi5tYWduaWZ5aW5nIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saWdodGJveF9tYWduaWZ5aW5nX3NtYWxsLnBuZykgbm8tcmVwZWF0OyBmbG9hdDpsZWZ0OyBsZWZ0OjA7IHRvcDowOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6bm9uZTsgfSB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24uaHlwZXJsaW5rIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9oeXBlcmxpbmsucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZXNob3ctY29udHJvbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0MDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IHsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDo5NHB4OyBtYXJnaW4tdG9wOi01MHB4OyB6LWluZGV4OjU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IC5zaGFkb3ctbGVmdCwgLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IC5zaGFkb3ctcmlnaHQsIC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LW1pZGRsZSB7IGZsb2F0OmxlZnQ7IH0gLmFkdmFuY2VkLXNsaWRlciAuZnVsbC1zY3JlZW4tY29udHJvbHMgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Z1bGxzY3JlZW4ucG5nKSBuby1yZXBlYXQ7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDozMXB4OyBoZWlnaHQ6MjdweDsgdG9wOjIwcHg7IGxlZnQ6MjBweDsgei1pbmRleDo2MDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NTA7IH0gLmFkdmFuY2VkLXNsaWRlciBjYW52YXMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24gLnRpbWVyLWFuaW1hdGlvbi1jb250cm9scyB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgd2lkdGg6MjBweDsgaGVpZ2h0OjIwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi0xMHB4OyBtYXJnaW4tbGVmdDotMTBweDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24gLnRpbWVyLWFuaW1hdGlvbi1jb250cm9scyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcGxheXBhdXNlX3NtYWxsLnBuZykgbm8tcmVwZWF0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbi5wbGF5IC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMHB4IDA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uLnBhdXNlIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5jYXB0aW9uLWNvbnRhaW5lciB7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgLndyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5jYXB0aW9uLWNvbnRhaW5lciAuYmFja2dyb3VuZCB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtd3JhcHBlciB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcHJlbG9hZGVyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYnV0dG9ucyB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjIwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgLmxlZnQsIC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgLnJpZ2h0LCAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5taWRkbGUgeyBmbG9hdDpsZWZ0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgYSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBjdXJzb3I6cG9pbnRlcjsgZmxvYXQ6bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjIwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAudmlzaWJsZS1jb250YWluZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IG92ZXJmbG93OnZpc2libGU7IHRvcDowOyBsZWZ0OjA7IGxpc3Qtc3R5bGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLnRodW1ibmFpbC13cmFwcGVyIHsgY3Vyc29yOnBvaW50ZXI7IGxpc3Qtc3R5bGU6bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzBweDsgaGVpZ2h0OjMwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi0xNXB4OyBtYXJnaW4tbGVmdDotMTVweDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uLnBsYXkgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X3BsYXlfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24ubWFnbmlmeWluZyB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfbWFnbmlmeWluZ19zbWFsbC5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAubGlnaHRib3gtaWNvbi5oeXBlcmxpbmsgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X2h5cGVybGlua19zbWFsbC5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCAuY2FwdGlvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCAuY2FwdGlvbiAuYmFja2dyb3VuZCB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24gLmNvbnRlbnQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmFycm93cyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuYnV0dG9ucyB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuYnV0dG9ucyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyLXRvb2x0aXAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OTk5OyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGUgYSB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGU6bnRoLWNoaWxkKC1uKzQpIGEgaW1neyB3aWR0aDoxMTUlICFpbXBvcnRhbnQ7IH0gLm9lbS1pbWctc2xpZGVyIC5zbGlkZSBhIGltZ3sgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgbWF4LXdpZHRoOm5vbmUgIWltcG9ydGFudDsgbWF4LWhlaWdodDpub25lICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7IGxlZnQ6aW5pdGlhbCAhaW1wb3J0YW50OyB0b3A6aW5pdGlhbCAhaW1wb3J0YW50OyBtYXgtd2lkdGg6dW5zZXQgIWltcG9ydGFudDsgbWF4LWhlaWdodDp1bnNldCAhaW1wb3J0YW50OyB9IC5vZW0taW1nLXNsaWRlciAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyIHsgYmFja2dyb3VuZC1zaXplOjExNSU7IH0KLyoqIC9jc3MvdmVoaWNsZUZlYXR1cmVTdW1tYXJ5LnByZWxvYWQuY3NzICoqLwoudmRwRmVhdHVyZVN1bW1hcnl7IC0tc3dpdGNoLWJwOjUwcmVtOyBib3JkZXItY29sb3I6I2NjY2NjYzsgY2xlYXI6Ym90aDsgfSAudnNmaUl0ZW1TdW1tYXJ5IHsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MS4ycmVtOyB9IC52ZHBGZWF0dXJlQ29uc3VtcHRpb257IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IH0gLnZkcEZlYXR1cmVDb25zdW1wdGlvbiA+ICp7IGZsZXg6MSAxIDMxJTsgbWluLXdpZHRoOjlyZW07IH0KLyoqIC9jc3MvdG9hc3RyLmNzcyAqKi8KLnRvYXN0LXRpdGxle2ZvbnQtd2VpZ2h0OmJvbGR9LnRvYXN0LW1lc3NhZ2V7LW1zLXdvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfS50b2FzdC1tZXNzYWdlIGEsLnRvYXN0LW1lc3NhZ2UgbGFiZWx7Y29sb3I6I2ZmZn0udG9hc3QtbWVzc2FnZSBhOmhvdmVye2NvbG9yOiNjY2M7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnRvYXN0LWNsb3NlLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDotMC4zZW07dG9wOi0wLjNlbTtmbG9hdDpyaWdodDtmb250LXNpemU6MS4yNXJlbSA7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjppbmhlcml0Oy13ZWJraXQtdGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO3RleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjtvcGFjaXR5Oi44Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfS50b2FzdC1jbG9zZS1idXR0b246aG92ZXIsLnRvYXN0LWNsb3NlLWJ1dHRvbjpmb2N1c3tjb2xvcjojMDAwMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO29wYWNpdHk6LjQ7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT00MCl9YnV0dG9uLnRvYXN0LWNsb3NlLWJ1dHRvbntwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0udG9hc3QtdG9wLWNlbnRlcnt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LWJvdHRvbS1jZW50ZXJ7Ym90dG9tOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC10b3AtZnVsbC13aWR0aHt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LWJvdHRvbS1mdWxsLXdpZHRoe2JvdHRvbTowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtdG9wLWxlZnR7dG9wOjEycHg7bGVmdDoxMnB4fS50b2FzdC10b3AtcmlnaHR7dG9wOjEycHg7cmlnaHQ6MTJweH0udG9hc3QtYm90dG9tLXJpZ2h0e3JpZ2h0OjEycHg7Ym90dG9tOjEycHh9LnRvYXN0LWJvdHRvbS1sZWZ0e2JvdHRvbToxMnB4O2xlZnQ6MTJweH0jdG9hc3QtY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5OTk5O2NvbG9yOiNGRkZ9I3RvYXN0LWNvbnRhaW5lciAqey1tb3otYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0jdG9hc3QtY29udGFpbmVyPmRpdntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjAgMCA2cHg7cGFkZGluZzoxNXB4IDE1cHggMTVweCA1MHB4O3dpZHRoOjMwMHB4Oy1tb3otYm9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDtib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjE1cHggY2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstbW96LWJveC1zaGFkb3c6MCAwIDEycHggIzk5OTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEycHggIzk5OTtib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7Y29sb3I6aW5oZXJpdDtvcGFjaXR5Oi44Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfSN0b2FzdC1jb250YWluZXI+OmhvdmVyey1tb3otYm94LXNoYWRvdzowIDAgMTJweCAjMDAwOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMTJweCAjMDAwO2JveC1zaGFkb3c6MCAwIDEycHggIzAwMDtvcGFjaXR5OjE7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtjdXJzb3I6cG9pbnRlcn0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1pbmZve2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR3dTVVJCVkVoTHRaYTlTZ05CRU1jOXNVeHhSY29VS1N6U1dJaFhwRk1oaFlXRmhhQmc0eVBZaVdDWFp4QkxFUnNMUlMzRVFrRWZ3Q0tkaldKQXdTS0Nnb0tDY3VkdjRPNVlMcnQ3RXpnWGhpVTMvNCtiMmNrbXdWakpTcEtrUTZ3QWk0Z3doVCt6M3dSQmNFejB5alNzZVVUcmNSeWZzSHNYbUQwQW1iSE9DOUlpOFZJbW51WEJQZ2xIcFE1d3dTVk03c05uVEc3WmE0SndEZENqeHlBaUgzbnlBMm10YVRKdWZpRFo1ZENhcWxJdElMaDFOSGF0Zk41c2t2ang5WjM4bTY5Q2d6dVhtWmdWclBJR0U3NjNKeDlxS3NSb3pXWXc2eE9IZEVSK25uMktrTytCYitVVjVDQk42V0M2UXRCZ2JSVm96cmFoQWJtbTZIdFVzZ3RQQzE5dEZkeFhaWUJPZmtibUZKMVZhSEExVkFIamQwcHA3MG9UWnp2UitFVnJ4MllnZmRzcTZldTU1QkhZUjhobGNraStuK2tFUlVGRzhCckEwQndqZUF2Mk04V0xRQnRjeStTRDZmTnNtbkIzQWxCTHJnVHRWVzFjMlFONGJWV0xBVGFJUzYwSjJEdTV5MVRpSmdqU0J2RlZaZ1Rtd0NVK2RBWkZvUHhHRUVzOG55SEM5QndlMkd2RUp2MldYWmIwdmpkeUZUNEN4azNlL2tJcWxPR29WTHd3UGV2cFlIVCswMFQraFd3WERmNEFKQU9VcVdjRGhid0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1lcnJvcntiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUhPU1VSQlZFaExyWmEvU2dOQkVNWnpoMFdLQ0NsU0NLYUlZT0VEK0FBS2VRUUxHOEhXenRMQ0ltQnJZYWRnSWRZK2dJS05Za0JGU3d1N0NBb3FDZ2trb0dCSS9FMjhQZGJMWm1lRExnelp6Y3g4My96WjJTU1hDMWo5ZnIrSTFIcTkzZzJ5eEg0aXdNMXZrb0JXQWR4Q21welR4ZmtOMlJjeVpOYUhGSWtTbzEwKzhrZ3hrWElVUlY1SEd4VG1GdWM3NUIyUmZRa3B4SEc4YUFnYUFGYTB0QUhxWUZmUTdJd2UyeWhPRGs4K0o0Qzd5QW9SVFdJM3cvNGtsR1JnUjRsTzdScG45K2d2TXlXcCt1eEZoOCtIK0FSbGdOMW5KdUp1UUFZdk5rRW53R0ZjazE4RXI0cTNlZ0VjL29PK21oTGRLZ1J5aGRORmlhY0MwcmxPQ2JoTlZ6NEg5Rm5BWWdEQnZVM1FJaW9abEpGTEp0c29IWVJEZmlab1V5SXhxQ3RScFZsQU5xMEVVNGRBcGpydGdlelBGYWQ1UzE5V2dqa2MwaE5WbnVGNEhqVkE2QzdRclNJYnlsQitvWmUzYUhnQnNxbE5xS1lINDhqWHlKS011QWJpeVZKOEt6YUIzZVJjMHBnOVZ3UTRuaUZyeUk2OHFpT2kzQWJqd2RzZm5BdGswYkNqVExKS3I2bXJEOWc4aXEvUy9CODFoZ3VPTWxRVG5WeUc0MHdBY2pubWdzQ05FU0Ryam1lN3dmZnRQNFA3U1A0TjNDSlpkdnpvTnlHcTJjL0hXT1hKR3N2VmcrUkEvazJNQy93TjZJMllBMlB0OEdrQUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXI+LnRvYXN0LXN1Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFEc1NVUkJWRWhMWTJBWUJmUU1nZi8vLzNQOCsvZXZBSWd2QS9Gc0lGK0JhdllERFdNQkdyb2FTTU1CaUU4VkM3QVpEcklGYU1GbmlpM0FaVGpVZ3NVVVdVREE4T2RBSDZpUWJRRWh3NEh5R3NQRWNLQlhCSUM0QVJoZXg0RzRCc2ptd2VVMXNvSUZhR2cvV3RvRlpSSVpkRXZJTWh4a0NDalhJVnNBVFY2Z0ZHQUNzNFJzdzBFR2dJSUgzUUpZSmdIU0FSUVpEcldBQitqYXd6Z3MrUTJVTzQ5RDdqblJTUkdvRUZSSUxjZG1FTVdHSTBjbTBKSjJRcFlBMVJEdmNtekpFV2hBQmhEL3BxckwwUzBDV3VBQktnblJraTlsTHNlUzdnMkFscXdIV1FTS0g0b0tMcklMcFJHaEVRQ3cyTGlSVUlhNGx3QUFBQUJKUlU1RXJrSmdnZz09IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC13YXJuaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR1lTVVJCVkVoTDVaU3ZUc05RRk1iWFpHSUNNWUdZbUpoQVFJSkFJQ1lRUEFBQ2lTREI4QWlJQ1FRSlQ0Q3FRRXdnSnZZQVNBUUNpWmlZbUpoQUlCQVRDQVJKeSs5clRzbGRkOHNLdTFNMCtkTGIwNTd2Ni9sYnEvMnJLMG1TL1RSTmo5Y1dOQUtQWUlKSUk3Z0l4Q2NRNTFjdnFJRCtHSUVYOEFTRzRCMWJLNWdJWkZlUWZvSmRFWE9mZ1g0UUFRZzdrSDJBNjV5UTg3bHl4YjI3c2dna0F6QXVGaGJiZzFLMmtnQ2tCMWJWd3lJUjltMkw3UFJQSWhEVUlYZ0d0eUt3NTc1eXozbFROczZYNEpYbmpWK0xLTS9tM015ZG5UYnRPS0lqdHo2VmhDQnE0dlNtM25jZHJEMmxrMFZnVVhTVktqVkRKWEp6aWpXMVJRZHNVN0Y3N0hlOHU2OGtvTlpUejhPejV5R2E2SjNIM2xaMHhZZ1hCSzJReW1sV1dBK1JXblloc2tMQnYydm1FK2hCTUN0YkE3S1g1ZHJXeVJULzJKc3FaMkl2ZkI5WTRiV0ROTUZiSlJGbUM5RTc0U29TMENxdWx3amtDMCs1YnBjVjFDWjhOTWVqNHBqeTBVK2RvRFFzR3lvMWh6Vkp0dElqaFE3R25CdFJGTjFVYXJVbEg4RjN4aWN0K0hZMDdyRXpvVUdQbFdjalJGUnI0L2dDaFpnYzNaTDJkOG9BQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lci50b2FzdC10b3AtY2VudGVyPmRpdiwjdG9hc3QtY29udGFpbmVyLnRvYXN0LWJvdHRvbS1jZW50ZXI+ZGl2e3dpZHRoOjMwMHB4O21hcmdpbjphdXRvfSN0b2FzdC1jb250YWluZXIudG9hc3QtdG9wLWZ1bGwtd2lkdGg+ZGl2LCN0b2FzdC1jb250YWluZXIudG9hc3QtYm90dG9tLWZ1bGwtd2lkdGg+ZGl2e3dpZHRoOjk2JTttYXJnaW46YXV0b30udG9hc3R7YmFja2dyb3VuZC1jb2xvcjojMDMwMzAzfS50b2FzdC1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6IzUxYTM1MX0udG9hc3QtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjojYmQzNjJmfS50b2FzdC1pbmZve2JhY2tncm91bmQtY29sb3I6IzJmOTZiNH0udG9hc3Qtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmODk0MDZ9LnRvYXN0LXByb2dyZXNze3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDtoZWlnaHQ6NHB4O2JhY2tncm91bmQtY29sb3I6IzAwMDtvcGFjaXR5Oi40Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6OHB4IDhweCA4cHggNTBweDt3aWR0aDoxMWVtfSN0b2FzdC1jb250YWluZXIgLnRvYXN0LWNsb3NlLWJ1dHRvbntyaWdodDotMC4yZW07dG9wOi0wLjJlbX19QG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDoyNDFweCkgYW5kIChtYXgtd2lkdGg6NDgwcHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6OHB4IDhweCA4cHggNTBweDt3aWR0aDoxOGVtfSN0b2FzdC1jb250YWluZXIgLnRvYXN0LWNsb3NlLWJ1dHRvbntyaWdodDotMC4yZW07dG9wOi0wLjJlbX19QG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDo0ODFweCkgYW5kIChtYXgtd2lkdGg6NzY4cHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6MTVweCAxNXB4IDE1cHggNTBweDt3aWR0aDoyNWVtfX0KLyoqIC9jc3Mvc3R5bGVfc2NyYXRjaC5jc3MgKiovCi5zY3JhdGNob3V0ZXJib2R5IHtiYWNrZ3JvdW5kOiNmZmY7fSAuc2NyYXRjaGJvZHkgeyBiYWNrZ3JvdW5kOiNlZWUgdXJsKC9pbWFnZXMvc2NyYXRjaC9ncmFpbi5naWYpOyBib3JkZXI6I2QwMCA3cHggZG90dGVkOyB9IC5zY3JhdGNoYm9keSwgLnNjcmF0Y2hib2R5MiwgLnNjcmF0Y2hidG4geyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IH0gLnNjcmF0Y2hib2R5M3sgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojZmZmZmZmOyB9IC5zY3JhdGNoaW1hZ2UzeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IGNvbG9yOiMwMDAwMDA7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zY3JhdGNoaW1hZ2UzIGltZ3sgd2lkdGg6MTAwJTsgfSAuc2NyYXRjaGltYWdlM1RleHQxeyBmb250LXNpemU6Mi4zNzVyZW0gOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDozMiU7IHdpZHRoOjE4OHB4OyBmb250LXdlaWdodDo3MDA7IHRvcDoxNSU7IH0gLnJldmVhbC1tb2RhbCAuc2NyYXRjaGJvZHkzIC5zY3JhdGNoaW1hZ2UzIC5zY3JhdGNoaW1hZ2UzVGV4dDEgc3BhbnsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgY29sb3I6aW5oZXJpdDsgZm9udC1zaXplOjAuODc1cmVtIDsgdmVydGljYWwtYWxpZ246c3VwZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuc2NyYXRjaGltYWdlM1RleHQyeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjMyJTsgcmlnaHQ6MjglOyB3aWR0aDo5MXB4OyB9IC5zY3JhdGNoYm9keSwgLnNjcmF0Y2hib2R5MiB7IG1hcmdpbjo1cHg7IGhlaWdodDo1NTBweDsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5zY3JhdGNoYm9keTMgeyBtYXJnaW46NXB4OyBoZWlnaHQ6NTUwcHg7IG92ZXJmbG93OmhpZGRlbjsgfSAuc2NyYXRjaGJvZHkzLnNjcmF0Y2gtZmlyc3QgeyBtYXJnaW46NXB4OyBoZWlnaHQ6NDQ1cHg7IG92ZXJmbG93OmhpZGRlbjsgfSAuc2NyYXRjaGhlYWRlciB7IHBvc2l0aW9uOmFic29sdXRlOyBib3JkZXItYm90dG9tOjBweDsgdG9wOjUwcHg7IGxlZnQ6NDBweDsgd2lkdGg6MzcwcHg7IGhlaWdodDo1M3B4OyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I2ZmZjsgdGV4dC1zaGFkb3c6MXB4IDFweCByZ2JhKDAsMCwwLDAuNSk7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgcGFkZGluZy10b3A6MTJweDsgcGFkZGluZy1sZWZ0OjE1cHg7IHRleHQtYWxpZ246bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zY3JhdGNoL3JpYmJvbi5wbmcpIG5vLXJlcGVhdCAwIDA7IH0gLnNjcmF0Y2hib2R5IC5mb3JtdGFibGUsIC5zY3JhdGNoYm9keTIgLmZvcm10YWJsZSB7IHBhZGRpbmc6MTBweDsgcGFkZGluZy10b3A6NjBweDsgfSAuc2NyYXRjaGJvZHk6bm90KC5zY3JhdGNoLWZpcnN0KSAuZm9ybXRhYmxlLCAuc2NyYXRjaGJvZHkyOm5vdCguc2NyYXRjaC1maXJzdCkgLmZvcm10YWJsZSB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2NyYXRjaC9saW5lLnBuZykgcmVwZWF0LXggY2VudGVyIGJvdHRvbTsgfSAuc2NyYXRjaGJvZHkzIC5mb3JtdGFibGUgeyBwYWRkaW5nOjEwcHg7IHBhZGRpbmctdG9wOjBweDsgfSAuc2NyYXRjaGJvZHkgLmZvcm10YWJsZSB0YWJsZSB0ZCwgLnNjcmF0Y2hib2R5MiAuZm9ybXRhYmxlIHRhYmxlIHRkLCAuc2NyYXRjaGJvZHkzIC5mb3JtdGFibGUgdGFibGUgdGQgeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzMzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXNoYWRvdzojZmZmIDFweCAxcHg7IHRleHQtYWxpZ246cmlnaHQ7IHBhZGRpbmc6M3B4OyB9IC5zY3JhdGNoYm9keSAuZm9ybXRhYmxlIHRhYmxlIHRkIHNwYW4sIC5zY3JhdGNoYm9keTIgLmZvcm10YWJsZSB0YWJsZSB0ZCBzcGFuIHsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjVyZW0gOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMwMDY7IHRleHQtc2hhZG93OjFweCAxcHggI2ZmZjsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBtYXJnaW46MCAwIDAgMDsgfSAuc2NyYXRjaGJvZHkgLmlucHV0LCAuc2NyYXRjaGJvZHkyIC5pbnB1dCwgLnNjcmF0Y2hib2R5MyAuaW5wdXQgeyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICMzMzM7IGhlaWdodDoyMHB4OyB3aWR0aDoyNDVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgcGFkZGluZzoycHggfSAuc2NyYXRjaGJvZHkgLmJsYW5rYXJlYSwgLnNjcmF0Y2hib2R5MiAuYmxhbmthcmVhLCAuc2NyYXRjaGJvZHkyIC5ibGFua2FyZWEgeyB3aWR0aDoxMHB4OyBkaXNwbGF5OmJsb2NrOyB9IC5zY3JhdGNoYm9keSAuYnV0dG9uUHJpbnR7IGJhY2tncm91bmQ6IzE0MmQ3YyB1cmwoL2ltYWdlcy9zY3JhdGNoL3ByaW50LnBuZykgbm8tcmVwZWF0IDI1cHggMTBweDsgY29sb3I6I2ZmZjsgdGV4dC1zaGFkb3c6MXB4IDFweCByZ2JhKDAsMCwwLDAuNSk7IGJvcmRlcjpub25lOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmOyBwYWRkaW5nOjEwcHggMzBweCAxMHB4IDYwcHg7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtYWxpZ246bGVmdDsgfSAuc2NyYXRjaGJvZHkyIC5idXR0b25QcmludCB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiMxNDJkN2MgdXJsKC9pbWFnZXMvc2NyYXRjaC9wcmludC5wbmcpIG5vLXJlcGVhdCAyNXB4IDEwcHg7IGNvbG9yOiNmZmY7IHRleHQtc2hhZG93OjFweCAxcHggcmdiYSgwLDAsMCwwLjUpOyBib3JkZXI6bm9uZTsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2ZmZjsgcGFkZGluZzoxMHB4IDMwcHggMTBweCA2MHB4OyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbi10b3A6LTEwcHg7IG1hcmdpbi1sZWZ0OjMyNnB4OyB9IC5zY3JhdGNoYm9keSAud1NjcmF0Y2hQYWQsIC5zY3JhdGNoYm9keTIgLndTY3JhdGNoUGFkLCAuc2NyYXRjaGJvZHkzIC53U2NyYXRjaFBhZHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuc2NyYXRjaGJvZHkgLndTY3JhdGNoUGFkLCAuc2NyYXRjaGJvZHkyIC53U2NyYXRjaFBhZCwgLnNjcmF0Y2hib2R5MyAud1NjcmF0Y2hQYWR7IG1hcmdpbjoyMHB4IGF1dG8gMCBhdXRvOyB9IC5zY3JhdGNoYm9keTMgLndTY3JhdGNoUGFkeyBtYXJnaW46MTBweCBhdXRvIDAgYXV0bzsgfSAuc2NyYXRjaGJvZHkzIC5idXR0b25QcmludHsgcmlnaHQ6OTVweDsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDozNXB4OyBtYXJnaW4tdG9wOjE1cHg7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgY29sb3I6I2ZmZmZmZjsgfSAuc2NyYXRjaGJvZHkzIC5idXR0b25QcmludE92ZXJsYXl7IHJpZ2h0Ojk1cHg7IHBvc2l0aW9uOmFic29sdXRlOyBoZWlnaHQ6MzVweDsgbWFyZ2luLXRvcDoxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNCQkJCQkI7IGNvbG9yOndoaXRlOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6NDgxcHgpIGFuZCAobWF4LWRldmljZS13aWR0aDoxMDI0cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpIHsgLmJ1dHRvblByaW50IHsgbWFyZ2luLXRvcDotNXB4OyB9IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS13aWR0aDo0ODFweCkgYW5kIChtYXgtZGV2aWNlLXdpZHRoOjEwMjRweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpIHsgLmJ1dHRvblByaW50IHsgbWFyZ2luLXRvcDotNXB4OyB9IH0gLnNjcmF0Y2hib2R5IC50ZXh0YXJlYXsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zY3JhdGNoL2Fycm93LnBuZykgbm8tcmVwZWF0IHJpZ2h0IDIwcHg7IGNvbG9yOiMxNDJkN2M7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtc2hhZG93OiNmZmYgMXB4IDFweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2NyYXRjaC9hcnJvdy5wbmcpIG5vLXJlcGVhdCByaWdodCAyMHB4OyB3aWR0aDo1MDBweDsgaGVpZ2h0OjgwcHg7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6MjBweCAyMHB4IDAgMDsgfSAuc2NyYXRjaGJvZHkyIC50ZXh0YXJlYSB7IGJhY2tncm91bmQ6bm9uZTsgbWFyZ2luOjBweDsgaGVpZ2h0OjEwNXB4OyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7IG1hcmdpbi10b3A6MjBweDsgcGFkZGluZy10b3A6MHB4OyB3aWR0aDo0NTBweDsgbWFyZ2luLWxlZnQ6MjBweDsgcGFkZGluZzoyMHB4IDIwcHggMCAwOyBjb2xvcjojMTQyZDdjOyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXNoYWRvdzojZmZmIDFweCAxcHg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5zY3JhdGNoQ29udGFpbmVySW1nTW9iaWxleyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IH0gLnNjcmF0Y2hib2R5MyAudGV4dGFyZWEgeyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgd2lkdGg6NzUlOyBoZWlnaHQ6ODBweDsgbWFyZ2luOjAgYXV0bzsgcGFkZGluZzo5cHggMjBweCAwcHggNDBweDsgbGluZS1oZWlnaHQ6MjRweDsgZmxvYXQ6bGVmdDsgY29sb3I6I2ZmMDAwMDsgfSAuc2NyYXRjaGJvZHkzIC50ZXh0YXJlYSBwIHNtYWxsIHsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNjY2NjY2OyBsaW5lLWhlaWdodDoxNXB4OyB9IC5zY3JhdGNoQW5kU2F2ZU5vdGUgeyBtYXJnaW46MCA2MHB4OyB9IC5zY3JhdGNoYm9keSAudGV4dGFyZWEgcCBzbWFsbCwgLnNjcmF0Y2hib2R5MiAudGV4dGFyZWEgcCBzbWFsbCB7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzAwMDAwMDsgfSAjd1NjcmF0Y2hQYWQge21hcmdpbjoyMHB4IGF1dG8gMCBhdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5zY3JhdGNoYm9keSAuY29udGVudC1ib3gsIC5zY3JhdGNoYm9keTIgLmNvbnRlbnQtYm94LCAuc2NyYXRjaGJvZHkzIC5jb250ZW50LWJveHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjotMTBweCAwIDAgMDsgcGFkZGluZzowOyB9IC5zY3JhdGNoYm9keSAuTWlzc2luZ1ZhbGlkYXRpb25Nc2csIC5zY3JhdGNoYm9keTIgLk1pc3NpbmdWYWxpZGF0aW9uTXNnLCAuc2NyYXRjaGJvZHkzIC5NaXNzaW5nVmFsaWRhdGlvbk1zZ3sgbGVmdDozMDBweDsgdG9wOjI0MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzAxcHg7IH0gLnByaW50YXJlYSB7Zm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEuMTI1cmVtIDt9IC5ibG9ja2FnZSB7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zY3JhdGNoL3doaXRlMi5wbmcpIHJlcGVhdC14OyB3aWR0aDo4MjZweDsgaGVpZ2h0OjI3MHB4OyBkaXNwbGF5OmJsb2NrOyB6LWluZGV4OjM7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MzE1cHg7IGxlZnQ6NTBweDsgYm9yZGVyOm5vbmU7IG92ZXJmbG93OmhpZGRlbjt9IC5ibG9ja2FnZSBhIHtib3JkZXI6bm9uZTtjdXJzb3I6ZGVmYXVsdDt9IHAjdnRpcCB7IGRpc3BsYXk6bm9uZTsgcG9zaXRpb246YWJzb2x1dGU7IHBhZGRpbmc6MTBweDsgbGVmdDo1cHg7IGZvbnQtc2l6ZTowLjhlbTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgYm9yZGVyOjFweCBzb2xpZCAjYTZjOWUyOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyB6LWluZGV4Ojk5OTk7IHdpZHRoOjMwMHB4OyBjdXJzb3I6ZGVmYXVsdDt9IHAjdnRpcCAjdnRpcEFycm93IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTBweDsgbGVmdDo1cHggfSAucHJpbnRhYmxlIHsgZGlzcGxheTpub25lOyB9IC5zY3JhdGNoYm9keSAuc2NyYXRjaERpdlRleHQsIC5zY3JhdGNoYm9keTIgLnNjcmF0Y2hEaXZUZXh0IHsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6MTVweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjE1cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDoxNXB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDoxNXB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MTVweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoxNXB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjE1cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czoxNXB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoxNXB4OyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjE1cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjE1cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MTVweDsgfSAuc2NyYXRjaGJvZHkzIC5zY3JhdGNoRGl2VGV4dHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjYxMHB4OyBoZWlnaHQ6MTIwcHg7IGN1cnNvcjpkZWZhdWx0OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IH0gLnNjcmF0Y2hib2R5MyAuc2NyYXRjaERpdlRleHRPbGR7IHdpZHRoOjk3JTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MS44NzVyZW0gO2NvbG9yOiNmZmY7bWFyZ2luLWxlZnQ6MHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjBweDtjb2xvcjpibGFjazsgfSAuc2NyYXRjaGJvZHkyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvc3R5bGUyL2JhY2tncm91bmQucG5nKTsgYm9yZGVyOjA7IHdpZHRoOjgzMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IH0gLnNjcmF0Y2hib2R5MyB7IGJvcmRlcjowOyB3aWR0aDo4MzBweDsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9IC5zY3JhdGNoYm9keTJfdGl0bGV7IG1hcmdpbi10b3A6MzVweDsgZm9udC1zaXplOjIuNXJlbSA7IGNvbG9yOndoaXRlOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgbGV0dGVyLXNwYWNpbmc6MHB4OyBtYXJnaW46YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nLXRvcDoyMHB4OyBtYXJnaW4tYm90dG9tOi0yMHB4OyB9IC5zY3JhdGNoYm9keTIgLnNjcmF0Y2hidG57IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL3N0eWxlMi9zX3NfYnRuLnBuZyk7IGN1cnNvcjpwb2ludGVyOyBoZWlnaHQ6NDRweDsgd2lkdGg6NDk1cHg7IGJvcmRlci1yYWRpdXM6MjVweCFpbXBvcnRhbnQ7IHRleHQtc2hhZG93Om5vbmU7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbWFyZ2luOmF1dG87IG1hcmdpbi10b3A6NXB4OyBsaW5lLWhlaWdodDo0MnB4OyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IH0gLnNjcmF0Y2hUaXRsZXsgcG9zaXRpb246YWJzb2x1dGU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4xMjVyZW0gOyBsaW5lLWhlaWdodDpub3JtYWw7IGNvbG9yOiMwMDAwMDA7IHRleHQtc2hhZG93OjFweCAxcHggI2ZmZjsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBtYXJnaW46MCAwIDAgMDsgbGVmdDozNDBweDsgdG9wOjEyNXB4OyB9IEBtZWRpYSBwcmludCB7IC5ub24tcHJpbnRhYmxlIHsgZGlzcGxheTpub25lIWltcG9ydGFudDsgfSAucHJpbnRhYmxlIHsgZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IH0gI3NjcmF0Y2hBbmRTYXZlQ2FySW1hZ2V7IGZsb2F0OmxlZnQ7IHRvcDozNXB4IWltcG9ydGFudDsgfSAuc2NyYXRjaERpdlRleHR7IHdpZHRoOjQ1MHB4IWltcG9ydGFudDsgfSAjc2NyYXRjaEFuZFNhdmVDYXJJbWFnZSAucHJpeHsgdG9wOjBweCFpbXBvcnRhbnQ7IH0gLnNjcmF0Y2hib2R5IHsgaGVpZ2h0OjM1NXB4OyB3aWR0aDoxMDAlOyBib3JkZXI6bm9uZTsgfSB9IGgzLnNjcmF0Y2gtZmlyc3RfX3RpdGxlIHsgZm9udC1zaXplOjEuNXJlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZGlzcGxheTpub25lOyB9IGRpdi5mb3JtdGFibGUgc3Bhbi5oMy1hbHQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IC5zY3JhdGNoLWZpcnN0X190aXRsZSB7IGZvbnQtc2l6ZToxLjVyZW07IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGRpc3BsYXk6bm9uZTsgfSBwLnNjcmF0Y2gtZmlyc3RfX2Rlc2MgeyBmb250LXNpemU6MC45NXJlbTsgY29sb3I6IzQxNDE0MTsgdGV4dC1hbGlnbjpjZW50ZXI7IGRpc3BsYXk6bm9uZTsgfSAuc2NyYXRjaC1maXJzdCAuc2NyYXRjaC1maXJzdF9fdGl0bGUsIC5zY3JhdGNoLWZpcnN0IC5zY3JhdGNoLWZpcnN0X19kZXNjIHsgZGlzcGxheTpibG9jazsgfSAuc2NyYXRjaGJvZHkzIC5zY3JhdGNoLWZpcnN0X190aXRsZSB7IGNvbG9yOiMxNDJkN2M7IH0gLnNjcmF0Y2hib2R5IC5zY3JhdGNoLWZpcnN0X190aXRsZSwgLnNjcmF0Y2hib2R5MyAuc2NyYXRjaC1maXJzdF9fdGl0bGUsIC5zY3JhdGNoYm9keTIgLnNjcmF0Y2gtZmlyc3RfX3RpdGxlIHsgY29sb3I6I2ZmMDAwMDsgfSAuc2NyYXRjaC1maXJzdC5zY3JhdGNoYm9keTIgLnNjcmF0Y2hidG4geyBmb250LXNpemU6MS4yNXJlbTsgfSAuc2NyYXRjaC1maXJzdCAuZm9ybXRhYmxlLCAuc2NyYXRjaC1maXJzdCAuY29udGVudC1ib3ggeyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDJzIGVhc2Utb3V0IDJzOyB0cmFuc2l0aW9uOmFsbCAycyBlYXNlLW91dCAyczsgfSAuc2NyYXRjaC1maXJzdDpub3QoLnNjcmF0Y2hzYXZlX19tb2JpbGUpOm5vdCguc2NyYXRjaGVkKSAuZm9ybXRhYmxlLCAuc2NyYXRjaC1maXJzdDpub3QoLnNjcmF0Y2hzYXZlX19tb2JpbGUpLnNjcmF0Y2hlZCAuY29udGVudC1ib3gsIC5zY3JhdGNoc2F2ZV9fbW9iaWxlLnNjcmF0Y2gtZmlyc3Q6bm90KC5zY3JhdGNoZWQpIC5zbGlkZXItb3ZlcmxheSB7IGRpc3BsYXk6bm9uZTsgfSAuc2NyYXRjaC1maXJzdDpub3QoLnNjcmF0Y2hzYXZlX19tb2JpbGUpLnNjcmF0Y2hlZCAuZm9ybXRhYmxlLCAuc2NyYXRjaC1maXJzdDpub3QoLnNjcmF0Y2hzYXZlX19tb2JpbGUpOm5vdCguc2NyYXRjaGVkKSAuY29udGVudC1ib3ggeyBkaXNwbGF5OmJsb2NrOyB9IC5zY3JhdGNoLWZpcnN0LnNjcmF0Y2hib2R5Om5vdCguc2NyYXRjaGVkKSAuZm9vdGVyLCAuc2NyYXRjaC1maXJzdC5zY3JhdGNoZWQuc2NyYXRjaGJvZHkgLmZvcm10YWJsZSwgLnNjcmF0Y2gtZmlyc3Quc2NyYXRjaGVkLnNjcmF0Y2hib2R5MiAuZm9ybXRhYmxlLCAuc2NyYXRjaC1maXJzdC5zY3JhdGNoZWQuc2NyYXRjaGJvZHkzIC5mb3JtdGFibGUgeyBtYXJnaW4tdG9wOjUwcHg7IH0gLnNjcmF0Y2gtZmlyc3Quc2NyYXRjaGJvZHk6bm90KC5zY3JhdGNoZWQpIC5jb250ZW50LWJveCwgLnNjcmF0Y2gtZmlyc3Quc2NyYXRjaGJvZHkyOm5vdCguc2NyYXRjaGVkKSAuY29udGVudC1ib3gsIC5zY3JhdGNoLWZpcnN0LnNjcmF0Y2hib2R5MiAuZm9vdGVyeyBtYXJnaW4tdG9wOjExNXB4OyB9IC5zY3JhdGNoLWZpcnN0LnNjcmF0Y2hib2R5MyAuZm9vdGVyeyBtYXJnaW4tdG9wOjUwcHg7IH0gLnNjcmF0Y2gtZmlyc3Quc2NyYXRjaGJvZHkzOm5vdCguc2NyYXRjaGVkKSAuY29udGVudC1ib3ggeyBtYXJnaW4tdG9wOjQwcHg7IH0gLnNjcmF0Y2hib2R5LnNjcmF0Y2gtZmlyc3Quc2NyYXRjaGVkIC5mb290ZXIgLnRleHRhcmVhLCAuc2NyYXRjaGJvZHkuc2NyYXRjaC1maXJzdC5zY3JhdGNoZWQgLmZvb3RlciAuYnV0dG9uUHJpbnQsIC5zY3JhdGNoYm9keTIuc2NyYXRjaC1maXJzdC5zY3JhdGNoZWQgLmZvb3RlciwgLnNjcmF0Y2hib2R5My5zY3JhdGNoLWZpcnN0LnNjcmF0Y2hlZCAuZm9vdGVyIHsgZGlzcGxheTpub25lOyB9IC5mb3JtdGFibGUgLmVtYWlsU2VudE1zZyB7IGZsb2F0OnVuc2V0OyBtYXJnaW4tdG9wOjAuNXJlbTsgfSAuaW50ZXJ2YWwtcGFydGljaXBhdGlvbiB7IGZvbnQtc2l6ZToxLjVyZW07IGNvbG9yOnJlZDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MTNyZW07IH0gLnNjcmF0Y2gtZmlyc3QgLmludGVydmFsLXBhcnRpY2lwYXRpb24geyBtYXJnaW4tdG9wOjhyZW07IH0gLndTY3JhdGNoUGFkLnNjcmF0Y2hzYXZlX19tb2JpbGUgeyBoZWlnaHQ6NDEwcHg7IH0gZm9ybS5zY3JhdGNoc2F2ZV9fbW9iaWxlIHsgdG9wOi00MTBweDsgaGVpZ2h0OjQxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC5zY3JhdGNoc2F2ZV9fbW9iaWxlIC5zY3JhdGNoc2F2ZV9fdGl0bGUgeyBmb250LXNpemU6MC44MTNyZW0gOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMDAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6bm9ybWFsOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gLnNjcmF0Y2hzYXZlX19tb2JpbGUgLnNjcmF0Y2hzYXZlX19kZXNjIHsgZGlzcGxheTpub25lOyB9IC5zY3JhdGNoc2F2ZV9fbW9iaWxlLnNjcmF0Y2gtZmlyc3QgLnNjcmF0Y2hzYXZlX19kZXNjIHsgZGlzcGxheTpibG9jazsgbWFyZ2luOjhweCA4cHggMCA4cHg7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44cmVtOyB9IC5zY3JhdGNoc2F2ZV9fbW9iaWxlIC5mb3JtdGFibGVfX2NvbnRhaW5lciB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuc2NyYXRjaHNhdmVfX21vYmlsZS5zY3JhdGNoLWZpcnN0IC5mb3JtdGFibGVfX2NvbnRhaW5lciB7IGhlaWdodDozMzVweDsgfSAuc2NyYXRjaHNhdmVfX21vYmlsZSAuZm9ybXRhYmxlIHsgd2lkdGg6MTAwJTsgfSAuc2NyYXRjaHNhdmVfX21vYmlsZSAuZm9ybXRhYmxlIHRhYmxlIHsgZm9udC1zaXplOjAuODEzcmVtIDsgfSAuc2NyYXRjaHNhdmVfX21vYmlsZSAuZm9ybXRhYmxlIGlucHV0Om5vdCguc2NyYXRjaGJ0bikgeyB3aWR0aDoyMDBweDsgbWFyZ2luOjAgNXB4IDVweCA1cHg7IGJvcmRlcjoxcHggc29saWQgbGlnaHRncmV5OyB9IC5zY3JhdGNoc2F2ZV9fbW9iaWxlIC5mb3JtdGFibGUgbGFiZWwgeyBtYXJnaW46MCA1cHggNXB4IDVweDsgfSAuc2NyYXRjaHNhdmVfX21vYmlsZSAuc2xpZGVyU2NyYXRjaERvbmUgeyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjI1cmVtIDsgY29sb3I6I0ZGMDAwMDsgfSAuc2NyYXRjaHNhdmVfX21vYmlsZSAuTWlzc2luZ1ZhbGlkYXRpb25Nc2cgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDo1cHg7IHRvcDoyMTBweDsgd2lkdGg6MTYwcHg7IH0gLnNjcmF0Y2hzYXZlX19tb2JpbGUuc2NyYXRjaC1maXJzdCAuc2NyYXRjaGJ0bi5idG4tZGVmYXVsdCB7IHBhZGRpbmc6MTFweCAxMHB4IDlweCAxMHB4OyBmb250LXNpemU6MC43NXJlbTsgd2hpdGUtc3BhY2U6cHJlLWxpbmU7IH0gLnNjcmF0Y2hzYXZlX19tb2JpbGUgZGl2LmVycm9yTXNnIHsgYmFja2dyb3VuZC1jb2xvcjojRkZCQUJBOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9lcnJvci5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkOyBjb2xvcjojRDgwMDBDOyBkaXNwbGF5Om5vbmU7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgei1pbmRleDo5OTk5OyB9IC5zY3JhdGNoQW5kU2F2ZU1vYmlsZVRleHRXcmFwcGVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTk5cHg7IGhlaWdodDoxOTlweDsgYm9yZGVyLXJhZGl1czo1MCU7IHRvcDoxNTBweDsgbGVmdDoxOXB4OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgdGV4dC1hbGlnbjpjZW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgfSAuc2NyYXRjaEFuZFNhdmVNb2JpbGVUZXh0eyBwYWRkaW5nOjEwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyBjb2xvcjojMDAwIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6Ym9sZCFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvY3JlZGl0U2NvcmVQb3B1cC5jc3MgKiovCiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyeyBiYWNrZ3JvdW5kOndoaXRlOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW57IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjMxM3JlbSA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUdyZWVuQ29sb3J7IGNvbG9yOiM0ZDhmMTQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUJvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNyZWRpdFNjb3JlX2J0bnsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDojNGQ4ZjE0OyB9IC5jcmVkaXRTY29yZUltYWdleyBoZWlnaHQ6MjMwcHg7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LnNjb3JlQ3JlZGl0VGl0bGV7IGZvbnQtc2l6ZToxLjVyZW0gOyBtYXJnaW4tdG9wOjU1cHg7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LnNjb3JlQ3JlZGl0SW1hZ2V7IHRleHQtYWxpZ246cmlnaHQ7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZVRpdGxlRnJlZXsgZm9udC1zaXplOjIuODEzcmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZVRpdGxlU2NvcmV7IGZvbnQtc2l6ZToxLjgxM3JlbSA7IHRleHQtc2hhZG93OjEuNHB4IDA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgaW5wdXR7IGhlaWdodDozMnB4OyBmb250LXNpemU6MC45MzhyZW0gOyB3aWR0aDoxNjJweDsgcGFkZGluZzowIDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjZWVlZWVlOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUFkZHJlc3N7IHdpZHRoOjM5M3B4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZV9idG57IHdpZHRoOjE0NXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVFeHRyYVRleHR7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZUNvbnNlbnRNZXNzYWdleyBjb2xvcjojYjNiM2IzOyBmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjJweDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVJbWFnZXsgYmFja2dyb3VuZC1jb2xvcjojNGQ4ZjE0OyB9IC5wYWMtY29udGFpbmVyIHsgei1pbmRleDoxMDAwMDIxOyB9Ci8qKiAvY3NzL25lYkNhbC9uZWJDYWwuY3NzICoqLwoubmViQ2FsICogeyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3IgOndoaXRlOyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0LCAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyBjdXJzb3I6cG9pbnRlcjt9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0IHsgZmxvYXQ6bGVmdDsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdDpiZWZvcmUgeyBjb250ZW50Oic8JzsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzUyM2EyOTsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyBmbG9hdDpyaWdodDsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQ6YmVmb3JlIHsgY29udGVudDonPic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiM1MjNhMjk7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OnZpc2libGU7IHdpZHRoOjE0NnB4OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlIHsgY3Vyc29yOnBvaW50ZXI7IH0gLm5lYkNhbCAuY2FsLWJvZHkgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdiB7IGZsb2F0OmxlZnQ7IH0gLm5lYkNhbCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGguY2FsLXBpY2thYmxlIC5jYWwtcm93IGRpdiwgLm5lYkNhbCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2IHsgY3Vyc29yOnBvaW50ZXI7fSAubmViQ2FsIHsgY3Vyc29yOmRlZmF1bHQ7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDAwMjA7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoyOTBweDsgaGVpZ2h0OjIxNXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojNTIzYTI5OyB9IC5uZWJDYWwuaW5saW5lIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtd3JhcHBlciB7IHBhZGRpbmc6MCA0cHg7IGJvcmRlcjpzb2xpZCAxcHggI2RkZGVkOTsgLW1vei1ib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4Oy13ZWJraXQtYm94LXNoYWRvdzowcHggMHB4IDRweCAycHggI2Q4ZDhkODtib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIHsgaGVpZ2h0OjI1cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdCwgLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyB3aWR0aDoxMnB4OyBoZWlnaHQ6MTNweDsgbWFyZ2luOjZweCA3cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdCB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdDpob3ZlciB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWFycm93LXJpZ2h0OmhvdmVyIHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbCB7IGxpbmUtaGVpZ2h0OjI1cHg7IGNvbG9yOiM1MjNhMjk7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlIHsgY29sb3I6IzA4YTUzYzsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IHsgaGVpZ2h0OjE4MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciB7IHdpZHRoOjI5MHB4OyBoZWlnaHQ6MTgwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IHsgd2lkdGg6MjkwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdy5jYWwtb2RkIGRpdiB7IG1hcmdpbjo1cHg7IGJhY2tncm91bmQtY29sb3I6I2RlZGVkZTtib3JkZXI6MXB4IHNvbGlkICNkOWQ5ZDk7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93LmNhbC1ldmVuIGRpdiB7IG1hcmdpbjo1cHg7IGJhY2tncm91bmQtY29sb3I6I2YwZjBmMDtib3JkZXI6MXB4IHNvbGlkICNlY2VjZWM7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC10b2RheSB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi1yaWdodDo1cHg7IGhlaWdodDoyMHB4O2ZvbnQtc2l6ZToxcmVtIDtmb250LXdlaWdodDo2MDA7IGNvbG9yOiNmZmYgIWltcG9ydGFudDt0ZXh0LXNoYWRvdzoxcHggMXB4IDBweCAjMzlhNjYzOyBiYWNrZ3JvdW5kLWNvbG9yOiM1NGJiMDA7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDstbW96LWJvcmRlci1yYWRpdXM6NXB4O2JvcmRlci1yYWRpdXM6NXB4O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtbm9uLXNlbGVjdGFibGUsIC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLW5vbi1zZWxlY3RhYmxlOmhvdmVyIHsgY29sb3I6I2JkYmRiZCAhaW1wb3J0YW50OyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuYSBkaXYgeyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyBjb2xvcjojMzc5YjU3ICFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgeyBoZWlnaHQ6MjZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93IGRpdiB7IG1hcmdpbi10b3A6M3B4OyB3aWR0aDo0MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1zZWxlY3RlZCB7IG1hcmdpbi10b3A6M3B4OyB3aWR0aDozMHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1maXJzdCB7IHBhZGRpbmctbGVmdDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1sYXN0IHsgcGFkZGluZy1yaWdodDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2LmNhbC1vdXRzaWRlIHsgY29sb3I6I2RlZGVkZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93LmNhbC1ldmVuIGRpdi5jYWwtb3V0c2lkZSB7IGNvbG9yOiNjZWNlY2U7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdy5hIGRpdiB7IGNvbG9yOiM5YzljOWM7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyB7IGhlaWdodDo0MnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2IHsgd2lkdGg6ODBweDtsaW5lLWhlaWdodDoyN3B4OyBoZWlnaHQ6MjdweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdi5jYWwtZmlyc3QgeyBtYXJnaW4tbGVmdDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2LmNhbC1sYXN0IHsgbWFyZ2luLXJpZ2h0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYuY2FsLXNlbGVjdGVkIHsgYmFja2dyb3VuZC1jb2xvcjojNTRiYjAwO30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aC5jYWwtcGlja2FibGUgLmNhbC1yb3cgZGl2OmhvdmVyLCAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdjpob3ZlciB7IGNvbG9yOiNiMmNmZTE7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtZm9vdGVyIHsgaGVpZ2h0OjRweDsgfQovKiogL2Nzcy9maW5hbmNlX211bHRpc3RlcC5jc3MgKiovCiNmaW5hbmNlX211bHRpc3RlcF9mb3JteyB0ZXh0LWFsaWduOmNlbnRlcjsgaGVpZ2h0OjEwMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yeyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaDJ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IG1hcmdpbi1ib3R0b206MjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBoM3sgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyBmb250LXNpemU6MS4xMjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyB3aWR0aDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyBib3R0b206MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b257IHBhZGRpbmc6MTdweCA2NXB4IDE1cHggNjVweDsgZm9udC1zaXplOjEuMjVyZW0gOyBmb250LXdlaWdodDo0MDA7IHdpZHRoOjI4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBjb2xvcjojQzBDMEMwOyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlcjoxcHggc29saWQgI0MwQzBDMDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24uaXNWYWxpZHsgYmFja2dyb3VuZC1jb2xvcjojMzJhN2RhOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXXsgb3BhY2l0eTowOyB3aWR0aDowOyBoZWlnaHQ6MDsgcG9zaXRpb246YWJzb2x1dGU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gbGFiZWwucmFkaW9fbGFiZWwgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MjBweCAxMHB4OyBjdXJzb3I6cG9pbnRlcjsgb3BhY2l0eToxOyB0cmFuc2l0aW9uOmFsbCAxcyBlYXNlLWluLW91dDsgbWFyZ2luLWJvdHRvbToxNXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZCB+IGxhYmVsLnJhZGlvX2xhYmVsIHsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBib3JkZXItYm90dG9tLXdpZHRoOjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBsYWJlbC5yYWRpb19sYWJlbDIgeyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgY3Vyc29yOnBvaW50ZXI7IG9wYWNpdHk6MTsgdHJhbnNpdGlvbjphbGwgMXMgZWFzZS1pbi1vdXQ7IG1hcmdpbi1ib3R0b206NXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNmZmZmZmY7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkIH4gbGFiZWwucmFkaW9fbGFiZWwyIHsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBib3JkZXItYm90dG9tLXdpZHRoOjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2eyB3aWR0aDo0NSU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjJ7IHdpZHRoOjMyJSFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDo1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjI6bnRoLW9mLXR5cGUob2RkKXsgZmxvYXQ6bGVmdCFpbXBvcnRhbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjI6bnRoLW9mLXR5cGUoZXZlbil7IGZsb2F0OmxlZnQhaW1wb3J0YW50OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXY6bnRoLW9mLXR5cGUob2RkKXsgZmxvYXQ6bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2Om50aC1vZi10eXBlKGV2ZW4peyBmbG9hdDpyaWdodDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJ0ZXh0Il17IHdpZHRoOjQ1MHB4OyBoZWlnaHQ6NDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXTpub3QoLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9Im51bWJlciJdKXsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkOyB3aWR0aDoxNDBweDsgYm9yZGVyLXJpZ2h0Om5vbmU7IG1hcmdpbjowIDAgMTBweDsgbGluZS1oZWlnaHQ6MzBweDsgaGVpZ2h0Ojc1cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W25hbWU9Im1vbnRobHlJbmNvbWUiXTpiZWZvcmV7IGNvbnRlbnQ6IiQiOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5udW1iZXItdHlwZS1sYWJlbHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkOyB3aWR0aDoyMzBweDsgY29sb3I6IzI1MjUyNTsgaGVpZ2h0Ojc1cHg7IGxpbmUtaGVpZ2h0Ojc1cHg7IGZvbnQtc2l6ZToxLjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5udW1iZXItdHlwZS1kaXZ7IGZsb2F0OmxlZnQ7IGxlZnQ6MTMlOyBtYXJnaW4tdG9wOjIwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyeyBtYXJnaW4tdG9wOjEwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfZGl2eyB3aWR0aDoxMDAlOyBtYXJnaW46MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lciBzZWxlY3R7IGNvbG9yOiMzYzM4MzY7IGJvcmRlcjoycHggc29saWQgIzAwMDAwMDsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTBweCAxMHB4OyBmb250LXNpemU6MXJlbSA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIDUwJTsgd2lkdGg6MTUwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyX3NlbGVjdHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjE1JTsgbWFyZ2luOmF1dG87IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfc2VsZWN0OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzZWxlY3Quc3RlcDI0c2VsZWN0eyBtYXJnaW4tdG9wOjEwcHg7IHdpZHRoOjUwJTsgfSAucGFjLWNvbnRhaW5lciB7IHotaW5kZXg6MTAwMDAyMTsgfSBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24geyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgbWFyZ2luOjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3Mgc2VsZWN0IHsgbWF4LXdpZHRoOjMzNXB4OyBtYXJnaW46MCBhdXRvOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIGxhYmVsIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBkaXNwbGF5OmJsb2NrOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzICNtdXRsaUFkZHJlc3NTdWJtaXQgeyBkaXNwbGF5Om5vbmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dHN7IGRpc3BsYXk6aW5saW5lLWZsZXg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXZ7IG1hcmdpbjoyMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGxhYmVseyBmb250LXNpemU6MS4xMjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGlucHV0W3R5cGU9Im51bWJlciJdeyB3aWR0aDo4MHB4OyBoZWlnaHQ6NTBweDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgbWFyZ2luLXRvcDoxMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGlucHV0W3R5cGU9Im51bWJlciJdLmJpcnRoeWVhcnsgd2lkdGg6MTAwcHg7IH0gLnJldmVhbC1tb2RhbC5maW5hbmNlX2JhY2tncm91bmRfaW1hZ2V7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3BvcHVwcy9maW5hbmNlcG9wdXAtYmctZGVza3RvcC5qcGcnKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXZ7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MTIwcHg7IG1hcmdpbi1ib3R0b206MjBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXYgLmZpbmFuY2VDYWxjeyBmb250LXNpemU6MTAwcHg7IGxlZnQ6NDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXYgLmZpbmFuY2VDYXJ7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxMDBweDsgbGVmdDozOSU7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHRMYWJlbHsgd2lkdGg6MjAlOyBhbGlnbi1zZWxmOmNlbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHR7IHdpZHRoOjM3JSFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IG1hcmdpbi1ib3R0b206MTBweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl0uZW1wbG95bWVudFN0YXR1c1RpbWV7IHdpZHRoOjUwcHg7IGhlaWdodDo1MHB4OyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBhbGlnbi1zZWxmOmNlbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudEFkZGVkSW5mb3sgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IHJlc2l6ZTpub25lOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgfSAuZmFkZS1lbnRlciwgLmZhZGUtbGVhdmUgeyBvcGFjaXR5OjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRBZGRlZEluZm9EaXZ7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6OTclIH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRUZXh0TGFiZWxEaXZ7IGRpc3BsYXk6ZmxleDsgd2lkdGg6OTclIH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvcnsgbWFyZ2luOjAgMjAlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybXsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGxhYmVseyBtYXJnaW4tYm90dG9tOjVweDsgcGFkZGluZzowOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3Igc3BhbnsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6NTAlOyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBpbnB1dHsgdGV4dC1hbGlnbjpsZWZ0OyBoZWlnaHQ6MjVweDsgZm9udC1zaXplOjFlbTsgY29sb3I6YmxhY2s7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBzZWxlY3R7IGhlaWdodDoyOHB4OyBjb2xvcjpibGFjazsgZm9udC1zaXplOjFlbTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5lc3RpbWF0ZWRUZXh0eyBtYXJnaW46MDsgZm9udC13ZWlnaHQ6NzAwOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm91dHB1dHByaWNlLXR4dHsgd2lkdGg6MjglOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnRheGVUZXh0eyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6LTU1cHg7IHdpZHRoOmZpdC1jb250ZW50OyBtYXJnaW46MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnB1dCB7IGJvcmRlcjoxcHggc29saWQgIzk5OTsgYmFja2dyb3VuZDojZWVlOyBwYWRkaW5nOjAuMjVyZW07IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgd2lkdGg6bWluKDUwJSw2cmVtKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gZGl2LmRvbGxhclNwYW57IGRpc3BsYXk6Y29udGVudHM7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBkaXYuZG9sbGFyU3BhbiAuaW5wdXR7IHBhZGRpbmctbGVmdDoxMnB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBkaXYuZG9sbGFyU3Bhbjo6YmVmb3JleyBjb250ZW50OiIkIjsgZm9udC1zaXplOjFlbTsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0Ojg1cHg7IHRvcDo0OSU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9jb25zZW50X3RleHRfZGl2eyBvdmVyZmxvdy15OnNjcm9sbDsgaGVpZ2h0OjI4NXB4OyB3aWR0aDoxMDAlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5tdWx0aXN0ZXBQYXltZW50VmVoaWNsZXsgZm9udC1zaXplOmluaGVyaXQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIC5sb2FuYW1vdW50LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gLmludGVyZXN0cmF0ZXsgYm9yZGVyOjA7IGJhY2tncm91bmQtY29sb3I6dW5zZXQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGlucHV0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0eyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5tdWx0aXN0ZXBJbml0aWFsVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IG1hcmdpbi10b3A6MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzcGFuLmgyLWFsdHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi1ib3R0b206MjVweDsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IG1hcmdpbi1sZWZ0OjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc3Bhbi5oMy1hbHR7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MjVweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmhpZGRlbklucHV0eyBkaXNwbGF5Om5vbmU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVja0RpdnsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi10b3A6MTBweDsgcmlnaHQ6MTAwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5Jbml0aWFseyBmb250LXNpemU6MC42ODhyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTIwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjRweCAycHggNXB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFseyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTIwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjVweCAycHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBmb250LXNpemU6MS4wNjNyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkluaXRpYWx7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDo5NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgcGFkZGluZzo1cHggMnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjk2cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjVweCAycHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBmb250LXNpemU6MS4wNjNyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5mb3JtYXQtcHJpY2V7IG1hcmdpbi1ib3R0b206dW5zZXQ7IG1hcmdpbi1sZWZ0OjAuN3JlbTsgfSA6aXMoLkVOR0xJU0gsW2RhdGEtbGFuZz0iZW4iXSkgbGFiZWwgLmZvcm1hdC1wcmljZXsgbWFyZ2luLXJpZ2h0OjAuM3JlbTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAudndDb25zZW50VGV4dHsgaGVpZ2h0OjE2MHB4OyBvdmVyZmxvdy15OnNjcm9sbDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwYWRkaW5nOjEwcHggMTBweDsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgaDF7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OyBtYXJnaW46MCAwIDE2cHggMCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGgyeyBmb250LXNpemU6MXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDsgbWFyZ2luOjI0cHggMCAxMHB4IDAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBweyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyBtYXJnaW46MCAwIDEycHggMCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCB1bHsgbWFyZ2luOjhweCAwIDE2cHggMjRweCAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBsaXsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgbWFyZ2luOjAgMCAxMnB4IDAgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgc3Ryb25neyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lICFpbXBvcnRhbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnZ3Q29uc2VudERpdnN7IG1hcmdpbi10b3A6MTBweDsgZm9udC1zaXplOjAuNzVyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IH0KLyoqIC9jc3MvcGF5bWVudENhbGN1bGF0b3IuY3NzICoqLwo6aXMoI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLCNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvcikuY2FsYy1tb2JpbGUgeyAtLXdyYXAtcGF5bWVudHM6d3JhcDsgLS1tb2JpbGUtZGlzcGxheTpub25lOyAtLW1vYi1mdWxsLXdpZHRoOjEwMCU7IC0tcGF5bWVudC1taW4td2lkdGg6Ni4zcmVtOyAtLWhlYWRlci1mb250LXNpemU6dmFyKC0tZnMyKTsgLS1oZWFkZXItaWNvbi1zaXplOnZhcigtLWZzNSk7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyeyBtaW4taGVpZ2h0OjQ1MHB4OyBjb2xvcjpibGFjazsgfSAjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcnsgYm9yZGVyOjRweCBzb2xpZCAjMzJhN2RhOyB9ICNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyOmhhcyguY2FsYy1tb2JpbGUpeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLmNhbGMtbW9iaWxlIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyeyBvdmVyZmxvdy14OnZpc2libGU7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6MzcwcHg7IGZsZXgtd3JhcDp3cmFwOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyBvdmVyZmxvdy14OnNjcm9sbDsgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciwgLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyB3aWR0aDoxMDAlOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0eyB3aWR0aDo2NCU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0LCAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcy5ib3hlczR7IHdpZHRoOjgwJTsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIgc3BhbiwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHNwYW57IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MCFpbXBvcnRhbnQ7IGNvbG9yOmluaGVyaXQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyBtYXJnaW4tYm90dG9tOnZhcigtLXMpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWFyZ2luLWJvdHRvbTowOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyLCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzLmJveGVzNCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgd2lkdGg6MjQlOyB9IC5wYXltZW50Q2FsY3VsYXRvckxpbmV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGdyZXk7IG1hcmdpbjoxMHB4IDA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxeyBmb250LXNpemU6MC42ODhyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxIHNwYW57IGZvbnQtc2l6ZToxLjc1cmVtIDsgY29sb3I6I2ZmMDAwMDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMiBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lM3sgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUzIHNwYW57IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTR7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6Z3JleTsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZURpdnsgbWF4LXdpZHRoOjMzJTsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IHRvcDotNTAlOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXJ7IHdpZHRoOm1heCh2YXIoLS1tb2ItZnVsbC13aWR0aCwgNjYlKSwgMjByZW0pOyB9IC5jYWxjLXBheW1lbnRzeyBtYXgtd2lkdGg6dmFyKC0tbW9iLWZ1bGwtd2lkdGgsIDY2JSk7IH0gLmNhbGMtcGF5bWVudHMgOmlzKC5wcmljZS1mciwgLnByaWNlLWVuKXsgdGV4dC1hbGlnbjpyZXZlcnQ7IG1pbi13aWR0aDp1bnNldDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUNvbnRhaW5lcnsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY2NjYzsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVDb250YWluZXJ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZXsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjAgMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGl7IHBhZGRpbmc6MTBweDsgZmxvYXQ6bGVmdDsgbWluLXdpZHRoOjVyZW07IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItYm90dG9tOjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGk6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2Q5ZDlkOTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaS5hY3RpdmVQYXltZW50VHlwZXsgYmFja2dyb3VuZC1jb2xvcjojOTg5ODk4OyBjb2xvcjp3aGl0ZTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lcnsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyID4gKiB7IHBhZGRpbmctYm90dG9tOjAuNXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciBsYWJlbHsgY29sb3I6Z3JleTsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luLWxlZnQ6M3B4OyBtYXJnaW4tYm90dG9tOjA7IH0gLnBheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6MTByZW07IG1heC13aWR0aDoyMHJlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsIC5kMmNmb3JtIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6N3JlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2V7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6MTEwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50eyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6NXJlbTsgcGFkZGluZy1sZWZ0OjIwcHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6NjAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6NDAlOyAtbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjowOyB9IC5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lcnsgbWluLXdpZHRoOjE4cmVtOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojODY4Njg2OyBwYWRkaW5nOjA7IG1hcmdpbjowOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIuYm94ZXM0eyB3aWR0aDozMCU7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgcCwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgc3BhbnsgY29sb3I6aW5oZXJpdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2V7IHdpZHRoOjUwJTsgbWFyZ2luLXRvcDozMHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZveyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaWNvbnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgbWFyZ2luOjA7IHBhZGRpbmc6MC40cmVtOyAtLXR4dC1jb2xvcjojZmZmZmZmOyAtLWZzOnZhcigtLWhlYWRlci1pY29uLXNpemUsIHZhcigtLWZzNykpOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDIgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoMiBzcGFueyBmb250LXNpemU6dmFyKC0taGVhZGVyLWZvbnQtc2l6ZSwgdmFyKC0tZnMzKSk7IG1hcmdpbjowOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzowOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgzeyBmb250LXNpemU6MS4xODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIHNwYW4uaDItYWx0eyBtYXJnaW46MDsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDp2YXIoLS1zKTsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgbGluZS1oZWlnaHQ6MS4yZW07IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMi1hbHQgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDItYWx0IHNwYW57IGZvbnQtc2l6ZTp2YXIoLS1oZWFkZXItZm9udC1zaXplLCB2YXIoLS1mczMpKTsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0Om5vcm1hbDsgZm9udC13ZWlnaHQ6NzAwOyBwYWRkaW5nOjA7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgzLWFsdHsgZm9udC1zaXplOjEuMTg4cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5wYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lci5ib3hlczR7IHdpZHRoOjY0JTsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYXsgd2lkdGg6bWluKDY0JSwxOHJlbSk7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdHsgfSAuZmEuZmEtY2FsY3VsYXRvcnsgY29sb3I6IzAwMDAwMDsgfSAuLWJnLWJsYWNrIC5mYS5mYS1jYWxjdWxhdG9yeyBjb2xvcjojRkZGRkZGOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBzZWxlY3Q6Oi1tcy1leHBhbmQgeyBkaXNwbGF5Om5vbmU7IH0gLmNhbGMtcGF5bWVudC1jYXNoIHsgd2lkdGg6bWluKDE3cmVtLDkwJSk7IHBhZGRpbmc6MCAxLjVyZW07IH0gLmNhbGMtcGF5bWVudC1jYXNoIHNwYW57IG1hcmdpbi1ib3R0b206MDsgZm9udC1zaXplOnJldmVydDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlRmluYWwgeyBwYWRkaW5nLXRvcDp2YXIoLS1zKTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JiYjsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlUm93IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBsaW5lLWhlaWdodDpub3JtYWw7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZU5hbWV7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6dmFyKC0tZnMwKTsgfSAjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkJ1dHRvbnsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTA1cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZXsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjEwMHB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24geyBib3JkZXI6MS41cHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo2cHg7IHBhZGRpbmc6OHB4OyB3aWR0aDoxOTBweDsgYmFja2dyb3VuZDp3aGl0ZTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsZXgtc2hyaW5rOjA7IG1pbi13aWR0aDoxODdweDsgYm94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLnNlbGVjdGVkLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24uc2VsZWN0ZWQgeyBib3JkZXItY29sb3I6IzAwN0JGRjsgYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsIDEyMywgMjU1LCAwLjUpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAudGVybSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC50ZXJtIHsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzMzsgbWFyZ2luLWJvdHRvbToycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5kb3duLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZG93bi1wYXltZW50IHsgZm9udC1zaXplOjAuNjI1cmVtIDsgY29sb3I6Izk5OTsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zZXBhcmF0b3JQYXksICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc2VwYXJhdG9yUGF5IHsgd2lkdGg6OTAlOyBoZWlnaHQ6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7IG1hcmdpbi1ib3R0b206NnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuY29udGVudC1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IHdpZHRoOjEwMCU7IHBhZGRpbmctYm90dG9tOjhweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxlZnQtc2VjdGlvbiwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5yaWdodC1zZWN0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmxlZnQtc2VjdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5yaWdodC1zZWN0aW9uIHsgd2lkdGg6NTAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo2cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubGVmdC1zZWN0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmxlZnQtc2VjdGlvbiB7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2NjYzsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxvd2VzdC1wYXltZW50LCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxvd2VzdC1yYXRlLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmxvd2VzdC1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmxvd2VzdC1yYXRlIHsgZm9udC1zaXplOjEuMjVyZW0gOyBjb2xvcjojZDMyZjJmOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmluZm8taWNvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5pbmZvLWljb24geyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM2NjY7IGN1cnNvcjpwb2ludGVyOyBtYXJnaW4tbGVmdDo0cHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXJhdGUsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXBheW1lbnQgeyBmb250LXNpemU6MC45MzhyZW0gOyBtYXJnaW4tdG9wOjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1yYXRlLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1yYXRlIHsgY29sb3I6IzMzMzsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1wYXltZW50IHsgY29sb3I6IzAwMzM2NjsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmRldGFpbHNUYXgsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZGV0YWlsc1RheCB7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IGNvbG9yOiMzMzM7IG1hcmdpbi10b3A6MnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAucmFkaW8tY29udGFpbmVyLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnJhZGlvLWNvbnRhaW5lciB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MHB4OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjAuNjg4cmVtIDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXSwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXSB7IG1hcmdpbi1yaWdodDo0cHg7IG9wYWNpdHk6dW5zZXQ7IHdpZHRoOnVuc2V0OyBoZWlnaHQ6dW5zZXQ7IHBvc2l0aW9uOnVuc2V0OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc2luZ2xlLWNvbHVtbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5zaW5nbGUtY29sdW1uIHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgd2lkdGg6MTAwJTsgcGFkZGluZzo4cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zbWFsbC1ib3gsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc21hbGwtYm94IHsgd2lkdGg6MTAwcHg7IHBhZGRpbmc6OHB4OyBtaW4td2lkdGg6MTAwcHg7IG1heC13aWR0aDoxMDBweDsgfQovKiogL2Nzcy9jb250YWN0UG9wdXAuY3NzICoqLwojY29udGFjdHBvcHVwIHsgd2lkdGg6NTk4cHg7IG1pbi13aWR0aDoyMzBweDsgfSAjY29udGFjdHBvcHVwLm1vYmlsZSB7IHdpZHRoOjEwMCU7IH0gLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSwgLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZXh0YXJlYS5qcXRyYW5zZm9ybWRvbmUgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGQuanFUcmFuc2Zvcm1UZXh0YXJlYS1tbCwgLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZC5qcVRyYW5zZm9ybVRleHRhcmVhLW1yIHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0cG9wdXAgKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjY29udGFjdHBvcHVwLnJldmVhbC1tb2RhbCB7IHBhZGRpbmc6MDsgfSAjY29udGFjdHBvcHVwLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0cG9wdXAgLmNvbnRhY3Rwb3B1cC1ib2R5IHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgcGFkZGluZzozMHB4IDEwcHggMTBweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgaW5wdXQgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3c6bm90KDpsYXN0LWNoaWxkKSAuZGl2U3BhbiB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNjpmaXJzdC1jaGlsZCB7IHBhZGRpbmctcmlnaHQ6MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNjpsYXN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjYgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIHsgbWF4LXdpZHRoOjI3NHB4ICFpbXBvcnRhbnQ7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgeyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBwYWRkaW5nOjE1cHggMTVweCAzMHB4IDE1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzMyYTdkYTsgfSAuY29udGFjdHBvcHVwLWhlYWRlcjo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOi0xNXB4OyBsZWZ0OjUwJTsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyBib3JkZXItbGVmdDozMHB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6MzBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDoxNXB4IHNvbGlkICMzMmE3ZGE7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmZhLXRpbWVzIHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjAuNXJlbTsgdG9wOjAuNXJlbTsgZm9udC1zaXplOmluaXRpYWw7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmZhLXRpbWVzOmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmhlYWRlci1yZXBsYWNlIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gYnV0dG9uLmNvbnRhY3Qtc3VibWl0IHsgcGFkZGluZzoxMHB4IDE1cHg7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJvcmRlci1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOiMzMmE3ZGE7IHRyYW5zaXRpb246YWxsIDAuMjVzOyBjb2xvcjojZmZmZmZmOyBmb250LXdlaWdodDo2MDA7IG1hcmdpbjowOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jb250YWN0LXN1Ym1pdDpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyB9IC5jb250YWN0cG9wdXAtZm9vdGVyIHsgfSAuY29udGFjdHBvcHVwLWZvb3RlciAuYnRuLXdyYXBwZXIgeyBwYWRkaW5nOjEwcHg7IH0gI2NvbnRhY3Rwb3B1cCAuanFUcmFuc2Zvcm1JbnB1dElubmVyIGRpdiB7IGhlaWdodDozMHB4OyB9ICNjb250YWN0cG9wdXAgLmpxVHJhbnNmb3JtSW5wdXRJbm5lciBkaXYudmFsaWRpdHktZXJyb25lb3VzIHsgd2lkdGg6aW5oZXJpdDsgfQovKiogL2Nzcy9kaXZfdGFibGVzLmNzcyAqKi8KZGl2LmRpdlRhYmxlVmlld3sgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUYWJsZVdyYXBlcnsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUaXRsZXsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC45MzhyZW0gOyBwYWRkaW5nOjMwcHggMHB4IDEwcHggMTBweDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGhlaWdodDphdXRvOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxlT3V0ZXJ7IGJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzowOyBib3JkZXItcmFkaXVzOjhweDsgbWFyZ2luOjA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsgb3ZlcmZsb3c6aGlkZGVuOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxleyBkaXNwbGF5OnRhYmxlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmd7IGRpc3BsYXk6dGFibGUtcm93OyBmb250LXdlaWdodDppbml0aWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ1cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93eyBkaXNwbGF5OnRhYmxlLXJvdzsgd2lkdGg6MTAwJTsgaGVpZ2h0OjY1cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Q2VsbHsgZGlzcGxheTp0YWJsZS1jZWxsOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxNXB4IDE1cHggMjVweCAxNXB4OyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Q2VsbDpsYXN0LWNoaWxkeyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGx7IHBhZGRpbmc6MTBweCAxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZIZWFkaW5nIGRpdi5kaXZDZWxsOm50aC1jaGlsZChldmVuKXsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6bGFzdC1jaGlsZHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6Zmlyc3QtY2hpbGR7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdzpsYXN0LWNoaWxkIGRpdi5kaXZDZWxseyBib3JkZXItYm90dG9tOjBweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3cgZGl2LmRpdkNlbGx7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdyBkaXYuZGl2Q2VsbDpudGgtY2hpbGQoZXZlbil7IGJhY2tncm91bmQtY29sb3I6I2Y2ZjdmODsgfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5wcmVsb2FkLmNzcyAqKi8KLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLmQyY2Zvcm0gKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZDJjZm9ybSBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtNCk7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS10aGluIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy05KTsgfSAuZDJjZm9ybS0tcm93IHN0YWNrLWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LXdyYXA6d3JhcDsgfSAuZDJjZm9ybS0tcm93IGJveC1sYyB7IHBhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UpOyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6MTE1cHg7IHdpZHRoOjMwJTsgcGFkZGluZy1yaWdodDp2YXIoLS1zKTsgbWFyZ2luLXRvcDp2YXIoLS1zMSk7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSBsYWJlbDpoYXMoW3JlcXVpcmVkXSkgc3BhbjphZnRlcnsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsOm5vdCguZmluYW5jZUNhbGMpLCAuZDJjZm9ybSAubGFiZWw6bm90KC5maW5hbmNlQ2FsYykgeyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLXJpZ2h0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIDp3aGVyZShpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pKSwgLmQyY2Zvcm0gc2VsZWN0Om5vdCgucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCwucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSwuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0KSwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB3aWR0aDoxMDAlOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QgeyBoZWlnaHQ6MzVweDsgfSAuZDJjZm9ybSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLmQyY2Zvcm0gaW5wdXQ6ZGlzYWJsZWQsIC5kMmNmb3JtIGlucHV0LmRpc2FibGVkIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyk7IGNvbG9yOnJnYig4NCwgODQsIDg0KTsgYm9yZGVyLWNvbG9yOnJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKTsgY3Vyc29yOm5vdC1hbGxvd2VkOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlciB7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyOjpwbGFjZWhvbGRlciB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0LCAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTsgdG9wOnZhcigtLXMxKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCAuaW5wdXQtaWNvbiB7IHJpZ2h0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IC5pbnB1dC1pY29uIHsgbGVmdDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCBpbnB1dCB7IHBhZGRpbmctbGVmdDp2YXIoLS1zOSk7IH0gLmQyY2Zvcm0gLnNlcGFyYXRvciB7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNkNGQ0ZDQ7IG1hcmdpbi10b3A6dmFyKC0tczcpOyBtYXJnaW4tYm90dG9tOnZhcigtLXM3KTsgfSAuZDJjZm9ybSAucmFkaW8taW5saW5lIHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0IHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCA+ICogeyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0IHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCA+ICo6bm90KDpsYXN0LW9mLXR5cGUpIHsgbWFyZ2luLXJpZ2h0OnZhcigtLXMxKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgeyBkaXNwbGF5OmZsZXg7IHdpZHRoIDoxMDAlOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtdGV4dCB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgd2hpdGUtc3BhY2U6bm93cmFwOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlci1sZWZ0OjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpsYXN0LWNoaWxkKSB7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IEBtZWRpYSAobWF4LXdpZHRoOjk4MHB4KSB7IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDo4NXB4OyB9IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMuY3NzICoqLwouZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QsIC5kMmNmb3JtIHRleHRhcmVhIHsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSB0ZXh0YXJlYTpmb2N1cyB7IGJvcmRlci1jb2xvcjojODZiN2ZlOyBvdXRsaW5lOjA7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYigxMyAxMTAgMjUzIC8gMjUlKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHRleHRhcmVhOmZvY3VzIHsgei1pbmRleDozOyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgYm9yZGVyLWNvbG9yOiNkYzM1NDUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGNvbG9yOiNkYzM1NDU7IH0KLyoqIC9jc3MvdjIvbW9kYWwuY3NzICoqLwoubW9kYWwtd3JhcHBlciB7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MTUwJTsgbGVmdDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IHotaW5kZXg6MTYwMDE7IHRyYW5zaXRpb246dG9wIDE1MG1zIGVhc2UtaW47IH0gLm1vZGFsLXdyYXBwZXIuaXMtYWN0aXZleyB0b3A6NTAlOyB9IC5tb2RhbC13cmFwcGVyIC5tb2RhbC1ib2R5eyBtaW4td2lkdGg6MjByZW07IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0Ojg1dmg7IG92ZXJmbG93LXk6YXV0bzsgfSAubW9kYWwtb3ZlcmxheXsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6MTAwdmg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjUpOyB6LWluZGV4OjEwMDAwOyB9IC5sb2FkaW5nLW92ZXJsYXl7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IGxlZnQ6MDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9hamF4LWxvYWRlci5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyB9IC5tb2RhbC13cmFwcGVyIDppcyhpbnB1dFt0eXBlPSJ0ZXh0Il0saW5wdXRbdHlwZT0iZW1haWwiXSxpbnB1dFt0eXBlPSJ0ZWwiXSl7IHBhZGRpbmc6MC40cmVtOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLW1pZC1ncmF5KTsgYm9yZGVyLXJhZGl1czowLjNyZW07IH0gLm1vZGFsLWJvZHkgLmlmcmFtZS13cmFwcGVyeyB3aWR0aDptYXgoOTB2dywgMjAuNXJlbSk7IGhlaWdodDptYXgoODR2aCwgMzByZW0pOyB3aWR0aDpjbGFtcCgyMC41cmVtLCBtYXgoOTB2dywgMjAuNXJlbSksIDYwcmVtKTsgaGVpZ2h0OmNsYW1wKDMwcmVtLCBtYXgoODR2aCwgMzByZW0pLCA2MHJlbSk7IH0gLm1vZGFsLWJvZHkgLmlmcmFtZS13cmFwcGVyIGlmcmFtZXsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0KLyoqIC9jc3MvdjIvZmxhdHBpY2tyLm1pbi5jc3MgKiovCi5mbGF0cGlja3ItY2FsZW5kYXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtvcGFjaXR5OjA7ZGlzcGxheTpub25lO3RleHQtYWxpZ246Y2VudGVyO3Zpc2liaWxpdHk6aGlkZGVuO3BhZGRpbmc6MDstd2Via2l0LWFuaW1hdGlvbjpub25lO2FuaW1hdGlvbjpub25lO2RpcmVjdGlvbjpsdHI7Ym9yZGVyOjA7Zm9udC1zaXplOjAuODc1cmVtIDtsaW5lLWhlaWdodDoyNHB4O2JvcmRlci1yYWRpdXM6NXB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMwNy44NzVweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjtiYWNrZ3JvdW5kOiNmZmY7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNiwtMXB4IDAgMCAjZTZlNmU2LDAgMXB4IDAgI2U2ZTZlNiwwIC0xcHggMCAjZTZlNmU2LDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KTtib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNiwtMXB4IDAgMCAjZTZlNmU2LDAgMXB4IDAgI2U2ZTZlNiwwIC0xcHggMCAjZTZlNmU2LDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KX0uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW4sLmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmV7b3BhY2l0eToxO21heC1oZWlnaHQ6NjQwcHg7dmlzaWJpbGl0eTp2aXNpYmxlfS5mbGF0cGlja3ItY2FsZW5kYXIub3BlbntkaXNwbGF5OmlubGluZS1ibG9jazt6LWluZGV4Ojk5OTk5fS5mbGF0cGlja3ItY2FsZW5kYXIuYW5pbWF0ZS5vcGVuey13ZWJraXQtYW5pbWF0aW9uOmZwRmFkZUluRG93biAzMDBtcyBjdWJpYy1iZXppZXIoLjIzLDEsLjMyLDEpO2FuaW1hdGlvbjpmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKC4yMywxLC4zMiwxKX0uZmxhdHBpY2tyLWNhbGVuZGFyLmlubGluZXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoycHh9LmZsYXRwaWNrci1jYWxlbmRhci5zdGF0aWN7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoMTAwJSArIDJweCl9LmZsYXRwaWNrci1jYWxlbmRhci5zdGF0aWMub3Blbnt6LWluZGV4Ojk5OTtkaXNwbGF5OmJsb2NrfS5mbGF0cGlja3ItY2FsZW5kYXIubXVsdGlNb250aCAuZmxhdHBpY2tyLWRheXMgLmRheUNvbnRhaW5lcjpudGgtY2hpbGQobisxKSAuZmxhdHBpY2tyLWRheS5pblJhbmdlOm50aC1jaGlsZCg3bis3KXstd2Via2l0LWJveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50fS5mbGF0cGlja3ItY2FsZW5kYXIubXVsdGlNb250aCAuZmxhdHBpY2tyLWRheXMgLmRheUNvbnRhaW5lcjpudGgtY2hpbGQobisyKSAuZmxhdHBpY2tyLWRheS5pblJhbmdlOm50aC1jaGlsZCg3bisxKXstd2Via2l0LWJveC1zaGFkb3c6LTJweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzotMnB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNXZWVrcyAuZGF5Q29udGFpbmVyLC5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1RpbWUgLmRheUNvbnRhaW5lcntib3JkZXItYm90dG9tOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lcntib3JkZXItbGVmdDowfS5mbGF0cGlja3ItY2FsZW5kYXIuaGFzVGltZSAuZmxhdHBpY2tyLXRpbWV7aGVpZ2h0OjQwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNn0uZmxhdHBpY2tyLWNhbGVuZGFyLm5vQ2FsZW5kYXIuaGFzVGltZSAuZmxhdHBpY2tyLXRpbWV7aGVpZ2h0OmF1dG99LmZsYXRwaWNrci1jYWxlbmRhcjpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyOnNvbGlkIHRyYW5zcGFyZW50O2NvbnRlbnQ6Jyc7aGVpZ2h0OjA7d2lkdGg6MDtsZWZ0OjIycHh9LmZsYXRwaWNrci1jYWxlbmRhci5yaWdodE1vc3Q6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dSaWdodDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5yaWdodE1vc3Q6YWZ0ZXIsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1JpZ2h0OmFmdGVye2xlZnQ6YXV0bztyaWdodDoyMnB4fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dDZW50ZXI6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dDZW50ZXI6YWZ0ZXJ7bGVmdDo1MCU7cmlnaHQ6NTAlfS5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3Jle2JvcmRlci13aWR0aDo1cHg7bWFyZ2luOjAgLTVweH0uZmxhdHBpY2tyLWNhbGVuZGFyOmFmdGVye2JvcmRlci13aWR0aDo0cHg7bWFyZ2luOjAgLTRweH0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVye2JvdHRvbToxMDAlfS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YmVmb3Jle2JvcmRlci1ib3R0b20tY29sb3I6I2U2ZTZlNn0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmFmdGVye3RvcDoxMDAlfS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3Jle2JvcmRlci10b3AtY29sb3I6I2U2ZTZlNn0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmFmdGVye2JvcmRlci10b3AtY29sb3I6I2ZmZn0uZmxhdHBpY2tyLWNhbGVuZGFyOmZvY3Vze291dGxpbmU6MH0uZmxhdHBpY2tyLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZsYXRwaWNrci1tb250aHN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgwLDAsMCwwLjkpO2ZpbGw6cmdiYSgwLDAsMCwwLjkpO2hlaWdodDozNHB4O2xpbmUtaGVpZ2h0OjE7dGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjF9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aHt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtoZWlnaHQ6MzRweDtwYWRkaW5nOjEwcHg7ei1pbmRleDozO2NvbG9yOnJnYmEoMCwwLDAsMC45KTtmaWxsOnJnYmEoMCwwLDAsMC45KX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItZGlzYWJsZWR7ZGlzcGxheTpub25lfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBpLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBpe3Bvc2l0aW9uOnJlbGF0aXZlfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItcHJldi1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGh7bGVmdDowfSAuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLW5leHQtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1uZXh0LW1vbnRoe3JpZ2h0OjB9IC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aDpob3ZlciwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGg6aG92ZXJ7Y29sb3I6Izk1OWVhOX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGg6aG92ZXIgc3ZnLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciBzdmd7ZmlsbDojZjY0NzQ3fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBzdmcsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2Z3t3aWR0aDoxNHB4O2hlaWdodDoxNHB4fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBzdmcgcGF0aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggc3ZnIHBhdGh7LXdlYmtpdC10cmFuc2l0aW9uOmZpbGwgLjFzO3RyYW5zaXRpb246ZmlsbCAuMXM7ZmlsbDppbmhlcml0fS5udW1JbnB1dFdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OmF1dG99Lm51bUlucHV0V3JhcHBlciBpbnB1dCwubnVtSW5wdXRXcmFwcGVyIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm51bUlucHV0V3JhcHBlciBpbnB1dHt3aWR0aDoxMDAlfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi1tcy1jbGVhcntkaXNwbGF5Om5vbmV9Lm51bUlucHV0V3JhcHBlciBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwubnVtSW5wdXRXcmFwcGVyIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9ue21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5udW1JbnB1dFdyYXBwZXIgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3dpZHRoOjE0cHg7cGFkZGluZzowIDRweCAwIDJweDtoZWlnaHQ6NTAlO2xpbmUtaGVpZ2h0OjUwJTtvcGFjaXR5OjA7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuMTUpOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubnVtSW5wdXRXcmFwcGVyIHNwYW46aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSl9Lm51bUlucHV0V3JhcHBlciBzcGFuOmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yKX0ubnVtSW5wdXRXcmFwcGVyIHNwYW46YWZ0ZXJ7ZGlzcGxheTpibG9jaztjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1Vwe3RvcDowO2JvcmRlci1ib3R0b206MH0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlcntib3JkZXItbGVmdDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjRweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuNik7dG9wOjI2JX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3due3RvcDo1MCV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItbGVmdDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOjRweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuNik7dG9wOjQwJX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3Zne3dpZHRoOmluaGVyaXQ7aGVpZ2h0OmF1dG99Lm51bUlucHV0V3JhcHBlciBzcGFuIHN2ZyBwYXRoe2ZpbGw6cmdiYSgwLDAsMCwwLjUpfS5udW1JbnB1dFdyYXBwZXI6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS5udW1JbnB1dFdyYXBwZXI6aG92ZXIgc3BhbntvcGFjaXR5OjF9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoe2ZvbnQtc2l6ZToxMzUlO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NzUlO2xlZnQ6MTIuNSU7cGFkZGluZzo3LjQ4cHggMCAwIDA7bGluZS1oZWlnaHQ6MTtoZWlnaHQ6MzRweDtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggc3Bhbi5jdXItbW9udGh7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDo3MDA7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDouNWNoO3BhZGRpbmc6MH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggc3Bhbi5jdXItbW9udGg6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVye3dpZHRoOjZjaDt3aWR0aDo3Y2hcMDtkaXNwbGF5OmlubGluZS1ibG9ja30uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsMCwwLDAuOSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLDAuOSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnRleHQ7cGFkZGluZzowIDAgMCAuNWNoO21hcmdpbjowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OmluaGVyaXQ7aGVpZ2h0OmF1dG87Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO3ZlcnRpY2FsLWFsaWduOmluaXRpYWw7LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkO2FwcGVhcmFuY2U6dGV4dGZpZWxkfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcjpmb2N1c3tvdXRsaW5lOjB9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyW2Rpc2FibGVkXSwuZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJbZGlzYWJsZWRdOmhvdmVye2ZvbnQtc2l6ZToxMDAlO2NvbG9yOnJnYmEoMCwwLDAsMC41KTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmV9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHN7YXBwZWFyYW5jZTptZW51bGlzdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjotMXB4IDAgMCAwO291dGxpbmU6bm9uZTtwYWRkaW5nOjAgMCAwIC41Y2g7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246aW5pdGlhbDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFwcGVhcmFuY2U6bWVudWxpc3Q7LW1vei1hcHBlYXJhbmNlOm1lbnVsaXN0O3dpZHRoOmF1dG99LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6Zm9jdXMsLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6YWN0aXZle291dGxpbmU6bm9uZX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHMgLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7b3V0bGluZTpub25lO3BhZGRpbmc6MH0uZmxhdHBpY2tyLXdlZWtkYXlze2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7dGV4dC1hbGlnbjpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MjhweH0uZmxhdHBpY2tyLXdlZWtkYXlzIC5mbGF0cGlja3Itd2Vla2RheWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MX1zcGFuLmZsYXRwaWNrci13ZWVrZGF5e2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZTo5MCU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDAsMCwwLDAuNTQpO2xpbmUtaGVpZ2h0OjE7bWFyZ2luOjA7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpibG9jazstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7Zm9udC13ZWlnaHQ6Ym9sZGVyfS5kYXlDb250YWluZXIsLmZsYXRwaWNrci13ZWVrc3twYWRkaW5nOjFweCAwIDAgMH0uZmxhdHBpY2tyLWRheXN7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7d2lkdGg6MzA3Ljg3NXB4fS5mbGF0cGlja3ItZGF5czpmb2N1c3tvdXRsaW5lOjB9LmRheUNvbnRhaW5lcntwYWRkaW5nOjA7b3V0bGluZTowO3RleHQtYWxpZ246bGVmdDt3aWR0aDozMDcuODc1cHg7bWluLXdpZHRoOjMwNy44NzVweDttYXgtd2lkdGg6MzA3Ljg3NXB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1ibG9jaztkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTtvcGFjaXR5OjF9LmRheUNvbnRhaW5lciArIC5kYXlDb250YWluZXJ7LXdlYmtpdC1ib3gtc2hhZG93Oi0xcHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzotMXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3ItZGF5e2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MTUwcHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiMzOTM5Mzk7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NDAwO3dpZHRoOjE0LjI4NTcxNDMlOy13ZWJraXQtZmxleC1iYXNpczoxNC4yODU3MTQzJTstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZToxNC4yODU3MTQzJTtmbGV4LWJhc2lzOjE0LjI4NTcxNDMlO21heC13aWR0aDozOXB4O2hlaWdodDozOXB4O2xpbmUtaGVpZ2h0OjM5cHg7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXJ9LmZsYXRwaWNrci1kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS50b2RheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheS50b2RheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS50b2RheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpob3ZlciwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6aG92ZXIsLmZsYXRwaWNrci1kYXk6Zm9jdXMsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5OmZvY3VzLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpmb2N1c3tjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjA7YmFja2dyb3VuZDojZTZlNmU2O2JvcmRlci1jb2xvcjojZTZlNmU2fS5mbGF0cGlja3ItZGF5LnRvZGF5e2JvcmRlci1jb2xvcjojOTU5ZWE5fS5mbGF0cGlja3ItZGF5LnRvZGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5LnRvZGF5OmZvY3Vze2JvcmRlci1jb2xvcjojOTU5ZWE5O2JhY2tncm91bmQ6Izk1OWVhOTtjb2xvcjojZmZmfS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpmb2N1cywuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmZvY3VzLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmZvY3VzLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmhvdmVyLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6aG92ZXIsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6aG92ZXIsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5uZXh0TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5uZXh0TW9udGhEYXksLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UubmV4dE1vbnRoRGF5e2JhY2tncm91bmQ6IzU2OWZmNzstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6IzU2OWZmN30uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdle2JvcmRlci1yYWRpdXM6NTBweCAwIDAgNTBweH0uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmVuZFJhbmdle2JvcmRlci1yYWRpdXM6MCA1MHB4IDUwcHggMH0uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpey13ZWJraXQtYm94LXNoYWRvdzotMTBweCAwIDAgIzU2OWZmNztib3gtc2hhZG93Oi0xMHB4IDAgMCAjNTY5ZmY3fS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2UuZW5kUmFuZ2V7Ym9yZGVyLXJhZGl1czo1MHB4fS5mbGF0cGlja3ItZGF5LmluUmFuZ2V7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm94LXNoYWRvdzotNXB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93Oi01cHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQ6aG92ZXIsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheSwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLC5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQubmV4dE1vbnRoRGF5e2NvbG9yOnJnYmEoNTcsNTcsNTcsMC4zKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6ZGVmYXVsdH0uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVye2N1cnNvcjpub3QtYWxsb3dlZDtjb2xvcjpyZ2JhKDU3LDU3LDU3LDAuMSl9LmZsYXRwaWNrci1kYXkud2Vlay5zZWxlY3RlZHtib3JkZXItcmFkaXVzOjA7LXdlYmtpdC1ib3gtc2hhZG93Oi01cHggMCAwICM1NjlmZjcsNXB4IDAgMCAjNTY5ZmY3O2JveC1zaGFkb3c6LTVweCAwIDAgIzU2OWZmNyw1cHggMCAwICM1NjlmZjd9LmZsYXRwaWNrci1kYXkuaGlkZGVue3Zpc2liaWxpdHk6aGlkZGVufS5yYW5nZU1vZGUgLmZsYXRwaWNrci1kYXl7bWFyZ2luLXRvcDoxcHh9LmZsYXRwaWNrci13ZWVrd3JhcHBlcntmbG9hdDpsZWZ0fS5mbGF0cGlja3Itd2Vla3dyYXBwZXIgLmZsYXRwaWNrci13ZWVrc3twYWRkaW5nOjAgMTJweDstd2Via2l0LWJveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3Itd2Vla3dyYXBwZXIgLmZsYXRwaWNrci13ZWVrZGF5e2Zsb2F0Om5vbmU7d2lkdGg6MTAwJTtsaW5lLWhlaWdodDoyOHB4fS5mbGF0cGlja3Itd2Vla3dyYXBwZXIgc3Bhbi5mbGF0cGlja3ItZGF5LC5mbGF0cGlja3Itd2Vla3dyYXBwZXIgc3Bhbi5mbGF0cGlja3ItZGF5OmhvdmVye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXgtd2lkdGg6bm9uZTtjb2xvcjpyZ2JhKDU3LDU3LDU3LDAuMyk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjdXJzb3I6ZGVmYXVsdDtib3JkZXI6bm9uZX0uZmxhdHBpY2tyLWlubmVyQ29udGFpbmVye2Rpc3BsYXk6YmxvY2s7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVufS5mbGF0cGlja3ItckNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjA7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5mbGF0cGlja3ItdGltZXt0ZXh0LWFsaWduOmNlbnRlcjtvdXRsaW5lOjA7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtsaW5lLWhlaWdodDo0MHB4O21heC1oZWlnaHQ6NDBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmZsYXRwaWNrci10aW1lOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZTtjbGVhcjpib3RofS5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyey13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTt3aWR0aDo0MCU7aGVpZ2h0OjQwcHg7ZmxvYXQ6bGVmdH0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMzkzOTM5fS5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci10b3AtY29sb3I6IzM5MzkzOX0uZmxhdHBpY2tyLXRpbWUuaGFzU2Vjb25kcyAubnVtSW5wdXRXcmFwcGVye3dpZHRoOjI2JX0uZmxhdHBpY2tyLXRpbWUudGltZTI0aHIgLm51bUlucHV0V3JhcHBlcnt3aWR0aDo0OSV9LmZsYXRwaWNrci10aW1lIGlucHV0e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojMzkzOTM5O2ZvbnQtc2l6ZTowLjg3NXJlbSA7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDthcHBlYXJhbmNlOnRleHRmaWVsZH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLWhvdXJ7Zm9udC13ZWlnaHQ6Ym9sZH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLW1pbnV0ZSwuZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLXNlY29uZHtmb250LXdlaWdodDo0MDB9LmZsYXRwaWNrci10aW1lIGlucHV0OmZvY3Vze291dGxpbmU6MDtib3JkZXI6MH0uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci10aW1lLXNlcGFyYXRvciwuZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbXtoZWlnaHQ6aW5oZXJpdDtmbG9hdDpsZWZ0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6IzM5MzkzOTtmb250LXdlaWdodDpib2xkO3dpZHRoOjIlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LWFsaWduLXNlbGY6Y2VudGVyOy1tcy1mbGV4LWl0ZW0tYWxpZ246Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyfS5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBte291dGxpbmU6MDt3aWR0aDoxOCU7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NDAwfS5mbGF0cGlja3ItdGltZSBpbnB1dDpob3ZlciwuZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpob3ZlciwuZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXMsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG06Zm9jdXN7YmFja2dyb3VuZDojZWVlfS5mbGF0cGlja3ItaW5wdXRbcmVhZG9ubHlde2N1cnNvcjpwb2ludGVyfUAtd2Via2l0LWtleWZyYW1lcyBmcEZhZGVJbkRvd257ZnJvbXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9fUBrZXlmcmFtZXMgZnBGYWRlSW5Eb3due2Zyb217b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX0KLyoqIC9jc3MvaW5saW5lLmZyLm5ld2NhcnMuY3NzICoqLwpidXR0b24jb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAwICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHggIWltcG9ydGFudDsgfSBidXR0b24jb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAwICFpbXBvcnRhbnQ7IGNvbG9yOiNmZjAwMDAgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNmZjAwMDAgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHggIWltcG9ydGFudDsgfSBidXR0b24jb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgY29sb3I6IzY5Njk2OSAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6IzkwOTA5MCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IGJ1dHRvbi5zYXZlLXByZWZlcmVuY2UtYnRuLWhhbmRsZXIub25ldHJ1c3QtY2xvc2UtYnRuLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgY29sb3I6I2ZmMDAwMCAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6I2ZmMDAwMCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IGJ1dHRvbi5vdC1wYy1yZWZ1c2UtYWxsLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDAgIWltcG9ydGFudDsgY29sb3I6I2ZmMDAwMCAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6I2ZmMDAwMCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IGJ1dHRvbiNhY2NlcHQtcmVjb21tZW5kZWQtYnRuLWhhbmRsZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMCAhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTpzbWFsbCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IC5vdC1wYy1sb2dvIGltZ3sgY29udGVudDp1cmwoIi9pbWFnZXMvTG9nby9LSWFGb3JjZUVsZWN0cmlxdWUtSE9SLVJHQi53ZWJwIikgIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dveyB3aWR0aDozMCUgIWltcG9ydGFudDsganVzdGlmeS1jb250ZW50OmxlZnQgIWltcG9ydGFudDsgfSAub3QtYm5yLWxvZ297IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ28vS0lhRm9yY2VFbGVjdHJpcXVlLUhPUi1SR0Iud2VicCIpICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ297IHdpZHRoOjg1cHggIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MjVweCAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gI29uZXRydXN0LXBvbGljeSB7IG1hcmdpbi1sZWZ0OjExMHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDoyNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MjVweCl7ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gLm90LWJuci1sb2dveyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjE1cHggMCAxMHB4IDAgIWltcG9ydGFudDsgdHJhbnNmb3JtOmluaGVyaXQ7IHpvb206NDAlOyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gI29uZXRydXN0LXBvbGljeSB7IG1hcmdpbi1sZWZ0OjBweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjVweDsgfSAjb25ldHJ1c3QtY29uc2VudC1zZGsgI29uZXRydXN0LXBvbGljeS10aXRsZXsgZm9udC1zaXplOjFlbSAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIsICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1yZWplY3QtYWxsLWhhbmRsZXIsICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wYy1idG4taGFuZGxlcnsgcGFkZGluZzoxMHB4IDEwcHg7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgYnV0dG9uLCAjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiwgI290LXNkay1jb29raWUtcG9saWN5IGJ1dHRvbnsgbWFyZ2luLWJvdHRvbTowLjVyZW07IH0gI29uZXRydXN0LXBjLXNkayBidXR0b24geyB3aWR0aDphdXRvOyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrIC5vdC1zZGstY29udGFpbmVyLCAjb25ldHJ1c3QtcGMtc2RrIC5vdC1zZGstY29udGFpbmVyLCAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgLm90LXNkay1jb250YWluZXJ7IHBhZGRpbmc6NXB4IDIwcHg7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBvbGljeXsgbWFyZ2luOjA7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWJ1dHRvbi1ncm91cCAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyeyBmb250LXNpemU6dmFyKC0tZnMwKTsgfSB9PC9zdHlsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCi5jbnRTZXBhcmF0b3Ige3BhZGRpbmctdG9wOjZweDt9PC9zdHlsZT4KCQoJCTwhLS0gT086OjYwMDU3MTBkMjkzOTU4OWYwZGM3MGEzZjA2M2YzYTQ4IC0tPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLDoCB2ZW5kcmUiIGlkPSJ0ZXh0Rm9yU2FsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkTDqXRhaWxzIiBpZD0idGV4dERldGFpbHMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJUb3VzIiBpZD0idGV4dEFsbCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlByaXggUsOpZHVpdCIgaWQ9InRleHRSZWR1Y2VkIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iU8OpbGVjdGlvbm5leiB1bmUgbWFycXVlIiBpZD0idGV4dE1hbnVUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlZvaXIgbm9zIG1vZMOobGVzIEtpYSIgaWQ9InRleHRCcmFuZFRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTW9kw6hsZXMgS2lhIG5ldWZzIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyIgaWQ9InRleHRNYWluVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBdXRvcyBuZXV2ZXMgS2lhIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dENhclRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVlVTIG5ldWZzIEtpYSAyMDI1LCAyMDI2ICZhbXA7IDIwMjcgw6AgeyRORVdDSVRZfSIgaWQ9InRleHRTVVZUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkNhbWlvbnMgbmV1ZnMgS2lhIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dFRydWNrVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJIeWJyaWRlcyBuZXV2ZXMgS2lhIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dEh5YnJpZFRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iw4lsZWN0cmlxdWUgbmV1dmVzIEtpYSAyMDI1LCAyMDI2ICZhbXA7IDIwMjcgw6AgeyRORVdDSVRZfSIgaWQ9InRleHRFbGVjdHJpY1RpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibm91dmVhdSIgaWQ9InRleHROZXciPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJLaWEgeyRDTEFTU05BTUV9IDIwMjUsIDIwMjYgJmFtcDsgMjAyNyIgaWQ9InRleHRDbGFzc1ZpZXciPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBY2N1ZWlsIiBpZD0idGV4dEhvbWUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvIiBpZD0idXJpSG9tZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9uZXVmcy9ub3V2ZWF1Lmh0bWwiIGlkPSJ1cmlOZXdDYXJzIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL25ldWZzLyIgaWQ9InRleHROZXdDYXJGb2xkZXIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJOb3MgbWFycXVlcyIgaWQ9InRleHRNYW51U2VsZWN0Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRW4gU3RvY2sgLyBEaXNwb25pYmxlcyIgaWQ9ImluU3RvY2tMYWJlbCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9pbWFnZXMvIiBpZD0idGV4dEJhc2VJbWFnZVBhdGgiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvcHJveHlfYXViLyIgaWQ9ImJyYW5kSW1hZ2VQYXRoIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iY2VlZTE2OTQyMzRhYWRkYTBlMjk3NTRkMTdiZDdjN2R8MzczMzcxODI3OCIgaWQ9ImVtYWlsVXNlZENhcnMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZEVtYWlsT3ZlcnJpZGUiIGlkPSJicmFuZEVtYWlsT3ZlcnJpZGUiIHZhbHVlPSIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kRW1haWxBZGZPdmVycmlkZSIgaWQ9ImJyYW5kRW1haWxBZGZPdmVycmlkZSIgdmFsdWU9IiI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9yY2VUb0ZpbGxQb3B1cF9uZXciIHZhbHVlPSJub25lIj4KCQk8IS0tIFNUQVJUIFNPUlQgT1JERVIgLS0+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9InByaWNlIiBpZD0ic29ydEJ5Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQXNjIiBpZD0ic29ydERpciI+CgkJPCEtLSBFTkQgU09SVCBPUkRFUiAtLT4KCQkJCQkJPHNjcmlwdD4KCgkJLy9nbG9iYWwgc3RvcmUKCQl2YXIgc3RvcmUgPSBudWxsOwoKCQljb25zdCBpbml0U3RvcmUgPSAoKSA9PiB7CgoJCQlpZih0eXBlb2YgY3JlYXRlRGF0YVN0b3JlICE9PSAnZnVuY3Rpb24nKXsKCQkJCXNldFRpbWVvdXQoaW5pdFN0b3JlLCA1MCk7CgkJCQlyZXR1cm47CgkJCX0KCgkJCXN0b3JlID0gY3JlYXRlRGF0YVN0b3JlKHsiY29udGV4dCI6eyJsYW5nIjoiRlJFTkNIIiwic2hvcnRMYW5nIjoiZnIiLCJpc01vYmlsZSI6ZmFsc2UsImNhdGVnb3J5IjoiYWxsIiwic2VjdGlvbiI6Ik5FVyIsImxvY2FsZSI6ImZyX0NBIiwiZGF0ZWZvcm1hdCI6IiVlICVCIn0sImRlYWxlckluZm8iOnsiYWRkcmVzcyI6IjE2MDAgcnVlIEN5cmlsbGUgRHVxdWV0IiwiY2l0eSI6IlF1XHUwMGU5YmVjIiwicHJvdmluY2UiOiJRdVx1MDBlOWJlYyIsInJlZ2lvbiI6IlF1XHUwMGU5YmVjIiwicG9zdGFsIjoiRzFOIDJFNSIsIm5hbWUiOiJGb3JjZSBcdTAwYzlsZWN0cmlxdWUiLCJlbWFpbCI6IiIsImRlYWxlcklEIjoiMzI4OSIsImRlYWxlckdyb3VwIjp7Imdyb3VwZU5hbWUiOiJHcm91cGUgRm9yY2VBdXRvIiwiZ3JvdXBlSUQiOiI0MTY5IiwiZGVhbGVycyI6W3siZGVhbGVySUQiOiI0NzA1IiwibmFtZSI6IkNlbnRyZSBkJ0luc3BpcmF0aW9uIFx1MDBjOWxlY3RyaXF1ZSBLaWEiLCJzaXRlSUQiOiIxNzk4IiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjMyODkiLCJuYW1lIjoiRm9yY2UgXHUwMGM5bGVjdHJpcXVlIiwic2l0ZUlEIjoiMTE0NyIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyMzUzIiwibmFtZSI6IkZvcmNlIE9jY2FzaW9uIFF1XHUwMGU5YmVjIiwic2l0ZUlEIjoiNzAyIiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjI3ODkiLCJuYW1lIjoiRm9yZCBEb25uYWNvbmEiLCJzaXRlSUQiOiIxMDA3IiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjIwNTkiLCJuYW1lIjoiSG9uZGEgRG9ubmFjb25hIiwic2l0ZUlEIjoiNDc5IiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjE1MDIiLCJuYW1lIjoiS2lhIFF1XHUwMGU5YmVjIiwic2l0ZUlEIjoiNTg1IiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjIxODUiLCJuYW1lIjoiS2lhIFN0ZS1Gb3kiLCJzaXRlSUQiOiI1NzkiLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiMjE5MSIsIm5hbWUiOiJLaWEgVmFsLUJcdTAwZTlsYWlyIiwic2l0ZUlEIjoiNTkyIiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjI2NTkiLCJuYW1lIjoiTWEgRGV1eGlcdTAwZThtZSBDaGFuY2UiLCJzaXRlSUQiOiI4NzMiLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiNTg0NyIsIm5hbWUiOiJSZW1vcnF1ZXMgR3JhbmQgUG9ydG5ldWYiLCJzaXRlSUQiOiIyNTQzIiwiaXNMaXZlIjoiWUVTIn1dfSwiZmF4IjoiIiwicGhvbmUiOiI0MTgtNjYwLTI5MjkiLCJsYXRpdHVkZSI6IjQ2LjgzNjg1MzU1MTYiLCJsb25naXR1ZGUiOiItNzEuMjcyMTYzNjM5MSIsInByb3ZpbmNlX2NvZGUiOiJRQyIsImRldGFpbF9wcml4IjpudWxsLCJkZXRhaWxfcHJpeF9hbiI6bnVsbCwiZGV0YWlsX3ByaXhfdXNlZCI6bnVsbCwiZGV0YWlsX3ByaXhfdXNlZF9hbiI6bnVsbCwib2VtRGVhbGVyQ29kZSI6IiIsInByaWNlX2Rpc2NsYWltZXJfcHJlZmVyZW5jZSI6IjAiLCJwcmljZV9kaXNjbGFpbWVyX3ByZWZlcmVuY2VfdXNlZCI6IjAiLCJnbUJBQyI6IiIsInBsYWNlSWQiOiIifSwiaXNWTSI6ZmFsc2UsImZpZWxkcyI6eyJTSE9XUk9PTV9JTUFHRV9TT1VSQ0VfVFlQRSI6ImNocm9tZSIsIk5FV19JTlZfSU1BR0VfU09VUkNFX1RZUEUiOiJjaHJvbWUifSwiaTE4biI6eyJXRUJfU0lURV9HRU5FUkFUT1JfUEFHRV9ORVdJTlYiOiJcL25ldWZzXC9pbnZlbnRhaXJlXC9yZWNoZXJjaGUuaHRtbCIsIlBBWU1FTlRTIjoiUGFpZW1lbnRzIiwiREVGQVVMVF9QQVlNRU5UX0NBU0giOiJDb21wdGFudCIsIkxBQkVMX0JFRk9SRV9UQVhFUyI6IkF2YW50IHRheGVzIiwiTEFCRUxfU0FWRV9CVUlMRF9USVRMRSI6IkVucmVnaXN0cmVyIHZvdHJlIGNvbmZpZ3VyYXRpb24hIn0sInNob3dPZW1JbWFnZXMiOmZhbHNlfSk7CgkJfTsKCgkJaW5pdFN0b3JlKCk7CgoJPC9zY3JpcHQ+CgkJCQkJCTxzdmcgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoJCQkJCgkJCTwvc3ZnPgoJCQkKCQkJPGhlYWRlciBjbGFzcz0ibWFpbkRpdi13cmFwcGVyIj4KCQkJCQoJCQkJPGRpdiBjbGFzcz0id3JhcHBlciBNYWluQm94TGF5ZXIgbm8taWNvbnMiIGlkPSJtYWluRGl2IiBoaWRkZW49IjEiPgoJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIwIiBpZD0ibXVsdGktbGFuZ3VhZ2UiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgaWQ9Im5ld190cmFuc2xhdGVkX3RpdGxlcyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJGUkVOQ0giIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiPgkJCQk8ZGl2IGNsYXNzPSJsYW5ndWFnZUJhciBmbGV4LWJveCBmbGV4LWVuZCBhbGlnbi1jZW50ZXIgbGFuZ3VhZ2VCYXItemVybyIgaWQ9Imxhbmd1YWdlQ2hhbmdlckRpdiI+CgkJCQkJCQoJCgkKCQoJCgkKCQkJCTwvZGl2PgoJCQk8IS0tIEhPTUVQQUdFX0VORyA9PiAvZW5nLyB8fCBIT01FUEFHRSBGUkUgPT4gLyAtLT4KCQkJCgkJCTxkaXYgY2xhc3M9InYtY2FyZCB0b3BfYmcgaGVhZGVyLWluZm8iIHN0eWxlPSJiYWNrZ3JvdW5kOm5vbmU7Ij4KCQkJCQkJCTxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uIj4KCTxkaXYgY2xhc3M9ImhlYWRlci1pbWFnZS13cmFwcGVyIj4KCQk8YSBocmVmPSI\/cGF0aD0vIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lOyIgYXJpYS1sYWJlbD0iRm9yY2Ugw4lsZWN0cmlxdWUgTG9nbyIgdGl0bGU9IkZvcmNlIMOJbGVjdHJpcXVlIj4KCQkJPGltZyBhbHQ9IkZvcmNlIMOJbGVjdHJpcXVlIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMSBsaXZlbG9hZCBwaG90byBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLW90LWlnbm9yZSBkYXRhLXNjb2RlcmVmPSI2NDgxNTMtUCIgaWQ9ImRlYWxlcl9sb2dvIiBzcmM9Imh0dHBzOi8vZm9yY2VlbGVjdHJpcXVlLmNvbS8vaW1hZ2VzL0xvZ28vS0lhRm9yY2VFbGVjdHJpcXVlLUhPUi1SR0Iud2VicCIgc3R5bGU9IndpZHRoOjY0OHB4O2hlaWdodDoxMDVweDsiIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQk8L2E+Cgk8L2Rpdj4KPC9kaXY+CgkJCQoJCQk8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbiBsb2dvLW1pZGRsZSIgc3R5bGU9IiI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9ImhlYWRlci1zZWN0aW9uIGFkZHJlc3MtbWlkZGxlIj4KCTxkaXY+CgkJCgkJPGRpdiBjbGFzcz0icGhvbmUgcGhvbmVfcmlnaHQgIj4KICAgIDxkaXYgY2xhc3M9ImZuIG9yZyIgc3R5bGU9ImZvbnQtc2l6ZTogMjBweDtjb2xvcjogIzAwMDAwMDsiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjMiPkZvcmNlIMOJbGVjdHJpcXVlPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJhZHIiIHN0eWxlPSJmb250LXNpemU6IDE0cHg7Y29sb3I6ICMwMDAwMDA7ICIgaXRlbXByb3A9ImFkZHJlc3MiIGl0ZW1zY29wZSBpdGVtdHlwZT0iaHR0cHM6Ly9zY2hlbWEub3JnL1Bvc3RhbEFkZHJlc3MiPgogICAgICAgIDxzcGFuPlN1Y2N1cnNhbGVzIMOgIFF1w6liZWMsIFN0ZS1Gb3kgZXQgVmFsLULDqWxhaXI8L3NwYW4+CiAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBob25lX3RleHQgaWNvbi10ZXh0IiBzdHlsZT0iZm9udC1zaXplOiAxNHB4O2NvbG9yOiAjMDAwMDAwOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSIiIGNsYXNzPSJmYSBmYS1waG9uZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4gIDxzcGFuIGlkPSJoZWFkZXItcGhvbmUtdHJpZ2dlciIgaXRlbXByb3A9InRlbGVwaG9uZSIgY2xhc3M9ImV4dGVuZGVkUGhvbmVUcmlnZ2VyICIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgY3Vyc29yOiBwb2ludGVyOyI+PGEgaHJlZj0iP3BhdGg9dGVsOjU4MSUyMDcwNS05OTYzIiBjbGFzcz0icGhvbmUtbGluayIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyI+NTgxIDcwNS05OTYzPC9hPiA8c3BhbiBzdHlsZT0icG9pbnRlci1ldmVudHM6bm9uZTsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTZweDsiIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJleHRlbmRlZFBob25lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgoJPGRpdj48bGFiZWw+R8OpbsOpcmFsOiA8c3BhbiBjbGFzcz0idGVsIC1tbDEwIj48YSBocmVmPSI\/cGF0aD10ZWw6NTgxJTIwNzA1LTk5NjMiIGNsYXNzPSJwaG9uZS1saW5rIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj41ODEgNzA1LTk5NjM8L2E+IDxicj48L3NwYW4+PC9sYWJlbD48L2Rpdj4KCTxkaXYgY2xhc3M9InBob25lTm90ZSI+PC9kaXY+Cgk8IS0tIE9POjpkNzViNzY4Mjg2ODQ4MDFlMjY2ZGJjYmIzYzgxMjA1NSAtLT4KPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAKPC9kaXY+CgkJCgk8L2Rpdj4KPC9kaXY+CgkJCQoJCQkKCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImNsciI+PC9kaXY+CgkJCTxkaXYgY2xhc3M9InNrZWxldG9uIHNrZWxldG9uLWRlc2t0b3Agc2tlbGV0b24tY29uZC0yIGhlYWRlci1tZW51IiBzdHlsZT0id2lkdGg6Y2FsYygxMDB2dyAtICgxMDB2dyAtIDEwMCUpKTttaW4taGVpZ2h0OjQ4cHg7Ij4KCQkJCTxkaXYgY2xhc3M9InVwX21lbnUgIEZSRU5DSCBpbWdfbWVudSBub2xvY2sgbWVudTUgd2l0aC1ib3JkZXIgZnVsbF93aWR0aCIgZGF0YS1zY29kZXJlZj0iODk4OTQxNS1BIj4KCQkJCQk8ZGl2IGNsYXNzPSJTMTAwUGVyY2VudFdpZHRoIj4KCQkJCQkJPGRpdiBpZD0iZnVsbFdpZHRoTWVudUJhciI+PC9kaXY+CgkJCQkJCTx1bCBjbGFzcz0ibmF2ICI+CgkJCQkJCQk8ZGl2IGlkPSJtZW51LXNwZWNzLXRlbXBsYXRlIiBjbGFzcz0ibWVudS10ZWNoLXNwZWNzIj4gPGRpdiBjbGFzcz0ibWVudS1zcGVjcy10aXRsZSI+PHNwYW4gY2xhc3M9ImFycm93IGFycm93LWxhcmdlIGFycm93LXJpZ2h0IG1yLTE1Ij48L3NwYW4+PC9kaXY+IDx1bCBjbGFzcz0ibWVudS1zcGVjcy1saXN0Ij4gPGxpPiA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0ibWVudS1zcGVjLWxpbmsiPiA8c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj5TcMOpYy4gdGVjaG5pcXVlcyA8L2E+IDwvbGk+IDxsaT4gPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9Im1lbnUtc3BlYy1ibnAiPiA8c3BhbiBjbGFzcz0iYXJyb3cgYXJyb3ctcmlnaHQgbXItMTUiPjwvc3Bhbj5Db25maWd1cmV6IHZvdHJlICRNT0RFTCA8L2E+IDwvbGk+IDxsaSBjbGFzcz0iZGl2aWRlciI+IDxsaT4gPHN0cm9uZyBjbGFzcz0ibWVudS1wcmljZS10ZXh0Ij4jI01FTlVNT0RFTCMjICMjTUVOVVRSSU0jIyAjI01FTlVZRUFSIyMgw6AgcGFydGlyIGRlPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLXByaWNlIj4kOTksOTk5PC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+UHVpc3NhbmNlPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLWhwIj45OTkgaHAgQCA5OTk5IHJwbTwvc3Bhbj4gPC9saT4gPGxpPiA8c3Ryb25nPkN5bGluZHLDqWU8L3N0cm9uZz4gPGJyPjxzcGFuIGNsYXNzPSJtZW51LXNwZWMtcG93ZXIiPjkuOSBMLzk5PC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+Q29uc29tbWF0aW9uIGQnZXNzZW5jZTwvc3Ryb25nPiA8YnI+VmlsbGU6IDxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZnVlbC1jaXR5Ij45OSBtcGc8L3NwYW4+IDxicj5BdXRvcm91dGU6IDxzcGFuIGNsYXNzPSJtZW51LXNwZWMtZnVlbC1oaWdod2F5Ij45OSBtcGc8L3NwYW4+IDwvbGk+IDxsaT4gPHN0cm9uZz5Nb3RyaWNpdMOpPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLWRyaXZldHJhaW4iPjk5OSBrcGg8L3NwYW4+IDwvbGk+IDwvdWw+CjwvZGl2PjxsaSBkYXRhLWlkPSJDT05UQUNUIiBpZD0iTWFpbk1lbnVfQ09OVEFDVCIgY2xhc3M9InRvcCBsYXN0TWVudSBoYXNJdGVtcyI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vY29udGFjdGV6bm91cy5odG1sIj7DgCBQUk9QT1M8L2E+PHVsIGNsYXNzPSJzdWIgY29udGFjdHVzLWZvcm0gY29udGFjdC1zaG9ydCI+IDxsaSBkYXRhLWlkPSI2OWFiYjI5MzRiYTRiIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YmE0YiIgY2xhc3M9ImNvbnRhY3QtY29udGFpbmVyIj4gPGRpdiBjbGFzcz0iZXhwcmVzcy1mb3JtIj4gPGZvcm0gaWQ9InF1aWNrRW1haWxGb3JtIiBjbGFzcz0iZDJjZm9ybSBkMmNmb3JtLS10aGluIGNvbC1tZC0zIG1lbnUgaGlkZU9uUHJlTG9hZCIgYWN0aW9uPSJqYXZhc2NyaXB0OnZvaWQoMCk7Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZWxlY3RSZXF1aXJlZCIgdmFsdWU9IjEiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1Bob25lUmVxdWlyZWQiIHZhbHVlPSIxIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRleHRTYXZlTWFpbElEIiBuYW1lPSJ0ZXh0U2F2ZU1haWxJRCIgdmFsdWU9Im1lbnVDb250YWN0VXMiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idGV4dFF1aWNrRW1haWxJbmZvIiBuYW1lPSJ0ZXh0UXVpY2tFbWFpbEluZm8iIHZhbHVlPSJJbmZvcm1hdGlvbiBzdXIgeyRMSU5LTUFLRX0geyRMSU5LTU9ERUx9IHskTElOS1lFQVJ9Ij4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJ0cmltIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJ2aW4iIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcnByaWNlIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NjYXJpZCIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FybWFrZSIgdmFsdWU9IiI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzY2FybW9kZWwiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc2NhcnllYXIiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc3N0b2NrbnVtYmVyIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZW5kVG9FbWFpbCIgdmFsdWU9ImNlZWUxNjk0MjM0YWFkZGEwZTI5NzU0ZDE3YmQ3YzdkfDM3MzM3MTgyNzgiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsTkVXIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZW5kVG9FbWFpbEFERiIgdmFsdWU9IjNhNzgzZTk1MzNmYTcyM2RlZmViOGY0NWFkNjhhNDY0fDM3MzM3MTgyNzgiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIiB2YWx1ZT0iIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NTZW5kVG9FbWFpbEFERlNFUlZJQ0UiIHZhbHVlPSIiPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0luRGVtbyIgdmFsdWU9InskRVhQUkVTU0lOREVNT30iPiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHJpbnRGbGFnIiB2YWx1ZT0iMCI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX25ldyIgdmFsdWU9ImNlZWUxNjk0MjM0YWFkZGEwZTI5NzU0ZDE3YmQ3YzdkfDM3MzM3MTgyNzgiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsX3VzZWQiIHZhbHVlPSJjZWVlMTY5NDIzNGFhZGRhMGUyOTc1NGQxN2JkN2M3ZHwzNzMzNzE4Mjc4Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZXhwcmVzc0RlcGFydG1lbnRFbWFpbF9maW5hbmNlIiB2YWx1ZT0iY2VlZTE2OTQyMzRhYWRkYTBlMjk3NTRkMTdiZDdjN2R8MzczMzcxODI3OCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxBZGZfbmV3IiB2YWx1ZT0iM2E3ODNlOTUzM2ZhNzIzZGVmZWI4ZjQ1YWQ2OGE0NjR8MzczMzcxODI3OCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImV4cHJlc3NEZXBhcnRtZW50RW1haWxBZGZfdXNlZCIgdmFsdWU9IjNhNzgzZTk1MzNmYTcyM2RlZmViOGY0NWFkNjhhNDY0fDM3MzM3MTgyNzgiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJleHByZXNzRGVwYXJ0bWVudEVtYWlsQWRmX2ZpbmFuY2UiIHZhbHVlPSIzYTc4M2U5NTMzZmE3MjNkZWZlYjhmNDVhZDY4YTQ2NHwzNzMzNzE4Mjc4Ij4gPCEtLSBQTEFDRSAxLUEgLS0+IDxkaXY+IDxkaXYgY2xhc3M9Il9ib3gyODgwX21pZCAtcGw4IC1wcjgiPiA8ZGl2IGNsYXNzPSJ3aWRnZXRfZXhwcmVzc19tYWlsX3Bob25lX3RpdGxlIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj41ODEgNzA1LTk5NjM8L2Rpdj4gPGRpdiBjbGFzcz0iUmVjaGVyY2hlMjIgIj5EZW1hbmRlIEV4cHJlc3M8L2Rpdj4gPHN0YWNrLWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJxdWlja0VtYWlsTmFtZSIgY2xhc3M9InNyLW9ubHkiPk5vbTwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icXVpY2tFbWFpbE5hbWUiIG5hbWU9Im5hbWUiIHBsYWNlaG9sZGVyPSJOb20iPiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbFRlbCIgY2xhc3M9InNyLW9ubHkiPlTDqWzDqXBob25lPC9sYWJlbD4gPGlucHV0IGNsYXNzPSJwaG9uZSByZXF1aXJlZCIgdHlwZT0idGVsIiBpZD0icXVpY2tFbWFpbFRlbCIgbmFtZT0idGVsIiBwbGFjZWhvbGRlcj0iVMOpbMOpcGhvbmUiPiA8L2JveC1sYz4gPGJveC1sYz4gPGxhYmVsIGZvcj0icXVpY2tFbWFpbEFkZHIiIGNsYXNzPSJzci1vbmx5Ij5Db3VycmllbDwvbGFiZWw+IDxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9InF1aWNrRW1haWxBZGRyIiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IkNvdXJyaWVsIj4gPC9ib3gtbGM+IDxib3gtbGM+IDxsYWJlbCBmb3I9InF1aWNrRW1haWxEZXBhcnRtZW50IiBjbGFzcz0ic3Itb25seSI+U8OpbGVjdGlvbm5lcjwvbGFiZWw+IDxzZWxlY3QgaWQ9InF1aWNrRW1haWxEZXBhcnRtZW50Ij48b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkPlPDqWxlY3Rpb25uZXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJuZXciPlZlbnRlcyAtIE5ldWY8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2VkIj5WZW50ZXMgLSBPY2Nhc2lvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZpbmFuY2UiPkZpbmFuY2VtZW50PC9vcHRpb24+PC9zZWxlY3Q+IDwvYm94LWxjPiA8Ym94LWxjPiA8bGFiZWwgZm9yPSJxdWlja0VtYWlsTXNnIiBjbGFzcz0ic3Itb25seSI+TWVzc2FnZTwvbGFiZWw+IDx0ZXh0YXJlYSBpZD0icXVpY2tFbWFpbE1zZyIgcm93cz0iMyIgcGxhY2Vob2xkZXI9Ik1lc3NhZ2UiPjwvdGV4dGFyZWE+IDwvYm94LWxjPiA8L3N0YWNrLWxjPiA8c3RhY2stbGM+IDxib3gtbGM+IDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiBpZD0iTWlzc2luZ1ZhbGlkYXRpb25Nc2ciIGNsYXNzPSJlcnJvck1zZyI+IDxwPkNlcnRhaW5zIGNoYW1wcyBvYmxpZ2F0b2lyZXMgbidvbnQgcGFzIMOpdMOpIHJlbXBsaXM8L3A+IDwvZGl2PiA8L2JveC1sYz4gPGJveC1sYz4gPGJ1dHRvbiBjbGFzcz0ic2VuZFF1aWNrRW1haWwgLXJpZ2h0IGJ0bi1kZWZhdWx0ICI+RW52b3llcjwvYnV0dG9uPiA8L2JveC1sYz4gPC9zdGFjay1sYz4gPC9kaXY+IDwvZGl2PiA8ZGl2IGlkPSJtZW51Q29udGFjdFVzRGVmIiBzdHlsZT0iZGlzcGxheTpub25lIj4gPGRpdiBpZD0iZW1haWxTdWJqZWN0RGVmX21lbnVDb250YWN0VXMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3Q8L2Rpdj4gPGRpdiBpZD0iZW1haWxCb2R5RGVmX21lbnVDb250YWN0VXMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPkJvbmpvdXIsPGJyPjxicj5VbiBjbGllbnQgcG90ZW50aWVsIGF5YW50IHZpc2l0w6kgdm90cmUgc2l0ZSB3ZWIsIGEgcmVtcGxpIGxlIGZvcm11bGFpcmUgZGUgY29udGFjdCA6PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+IDo8YnI+Tm9tIDogPHN0cm9uZz57JE5BTUV9PC9zdHJvbmc+PGJyPkNvdXJyaWVsIDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD1tYWlsdG86JTdCJTI0RU1BSUwlN0QiPnskRU1BSUx9PC9hPjwvc3Ryb25nPiB7JFNQQU1NRVJfV0FSTklOR308YnI+VMOpbMOpcGhvbmUgOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPXRlbDolN0IlMjRFTUFJTFBIT05FJTdEIj57JEVNQUlMUEhPTkV9PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPlZpbGxlIDogPHN0cm9uZz57JEVNQUlMQ0lUWX08L3N0cm9uZz48YnI+PGJyPkRlcm5pZXIgdsOpaGljdWxlIHZ1ZTogPHN0cm9uZz57JExBU1RWRUhJQ0xFVklFV0VEfTwvc3Ryb25nPjxicj5EZXJuaWVyIHbDqWhpY3VsZSBjb25maWd1csOpOiA8c3Ryb25nPnskRU1BSUxCVUlMREFORFBSSUNFfTwvc3Ryb25nPjxicj48YnI+RMOpcGFydGVtZW50OiA8c3Ryb25nPnskREVQQVJUTUVOVDJ9PC9zdHJvbmc+PGJyPjxicj48dT5NZXNzYWdlIGR1IHZpc2l0ZXVyPC91PiA6PGJyPjxzdHJvbmc+eyRNRVNTQUdFfTwvc3Ryb25nPjxicj48YnI+PGRpdiBzdHlsZT0iIyNTRU9CTE9DS0RJU1BMQVkjIyI+U291cmNlIE3DqWRpYTogPHN0cm9uZz57JFVUTURFVEFJTFN9PC9zdHJvbmc+PGJyPk5hdmlnYXRldXI6IDxzdHJvbmc+eyRVU0VSQUdFTlR9IC0gPC9zdHJvbmc+PGJyPkhpc3RvcmlxdWUgZGUgbmF2aWdhdGlvbjogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD0lN0IlMjRVVUxJTkslN0QiIHJlbD0ibm9mb2xsb3cgdWdjIHNwb25zb3JlZCBub2luZGV4IiBzdHlsZT0iY29sb3I6YmxhY2s7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsiPkNsaXF1ZXogaWNpPC9hPjwvc3Ryb25nPjxicj48L2Rpdj5Db25zZW50ZW1lbnQ6wqA8c3Ryb25nPnskQ09OU0VOVF9ERVRBSUxTfTwvc3Ryb25nPnskUFVSQ0hBU0VfSU5URU5UfTwvZGl2PiA8L2Rpdj4gPC9mb3JtPiA8L2Rpdj4gPGRpdiBjbGFzcz0iYWRkcmVzcyI+IDx1bCBjbGFzcz0ic2xpbS1zdWJtZW51IC1tdDE1Ij48bGkgZGF0YS1pZD0iQ09OVEFDVFVTIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YTQ4ZSI+PGEgaHJlZj0iP3BhdGg9L2NvbnRhY3Rlem5vdXMuaHRtbCI+Tm91cyBqb2luZHJlPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI2Y2NlNTI5NC0xNmVlLTRlZTYtYmNhZi1iIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YTRhMiI+PGEgaHJlZj0iP3BhdGg9L2Jsb2d1ZS9pbmRleC5odG1sIj5CbG9ndWU8L2E+PC9saT4KPC91bD4KPC9kaXY+IDwvbGk+PC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IkZJTkFOQ0UiIGlkPSJNYWluTWVudV9GSU5BTkNFIiBjbGFzcz0idG9wIj48YSBjbGFzcz0idG9wX2xpbmsiIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9maW5hbmNlbWVudC5odG1sIj5GSU5BTkNFTUVOVDwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRCIgaWQ9Ik1haW5NZW51X1VTRUQiIGNsYXNzPSJ0b3AgaGFzSXRlbXMgc2xpbS1zdWJtZW51LTMgc2ltcGxpZmllZCI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlVTRUQiPlbDiUhJQ1VMRVMgw4lMRUNUUklRVUVTIEQnT0NDQVNJT048L2E+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRF9TRUFSQ0hFUyIgaWQ9Ik1haW5NZW51X1VTRURfU0VBUkNIRVMiIGNsYXNzPSJ0b3AgZmlyc3RNZW51IGxhc3RNZW51IGhhc0l0ZW1zIGlzQm9sZCI+PGEgY2xhc3M9InRvcF9saW5rIGlzQm9sZCBub3RDbGlja2FibGUiIG9uY2xpY2s9InJldHVybiBmYWxzZTsiIGhyZWY9Ij9wYXRoPSMiPkxpZW5zIFJhcGlkZXM8L2E+PHVsIGNsYXNzPSJzdWIgc2xpbS1zdWJtZW51LTMiPgo8bGkgZGF0YS1pZD0iVVNFRF9BTExJTlYiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiYTFjIiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiPkludmVudGFpcmUgQ29tcGxldCAoMTI0KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DRVJUSUZJRURfQ0FSUyIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGJhMjEiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9jZXJ0aWZpZXMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVVNFRF9DRVJUSUZJRURfQ0FSUyI+VsOpaGljdWxlcyBjZXJ0aWZpw6lzICgzMyk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfTE9XQyIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGJhMjQiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9mYWlibGUtY29uc29tbWF0aW9uLmh0bWwiPkZhaWJsZSBjb25zb21tYXRpb24gKDE1KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9MRVNTMzBLIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YmEyNiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL21vaW5zLWRlLTMwMDAwLmh0bWwiPk1vaW5zIGRlIDMwLDAwMCQgKDI2KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9MRVNTMjBLIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YmEyOSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL21vaW5zLWRlLTIwMDAwLmh0bWwiPk1vaW5zIGRlIDIwLDAwMCQgKDQpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBVF9DQVIiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiYTJjIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9BdXRvcy5odG1sIj5BdXRvcyAoMTYpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0NBVF9NSU5JVkFOIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YmEyZiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3R5cGUvTWluaV9mb3VyZ29ubmV0dGVzLmh0bWwiPk1pbmktZm91cmdvbm5ldHRlcyAoMyk8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FUX1NVViIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGJhMzEiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL1ZVUy5odG1sIj5WVVMgJmFtcDsgTXVsdGlzZWdtZW50cyAoMTA0KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfRUxFQ1RSSUMiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiYTM0Ij48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vdHlwZS9FbGVjdHJpcXVlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlVTRURfQ0FUX0VMRUNUUklDIj7DiWxlY3RyaXF1ZXMgKDc1KTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVVNFRF9DQVRfSFlCUklEIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YmEzNiI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3R5cGUvSHlicmlkZS5odG1sIj5IeWJyaWRlcyAoMTkpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX09USEVSIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YmEzOSIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlVTRURfT1RIRVIiPkF1dHJlcyBtb2TDqGxlczwvYT48L2xpPgo8L3VsPgo8L2xpPgo8L3VsPgo8L2xpPgo8bGkgZGF0YS1pZD0iTkVXIiBpZD0iTWFpbk1lbnVfTkVXIiBjbGFzcz0idG9wIGhhc0l0ZW1zIj48YSBjbGFzcz0idG9wX2xpbmsiIGhyZWY9Ij9wYXRoPS9uZXVmcy9ub3V2ZWF1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9Ik5FVyI+S0lBIMOJTEVDVFJJUVVFUyBORVVGUzwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJORVdfQlVJTERQUklDRSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI4MWUiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9jb25maWd1cmF0aW9uLWV0LXByaXgvY29uZmlndXJhdGlvbi5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVdfQlVJTERQUklDRSI+w4lxdWlwZXIgZXQgb2J0ZW5pciB1biBwcml4PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdJTlYiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiODJhIj48YSBocmVmPSJodHRwczovL3d3dy5mb3JjZWVsZWN0cmlxdWUuY29tL2ludmVudGFpcmUvYjNnMjMuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiIGRhdGEtbWVudS10cmFuc2xhdGU9Ik5FV0lOViI+SW52ZW50YWlyZSDDiWxlY3RyaXF1ZSBOZXVmICgyNDIpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfU0VEQU4iIGlkPSJNYWluTWVudV82OWFiYjI5MzRiODVkIiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvYXV0b3MuaHRtbCI+QXV0b3M8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU0VEQU5fS2lhIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0Yjg1YSIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjQyMzEzMzE0NjYiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiODM5IiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NTI0MCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1FVjQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRVY0IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9FVjQvMjAyNi9ULzQ4MzEyNy9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iRVY0IDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQxIDY3NSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUVWNC0yMDI2Lmh0bWwiPkVWNCAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI1NjYzMDQwMTkiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiODQ3IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYxNDAyIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUs0LTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Iks0IDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9LNC8yMDI1L1QvNDYzNjg1L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJLNCAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4yNiA3MjQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1LNC0yMDI1Lmh0bWwiPks0IDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE5ODg5Nzk0NjciIGlkPSJNYWluTWVudV82OWFiYjI5MzRiODRkIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1MzA0Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUs0LTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Iks0IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9LNC8yMDI2L1QvNDgzMjg4L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJLNCAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4yNiA0MjUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1LNC0yMDI2Lmh0bWwiPks0IDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjQxNTgzMTg5NjYiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiODUzIiBjbGFzcz0ibGFzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1MzA1Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUs0X0hhdGNoYmFjay0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQxNTgzMTg5NjYiPjxpbWcgYWx0PSJLNCDDoCBoYXlvbiAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvSzQgSGF0Y2hiYWNrLzIwMjYvVC80ODMyOTYvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9Iks0IMOgIGhheW9uIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjI2IDkyNSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUs0X0hhdGNoYmFjay0yMDI2Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjQxNTgzMTg5NjYiPks0IMOgIGhheW9uIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfU1VWIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0Yjk0YyIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL1ZVUy5odG1sIj5WVVM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU1VWX0tpYSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5NDciIGNsYXNzPSJmaXJzdEl0ZW0gbGFzdEl0ZW0gaGFzU3ViIGhhc0ltZyI+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSIxMTg2NDA5NDciIGlkPSJNYWluTWVudV82OWFiYjI5MzRiODY1IiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1NjY5MCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCBpbWdMaW5rIj48aW1nIGFsdD0iU29yZW50byBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvU29yZW50byBQbHVnX0luIEh5YnJpZC8yMDI1L1QvNDU3NjYwL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJTb3JlbnRvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUzIDU3NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNvcmVudG9fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaXRlbS13cmFwIj4gU29yZW50byBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMDkyOTQyMDAiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOGJhIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyNDA3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNvcmVudG9fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaXRlbS13cmFwIGltZ0xpbmsiPjxpbWcgYWx0PSJTb3JlbnRvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9Tb3JlbnRvIFBsdWdfSW4gSHlicmlkLzIwMjYvVC80Nzg3OTEvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNvcmVudG8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTEgMDI1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtU29yZW50b19QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAiPiBTb3JlbnRvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjQxMjk3NTkzNzAiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOGMyIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU5NjIxIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCBpbWdMaW5rIj48aW1nIGFsdD0iU3BvcnRhZ2UgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL1Nwb3J0YWdlIFBsdWdfSW4gSHlicmlkLzIwMjUvVC80NjE1OTIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNwb3J0YWdlIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUwIDU3NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCI+IFNwb3J0YWdlIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjEwNDQ2Mjg3MTUiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOGNiIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMDA3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlX1BsdWdfSW5fSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCBpbWdMaW5rIj48aW1nIGFsdD0iU3BvcnRhZ2UgaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL1Nwb3J0YWdlIFBsdWdfSW4gSHlicmlkLzIwMjYvVC80NzY5NjkvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNwb3J0YWdlIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ4IDc3NSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlX1BsdWdfSW5fSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCI+IFNwb3J0YWdlIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI2ODA0MzE4MjUiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOGQ0IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9Ijc1MjE0Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUVWNS0yMDI3Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFVjUgMjAyNyIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL0VWNS8yMDI3L1QvNDgzMDE5L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJFVjUgMjAyNyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDYgMTc1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtRVY1LTIwMjcuaHRtbCI+RVY1IDIwMjc8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI2MDM5ODI5OTciIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOGRjIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjY5MTAwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUVWNi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFVjYgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL0VWNi8yMDI1L1QvNDczMTY2L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJFVjYgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTIgMjc0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtRVY2LTIwMjUuaHRtbCI+RVY2IDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjMwMDA2NDg2MSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI4ZTEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAxMDgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtRVY5LTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVWOSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvRVY5LzIwMjUvVC80NjIyMDIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IkVWOSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MyAyNzQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1FVjktMjAyNS5odG1sIj5FVjkgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzMzMTI1MDk1IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjhlNiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2NzU5OSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1FVjktMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRVY5IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9FVjkvMjAyNi9ULzQ3MTI2Ny9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iRVY5IDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjYyIDY3NSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUVWOS0yMDI2Lmh0bWwiPkVWOSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxNzA3MDg2NjYzIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjhlYSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDE5NSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1OaXJvX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJOaXJvIEh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL05pcm8gSHlicmlkLzIwMjUvVC80NjIzOTcvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9Ik5pcm8gSHlicmlkZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zMyA2MjQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1OaXJvX0h5YnJpZC0yMDI1Lmh0bWwiPk5pcm8gSHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzODUwODM4MjAiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOGVmIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMjAwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik5pcm8gSHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvTmlybyBIeWJyaWQvMjAyNi9ULzQ3Nzc3NS9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iTmlybyBIeWJyaWRlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjMzIDA3NSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fSHlicmlkLTIwMjYuaHRtbCI+TmlybyBIeWJyaWRlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjQ3MDkxNjg3OCIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI4ZjMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAxMTIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJOaXJvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9OaXJvIFBsdWdfSW4gSHlicmlkLzIwMjUvVC80NjIyMjgvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9Ik5pcm8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzkgNjI0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiPk5pcm8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTgzNDg3Mzc3MyIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI4ZjkiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIyMDEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJOaXJvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9OaXJvIFBsdWdfSW4gSHlicmlkLzIwMjYvVC80Nzc3ODAvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9Ik5pcm8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzkgMDc1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiPk5pcm8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTU1MjcxMDQ1MSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI4ZmUiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAxMDUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE1NTI3MTA0NTEiPjxpbWcgYWx0PSJOaXJvIMOpbGVjdHJpcXVlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9OaXJvIEVWLzIwMjUvVC80NjIxODgvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9Ik5pcm8gw6lsZWN0cmlxdWUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDggNzI0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE1NTI3MTA0NTEiPk5pcm8gw6lsZWN0cmlxdWUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzI5MTgwOTA3NSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5MDMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIyMDIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMyOTE4MDkwNzUiPjxpbWcgYWx0PSJOaXJvIMOpbGVjdHJpcXVlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9OaXJvIEVWLzIwMjYvVC80Nzc3ODMvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9Ik5pcm8gw6lsZWN0cmlxdWUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDggMTI1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI2Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMyOTE4MDkwNzUiPk5pcm8gw6lsZWN0cmlxdWUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjAyNzY2MDQ0MyIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5MDgiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTcwOTMiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtU2VsdG9zLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlNlbHRvcyAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvU2VsdG9zLzIwMjUvVC80NTgzOTYvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNlbHRvcyAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4yOCA2MjQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TZWx0b3MtMjAyNS5odG1sIj5TZWx0b3MgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzExMTEzNTgwMiIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5MGQiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjk1MDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtU2VsdG9zLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlNlbHRvcyAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvU2VsdG9zLzIwMjYvVC80NzM1NjIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNlbHRvcyAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4yOCA0MjUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TZWx0b3MtMjAyNi5odG1sIj5TZWx0b3MgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTYzMTYzNTg3MCIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5MTEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAxMDYiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtU29yZW50by0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTb3JlbnRvIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9Tb3JlbnRvLzIwMjUvVC80NjIxOTIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNvcmVudG8gMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDEgOTI0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtU29yZW50by0yMDI1Lmh0bWwiPlNvcmVudG8gMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iOTEzOTM4ODY0IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjkxNiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1NjY4NiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTb3JlbnRvIGh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL1NvcmVudG8gSHlicmlkLzIwMjUvVC80NTc1NzIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNvcmVudG8gaHlicmlkZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40OCA1NzQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI1Lmh0bWwiPlNvcmVudG8gaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyOTMxODc3ODA4IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjkxYiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjQwOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTb3JlbnRvIGh5YnJpZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL1NvcmVudG8gSHlicmlkLzIwMjYvVC80Nzg3OTQvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNvcmVudG8gaHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NiAwMjUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI2Lmh0bWwiPlNvcmVudG8gaHlicmlkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI4Mjc4NTUzNTciIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTFmIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU2OTg5Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNvdWwtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU291bCAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvU291bC8yMDI1L1QvNDU4MDg0L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJTb3VsIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjI2IDAyNCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNvdWwtMjAyNS5odG1sIj5Tb3VsIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM3MTIxMDI5OTUiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTI0IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU5NjIwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlNwb3J0YWdlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9TcG9ydGFnZS8yMDI1L1QvNDYxNTg0L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJTcG9ydGFnZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zMyA2NzQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZS0yMDI1Lmh0bWwiPlNwb3J0YWdlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE1MDYxNTk3MDYiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTM0IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcwODk4Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlNwb3J0YWdlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9TcG9ydGFnZS8yMDI2L1QvNDc1MjYyL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJTcG9ydGFnZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zNCA2NzUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZS0yMDI2Lmh0bWwiPlNwb3J0YWdlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjEyMDc2NzA4NzUiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTM5IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU5NjE4Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTcG9ydGFnZSBoeWJyaWRlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9TcG9ydGFnZSBIeWJyaWQvMjAyNS9ULzQ2MTU0Mi9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iU3BvcnRhZ2UgaHlicmlkZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MSA3NzQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9IeWJyaWQtMjAyNS5odG1sIj5TcG9ydGFnZSBoeWJyaWRlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE4NDYwNzA0NjMiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTNlIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMDA2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTcG9ydGFnZSBoeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9TcG9ydGFnZSBIeWJyaWQvMjAyNi9ULzQ3Njk2Mi9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iU3BvcnRhZ2UgaHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MyA4NzUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9IeWJyaWQtMjAyNi5odG1sIj5TcG9ydGFnZSBoeWJyaWRlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIzMjUwMDc5MDIiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTQyIiBjbGFzcz0ibGFzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYxODk5Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVRlbGx1cmlkZS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJUZWxsdXJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL1RlbGx1cmlkZS8yMDI1L1QvNDY0MjY2L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJUZWxsdXJpZGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTMgOTI0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtVGVsbHVyaWRlLTIwMjUuaHRtbCI+VGVsbHVyaWRlIDIwMjU8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfUEhFViIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5N2QiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9QSEVWLmh0bWwiPkh5YnJpZGVzIHJlY2hhcmdlYWJsZXM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfUEhFVl9LaWEiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTdiIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMTE4NjQwOTQ3IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0Yjk1NiIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTY2OTAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtU29yZW50b19QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAgaW1nTGluayI+PGltZyBhbHQ9IlNvcmVudG8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL1NvcmVudG8gUGx1Z19JbiBIeWJyaWQvMjAyNS9ULzQ1NzY2MC9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iU29yZW50byBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41MyA1NzQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCI+IFNvcmVudG8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTA5Mjk0MjAwIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0Yjk1ZCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjQwNyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX1BsdWdfSW5fSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9Iml0ZW0td3JhcCBpbWdMaW5rIj48aW1nIGFsdD0iU29yZW50byBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvU29yZW50byBQbHVnX0luIEh5YnJpZC8yMDI2L1QvNDc4NzkxL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJTb3JlbnRvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUxIDAyNSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLVNvcmVudG9fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaXRlbS13cmFwIj4gU29yZW50byBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0MTI5NzU5MzcwIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0Yjk2NSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1OTYyMSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAgaW1nTGluayI+PGltZyBhbHQ9IlNwb3J0YWdlIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9TcG9ydGFnZSBQbHVnX0luIEh5YnJpZC8yMDI1L1QvNDYxNTkyL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJTcG9ydGFnZSBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41MCA1NzQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAiPiBTcG9ydGFnZSBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMDQ0NjI4NzE1IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0Yjk2YiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjAwNyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAgaW1nTGluayI+PGltZyBhbHQ9IlNwb3J0YWdlIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9TcG9ydGFnZSBQbHVnX0luIEh5YnJpZC8yMDI2L1QvNDc2OTY5L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJTcG9ydGFnZSBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40OCA3NzUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpdGVtLXdyYXAiPiBTcG9ydGFnZSBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0NzA5MTY4NzgiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTcxIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYwMTEyIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTmlybyBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvTmlybyBQbHVnX0luIEh5YnJpZC8yMDI1L1QvNDYyMjI4L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJOaXJvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM5IDYyNCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIj5OaXJvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE4MzQ4NzM3NzMiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTc2IiBjbGFzcz0ibGFzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcyMjAxIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTmlybyBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvTmlybyBQbHVnX0luIEh5YnJpZC8yMDI2L1QvNDc3NzgwL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJOaXJvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM5IDA3NSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIj5OaXJvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfSFlCUklEIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjliNCIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5YnJpZGVzLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9Ik5FV19IWUJSSUQiPkh5YnJpZGVzPC9hPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iTkVXX0hZQlJJRF9LaWEiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOWIzIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMTY1ODE4NjY4NSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5ODYiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU2OTk2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUNhcm5pdmFsX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDYXJuaXZhbCBoeWJyaWRlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9DYXJuaXZhbCBIeWJyaWQvMjAyNS9ULzQ1ODE3MC9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iQ2Fybml2YWwgaHlicmlkZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40OSA1MjQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1DYXJuaXZhbF9IeWJyaWQtMjAyNS5odG1sIj5DYXJuaXZhbCBoeWJyaWRlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjEyNjA4MzA1NTMiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOThlIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcwMTA4Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUNhcm5pdmFsX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDYXJuaXZhbCBoeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9DYXJuaXZhbCBIeWJyaWQvMjAyNi9ULzQ3NDE5Mi9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iQ2Fybml2YWwgaHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41MCA3NzUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1DYXJuaXZhbF9IeWJyaWQtMjAyNi5odG1sIj5DYXJuaXZhbCBoeWJyaWRlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE3MDcwODY2NjMiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOTk0IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYwMTk1Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9Ik5pcm8gSHlicmlkZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvTmlybyBIeWJyaWQvMjAyNS9ULzQ2MjM5Ny9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iTmlybyBIeWJyaWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjMzIDYyNCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fSHlicmlkLTIwMjUuaHRtbCI+TmlybyBIeWJyaWRlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM4NTA4MzgyMCIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5OWIiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIyMDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTmlybyBIeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9OaXJvIEh5YnJpZC8yMDI2L1QvNDc3Nzc1L1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJOaXJvIEh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzMgMDc1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19IeWJyaWQtMjAyNi5odG1sIj5OaXJvIEh5YnJpZGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iOTEzOTM4ODY0IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjlhMCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1NjY4NiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTb3JlbnRvIGh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL1NvcmVudG8gSHlicmlkLzIwMjUvVC80NTc1NzIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNvcmVudG8gaHlicmlkZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40OCA1NzQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI1Lmh0bWwiPlNvcmVudG8gaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyOTMxODc3ODA4IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjlhNSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjQwOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTb3JlbnRvIGh5YnJpZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL1NvcmVudG8gSHlicmlkLzIwMjYvVC80Nzg3OTQvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNvcmVudG8gaHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NiAwMjUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI2Lmh0bWwiPlNvcmVudG8gaHlicmlkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMjA3NjcwODc1IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjlhYSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1OTYxOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU3BvcnRhZ2UgaHlicmlkZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvU3BvcnRhZ2UgSHlicmlkLzIwMjUvVC80NjE1NDIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNwb3J0YWdlIGh5YnJpZGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDEgNzc0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtU3BvcnRhZ2VfSHlicmlkLTIwMjUuaHRtbCI+U3BvcnRhZ2UgaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxODQ2MDcwNDYzIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjlhZSIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MjAwNiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU3BvcnRhZ2UgaHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvU3BvcnRhZ2UgSHlicmlkLzIwMjYvVC80NzY5NjIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IlNwb3J0YWdlIGh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDMgODc1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtU3BvcnRhZ2VfSHlicmlkLTIwMjYuaHRtbCI+U3BvcnRhZ2UgaHlicmlkZSAyMDI2PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iTkVXX0VMRUNUUklDIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjlkZiIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL2VsZWN0cmlxdWUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iTkVXX0VMRUNUUklDIj7DiWxlY3RyaXF1ZXM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfRUxFQ1RSSUNfS2lhIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjlkZCIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjQyMzEzMzE0NjYiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOWJmIiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NTI0MCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1FVjQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRVY0IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9FVjQvMjAyNi9ULzQ4MzEyNy9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iRVY0IDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQxIDY3NSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUVWNC0yMDI2Lmh0bWwiPkVWNCAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNjgwNDMxODI1IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjljMyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3NTIxNCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1FVjUtMjAyNy5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRVY1IDIwMjciIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9FVjUvMjAyNy9ULzQ4MzAxOS9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iRVY1IDIwMjciIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ2IDE3NSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUVWNS0yMDI3Lmh0bWwiPkVWNSAyMDI3PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNjAzOTgyOTk3IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjljOCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2OTEwMCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1FVjYtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRVY2IDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9FVjYvMjAyNS9ULzQ3MzE2Ni9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iRVY2IDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUyIDI3NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUVWNi0yMDI1Lmh0bWwiPkVWNiAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMDAwNjQ4NjEiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOWNiIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYwMTA4Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUVWOS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFVjkgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvS2lhL0VWOS8yMDI1L1QvNDYyMjAyL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJFVjkgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjMgMjc0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtRVY5LTIwMjUuaHRtbCI+RVY5IDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjczMzEyNTA5NSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5ZDAiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjc1OTkiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtRVY5LTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVWOSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvRVY5LzIwMjYvVC80NzEyNjcvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IkVWOSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MiA2NzUgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1FVjktMjAyNi5odG1sIj5FVjkgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTU1MjcxMDQ1MSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5ZDQiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAxMDUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE1NTI3MTA0NTEiPjxpbWcgYWx0PSJOaXJvIMOpbGVjdHJpcXVlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9OaXJvIEVWLzIwMjUvVC80NjIxODgvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9Ik5pcm8gw6lsZWN0cmlxdWUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDggNzI0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjE1NTI3MTA0NTEiPk5pcm8gw6lsZWN0cmlxdWUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMzI5MTgwOTA3NSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5ZDgiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzIyMDIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMyOTE4MDkwNzUiPjxpbWcgYWx0PSJOaXJvIMOpbGVjdHJpcXVlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9OaXJvIEVWLzIwMjYvVC80Nzc3ODMvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9Ik5pcm8gw6lsZWN0cmlxdWUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDggMTI1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI2Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMyOTE4MDkwNzUiPk5pcm8gw6lsZWN0cmlxdWUgMjAyNjwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19NSU5JVkFOIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YmEwMCIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL21pbmlfZm91cmdvbm5ldHRlcy5odG1sIj5NaW5pLWZvdXJnb25uZXR0ZXM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfTUlOSVZBTl9LaWEiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiOWZlIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMjE3Mzg4MTY1MyIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGI5ZTYiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU4Nzk2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvS2lhLUNhcm5pdmFsLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkNhcm5pdmFsIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0tpYS9DYXJuaXZhbC8yMDI1L1QvNDYwNTgzL1doaXRlL3Byb2ZpbGUucG5nP2NiPTY5YWJiMjgwNDRiMDAiIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9raWFfYy5wbmciIHRpdGxlPSJDYXJuaXZhbCAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MyA0NzQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1DYXJuaXZhbC0yMDI1Lmh0bWwiPkNhcm5pdmFsIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ijg1MzgxOTQ4IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjllYyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MDI5OSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1DYXJuaXZhbC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJDYXJuaXZhbCAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvQ2Fybml2YWwvMjAyNi9ULzQ3NDQ3Mi9XaGl0ZS9wcm9maWxlLnBuZz9jYj02OWFiYjI4MDQ0YjAwIiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMva2lhX2MucG5nIiB0aXRsZT0iQ2Fybml2YWwgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDQgODI1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtQ2Fybml2YWwtMjAyNi5odG1sIj5DYXJuaXZhbCAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxNjU4MTg2Njg1IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjlmMSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1Njk5NiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1DYXJuaXZhbF9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ2Fybml2YWwgaHlicmlkZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvQ2Fybml2YWwgSHlicmlkLzIwMjUvVC80NTgxNzAvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IkNhcm5pdmFsIGh5YnJpZGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDkgNTI0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtQ2Fybml2YWxfSHlicmlkLTIwMjUuaHRtbCI+Q2Fybml2YWwgaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMjYwODMwNTUzIiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YjlmNyIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MDEwOCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0tpYS1DYXJuaXZhbF9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iQ2Fybml2YWwgaHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9LaWEvQ2Fybml2YWwgSHlicmlkLzIwMjYvVC80NzQxOTIvV2hpdGUvcHJvZmlsZS5wbmc\/Y2I9NjlhYmIyODA0NGIwMCIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2tpYV9jLnBuZyIgdGl0bGU9IkNhcm5pdmFsIGh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTAgNzc1ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9LaWEtQ2Fybml2YWxfSHlicmlkLTIwMjYuaHRtbCI+Q2Fybml2YWwgaHlicmlkZSAyMDI2PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iTkVXX0xPV0MiIGlkPSJNYWluTWVudV82OWFiYjI5MzRiYTA1Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvZmFpYmxlLWNvbnNvbW1hdGlvbi5odG1sIj5GYWlibGUgY29uc29tbWF0aW9uPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJCcm9jaHVyZSIgaWQ9Ik1haW5NZW51XzY5YWJiMjkzNGJhMDgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9kZW1hbmRlcy9icm9jaHVyZXMuaHRtbCI+QnJvY2h1cmVzPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJjOWNlYjEyNS1jNzIwLTYzMy1kMGM0LTU2IiBpZD0iTWFpbk1lbnVfNjlhYmIyOTM0YmEwYiIgY2xhc3M9Imxhc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vdmVoaWN1bGVzLWVsZWN0cmlxdWVzLW5ldWZzLmh0bWwiPkludmVudGFpcmU8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IkhPTUUiIGlkPSJNYWluTWVudV9IT01FIiBjbGFzcz0idG9wIGZpcnN0TWVudSI+PGEgY2xhc3M9InRvcF9saW5rIGlzSW1hZ2UiIHRpdGxlPSJBQ0NVRUlMIiBhcmlhLWxhYmVsPSJBQ0NVRUlMIiBocmVmPSI\/cGF0aD0vIj48ZW0gY2xhc3M9ImZhIGZhLWhvbWUiIHN0eWxlPSJmb250LXNpemU6IDEuM2VtOyI+PC9lbT48L2E+PC9saT4KCgkJCQkJCTwvdWw+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImNsciI+PC9kaXY+CgkJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wcmVmZXJlciIgbmFtZT0idG9wcmVmZXJlciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wc2l0ZWlkIiBuYW1lPSJ0b3BzaXRlaWQiIHZhbHVlPSIxMTQ3Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BjYXJpZCIgbmFtZT0idG9wY2FyaWQiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGNhcmlkTXVsdGlzdGVwRm9ybSIgbmFtZT0idG9wY2FyaWRNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJlTW9kZWwiIG5hbWU9ImVNb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic3R5bGVpZCIgbmFtZT0iIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtYWtlIiBuYW1lPSJwb3B1cG1ha2UiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbWFrZU11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwbWFrZU11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbW9kZWwiIG5hbWU9InBvcHVwbW9kZWwiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB5ZWFyIiBuYW1lPSJwb3B1cHllYXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVweWVhck11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVweWVhck11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwdHJpbSIgbmFtZT0icG9wdXB0cmltIiB2YWx1ZT0ieyRQT1BVUFRSSU19Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHN0b2NrbnVtYmVyIiBuYW1lPSJwb3B1cHN0b2NrbnVtYmVyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRtYWtlIiBuYW1lPSJsYXN0dmlld2VkbWFrZSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZG1vZGVsIiBuYW1lPSJsYXN0dmlld2VkbW9kZWwiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWR5ZWFyIiBuYW1lPSJsYXN0dmlld2VkeWVhciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHRyaW0iIG5hbWU9Imxhc3R2aWV3ZWR0cmltIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2Vkc3RvY2tudW1iZXIiIG5hbWU9Imxhc3R2aWV3ZWRzdG9ja251bWJlciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wZGVwbG95bWVudHR5cGUiIG5hbWU9InRvcGRlcGxveW1lbnR0eXBlIiB2YWx1ZT0ibGl2ZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZUVtYWlsIiBuYW1lPSJzZXJ2aWNlRW1haWwiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VBZGZFbWFpbCIgbmFtZT0ic2VydmljZUFkZkVtYWlsIiB2YWx1ZT0iIj48dGV4dGFyZWEgaWQ9ImQyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIiB0aXRsZT0iTGluayBSdWxlcyIgY2xhc3M9ImhpZGRlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiMjTElOS1JVTEVTIyM8L3RleHRhcmVhPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIwIiBpZD0idHJhZGVJbkJhclN0aWNreUJvdHRvbSI+CjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCiAgICAgICAgICAgIDwvZGl2PiA8IS0tIHd1bGwgd2lkdGggLSAgY2xvc2UgbWFpbkRpdiBoZXJlIC0tPgogICAgICAgICAgICA8ZGl2IGlkPSJ0cmFkZUluQmFyIiBjbGFzcz0iYm94LWxjIiBzdHlsZT0iZGlzcGxheTpibG9jayI+CiAgICAgICAgICAgIDxkaXYgaWQ9InRyYWRlSW5CYXJXIiBjbGFzcz0iZmxleC1ib3ggZmxleC1lcXVhbCBhbGlnbi1jZW50ZXIiPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdFcgIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0QSI+CgoJCQkJPHNlbGVjdCBjbGFzcz0idHJhZGluU2VsZWN0IiBuYW1lPSJ0cmFkaW5NYWtlIiBpZD0idHJhZGluTWFrZSIgdGl0bGU9Ik1hcnF1ZSIgYXJpYS1sYWJlbD0iTWFycXVlIj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPk1vbiB2w6loaWN1bGU8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBY3VyYSI+QWN1cmE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJBbGZhIFJvbWVvIj5BbGZhIFJvbWVvPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQXVkaSI+QXVkaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJNVyI+Qk1XPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQnJpZ2h0RHJvcCI+QnJpZ2h0RHJvcDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJ1aWNrIj5CdWljazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNhZGlsbGFjIj5DYWRpbGxhYzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNoZXZyb2xldCI+Q2hldnJvbGV0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQ2hyeXNsZXIiPkNocnlzbGVyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRG9kZ2UiPkRvZGdlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRklBVCI+RklBVDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZvcmQiPkZvcmQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJHZW5lc2lzIj5HZW5lc2lzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR01DIj5HTUM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJIb25kYSI+SG9uZGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJIVU1NRVIiPkhVTU1FUjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ikh5dW5kYWkiPkh5dW5kYWk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJTkVPUyI+SU5FT1M8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJTkZJTklUSSI+SU5GSU5JVEk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJJc3V6dSI+SXN1enU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJKYWd1YXIiPkphZ3Vhcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkplZXAiPkplZXA8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJLaWEiPktpYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkxhbmQgUm92ZXIiPkxhbmQgUm92ZXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMZXh1cyI+TGV4dXM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMaW5jb2xuIj5MaW5jb2xuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTHVjaWQiPkx1Y2lkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTWFzZXJhdGkiPk1hc2VyYXRpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTWF6ZGEiPk1hemRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTWVyY2VkZXMtQmVueiI+TWVyY2VkZXMtQmVuejwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1lcmN1cnkiPk1lcmN1cnk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNSU5JIj5NSU5JPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTWl0c3ViaXNoaSI+TWl0c3ViaXNoaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik5pc3NhbiI+Tmlzc2FuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iT2xkc21vYmlsZSI+T2xkc21vYmlsZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBseW1vdXRoIj5QbHltb3V0aDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBvbGVzdGFyIj5Qb2xlc3Rhcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlBvbnRpYWMiPlBvbnRpYWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQb3JzY2hlIj5Qb3JzY2hlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUmFtIj5SYW08L29wdGlvbj48b3B0aW9uIHZhbHVlPSJSaXZpYW4iPlJpdmlhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNhYWIiPlNhYWI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTYXR1cm4iPlNhdHVybjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlNjaW9uIj5TY2lvbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNtYXJ0Ij5zbWFydDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlN1YmFydSI+U3ViYXJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU3V6dWtpIj5TdXp1a2k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUZXNsYSI+VGVzbGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJUb3lvdGEiPlRveW90YTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZpbkZhc3QiPlZpbkZhc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWb2xrc3dhZ2VuIj5Wb2xrc3dhZ2VuPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVm9sdm8iPlZvbHZvPC9vcHRpb24+CiAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RXICI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdEEiPgogICAgICAgICAgICAJPHNlbGVjdCBjbGFzcz0idHJhZGluU2VsZWN0IiBuYW1lPSJ0cmFkaW5ZZWFyIiBpZD0idHJhZGluWWVhciIgdGl0bGU9IkFubsOpZSIgYXJpYS1sYWJlbD0iQW5uw6llIj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPjwvb3B0aW9uPgogICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RXIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0QSI+CgoJCQkJPHNlbGVjdCBjbGFzcz0idHJhZGluU2VsZWN0IiBuYW1lPSJ0cmFkaW5Nb2RlbCIgaWQ9InRyYWRpbk1vZGVsIiB0aXRsZT0iTW9kw6hsZSIgYXJpYS1sYWJlbD0iTW9kw6hsZSI+CiAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdFciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RBIj4KICAgICAgICAgICAgCTxzZWxlY3QgY2xhc3M9InRyYWRpblNlbGVjdCIgbmFtZT0idHJhZGluVHJpbSIgaWQ9InRyYWRpblRyaW0iIHRpdGxlPSJWZXJzaW9uIiBhcmlhLWxhYmVsPSJWZXJzaW9uIj4KICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idHJhZGVJbkJhcl9idG4gZmxleC1ib3ggYWxpZ24tY2VudGVyIiBvbmNsaWNrPSJnYVRyYWNrKCdjLl90cmFja0V2ZW50JywgJ0NsaXF1ZXMgQmFycmUgc291cyBsZSBtZW51JywgJ8OJdmFsdWV6IG1vbiDDqWNoYW5nZSEnLCAnTmV1ZicsIDEpOyI+CgoJCQkKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmYSBmYS1zZWFyY2ggLWJsb2NrIC1sZWZ0IC1tbDEwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iLWJsb2NrIC1sZWZ0IC13MTQwIj4gIMOJdmFsdWV6IG1vbiDDqWNoYW5nZSE8L2Rpdj4KICAgICAgICAgICAgPC9idXR0b24+PC9kaXY+PC9kaXY+CQkKCQk8ZGl2IGlkPSJUcmFkZUluQmFyUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBzdHlsZT0id2lkdGg6NjAwcHg7aGVpZ2h0OjYxMHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX3RyYWRlaW5iYXJwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjoxNTI3NjlhMGUwYzlkYjNkN2U3YTg0ZWRiNDE4ZGUwZCAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV9UcmFkZUluQmFyUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5Gb3JjZSDDiWxlY3RyaXF1ZSB2b3VzIHJlbWVyY2llIGQnYXZvaXIgY29tbXVuaXF1w6kgdm90cmUgZGVtYW5kZS4gVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHNvdXMgcGV1LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpIHBvdXIgdm90cmUgZGVtYW5kZS4gVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9UcmFkZUluQmFyUG9wdXBDb250YWluZXIiIGNsYXNzPSJjb25maXJtX2h0bWwiIHRhcmdldD0iaWZyYW1lIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFiZWwiIGNsYXNzPSJsYWJlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbiIgY2xhc3M9ImxhYmVsc2VjdGlvbiIgdmFsdWU9Ik9jY2FzaW9uIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgY2xhc3M9InllYXJlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWRkMmNtZWRpYSIgdmFsdWU9IiI+CgkJCQkJCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2NvbmlkIiB2YWx1ZT0iNDEwODc4NDgwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNsYWJlbGlkIiB2YWx1ZT0iTVd1YUNPWEw2dmdCRUpDRTlzTUIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nY29uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nYWN0aW9uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nZG9tYWluaWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsQWR2IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsUGl4IiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29rQ29uSWQiIHZhbHVlPSIxNTM3NjAwMzY1NzEzODAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0iZm9yY2VlbGVjdHJpcXVlLmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9UcmFkZUluQmFyUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1PC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OmUyNWQ2Y2ZhYjM5MjdkNzhkOWUyZjVhMmUzNDc2MDE2IC0tPgoJCQoNPCEtLSBUUkFERSBJTiBCQVIgTkVXQ0FSUyAtLT4KDQo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKCQkJCQoJCQk8L2hlYWRlcj4KCQk8IS0tIE9QRU4gTUFJTkJPWExBWUVSIC0tPgoJCTxkaXYgY2xhc3M9Ik1haW5Cb3hMYXllciI+CgkJCQkJCTwhLS0gT1BFTiBMRUZUQk9YTEFZRVIgLS0+CgkJCTxkaXYgaWQ9Im5ld2NhckNvbnRhaW5lciIgY2xhc3M9ImxlZnRfYm94IExlZnRCb3hMYXllciI+CgkJCQk8IS0tIE9QRU4gSElTVE9SWSAtLT4KCQkJCTxkaXYgaWQ9Imhpc3RvcnlEaXYiIGNsYXNzPSJPdXRlckJveExheWVyIj4KCQkJCQk8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIj4KCQkJCQkJCTwhLS0gT1BFTiBCUkVBRENSVU1CIC0tPgoKCTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+Cgl7CgkJIkBjb250ZXh0IjogImh0dHBzOi8vc2NoZW1hLm9yZyIsCgkJIkB0eXBlIjogIkJyZWFkY3J1bWJMaXN0IiwKCQkiaXRlbUxpc3RFbGVtZW50IjogW3siQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjoxLCJpdGVtIjp7IkBpZCI6Imh0dHBzOlwvXC9mb3JjZWVsZWN0cmlxdWUuY29tXC8iLCJuYW1lIjoiQWNjdWVpbCJ9fSx7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MiwiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvZm9yY2VlbGVjdHJpcXVlLmNvbVwvbmV1ZnNcL25vdXZlYXUuaHRtbCIsIm5hbWUiOiJWXHUwMGU5aGljdWxlcyBuZXVmcyJ9fSx7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MywiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvS2lhIiwibmFtZSI6IktpYSJ9fV0KCX0KCTwvc2NyaXB0PgoKCTxkaXYgaWQ9ImJyZWFkY3J1bWJzIiBjbGFzcz0iQlJEQ1JNQl8xNTg3Ij4KCQkJPHNwYW4+CgkJPGEgaHJlZj0iP3BhdGg9LyI+QWNjdWVpbDwvYT4KCTwvc3Bhbj48c3BhbiBjbGFzcz0iLXBoIj7Cuzwvc3Bhbj4JPHNwYW4+CgkJPGEgaHJlZj0iP3BhdGg9L25ldWZzL25vdXZlYXUuaHRtbCI+VsOpaGljdWxlcyBuZXVmczwvYT4KCTwvc3Bhbj48c3BhbiBjbGFzcz0iLXBoIj7Cuzwvc3Bhbj4JPHNwYW4+CgkJPHNwYW4+S2lhPC9zcGFuPgoJPC9zcGFuPgoJPC9kaXY+CgoJPCEtLSBDTE9TRSBCUkVBRENSVU1CIC0tPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCQk8IS0tIENMT1NFIEhJU1RPUlkgLS0+CgkJCQk8IS0tIE9QRU4gSEVBREVSIElNQUdFIC0tPgoJCQkJCgoJCQkJPCEtLSBDTE9TRSBIRUFERVIgSU1BR0UgLS0+CgkJCQk8ZGl2IGlkPSJ1bmRlckJhbm5lciI+PC9kaXY+CgkJCQk8IS0tIE9QRU4gT1VURVJCT1hMQVlFUiAtLT4KCQkJCTxkaXYgY2xhc3M9Ik91dGVyQm94TGF5ZXIiPgoJCQkJCTxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPjxoMSBjbGFzcz0iZGVmYXVsdCBIMV8xNjk0ICI+PGRpdj48ZGl2PktpYSBuZXV2ZXMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHZlbmRyZcKgPC9kaXY+PGRpdj7DoCBRdcOpYmVjLCBwcsOocyBkZSBMw6l2aXMgZXQgRG9ubmFjb25hwqA8L2Rpdj48L2Rpdj48L2gxPjwvZGl2PjxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPgkgICAgICAgICAgICA8L2Rpdj4JPCEtLSBPUEVOIEZJTFRFUk1BSU5CT1ggKCcuX19MSU5FX18uJyktLT4KCTxkaXYgaWQ9ImZpbHRlck1haW5Cb3giIGNsYXNzPSJJbm5lckJveExheWVyIGJsYWNrLXRleHQiPgoJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyT3V0ZXJCb3giPgoJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkZpbHRlckJveFRpdGxlIj4KCQkJCQkJUmFmZmluZXogdm90cmUgcmVjaGVyY2hlIDoKCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjMiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5UeXBlIGRlIGNhcnJvc3NlcmllPC9kaXY+PHVsIGNsYXNzPSIiPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX2NhciIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJjYXIiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19jYXIiPkF1dG88L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfbWluaXZhbiIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJtaW5pdmFuIiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiBjYXRlZ29yeSIgZm9yPSJzaG93Q2xhc3NfbWluaXZhbiI+TWluaS1Gb3VyZ29ubmV0dGU8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3Nfc3V2IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9InN1diIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX3N1diI+VlVTPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPk1vdHJpY2l0w6k8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMSIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgZGF0YS1kcml2ZXRyYWluPSJGV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMSIgY2xhc3M9ImZpbHRlclNwYW4iPlRyYWN0aW9uIGF2YW50PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9ImZpbHRlckRyaXZlVHJhaW5DaGVjazIiIGNsYXNzPSJmaWx0ZXJDaGVjayBkcml2ZXRyYWluIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjIiIGRhdGEtZHJpdmV0cmFpbj0iUldEIiBjaGVja2VkPjxsYWJlbCBmb3I9ImZpbHRlckRyaXZlVHJhaW5DaGVjazIiIGNsYXNzPSJmaWx0ZXJTcGFuIj5Qcm9wdWxzaW9uIGFycmnDqHJlPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlR5cGUgZGUgY2FyYnVyYW50PC9kaXY+PHVsIGNsYXNzPSIiPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iZWxlY3RyaWMiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazMiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMyIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2szIiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCcOJbGVjdHJpcXVlCgkJPC9sYWJlbD4KCTwvbGk+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJnYXMiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazEiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2sxIiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUVzc2VuY2UKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9Imh5YnJpZCIgY2xhc3M9ImZpbHRlckNoZWNrIGZ1ZWx0eXBlIiBpZD0iZmlsdGVyRXNzZW5jZUNoZWNrNCIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI0IiBjaGVja2VkPgoJCTxsYWJlbCBmb3I9ImZpbHRlckVzc2VuY2VDaGVjazQiIGNsYXNzPSJmaWx0ZXJTcGFuIj4KCQkJSHlicmlkZQoJCTwvbGFiZWw+Cgk8L2xpPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0icGhldiIgY2xhc3M9ImZpbHRlckNoZWNrIGZ1ZWx0eXBlIiBpZD0iZmlsdGVyRXNzZW5jZUNoZWNrNSIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSI1IiBjaGVja2VkPgoJCTxsYWJlbCBmb3I9ImZpbHRlckVzc2VuY2VDaGVjazUiIGNsYXNzPSJmaWx0ZXJTcGFuIj4KCQkJSHlicmlkZSByZWNoYXJnZWFibGUKCQk8L2xhYmVsPgoJPC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjMiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5UcmllciBwYXI8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9Nb2RsZSIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9Im1vZGVsIiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiIgZm9yPSJyYWRpb01vZGxlIj5Nb2TDqGxlPGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9QcmljZSIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9InByaWNlIj48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4iIGZvcj0icmFkaW9QcmljZSI+UHJpeDwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb0NvbnNvIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0iY29uc28iPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiIgZm9yPSJyYWRpb0NvbnNvIj5MLzEwMGttPC9sYWJlbD48L2xpPjwvbGFiZWw+PC9saT48L3VsPjwvZGl2PgkJCQkJCgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCQkKCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZQcmljZVJhbmdlU2xpZGVyIiBpZD0icHJpY2VSYW5nZVNsaWRlckZpbHRlckNvbnRhaW5lciI+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyVGl0bGUiPgoJCQkJCQlGb3VyY2hldHRlIGRlIHByaXgKCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiByYW5nZS1zbGlkZXItcHJpY2VzIj4KCQkJCQkJPHNwYW4gY2xhc3M9InByaWNlLW1pbiBmb3JtYXQtcHJpY2UiPjwvc3Bhbj7CoMKgw6DCoMKgPHNwYW4gY2xhc3M9InByaWNlLW1heCBmb3JtYXQtcHJpY2UiPjwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW42Ij4KCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMSByYW5nZS1zbGlkZXItbGVmdCI+TWluPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjkgcmFuZ2Utc2xpZGVyIiBhdHRyLXByaWNlLW1pbj0iMjU0MjUiIGF0dHItcHJpY2UtbWF4PSI2MjM3NSI+PC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEgcmFuZ2Utc2xpZGVyLXJpZ2h0Ij5NYXg8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+Cgk8IS0tIENMT1NFIEZJTFRFUk1BSU5CT1ggKCcuX19MSU5FX18uJyktLT48IS0tIE9QRU4gQ0FURUdPUklFU0JPWFdSQVBQRVIgKDE5ODgpLS0+PGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciBkaXZDYXRlZ29yaWVzQm94V3JhcHBlciI+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA1MikgLS0+PGRpdiBpZD0iY2xhc3NjYXJfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5BdXRvcyBuZXV2ZXMgS2lhIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIFF1w6liZWMsIHByw6hzIGRlIEzDqXZpcyBldCBEb25uYWNvbmE8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2NhciI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfMSI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgSzQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1LNC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJLNCAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+SzQgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI2IDEyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjMgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MSA5MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyNiAxMjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICNmZjAwMDA7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjUgNjI1PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJLNCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjM2ODUsNDYzNjg2LDQ2MzY4Nyw0NjM2ODgsNDYzNjg5LDQ2NjM2MiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgSzQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1LNC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJLaWEgSzQgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvSzQvMjAyNS80NjM2ODUvV2hpdGUvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvSzQvMjAyNS80NjM2ODUvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2MzY4NSIsInRpdGxlIjoiS2lhIEs0IDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvS2lhLUs0LTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY2FyXzIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgSzQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1LNC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJLNCAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+SzQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI2IDQyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjQgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MSA5MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyNiA0MjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJLNCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMyODgsNDgzMjg5LDQ4MzI5MCw0ODMyOTQsNDgzMjkxLDQ4MzI5NSw0ODMyOTIsNDgzMjkzIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBLNCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUs0LTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBLNCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9LNC8yMDI2LzQ4MzI4OC9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9LNC8yMDI2LzQ4MzI4OC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDgzMjg4IiwidGl0bGUiOiJLaWEgSzQgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9LaWEtSzQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBLNCBIYXRjaGJhY2sgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1LNF9IYXRjaGJhY2stMjAyNi5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iSzQgw6AgaGF5b24gMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPks0IEhhdGNoYmFjayAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjYgOTI1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyNCA3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzI2IDkyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9Iks0IEhhdGNoYmFjayIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMyOTYsNDgzMjk3LDQ4MzI5OCw0ODMyOTksNDgzMzAwLDQ4MzMwMSw0ODMzMDIsNDgzMzAzIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBLNCBIYXRjaGJhY2sgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1LNF9IYXRjaGJhY2stMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIEs0IEhhdGNoYmFjayAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9LNF9IYXRjaGJhY2svMjAyNi80ODMyOTYvV2hpdGUvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvSzRfSGF0Y2hiYWNrLzIwMjYvNDgzMjk2L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0ODMyOTYiLCJ0aXRsZSI6IktpYSBLNCBIYXRjaGJhY2sgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9LaWEtSzRfSGF0Y2hiYWNrLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzc3V2X2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+VlVTIG5ldWZzIEtpYSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBRdcOpYmVjLCBwcsOocyBkZSBMw6l2aXMgZXQgRG9ubmFjb25hPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19zdXYiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgU291bCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVNvdWwtMjAyNS5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU291bCAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U291bCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjUgNDI1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyMyAxOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzI1IDQyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlNvdWwiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU4MDg0LDQ1ODA4NSw0NjYwNjIsNDU4MDg2LDQ2NjA2Myw0NTgwODcsNDY2MDY0LDQ1ODA4OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgU291bCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVNvdWwtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNvdWwgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvU291bC8yMDI1LzQ1ODA4NC9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9Tb3VsLzIwMjUvNDU4MDg0L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NTgwODQiLCJ0aXRsZSI6IktpYSBTb3VsIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvS2lhLVNvdWwtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBTZWx0b3MgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TZWx0b3MtMjAyNS5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU2VsdG9zIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TZWx0b3MgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI4IDAyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjUgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyOCAwMjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTZWx0b3MiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU4Mzk2LDQ1ODM5OCw0NTgzOTcsNDU4Mzk5LDQ1ODQwMCw0NTg0MDEsNDU4NDAyLDQ1ODQwMyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgU2VsdG9zIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtU2VsdG9zLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBTZWx0b3MgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvU2VsdG9zLzIwMjUvNDU4Mzk2L1doaXRlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL1NlbHRvcy8yMDI1LzQ1ODM5Ni9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDU4Mzk2IiwidGl0bGUiOiJLaWEgU2VsdG9zIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvS2lhLVNlbHRvcy0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIFNlbHRvcyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVNlbHRvcy0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTZWx0b3MgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNlbHRvcyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjggNDI1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyNiAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzI4IDQyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlNlbHRvcyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0NzM1NjIsNDczNTY0LDQ3MzU2Myw0NzM1NjUsNDczNTY2LDQ3MzU2Nyw0NzM1NjgsNDczNTY5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBTZWx0b3MgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TZWx0b3MtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNlbHRvcyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9TZWx0b3MvMjAyNi80NzM1NjIvV2hpdGUvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvU2VsdG9zLzIwMjYvNDczNTYyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NzM1NjIiLCJ0aXRsZSI6IktpYSBTZWx0b3MgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9LaWEtU2VsdG9zLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzQiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgU3BvcnRhZ2UgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTcG9ydGFnZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3BvcnRhZ2UgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMzIDA3NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzAgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMyAwNzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTcG9ydGFnZSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjE1ODQsNDYxNTg1LDQ2MTU4Niw0Njc3NzAsNDYxNTg3LDQ2MTU4OCw0NjE1ODksNDYxNTkwLDQ2MTU5MSw0Njc3NzEsNDY3NzcyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBTcG9ydGFnZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBTcG9ydGFnZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9TcG9ydGFnZS8yMDI1LzQ2MTU4NC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDYxNTg0IiwidGl0bGUiOiJLaWEgU3BvcnRhZ2UgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9LaWEtU3BvcnRhZ2UtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBTcG9ydGFnZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVNwb3J0YWdlLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlNwb3J0YWdlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TcG9ydGFnZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzQgNjc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM0IDY3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlNwb3J0YWdlIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3NTI2Miw0NzUyNjMsNDc1MjY0LDQ3NTI2NSw0NzUyNjYsNDc1MjY3LDQ3NTI2OCw0NzUyNjkiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iS2lhIFNwb3J0YWdlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtU3BvcnRhZ2UtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNwb3J0YWdlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL1Nwb3J0YWdlLzIwMjYvNDc1MjYyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NzUyNjIiLCJ0aXRsZSI6IktpYSBTcG9ydGFnZSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1TcG9ydGFnZS0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl82Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIFNvcmVudG8gMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlNvcmVudG8gMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNvcmVudG8gMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQxIDMyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzggOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MSAzMjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTb3JlbnRvIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MjE5Miw0NjIxOTMsNDYyMTk0LDQ2MjE5NSw0NjIxOTYsNDYyMTk3LDQ2MjE5OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgU29yZW50byAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVNvcmVudG8tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNvcmVudG8gMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvU29yZW50by8yMDI1LzQ2MjE5Mi9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDYyMTkyIiwidGl0bGUiOiJLaWEgU29yZW50byAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1Tb3JlbnRvLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzciPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgVGVsbHVyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtVGVsbHVyaWRlLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlRlbGx1cmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VGVsbHVyaWRlIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MyAzMjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUwIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTMgMzI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iVGVsbHVyaWRlIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NDI2Niw0NjQyNjcsNDY0MjY4LDQ2NDI2OSw0NjQyNzAsNDY0MjcxLDQ2NDI3Miw0NjQyNzMiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iS2lhIFRlbGx1cmlkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVRlbGx1cmlkZS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJLaWEgVGVsbHVyaWRlIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL1RlbGx1cmlkZS8yMDI1LzQ2NDI2Ni9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDY0MjY2IiwidGl0bGUiOiJLaWEgVGVsbHVyaWRlIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvS2lhLVRlbGx1cmlkZS0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc21pbml2YW5fY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5NaW5pLWZvdXJnb25uZXR0ZXMgbmV1dmVzIEtpYSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBRdcOpYmVjLCBwcsOocyBkZSBMw6l2aXMgZXQgRG9ubmFjb25hPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19taW5pdmFuIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X21pbml2YW5fMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBDYXJuaXZhbCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUNhcm5pdmFsLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IkNhcm5pdmFsIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DYXJuaXZhbCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDIgODc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MCA0OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQyIDg3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IkNhcm5pdmFsIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MDU4Myw0NjA1ODQsNDYwNTg1LDQ2MDU4Niw0NjA1ODcsNDY2MTk1LDQ2MDU4OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgQ2Fybml2YWwgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1DYXJuaXZhbC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJLaWEgQ2Fybml2YWwgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvQ2Fybml2YWwvMjAyNS80NjA1ODMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2MDU4MyIsInRpdGxlIjoiS2lhIENhcm5pdmFsIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvS2lhLUNhcm5pdmFsLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfbWluaXZhbl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIENhcm5pdmFsIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtQ2Fybml2YWwtMjAyNi5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iQ2Fybml2YWwgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkNhcm5pdmFsIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NCA4MjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQyIDQ0NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMTUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDQgODI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iQ2Fybml2YWwiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc0NDcyLDQ3NDQ3Myw0NzQ0NzQsNDc0NDc1LDQ3NDQ3Niw0NzQ0NzciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iS2lhIENhcm5pdmFsIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtQ2Fybml2YWwtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIENhcm5pdmFsIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL0Nhcm5pdmFsLzIwMjYvNDc0NDcyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NzQ0NzIiLCJ0aXRsZSI6IktpYSBDYXJuaXZhbCAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1DYXJuaXZhbC0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc2h5YnJpZF9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkh5YnJpZGVzIG5ldXZlcyBLaWEgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgUXXDqWJlYywgcHLDqHMgZGUgTMOpdmlzIGV0IERvbm5hY29uYTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfaHlicmlkIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF8xIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBOaXJvIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fSHlicmlkLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9Ik5pcm8gSHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TmlybyBIeWJyaWQgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMzIDAyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzAgNzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAwMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMyAwMjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICNmZjAwMDA7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzIgNTI1PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJOaXJvIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjIzOTcsNDYyMzk4LDQ2MjM5OSw0NjI0MDAsNDYyNDAxIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBOaXJvIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fSHlicmlkLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBOaXJvIEh5YnJpZCAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9OaXJvX0h5YnJpZC8yMDI1LzQ2MjM5Ny9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDYyMzk3IiwidGl0bGUiOiJLaWEgTmlybyBIeWJyaWQgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9LaWEtTmlyb19IeWJyaWQtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBOaXJvIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fSHlicmlkLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9Ik5pcm8gSHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TmlybyBIeWJyaWQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMzIDA3NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzAgODQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAwMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMyAwNzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJOaXJvIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzc3NzUsNDc3Nzc2LDQ3Nzc3Nyw0Nzc3NzgsNDc3Nzc5IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBOaXJvIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBOaXJvIEh5YnJpZCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9OaXJvX0h5YnJpZC8yMDI2LzQ3Nzc3NS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDc3Nzc1IiwidGl0bGUiOiJLaWEgTmlybyBIeWJyaWQgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9LaWEtTmlyb19IeWJyaWQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBTcG9ydGFnZSBIeWJyaWQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU3BvcnRhZ2UgaHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3BvcnRhZ2UgSHlicmlkIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MSAxNzU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM4IDc5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMTUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgMTc1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU3BvcnRhZ2UgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTU0Miw0NjE1NDMsNDYxNTQ0IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBTcG9ydGFnZSBIeWJyaWQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9IeWJyaWQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNwb3J0YWdlIEh5YnJpZCAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9TcG9ydGFnZV9IeWJyaWQvMjAyNS80NjE1NDIvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2MTU0MiIsInRpdGxlIjoiS2lhIFNwb3J0YWdlIEh5YnJpZCAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1TcG9ydGFnZV9IeWJyaWQtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBTcG9ydGFnZSBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU3BvcnRhZ2UgaHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3BvcnRhZ2UgSHlicmlkIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MyA4NzU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDQ5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMTUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDMgODc1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU3BvcnRhZ2UgSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3Njk2Miw0NzY5NjUsNDc2OTYzLDQ3Njk2NCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgU3BvcnRhZ2UgSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtU3BvcnRhZ2VfSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBTcG9ydGFnZSBIeWJyaWQgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvU3BvcnRhZ2VfSHlicmlkLzIwMjYvNDc2OTYyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NzY5NjIiLCJ0aXRsZSI6IktpYSBTcG9ydGFnZSBIeWJyaWQgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9LaWEtU3BvcnRhZ2VfSHlicmlkLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzUiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgU29yZW50byBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTb3JlbnRvIGh5YnJpZGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNvcmVudG8gSHlicmlkIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NiAwMjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQzIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgMDI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU29yZW50byBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4Nzk0LDQ3ODc5Miw0Nzg3OTMiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iS2lhIFNvcmVudG8gSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtU29yZW50b19IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNvcmVudG8gSHlicmlkIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL1NvcmVudG9fSHlicmlkLzIwMjYvNDc4Nzk0L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Nzg3OTQiLCJ0aXRsZSI6IktpYSBTb3JlbnRvIEh5YnJpZCAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF82Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIFNvcmVudG8gSHlicmlkIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtU29yZW50b19IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU29yZW50byBoeWJyaWRlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Tb3JlbnRvIEh5YnJpZCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDcgOTc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NSA2NDUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ3IDk3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlNvcmVudG8gSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ1NzU3Miw0NTc1NzMiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iS2lhIFNvcmVudG8gSHlicmlkIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtU29yZW50b19IeWJyaWQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNvcmVudG8gSHlicmlkIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL1NvcmVudG9fSHlicmlkLzIwMjUvNDU3NTcyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NTc1NzIiLCJ0aXRsZSI6IktpYSBTb3JlbnRvIEh5YnJpZCAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1Tb3JlbnRvX0h5YnJpZC0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF83Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIENhcm5pdmFsIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUNhcm5pdmFsX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJDYXJuaXZhbCBoeWJyaWRlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DYXJuaXZhbCBIeWJyaWQgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ4IDkyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgNTQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OCA5MjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJDYXJuaXZhbCBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU4MTcwLDQ1ODE3MSw0NTgxNzIiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iS2lhIENhcm5pdmFsIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUNhcm5pdmFsX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJLaWEgQ2Fybml2YWwgSHlicmlkIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL0Nhcm5pdmFsX0h5YnJpZC8yMDI1LzQ1ODE3MC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDU4MTcwIiwidGl0bGUiOiJLaWEgQ2Fybml2YWwgSHlicmlkIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvS2lhLUNhcm5pdmFsX0h5YnJpZC0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF84Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIENhcm5pdmFsIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUNhcm5pdmFsX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJDYXJuaXZhbCBoeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5DYXJuaXZhbCBIeWJyaWQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwIDc3NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDggMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MCA3NzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJDYXJuaXZhbCBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc0MTkyLDQ3NDE5Myw0NzQxOTUsNDc0MTk0IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBDYXJuaXZhbCBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1DYXJuaXZhbF9IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIENhcm5pdmFsIEh5YnJpZCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9DYXJuaXZhbF9IeWJyaWQvMjAyNi80NzQxOTIvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3NDE5MiIsInRpdGxlIjoiS2lhIENhcm5pdmFsIEh5YnJpZCAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1DYXJuaXZhbF9IeWJyaWQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNjApLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA1MikgLS0+PGRpdiBpZD0iY2xhc3NwaGV2X2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+SHlicmlkZXMgcmVjaGFyZ2VhYmxlIG5ldWZzIEtpYSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBRdcOpYmVjLCBwcsOocyBkZSBMw6l2aXMgZXQgRG9ubmFjb25hPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19waGV2Ij4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3BoZXZfMSI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xIDUwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBOaXJvIFBsdWctSW4gSHlicmlkIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtTmlyb19QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJOaXJvIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5OaXJvIFBsdWctSW4gSHlicmlkIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOSAwMjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM2IDc5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzkgMDI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjZmYwMDAwOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM4IDAyNTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iTmlybyBQbHVnLUluIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjIyMjgsNDYyMjI3LDQ2MjIyOSIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgTmlybyBQbHVnLUluIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIE5pcm8gUGx1Zy1JbiBIeWJyaWQgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvTmlyb19QbHVnX0luX0h5YnJpZC8yMDI1LzQ2MjIyOC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDYyMjI4IiwidGl0bGUiOiJLaWEgTmlybyBQbHVnLUluIEh5YnJpZCAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1OaXJvX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfcGhldl8yIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIE5pcm8gUGx1Zy1JbiBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1OaXJvX1BsdWdfSW5fSHlicmlkLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9Ik5pcm8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk5pcm8gUGx1Zy1JbiBIeWJyaWQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM5IDA3NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzYgODQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAwMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOSAwNzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICNmZjAwMDA7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzggNTc1PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJOaXJvIFBsdWctSW4gSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3Nzc4MCw0Nzc3ODEsNDc3NzgyIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBOaXJvIFBsdWctSW4gSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtTmlyb19QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJLaWEgTmlybyBQbHVnLUluIEh5YnJpZCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9OaXJvX1BsdWdfSW5fSHlicmlkLzIwMjYvNDc3NzgwL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Nzc3ODAiLCJ0aXRsZSI6IktpYSBOaXJvIFBsdWctSW4gSHlicmlkIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvS2lhLU5pcm9fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9waGV2XzMiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MSAwMDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgU3BvcnRhZ2UgUGx1Zy1JbiBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTcG9ydGFnZSBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3BvcnRhZ2UgUGx1Zy1JbiBIeWJyaWQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ4IDc3NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OCA3NzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTcG9ydGFnZSBQbHVnLUluIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0NzY5NjksNDc2OTY2LDQ3Njk2Nyw0NzY5NjgiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iS2lhIFNwb3J0YWdlIFBsdWctSW4gSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtU3BvcnRhZ2VfUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNwb3J0YWdlIFBsdWctSW4gSHlicmlkIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL1Nwb3J0YWdlX1BsdWdfSW5fSHlicmlkLzIwMjYvNDc2OTY5L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NzY5NjkiLCJ0aXRsZSI6IktpYSBTcG9ydGFnZSBQbHVnLUluIEh5YnJpZCAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1TcG9ydGFnZV9QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3BoZXZfNCI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgU3BvcnRhZ2UgUGx1Zy1JbiBIeWJyaWQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTcG9ydGFnZSBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3BvcnRhZ2UgUGx1Zy1JbiBIeWJyaWQgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ5IDk3NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDcgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OSA5NzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTcG9ydGFnZSBQbHVnLUluIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjE1OTIsNDYxNTkzLDQ2MTU5NCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgU3BvcnRhZ2UgUGx1Zy1JbiBIeWJyaWQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1TcG9ydGFnZV9QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJLaWEgU3BvcnRhZ2UgUGx1Zy1JbiBIeWJyaWQgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvU3BvcnRhZ2VfUGx1Z19Jbl9IeWJyaWQvMjAyNS80NjE1OTIvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ2MTU5MiIsInRpdGxlIjoiS2lhIFNwb3J0YWdlIFBsdWctSW4gSHlicmlkIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvS2lhLVNwb3J0YWdlX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfcGhldl81Ij4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjIgNjAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIFNvcmVudG8gUGx1Zy1JbiBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1Tb3JlbnRvX1BsdWdfSW5fSHlicmlkLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlNvcmVudG8gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNvcmVudG8gUGx1Zy1JbiBIeWJyaWQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUxIDAyNTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDggNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MSAwMjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICNmZjAwMDA7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTAgMDI1PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJTb3JlbnRvIFBsdWctSW4gSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODc5MSw0Nzg3ODksNDc4NzkwIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBTb3JlbnRvIFBsdWctSW4gSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtU29yZW50b19QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJLaWEgU29yZW50byBQbHVnLUluIEh5YnJpZCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9Tb3JlbnRvX1BsdWdfSW5fSHlicmlkLzIwMjYvNDc4NzkxL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0Nzg3OTEiLCJ0aXRsZSI6IktpYSBTb3JlbnRvIFBsdWctSW4gSHlicmlkIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvS2lhLVNvcmVudG9fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9waGV2XzYiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MiA1MDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgU29yZW50byBQbHVnLUluIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVNvcmVudG9fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iU29yZW50byBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U29yZW50byBQbHVnLUluIEh5YnJpZCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTIgOTc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MCA2NDUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDk3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogI2ZmMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MCA5NzU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IlNvcmVudG8gUGx1Zy1JbiBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU3NjYwLDQ1NzY2MSIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgU29yZW50byBQbHVnLUluIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLVNvcmVudG9fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIFNvcmVudG8gUGx1Zy1JbiBIeWJyaWQgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvU29yZW50b19QbHVnX0luX0h5YnJpZC8yMDI1LzQ1NzY2MC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjoiNDU3NjYwIiwidGl0bGUiOiJLaWEgU29yZW50byBQbHVnLUluIEh5YnJpZCAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1Tb3JlbnRvX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzZWxlY3RyaWNfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj7DiWxlY3RyaXF1ZXMgbmV1dmVzIEtpYSAyMDI1LCAyMDI2ICZhbXA7IDIwMjc8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBRdcOpYmVjLCBwcsOocyBkZSBMw6l2aXMgZXQgRG9ubmFjb25hPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19lbGVjdHJpYyI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY18xIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjIgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIEVWNCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUVWNC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJFVjQgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVWNCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgMzc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOCA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDY3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IkVWNCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODMxMjcsNDgzNzkzLDQ4MzEyOCw0ODM3OTQsNDgzMTI5LDQ4Mzc5NSw0ODMxMzAsNDgzMTMxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBFVjQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1FVjQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIEVWNCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9FVjQvMjAyNi80ODMxMjcvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ4MzEyNyIsInRpdGxlIjoiS2lhIEVWNCAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1FVjQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY18yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIEVWNSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUVWNS0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJFVjUgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVWNSAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDUgODc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MyA0OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ2IDE3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IkVWNSIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODMwMTksNDgzMDIwLDQ4MzAyMSw0ODMwMjQsNDgzMDI1LDQ4MzAyMiw0ODMwMjYsNDgzMDIzLDQ4MzAyNyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgRVY1IDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtRVY1LTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBFVjUgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvRVY1LzIwMjcvNDgzMDE5L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0ODMwMTkiLCJ0aXRsZSI6IktpYSBFVjUgMjAyNyIsImhyZWYiOiJcL25ldWZzXC9LaWEtRVY1LTIwMjcuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfMyI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43IDAwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBOaXJvIEVWIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJOaXJvIMOpbGVjdHJpcXVlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5OaXJvIEVWIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NyA4MjU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ1IDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O0ZyYWlzIGFkbWluJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UkRQUk0gRnJhaXMmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDggMTI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjZmYwMDAwOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ0IDgyNTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iTmlybyBFViIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzc3ODMsNDc3Nzg0LDQ3Nzc4NSw0Nzc3ODYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iS2lhIE5pcm8gRVYgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1OaXJvX0VWLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBOaXJvIEVWIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvS2lhL05pcm9fRVYvMjAyNi80Nzc3ODMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3Nzc4MyIsInRpdGxlIjoiS2lhIE5pcm8gRVYgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9LaWEtTmlyb19FVi0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6IkRcdTAwZTljb3V2cmV6ISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzQiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MiAwMDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJLaWEgTmlybyBFViAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLU5pcm9fRVYtMjAyNS5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iTmlybyDDqWxlY3RyaXF1ZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPktpYTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TmlybyBFViAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDcgODI1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NSA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ4IDEyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9Ik5pcm8gRVYiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYyMTg4LDQ2MjE4OSw0NjIxOTAsNDYyMTkxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBOaXJvIEVWIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtTmlyb19FVi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJLaWEgTmlybyBFViAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9OaXJvX0VWLzIwMjUvNDYyMTg4L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjIxODgiLCJ0aXRsZSI6IktpYSBOaXJvIEVWIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvS2lhLU5pcm9fRVYtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY181Ij4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIEVWNiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUVWNi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJFVjYgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVWNiAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTEgMzc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OCA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUxIDY3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogI2ZmMDAwMDsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40OCAzNzU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IkVWNiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NzMxNjYsNDczMTYyLDQ3MzE2Myw0NzMxNjcsNDczMTY0LDQ3MzE2NSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgRVY2IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtRVY2LTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBFVjYgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvRVY2LzIwMjUvNDczMTY2L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NzMxNjYiLCJ0aXRsZSI6IktpYSBFVjYgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9LaWEtRVY2LTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfNiI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yIDAwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IktpYSBFVjkgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1FVjktMjAyNi5odG1sIiBkYXRhLW1ha2U9IktpYSIgZGF0YS1tb2RlbD0iRVY5IDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+S2lhPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FVjkgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYyIDM3NTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTkgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7RnJhaXMgYWRtaW4mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtSRFBSTSBGcmFpcyZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MiA2NzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJFVjkiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDcxMjY3LDQ3MTI2OCw0NzEyNjksNDcxMjcwLDQ3MTI3MSw0NzEyNzIsNDc2OTcwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IktpYSBFVjkgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0tpYS1FVjktMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iS2lhIEVWOSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0tpYS9FVjkvMjAyNi80NzEyNjcvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6IjQ3MTI2NyIsInRpdGxlIjoiS2lhIEVWOSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0tpYS1FVjktMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJEXHUwMGU5Y291dnJleiEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY183Ij4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjIgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iS2lhIEVWOSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvS2lhLUVWOS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iS2lhIiBkYXRhLW1vZGVsPSJFVjkgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5LaWE8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVWOSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjIgMzc1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1OSA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtGcmFpcyBhZG1pbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDE1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1JEUFJNIEZyYWlzJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYyIDY3NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJLaWEiIGRhdGEtbW9kZWw9IkVWOSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjIyMDIsNDYyMjAzLDQ2MjIwNCw0NjIyMDcsNDYyMjA1LDQ2MjIwNiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJLaWEgRVY5IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9LaWEtRVY5LTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IktpYSBFVjkgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9LaWEvRVY5LzIwMjUvNDYyMjAyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOiI0NjIyMDIiLCJ0aXRsZSI6IktpYSBFVjkgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9LaWEtRVY5LTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiRFx1MDBlOWNvdXZyZXohIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUklFU0JPWFdSQVBQRVIgKDIwNjYpLS0+PGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IktpYSIgaWQ9ImlzQnJhbmRQYWdlIj4KCQkJCTwvZGl2PgoJCQkJPCEtLSBDTE9TRSBPVVRFUkJPWExBWUVSIC0tPgoJCQkJICAgIDxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIgZGl2RGlzY2xhaW1lckJsb2NrIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja1ZpZXciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja0NvbnRlbnQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2QmxvY2tUaXRsZSBibG9ja1RpdGxlU3R5bGUyIj4KICAgICAgICAgICAgICAgICAgICBDbGF1c2UgZGUgbm9uLXJlc3BvbnNhYmlsaXTDqQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja0NvbHVtbiBibGFjay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICBMZSBtb250YW50IGluZGlxdcOpIHJlcHLDqXNlbnRlIHVuZSBlc3RpbWF0aW9uIGR1IG1vbnRhbnQgcXVlIHZvdXMgcG91dmV6IHZvdXMgYXR0ZW5kcmUgw6AgcGF5ZXIgZW4gZG9sbGFycyBjYW5hZGllbnMuIExlcyB0YXhlcyBzb250IGV4Y2x1ZXMgKHNhdWYgaW5kaWNhdGlvbiBjb250cmFpcmUpLiBMZXMgcGhvdG9zIHJlcHLDqXNlbnRlbnQgbGUgbW9kw6hsZSBvZmZlcnQgbWFpcyBwZXV2ZW50IHZhcmllciBsw6lnw6hyZW1lbnQgZW4gY291bGV1ciwgb3B0aW9ucywgb3UgY2FyYWN0w6lyaXN0aXF1ZXMuIEJpZW4gcXVlIG5vdXMgbm91cyBlZmZvcmNpb25zIGRlIGdhcmFudGlyIGwnZXhhY3RpdHVkZSBkZXMgaW5mb3JtYXRpb25zIHN1ciBjZSBzaXRlIFdlYiwgbm91cyB2b3VzIHJlY29tbWFuZG9ucyBkZSBub3VzIGNvbnRhY3RlciBkaXJlY3RlbWVudCBwb3VyIHbDqXJpZmllciBsZXMgZMOpdGFpbHMgZXQgb2J0ZW5pciBkZXMgaW5mb3JtYXRpb25zIHN1cHBsw6ltZW50YWlyZXMgc3VyIGxlIHbDqWhpY3VsZSwgeSBjb21wcmlzIGxhIGNvbmZpcm1hdGlvbiBkZXMgcHJpeCwgZGVzIGNvdWxldXJzLCBkZXMgZmluaXRpb25zLCBkZXMgb3B0aW9ucyBldCBhdXRyZXMgc3DDqWNpZmljYXRpb25zLgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgkJCTwvZGl2PgoJCQk8IS0tIENMT1NFIExFRlRCT1hMQVlFUiAtLT4KCQk8L2Rpdj4KCQk8IS0tIENMT1NFIE1BSU5CT1hMQVlFUiAtLT4KCQk8IS0tIE9QRU4gRk9PVEVSV0lER0VUIC0tPgoJCQkJCTxkaXYgaWQ9ImQyY192YXJzIj48aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibmV3Y2Fycy5odG1sIiBpZD0iMTZkN3Z3dDY2cG1vd28wayIgZGF0YS1mb3J2YXI9IkNVUlJFTlRQQUdFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9ImNlZWUxNjk0MjM0YWFkZGEwZTI5NzU0ZDE3YmQ3YzdkfDM3MzM3MTgyNzgiIGlkPSIzcG02dHZncXFlZ3c0dyIgZGF0YS1mb3J2YXI9IlVTRURfRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iM2E3ODNlOTUzM2ZhNzIzZGVmZWI4ZjQ1YWQ2OGE0NjR8MzczMzcxODI3OCIgaWQ9InJkNXA4czRoNnI0czBjayIgZGF0YS1mb3J2YXI9IkFERl9FTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIGlkPSJzbzd5dXFhajRkd2NjOHMiIGRhdGEtZm9ydmFyPSJTSVRFX0NBUl9TRUNUSU9OX1RZUEUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iY2VlZTE2OTQyMzRhYWRkYTBlMjk3NTRkMTdiZDdjN2R8MzczMzcxODI3OCIgaWQ9IjEzZHF0c25jZDgxd2s4NDQiIGRhdGEtZm9ydmFyPSJGSU5BTkNFX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjNhNzgzZTk1MzNmYTcyM2RlZmViOGY0NWFkNjhhNDY0fDM3MzM3MTgyNzgiIGlkPSI1Y2N5Z2s5MjVtZ3dnMCIgZGF0YS1mb3J2YXI9IkZJTkFOQ0VfQURGX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9ImxpdmUiIGlkPSIyZWpoYmMweXlvZzB3d3ciIGRhdGEtZm9ydmFyPSJERVBMT1lNRU5UVFlQRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJyZXNldCIgaWQ9IjZqeXA0NjY0dmd3czgwdyIgZGF0YS1mb3J2YXI9IlBPUFVQV0lER0VUVE9BQ1RJVkUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iMWVyaXY5MDBwZGE4OHd3OCIgZGF0YS1mb3J2YXI9Ik1BS0VGT1JFTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSIxMHBhN3YzcWVsZGNvc2siIGRhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9InI4Mnpma3hhMmR3c3MwMCIgZGF0YS1mb3J2YXI9IllFQVIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iaTNnc2F4Z3M1ams4d2NrIiBkYXRhLWZvcnZhcj0iUkVGRVJFUiI+CjwvZGl2PjwhLS0gIyNFTkRPRlBBR0UjIyAtLT4KCQoJCiAgICA8ZGl2IGNsYXNzPSJ1aS1sb2FkZXItYmFja2dyb3VuZCI+PGltZyBjbGFzcz0idWktbG9hZGVyLWJhY2tncm91bmQtZ2lmIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2ZvcmNlZWxlY3RyaXF1ZS5jb20vL2ltYWdlcy9hamF4LWxvYWRlcjIuZ2lmIiBhbHQ9ImFqYXggbG9hZGVyMiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvZGl2PgogICAgPGRpdiBpZD0iaW9zX2ZpeGVkX2JnIj48L2Rpdj4KCgkJCgoJCTwhLS0gUHJvbW90aW9uU2lkZUJ0biBESVNBQkxFRCBGT1IgU0VDVElPTjogTkVXIC0tPgogICAgCgkJCgogICAgCgogICAgCgogICAgCgoJCTxkaXYgaWQ9IkhJRERFTl9JTlBVVFMiPgoJCQk8IS0tIGJ1bmRsaW5nIGhpZGRlbiBpbnB1dHMgdG8gcGxlYXNlIEdvb2dsZSAtLT4KCQkJPGRpdiBjbGFzcz0iaGlfX19fMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudEl0ZW1UeXBlIiB2YWx1ZT0iY2FyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50SXRlbVR5cGVVUkxTYWZlRU4iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRTdGF0dXMiIHZhbHVlPSJuZXciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dFVzZXJBZ2VudCIgdmFsdWU9IiAgIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50Q2FyUHJpY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRCdWlsZEFuZFByaWNlRW1haWxMaW5rIiB2YWx1ZT0iRGVybmllciB2w6loaWN1bGUgY29uZmlndXLDqSAobW9kdWxlIENvbmZpZ3VyYXRpb24gJmFtcDsgUHJpeCkgbGUgeyRCQU5QTElOS30iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIiB2YWx1ZT0iL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMSIgdmFsdWU9IkphbnZpZXIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMiIgdmFsdWU9IkbDqXZyaWVyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDMiIHZhbHVlPSJNYXJzIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDQiIHZhbHVlPSJBdnJpbCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg1IiB2YWx1ZT0iTWFpIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDYiIHZhbHVlPSJKdWluIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDciIHZhbHVlPSJKdWlsbGV0Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDgiIHZhbHVlPSJBb8O7dCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEg5IiB2YWx1ZT0iU2VwdGVtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEwIiB2YWx1ZT0iT2N0b2JyZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgxMSIgdmFsdWU9Ik5vdmVtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDEyIiB2YWx1ZT0iRMOpY2VtYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJmZmRMMSIgdmFsdWU9IjBkODY2NmVlNDA1MjQ2MWJiYTA0YzkyYTU5MThkMmVlYTNlY2NlNTkiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImlzQVZHTWFya2V0UHJpY2VBY3RpdmUiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpc0FWR01hcmtldFByaWNlQWN0aXZlQ2xlYXJhbmNlIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2hvd09ubHlSZWR1Y2VkUHJpY2VDbGVhcmFuY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoYXNNdWx0aXBsZURlYWxlcnMiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZW5kRW1haWxUb0FsbERlYWxlcnMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZFZlaGljbGUiIHZhbHVlPSIgICI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeW1ha2UiIG5hbWU9InNlYXJjaGVkcXVlcnltYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5bW9kZWwiIG5hbWU9InNlYXJjaGVkcXVlcnltb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeXllYXIiIG5hbWU9InNlYXJjaGVkcXVlcnl5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpbWdzdnJwb29sYWN0aXZlIiBuYW1lPSJpbWdzdnJwb29sYWN0aXZlIiB2YWx1ZT0iVFJVRSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZWNvbXBpbGVpZCIgbmFtZT0ic2l0ZWNvbXBpbGVpZCIgdmFsdWU9IjY5YWJiMjgwNDRiMDAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImVtYWlsTGlzdFN1ZmZpeCIgbmFtZT0iZW1haWxMaXN0U3VmZml4IiB2YWx1ZT0iMzczMzcxODI3OCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGlzYWJsZVBvcHVwcyIgbmFtZT0iZGlzYWJsZVBvcHVwcyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VFbmFibGVkIiBuYW1lPSJzZXJ2aWNlRW5hYmxlZCIgdmFsdWU9IiI+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJoaV9fX18yIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIgbmFtZT0iQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJuZXdTZWN0aW9ubmFibGVkIiBuYW1lPSJuZXdTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idXNlZFNlY3Rpb25uYWJsZWQiIG5hbWU9InVzZWRTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZmluYW5jZVNlY3Rpb25uYWJsZWQiIG5hbWU9ImZpbmFuY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZVNlY3Rpb25uYWJsZWQiIG5hbWU9InNlcnZpY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwcm9tb1NlY3Rpb25uYWJsZWQiIG5hbWU9InByb21vU2VjdGlvbm5hYmxlZCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idGFyZ2V0UGFnZSIgbmFtZT0idGFyZ2V0UGFnZSIgdmFsdWU9Ik5FV0NBUlMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBhZ2VTZWN0aW9uIiBuYW1lPSJwYWdlU2VjdGlvbiIgdmFsdWU9Ik5FVyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cE90aGVyUGFnZXMiIG5hbWU9IkRpc2NvdW50UG9wdXBPdGhlclBhZ2VzIiB2YWx1ZT0iSE9NRVBBR0U7UFJPTU87U0VSVklDRVM7RklOQU5DRTtURUFNO0NPTlRBQ1QiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBEZWxheVNob3dPdGhlciIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd090aGVyIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBEZWxheVNob3dOZXciIG5hbWU9IkRpc2NvdW50UG9wdXBEZWxheVNob3dOZXciIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE8iIG5hbWU9IlNIT1dfUE9QVVBfQVVUTyIgdmFsdWU9ImRlbGF5Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE9fVVNFRCIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX1VTRUQiIHZhbHVlPSJkZWxheSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPX05FVyIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX05FVyIgdmFsdWU9ImRlbGF5Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVAiIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUCIgdmFsdWU9Ijc1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVBfVVNFRCIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX1VTRUQiIHZhbHVlPSI3NSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgdmFsdWU9Ijc1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHRU5FUkFMX1VTRURfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfVVNFRF9QQUdFX1BPUFVQX1NFTEVDVCIgdmFsdWU9IklOQ0xVRElORyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR0VORVJBTF9ORVdfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfTkVXX1BBR0VfUE9QVVBfU0VMRUNUIiB2YWx1ZT0iSU5DTFVESU5HIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJVU0VEX0xPR09fT05fQ0hFQ0siIG5hbWU9IlVTRURfTE9HT19PTl9DSEVDSyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0VNX0JPT1NURVJfQUNUSVZFIiBuYW1lPSJTRU1fQk9PU1RFUl9BQ1RJVkUiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJQQUdFSUQiIG5hbWU9IlBBR0VJRCIgdmFsdWU9Im5ld2NhcnMuaHRtbCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQ1JNX1dTU19BQ1RJVkUiIG5hbWU9IkNSTV9XU1NfQUNUSVZFIiB2YWx1ZT0ibm8iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlJFUVVFU1RfU0VOVCIgbmFtZT0iUkVRVUVTVF9TRU5UIiB2YWx1ZT0iVm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJCUkFORCIgbmFtZT0iREVBTEVSQlJBTkQiIHZhbHVlPSJLaWEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUkJSQU5EX1BSSU1BUlkiIG5hbWU9IkRFQUxFUkJSQU5EX1BSSU1BUlkiIHZhbHVlPSJLaWEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlBBQ09ERSIgbmFtZT0iREVBTEVSUEFDT0RFIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJGSU5BTkNFRk9STVRZUEUiIG5hbWU9IkZJTkFOQ0VGT1JNVFlQRSIgdmFsdWU9Im11bHRpc3RlcCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSVElSRVJFRElSRUNUQ0hFQ0siIG5hbWU9IkRFQUxFUlRJUkVSRURJUkVDVENIRUNLIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJUSVJFUkVESVJFQ1RUWVBFIiBuYW1lPSJERUFMRVJUSVJFUkVESVJFQ1RUWVBFIiB2YWx1ZT0iY3VzdG9tIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJQQVJUUkVESVJFQ1RUWVBFIiBuYW1lPSJERUFMRVJQQVJUUkVESVJFQ1RUWVBFIiB2YWx1ZT0iY3VzdG9tIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJJU1ZNIiBuYW1lPSJJU1ZNIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHUldMIiBuYW1lPSJHUldMIiB2YWx1ZT0iYjJlMzUwYjcxYzE2NDZiN2VlZWM5ZTFhZjZjODU0YjEzY2IxZGI1MTtiYTZiODYxMWNiYTExNzgwMzFiMTdmYTdlMzUwYWNmMmNlMTM1YWE1OzA5YzM1ODA3YmE0N2E4MjU5MmVmODhlNWQ2MzA0ZWE2OTliOGNiZTIiPgoJCQkJPCEtLSA8aW5wdXQgdHlwZT0naGlkZGVuJyB2YWx1ZT0iL2RlbWFuZGVzL3ByaXgtb2NjYXNpb24vIiBpZD0ncHJpY2VSZXF1ZXN0Rm9sZGVyJy8+CgkJCQk8aW5wdXQgdHlwZT0naGlkZGVuJyB2YWx1ZT0iL2RlbWFuZGVzL2Vzc2Fpcy1yb3V0aWVyLW9jY2FzaW9uLyIgaWQ9J1NjaGVkdWxlVGVzdERyaXZlRm9sZGVyJy8+CgkJCQk8aW5wdXQgdHlwZT0naGlkZGVuJyB2YWx1ZT0iL2RlbWFuZGVzL2ZpbmFuY2VtZW50LyIgaWQ9J0ZpbmFuY2VGb2xkZXInLz4gLS0+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL2RlbWFuZGVzL29mZnJlLW9jY2FzaW9uLyIgaWQ9InRleHRNYWtlT2ZmZXJGb2xkZXIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjAiIGlkPSJoYXNWQkRDRW5hYmxlZCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMCIgaWQ9Im1lbnVMb2NrIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJvZW1DZXJ0aWZpY2F0aW9uIiB2YWx1ZT0iMTAwMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cE5ld1JlYmF0ZVNob3dUZXh0VXMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwVXNlZFJlYmF0ZVNob3dUZXh0VXMiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjb29raWVMb2dUb2tlbiIgdmFsdWU9Ik1qQXpNelEzTXpjd09EUTBPUT09Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjb29raWVUb0NoZWNrIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGlzYWJsZUludGVybmFsU2Vzc2lvbiIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRlYWxlclByb3ZpbmNlQ29kZSIgdmFsdWU9IlFDIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlSUQiIHZhbHVlPSIxMTQ3Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBRE1JTl9ORVdfRE9OVF9TSE9XX1BSSUNFX01PREVMUyIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iTkVXX1BSSUNFX1RFWFQiIHZhbHVlPSJBcHBlbGV6IHBvdXIgdW4gcHJpeCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRmluYW5jZV9Gb3JtVHlwZSIgdmFsdWU9Im11bHRpc3RlcCI+CgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXYgaWQ9ImNvbmZpcm1fZm9ybXMiPjwvZGl2PgoKCQkKCgkJPCEtLSBPTzo6N2MzZjQ4NTMwMzMyNmUyNTNkYzBjMWMyYjcwZDIzNjAgLS0+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlSUQiIHZhbHVlPSIxMTQ3Ij48ZGl2IGNsYXNzPSJyZXZlYWwtbW9kYWwgZGVza3RvcCIgaWQ9Im11bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiI+CgkKCQoJPGxhYmVsPkNob2lzaXNzZXogbGUgY29uY2Vzc2lvbm5haXJlIGxlIHBsdXMgcHLDqHMgZGUgY2hleiB2b3VzOjwvbGFiZWw+Cgk8c2VsZWN0IHYtbW9kZWw9ImZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG8iIG5hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iIGNsYXNzPSJmb3JtLWNvbnRyb2wiPjxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQ+U8OpbGVjdGlvbm5lejwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjAiIGRhdGEtZGVhbGVyaWQ9IjIxOTEiIGRhdGEtYnJhbmRzPSJhbGwiIGRhdGEtZW1haWw9IiIgZGF0YS1lbWFpbGFkZj0iM2E3ODNlOTUzM2ZhNzIzZGVmZWI4ZjQ1YWQ2OGE0NjR8MzczMzcxODI3OCIgZGF0YS1lbWFpbHVzZWQ9IiIgZGF0YS1lbWFpbGFkZnVzZWQ9IjNhNzgzZTk1MzNmYTcyM2RlZmViOGY0NWFkNjhhNDY0fDM3MzM3MTgyNzgiIGRhdGEtZW1haWxzZXJ2aWNlPSIiIGRhdGEtZW1haWxhZGZzZXJ2aWNlPSIiIGRhdGEtZW1haWxmaW5hbmNlPSIiIGRhdGEtZW1haWxhZGZmaW5hbmNlPSIzYTc4M2U5NTMzZmE3MjNkZWZlYjhmNDVhZDY4YTQ2NHwzNzMzNzE4Mjc4IiBkYXRhLWVtYWlscGFydHM9IiIgZGF0YS1lbWFpbGFkZnBhcnRzPSIiPgoJS2lhIFZhbC1Cw6lsYWlyCjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjEiIGRhdGEtZGVhbGVyaWQ9IjIxODUiIGRhdGEtYnJhbmRzPSJhbGwiIGRhdGEtZW1haWw9IiIgZGF0YS1lbWFpbGFkZj0iNGY1YzI4YjMzNjQ4OTA0MzU2ZjE2MDI4OGNiN2VkMzh8MzczMzcxODI3OCIgZGF0YS1lbWFpbHVzZWQ9IiIgZGF0YS1lbWFpbGFkZnVzZWQ9IjRmNWMyOGIzMzY0ODkwNDM1NmYxNjAyODhjYjdlZDM4fDM3MzM3MTgyNzgiIGRhdGEtZW1haWxzZXJ2aWNlPSIiIGRhdGEtZW1haWxhZGZzZXJ2aWNlPSIiIGRhdGEtZW1haWxmaW5hbmNlPSIiIGRhdGEtZW1haWxhZGZmaW5hbmNlPSI0ZjVjMjhiMzM2NDg5MDQzNTZmMTYwMjg4Y2I3ZWQzOHwzNzMzNzE4Mjc4IiBkYXRhLWVtYWlscGFydHM9IiIgZGF0YS1lbWFpbGFkZnBhcnRzPSIiPgoJS2lhIFN0ZS1Gb3kKPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMiIgZGF0YS1kZWFsZXJpZD0iMTUwMiIgZGF0YS1icmFuZHM9ImFsbCIgZGF0YS1lbWFpbD0iIiBkYXRhLWVtYWlsYWRmPSI1YmIzYTEyODQ1MjM1NzllNmU2MGNjNWM5NjViZGYzY3wzNzMzNzE4Mjc4IiBkYXRhLWVtYWlsdXNlZD0iIiBkYXRhLWVtYWlsYWRmdXNlZD0iNWJiM2ExMjg0NTIzNTc5ZTZlNjBjYzVjOTY1YmRmM2N8MzczMzcxODI3OCIgZGF0YS1lbWFpbHNlcnZpY2U9IiIgZGF0YS1lbWFpbGFkZnNlcnZpY2U9IiIgZGF0YS1lbWFpbGZpbmFuY2U9IiIgZGF0YS1lbWFpbGFkZmZpbmFuY2U9IjViYjNhMTI4NDUyMzU3OWU2ZTYwY2M1Yzk2NWJkZjNjfDM3MzM3MTgyNzgiIGRhdGEtZW1haWxwYXJ0cz0iIiBkYXRhLWVtYWlsYWRmcGFydHM9IiI+CglLaWEgUXXDqWJlYwo8L29wdGlvbj48L3NlbGVjdD4KCjxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KCTxpbnB1dCBpZD0icG9zdExlYWRMYWJlbCIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQ29uY2Vzc2lvbm5haXJlOiAmbHQ7YiZndDt7JE1VTFRJREVBTEVSTkFNRX0gLSB7JFBPU1RfTEVBRF9FTUFJTFN9Jmx0Oy9iJmd0OyI+Cgk8aW5wdXQgaWQ9IlBPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibG9jYXRpb24iPgo8L2Rpdj4KCgk8YSBpZD0ibXV0bGlBZGRyZXNzU3VibWl0IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBjbGFzcz0iIGJ0bi1kZWZhdWx0ICI+U291bWV0dHJlPC9hPgoKCTxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KCTxpbnB1dCBpZD0icG9zdExlYWRMYWJlbCIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQ29uY2Vzc2lvbm5haXJlOiAmbHQ7YiZndDt7JE1VTFRJREVBTEVSTkFNRX0gLSB7JFBPU1RfTEVBRF9FTUFJTFN9Jmx0Oy9iJmd0OyI+Cgk8aW5wdXQgaWQ9IlBPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibG9jYXRpb24iPgo8L2Rpdj4KPC9kaXY+CQkJCgoJCQkKCQk8c3R5bGU+CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqewoJCQkJd2lkdGg6IGNsYW1wKDIwLjVyZW0sIG1heCg5MHZ3LCAyMC41cmVtKSwgNjByZW0pOwoJCQkJZGlyZWN0aW9uOiBydGw7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICogPiAqewoJCQkJZGlyZWN0aW9uOiBpbml0aWFsOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqID46bGFzdC1jaGlsZHsKCQkJCXdpZHRoOiAyMHJlbTsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjewoJCQkJLS1zaWRlYmFyLWJwOiA0MCU7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc3dpdGNoZXItbGN7CgkJCQktLXN3aXRjaC1icDogMzVyZW07CgkJCX0KCgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IGxhYmVsewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQkJZGlzcGxheTogZmxleDsKCQkJCWZsZXgtd3JhcDogd3JhcDsKCQkJCWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKCQkJfQoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBsYWJlbCBzcGFuewoJCQkJd2lkdGg6NHJlbTsKCQkJfQoKCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgW3R5cGU9InN1Ym1pdCJdewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQl9CgoJCQkuY29udGFjdE1hcENvbnRhaW5lcnsKCQkJCWhlaWdodDoxMDAlOwoJCQkJbWluLWhlaWdodDptaW4oNzV2aCwgMzhyZW0pOwoJCQl9CgoJCQkuY29udGFjdEZvcm17CgkJCQlib3JkZXItY29sb3I6I2JiYjsKCQkJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmNvbnRhY3RGb3JtIGlucHV0ewoJCQkJbWF4LXdpZHRoOiAxMHJlbTsKCQkJfQoKCgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkewoJCQkJYmFja2dyb3VuZC1jb2xvcjojMDAwOwoJCQkJYm9yZGVyLWNvbG9yOiMwMDA7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmZsYXRwaWNrci10aW1lIDppcyhpbnB1dDpob3ZlcixpbnB1dDpmb2N1cyl7CgkJCQliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKCQkJfQoKCQkJLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoLCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzewoJCQkJdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOwoJCQl9CgoJCQkvKiAuZHAtbGFyZ2UgLmZsYXRwaWNrci1jYWxlbmRhcnsKCQkJCXdpZHRoOjMwcmVtOwoJCQkJZm9udC1zaXplOjEuMXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIC5mbGF0cGlja3Itd2Vla2RheXN7CgkJCQloZWlnaHQ6Mi41cmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgLmZsYXRwaWNrci1kYXl7CgkJCQltYXgtd2lkdGg6IDRyZW07CgkJCQloZWlnaHQ6IDIuNXJlbTsKCQkJCWxpbmUtaGVpZ2h0OiAyLjVyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSA6aXMoLmZsYXRwaWNrci1kYXlzLC5kYXlDb250YWluZXIpIHsKCQkJCXdpZHRoOjEwMCU7CgkJCQltYXgtd2lkdGg6IDMwcmVtOwoJCQl9ICovCgkJPC9zdHlsZT4KCgkJCTxkaXYgaWQ9ImxlYWREZWFsZXJBcHBvaW50bWVudCIgaGlkZGVuPgoJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIj4KCQkJCTxzaWRlYmFyLWxjPgoJCQkJCTxkaXY+IDwhLS0gaW50ZXJtZWRpYXJ5IHdyYXBwZXIgLS0+CgoJCQkJCQk8Ym94LWxjPgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCTx1bCBjbGFzcz0iY2hlY2tsaXN0IC1mcy0xIC0tcyI+CgkJCQkJCQkJCTxsaT5VbmUgZXhww6lyaWVuY2UgcGVyc29ubmFsaXPDqWUgZMOocyB2b3RyZSBhcnJpdsOpZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgYXR0ZW50ZSBjaGV6IGxlIGNvbmNlc3Npb25uYWlyZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgcGFwZXJhc3NlIGludXRpbGU6IGNvbmNlbnRyZXotdm91cyBzdXIgbGUgdsOpaGljdWxlPC9saT4KCQkJCQkJCQk8L3VsPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtY2VudGVyIj4KCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJkYXRlcGlja2VyIGZsYXRwaWNrci1pbnB1dCIgaGlkZGVuIHR5cGU9InRleHQiIHRpdGxlPSJTZWxlY3QgRGF0ZS4uLiIgcGxhY2Vob2xkZXI9IlNlbGVjdCBEYXRlLi4uIiBkYXRhLWlkPSJpbmxpbmUiIHJlYWRvbmx5PgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImNvbnRhY3RGb3JtIC1iIC13LTEwMCBmbGV4LWNlbnRlciAtLXMyIj4KCQkJCQkJCQkJPGZvcm0gaWQ9ImZvcm1EZWFsZXJBcHBvaW50bWVudCIgY2xhc3M9Ii13LTEwMCIgbm92YWxpZGF0ZT4KCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMiBhbGlnbi1jZW50ZXIiPgoKCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQgdHh0LWNlbnRlciB0eHQtdXBwZXIgc2VsZWN0ZWRUaW1lIj48L3NwYW4+CgkJCQkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0ZSI+CgoJCQkJCQkJCQkJCTxzd2l0Y2hlci1sYz4KCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIiPiA8IS0tIGludGVybWVkaWFyeSB3cmFwcGVyIC0tPgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+Tm9tICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IHJlcXVpcmVkIGNsYXNzPSItcGgiIG5hbWU9Im5hbWUiIHR5cGU9InRleHQiPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Db3VycmllbCAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Uw6lsw6lwaG9uZSAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBkYXRhLXByaXN0aW5lLXBob25lIG5hbWU9InBob25lbnVtIiB0eXBlPSJ0ZWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCQkJPC9zd2l0Y2hlci1sYz4KCgkJCQkJCQkJCQkJPGJ1dHRvbiBvbnN1Ym1pdD0iamF2YXNjcmlwdDp2b2lkKCkiIGNsYXNzPSJidG4gYnRuLXByb21vIC1mcy1sciAtdy0xMDAgdHh0LXVwcGVyIC1ib2xkIiB0eXBlPSJzdWJtaXQiPgoJCQkJCQkJCQkJCQlQcmVuZHJlIHJlbmRlei12b3VzCgkJCQkJCQkJCQkJPC9idXR0b24+CgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJkYXRhIiB0eXBlPSJoaWRkZW4iIGRhdGEtbWFrZT0iIiBkYXRhLW1vZGVsPSIiIGRhdGEteWVhcj0iIiBkYXRhLXRyaW09IiIgZGF0YS1jb25kaXRpb249IiIgZGF0YS1rbT0iIiBkYXRhLXZpbj0iIiBkYXRhLXN0b2NrLW51bWJlcj0iIj4KCgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUbyIgdmFsdWU9ImNlZWUxNjk0MjM0YWFkZGEwZTI5NzU0ZDE3YmQ3YzdkfDM3MzM3MTgyNzgiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUb0FERkZvcm1hdCIgdmFsdWU9IjNhNzgzZTk1MzNmYTcyM2RlZmViOGY0NWFkNjhhNDY0fDM3MzM3MTgyNzgiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9Im1haWxJRCIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50IiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJwb3B1cE9mZmVyVHlwZSIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50QWxsIiB0eXBlPSJoaWRkZW4iPgoKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJsZWFkRW1haWwiIGhpZGRlbj4KCQkJCQkJCQkJCQkJPHNwYW4gZGF0YS1zdWJqZWN0PkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzPC9zcGFuPgoJCQkJCQkJCQkJCQk8c3BhbiBkYXRhLWJvZHk+Qm9uam91ciw8YnI+PGJyPlVuIGNsaWVudCBwb3RlbnRpZWwgYXlhbnQgdmlzaXTDqSB2b3RyZSBzaXRlIHdlYiwgYWltZXJhaXQgcHJlbmRyZSB1biByZW5kZXotdm91czo8YnI+PGJyPjx1PlJlbnNlaWduZW1lbnRzIHN1ciBsZSB2w6loaWN1bGU8L3U+Ojxicj5Nb2TDqGxlOiA8c3Ryb25nPiAgPC9zdHJvbmc+PGJyPk5JVjogPHN0cm9uZz57JFZJTn08L3N0cm9uZz48YnI+TnVtw6lybyBkZSBzdG9jazogPHN0cm9uZz57JFNUT0NLTlVNQkVSfTwvc3Ryb25nPjxicj5LaWxvbcOodHJlczogPHN0cm9uZz57JEtNfTwvc3Ryb25nPjxicj48YnI+PHU+RGF0ZSBkdSByZW5kZXotdm91cyBzb3VoYWl0w6k8L3U+IDogPHN0cm9uZz57JERBVEV9PC9zdHJvbmc+PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+Ojxicj5Ob206IDxzdHJvbmc+eyROQU1FfTwvc3Ryb25nPjxicj5Db3VycmllbDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD1tYWlsdG86JTdCJTI0RU1BSUwlN0QiPnskRU1BSUx9PC9hPjwvc3Ryb25nPjxicj5Uw6lsw6lwaG9uZTogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD10ZWw6JTdCJTI0UEhPTkVOVU0lN0QiPnskUEhPTkVOVU19PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPjxicj48dT5Db25jZXNzaW9uPC91Pjo8YnI+Tm9tIDogPHN0cm9uZz57JERFQUxFUk5BTUV9PC9zdHJvbmc+PGJyPjxicj48ZGl2IHN0eWxlPSIjI1NFT0JMT0NLRElTUExBWSMjIj5Tb3VyY2UgTcOpZGlhOiA8c3Ryb25nPnskVVRNREVUQUlMU308L3N0cm9uZz48YnI+TmF2aWdhdGV1cjogPHN0cm9uZz57JFVTRVJBR0VOVH0gLSA8L3N0cm9uZz48YnI+SGlzdG9yaXF1ZSBkZSBuYXZpZ2F0aW9uOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPSU3QiUyNFVVTElOSyU3RCIgcmVsPSJub2ZvbGxvdyB1Z2Mgc3BvbnNvcmVkIG5vaW5kZXgiIHN0eWxlPSJjb2xvcjpibGFjazsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+Q2xpcXVleiBpY2k8L2E+PC9zdHJvbmc+PGJyPjwvZGl2PkNvbnNlbnRlbWVudDogPHN0cm9uZz57JENPTlNFTlRfREVUQUlMU308L3N0cm9uZz57JFBVUkNIQVNFX0lOVEVOVH08L3NwYW4+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJPC9mb3JtPgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQk8ZGl2PgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJjb250YWN0TWFwQ29udGFpbmVyIC0tcy04IC1iZy1saWdodCIgaWQ9ImZvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyIj4KCgkJCQkJCQkJCgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImNvbnRhY3RCbG9jayAtLXMyIC1tMCI+CgkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMyI+CgkJCQkJCQkJCQk8ZGl2PgoJCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zLTgiPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLS1mczAiPkZvcmNlIMOJbGVjdHJpcXVlPC9zcGFuPgoJCQkJCQkJCQkJCQk8YSBocmVmPSI\/cGF0aD0iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iLS1mcy0xIiBoaWRkZW4+CgkJCQkJCQkJCQkJCQk8c3Bhbj48L3NwYW4+CgkJCQkJCQkJCQkJCQk8c3Bhbj4sIDwvc3Bhbj4KCQkJCQkJCQkJCQkJCTxzcGFuPjwvc3Bhbj4KCQkJCQkJCQkJCQkJPC9hPgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8ZGl2IGhpZGRlbj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5Uw6lsw6lwaG9uZTwvc3Bhbj4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii0tZnMtMSI+CgkJCQkJCQkJCQkJCQk8YSBocmVmPSI\/cGF0aD10ZWw6IiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIiB0aXRsZT0iQ29udGFjdCBQaG9uZSI+PC9hPgoJCQkJCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCTxkaXY+CgkJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMtOCI+CgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItYm9sZCI+SGV1cmVzPC9zcGFuPgoJCQkJCQkJCQkJCQkJCQk8ZGl2IGlkPSJpdGVtX25ldyI+CgkJCQk8c3RhY2stbGMgY2xhc3M9ImhvdXJzTGlzdCI+CgkJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMjA6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5MdW5kaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMjA6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwOTowMCIgZGF0YS1tYXhob3VyPSIyMDowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPk1hcmRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDk6MDAgLSAyMDowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA5OjAwIiBkYXRhLW1heGhvdXI9IjIwOjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+TWVyY3JlZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wOTowMCAtIDIwOjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMjA6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5KZXVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMjA6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwOTowMCIgZGF0YS1tYXhob3VyPSIxODowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPlZlbmRyZWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDk6MDAgLSAxODowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjEwOjAwIiBkYXRhLW1heGhvdXI9IjE1OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+U2FtZWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MTA6MDAgLSAxNTowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IkVuIGxpZ25lIHNldWxlbWVudCIgZGF0YS1tYXhob3VyPSIiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5EaW1hbmNoZTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjE5OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CgkJCQk8L3N0YWNrLWxjPgoJCQk8L2Rpdj4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCTwvYm94LWxjPgoKCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCTwvZGl2PgoKCQkJCQk8L2Rpdj4KCQkJCTwvc2lkZWJhci1sYz4KCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlblNpdGVJRCIgdmFsdWU9IjExNDciPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlblNraXBPbmxvYWRQcmludHNjcmVlbiIgdmFsdWU9IiMjRE9OVF9TS0lQX09OTE9BRCMjIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5QcmludHNjcmVlbktleSIgdmFsdWU9IiMjUFJJTlRTQ1JFRU5fS0VZIyMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlbkRlYWxlck5hbWUiIHZhbHVlPSJGb3JjZSDDiWxlY3RyaXF1ZSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDQkJDaGVja1VzZXIiIHZhbHVlPSJNVGd1T1RjdU1UUXVPREk9Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fZW1haWxzIiB2YWx1ZT0iIj48IS0tIE9POjozYTI0NmE3OThkMjVkY2MzMzE1NzZlYjVmZDgwZDQ3ZSAtLT4JCQk8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvdmVyZmxvdzpoaWRkZW47Ij4KCQkJICAKCgkJCSAgCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29va19pc19hY3RpdmUiIHZhbHVlPSIxIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMi1DMDAwMy1DMDAwNC1DMDAwNSI+CgkJCQk8IS0tIEZhY2Vib29rIFBpeGVsIENvZGUgVmlld0NvbnRlbnQgIC0tPgoJCQkJPCEtLSBPTzo6YTIyYWQ1MzkzOTU4YzNjOGQyNzNhYTFkMzdhYTQ4YTggLS0+CgkJCQk8bm9zY3JpcHQ+CgkJCQkJPGltZyBhcmlhLWhpZGRlbj0idHJ1ZSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vdHI\/aWQ9MTUzNzYwMDM2NTcxMzgwJmFtcDtldj1QYWdlVmlldyZhbXA7bm9zY3JpcHQ9MSIgYWx0PSJ0ciBpZCAxNTM3NjAwMzY1NzEzODAgZXYgIHBhZ2UgdmlldyBub3NjcmlwdCAxIiBoZWlnaHQ9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHdpZHRoPSIxIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L25vc2NyaXB0PgoJCQk8IS0tIEVuZCBGYWNlYm9vayBQaXhlbCBDb2RlIFZpZXdDb250ZW50IC0tPgoKCQkgIDwvZGl2PgoKCQkgIDxkaXYgaWQ9ImNvbnZlcnNpb25UYWdzV3JhcHBlciI+PC9kaXY+CgoJCQk8IS0tIERXUC0yNDM5IC0tPgoKCQkJPCEtLSBPTzo6ODNjMjUyOGE3NTM4MGMwNzg3MmU5MmFkMmM5OWFlMmUgLS0+Cgo8IS0tIENVU1RPTSBCT0RZIEZSRUVGSUVMRCAtLT4KIAo8IS0tU1RBUlRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+Cgo8IS0tU1RBUlRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAyLS0+CjxkaXYgY2xhc3M9Im1hdGFkb3Itd2lkZ2V0IiBkYXRhLWlkPSI2NGQzZDUwNDY1Njg4MjAwMTMyOTY5OGEiPjwvZGl2PgpDU1M6CjxsaW5rIGhyZWY9Imh0dHBzOi8vY2hhdC5tYXRhZG9yLmFpL3dpZGdldC9pbmRleC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CmFyZSBub3QgYWRkZWQgdG8gdGhhdCBwYWdlLCBhbHRob3VnaApTY3JpcHQ6CjxzY3JpcHQgc3JjPSJodHRwczovL2NoYXQubWF0YWRvci5haS93aWRnZXQvaW5kZXguanMiPjwvc2NyaXB0PgoKCgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBHb29nbGUgVGFnIE1hbmFnZXIgKG5vc2NyaXB0KSAtLSBSRVFVRVNURVI6IEN1c3RvbWVyIC0tPgo8bm9zY3JpcHQ+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL25zLmh0bWw\/aWQ9R1RNLVQ3TUtLOUNIIiBoZWlnaHQ9IjAiIHdpZHRoPSIwIiBzdHlsZT0iZGlzcGxheTpub25lO3Zpc2liaWxpdHk6aGlkZGVuIj48L2lmcmFtZT48L25vc2NyaXB0Pgo8IS0tIEVuZCBHb29nbGUgVGFnIE1hbmFnZXIgKG5vc2NyaXB0KSAtLSBSRVFVRVNURVI6IEN1c3RvbWVyIC0tPgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKIDwhLS0gRU5EIENVU1RPTSBCT0RZIEZSRUVGSUVMRCAtLT4KCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+Vm90cmUgZGVtYW5kZSBhIMOpdMOpIGVudm95w6llIGF2ZWMgc3VjY8Oocy4gVW4gcmVwcsOpc2VudGFudCB2b3VzIGNvbnRhY3RlcmEgc291cyBwZXUuPC9wPgogICAgICA8cCBjbGFzcz0ic2VydmljZVN1Y2Nlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YnI+TWVyY2kgcG91ciB2b3RyZSBkZW1hbmRlLiBVbiBtZW1icmUgZGUgbm90cmUgw6lxdWlwZSBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9IjQxMDg3ODQ4MCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9Ik1XdWFDT1hMNnZnQkVKQ0U5c01CIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMTUzNzYwMDM2NTcxMzgwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9ImZvcmNlZWxlY3RyaXF1ZS5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdTwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCgkJPGRpdiBpZD0iZDJjRm9vdGVyQ29va2llRGVsZXRlIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjU4MHB4O2hlaWdodDozNTBweDtwYWRkaW5nOjsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19kMmNmb290ZXJjb29raWVkZWxldGUiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6M2M5ZjMyYTBjZDFiZDRjZGQ2MzA4NDFkMjJmYzhhZDMgLS0+CgoJCQoJCQoJCTwhLS0gQ0xPU0UgRk9PVEVSV0lER0VUIC0tPgoJCTwhLS0gT1BFTiBQT1BVUFdJREdFVCAtLT4KCQk8IS0tIE1BSU4gUE9QVVAgbmV3IFNjcmF0Y2hBbmRTYXZlUG9wdXAgLS0+CgkJCgkJPGRpdiBpZD0ic2NyYXRjaEFuZFNhdmVQb3B1cENvbnRhaW5lcl9uZXciIGNsYXNzPSJyZXZlYWwtbW9kYWwgc25zX3BvcHVwIiBzdHlsZT0id2lkdGg6ODUwcHg7aGVpZ2h0OjU3MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX3NjcmF0Y2hhbmRzYXZlcG9wdXBjb250YWluZXJfbmV3Ij4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OjRhNWYxMmY2MjliYjFmOWZlMzIwNzI2MmE5OWVlZGM4IC0tPgoKCQkKCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBDUkVESVQgU0NPUkUgUE9QVVAgLS0+CgkJCgkJPGRpdiBpZD0iY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo3NjBweDtoZWlnaHQ6MzgwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY3JlZGl0c2NvcmVwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjo4ZjI3NTFlN2UzMTFkN2ZhZjBmNTBmMTAxNDRlYjgzZSAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+TWVyY2khIFVuIGNvbnNlaWxsZXIgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBwb3VyIHZvdXMgZG9ubmVyIGxlcyBkw6l0YWlscyBzdXIgdm90cmUgcG90ZW50aWVsIGRlIGNyw6lkaXQuPC9wPgogICAgICA8cCBjbGFzcz0ic2VydmljZVN1Y2Nlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YnI+TWVyY2khIFVuIGNvbnNlaWxsZXIgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBwb3VyIHZvdXMgZG9ubmVyIGxlcyBkw6l0YWlscyBzdXIgdm90cmUgcG90ZW50aWVsIGRlIGNyw6lkaXQuPC9wPgogICAgICA8IS0tIDxhIGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPiYjMjE1OzwvYT4gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWNvbnNlbnQtYnRucyAtcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX3N1Y2Nlc3NDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBpZD0iZW1haWxtc2dmcm1fY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI0MTA4Nzg0ODAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJNV3VhQ09YTDZ2Z0JFSkNFOXNNQiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjE1Mzc2MDAzNjU3MTM4MCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJmb3JjZWVsZWN0cmlxdWUuY29tIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVmZXJyZXIiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZXBhcnRtZW50IiB2YWx1ZT0iTkVXIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZF9kZXBhcnRtZW50IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNleHByZXNzIiBjbGFzcz0iaXNleHByZXNzIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcHJvbW8iIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNob21lcGFnZSIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0ZXN0bW9kZSIgY2xhc3M9InRlc3Rtb2RlIiB2YWx1ZT0iMCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkVHlwZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VJRCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbnRVUkwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0NvbmZpcm1Qb3B1cCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2VtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9sYXN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX3Bob25lX251bWJlciIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0Z1bGxXaWR0aCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlck5hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXR0b25Qb3NpdGlvbiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzTW9iaWxlTmV3VkRQIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdTwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjpkNjZmNWQ5NDg1OTc0MmM2YTUxZjhiYWQ5YzBkZmFlMCAtLT4KCQkKPCEtLSBFTkQgQ1JFRElUIFNDT1JFIFBPUFVQIC0tPgoKPCEtLSBDUkVESVQgU0NPUkUgQ09ORklSTSBQT1BVUCAtLT4KCjwhLS0gRU5EIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoKCQkKCQk8ZGl2IGlkPSJjb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY29udGFjdHBvcHVwIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OjFkZWM4Yzg1Yzg3OTM1MWZhNzhhMDZiOTIyMDUxNWI1IC0tPgoKCQkKCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIG1lc3NhZ2UgYSBiaWVuIMOpdMOpIGVudm95w6khPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+TWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSDDqXF1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX2NvbnRhY3Rwb3B1cCIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI0MTA4Nzg0ODAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJNV3VhQ09YTDZ2Z0JFSkNFOXNNQiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjE1Mzc2MDAzNjU3MTM4MCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJmb3JjZWVsZWN0cmlxdWUuY29tIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVmZXJyZXIiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZXBhcnRtZW50IiB2YWx1ZT0iTkVXIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZF9kZXBhcnRtZW50IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNleHByZXNzIiBjbGFzcz0iaXNleHByZXNzIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcHJvbW8iIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNob21lcGFnZSIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0ZXN0bW9kZSIgY2xhc3M9InRlc3Rtb2RlIiB2YWx1ZT0iMCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkVHlwZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VJRCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbnRVUkwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0NvbmZpcm1Qb3B1cCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2VtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9sYXN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX3Bob25lX251bWJlciIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0Z1bGxXaWR0aCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlck5hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXR0b25Qb3NpdGlvbiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzTW9iaWxlTmV3VkRQIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9jb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1PC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJjb25maXJtX2ZhaWxDb250aW51ZSAgYnRuLWRlZmF1bHQgIj5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OjNkNzg1NDI3NDEyNWVhNjliMDI0NTc1NjQ2YTY5OGRjIC0tPgoJCQoKCjwhLS0gRklOQU5DRSBNVUxUSVNURVAgUE9QVVAgbmV3IC0tPgoJCQoJCTxkaXYgaWQ9ImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCBmaW5hbmNlX2JhY2tncm91bmRfaW1hZ2UiIHN0eWxlPSJ3aWR0aDo1ODBweDtoZWlnaHQ6NDQ1cHg7cGFkZGluZzo7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfZmluYW5jZW11bHRpc3RlcHBvcHVwY29udGFpbmVyIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OmYyOGYzOWYxZjQzNmRhMjk0MjhhMTBhODBiYmRhMjM3IC0tPgoKCQkKCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBGSU5BTkNFIE1VTFRJU1RFUCBJTlNUQU5UIC0tPgoKPCEtLSBFTkQgRklOQU5DRSBNVUxUSVNURVAgSU5TVEFOVCAtLT4KCjwhLS0gQ1JFRElUIEJPT1NUIE1VTFRJIC0tPgoKPCEtLSBFTkQgQ1JFRElUIEJPT1NUIE1VTFRJIC0tPgoKPCEtLSBTRUNPTkQgQ0hBTkNFIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gUkVUVVJOIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gRVhJVCBQT1BVUCBuZXcgLS0+Cgo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIEJFU1QgUFJBQ1RJQ0UgUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoJCTwhLS0gQ0xPU0UgUE9QVVBXSURHRVQgLS0+CgkJCgkJPCEtLSBQQVlNRU5UIENBTENVTEFUT1IgUE9QVVAgIC0tPgoJCQoJCTxkaXYgaWQ9InBheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBzdHlsZT0id2lkdGg6OTAwcHg7bWluLWhlaWdodDo0OTVweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19wYXltZW50Y2FsY3VsYXRvcnBvcHVwY29udGFpbmVyIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OjU1MzgwZWZmMzgwYmJlYzFjMjM3MWQ0MDY4M2IzZmIxIC0tPgoKCQkKCQk8IS0tIEVORCBQQVlNRU5UIENBTENVTEFUT1IgIC0tPgoKCgkJPGRpdiBpZD0ic3BlY2lhbFNjaGVkdWxlQ29udGVudCI+PC9kaXY+Cgk8c2NyaXB0IGRhdGEtc2NvZGVyZWY9IjIxMTEtQiIgc3JjPSJodHRwczovL2ZvcmNlZWxlY3RyaXF1ZS5jb20vanMvbWFwcy5qcy5waHA\/JmFtcDtsYW5nPWZyIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGFzeW5jPSJ0cnVlIj48L3NjcmlwdD4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgaWQ9ImRlZmF1bHREZXBhcnRtZW50Ij4KCgk8L2Rpdj4=","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/forceelectrique.com\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVRhj9owDP1DA3Rs2g8YN7RJN4mJTfuITOq2pmncJU477tfPBTVtOdB9QKTPjvz8_JzVKaxOfyP68_IUPqzGL8NcEQ5gC46sBT1d8aBxF9DJvQQnGnhhyNA_vj-vdoSAnz_dgBn4SpitUHMTacFSRpI410BuOFt4PQd61RL1CF7vLSItcjDC_rx6Wj59XK7HwDR7ZBs0N4mAWsZ-A5fZsbFTCaEUONqU5bAz4FOD2docIJhDAam9xpOTXyWlnHn3W_LYsa_uM6IawoNQzr6eKGJ_RjLV1_70h7IC06wKdOjJ_NDAAInXaX13X8DPEHINNzGpf_lQacexTkbT7Y0HMeUOsgEKXT4TMFkrOsm4Sy1kIPhbyN66wmOLYG_AxqPIeVey8PompJxdICF2b2e_FI6m3HfU4DRYMBdWB9uk2jmzoJ8rxg26kuM41QL5hQ1cSg2CMQRJypRS27UB18LUCWKqVWw856R-yclpcxMudVSrP2vH6Pdo0chM9yTqVWa1YYB24rrjBmz_96xibt1bfDMq2UbsfzMXXaGFlLi4OGxQQ0k6g4cLtyCYaBiwJlrQ8W6jM70QqdH-BdAt282sA-daX4VNuvXWvjVnE4oJtjgaakThH3G4vwa6XkHI4YMl0eqN7oV_L5wniqHSaYhOum_Ms52sfwodMZ8YXe8OzwA523M5hf8&jsrpl=&wswidth=0&device=desktop&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}