{"title":"PHRpdGxlPkh5dW5kYWkgbmV1ZnMgMjAyNSAmYW1wOyAyMDI2IMOgIFJlcGVudGlnbnkgKGVudHJlIE1hc2NvdWNoZSBldCBNb250csOpYWwpIHwgSHl1bmRhaSBSZXBlbnRpZ255PC90aXRsZT4=","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"CgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycpewoJCQkJCQkJCQlzYSgnZGF0YS1vdC1pZ25vcmUnLCB0cnVlKTsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0Jyk7CgkJCQkJCQkJfSBlbHNlIGlmKGN1cnJlbnRDb25zZW50ID09IG51bGwgfHwgY3VycmVudENvbnNlbnQuaW5kZXhPZih1cmxDYXRBcnJba2V5XSkgPT0gLTEpewoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L3BsYWluJyk7CgkJCQkJCQkJCXNhKCdjbGFzcycsICdvcHRhbm9uLWNhdGVnb3J5LScgKyB1cmxDYXRBcnJba2V5XSk7CgkJCQkJCQkJfQoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJc2Eobiwgdik7CgkJCX0KCQkJcmV0dXJuIHM7CgkJfQoJCWZ1bmN0aW9uIGdldENvbnNlbnQoKXsKCQkJbGV0IG5hbWUgPSAnZDJjX2Nvb2tpZV9jb25zZW50JyArICc9JzsKCQkJbGV0IGNhID0gKCcnK2RvY3VtZW50LmNvb2tpZSkuc3BsaXQoJzsnKTsKCQkJZm9yKGxldCBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7CgkJCQlsZXQgYyA9IGNhW2ldOwoJCQkJYyA9IGMudHJpbSgpOwoJCQkJaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7CgkJCQkJdHJ5ewoJCQkJCQljID0gZGVjb2RlVVJJQ29tcG9uZW50KCBjICk7CgkJCQkJfSBjYXRjaCggZSApCgkJCQkJewoJCQkJCQljb25zb2xlLmxvZyggZSApOwoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgkJCQkJcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoJfSkoZG9jdW1lbnQpOwoKCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbigpIHsKCS8vIExpc3RlbiBmb3IgY2hhbmdlcyB0byB0aGUgRE9NCgkJbGV0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CgkJCW11dGF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG11dGF0aW9uKSB7CgkJCQlpZiAobXV0YXRpb24uYWRkZWROb2RlcyAmJiBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCA+IDApIHsKCQkJCQkvLyBDaGVjayBpZiBvdXIgc2NyaXB0IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBET00KCQkJCQlmb3IgKGxldCBpID0gMDsgaSA8IG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoOyBpKyspIHsKCQkJCQkJbGV0IG5vZGUgPSBtdXRhdGlvbi5hZGRlZE5vZGVzW2ldOwoJCQkJCQlpZiAobm9kZS5ub2RlVHlwZSA9PT0gMSAmJiBub2RlLnRhZ05hbWUgPT09ICdTQ1JJUFQnICYmIG5vZGUuc3JjICYmIG5vZGUuc3JjLmluY2x1ZGVzKCdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJykgJiYgdHlwZW9mIE9uZVRydXN0ICE9PSAndW5kZWZpbmVkJykgewoJCQkJCQkJc2V0VGltZW91dChmdW5jdGlvbigpewoJCQkJCQkJCXRyeXtEaWdpdGFsSW50ZXJ2aWV3LkxhdW5jaGVyLmVuYWJsZUxhdW5jaFBvaW50cygpO31jYXRjaChlKXt9CgkJCQkJCQl9LCAxMDAwKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSk7CgkJfSk7CgkJLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSBkb2N1bWVudCB3aXRoIHRoZSBjb25maWd1cmVkIHBhcmFtZXRlcnMKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuaGVhZCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7Cgl9KTsKCi8vZGF0YS1zY29kZXJlZj0iUVBRLTIxMzU1NTU1MjY2MjI1IgooZnVuY3Rpb24oKXt2YXIgbGFzdFdpZHRoPTA7dmFyIGZpcnN0UnVuPTE7dmFyIHRpbWVvdXQ9ZmFsc2U7dHJ5e2Z1bmN0aW9uIGhpZGVtZShlbCl7aWYodHlwZW9mIGVsLmNsYXNzTGlzdD09PSd1bmRlZmluZWQnKXJldHVybjtlbC5jbGFzc0xpc3QuYWRkKCdoaWRlbWUnKTt9CmZ1bmN0aW9uIHNob3dtZShlbCl7aWYodHlwZW9mIGVsLmNsYXNzTGlzdD09PSd1bmRlZmluZWQnKXJldHVybjtlbC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRlbWUnKTt9CnZhciByZXNwb25zaXZlU2l0ZT1mdW5jdGlvbihldmVudCl7dmFyIHN3PXdpbmRvdy5zY3JlZW4ud2lkdGg\/d2luZG93LnNjcmVlbi53aWR0aDp3aW5kb3cub3V0ZXJXaWR0aDt2YXIgb3c9d2luZG93Lm91dGVyV2lkdGgsaXc9d2luZG93LmlubmVyV2lkdGg7dmFyIGJ3PW93PD0zNjAmJml3Pm93P2l3Om93O3ZhciB3aWR0aD1idz5zdz9idzpzdztpZih3aWR0aDw9MzYwKXt3aWR0aD05NjA7fQp2YXIgdmVyc2lvbj0od2lkdGg8OTYwKT8nbW9iaWxlJzonZGVza3RvcCc7dmFyIGVscz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdib2R5ID4gKicpO3ZhciBpZnJhbWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vYmlsZVNpdGUnKTtpZihsYXN0V2lkdGg9PXdpZHRoKXtyZXR1cm4gZmFsc2U7fQpmb3IoaSBpbiBlbHMpe2lmKCFlbHMuaGFzT3duUHJvcGVydHkoaSkpe2NvbnRpbnVlO30Kc3dpdGNoKHZlcnNpb24pe2Nhc2UnbW9iaWxlJzppZihlbHNbaV09PT1pZnJhbWUpe3Nob3dtZShlbHNbaV0pO31lbHNlIGlmKGlmcmFtZSl7aGlkZW1lKGVsc1tpXSk7fQppZihpZnJhbWUpe2lmKGlmcmFtZS5zcmM9PSdhYm91dDpibGFuaycpe2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ3NyYycsaWZyYW1lLmRhdGFzZXRbJ2ltZ3NyYyddKTt9CmlmcmFtZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxbJ3RvcDowJywnZGlzcGxheTpibG9jaycsJ2xlZnQ6MCcsJ3dpZHRoOmNhbGMoMTAwdncgLSAoMTAwdncgLSAxMDAlKSknLCdoZWlnaHQ6MTAwJScsJ2JvdHRvbTowJywncmlnaHQ6MCcsJ3Bvc2l0aW9uOmFic29sdXRlJyxdLmpvaW4oJzsnKSk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCdvcHRhbm9uLWNhdGVnb3J5LUMwMDAxJyk7aWZyYW1lLnNldEF0dHJpYnV0ZSgnZGF0YS1vdC1pZ25vcmUnLHRydWUpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtY29va2llY29uc2VudCcsJ2lnbm9yZScpO30KYnJlYWs7Y2FzZSdkZXNrdG9wJzppZihlbHNbaV09PT1pZnJhbWUpaGlkZW1lKGVsc1tpXSk7ZWxzZSBzaG93bWUoZWxzW2ldKTtpZihpZnJhbWUpe2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJyxbJ2Rpc3BsYXk6IG5vbmUnLCcnXS5qb2luKCc7JykpO30KYnJlYWs7fX0KaWYodmVyc2lvbj09J2Rlc2t0b3AnKXtpZihsYXN0V2lkdGg9PXdpZHRoKXJldHVybjtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodHlwZW9mIGpRdWVyeSE9PSd1bmRlZmluZWQnKWpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoJ3Jlc2l6ZScpO30sNTAwKTt9Cmxhc3RXaWR0aD13aWR0aDt9CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRpbWVvdXQpO3RpbWVvdXQ9c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwyMDApfSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGZ1bmN0aW9uKCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtzLnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvY3NzJyk7cy5pbm5lckhUTUw9Jy5oaWRlbWUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gI21vYmlsZVNpdGUgeyBkaXNwbGF5OiBub25lOyB9Jztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO3ZhciB0Z3Q9J2h0dHBzOi8vd3d3Lmh5dW5kYWlyZXBlbnRpZ255LmNvbS9lbWJlZGVyL3Byb2Nlc3MvZnI\/bmZyPTEnLnJlcGxhY2UoLyUyRi9pZywnLycpO3RndCs9KCh0Z3QuaW5kZXhPZignPycpPT09LTEpPyc\/JzpgJmApKyduZnI9MSZ3c3dpZHRoPScrd2luZG93LnNjcmVlbi53aWR0aDtsZXQgdXJsUGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXModGd0KTtsZXQgY291bnQ9MDtpZih1cmxQYXJhbXMhPT0ndW5kZWZpbmVkJyYmdXJsUGFyYW1zLmhhcygnbmZyJykpe2NvdW50PXVybFBhcmFtcy5nZXRBbGwoJ25mcicpLmxlbmd0aDt9CmlmKGNvdW50PDMpe2kuc2V0QXR0cmlidXRlKCdkYXRhLWltZ3NyYycsdGd0KTtpLnNldEF0dHJpYnV0ZSgnc3JjJywnYWJvdXQ6YmxhbmsnKTtpLnNldEF0dHJpYnV0ZSgnaWQnLCdtb2JpbGVTaXRlJyk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt9CnJlc3BvbnNpdmVTaXRlKCk7fSk7c2V0VGltZW91dChyZXNwb25zaXZlU2l0ZSwxMDAwKTt9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSk7fX0pKCk7CgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iUEFGLTE4NjQ1NjM2ODExODUxMjI4NSIKKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBTVE9SQUdFX0tFWT0nb25lcnJvcicsc3RvcmFnZT1bXSxlcnJvckNvbGxlY3Rpb25zPVtdLHBpeGVsQWRkcmVzcz0nL2ZyL2FqYXgvbG9nRXJyb3I\/d3N3aWR0aD0wJzt2YXIgc3RhcnRUaW1lPW5ldyBEYXRlKCk7bG9hZFN0b3JlZEVycm9ycygpO3ZhciBwaXhlbEZyYWdtZW50PXVuZGVmaW5lZDtmdW5jdGlvbiBnZXRQaXhlbEZyYWdtZW50KCl7aWYocGl4ZWxGcmFnbWVudCE9PXVuZGVmaW5lZClyZXR1cm4gcGl4ZWxGcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk7dmFyIGZyYWc9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3ZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZnJhZy5hcHBlbmRDaGlsZChkaXYpO3BpeGVsRnJhZ21lbnQ9ZnJhZy5jbG9uZU5vZGUodHJ1ZSk7cmV0dXJuIGZyYWc7fQpmdW5jdGlvbiBoYXNQaXhlbChkYXRhKXtyZXR1cm4hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltkYXRhLWxpbmU9IicrZGF0YS5saW5lKyciXVtkYXRhLW1zZz0iJytkYXRhLm1zZysnIl0nKTt9CmZ1bmN0aW9uIGNyZWF0ZVBpeGVsKGRhdGEpe2lmKGhhc1BpeGVsKGRhdGEpKXJldHVybiB0cnVlO3ZhciBmcmFnbWVudD1nZXRQaXhlbEZyYWdtZW50KCk7dmFyIGRpdj1mcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKTt2YXIgaW50ZXJuYWw9aXNGaWxlSW50ZXJuYWwoZGF0YS5maWxlKT8xOjA7dmFyIG9iaj17bXNnOmRhdGEubXNnLGFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGludGVybmFsOmludGVybmFsLHVpZDpnZXRVSUQoKSx0b3A6KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCktc3RhcnRUaW1lLmdldFRpbWUoKSksbW91c2VPdmVyOmdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl9O3ZhciBhZGRFbGVtZW50PWZ1bmN0aW9uKCl7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1tc2cnLGRhdGEubXNnKTtkaXYuc2V0QXR0cmlidXRlKCdkYXRhLWxpbmUnLGRhdGEubGluZSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFnbWVudCk7fTthamF4KG9iaixmdW5jdGlvbih4aHIpe2NvbnNvbGUubG9nKCJJc3N1ZSBzZW5kaW5nIGVycm9yLCBzdGF0dXM6ICIreGhyLnN0YXR1cysiIGVycm9yOiAiK3hoci5yZXNwb25zZVRleHQpO2FkZEVsZW1lbnQoKTt9LGZ1bmN0aW9uKHhocil7YWRkRWxlbWVudCgpO2NvbnNvbGUubG9nKHhocik7fSk7fQpmdW5jdGlvbiBhamF4KGRhdGEsZXJyb3Isc3VjY2Vzcyl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3QoKTt4aHIub3BlbignUE9TVCcscGl4ZWxBZGRyZXNzLHRydWUpO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnKTt4aHIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeGhyLnJlYWR5U3RhdGU9PT00KXtpZih4aHIuc3RhdHVzPT09MjAwKXtzdWNjZXNzKHhocik7fWVsc2V7ZXJyb3IoeGhyKTt9fX07eGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO30KZnVuY3Rpb24gZ2V0Q3VycmVudE1vdXNlT3ZlckVsZW1lbnQoKXt2YXIgaG92ZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmhvdmVyJyk7aWYoaG92ZXI9PT11bmRlZmluZWR8fGhvdmVyLmxlbmd0aD09PTApe3JldHVybidub25lJzt9CmhvdmVyPWhvdmVyW2hvdmVyLmxlbmd0aC0xXS5jbG9uZU5vZGUoKTtyZXR1cm4gaG92ZXIub3V0ZXJIVE1MO30KZnVuY3Rpb24gaXNGaWxlSW50ZXJuYWwoZmlsZSl7cmV0dXJuKGZpbGUuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPi0xKTt9CmZ1bmN0aW9uIGdldFVJRCgpe2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9PSd1bmRlZmluZWQnKXtyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO30KcmV0dXJuJyc7fQpmdW5jdGlvbiBsb2FkU3RvcmVkRXJyb3JzKCl7aWYodHlwZW9mIHNlc3Npb25TdG9yYWdlIT09J3VuZGVmaW5lZCcpe2lmKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKXtzdG9yYWdlPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkpO319CnJldHVybiBzdG9yYWdlO30KZnVuY3Rpb24gaGFzU2Vzc2lvbkVycm9yU2hvd24obXNnKXtsb2FkU3RvcmVkRXJyb3JzKCk7cmV0dXJuIGhhc0Vycm9yU2hvd24obXNnKTt9CmZ1bmN0aW9uIGhhc0Vycm9yU2hvd24obXNnKXtpZihzdG9yYWdlPT09dW5kZWZpbmVkKXJldHVybiBmYWxzZTtmb3IodmFyIGk9MDtpPHN0b3JhZ2UubGVuZ3RoO2krKyl7aWYoc3RvcmFnZVtpXT09PW1zZyl7cmV0dXJuIHRydWU7fX0KcmV0dXJuIGZhbHNlO30KaWYod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJ2N1c3RvbS1wYWdlLXByZXZpZXcuaHRtbCcpPT09LTEpe3dpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKG1zZyxmaWxlLGxpbmUsY29sLGVycm9yKXtjb25zb2xlLmxvZygnb25lcnJvciByYWlzZWQhJyk7aWYoIWhhc1Nlc3Npb25FcnJvclNob3duKG1zZykpe2Vycm9yQ29sbGVjdGlvbnMucHVzaCh7bXNnOm1zZyxsaW5lOmxpbmUsZmlsZTpmaWxlfSk7c3RvcmFnZS5wdXNoKG1zZyk7aWYoc2Vzc2lvblN0b3JhZ2UhPT11bmRlZmluZWQpe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksSlNPTi5zdHJpbmdpZnkoc3RvcmFnZSkpO319CmlmKGRvY3VtZW50Wydib2R5J10hPT1udWxsJiZkb2N1bWVudFsnYm9keSddIT09dW5kZWZpbmVkKXthZGRQaXhlbHNUb0RvbSgpO30KaWYoJ2xpdmUnPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnZXhjZXB0aW9uJyx7J3NlbmRfdG8nOidHLVo1UThaNUM3S0YnLCdkZXNjcmlwdGlvbic6bXNnLCdmYXRhbCc6dHJ1ZX0pO319O30KaWYoL1dlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBfdGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZigvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKXtjbGVhckludGVydmFsKF90aW1lcik7b25sb2FkKCk7fX0sMTApO30KLypAY2Nfb24gQCovCi8qQGlmIChAX3dpbjMyKQoJCQkJZG9jdW1lbnQud3JpdGUoIjwiKyJzY3JpcHQgaWQ9X19pZV9vbmxvYWQgZGVmZXIgc3JjPWphdmFzY3JpcHQ6dm9pZCgwKT48XC9zY3JpcHQ+Iik7CgkJCQl2YXIgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9faWVfb25sb2FkIik7CgkJCQlzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CgkJCQkgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgewoJCQkJCW9ubG9hZCgpOyAvLyBjYWxsIHRoZSBvbmxvYWQgaGFuZGxlcgoJCQkJICB9CgkJCQl9OwoJCQkvKkBlbmQgQCovCmZ1bmN0aW9uIGFkZFBpeGVsc1RvRG9tKCl7Zm9yKHZhciBpPTA7aTxlcnJvckNvbGxlY3Rpb25zLmxlbmd0aDtpKyspe2NvbnNvbGUubG9nKCdjcmVhdGVQaXhlbCcsZXJyb3JDb2xsZWN0aW9uc1tpXSk7fX0KZnVuY3Rpb24gb25sb2FkKCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmZ1bmN0aW9uIF9jcmVhdGVTY3JpcHQodGV4dCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5hcHBlbmQodGV4dCk7cmV0dXJuIHM7fQp3aW5kb3cuZXJyb3JUZXN0cz17c3ludGF4OmZ1bmN0aW9uKCl7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KCd9Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9LG9mTnVsbDpmdW5jdGlvbigpe3ZhciB0ZXh0PSd2YXIgYSA9IG51bGw7IHZhciBiID0gYS53aGF0Oyc7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KHRleHQpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxpbnZhbGlkQXNzaWdubWVudDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnMSA9IGZ1bmMoKTsnKTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO319O3dpbmRvdy50cmFja0NvbnZlcnNpb249ZnVuY3Rpb24oKXtpZih0eXBlb2YgZ3RhZz09J3VuZGVmaW5lZCcpcmV0dXJuLTE7aWYoIXdpbmRvdy5kMmNfYXdjSWR8fCF3aW5kb3cuZDJjX2F3Y0xhYmVsKXJldHVybi0zO2lmKGRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk9PSdsaXZlJyYmJ1VTJz09J0NBJyl7Z3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJyx7J3NlbmRfdG8nOmQyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsfSk7fWVsc2V7Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsKyIgfSk7Iik7fX19KSgpOwovKl1dPiovCgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iUEFGLTE4NjQ1NjM2ODExODUxMjI4NSIKKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBTVE9SQUdFX0tFWT0nb25lcnJvcicsc3RvcmFnZT1bXSxlcnJvckNvbGxlY3Rpb25zPVtdLHBpeGVsQWRkcmVzcz0nL2ZyL2FqYXgvbG9nRXJyb3I\/d3N3aWR0aD0wJzt2YXIgc3RhcnRUaW1lPW5ldyBEYXRlKCk7bG9hZFN0b3JlZEVycm9ycygpO3ZhciBwaXhlbEZyYWdtZW50PXVuZGVmaW5lZDtmdW5jdGlvbiBnZXRQaXhlbEZyYWdtZW50KCl7aWYocGl4ZWxGcmFnbWVudCE9PXVuZGVmaW5lZClyZXR1cm4gcGl4ZWxGcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk7dmFyIGZyYWc9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3ZhciBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZnJhZy5hcHBlbmRDaGlsZChkaXYpO3BpeGVsRnJhZ21lbnQ9ZnJhZy5jbG9uZU5vZGUodHJ1ZSk7cmV0dXJuIGZyYWc7fQpmdW5jdGlvbiBoYXNQaXhlbChkYXRhKXtyZXR1cm4hIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltkYXRhLWxpbmU9IicrZGF0YS5saW5lKyciXVtkYXRhLW1zZz0iJytkYXRhLm1zZysnIl0nKTt9CmZ1bmN0aW9uIGNyZWF0ZVBpeGVsKGRhdGEpe2lmKGhhc1BpeGVsKGRhdGEpKXJldHVybiB0cnVlO3ZhciBmcmFnbWVudD1nZXRQaXhlbEZyYWdtZW50KCk7dmFyIGRpdj1mcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKTt2YXIgaW50ZXJuYWw9aXNGaWxlSW50ZXJuYWwoZGF0YS5maWxlKT8xOjA7dmFyIG9iaj17bXNnOmRhdGEubXNnLGFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGludGVybmFsOmludGVybmFsLHVpZDpnZXRVSUQoKSx0b3A6KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCktc3RhcnRUaW1lLmdldFRpbWUoKSksbW91c2VPdmVyOmdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl9O3ZhciBhZGRFbGVtZW50PWZ1bmN0aW9uKCl7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1tc2cnLGRhdGEubXNnKTtkaXYuc2V0QXR0cmlidXRlKCdkYXRhLWxpbmUnLGRhdGEubGluZSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFnbWVudCk7fTthamF4KG9iaixmdW5jdGlvbih4aHIpe2NvbnNvbGUubG9nKCJJc3N1ZSBzZW5kaW5nIGVycm9yLCBzdGF0dXM6ICIreGhyLnN0YXR1cysiIGVycm9yOiAiK3hoci5yZXNwb25zZVRleHQpO2FkZEVsZW1lbnQoKTt9LGZ1bmN0aW9uKHhocil7YWRkRWxlbWVudCgpO2NvbnNvbGUubG9nKHhocik7fSk7fQpmdW5jdGlvbiBhamF4KGRhdGEsZXJyb3Isc3VjY2Vzcyl7dmFyIHhocj1uZXcgWE1MSHR0cFJlcXVlc3QoKTt4aHIub3BlbignUE9TVCcscGl4ZWxBZGRyZXNzLHRydWUpO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCdhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgnKTt4aHIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeGhyLnJlYWR5U3RhdGU9PT00KXtpZih4aHIuc3RhdHVzPT09MjAwKXtzdWNjZXNzKHhocik7fWVsc2V7ZXJyb3IoeGhyKTt9fX07eGhyLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO30KZnVuY3Rpb24gZ2V0Q3VycmVudE1vdXNlT3ZlckVsZW1lbnQoKXt2YXIgaG92ZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmhvdmVyJyk7aWYoaG92ZXI9PT11bmRlZmluZWR8fGhvdmVyLmxlbmd0aD09PTApe3JldHVybidub25lJzt9CmhvdmVyPWhvdmVyW2hvdmVyLmxlbmd0aC0xXS5jbG9uZU5vZGUoKTtyZXR1cm4gaG92ZXIub3V0ZXJIVE1MO30KZnVuY3Rpb24gaXNGaWxlSW50ZXJuYWwoZmlsZSl7cmV0dXJuKGZpbGUuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPi0xKTt9CmZ1bmN0aW9uIGdldFVJRCgpe2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9PSd1bmRlZmluZWQnKXtyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO30KcmV0dXJuJyc7fQpmdW5jdGlvbiBsb2FkU3RvcmVkRXJyb3JzKCl7aWYodHlwZW9mIHNlc3Npb25TdG9yYWdlIT09J3VuZGVmaW5lZCcpe2lmKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKXtzdG9yYWdlPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX0tFWSkpO319CnJldHVybiBzdG9yYWdlO30KZnVuY3Rpb24gaGFzU2Vzc2lvbkVycm9yU2hvd24obXNnKXtsb2FkU3RvcmVkRXJyb3JzKCk7cmV0dXJuIGhhc0Vycm9yU2hvd24obXNnKTt9CmZ1bmN0aW9uIGhhc0Vycm9yU2hvd24obXNnKXtpZihzdG9yYWdlPT09dW5kZWZpbmVkKXJldHVybiBmYWxzZTtmb3IodmFyIGk9MDtpPHN0b3JhZ2UubGVuZ3RoO2krKyl7aWYoc3RvcmFnZVtpXT09PW1zZyl7cmV0dXJuIHRydWU7fX0KcmV0dXJuIGZhbHNlO30KaWYod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJ2N1c3RvbS1wYWdlLXByZXZpZXcuaHRtbCcpPT09LTEpe3dpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKG1zZyxmaWxlLGxpbmUsY29sLGVycm9yKXtjb25zb2xlLmxvZygnb25lcnJvciByYWlzZWQhJyk7aWYoIWhhc1Nlc3Npb25FcnJvclNob3duKG1zZykpe2Vycm9yQ29sbGVjdGlvbnMucHVzaCh7bXNnOm1zZyxsaW5lOmxpbmUsZmlsZTpmaWxlfSk7c3RvcmFnZS5wdXNoKG1zZyk7aWYoc2Vzc2lvblN0b3JhZ2UhPT11bmRlZmluZWQpe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksSlNPTi5zdHJpbmdpZnkoc3RvcmFnZSkpO319CmlmKGRvY3VtZW50Wydib2R5J10hPT1udWxsJiZkb2N1bWVudFsnYm9keSddIT09dW5kZWZpbmVkKXthZGRQaXhlbHNUb0RvbSgpO30KaWYoJ2xpdmUnPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnZXhjZXB0aW9uJyx7J3NlbmRfdG8nOidHLVo1UThaNUM3S0YnLCdkZXNjcmlwdGlvbic6bXNnLCdmYXRhbCc6dHJ1ZX0pO319O30KaWYoL1dlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBfdGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZigvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50LnJlYWR5U3RhdGUpKXtjbGVhckludGVydmFsKF90aW1lcik7b25sb2FkKCk7fX0sMTApO30KLypAY2Nfb24gQCovCi8qQGlmIChAX3dpbjMyKQoJCQkJZG9jdW1lbnQud3JpdGUoIjwiKyJzY3JpcHQgaWQ9X19pZV9vbmxvYWQgZGVmZXIgc3JjPWphdmFzY3JpcHQ6dm9pZCgwKT48XC9zY3JpcHQ+Iik7CgkJCQl2YXIgc2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9faWVfb25sb2FkIik7CgkJCQlzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CgkJCQkgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgewoJCQkJCW9ubG9hZCgpOyAvLyBjYWxsIHRoZSBvbmxvYWQgaGFuZGxlcgoJCQkJICB9CgkJCQl9OwoJCQkvKkBlbmQgQCovCmZ1bmN0aW9uIGFkZFBpeGVsc1RvRG9tKCl7Zm9yKHZhciBpPTA7aTxlcnJvckNvbGxlY3Rpb25zLmxlbmd0aDtpKyspe2NvbnNvbGUubG9nKCdjcmVhdGVQaXhlbCcsZXJyb3JDb2xsZWN0aW9uc1tpXSk7fX0KZnVuY3Rpb24gb25sb2FkKCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmZ1bmN0aW9uIF9jcmVhdGVTY3JpcHQodGV4dCl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5hcHBlbmQodGV4dCk7cmV0dXJuIHM7fQp3aW5kb3cuZXJyb3JUZXN0cz17c3ludGF4OmZ1bmN0aW9uKCl7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KCd9Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9LG9mTnVsbDpmdW5jdGlvbigpe3ZhciB0ZXh0PSd2YXIgYSA9IG51bGw7IHZhciBiID0gYS53aGF0Oyc7dmFyIHNjcmlwdD1fY3JlYXRlU2NyaXB0KHRleHQpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxpbnZhbGlkQXNzaWdubWVudDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnMSA9IGZ1bmMoKTsnKTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO319O3dpbmRvdy50cmFja0NvbnZlcnNpb249ZnVuY3Rpb24oKXtpZih0eXBlb2YgZ3RhZz09J3VuZGVmaW5lZCcpcmV0dXJuLTE7aWYoIXdpbmRvdy5kMmNfYXdjSWR8fCF3aW5kb3cuZDJjX2F3Y0xhYmVsKXJldHVybi0zO2lmKGRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk9PSdsaXZlJyYmJ1VTJz09J0NBJyl7Z3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJyx7J3NlbmRfdG8nOmQyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsfSk7fWVsc2V7Y29uc29sZS5sb2coImd0YWcoJ2V2ZW50JywnY29udmVyc2lvbicsIHsgJ3NlbmRfdG8nOiAiK2QyY19hd2NJZCsnLycrZDJjX2F3Y0xhYmVsKyIgfSk7Iik7fX19KSgpOwovKl1dPiovCgovL2RhdGEtc2NvZGVyZWY9IlFQUS0yMTM1NTU1NTI2NjIyNSIKKGZ1bmN0aW9uKCl7dmFyIGxhc3RXaWR0aD0wO3ZhciBmaXJzdFJ1bj0xO3ZhciB0aW1lb3V0PWZhbHNlO3RyeXtmdW5jdGlvbiBoaWRlbWUoZWwpe2lmKHR5cGVvZiBlbC5jbGFzc0xpc3Q9PT0ndW5kZWZpbmVkJylyZXR1cm47ZWwuY2xhc3NMaXN0LmFkZCgnaGlkZW1lJyk7fQpmdW5jdGlvbiBzaG93bWUoZWwpe2lmKHR5cGVvZiBlbC5jbGFzc0xpc3Q9PT0ndW5kZWZpbmVkJylyZXR1cm47ZWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZW1lJyk7fQp2YXIgcmVzcG9uc2l2ZVNpdGU9ZnVuY3Rpb24oZXZlbnQpe3ZhciBzdz13aW5kb3cuc2NyZWVuLndpZHRoP3dpbmRvdy5zY3JlZW4ud2lkdGg6d2luZG93Lm91dGVyV2lkdGg7dmFyIG93PXdpbmRvdy5vdXRlcldpZHRoLGl3PXdpbmRvdy5pbm5lcldpZHRoO3ZhciBidz1vdzw9MzYwJiZpdz5vdz9pdzpvdzt2YXIgd2lkdGg9Ync+c3c\/Ync6c3c7aWYod2lkdGg8PTM2MCl7d2lkdGg9OTYwO30KdmFyIHZlcnNpb249KHdpZHRoPDk2MCk\/J21vYmlsZSc6J2Rlc2t0b3AnO3ZhciBlbHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYm9keSA+IConKTt2YXIgaWZyYW1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2JpbGVTaXRlJyk7aWYobGFzdFdpZHRoPT13aWR0aCl7cmV0dXJuIGZhbHNlO30KZm9yKGkgaW4gZWxzKXtpZighZWxzLmhhc093blByb3BlcnR5KGkpKXtjb250aW51ZTt9CnN3aXRjaCh2ZXJzaW9uKXtjYXNlJ21vYmlsZSc6aWYoZWxzW2ldPT09aWZyYW1lKXtzaG93bWUoZWxzW2ldKTt9ZWxzZSBpZihpZnJhbWUpe2hpZGVtZShlbHNbaV0pO30KaWYoaWZyYW1lKXtpZihpZnJhbWUuc3JjPT0nYWJvdXQ6YmxhbmsnKXtpZnJhbWUuc2V0QXR0cmlidXRlKCdzcmMnLGlmcmFtZS5kYXRhc2V0WydpbWdzcmMnXSk7fQppZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsWyd0b3A6MCcsJ2Rpc3BsYXk6YmxvY2snLCdsZWZ0OjAnLCd3aWR0aDpjYWxjKDEwMHZ3IC0gKDEwMHZ3IC0gMTAwJSkpJywnaGVpZ2h0OjEwMCUnLCdib3R0b206MCcsJ3JpZ2h0OjAnLCdwb3NpdGlvbjphYnNvbHV0ZScsXS5qb2luKCc7JykpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMScpO2lmcmFtZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtb3QtaWdub3JlJyx0cnVlKTtpZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLWNvb2tpZWNvbnNlbnQnLCdpZ25vcmUnKTt9CmJyZWFrO2Nhc2UnZGVza3RvcCc6aWYoZWxzW2ldPT09aWZyYW1lKWhpZGVtZShlbHNbaV0pO2Vsc2Ugc2hvd21lKGVsc1tpXSk7aWYoaWZyYW1lKXtpZnJhbWUuc2V0QXR0cmlidXRlKCdzdHlsZScsWydkaXNwbGF5OiBub25lJywnJ10uam9pbignOycpKTt9CmJyZWFrO319CmlmKHZlcnNpb249PSdkZXNrdG9wJyl7aWYobGFzdFdpZHRoPT13aWR0aClyZXR1cm47c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHR5cGVvZiBqUXVlcnkhPT0ndW5kZWZpbmVkJylqUXVlcnkod2luZG93KS50cmlnZ2VyKCdyZXNpemUnKTt9LDUwMCk7fQpsYXN0V2lkdGg9d2lkdGg7fQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aW1lb3V0KTt0aW1lb3V0PXNldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMjAwKX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7cy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2NzcycpO3MuaW5uZXJIVE1MPScuaGlkZW1lIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9ICNtb2JpbGVTaXRlIHsgZGlzcGxheTogbm9uZTsgfSc7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTt2YXIgdGd0PSdodHRwczovL3d3dy5oeXVuZGFpcmVwZW50aWdueS5jb20vZW1iZWRlci9wcm9jZXNzL2ZyP25mcj0xJy5yZXBsYWNlKC8lMkYvaWcsJy8nKTt0Z3QrPSgodGd0LmluZGV4T2YoJz8nKT09PS0xKT8nPyc6YCZgKSsnbmZyPTEmd3N3aWR0aD0nK3dpbmRvdy5zY3JlZW4ud2lkdGg7bGV0IHVybFBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHRndCk7bGV0IGNvdW50PTA7aWYodXJsUGFyYW1zIT09J3VuZGVmaW5lZCcmJnVybFBhcmFtcy5oYXMoJ25mcicpKXtjb3VudD11cmxQYXJhbXMuZ2V0QWxsKCduZnInKS5sZW5ndGg7fQppZihjb3VudDwzKXtpLnNldEF0dHJpYnV0ZSgnZGF0YS1pbWdzcmMnLHRndCk7aS5zZXRBdHRyaWJ1dGUoJ3NyYycsJ2Fib3V0OmJsYW5rJyk7aS5zZXRBdHRyaWJ1dGUoJ2lkJywnbW9iaWxlU2l0ZScpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7fQpyZXNwb25zaXZlU2l0ZSgpO30pO3NldFRpbWVvdXQocmVzcG9uc2l2ZVNpdGUsMTAwMCk7fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpO319KSgpOwoKCSgoZCkgPT4gewoJCWNvbnN0IGNlID0gZC5jcmVhdGVFbGVtZW50OwoJCWxldCB1cmxDYXRBcnIgPSB7CgkJCSdjbGFyaXZveS5jb20nIDogJ0MwMDAyJywKCQkJJ2RlYWxlci1sZWFkcy5jYScgOiAnQzAwMDMnLAoJCQkncm9hZHN0ZXIuY29tL3JvYWRzdGVyJyA6ICdDMDAwMicsLy9EV1AtMTIyODEKCQkJJ2Z6bG5rLmNvbS9zaWduYWxzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIyODkKCQkJJ2xpdmVjaGF0aW5jLmNvbS90cmFja2luZy5qcycgOiAnQzAwMDMnLC8vRFdQLTEyMzAzCgkJCSd0aGVsaXZlY2hhdHNvZnR3YXJlLmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMjk3CgkJCSdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzMDAKCQkJJ3Nkay5hdXRvdmVyaWZ5LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAxCgkJCSdhbmFseXRpY3MuanMnIDogJ0MwMDAyJywvL0RXUC0xMjMwOQoJCQknaHMtc2NyaXB0cy5jb20nIDogJ0MwMDA0JywvL0RXUC0xMjMyMAoJCQknbWFya2V0aW5nYXV0b21hdGlvbi5zZXJ2aWNlcycgOiAnQzAwMDQnLC8vRFdQLTEyMzIyCgkJCSdsZWFkZm94LmNvJyA6ICdDMDAwNCcsCgkJCSdzdGF0aWMudXB0cmFjcy5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjM1NAogCQkJJ2JhdC5iaW5nLmNvbScgOiAnQzAwMDInLC8vRFdQLTEyMzU0CgkJCSdndGFnL2pzJyA6ICdDMDAwMicsCgkJCSdzZC5qcycgOiAnQzAwMDEnLAoJCQknc2RhLmpzJyA6ICdDMDAwMScsCgkJCQoJCX07CgkJbGV0IHVybENhdFJlZ2V4ID0gJygnICsgT2JqZWN0LmtleXModXJsQ2F0QXJyKS5qb2luKCd8JykucmVwbGFjZSgvWys\/Ll0vZywgJ1wkJicpICsgJyknOwoJCWxldCBjdXJyZW50Q29uc2VudCA9IGdldENvbnNlbnQoKTsKCQl3aW5kb3cuc2NyaXB0VXJsQXJyID0gW107CgkJZC5jcmVhdGVFbGVtZW50ID0gZnVuY3Rpb24oLi4uYXJncykgewoJCQljb25zdCBzID0gY2UuYmluZChkKSguLi5hcmdzKSwgc2EgPSBzLnNldEF0dHJpYnV0ZS5iaW5kKHMpOwoJCQlzLnNldEF0dHJpYnV0ZSA9IGZ1bmN0aW9uKG4sIHYpIHsKCQkJCWlmKG4gPT09ICdzcmMnICYmIHdpbmRvdy5zY3JpcHRVcmxBcnIuaW5kZXhPZih2LnRvU3RyaW5nKCkpID09IC0xKSB7CgkJCQkJaWYoKG5ldyBSZWdFeHAodXJsQ2F0UmVnZXgpKS50ZXN0KHYpKXsKCQkJCQkJZm9yKGtleSBpbiB1cmxDYXRBcnIpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCQkJCQlpZiAoKG5ldyBSZWdFeHAoa2V5KSkudGVzdCh2KSkgewoJCQkJCQkJCXdpbmRvdy5zY3JpcHRVcmxBcnIucHVzaCh2LnRvU3RyaW5nKCkpOwoJCQkJCQkJCWlmKGtleSA9PSAnZ3RhZy9qcycgfHwga2V5ID09ICdiYXQuYmluZy5jb20nIHx8IGtleSA9PSAnc2QuanMnIHx8IGtleSA9PSAnc2RhLmpzJyl7CgkJCQkJCQkJCXNhKCdkYXRhLW90LWlnbm9yZScsIHRydWUpOwoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTsKCQkJCQkJCQl9IGVsc2UgaWYoY3VycmVudENvbnNlbnQgPT0gbnVsbCB8fCBjdXJyZW50Q29uc2VudC5pbmRleE9mKHVybENhdEFycltrZXldKSA9PSAtMSl7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvcGxhaW4nKTsKCQkJCQkJCQkJc2EoJ2NsYXNzJywgJ29wdGFub24tY2F0ZWdvcnktJyArIHVybENhdEFycltrZXldKTsKCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYShuLCB2KTsKCQkJfQoJCQlyZXR1cm4gczsKCQl9CgkJZnVuY3Rpb24gZ2V0Q29uc2VudCgpewoJCQlsZXQgbmFtZSA9ICdkMmNfY29va2llX2NvbnNlbnQnICsgJz0nOwoJCQlsZXQgY2EgPSAoJycrZG9jdW1lbnQuY29va2llKS5zcGxpdCgnOycpOwoJCQlmb3IobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHsKCQkJCWxldCBjID0gY2FbaV07CgkJCQljID0gYy50cmltKCk7CgkJCQlpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHsKCQkJCQl0cnl7CgkJCQkJCWMgPSBkZWNvZGVVUklDb21wb25lbnQoIGMgKTsKCQkJCQl9IGNhdGNoKCBlICkKCQkJCQl7CgkJCQkJCWNvbnNvbGUubG9nKCBlICk7CgkJCQkJCXJldHVybiBudWxsOwoJCQkJCX0KCQkJCQlyZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gbnVsbDsKCQl9Cgl9KShkb2N1bWVudCk7CgoJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewoJLy8gTGlzdGVuIGZvciBjaGFuZ2VzIHRvIHRoZSBET00KCQlsZXQgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKCQkJbXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24obXV0YXRpb24pIHsKCQkJCWlmIChtdXRhdGlvbi5hZGRlZE5vZGVzICYmIG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoID4gMCkgewoJCQkJCS8vIENoZWNrIGlmIG91ciBzY3JpcHQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIERPTQoJCQkJCWZvciAobGV0IGkgPSAwOyBpIDwgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykgewoJCQkJCQlsZXQgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbaV07CgkJCQkJCWlmIChub2RlLm5vZGVUeXBlID09PSAxICYmIG5vZGUudGFnTmFtZSA9PT0gJ1NDUklQVCcgJiYgbm9kZS5zcmMgJiYgbm9kZS5zcmMuaW5jbHVkZXMoJ2NhbmFkYS5kaWdpdGFsLWludGVydmlldy5jb20nKSAmJiB0eXBlb2YgT25lVHJ1c3QgIT09ICd1bmRlZmluZWQnKSB7CgkJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCQkJCQkJdHJ5e0RpZ2l0YWxJbnRlcnZpZXcuTGF1bmNoZXIuZW5hYmxlTGF1bmNoUG9pbnRzKCk7fWNhdGNoKGUpe30KCQkJCQkJCX0sIDEwMDApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9KTsKCQl9KTsKCQkvLyBTdGFydCBvYnNlcnZpbmcgdGhlIGRvY3VtZW50IHdpdGggdGhlIGNvbmZpZ3VyZWQgcGFyYW1ldGVycwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7CgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5oZWFkLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCX0pOwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlpaWi00MTU1NjQ4Igp2YXIgY3VycmVudFNpdGVJRD0yNTE7dmFyIGQyY19nYUFjY291bnRzPXsiYWxsIjpbXSwiaW50ZXJuYWwiOltdfTt2YXIgZDJjX2F3Y0lkPSdBVy05NDgxNjg5NTUnO3ZhciBkMmNfYXdjTGFiZWw9J0NzdmRDTGVCbEY0US05R1B4QU0nO3ZhciBsZWdhY3lfZ2E9ZmFsc2U7d2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoJ2pzJyxuZXcgRGF0ZSgpKTtkMmNfZ2FBY2NvdW50cy5hbGwucHVzaCgnRy1aNVE4WjVDN0tGJyk7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goJ0ctWDRFWE5XWVhLTCcpO2lmKGQyY19hd2NJZCl7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goZDJjX2F3Y0lkKTt9CihkMmNfZ2FBY2NvdW50cy5hbGx8fFtdKS5tYXAoZnVuY3Rpb24oaWQpe2d0YWcoJ2NvbmZpZycsaWQseydzZW5kX3BhZ2Vfdmlldyc6ZmFsc2UsJ2xpbmtlcic6eydkb21haW5zJzpKU09OLnBhcnNlKGF0b2IoIld5Sm9kSFJ3Y3pwY0wxd3ZleVJUU0U5U1ZFUkZRVXhGVWs1QlRVVkRWRUZWVWt4OUxuTm9iM0F1YUhsMWJtUmhhV05oYm1Ga1lTNWpiMjBpTENKb2RIUndjenBjTDF3dmMyaHZjQzVvZVhWdVpHRnBjbVZ3Wlc1MGFXZHVlUzVqYjIwaVhRPT0iKSksJ2Nvb2tpZV9kb21haW4nOid3d3cuaHl1bmRhaXJlcGVudGlnbnkuY29tJ319KTt9KTsKLypdXT4qLwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IkZMVC0xNTY2NDU4ODk5NjQ1MzQxMTUzODYiCnZhciBkb2NSZWFkeUFycj1bXTt2YXIgcGFnZT0iTkVXQ0FSUyI7dmFyIGZiQ2hhdFJlZj17fTt2YXIgZGVwbG95bWVudFR5cGU9J2xpdmUnO3ZhciBjdXJyZW50U2l0ZUlEPTI1MTt2YXIgY3VycmVudERlYWxlcklEPTE4MDg7dmFyIGdhVHlwZT0nZ3RhZyc7dmFyIGFsbENhbXBhaWducz1bWyJoeXVuZGFpcmVwZW50aWdueS5jb20iLCJDb3VycmllbHMtcmVsYW5jZSIsIlRvdXRlcyIsIjk1NSJdLFsiaHl1bmRhaXJlcGVudGlnbnkuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJOZXVmcyIsIjk1NiJdLFsiaHl1bmRhaXJlcGVudGlnbnkuY29tIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJPY2Nhc2lvbiIsIjk1NyJdLFsiSHl1bmRhaXJlcGVudGlnbnkuY29tIiwiR29vZ2xlIiwiTmV1ZnMiLCIxMTQ4Il0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJHb29nbGUiLCJSZWNpYmxhZ2UiLCIxNTE1Il0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJGYWNlYm9vayIsIlJlY2libGFnZSIsIjI2NjYiXSxbImh5dW5kYWlyZXBlbnRpZ255LmNvbSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiTmV1Zi0zMC1qb3VycyIsIjI3MjgiXSxbImh5dW5kYWlyZXBlbnRpZ255LmNvbSIsIlNFTSIsIkFnZW5jeSIsIjMzNDIiXSxbIkh5dW5kYWlyZXBlbnRpZ255LmNvbSIsIkJpbmciLCJCaW5nIiwiNDE0MiJdLFsiaHl1bmRhaXJlcGVudGlnbnkuY29tIiwiVHJhZGVyIiwiUmV0YXJnZXRpbmciLCI0MzQ0Il0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJGYWNlYm9vayIsIk5ldWYtbGVhZGFkcy1ibGFja2ZyaWRheSIsIjUyMTAiXSxbIkh5dW5kYWlyZXBlbnRpZ255LmNvbSIsIkZhY2Vib29rIiwiTmV1ZiIsIjEwNzM1Il0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJGYWNlYm9vayIsIkxlYWRhZHMtbmV1ZiIsIjEyNTU4Il0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJHb29nbGUiLCJPY2Nhc2lvbiIsIjE5MDM2Il0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJHb29nbGUiLCJOZXVmLWlvbmlxNSIsIjMxNzUwIl0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJHb29nbGUiLCJOZXVmLXlvdXR1YmUiLCIzMjY4NyJdLFsiSHl1bmRhaXJlcGVudGlnbnkuY29tIiwiR29vZ2xlIiwiVmxhLW5ldWYiLCIzMjgxMyJdLFsiSHl1bmRhaXJlcGVudGlnbnkuY29tIiwiR29vZ2xlIiwiVmxhLW9jY2FzaW9uIiwiMzQyMjgiXSxbIkh5dW5kYWlyZXBlbnRpZ255LmNvbSIsIkZhY2Vib29rIiwiTmV1Zi1ldiIsIjM3MDQxIl0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJGYWNlYm9vayIsIk9jY2FzaW9uLWNwbyIsIjM3MDQyIl0sWyJIeXVuZGFpcmVwZW50aWdueS5jb20iLCJGYWNlYm9vayIsIk5ldWYtYWlhIiwiMzgxMDYiXV0KdmFyIHJldGFyZ2V0aW5nQ2FtcGFpZ25zPVtbIkh5dW5kYWlyZXBlbnRpZ255LmNvbSIsIkh5dW5kYWlyZXBlbnRpZ255LmNvbSIsIkdvb2dsZSIsIkdvb2dsZSIsIlJlY2libGFnZSIsIlJlY2libGFnZSJdLFsiSHl1bmRhaXJlcGVudGlnbnkuY29tIiwiSHl1bmRhaXJlcGVudGlnbnkuY29tIiwiRmFjZWJvb2siLCJGYWNlYm9vayIsIlJlY2libGFnZSIsIlJlY2libGFnZSJdLFsiSHl1bmRhaXJlcGVudGlnbnkuY29tIiwiSHl1bmRhaXJlcGVudGlnbnkuY29tIiwiRmFjZWJvb2siLCJGYWNlYm9vayIsIk5ldWYtbGVhZGFkcy1ibGFja2ZyaWRheSIsIk5ldWYtbGVhZGFkcy1ibGFja2ZyaWRheSJdXQp2YXIgQUlDdXJyZW50Q29uZmlnSUQ9MDt2YXIgQUlJRFBlck5ld0NhcnNGcmVuY2g9bmV3IEFycmF5KCk7dmFyIEFJSURQZXJOZXdDYXJzRW5nbGlzaD1uZXcgQXJyYXkoKTtmdW5jdGlvbiBwYXJzZVF1ZXJ5KHN0cil7aWYoc3RyLmxlbmd0aDwxKXJldHVybnt9CnZhciB2YXJzPXt9LHY7dmFyIHFzPXN0ci5zcGxpdCgnJicpO2Zvcih2YXIgaT0wO2k8cXMubGVuZ3RoO2krKyl7dj1leHBsb2RlKHFzW2ldLCc9JywxKTt2YXJzW3ZbMF1dPXZbMV07fQpyZXR1cm4gdmFyczt9CmZ1bmN0aW9uIGRlY29kZVN0cmluZyhzdHJpbmcsdGltZXMpe2lmKHRpbWVzPT0iInx8dGltZXM9PSJ1bmRlZmluZWQiKXt0aW1lcz0xO30KZm9yKGk9MDtpPHRpbWVzO2krKyl7c3RyaW5nPWRlY29kZVVSSUNvbXBvbmVudChzdHJpbmcpO30KcmV0dXJuIHN0cmluZzt9CmZ1bmN0aW9uIGRlY29kZUhUTUwoZW5jb2RlZCl7aWYodHlwZW9mIGVuY29kZWQhPT0nc3RyaW5nJylyZXR1cm4gZW5jb2RlZDt2YXIgZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtlbC5pbm5lckhUTUw9ZW5jb2RlZDtyZXR1cm4gZWwudmFsdWU7fQpmdW5jdGlvbiBleHBsb2RlKHN0cixzZXBhcmF0b3IsbGltaXQpe3N0cj1zdHIuc3BsaXQoc2VwYXJhdG9yKTtpZihzdHIubGVuZ3RoPD1saW1pdClyZXR1cm4gc3RyO3ZhciByZXQ9c3RyLnNwbGljZSgwLGxpbWl0KTtyZXQucHVzaChzdHIuam9pbihzZXBhcmF0b3IpKTtyZXR1cm4gcmV0O30KZnVuY3Rpb24gZ2V0VXJsVmFycygpe3ZhciBxcz0od2luZG93LmxvY2F0aW9uLnNlYXJjaCkuc3Vic3RyaW5nKDEpO3JldHVybiBwYXJzZVF1ZXJ5KHFzKTt9CmZ1bmN0aW9uIGdldENvb2tpZShjX25hbWUpe3JldHVybiBDb29raWVzLmdldChjX25hbWUpO30KZnVuY3Rpb24gZ2V0Q29va2llKGNfbmFtZSl7dmFyIGNfdmFsdWU9ZG9jdW1lbnQuY29va2llO3ZhciBjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZigiICIrY19uYW1lKyI9Iik7aWYoY19zdGFydD09LTEpe2Nfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKGNfbmFtZSsiPSIpO30KaWYoY19zdGFydD09LTEpe2NfdmFsdWU9bnVsbDt9ZWxzZXtjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZigiPSIsY19zdGFydCkrMTt2YXIgY19lbmQ9Y192YWx1ZS5pbmRleE9mKCI7IixjX3N0YXJ0KTtpZihjX2VuZD09LTEpe2NfZW5kPWNfdmFsdWUubGVuZ3RoO30KY192YWx1ZT11bmVzY2FwZShjX3ZhbHVlLnN1YnN0cmluZyhjX3N0YXJ0LGNfZW5kKSk7fQpyZXR1cm4gY192YWx1ZTt9CmZ1bmN0aW9uIHNldENvb2tpZShjX25hbWUsdmFsdWUsZXhkYXlzKXtpc0Nvb2tpZUFsbG93ZWQoY19uYW1lLGZ1bmN0aW9uKGFsbG93ZWQpe2lmKCFhbGxvd2VkKXtyZXR1cm4gQ29va2llcy5zZXQoY19uYW1lLHZhbHVlLGV4ZGF5cywnLycpO2xvZ0Nvb2tpZShjX25hbWUsdmFsdWUsZXhkYXlzKTtyZXR1cm47fQp2YXIgZXhkYXRlPW5ldyBEYXRlKCk7ZXhkYXRlLnNldERhdGUoZXhkYXRlLmdldERhdGUoKStleGRheXMpO3ZhciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkrKChleGRheXM9PW51bGwpPyIiOiI7IGV4cGlyZXM9IitleGRhdGUudG9VVENTdHJpbmcoKSkrIjsgcGF0aD0vIjtkb2N1bWVudC5jb29raWU9Y19uYW1lKyI9IitjX3ZhbHVlO30pO30KZnVuY3Rpb24gbG9nQ29va2llKG5hbWUsdmFsdWUsZXhwaXJlcyx0cmllcyl7aWYodHlwZW9mIHRyaWVzPT09J3VuZGVmaW5lZCcpe3RyaWVzPTU7fQppZih0eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj09PSd1bmRlZmluZWQnKXtpZih0cmllcyl7c2V0VGltZW91dChmdW5jdGlvbigpe2xvZ0Nvb2tpZShuYW1lLHZhbHVlLGV4cGlyZXMsdHJpZXMtMSk7fSwxMDAwKTt9fWVsc2V7d2luZG93LkNvb2tpZUxvZ2dlci5sb2cobmFtZSx2YWx1ZSxleHBpcmVzKTt9fQpmdW5jdGlvbiBpc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayx0cmllcyl7aWYodHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50PT09J3VuZGVmaW5lZCcpe2lmKHR5cGVvZiB0cmllcz09PSd1bmRlZmluZWQnKXt0cmllcz01O30KaWYodHJpZXMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayx0cmllcy0xKTt9LDEwMDApO319ZWxzZXt3aW5kb3cuQ29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayk7fX0KZnVuY3Rpb24gZ2FQYWdlVmlldyhwcCl7KGQyY19nYUFjY291bnRzLmFsbHx8W10pLm1hcChmdW5jdGlvbihpZCl7bGV0IGQ9e3BhZ2VfcGF0aDpwcH07aWYoZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJyl7Y29uc29sZS5sb2coJ2d0YWcnLCdjb25maWcnLGlkLGQpCnJldHVybjt9Cmd0YWcoJ2NvbmZpZycsaWQsZCk7fSk7fTtmdW5jdGlvbiBnYTRQYWdlVmlldyhwcCl7aWYoZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJyl7cmV0dXJuO30KZ3RhZygnc2V0Jyx7J3BhZ2VfcGF0aCc6cHB9KTtndGFnKCdldmVudCcsJ3BhZ2VfdmlldycseydzZW5kX3RvJzonRy1YNEVYTldZWEtMJ30pO30KZnVuY3Rpb24gZ2V0R2FDbGllbnRJZCgpe3JldHVybigoKHR5cGVvZiB3aW5kb3cuZ2E9PT0nb2JqZWN0JyYmd2luZG93LmdhIT09bnVsbCl8fHR5cGVvZiB3aW5kb3cuZ2E9PT0nZnVuY3Rpb24nKSYmdHlwZW9mIGdhWydnZXRBbGwnXT09PSdmdW5jdGlvbicpP2dhLmdldEFsbCgpWzBdLmdldCgnY2xpZW50SWQnKTonJzt9CmZ1bmN0aW9uIGdhVHJhY2soYWEsYyxhLGwsdil7bGV0IGFjPVtdO2NvbnN0IGNzPWRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQSc7Y29uc3QgY2g9KG8sZCk9PnR5cGVvZiBvIT09J3VuZGVmaW5lZCc\/bzpkO2FhPWNoKGFhLCcnKTtjPWNoKGMsJycpO2E9Y2goYSwnJyk7bD1jaChsLCcnKTt2PWNoKHYsMSk7aWYoYWE9PSdpbnRlcm5hbCcpe2FjPWQyY19nYUFjY291bnRzLmludGVybmFsO31lbHNlIGlmKGFhLmxlbmd0aCYmL14oYnxjfGQpXC5fdHJhY2tFdmVudC8udGVzdChhYSkmJnR5cGVvZiBkMmNfZ2FBY2NvdW50c1thYVswXV0hPSd1bmRlZmluZWQnKXthYy5wdXNoKGQyY19nYUFjY291bnRzW2FhWzBdXSk7fQppZihhYy5sZW5ndGgpe2FjLm1hcCgoaWQpPT57Y29uc3QgZD17c2VuZF90bzppZCxldmVudF9hY3Rpb246YSxldmVudF9jYXRlZ29yeTpjLGV2ZW50X2xhYmVsOmwsdmFsdWU6dn07aWYoY3Mpe2NvbnNvbGUubG9nKGBHQVRSQUNLLUdUQUctU0VORC1UT1ske2lkfV06YCwnZXZlbnQnLGEsZCk7cmV0dXJuO30KZ3RhZygnZXZlbnQnLGEsZCk7fSk7fWVsc2V7Y29uc3QgZD17ZXZlbnRfYWN0aW9uOmEsZXZlbnRfY2F0ZWdvcnk6YyxldmVudF9sYWJlbDpsLHZhbHVlOnZ9O2lmKGNzKXtjb25zb2xlLmxvZygnR0FUUkFDSy1HVEFHLU5PLVNFTkQtVE86JywnZXZlbnQnLGEsZCk7fWVsc2V7Z3RhZygnZXZlbnQnLGEsZCk7fX19O2Z1bmN0aW9uIG9uQ29uZmlybVN1Ym1pdChldmVudCl7cmV0dXJuIHRydWU7fQpmdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKGNfbmFtZSx2YWx1ZSl7dmFyIGV4ZGF5cz1udWxsO3ZhciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkrIjtleHBpcmVzPTA7cGF0aD0vIjtkb2N1bWVudC5jb29raWU9Y19uYW1lKyI9IitjX3ZhbHVlO2xvZ0Nvb2tpZShjX25hbWUpO30KZnVuY3Rpb24gaW5pdExDSShwYXJhbXMsbil7aWYobj4yMClyZXR1cm4gbjt2YXIgbj0obik\/bjowO2lmKHR5cGVvZiBMQ19BUEk9PSd1bmRlZmluZWQnfHx0eXBlb2YgTENfSW52aXRlPT0ndW5kZWZpbmVkJyl7c2V0VGltZW91dChmdW5jdGlvbigpe2luaXRMQ0kocGFyYW1zLCsrbik7fSw1MDApO3JldHVybjt9CmlmKHR5cGVvZiBMQ19BUEkhPSd1bmRlZmluZWQnJiZ0eXBlb2YgTENfSW52aXRlIT0ndW5kZWZpbmVkJyYmcGFyYW1zKXtyZXR1cm4gTENfQVBJLnNldF9jdXN0b21fdmFyaWFibGVzKHBhcmFtcyk7fX0KZnVuY3Rpb24gc2FuaXRpemVSZWZlcmVyKHJlZmVyZXIpe3JldHVybiByZWZlcmVyLnJlcGxhY2UoL1snImAoKTw+XFtcXXt9fCFdL2csJycpO30KZnVuY3Rpb24gZ2V0UmVmZXJyZXJWYXJGdW5jdGlvbihyZWZlcmVyKXtyZXR1cm4gZnVuY3Rpb24oKXtpZignJz09cmVmZXJlcilyZWZlcmVyPWRvY3VtZW50LnJlZmVycmVyO3JlZmVyZXI9c2FuaXRpemVSZWZlcmVyKHJlZmVyZXIpO3ZhciBxcyxxc2luZGV4PXJlZmVyZXIuaW5kZXhPZignPycpKzE7aWYocXNpbmRleD4wKXt2YXIgcXM9cmVmZXJlci5zbGljZShxc2luZGV4KTtyZXR1cm4gcGFyc2VRdWVyeShxcyk7fQpyZXR1cm57fX19CnZhciBnZXRSZWZlcmVyVmFycz1nZXRSZWZlcnJlclZhckZ1bmN0aW9uKCcnKTt2YXIgdXRtX2xhbmRpbmdfY29va2llPShnZXRDb29raWUoJ3V0bV9sYW5kaW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9sYW5kaW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2xhbmRpbmcnKTonJyk7aWYodXRtX2xhbmRpbmdfY29va2llLmxlbmd0aD09MCl7c2V0Q29va2llKCd1dG1fbGFuZGluZycsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTt9CmlmKGRlcGxveW1lbnRUeXBlPT0nbGl2ZScpe3ZhciBnZW5lcmF0ZUdVSUQ9ZnVuY3Rpb24oKXt2YXIgUzQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjB4MTAwMDApLnRvU3RyaW5nKDE2KTt9O3JldHVybihTNCgpK1M0KCkrIi0iKwpTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpK1M0KCkrUzQoKSk7fQp2YXIgdXJsVmFycz1nZXRVcmxWYXJzKCk7dmFyIHJlZmVyZXJWYXJzPWdldFJlZmVyZXJWYXJzKCk7dmFyIHJlZmVyZXI9Jyc7dmFyIHJhd1JlZmVycmVyPXJlZmVyZXI7cmVmZXJlcj0ocmVmZXJlci5sZW5ndGg8MT8wOnJlZmVyZXIpO2lmKCcnPT1yYXdSZWZlcnJlcilyYXdSZWZlcnJlcj1kb2N1bWVudC5yZWZlcnJlcjt2YXIgaXRlbVR5cGU9J2Nhcic7aXRlbVR5cGU9KGl0ZW1UeXBlLmxlbmd0aDwxPzA6aXRlbVR5cGUpO2lmKGlzTmFOKHJlZmVyZXIpKXtyZWZlcmVyPXJlZmVyZXIucmVwbGFjZSgvXC8vZywifCIpLnJlcGxhY2UoL1w\/L2csIl9fIikucmVwbGFjZSgvXHQvZywnJykucmVwbGFjZSgvXG4vZywnJykucmVwbGFjZSgvXHIvZywnJykucmVwbGFjZUFsbCgnJTBBJywnJykucmVwbGFjZUFsbCgnJTA5JywnJykucmVwbGFjZUFsbCgnJTBCJywnJykucmVwbGFjZUFsbCgnJTAwJywnJykucmVwbGFjZUFsbCgnJTBEJywnJyk7fQp2YXIgbWFrZT0iIjtpZihtYWtlLmxlbmd0aD09MCltYWtlPSIwIjt2YXIgbW9kZWw9IiI7aWYobW9kZWwubGVuZ3RoPT0wKW1vZGVsPSIwIjt2YXIgeWVhcj0iIjtpZih5ZWFyLmxlbmd0aD09MCl5ZWFyPSIwIjt2YXIgaXNtb2JpbGU9IiI7aWYoaXNtb2JpbGUubGVuZ3RoPT0wKWlzbW9iaWxlPSIwIjt2YXIgb3JpZ1NvdXJjZT0iIjt2YXIgb3JpZ0NhbXBhaWduPSIiO3ZhciBvcmlnS2V5d29yZD0iIjtpZih1cmxWYXJzWyJyZWxhbmNlSUQiXSE9dW5kZWZpbmVkKQpzZXRDb29raWUoJ3JlbGFuY2VJRCcsdXJsVmFyc1sicmVsYW5jZUlEIl0sMTgwKTt2YXIgc291cmNlPShnZXRDb29raWUoJ3V0bV9zb3VyY2UnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZScpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2UnKTonJyk7dmFyIHNvdXJjZUNvb2tpZT1zb3VyY2U7dmFyIHNvdXJjZVVSTD0iIjtpZigidXRtX3NvdXJjZSJpbiB1cmxWYXJzKXtpZihzb3VyY2UubGVuZ3RoPT0wKXNvdXJjZT11cmxWYXJzWyd1dG1fc291cmNlJ107c291cmNlVVJMPXVybFZhcnNbJ3V0bV9zb3VyY2UnXTt9CnZhciBjYW1wYWlnbj0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ24nKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduJyk6JycpO2lmKGNhbXBhaWduLnRvTG93ZXJDYXNlKCk9PSdlY29sZS1ldHVkaWFudCcpe2NhbXBhaWduPScnO3NldENvb2tpZSgndXRtX2NhbXBhaWduJywiIiwxKTt9CnZhciBjYW1wYWlnbkNvb2tpZT1jYW1wYWlnbjt2YXIgY2FtcGFpZ25VUkw9IiI7aWYoInV0bV9jYW1wYWlnbiJpbiB1cmxWYXJzKXtpZihjYW1wYWlnbi5sZW5ndGg9PTApY2FtcGFpZ249dXJsVmFyc1sndXRtX2NhbXBhaWduJ107Y2FtcGFpZ25VUkw9dXJsVmFyc1sndXRtX2NhbXBhaWduJ107fQp2YXIgbWVkaXVtPShnZXRDb29raWUoJ3V0bV9tZWRpdW0nKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX21lZGl1bScpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9tZWRpdW0nKTonJyk7dmFyIG1lZGl1bUNvb2tpZT1tZWRpdW07dmFyIG1lZGl1bVVSTD0iIjtpZigidXRtX21lZGl1bSJpbiB1cmxWYXJzKXtpZihtZWRpdW0ubGVuZ3RoPT0wKW1lZGl1bT11cmxWYXJzWyd1dG1fbWVkaXVtJ107bWVkaXVtVVJMPXVybFZhcnNbJ3V0bV9tZWRpdW0nXTt9CnZhciBjb29raWVJbkNhbXBhaWducz1mYWxzZTt2YXIgdXJsSW5DYW1wYWlnbnM9ZmFsc2U7dmFyIGhhc0dvb2dsZU9yZ2FuaWM9ZmFsc2U7Zm9yKHZhciBpPTA7aTxhbGxDYW1wYWlnbnMubGVuZ3RoO2krKyl7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PXNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09Y2FtcGFpZ25VUkwudG9Mb3dlckNhc2UoKSl1cmxJbkNhbXBhaWducz10cnVlO2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VDb29raWUudG9Mb3dlckNhc2UoKSYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCkpY29va2llSW5DYW1wYWlnbnM9dHJ1ZTtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09J2dvb2dsZScmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pcXVlJyloYXNHb29nbGVPcmdhbmljPXRydWU7fQppZihzb3VyY2VVUkw9PSIiJiZjYW1wYWlnblVSTD09IiImJnNvdXJjZT09IiImJmNhbXBhaWduPT0iIiYmaGFzR29vZ2xlT3JnYW5pYyl7c291cmNlVVJMPSJHb29nbGUiO2NhbXBhaWduVVJMPSJPcmdhbmlxdWUiO3VybEluQ2FtcGFpZ25zPXRydWU7fQppZihjb29raWVJbkNhbXBhaWducz09ZmFsc2UmJnVybEluQ2FtcGFpZ25zPT10cnVlKXtzb3VyY2U9c291cmNlVVJMO2NhbXBhaWduPWNhbXBhaWduVVJMO3NvdXJjZUNvb2tpZT1zb3VyY2VVUkw7Y2FtcGFpZ25Db29raWU9Y2FtcGFpZ25VUkw7fQppZihzb3VyY2VDb29raWUudG9Mb3dlckNhc2UoKT09J3NlbScmJnNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpPT0nZ29vZ2xlJyYmdXJsSW5DYW1wYWlnbnMpe3NvdXJjZT1zb3VyY2VVUkw7Y2FtcGFpZ249Y2FtcGFpZ25VUkw7fQp2YXIgY3VycmVudFNpdGVJRD0yNTE7aWYoKGN1cnJlbnRTaXRlSUQ9PTU5Mnx8Y3VycmVudFNpdGVJRD09NDM3fHxjdXJyZW50U2l0ZUlEPT01Nzl8fGN1cnJlbnRTaXRlSUQ9PTU4NSkmJnNvdXJjZUNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nc2VtJyl7c291cmNlQ29va2llPSdHb29nbGUnO3NvdXJjZT0nR29vZ2xlJztjYW1wYWlnbkNvb2tpZT0nTmV1Zic7Y2FtcGFpZ249J05ldWYnO30KaWYoY2FtcGFpZ25Db29raWUudG9Mb3dlckNhc2UoKT09J29yZ2FuaWMnfHxjYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pcXVlJyl7c291cmNlQ29va2llPScnO2NhbXBhaWduQ29va2llPScnO21lZGl1bUNvb2tpZT0nJzt9CmlmKHNvdXJjZS5sZW5ndGg+MCYmKHNvdXJjZUNvb2tpZS5sZW5ndGg9PTB8fHNvdXJjZUNvb2tpZT09c291cmNlKSlzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZSwxODApO2lmKGNhbXBhaWduLmxlbmd0aD4wJiYoY2FtcGFpZ25Db29raWUubGVuZ3RoPT0wfHxjYW1wYWlnbkNvb2tpZT09Y2FtcGFpZ24pKXNldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnbiwxODApO2lmKG1lZGl1bS5sZW5ndGg+MCYmKG1lZGl1bUNvb2tpZS5sZW5ndGg9PTB8fG1lZGl1bUNvb2tpZT09bWVkaXVtKSlzZXRDb29raWUoJ3V0bV9tZWRpdW0nLG1lZGl1bSwxODApO3ZhciBrZXl3b3JkPShnZXRDb29raWUoJ3V0bV9rZXl3b3JkJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9rZXl3b3JkJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2tleXdvcmQnKTonJyk7aWYoImt3ImluIHVybFZhcnMpe2tleXdvcmQ9ZGVjb2RlU3RyaW5nKHVybFZhcnNbJ2t3J10sMyk7fQppZihrZXl3b3JkLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX2tleXdvcmQnLGtleXdvcmQsMTgwKTt2YXIgaXNSZXRhcmdldGluZz1mYWxzZTtmb3IodmFyIGk9MDtpPHJldGFyZ2V0aW5nQ2FtcGFpZ25zLmxlbmd0aDtpKyspe2lmKHJldGFyZ2V0aW5nQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PXNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpJiZyZXRhcmdldGluZ0NhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnblVSTC50b0xvd2VyQ2FzZSgpKWlzUmV0YXJnZXRpbmc9dHJ1ZTt9CmlmKGlzUmV0YXJnZXRpbmcpe3ZhciBzb3VyY2VSZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJyk6JycpO3ZhciBjYW1wYWlnblJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKTonJyk7aWYoc291cmNlIT1zb3VyY2VVUkx8fGNhbXBhaWduIT1jYW1wYWlnblVSTCl7aWYoc291cmNlVVJMLmxlbmd0aD4wJiZzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg9PTApc2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJyxzb3VyY2VVUkwsMTgwKTtpZihjYW1wYWlnblVSTC5sZW5ndGg+MCYmY2FtcGFpZ25SZXRhcmdldGluZy5sZW5ndGg9PTApc2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnLGNhbXBhaWduVVJMLDE4MCk7fQpzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZVVSTCwxODApO3NldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnblVSTCwxODApO30KdmFyIHNvdXJjZVJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKTonJyk7dmFyIGNhbXBhaWduUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpOicnKTtpZihzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg+MClzZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnLHNvdXJjZVJldGFyZ2V0aW5nLDE4MCk7aWYoY2FtcGFpZ25SZXRhcmdldGluZy5sZW5ndGg+MClzZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycsY2FtcGFpZ25SZXRhcmdldGluZywxODApO2lmKCFzb3VyY2Upe2lmKHJhd1JlZmVycmVyIT0nJyl7dmFyIHNlbGZIb3N0PShkb2N1bWVudC5sb2NhdGlvbi5ocmVmKS5tYXRjaCgvXltBLXpdKzpcL1wvKFteXC9dKylcLz8uKi8pO2lmKHNlbGZIb3N0KXtzZWxmSG9zdD1zZWxmSG9zdFsxXX0KdmFyIGhvc3Q9KHJhd1JlZmVycmVyLnRvU3RyaW5nKCkpLm1hdGNoKC9eW0Etel0rOlwvXC8oW15cL10rKVwvPy4qLyk7aWYoaG9zdCl7aG9zdD1ob3N0WzFdfWVsc2V7aG9zdD1zZWxmSG9zdDt9CmlmKGhvc3QhPXNlbGZIb3N0KXtob3N0PWhvc3Quc3BsaXQoJy4nKTtpZihob3N0Lmxlbmd0aD4yKXtzb3VyY2U9aG9zdFsxXTt9CmlmKGhvc3QubGVuZ3RoPT0yKXtzb3VyY2U9aG9zdFswXTt9CmlmKHNvdXJjZSlzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZSwxODApO2lmKCFjYW1wYWlnbil7Y2FtcGFpZ249J29yZ2FuaWMnO3NldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnbiwxODApO319fX0KaWYoc291cmNlLmxlbmd0aD09MClzb3VyY2U9IjAiO2lmKGNhbXBhaWduLmxlbmd0aD09MCljYW1wYWlnbj0iMCI7aWYoc291cmNlUmV0YXJnZXRpbmcubGVuZ3RoPT0wKXNvdXJjZVJldGFyZ2V0aW5nPSIwIjtpZihjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD09MCljYW1wYWlnblJldGFyZ2V0aW5nPSIwIjtpZih1cmxWYXJzWyJEaXNwbGF5U291cmNlIl0hPXVuZGVmaW5lZCl7aWYoZ2V0Q29va2llKCdEaXNwbGF5U291cmNlJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnKT09J3VuZGVmaW5lZCcpe2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQmJihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicpPT1udWxsfHx0eXBlb2YgZ2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nKT09J3VuZGVmaW5lZCcpKXNldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyx1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwxODApO2lmKHVybFZhcnNbInV0bV9zb3VyY2UiXSE9dW5kZWZpbmVkJiYoZ2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnKT09J3VuZGVmaW5lZCcpKXNldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScsdXJsVmFyc1sidXRtX3NvdXJjZSJdLDE4MCk7fQpzZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnLHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwxODApO30KdmFyIHNldEdjbGlkQ29va2llPXRydWU7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpe2lmKHVybFZhcnNbInV0bV9zb3VyY2UiXT09J1NFTSd8fHVybFZhcnNbInV0bV9zb3VyY2UiXT09J1RyYWRlcid8fHVybFZhcnNbInV0bV9zb3VyY2UiXT09J0dvb2dsZS1uZXJkbWFya2V0aW5nJyl7c2V0R2NsaWRDb29raWU9ZmFsc2U7fX0KaWYodXJsVmFyc1siZ2NsaWQiXSE9dW5kZWZpbmVkJiZzZXRHY2xpZENvb2tpZSl7c2V0Q29va2llKCdnY2xpZCcsdXJsVmFyc1siZ2NsaWQiXSwxODApO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbihldmVudCl7aWYoJ3VuZGVmaW5lZCchPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyl7c2F2ZUdDTElEPWZ1bmN0aW9uKCl7aWYoJ3VuZGVmaW5lZCc9PXR5cGVvZiB3aW5kb3cualF1ZXJ5KXtyZXR1cm47fQokLnBvc3QoImh0dHBzOi8vcmVzdC5kMmNtZWRpYS5jYS9nY2xpZC5yZXN0LmFwaS5waHAiLHtzZXNzaW9uaWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkLGdjbGlkOnVybFZhcnNbJ2djbGlkJ119KTt9O3RyeXthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclNlc3Npb25DYWxsYmFjayhzYXZlR0NMSUQpO31jYXRjaChlcnJvcil7Y29uc29sZS5sb2coZXJyb3IpO319fSk7fQp3aW5kb3cuYWN0aXZlUGFnZT1wYWdlO3ZhciB1aWQ9KGdldENvb2tpZSgndWlkJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3VpZCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3VpZCcpOmdlbmVyYXRlR1VJRCgpKTtzZXRDb29raWUoJ3VpZCcsdWlkLDE4MCk7dmFyIGRlYWxlcmlkPTE4MDg7dmFyIHNpdGVpZD0yNTE7d2luZG93LmFjdGl2ZVNpdGVJRD1zaXRlaWQ7d2luZG93LmFjdGl2ZURlYWxlcklEPWRlYWxlcmlkO3ZhciBjYXJpZD0nJztpZihjYXJpZC5sZW5ndGg9PTApY2FyaWQ9IjAiO2Z1bmN0aW9uIHRhZ0J1aWxkKGludGVybmFscyl7cmV0dXJuJzwnKyhpbnRlcm5hbHMuam9pbignICcpKSsnIC8+Jzt9CnZhciBjYWNoZUNsZWFyZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTkpO3ZhciBhZGRUa0ltZz1mdW5jdGlvbihzcmMpe3N3aXRjaChkb2N1bWVudC5yZWFkeVN0YXRlKXtjYXNlImxvYWRpbmciOmRvY3VtZW50LndyaXRlKHRhZ0J1aWxkKFsnaW1nJywnc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7IicsJ3NyYz0iJytzcmMrJyInLCdhbHQ9IiInXSkpO2JyZWFrO2Nhc2UiaW50ZXJhY3RpdmUiOmNhc2UiY29tcGxldGUiOmRlZmF1bHQ6dHJ5e3ZhciBpbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aW1nLnN0eWxlLmNzc1RleHQ9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JztpbWcuc2V0QXR0cmlidXRlKCdzcmMnLHNyYyk7aW1nLnNldEF0dHJpYnV0ZSgnYWx0JywnVHJhY2tpbmcgcGl4ZWwnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiRXJyb3IgdGt3aWRnZXQ6ICIrZXgubWVzc2FnZSk7fQpicmVhazt9fTtjYW1wYWlnbj1jYW1wYWlnbi5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlKCclMEEnLCcnKS5yZXBsYWNlKCclMDknLCcnKS5yZXBsYWNlKCclMEInLCcnKS5yZXBsYWNlKCclMDAnLCcnKS5yZXBsYWNlKCclMEQnLCcnKTtzb3VyY2U9c291cmNlLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2UoJyUwQScsJycpLnJlcGxhY2UoJyUwOScsJycpLnJlcGxhY2UoJyUwQicsJycpLnJlcGxhY2UoJyUwMCcsJycpLnJlcGxhY2UoJyUwRCcsJycpO3ZhciB0a3NyYz0nL3Byb3h5X3NhdWIvd2Vic2l0ZUhpdHMvJysKZGVhbGVyaWQrIi8iK3NpdGVpZCsiLyIrY2FyaWQrIi8iK2VzY2FwZSh1aWQpKyIvIitwYWdlKyIvIitlc2NhcGUoc291cmNlKSsiLyIrZXNjYXBlKGNhbXBhaWduKSsiLyIrZXNjYXBlKG1ha2UpKyIvIitlc2NhcGUobW9kZWwpKyIvIit5ZWFyKyIvIisKaXNtb2JpbGUrIi8iK2VuY29kZVVSSUNvbXBvbmVudChyZWZlcmVyKSsiLyIrZXNjYXBlKGl0ZW1UeXBlKSsiLyIrZXNjYXBlKHNvdXJjZVJldGFyZ2V0aW5nKSsiLyIrZXNjYXBlKGNhbXBhaWduUmV0YXJnZXRpbmcpKyIvIitjYWNoZUNsZWFyZXIrJy5naWYnO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZz09J3VuZGVmaW5lZCd8fCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSlhZGRUa0ltZyh0a3NyYyk7dmFyIGtleXdvcmRzPSIiO2lmKCJwImluIHJlZmVyZXJWYXJzJiZyZWZlcmVyLmluZGV4T2YoInlhaG9vIik+LTEpe2tleXdvcmRzPXJlZmVyZXJWYXJzWydwJ107fQppZigicSJpbiByZWZlcmVyVmFycyYmKHJlZmVyZXIuaW5kZXhPZigiZ29vZ2xlIik+LTF8fHJlZmVyZXIuaW5kZXhPZigiYmluZyIpPi0xKSl7a2V5d29yZHM9cmVmZXJlclZhcnNbJ3EnXTt9CnZhciB1TGFuZz0oZ2V0Q29va2llKCdsYW5nJyk9PSdlbicpPydlbic6J2ZyJzt3aW5kb3cuZmJDaGF0UmVmPXtyOidzaXRlJyxjOmNhbXBhaWduLHM6c291cmNlfTt2YXIgY3VzdG9tX3ZhcmlhYmxlcz1be25hbWU6J2xhbmd1YWdlJyx2YWx1ZTp1TGFuZ30se25hbWU6J3V0bV9jYW1wYWlnbicsdmFsdWU6Y2FtcGFpZ259LHtuYW1lOid1dG1fc291cmNlJyx2YWx1ZTpzb3VyY2V9LHtuYW1lOidwYWdlJyx2YWx1ZTpwYWdlfSx7bmFtZTondWlkJyx2YWx1ZTp1aWR9LHtuYW1lOidjYXJpZCcsdmFsdWU6Y2FyaWR9LHtuYW1lOidtYWtlJyx2YWx1ZTptYWtlfSx7bmFtZTonbW9kZWwnLHZhbHVlOm1vZGVsfSx7bmFtZToneWVhcicsdmFsdWU6eWVhcn0se25hbWU6J2lzTW9iaWxlU2l0ZScsdmFsdWU6aXNtb2JpbGV9XTt3aW5kb3cuY1ZhcmlhYmxlcz1jdXN0b21fdmFyaWFibGVzO3dpbmRvdy5yZWxhbmNlSGFuZGxlckZuYz1mdW5jdGlvbigpe3ZhciByZWxhbmNlSUQ9KGdldENvb2tpZSgncmVsYW5jZUlEJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3JlbGFuY2VJRCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3JlbGFuY2VJRCcpOjApO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50IT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChyZWxhbmNlSUQsJ3JlbGFuY2VJRCcpO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwnZGlzcGxheVNvdXJjZScpO2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwndXRtX2NhbXBhaWduJyk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fc291cmNlIl0sJ3V0bV9zb3VyY2UnKTt9fQplbHNlCnNldFRpbWVvdXQod2luZG93LnJlbGFuY2VIYW5kbGVyRm5jLDEwMDApO307dmFyIGluaXRGPWZ1bmN0aW9uKCl7aW5pdExDSShjdXN0b21fdmFyaWFibGVzKTt3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmMoKTt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsaW5pdEYpO2Vsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGluaXRGLGZhbHNlKTt2YXIgYWljdXJyZW50cGFnZT0nbmV3Y2Fycy5odG1sJztpZihBSUN1cnJlbnRDb25maWdJRD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KEFJQ3VycmVudENvbmZpZ0lELCdBSUNvbmZpZycpO30KaWYoQUlJRFBlck5ld0NhcnNGcmVuY2gubGVuZ3RoPjAmJmFpY3VycmVudHBhZ2U9PSduZXdjYXJkZXRhaWwuaHRtbCcmJmdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKSE9bnVsbCl7dmFyIGxhc3RuZXd2ZWhpY2xlPWdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKTt2YXIgbGFzdG5ld3ZlaGljbGVzcGxpdD1sYXN0bmV3dmVoaWNsZS5zcGxpdCgnfHx8Jyk7dmFyIGFpbmV3Y2FyaWQ9MDtpZih0eXBlb2YgQUlJRFBlck5ld0NhcnNGcmVuY2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dIT09J3VuZGVmaW5lZCcpYWluZXdjYXJpZD1BSUlEUGVyTmV3Q2Fyc0ZyZW5jaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYodHlwZW9mIEFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV0hPT0ndW5kZWZpbmVkJylhaW5ld2NhcmlkPUFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYoYWluZXdjYXJpZD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGFpbmV3Y2FyaWQsJ0FJQ29uZmlnTmV3Q2FyJyk7fX19CnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZm49ZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT0ndW5kZWZpbmVkJyl7cmV0dXJuIGpRdWVyeS5yZWFkeSgpO30Kc2V0VGltZW91dChmbiwxMDApO30KZm4oKTt9LDEwMDApOwovKl1dPiovCgoJLyo8IVtDREFUQVsqLwoJdmFyIHBhcmFtcyA9IGdldFVybFZhcnMoKTsKCS8vc2V0IHBhcmFtIHZhbHVlIGludG8gc2Vzc2lvbiBzdG9yYWdlCglpZiAodHlwZW9mIHNlc3Npb25TdG9yYWdlICE9PSAndW5kZWZpbmVkJykgewoKCQlpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoJ2gnKSl7CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2gnLHBhcmFtcy5oKTsKCQl9CgoJCWlmKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnbScpKXsKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbScscGFyYW1zLm0pOwoJCX0KCgkJdmFyIGggPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdoJyk7CgkJdmFyIG0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtJyk7CgoJCS8vcmVhZCBzZXNzaW9uIGFuZCByZW1vdmUgaGVhZGVyICYgbWVudSBpZiBvcHRpb25zIGhhdmUgYmVlbiBzZXQKCQlpZihoID09PSAnbm8nKXsKCQkJLy9zdHVmZiB0byByZW1vdmUgdGhhdCBpcyBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIGhlYWRlcgoJCQl2YXIgaGVhZGVycyA9IFsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItaW5mbycpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1mb290ZXInKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sYW5ndWFnZUJhcicpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1sb2dvJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9iaWxlLWhlYWRlciA+ICo6bm90KC5idXJnZXItbWVudS1jb250YWluZXIpJykKCQkJXTsKCgkJCWZvcih2YXIgZWxlbSBvZiBoZWFkZXJzKXsKCQkJCS8vcmVtb3ZlIG5vZGUgbGlzdCBxdWVyaWVzCgkJCQlpZiAoTm9kZUxpc3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZWxlbSkpIHsKCQkJCQlmb3IodmFyIF9lbGVtIG9mIGVsZW0pewoJCQkJCQlpZiAoX2VsZW0gIT09IG51bGwpIHsKCQkJCQkJCV9lbGVtLnJlbW92ZSgpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJZWxzZSBpZiAoZWxlbSAhPT0gbnVsbCl7CgkJCQkJZWxlbS5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy9tZW51CgkJaWYobSA9PT0gJ25vJyl7CgkJCXZhciBtZW51cyA9IFsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItbWVudScpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmJ1cmdlci1tZW51LWNvbnRhaW5lcicpLAoJCQldOwoJCQlmb3IodmFyIGVsZW0gb2YgbWVudXMpewoJCQkJaWYoZWxlbSAhPT0gbnVsbCl7CgkJCQkJZWxlbS5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy9zaW5jZSBubyBoZWFkZXIgb3IgbWVudSwgcmVtb3ZlIGV2ZXJ5dGhpbmcKCQlpZiAobSA9PT0gJ25vJyAmJiBoID09PSAnbm8nKSB7CgkJCXZhciBoZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubW9iaWxlLWhlYWRlcicpOwoJCQlpZihoZWFkZXIgIT09IG51bGwpewoJCQkJaGVhZGVyLnJlbW92ZSgpOwoJCQl9CgkJfQoKCX0KCS8qXV0+Ki8KCgkJKGZ1bmN0aW9uKCl7CgkJCWZ1bmN0aW9uIGluaXQoKXsKCQkJCWlmKCB0eXBlb2YgUGFnZUJhbm5lciA9PT0gJ2Z1bmN0aW9uJyApIHsKCQkJCQl3aW5kb3cucGFnZUJhbm5lciA9IG5ldyBQYWdlQmFubmVyKHsiYmFubmVycyI6eyJzdGF0aWNiYW5uZXJzIjp7IjUwNiI6eyJpIjoiXC9pbWFnZXNcL05ld0NhclBhZ2VJbWFnZUR5blwvSFlVTkRBSSBfVkVOVUVfRlJfMTI1MC5qcGciLCJ1IjoiIiwidCI6NjAwMH0sIjUwNSI6eyJpIjoiXC9pbWFnZXNcL05ld0NhclBhZ2VJbWFnZUR5blwvSFlVTkRBSSBfVFVDU09OX0hZQlJJRF9GUl8xMjUwLmpwZyIsInUiOiIiLCJ0Ijo2MDAwfSwiNTA0Ijp7ImkiOiJcL2ltYWdlc1wvTmV3Q2FyUGFnZUltYWdlRHluXC9IWVVOREFJIF9UVUNTT05fRlJfMTI1MC5qcGciLCJ1IjoiIiwidCI6NjAwMH0sIjUwMyI6eyJpIjoiXC9pbWFnZXNcL05ld0NhclBhZ2VJbWFnZUR5blwvSFlVTkRBSSBfS09OQSBFVl9GUl8xMjUwLmpwZyIsInUiOiIiLCJ0Ijo2MDAwfSwiNTAyIjp7ImkiOiJcL2ltYWdlc1wvTmV3Q2FyUGFnZUltYWdlRHluXC9IWVVOREFJIF9FTEFOVFJBX0ZSIF8xMjUwLmpwZyIsInUiOiIiLCJ0Ijo2MDAwfSwiMCI6eyJpIjoiXC9pbWFnZXNcL05ld0NhclBhZ2VJbWFnZVwvQ0JCLVRSQURFSU4tSFlVTkRBSS0xMjUwWDIwMC1IRVgtRjZGM0YyLUZSLnBuZyIsInUiOiIkVHJhZGVCb29zdCIsInQiOjMwMDAsImEiOiJIeXVuZGFpIGEgdmVuZHJlID8gUmVwZW50aWdueSAoZW50cmUgTWFzY291Y2hlIGV0IE1vbnRyJmVhY3V0ZTthbCkgY2hleiBIeXVuZGFpIFJlcGVudGlnbnkgLSAxIn19fSwiY29uZmlnIjp7ImMxIjoiMDAwMDAwIiwiYzIiOiJmZmZmZmYiLCJjMl8xIjoiMDAwMDAwIiwiYzJfMiI6ImZmZmZmZiJ9fSk7CgkJCQkJcmV0dXJuOwoJCQkJfQoJCQkJc2V0VGltZW91dCggaW5pdCwgMzAwMCApOwoJCQl9CgkJCWluaXQoKTsKCQl9KSgpOwoJ","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgkJCQkJLyo8IVtDREFUQVsqLwoJCQkJCXZhciBib3hCbG9ja3MgPSB7ImNhciI6eyJmYnhfY2FyXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MjU3OTgsImNvbnNvIjo1LjkwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IkVsYW50cmEiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY2FyXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MjQ1OTksImNvbnNvIjo1LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJFbGFudHJhIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2Nhcl8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjQzNzQ4LCJjb25zbyI6OC4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJFbGFudHJhIE4iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY2FyXzQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjQsInBvc2l0aW9uIjo0LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NDIxOTksImNvbnNvIjo4LjA5OTk5OTk5OTk5OTk5OTY0NDcyODYzMjExOTk0OTkwNzA2NDQzNzg2NjIxMDkzNzUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IkVsYW50cmEgTiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jYXJfNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NSwicG9zaXRpb24iOjUsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjozODk3MywiY29uc28iOjcsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlNvbmF0YSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jYXJfNiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NiwicG9zaXRpb24iOjYsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjozNTE3NCwiY29uc28iOjYuNSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiU29uYXRhIiwic3BlY2lhbE9yZGVyIjowfX0sImh5YnJpZCI6eyJmYnhfaHlicmlkXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6MzQyOTgsImNvbnNvIjo0LjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IkVsYW50cmEgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjMzODk4LCJjb25zbyI6NC41LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJFbGFudHJhIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjo2MzQ5OCwiY29uc28iOjcuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiUGFsaXNhZGUgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ2Nzk4LCJjb25zbyI6NywiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiU2FudGEgRmUgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ1NDk4LCJjb25zbyI6Ni45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJTYW50YSBGZSBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6MzkwNzMsImNvbnNvIjo0LjU5OTk5OTk5OTk5OTk5OTY0NDcyODYzMjExOTk0OTkwNzA2NDQzNzg2NjIxMDkzNzUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlNvbmF0YSBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDU3NDgsImNvbnNvIjo2LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJUdWNzb24gSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF84Ijp7InZpc2libGUiOnRydWUsImlkIjo4LCJwb3NpdGlvbiI6OCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ2MzQ4LCJjb25zbyI6Ni43MDAwMDAwMDAwMDAwMDAxNzc2MzU2ODM5NDAwMjUwNDY0Njc3ODEwNjY4OTQ1MzEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiVHVjc29uIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH19LCJlbGVjdHJpYyI6eyJmYnhfZWxlY3RyaWNfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjQsInByaWNlIjo1ODI0OCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IklPTklRIDUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjQsInByaWNlIjo1NTc0OCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IklPTklRIDUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjQsInByaWNlIjo4MDk0OCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IklPTklRIDUgTiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY180Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MywiZnVlbCI6NCwicHJpY2UiOjU3NzQ4LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiSU9OSVEgNiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY181Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MywiZnVlbCI6NCwicHJpY2UiOjYyOTk4LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiSU9OSVEgOSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY182Ijp7InZpc2libGUiOnRydWUsImlkIjo2LCJwb3NpdGlvbiI6NiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjQ2NzQ4LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiS29uYSBFbGVjdHJpYyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY183Ijp7InZpc2libGUiOnRydWUsImlkIjo3LCJwb3NpdGlvbiI6NywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjQ5MjQ4LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiS29uYSBFbGVjdHJpYyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY184Ijp7InZpc2libGUiOnRydWUsImlkIjo4LCJwb3NpdGlvbiI6OCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjc1MjQ5LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiTkVYTyIsInNwZWNpYWxPcmRlciI6MH19LCJzdXYiOnsiZmJ4X3N1dl8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjI5Njk4LCJjb25zbyI6Ni43MDAwMDAwMDAwMDAwMDAxNzc2MzU2ODM5NDAwMjUwNDY0Njc3ODEwNjY4OTQ1MzEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiS29uYSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjoyODU5OSwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IktvbmEiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMsInBvc2l0aW9uIjozLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTY2OTgsImNvbnNvIjoxMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiUGFsaXNhZGUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjQsInBvc2l0aW9uIjo0LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTI2OTksImNvbnNvIjo5LjY5OTk5OTk5OTk5OTk5OTI4OTQ1NzI2NDIzOTg5OTgxNDEyODg3NTczMjQyMTg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiUGFsaXNhZGUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTAxOTksImNvbnNvIjo4LjgwMDAwMDAwMDAwMDAwMDcxMDU0MjczNTc2MDEwMDE4NTg3MTEyNDI2NzU3ODEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiU2FudGEgRmUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzgwNDgsImNvbnNvIjo3LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJUdWNzb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzY4NDksImNvbnNvIjo3LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJUdWNzb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MjQ5NDgsImNvbnNvIjo2LjkwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlZlbnVlIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl85Ijp7InZpc2libGUiOnRydWUsImlkIjo5LCJwb3NpdGlvbiI6OSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjIzNDQ5LCJjb25zbyI6Ni45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJWZW51ZSIsInNwZWNpYWxPcmRlciI6MH19LCJ0cnVjayI6eyJmYnhfdHJ1Y2tfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo0NDE0OSwiY29uc28iOjguNSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJTYW50YSBDcnV6Iiwic3BlY2lhbE9yZGVyIjowfX0sInBoZXYiOnsiZmJ4X3BoZXZfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjE2LCJwcmljZSI6NTYyNDgsImNvbnNvIjo2Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJUdWNzb24gUGx1Zy1JbiBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjo1NTg0OCwiY29uc28iOjYuNzk5OTk5OTk5OTk5OTk5ODIyMzY0MzE2MDU5OTc0OTUzNTMyMjE4OTMzMTA1NDY4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlR1Y3NvbiBQbHVnLUluIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH19fTsKCQkJCQkvKi0tKi8KCQkJCQl2YXIgYm94UG9zaXRpb25zID0geyJmYnhfY2FyXzEiOjEsImZieF9jYXJfMiI6MiwiZmJ4X2h5YnJpZF8xIjoxLCJmYnhfaHlicmlkXzIiOjIsImZieF9jYXJfMyI6MywiZmJ4X2Nhcl80Ijo0LCJmYnhfZWxlY3RyaWNfMSI6MSwiZmJ4X2VsZWN0cmljXzIiOjIsImZieF9lbGVjdHJpY18zIjozLCJmYnhfZWxlY3RyaWNfNCI6NCwiZmJ4X2VsZWN0cmljXzUiOjUsImZieF9zdXZfMSI6MSwiZmJ4X3N1dl8yIjoyLCJmYnhfZWxlY3RyaWNfNiI6NiwiZmJ4X2VsZWN0cmljXzciOjcsImZieF9lbGVjdHJpY184Ijo4LCJmYnhfc3V2XzMiOjMsImZieF9zdXZfNCI6NCwiZmJ4X2h5YnJpZF8zIjozLCJmYnhfdHJ1Y2tfMSI6MSwiZmJ4X3N1dl81Ijo1LCJmYnhfaHlicmlkXzQiOjQsImZieF9oeWJyaWRfNSI6NSwiZmJ4X2Nhcl81Ijo1LCJmYnhfY2FyXzYiOjYsImZieF9oeWJyaWRfNiI6NiwiZmJ4X3N1dl82Ijo2LCJmYnhfc3V2XzciOjcsImZieF9oeWJyaWRfNyI6NywiZmJ4X2h5YnJpZF84Ijo4LCJmYnhfcGhldl8xIjoxLCJmYnhfcGhldl8yIjoyLCJmYnhfc3V2XzgiOjgsImZieF9zdXZfOSI6OX07CgkJCQkJLyoqIEZpbHRlciBKUyBpbiBuZXdjYXJzLmpzICoqLwoJCQkJCS8qXV0+Ki8KCQkJCQoKCQkJCXZhciBMZWFkQ29uZmlncyA9ICh0eXBlb2YgTGVhZENvbmZpZ3MgIT0gJ3VuZGVmaW5lZCcpID8gTGVhZENvbmZpZ3MgOiB7fTsKCgkJCQlsZXQgYWN0aXZlTGFuZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVzaXRlbGFuZ3VhZ2UnKSA\/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVzaXRlbGFuZ3VhZ2UnKS52YWx1ZSA6ICdGUkVOQ0gnOwoKCQkJCUxlYWRDb25maWdzLkRlYWxlckFwcG9pbnRtZW50ID0gewoKCQkJCQl0aXRsZTogKGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ1JlcXVlc3QgYW4gYXBwb2ludG1lbnQnIDogJ1ByZW5kcmUgUmVuZGV6LXZvdXMnKSwKCQkJCQljbG9zZU9uU3VibWl0IDogdHJ1ZSwKCQkJCQluYW1lIDogJ0RlYWxlckFwcG9pbnRtZW50JywKCgkJCQkJb25CZWZvcmVPcGVuOiBmdW5jdGlvbihsZWFkQ29uZil7CiAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLnRyaWdnZXIoJ2RlYWxlckFwcG9pbnRtZW50LnN0YXJ0Jyk7CgoJCQkJCQljb25zdCB0aW1lVHh0RWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWRUaW1lJyk7CgkJCQkJCWNvbnN0IHRpbWVJbnB1dCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJkYXRlIl0nKTsKCQkJCQkJY29uc3QgcGlja2VyID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLmRhdGVwaWNrZXInKTsKCQkJCQkJY29uc3QgcGhvbmVFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJwaG9uZW51bSJdJyk7CgkJCQkJCWNvbnN0IGhvdXJzQmxvY2sgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuaG91cnNMaXN0Jyk7CgkJCQkJCWxldCBkYXlOb2RlcyA9IEFycmF5LmZyb20oaG91cnNCbG9jay5jaGlsZHJlbik7CgkJCQkJCWxldCBkYXRlRm9ybWF0ID0gIGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ0YgaiBZLCBIOmknIDogJ2ogRiBZLCBIOmknOwoKCgkJCQkJCWNvbnN0IHNldFNlbGVjdGVkID0gKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudGx5U2VsZWN0ZWREYXRlID0gc2VsZWN0ZWREYXRlc1swXSB8fCBuZXcgRGF0ZSgpOy8vZG9uJ3QgcGxheSB3aXRoIHRoaXMgb3IgbWlnaHQgYWZmZWN0IGRhdGUvdGltZSBzZWxlY3Rpb24KCQkJCQkJCWxldCBkYXlOdW0gPSBjdXJyZW50bHlTZWxlY3RlZERhdGUuZ2V0RGF5KCk7CgoJCQkJCQkJZGF5TnVtID0gZGF5TnVtID09IDAgPyA3IDogZGF5TnVtOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlNaW5UaW1lID0gZGF5Tm9kZXNbZGF5TnVtIC0gMV0uZGF0YXNldC5taW5ob3VyIHx8ICcwOTowMCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF5TWF4VGltZSA9IGRheU5vZGVzW2RheU51bSAtIDFdLmRhdGFzZXQubWF4aG91ciB8fCAnMTc6MDAnOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWluVGltZSBtYW5hZ2VtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lmIGRhdGUgaXMgdG9kYXksIG1pblRpbWUgbmVlZHMgdG8gYmUgYSBtaW5pbXVtIG9mIDFob3VyIGxhdGVyIGZyb20gY3VycmVudCB0aW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZWxlY3RlZERhdGVzWzBdKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWNjZXB0ZWRFeGNlcHRpb24gPSA1Oy8vbWludXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNlbGVjdGVkRGF0ZXNbMF0udG9EYXRlU3RyaW5nKCkgPT0gbm93LnRvRGF0ZVN0cmluZygpKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pbkhvdXIgPSBub3cuZ2V0SG91cnMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pbk1pbnV0ZSA9IG5vdy5nZXRNaW51dGVzKCkgKyA2MDsvL2FkZCAxIGhvdXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluTWludXRlID49IDYwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhvdXIgKz0gTWF0aC5mbG9vcihtaW5NaW51dGUgLyA2MCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgJSA2MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSAlIDE1KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21ha2UgaXQgc28gdGhhdCBtaW51dGVzIGFyZSBlaXRoZXIgcm91bmRlZCB0byBuZXh0IDE1bWluIGluY3JlbWVudCBvciB0byB0aGUgcHJldmlvdXMgb25lIGlmIHdpdGhpbiBhY2NlcHRlZEV4Y2VwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSAlIDE1IDw9IGFjY2VwdGVkRXhjZXB0aW9uKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTWludXRlID0gbWluTWludXRlIC0gKG1pbk1pbnV0ZSAlIDE1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZigobWluTWludXRlICUgMTUgPiBhY2NlcHRlZEV4Y2VwdGlvbikpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgKyAoMTUgLSAobWluTWludXRlICUgMTUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2RvIG5vdGhpbmcsIGFscmVhZHkgYXQgaW5jcmVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluSG91ciA+PSAyNCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL25vIG1vcmUgYXZhaWxhYmxlIHRpbWUgdG9kYXksIHNldCB0byBuZXh0IGRheSBhdCAwOTowMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uuc2V0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5zdGFuY2Uuc2V0KCdtaW5UaW1lJywgZGF5TWluVGltZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5TWluVGltZSA9IFN0cmluZyhtaW5Ib3VyKS5wYWRTdGFydCgyLCcwJykgKyAnOicgKyBTdHJpbmcobWluTWludXRlKS5wYWRTdGFydCgyLCcwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tYXhUaW1lIG1hbmFnZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhc3QgYXBwb2ludG1lbnQgdGltZSBtYW5hZ2VtZW50ICgxNW1pbiBiZWZvcmUgY2xvc2luZyB0aW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFtjbG9zaW5nSG91cnMsIGNsb3NpbmdNaW51dGVzXSA9IGRheU1heFRpbWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlEYXRlID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheURhdGUuc2V0SG91cnMoY2xvc2luZ0hvdXJzLCBjbG9zaW5nTWludXRlcywgMCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlEYXRlLnNldE1pbnV0ZXMoZGF5RGF0ZS5nZXRNaW51dGVzKCkgLSAxNSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Zvcm1hdCB0aGUgbmV3IHRpbWUgYmFjayBpbnRvICdISDptbScgZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsQ2xvc2luZ0hvdXJzID0gZGF5RGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWxDbG9zaW5nTWludXRlcyA9IGRheURhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU1heFRpbWUgPSBhY3R1YWxDbG9zaW5nSG91cnMgKyAnOicgKyBhY3R1YWxDbG9zaW5nTWludXRlczsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NldCBzdGFydC9lbmQgdGltZSBmb3IgdGhhdCBkYXkKCQkJCQkJCWluc3RhbmNlLnNldCgnbWluVGltZScsIGRheU1pblRpbWUpOwoJCQkJCQkJaW5zdGFuY2Uuc2V0KCdtYXhUaW1lJywgZGF5TWF4VGltZSk7CgoJCQkJCQkJLy9TZXQgY3VycmVudCBkYXRlIGluaXRpYWxseQoJCQkJCQkJdGltZVR4dEVsLnRleHRDb250ZW50ID0gIXNlbGVjdGVkRGF0ZXMubGVuZ3RoCgkJCQkJCQkJCQkJCSAgPyBpbnN0YW5jZS5mb3JtYXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwgKGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ0YgaiBZLCAxMjowMCcgOiAnaiBGIFksIDEyOjAwJykpCgkJCQkJCQkJCQkJCSAgOiBkYXRlU3RyOwoKCQkJCQkJCS8vZ2V0IHRoZSBkYXRlIGluIGVuZ2xpc2ggYW5kIGZyZW5jaCBmb3IgdGhlIGxvY2FsIHN0b3JhZ2UKCQkJCQkJCXRpbWVUeHRFbC5kYXRhc2V0LmVuID0gaW5zdGFuY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksJ0YgaiBZLCAxMjowMCcsIGZsYXRwaWNrci5sMTBucy5lbik7CgkJCQkJCQl0aW1lVHh0RWwuZGF0YXNldC5mciA9IGluc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCdqIEYgWSwgMTI6MDAnLCBmbGF0cGlja3IubDEwbnMuZnIpOwoKCQkJCQkJCXRpbWVJbnB1dC52YWx1ZSA9IHRpbWVUeHRFbC50ZXh0Q29udGVudDsKCgkJCQkJCQlpbnN0YW5jZS5ob3VyRWxlbWVudC5ibHVyKCk7CgkJCQkJCX07CgoJCQkJCQlsZXQgY2xvc2VkRGF5cyA9IFtdOwoJCQkJCQlkYXlOb2Rlcy5mb3JFYWNoKChlLGkpID0+IHsKCQkJCQkJCWlmKChlLmRhdGFzZXQuY2xvc2VkIHx8ICcwJykgPT0gJzEnKSBjbG9zZWREYXlzLnB1c2goaSkKCQkJCQkJfSk7CgoJCQkJCQkvL0FkZCBmcmVuY2ggbG9jYWxpemF0aW9uIHdoZW4gbmVlZGVkCgkJCQkJCWlmKGFjdGl2ZUxhbmcgPT0gJ0ZSRU5DSCcpewoJCQkJCQkJZmxhdHBpY2tyLmxvY2FsaXplKGZsYXRwaWNrci5sMTBucy5mcik7CgkJCQkJCX0KCgoKCQkJCQkJY29uc3QgZnAgPSBmbGF0cGlja3IocGlja2VyLCB7CgkJCQkJCQlpbmxpbmU6dHJ1ZSwKCQkJCQkJCWVuYWJsZVRpbWU6IHRydWUsCgkJCQkJCQltaW5EYXRlOiAndG9kYXknLC8vYmFjayBmcm9tIG5ldyBEYXRlKCkuZnBfaW5jcigxKSBidXQgYWxzbyBhZGRlZCB0aW1lIHZhbGlkYXRpb24gZm9yIG1pblRpbWUKCQkJCQkJCW1pblRpbWU6ICIwOTowMCIsCgkJCQkJCQltYXhUaW1lOiAiMTc6MDAiLAoJCQkJCQkJZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdCwvLyJELCBqIEYgWSwgSDppIiwKCQkJCQkJCW1pbnV0ZUluY3JlbWVudDoxNSwKCQkJCQkJCXRpbWVfMjRocjp0cnVlLAoJCQkJCQkJb25DaGFuZ2U6IHNldFNlbGVjdGVkLAoJCQkJCQkJb25SZWFkeTogc2V0U2VsZWN0ZWQsCgkJCQkJCQlkaXNhYmxlOiBbCgkJCQkJCQkJZnVuY3Rpb24oZGF0ZSl7CgkJCQkJCQkJCWxldCBkYXlOdW0gPSBkYXRlLmdldERheSgpID09IDAgPyA3IDogZGF0ZS5nZXREYXkoKTsKCQkJCQkJCQkJcmV0dXJuIGNsb3NlZERheXMuaW5jbHVkZXMoZGF5TnVtIC0gMSk7CgkJCQkJCQkJfQoJCQkJCQkJXSwKCQkJCQkJCWxvY2FsZTogewoJCQkJCQkJCWZpcnN0RGF5T2ZXZWVrOiAxIC8vIHN0YXJ0IHdlZWsgb24gTW9uZGF5CgkJCQkJCQl9CgoJCQkJCQl9KTsKCgkJCQkJfSwKCgkJCQkJb25CZWZvcmVTdWJtaXQgOiAobGVhZENvbmYpID0+IHsKCQkJCQkJY29uc3QgdGltZVR4dEVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkVGltZScpOwoJCQkJCQllbWFpbEhhbmRsZXIuZGVhbGVyQXBwb2ludG1lbnREYXRhID0gewoJCQkJCQkJZGF0ZSA6IHRpbWVUeHRFbC50ZXh0Q29udGVudAoJCQkJCQl9OwoJCQkJCX0sCgoJCQkJCW9uQWZ0ZXJTdWJtaXQgOiAobGVhZENvbmYpID0+IHsKCgkJCQkJCWNvbnN0IHRpbWVUeHRFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZFRpbWUnKTsKCgkJCQkJCWNvbnN0IGNiID0gdHJhY2tTdGVwID0+IHsKCQkJCQkJCXRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9mciA9IHRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9mci5yZXBsYWNlKCd7JEFQUE9JTlRfREFURX0nLCB0aW1lVHh0RWwuZGF0YXNldC5mcik7CgkJCQkJCQl0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZW4gPSB0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZW4ucmVwbGFjZSgneyRBUFBPSU5UX0RBVEV9JywgdGltZVR4dEVsLmRhdGFzZXQuZW4pOwoJCQkJCQl9OwoKCQkJCQkJbGV0IGNvbXBsZXRlRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3RyYWNrc3RlcC5jb21wbGV0ZScsewoJCQkJCQkJZGV0YWlsOnsKCQkJCQkJCQlzdGVwSWQgOiAnRGVhbGVyQXBwb2ludG1lbnQnLAoJCQkJCQkJCW9uQ29tcGxldGUgOiBjYgoJCQkJCQkJfQoJCQkJCQl9KTsKCgkJCQkJCWRvY3VtZW50LmRpc3BhdGNoRXZlbnQoY29tcGxldGVFdmVudCk7CgogICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS50cmlnZ2VyKCdkZWFsZXJBcHBvaW50bWVudC5lbmQnKTsKCQkJCQl9CgoJCQkJfQoKCQkJCi8qKiAvanMvc2tlbGV0b24uYmVmb3JlLmpzICoqLwp2YXIgX19fZDJjX3NrZWxldG9uYmVmb3JlanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzowMyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfc2tlbGV0b25iZWZvcmVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM3OjU3IjsidXNlIHN0cmljdCI7X19fZDJjX3NrZWxldG9uYmVmb3JlanNfY19vbj0iMjAyMy0wNi0wMSAxMjozMDoxOSI7InVzZSBzdHJpY3QiO2xldCAkanNjb21wJG51bGxpc2gkdG1wMDt3aW5kb3cuZ1NwZWVkQ29ubj1wYXJzZUludChNYXRoLmZsb29yKChEYXRlLm5vdygpLShudWxsIT0oJGpzY29tcCRudWxsaXNoJHRtcDA9d2luZG93LmdUZXN0U3BlZWRDb25uKT8kanNjb21wJG51bGxpc2gkdG1wMDowKSkvMUUzKSk7bGV0ICRqc2NvbXAkbnVsbGlzaCR0bXAxO2NvbnNvbGUubG9nKCJHU1BFRUQtQkVGT1JFOiIrKERhdGUubm93KCktKG51bGwhPSgkanNjb21wJG51bGxpc2gkdG1wMT13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pPyRqc2NvbXAkbnVsbGlzaCR0bXAxOjApKS8xRTMpOwovKiogL2pzL2pxdWVyeS5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjQ5IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMxOjMzIjsidXNlIHN0cmljdCI7CiFmdW5jdGlvbihuLGRhKXsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1uLmRvY3VtZW50P2RhKG4sITApOmZ1bmN0aW9uKHdhKXtpZighd2EuZG9jdW1lbnQpdGhyb3cgRXJyb3IoImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gZGEod2EpfTpkYShuKX0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c\/d2luZG93OnRoaXMsZnVuY3Rpb24obixkYSl7ZnVuY3Rpb24gd2EoYSxiLGMpe3ZhciBlLGYsZz0oYz1jfHxMKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihnLnRleHQ9YSxiKWZvcihlIGluIExjKShmPWJbZV18fGIuZ2V0QXR0cmlidXRlJiZiLmdldEF0dHJpYnV0ZShlKSkmJmcuc2V0QXR0cmlidXRlKGUsZik7Yy5oZWFkLmFwcGVuZENoaWxkKGcpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyl9ZnVuY3Rpb24gVShhKXtyZXR1cm4gbnVsbD09YT9hKwoiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP01iW2tjLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX1mdW5jdGlvbiBlYihhKXt2YXIgYj0hIWEmJiJsZW5ndGgiaW4gYSYmYS5sZW5ndGgsYz1VKGEpO3JldHVybiFNKGEpJiYha2IoYSkmJigiYXJyYXkiPT09Y3x8MD09PWJ8fCJudW1iZXIiPT10eXBlb2YgYiYmMDxiJiZiLTEgaW4gYSl9ZnVuY3Rpb24gWChhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gYmEoYSxiKXtyZXR1cm4gYj8iXHgwMCI9PT1hPyJcdWZmZmQiOmEuc2xpY2UoMCwtMSkrIlxcIithLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK2F9ZnVuY3Rpb24gamEoYSxiLGMpe3JldHVybiBNKGIpP2QuZ3JlcChhLGZ1bmN0aW9uKGUsZil7cmV0dXJuISFiLmNhbGwoZSxmLGUpIT09Y30pOmIubm9kZVR5cGU\/ZC5ncmVwKGEsCmZ1bmN0aW9uKGUpe3JldHVybiBlPT09YiE9PWN9KToic3RyaW5nIiE9dHlwZW9mIGI\/ZC5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuLTE8TmEuY2FsbChiLGUpIT09Y30pOmQuZmlsdGVyKGIsYSxjKX1mdW5jdGlvbiBsYihhLGIpe2Zvcig7KGE9YVtiXSkmJjEhPT1hLm5vZGVUeXBlOyk7cmV0dXJuIGF9ZnVuY3Rpb24gWWEoYSl7cmV0dXJuIGF9ZnVuY3Rpb24gWmEoYSl7dGhyb3cgYTt9ZnVuY3Rpb24gbWIoYSxiLGMsZSl7dmFyIGY7dHJ5e2EmJk0oZj1hLnByb21pc2UpP2YuY2FsbChhKS5kb25lKGIpLmZhaWwoYyk6YSYmTShmPWEudGhlbik\/Zi5jYWxsKGEsYixjKTpiLmFwcGx5KHZvaWQgMCxbYV0uc2xpY2UoZSkpfWNhdGNoKGcpe2MuYXBwbHkodm9pZCAwLFtnXSl9fWZ1bmN0aW9uIE9hKCl7TC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixPYSk7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixPYSk7ZC5yZWFkeSgpfWZ1bmN0aW9uIE5iKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX0KZnVuY3Rpb24gQmEoYSl7cmV0dXJuIGEucmVwbGFjZShNYywibXMtIikucmVwbGFjZShOYyxOYil9ZnVuY3Rpb24gSmEoKXt0aGlzLmV4cGFuZG89ZC5leHBhbmRvK0phLnVpZCsrfWZ1bmN0aW9uIE9iKGEsYixjKXt2YXIgZSxmO2lmKHZvaWQgMD09PWMmJjE9PT1hLm5vZGVUeXBlKWlmKGU9ImRhdGEtIitiLnJlcGxhY2UoT2MsIi0kJiIpLnRvTG93ZXJDYXNlKCksInN0cmluZyI9PXR5cGVvZihjPWEuZ2V0QXR0cmlidXRlKGUpKSl7dHJ5e2M9InRydWUiPT09KGY9Yyl8fCJmYWxzZSIhPT1mJiYoIm51bGwiPT09Zj9udWxsOmY9PT0rZisiIj8rZjpQYy50ZXN0KGYpP0pTT04ucGFyc2UoZik6Zil9Y2F0Y2goZyl7fXhhLnNldChhLGIsYyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY31mdW5jdGlvbiBQYihhLGIsYyxlKXt2YXIgZixnLGg9MjAsbT1lP2Z1bmN0aW9uKCl7cmV0dXJuIGUuY3VyKCl9OmZ1bmN0aW9uKCl7cmV0dXJuIGQuY3NzKGEsYiwiIil9LGw9bSgpLHQ9YyYmY1szXXx8CihkLmNzc051bWJlcltiXT8iIjoicHgiKSx3PWEubm9kZVR5cGUmJihkLmNzc051bWJlcltiXXx8InB4IiE9PXQmJitsKSYmeWIuZXhlYyhkLmNzcyhhLGIpKTtpZih3JiZ3WzNdIT09dCl7bC89Mjt0PXR8fHdbM107Zm9yKHc9K2x8fDE7aC0tOylkLnN0eWxlKGEsYix3K3QpLDA+PSgxLWcpKigxLShnPW0oKS9sfHwuNSkpJiYoaD0wKSx3Lz1nO3cqPTI7ZC5zdHlsZShhLGIsdyt0KTtjPWN8fFtdfXJldHVybiBjJiYodz0rd3x8K2x8fDAsZj1jWzFdP3crKGNbMV0rMSkqY1syXTorY1syXSxlJiYoZS51bml0PXQsZS5zdGFydD13LGUuZW5kPWYpKSxmfWZ1bmN0aW9uICRhKGEsYil7Zm9yKHZhciBjLGUsZixnLGgsbSxsLHQ9W10sdz0wLHI9YS5sZW5ndGg7dzxyO3crKykoZT1hW3ddKS5zdHlsZSYmKGM9ZS5zdHlsZS5kaXNwbGF5LGI\/KCJub25lIj09PWMmJih0W3ddPUcuZ2V0KGUsImRpc3BsYXkiKXx8bnVsbCx0W3ddfHwoZS5zdHlsZS5kaXNwbGF5PSIiKSksIiI9PT1lLnN0eWxlLmRpc3BsYXkmJgpRYihlKSYmKHRbd109KGw9aD1nPXZvaWQgMCxoPShmPWUpLm93bmVyRG9jdW1lbnQsbT1mLm5vZGVOYW1lLChsPWxjW21dKXx8KGc9aC5ib2R5LmFwcGVuZENoaWxkKGguY3JlYXRlRWxlbWVudChtKSksbD1kLmNzcyhnLCJkaXNwbGF5IiksZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpLCJub25lIj09PWwmJihsPSJibG9jayIpLGxjW21dPWwpKSkpOiJub25lIiE9PWMmJih0W3ddPSJub25lIixHLnNldChlLCJkaXNwbGF5IixjKSkpO2Zvcih3PTA7dzxyO3crKyludWxsIT10W3ddJiYoYVt3XS5zdHlsZS5kaXNwbGF5PXRbd10pO3JldHVybiBhfWZ1bmN0aW9uIHNhKGEsYil7dmFyIGM7cmV0dXJuIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYnx8IioiKToidW5kZWZpbmVkIiE9dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbD9hLnF1ZXJ5U2VsZWN0b3JBbGwoYnx8IioiKTpbXSx2b2lkIDA9PT1ifHxiJiYKWChhLGIpP2QubWVyZ2UoW2FdLGMpOmN9ZnVuY3Rpb24gbmIoYSxiKXtmb3IodmFyIGM9MCxlPWEubGVuZ3RoO2M8ZTtjKyspRy5zZXQoYVtjXSwiZ2xvYmFsRXZhbCIsIWJ8fEcuZ2V0KGJbY10sImdsb2JhbEV2YWwiKSl9ZnVuY3Rpb24gUmIoYSxiLGMsZSxmKXtmb3IodmFyIGcsaCxtLGwsdD1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSx3PVtdLHI9MCx6PWEubGVuZ3RoO3I8ejtyKyspaWYoKGc9YVtyXSl8fDA9PT1nKWlmKCJvYmplY3QiPT09VShnKSlkLm1lcmdlKHcsZy5ub2RlVHlwZT9bZ106Zyk7ZWxzZSBpZihRYy50ZXN0KGcpKXtoPWh8fHQuYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSk7bT0obWMuZXhlYyhnKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKTttPUNhW21dfHxDYS5fZGVmYXVsdDtoLmlubmVySFRNTD1tWzFdK2QuaHRtbFByZWZpbHRlcihnKSttWzJdO2ZvcihtPW1bMF07bS0tOyloPWgubGFzdENoaWxkO2QubWVyZ2UodyxoLmNoaWxkTm9kZXMpOwooaD10LmZpcnN0Q2hpbGQpLnRleHRDb250ZW50PSIifWVsc2Ugdy5wdXNoKGIuY3JlYXRlVGV4dE5vZGUoZykpO3QudGV4dENvbnRlbnQ9IiI7Zm9yKHI9MDtnPXdbcisrXTspaWYoZSYmLTE8ZC5pbkFycmF5KGcsZSkpZiYmZi5wdXNoKGcpO2Vsc2UgaWYobD1vYihnKSxoPXNhKHQuYXBwZW5kQ2hpbGQoZyksInNjcmlwdCIpLGwmJm5iKGgpLGMpZm9yKG09MDtnPWhbbSsrXTspbmMudGVzdChnLnR5cGV8fCIiKSYmYy5wdXNoKGcpO3JldHVybiB0fWZ1bmN0aW9uIGFiKCl7cmV0dXJuITB9ZnVuY3Rpb24gYmIoKXtyZXR1cm4hMX1mdW5jdGlvbiBmYihhLGIsYyxlLGYsZyl7dmFyIGgsbTtpZigib2JqZWN0Ij09dHlwZW9mIGIpe2ZvcihtIGluInN0cmluZyIhPXR5cGVvZiBjJiYoZT1lfHxjLGM9dm9pZCAwKSxiKWZiKGEsbSxjLGUsYlttXSxnKTtyZXR1cm4gYX1pZihudWxsPT1lJiZudWxsPT1mPyhmPWMsZT1jPXZvaWQgMCk6bnVsbD09ZiYmKCJzdHJpbmciPT10eXBlb2YgYz8oZj0KZSxlPXZvaWQgMCk6KGY9ZSxlPWMsYz12b2lkIDApKSwhMT09PWYpZj1iYjtlbHNlIGlmKCFmKXJldHVybiBhO3JldHVybiAxPT09ZyYmKGg9ZiwoZj1mdW5jdGlvbihsKXtyZXR1cm4gZCgpLm9mZihsKSxoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLmd1aWQ9aC5ndWlkfHwoaC5ndWlkPWQuZ3VpZCsrKSksYS5lYWNoKGZ1bmN0aW9uKCl7ZC5ldmVudC5hZGQodGhpcyxiLGYsZSxjKX0pfWZ1bmN0aW9uIHBiKGEsYixjKXtjPyhHLnNldChhLGIsITEpLGQuZXZlbnQuYWRkKGEsYix7bmFtZXNwYWNlOiExLGhhbmRsZXI6ZnVuY3Rpb24oZSl7dmFyIGYsZz1HLmdldCh0aGlzLGIpO2lmKDEmZS5pc1RyaWdnZXImJnRoaXNbYl0paWYoZykoZC5ldmVudC5zcGVjaWFsW2JdfHx7fSkuZGVsZWdhdGVUeXBlJiZlLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2V7aWYoZz15YS5jYWxsKGFyZ3VtZW50cyksRy5zZXQodGhpcyxiLGcpLHRoaXNbYl0oKSxmPUcuZ2V0KHRoaXMsYiksRy5zZXQodGhpcyxiLAohMSksZyE9PWYpcmV0dXJuIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpLGZ9ZWxzZSBnJiYoRy5zZXQodGhpcyxiLGQuZXZlbnQudHJpZ2dlcihnWzBdLGcuc2xpY2UoMSksdGhpcykpLGUuc3RvcFByb3BhZ2F0aW9uKCksZS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1hYil9fSkpOnZvaWQgMD09PUcuZ2V0KGEsYikmJmQuZXZlbnQuYWRkKGEsYixhYil9ZnVuY3Rpb24gU2IoYSxiKXtyZXR1cm4gWChhLCJ0YWJsZSIpJiZYKDExIT09Yi5ub2RlVHlwZT9iOmIuZmlyc3RDaGlsZCwidHIiKSYmZChhKS5jaGlsZHJlbigidGJvZHkiKVswXXx8YX1mdW5jdGlvbiBxYihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09YS5nZXRBdHRyaWJ1dGUoInR5cGUiKSkrIi8iK2EudHlwZSxhfWZ1bmN0aW9uICRiKGEpe3JldHVybiJ0cnVlLyI9PT0oYS50eXBlfHwiIikuc2xpY2UoMCw1KT9hLnR5cGU9YS50eXBlLnNsaWNlKDUpOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksCmF9ZnVuY3Rpb24gZ2IoYSxiKXt2YXIgYyxlLGYsZyxoO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihHLmhhc0RhdGEoYSkmJihoPUcuZ2V0KGEpLmV2ZW50cykpZm9yKGUgaW4gRy5yZW1vdmUoYiwiaGFuZGxlIGV2ZW50cyIpLGgpe3ZhciBtPTA7Zm9yKGM9aFtlXS5sZW5ndGg7bTxjO20rKylkLmV2ZW50LmFkZChiLGUsaFtlXVttXSl9eGEuaGFzRGF0YShhKSYmKGY9eGEuYWNjZXNzKGEpLGc9ZC5leHRlbmQoe30sZikseGEuc2V0KGIsZykpfX1mdW5jdGlvbiBjYihhLGIsYyxlKXtiPW9jKGIpO3ZhciBmLGcsaCxtPTAsbD1hLmxlbmd0aCx0PWwtMSx3PWJbMF0scj1NKHcpO2lmKHJ8fDE8bCYmInN0cmluZyI9PXR5cGVvZiB3JiYhTi5jaGVja0Nsb25lJiZSYy50ZXN0KHcpKXJldHVybiBhLmVhY2goZnVuY3Rpb24oRCl7dmFyIEY9YS5lcShEKTtyJiYoYlswXT13LmNhbGwodGhpcyxELEYuaHRtbCgpKSk7Y2IoRixiLGMsZSl9KTtpZihsJiYoZz0oZj1SYihiLGFbMF0ub3duZXJEb2N1bWVudCwKITEsYSxlKSkuZmlyc3RDaGlsZCwxPT09Zi5jaGlsZE5vZGVzLmxlbmd0aCYmKGY9ZyksZ3x8ZSkpe2ZvcihoPShnPWQubWFwKHNhKGYsInNjcmlwdCIpLHFiKSkubGVuZ3RoO208bDttKyspe3ZhciB6PWY7bSE9PXQmJih6PWQuY2xvbmUoeiwhMCwhMCksaCYmZC5tZXJnZShnLHNhKHosInNjcmlwdCIpKSk7Yy5jYWxsKGFbbV0seixtKX1pZihoKWZvcihmPWdbZy5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxkLm1hcChnLCRiKSxtPTA7bTxoO20rKyl6PWdbbV0sbmMudGVzdCh6LnR5cGV8fCIiKSYmIUcuYWNjZXNzKHosImdsb2JhbEV2YWwiKSYmZC5jb250YWlucyhmLHopJiYoei5zcmMmJiJtb2R1bGUiIT09KHoudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk\/ZC5fZXZhbFVybCYmIXoubm9Nb2R1bGUmJmQuX2V2YWxVcmwoei5zcmMse25vbmNlOnoubm9uY2V8fHouZ2V0QXR0cmlidXRlKCJub25jZSIpfSxmKTp3YSh6LnRleHRDb250ZW50LnJlcGxhY2UoU2MsIiIpLHosZikpfXJldHVybiBhfQpmdW5jdGlvbiBUYihhLGIsYyl7Zm9yKHZhciBlPWI\/ZC5maWx0ZXIoYixhKTphLGY9MDtudWxsIT0oYj1lW2ZdKTtmKyspY3x8MSE9PWIubm9kZVR5cGV8fGQuY2xlYW5EYXRhKHNhKGIpKSxiLnBhcmVudE5vZGUmJihjJiZvYihiKSYmbmIoc2EoYiwic2NyaXB0IikpLGIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gS2EoYSxiLGMpe3ZhciBlLGYsZyxoLG09YWMudGVzdChiKSxsPWEuc3R5bGU7cmV0dXJuKGM9Y3x8VWIoYSkpJiYoaD1jLmdldFByb3BlcnR5VmFsdWUoYil8fGNbYl0sbSYmaCYmKGg9aC5yZXBsYWNlKHpiLCIkMSIpfHx2b2lkIDApLCIiIT09aHx8b2IoYSl8fChoPWQuc3R5bGUoYSxiKSksIU4ucGl4ZWxCb3hTdHlsZXMoKSYmYmMudGVzdChoKSYmVGMudGVzdChiKSYmKGU9bC53aWR0aCxmPWwubWluV2lkdGgsZz1sLm1heFdpZHRoLGwubWluV2lkdGg9bC5tYXhXaWR0aD1sLndpZHRoPWgsaD1jLndpZHRoLGwud2lkdGg9ZSxsLm1pbldpZHRoPQpmLGwubWF4V2lkdGg9ZykpLHZvaWQgMCE9PWg\/aCsiIjpofWZ1bmN0aW9uIFZiKGEsYil7cmV0dXJue2dldDpmdW5jdGlvbigpe2lmKCFhKCkpcmV0dXJuKHRoaXMuZ2V0PWIpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkZWxldGUgdGhpcy5nZXR9fX1mdW5jdGlvbiBBYihhKXt2YXIgYjtpZighKGI9ZC5jc3NQcm9wc1thXXx8cGNbYV0pKXtpZighKGEgaW4gcWMpKXthOntiPWE7Zm9yKHZhciBjPWJbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpLGU9cmMubGVuZ3RoO2UtLTspaWYoKGI9cmNbZV0rYylpbiBxYylicmVhayBhO2I9dm9pZCAwfWE9cGNbYV09Ynx8YX1iPWF9cmV0dXJuIGJ9ZnVuY3Rpb24gV2IoYSxiLGMpe3JldHVybihhPXliLmV4ZWMoYikpP01hdGgubWF4KDAsYVsyXS0oY3x8MCkpKyhhWzNdfHwicHgiKTpifWZ1bmN0aW9uIHJiKGEsYixjLGUsZixnKXt2YXIgaD0id2lkdGgiPT09Yj8xOjAsbT0wLGw9MCx0PTA7aWYoYz09PShlPyJib3JkZXIiOiJjb250ZW50IikpcmV0dXJuIDA7CmZvcig7ND5oO2grPTIpIm1hcmdpbiI9PT1jJiYodCs9ZC5jc3MoYSxjK1BhW2hdLCEwLGYpKSxlPygiY29udGVudCI9PT1jJiYobC09ZC5jc3MoYSwicGFkZGluZyIrUGFbaF0sITAsZikpLCJtYXJnaW4iIT09YyYmKGwtPWQuY3NzKGEsImJvcmRlciIrUGFbaF0rIldpZHRoIiwhMCxmKSkpOihsKz1kLmNzcyhhLCJwYWRkaW5nIitQYVtoXSwhMCxmKSwicGFkZGluZyIhPT1jP2wrPWQuY3NzKGEsImJvcmRlciIrUGFbaF0rIldpZHRoIiwhMCxmKTptKz1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZikpO3JldHVybiFlJiYwPD1nJiYobCs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoYVsib2Zmc2V0IitiWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKV0tZy1sLW0tLjUpKXx8MCksbCt0fWZ1bmN0aW9uIEJiKGEsYixjKXt2YXIgZT1VYihhKSxmPSghTi5ib3hTaXppbmdSZWxpYWJsZSgpfHxjKSYmImJvcmRlci1ib3giPT09ZC5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSxnPQpmLGg9S2EoYSxiLGUpLG09Im9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSk7aWYoYmMudGVzdChoKSl7aWYoIWMpcmV0dXJuIGg7aD0iYXV0byJ9cmV0dXJuKCFOLmJveFNpemluZ1JlbGlhYmxlKCkmJmZ8fCFOLnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJlgoYSwidHIiKXx8ImF1dG8iPT09aHx8IXBhcnNlRmxvYXQoaCkmJiJpbmxpbmUiPT09ZC5jc3MoYSwiZGlzcGxheSIsITEsZSkpJiZhLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoZj0iYm9yZGVyLWJveCI9PT1kLmNzcyhhLCJib3hTaXppbmciLCExLGUpLChnPW0gaW4gYSkmJihoPWFbbV0pKSwoaD1wYXJzZUZsb2F0KGgpfHwwKStyYihhLGIsY3x8KGY\/ImJvcmRlciI6ImNvbnRlbnQiKSxnLGUsaCkrInB4In1mdW5jdGlvbiB6YShhLGIsYyxlLGYpe3JldHVybiBuZXcgemEucHJvdG90eXBlLmluaXQoYSxiLGMsZSxmKX1mdW5jdGlvbiBDYigpe1hiJiYoITE9PT1MLmhpZGRlbiYmbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU\/Cm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKENiKTpuLnNldFRpbWVvdXQoQ2IsZC5meC5pbnRlcnZhbCksZC5meC50aWNrKCkpfWZ1bmN0aW9uIERiKCl7cmV0dXJuIG4uc2V0VGltZW91dChmdW5jdGlvbigpe3NiPXZvaWQgMH0pLHNiPURhdGUubm93KCl9ZnVuY3Rpb24gdGIoYSxiKXt2YXIgYyxlPTAsZj17aGVpZ2h0OmF9O2ZvcihiPWI\/MTowOzQ+ZTtlKz0yLWIpZlsibWFyZ2luIisoYz1QYVtlXSldPWZbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihmLm9wYWNpdHk9Zi53aWR0aD1hKSxmfWZ1bmN0aW9uIHUoYSxiLGMpe2Zvcih2YXIgZSxmPSh4LnR3ZWVuZXJzW2JdfHxbXSkuY29uY2F0KHgudHdlZW5lcnNbIioiXSksZz0wLGg9Zi5sZW5ndGg7ZzxoO2crKylpZihlPWZbZ10uY2FsbChjLGIsYSkpcmV0dXJuIGV9ZnVuY3Rpb24geChhLGIsYyl7dmFyIGUsZj0wLGc9eC5wcmVmaWx0ZXJzLmxlbmd0aCxoPWQuRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgbS5lbGVtfSksCm09ZnVuY3Rpb24oKXtpZihlKXJldHVybiExO3ZhciB0PXNifHxEYigpO3Q9TWF0aC5tYXgoMCxsLnN0YXJ0VGltZStsLmR1cmF0aW9uLXQpO2Zvcih2YXIgdz0xLSh0L2wuZHVyYXRpb258fDApLHI9MCx6PWwudHdlZW5zLmxlbmd0aDtyPHo7cisrKWwudHdlZW5zW3JdLnJ1bih3KTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2wsdyx0XSksMT53JiZ6P3Q6KHp8fGgubm90aWZ5V2l0aChhLFtsLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbbF0pLCExKX0sbD1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpkLmV4dGVuZCh7fSxiKSxvcHRzOmQuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpkLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOnNifHxEYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKHQsdyl7dD1kLlR3ZWVuKGEsbC5vcHRzLHQsdyxsLm9wdHMuc3BlY2lhbEVhc2luZ1t0XXx8Cmwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKHQpLHR9LHN0b3A6ZnVuY3Rpb24odCl7dmFyIHc9MCxyPXQ\/bC50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDt3PHI7dysrKWwudHdlZW5zW3ddLnJ1bigxKTtyZXR1cm4gdD8oaC5ub3RpZnlXaXRoKGEsW2wsMSwwXSksaC5yZXNvbHZlV2l0aChhLFtsLHRdKSk6aC5yZWplY3RXaXRoKGEsW2wsdF0pLHRoaXN9fSk7Yz1sLnByb3BzOyFmdW5jdGlvbih0LHcpe3ZhciByLHosRCxGLE87Zm9yKHIgaW4gdClpZihEPXdbej1CYShyKV0sRj10W3JdLEFycmF5LmlzQXJyYXkoRikmJihEPUZbMV0sRj10W3JdPUZbMF0pLHIhPT16JiYodFt6XT1GLGRlbGV0ZSB0W3JdKSwoTz1kLmNzc0hvb2tzW3pdKSYmImV4cGFuZCJpbiBPKWZvcihyIGluIEY9Ty5leHBhbmQoRiksZGVsZXRlIHRbel0sRilyIGluIHR8fCh0W3JdPUZbcl0sd1tyXT1EKTtlbHNlIHdbel09RH0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7CmZvcig7ZjxnO2YrKylpZihiPXgucHJlZmlsdGVyc1tmXS5jYWxsKGwsYSxjLGwub3B0cykpcmV0dXJuIE0oYi5zdG9wKSYmKGQuX3F1ZXVlSG9va3MobC5lbGVtLGwub3B0cy5xdWV1ZSkuc3RvcD1iLnN0b3AuYmluZChiKSksYjtyZXR1cm4gZC5tYXAoYyx1LGwpLE0obC5vcHRzLnN0YXJ0KSYmbC5vcHRzLnN0YXJ0LmNhbGwoYSxsKSxsLnByb2dyZXNzKGwub3B0cy5wcm9ncmVzcykuZG9uZShsLm9wdHMuZG9uZSxsLm9wdHMuY29tcGxldGUpLmZhaWwobC5vcHRzLmZhaWwpLmFsd2F5cyhsLm9wdHMuYWx3YXlzKSxkLmZ4LnRpbWVyKGQuZXh0ZW5kKG0se2VsZW06YSxhbmltOmwscXVldWU6bC5vcHRzLnF1ZXVlfSkpLGx9ZnVuY3Rpb24gQyhhKXtyZXR1cm4oYS5tYXRjaChMYSl8fFtdKS5qb2luKCIgIil9ZnVuY3Rpb24gSChhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiBQKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpPwphOiJzdHJpbmciPT10eXBlb2YgYSYmYS5tYXRjaChMYSl8fFtdfWZ1bmN0aW9uIGVhKGEsYixjLGUpe3ZhciBmO2lmKEFycmF5LmlzQXJyYXkoYikpZC5lYWNoKGIsZnVuY3Rpb24oZyxoKXtjfHxVYy50ZXN0KGEpP2UoYSxoKTplYShhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBoJiZudWxsIT1oP2c6IiIpKyJdIixoLGMsZSl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09VShiKSllKGEsYik7ZWxzZSBmb3IoZiBpbiBiKWVhKGErIlsiK2YrIl0iLGJbZl0sYyxlKX1mdW5jdGlvbiBRYShhKXtyZXR1cm4gZnVuY3Rpb24oYixjKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWIsYj0iKiIpO3ZhciBlPTAsZj1iLnRvTG93ZXJDYXNlKCkubWF0Y2goTGEpfHxbXTtpZihNKGMpKWZvcig7Yj1mW2UrK107KSIrIj09PWJbMF0\/KGI9Yi5zbGljZSgxKXx8IioiLChhW2JdPWFbYl18fFtdKS51bnNoaWZ0KGMpKTooYVtiXT1hW2JdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gRWIoYSxiLGMsZSl7ZnVuY3Rpb24gZihtKXt2YXIgbDsKcmV0dXJuIGdbbV09ITAsZC5lYWNoKGFbbV18fFtdLGZ1bmN0aW9uKHQsdyl7dD13KGIsYyxlKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHR8fGh8fGdbdF0\/aD8hKGw9dCk6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KHQpLGYodCksITEpfSksbH12YXIgZz17fSxoPWE9PT1jYztyZXR1cm4gZihiLmRhdGFUeXBlc1swXSl8fCFnWyIqIl0mJmYoIioiKX1mdW5jdGlvbiBoYihhLGIpe3ZhciBjLGUsZj1kLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGMgaW4gYil2b2lkIDAhPT1iW2NdJiYoKGZbY10\/YTplfHwoZT17fSkpW2NdPWJbY10pO3JldHVybiBlJiZkLmV4dGVuZCghMCxhLGUpLGF9dmFyIG9hPVtdLHNjPU9iamVjdC5nZXRQcm90b3R5cGVPZix5YT1vYS5zbGljZSxvYz1vYS5mbGF0P2Z1bmN0aW9uKGEpe3JldHVybiBvYS5mbGF0LmNhbGwoYSl9OmZ1bmN0aW9uKGEpe3JldHVybiBvYS5jb25jYXQuYXBwbHkoW10sYSl9LHViPW9hLnB1c2gsTmE9b2EuaW5kZXhPZiwKTWI9e30sa2M9TWIudG9TdHJpbmcsRmI9TWIuaGFzT3duUHJvcGVydHksdGM9RmIudG9TdHJpbmcsVmM9dGMuY2FsbChPYmplY3QpLE49e30sTT1mdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYSYmIm51bWJlciIhPXR5cGVvZiBhLm5vZGVUeXBlJiYiZnVuY3Rpb24iIT10eXBlb2YgYS5pdGVtfSxrYj1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09PWEud2luZG93fSxMPW4uZG9jdW1lbnQsTGM9e3R5cGU6ITAsc3JjOiEwLG5vbmNlOiEwLG5vTW9kdWxlOiEwfSxXYz0vSFRNTCQvaSxkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBkLmZuLmluaXQoYSxiKX07ZC5mbj1kLnByb3RvdHlwZT17anF1ZXJ5OiIzLjcuMCIsY29uc3RydWN0b3I6ZCxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHlhLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT95YS5jYWxsKHRoaXMpOjA+YT90aGlzW2ErdGhpcy5sZW5ndGhdOnRoaXNbYV19LApwdXNoU3RhY2s6ZnVuY3Rpb24oYSl7YT1kLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYS5wcmV2T2JqZWN0PXRoaXMsYX0sZWFjaDpmdW5jdGlvbihhKXtyZXR1cm4gZC5lYWNoKHRoaXMsYSl9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayh5YS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQuZ3JlcCh0aGlzLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGIrMSklMn0pKX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQuZ3JlcCh0aGlzLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGIlCjJ9KSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoO2E9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjaygwPD1hJiZhPGI\/W3RoaXNbYV1dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcigpfSxwdXNoOnViLHNvcnQ6b2Euc29ydCxzcGxpY2U6b2Euc3BsaWNlfTtkLmV4dGVuZD1kLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBhLGIsYyxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxtPWFyZ3VtZW50cy5sZW5ndGgsbD0hMTsiYm9vbGVhbiI9PXR5cGVvZiBnJiYobD1nLGc9YXJndW1lbnRzW2hdfHx7fSxoKyspOyJvYmplY3QiPT10eXBlb2YgZ3x8TShnKXx8KGc9e30pO2ZvcihoPT09bSYmKGc9dGhpcyxoLS0pO2g8bTtoKyspaWYobnVsbCE9KGE9YXJndW1lbnRzW2hdKSlmb3IoYiBpbiBhKXt2YXIgdD1hW2JdOyJfX3Byb3RvX18iIT09YiYmZyE9PXQmJihsJiZ0JiYoZC5pc1BsYWluT2JqZWN0KHQpfHwKKGU9QXJyYXkuaXNBcnJheSh0KSkpPyhjPWdbYl0sZj1lJiYhQXJyYXkuaXNBcnJheShjKT9bXTplfHxkLmlzUGxhaW5PYmplY3QoYyk\/Yzp7fSxlPSExLGdbYl09ZC5leHRlbmQobCxmLHQpKTp2b2lkIDAhPT10JiYoZ1tiXT10KSl9cmV0dXJuIGd9O2QuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKygiMy43LjAiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgRXJyb3IoYSk7fSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiLGM7cmV0dXJuISghYXx8IltvYmplY3QgT2JqZWN0XSIhPT1rYy5jYWxsKGEpKSYmKCEoYj1zYyhhKSl8fCJmdW5jdGlvbiI9PXR5cGVvZihjPUZiLmNhbGwoYiwiY29uc3RydWN0b3IiKSYmYi5jb25zdHJ1Y3RvcikmJnRjLmNhbGwoYyk9PT1WYyl9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LApnbG9iYWxFdmFsOmZ1bmN0aW9uKGEsYixjKXt3YShhLHtub25jZTpiJiZiLm5vbmNlfSxjKX0sZWFjaDpmdW5jdGlvbihhLGIpe3ZhciBjLGU9MDtpZihlYihhKSlmb3IoYz1hLmxlbmd0aDtlPGMmJiExIT09Yi5jYWxsKGFbZV0sZSxhW2VdKTtlKyspO2Vsc2UgZm9yKGUgaW4gYSlpZighMT09PWIuY2FsbChhW2VdLGUsYVtlXSkpYnJlYWs7cmV0dXJuIGF9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz0iIixlPTA7aWYoYj1hLm5vZGVUeXBlKXtpZigxPT09Ynx8OT09PWJ8fDExPT09YilyZXR1cm4gYS50ZXh0Q29udGVudDtpZigzPT09Ynx8ND09PWIpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2UgZm9yKDtiPWFbZSsrXTspYys9ZC50ZXh0KGIpO3JldHVybiBjfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXtiPWJ8fFtdO3JldHVybiBudWxsIT1hJiYoZWIoT2JqZWN0KGEpKT9kLm1lcmdlKGIsInN0cmluZyI9PXR5cGVvZiBhP1thXTphKTp1Yi5jYWxsKGIsYSkpLGJ9LGluQXJyYXk6ZnVuY3Rpb24oYSwKYixjKXtyZXR1cm4gbnVsbD09Yj8tMTpOYS5jYWxsKGIsYSxjKX0saXNYTUxEb2M6ZnVuY3Rpb24oYSl7dmFyIGI9YSYmKGEub3duZXJEb2N1bWVudHx8YSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiFXYy50ZXN0KGEmJmEubmFtZXNwYWNlVVJJfHxiJiZiLm5vZGVOYW1lfHwiSFRNTCIpfSxtZXJnZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0rYi5sZW5ndGgsZT0wLGY9YS5sZW5ndGg7ZTxjO2UrKylhW2YrK109YltlXTtyZXR1cm4gYS5sZW5ndGg9ZixhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT1bXSxmPTAsZz1hLmxlbmd0aDtmb3IoYz0hYztmPGc7ZisrKSFiKGFbZl0sZikhPT1jJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnPTAsaD1bXTtpZihlYihhKSlmb3IoZT1hLmxlbmd0aDtnPGU7ZysrKW51bGwhPShmPWIoYVtnXSxnLGMpKSYmaC5wdXNoKGYpO2Vsc2UgZm9yKGcgaW4gYSludWxsIT0oZj1iKGFbZ10sZyxjKSkmJgpoLnB1c2goZik7cmV0dXJuIG9jKGgpfSxndWlkOjEsc3VwcG9ydDpOfSk7ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGQuZm5bU3ltYm9sLml0ZXJhdG9yXT1vYVtTeW1ib2wuaXRlcmF0b3JdKTtkLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7TWJbIltvYmplY3QgIitiKyJdIl09Yi50b0xvd2VyQ2FzZSgpfSk7dmFyIFhjPW9hLnBvcCxZYz1vYS5zb3J0LFpjPW9hLnNwbGljZSx6Yj1SZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdK3woKD86XnxbXlxcXFxdKSg\/OlxcXFwuKSopW1xceDIwXFx0XFxyXFxuXFxmXSskIiwiZyIpO2QuY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtiPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWJ8fCEoIWJ8fDEhPT1iLm5vZGVUeXBlfHwhKGEuY29udGFpbnM\/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYKMTYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSkpfTt2YXIgJGM9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15ceDgwLVx1RkZGRlx3LV0vZztkLmVzY2FwZVNlbGVjdG9yPWZ1bmN0aW9uKGEpe3JldHVybihhKyIiKS5yZXBsYWNlKCRjLGJhKX07dmFyIFJhPUw7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShrLHAscSx2KXt2YXIgeSxFLEEsSSxCPXAmJnAub3duZXJEb2N1bWVudCxKPXA\/cC5ub2RlVHlwZTo5O2lmKHE9cXx8W10sInN0cmluZyIhPXR5cGVvZiBrfHwha3x8MSE9PUomJjkhPT1KJiYxMSE9PUopcmV0dXJuIHE7aWYoIXYmJih0KHApLHA9cHx8Wix2YSkpe2lmKDExIT09SiYmKEk9YWQuZXhlYyhrKSkpaWYoeT1JWzFdKWlmKDk9PT1KKXtpZighKEU9cC5nZXRFbGVtZW50QnlJZCh5KSkpcmV0dXJuIHE7aWYoRS5pZD09PXkpcmV0dXJuIHRhLmNhbGwocSxFKSxxfWVsc2V7aWYoQiYmKEU9Qi5nZXRFbGVtZW50QnlJZCh5KSkmJmEuY29udGFpbnMocCxFKSYmRS5pZD09PQp5KXJldHVybiB0YS5jYWxsKHEsRSkscX1lbHNle2lmKElbMl0pcmV0dXJuIHRhLmFwcGx5KHEscC5nZXRFbGVtZW50c0J5VGFnTmFtZShrKSkscTtpZigoeT1JWzNdKSYmcC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiB0YS5hcHBseShxLHAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh5KSkscX1pZighKFlbaysiICJdfHxrYSYma2EudGVzdChrKSkpe2lmKHk9ayxCPXAsMT09PUomJih2Yi50ZXN0KGspfHxIYS50ZXN0KGspKSl7KEI9ZGMudGVzdChrKSYmbChwLnBhcmVudE5vZGUpfHxwKT09cCYmTi5zY29wZXx8KChBPXAuZ2V0QXR0cmlidXRlKCJpZCIpKT9BPWQuZXNjYXBlU2VsZWN0b3IoQSk6cC5zZXRBdHRyaWJ1dGUoImlkIixBPVcpKTtmb3IoSj0oeT1yKGspKS5sZW5ndGg7Si0tOyl5W0pdPShBPyIjIitBOiI6c2NvcGUiKSsiICIreih5W0pdKTt5PXkuam9pbigiLCIpfXRyeXtyZXR1cm4gdGEuYXBwbHkocSxCLnF1ZXJ5U2VsZWN0b3JBbGwoeSkpLHF9Y2F0Y2goUil7WShrLAohMCl9ZmluYWxseXtBPT09VyYmcC5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gU2Eoay5yZXBsYWNlKHpiLCIkMSIpLHAscSx2KX1mdW5jdGlvbiBiKCl7dmFyIGs9W107cmV0dXJuIGZ1bmN0aW9uIHkocSx2KXtyZXR1cm4gay5wdXNoKHErIiAiKT5LLmNhY2hlTGVuZ3RoJiZkZWxldGUgeVtrLnNoaWZ0KCldLHlbcSsiICJdPXZ9fWZ1bmN0aW9uIGMoayl7cmV0dXJuIGtbV109ITAsa31mdW5jdGlvbiBlKGspe3ZhciBwPVouY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTt0cnl7cmV0dXJuISFrKHApfWNhdGNoKHEpe3JldHVybiExfWZpbmFsbHl7cC5wYXJlbnROb2RlJiZwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocCl9fWZ1bmN0aW9uIGYoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiBYKHAsImlucHV0IikmJnAudHlwZT09PWt9fWZ1bmN0aW9uIGcoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybihYKHAsImlucHV0Iil8fFgocCwiYnV0dG9uIikpJiZwLnR5cGU9PT0Ka319ZnVuY3Rpb24gaChrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuImZvcm0iaW4gcD9wLnBhcmVudE5vZGUmJiExPT09cC5kaXNhYmxlZD8ibGFiZWwiaW4gcD8ibGFiZWwiaW4gcC5wYXJlbnROb2RlP3AucGFyZW50Tm9kZS5kaXNhYmxlZD09PWs6cC5kaXNhYmxlZD09PWs6cC5pc0Rpc2FibGVkPT09a3x8cC5pc0Rpc2FibGVkIT09IWsmJmJkKHApPT09azpwLmRpc2FibGVkPT09azoibGFiZWwiaW4gcCYmcC5kaXNhYmxlZD09PWt9fWZ1bmN0aW9uIG0oayl7cmV0dXJuIGMoZnVuY3Rpb24ocCl7cmV0dXJuIHA9K3AsYyhmdW5jdGlvbihxLHYpe2Zvcih2YXIgeSxFPWsoW10scS5sZW5ndGgscCksQT1FLmxlbmd0aDtBLS07KXFbeT1FW0FdXSYmKHFbeV09ISh2W3ldPXFbeV0pKX0pfSl9ZnVuY3Rpb24gbChrKXtyZXR1cm4gayYmInVuZGVmaW5lZCIhPXR5cGVvZiBrLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZrfWZ1bmN0aW9uIHQoayl7dmFyIHA7az1rP2sub3duZXJEb2N1bWVudHx8Cms6UmE7cmV0dXJuIGshPVomJjk9PT1rLm5vZGVUeXBlJiZrLmRvY3VtZW50RWxlbWVudCYmKHJhPShaPWspLmRvY3VtZW50RWxlbWVudCx2YT0hZC5pc1hNTERvYyhaKSxNYT1yYS5tYXRjaGVzfHxyYS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHJhLm1zTWF0Y2hlc1NlbGVjdG9yLFJhIT1aJiYocD1aLmRlZmF1bHRWaWV3KSYmcC50b3AhPT1wJiZwLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsY2QpLE4uZ2V0QnlJZD1lKGZ1bmN0aW9uKHEpe3JldHVybiByYS5hcHBlbmRDaGlsZChxKS5pZD1kLmV4cGFuZG8sIVouZ2V0RWxlbWVudHNCeU5hbWV8fCFaLmdldEVsZW1lbnRzQnlOYW1lKGQuZXhwYW5kbykubGVuZ3RofSksTi5kaXNjb25uZWN0ZWRNYXRjaD1lKGZ1bmN0aW9uKHEpe3JldHVybiBNYS5jYWxsKHEsIioiKX0pLE4uc2NvcGU9ZShmdW5jdGlvbigpe3JldHVybiBaLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSIpfSksTi5jc3NIYXM9ZShmdW5jdGlvbigpe3RyeXtyZXR1cm4gWi5xdWVyeVNlbGVjdG9yKCI6aGFzKCosOmpxZmFrZSkiKSwKITF9Y2F0Y2gocSl7cmV0dXJuITB9fSksTi5nZXRCeUlkPyhLLmZpbHRlci5JRD1mdW5jdGlvbihxKXt2YXIgdj1xLnJlcGxhY2UoVGEsVWEpO3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geS5nZXRBdHRyaWJ1dGUoImlkIik9PT12fX0sSy5maW5kLklEPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRCeUlkJiZ2YSlyZXR1cm4ocT12LmdldEVsZW1lbnRCeUlkKHEpKT9bcV06W119KTooSy5maWx0ZXIuSUQ9ZnVuY3Rpb24ocSl7dmFyIHY9cS5yZXBsYWNlKFRhLFVhKTtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuKHk9InVuZGVmaW5lZCIhPXR5cGVvZiB5LmdldEF0dHJpYnV0ZU5vZGUmJnkuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJnkudmFsdWU9PT12fX0sSy5maW5kLklEPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRCeUlkJiZ2YSl7dmFyIHksRT12LmdldEVsZW1lbnRCeUlkKHEpO2lmKEUpe2lmKCh5PQpFLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09cSlyZXR1cm5bRV07dmFyIEE9di5nZXRFbGVtZW50c0J5TmFtZShxKTtmb3Iodj0wO0U9QVt2KytdOylpZigoeT1FLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09cSlyZXR1cm5bRV19cmV0dXJuW119fSksSy5maW5kLlRBRz1mdW5jdGlvbihxLHYpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50c0J5VGFnTmFtZT92LmdldEVsZW1lbnRzQnlUYWdOYW1lKHEpOnYucXVlcnlTZWxlY3RvckFsbChxKX0sSy5maW5kLkNMQVNTPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnZhKXJldHVybiB2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUocSl9LGthPVtdLGUoZnVuY3Rpb24ocSl7dmFyIHY7cmEuYXBwZW5kQ2hpbGQocSkuaW5uZXJIVE1MPSI8YSBpZD0nIitXKyInIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+PHNlbGVjdCBpZD0nIisKVysiLVxyXFwnIGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iO3EucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8a2EucHVzaCgiXFxbW1xceDIwXFx0XFxyXFxuXFxmXSooPzp2YWx1ZXxjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCkiKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49IitXKyItXSIpLmxlbmd0aHx8a2EucHVzaCgifj0iKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIitXKyIrKiIpLmxlbmd0aHx8a2EucHVzaCgiLiMuK1srfl0iKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxrYS5wdXNoKCI6Y2hlY2tlZCIpOyh2PVouY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwKImhpZGRlbiIpO3EuYXBwZW5kQ2hpbGQodikuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpO3JhLmFwcGVuZENoaWxkKHEpLmRpc2FibGVkPSEwOzIhPT1xLnF1ZXJ5U2VsZWN0b3JBbGwoIjpkaXNhYmxlZCIpLmxlbmd0aCYma2EucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKTsodj1aLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpO3EuYXBwZW5kQ2hpbGQodik7cS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fGthLnB1c2goIlxcW1tcXHgyMFxcdFxcclxcblxcZl0qbmFtZVtcXHgyMFxcdFxcclxcblxcZl0qPVtcXHgyMFxcdFxcclxcblxcZl0qKD86Jyd8XCJcIikiKX0pLE4uY3NzSGFzfHxrYS5wdXNoKCI6aGFzIiksa2E9a2EubGVuZ3RoJiZuZXcgUmVnRXhwKGthLmpvaW4oInwiKSksbGE9ZnVuY3Rpb24ocSx2KXtpZihxPT09dilyZXR1cm4gaWI9ITAsMDt2YXIgeT0hcS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjsKcmV0dXJuIHl8fCgxJih5PShxLm93bmVyRG9jdW1lbnR8fHEpPT0odi5vd25lckRvY3VtZW50fHx2KT9xLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHYpOjEpfHwhTi5zb3J0RGV0YWNoZWQmJnYuY29tcGFyZURvY3VtZW50UG9zaXRpb24ocSk9PT15P3E9PT1afHxxLm93bmVyRG9jdW1lbnQ9PVJhJiZhLmNvbnRhaW5zKFJhLHEpPy0xOnY9PT1afHx2Lm93bmVyRG9jdW1lbnQ9PVJhJiZhLmNvbnRhaW5zKFJhLHYpPzE6aGE\/TmEuY2FsbChoYSxxKS1OYS5jYWxsKGhhLHYpOjA6NCZ5Py0xOjEpfSksWn1mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIHIoayxwKXt2YXIgcSx2LHksRSxBLEk7aWYoQT1WYVtrKyIgIl0pcmV0dXJuIHA\/MDpBLnNsaWNlKDApO0E9azt2YXIgQj1bXTtmb3IoST1LLnByZUZpbHRlcjtBOyl7Zm9yKEUgaW4gcSYmISh2PW1hLmV4ZWMoQSkpfHwodiYmKEE9QS5zbGljZSh2WzBdLmxlbmd0aCl8fEEpLEIucHVzaCh5PVtdKSkscT0hMSwodj1IYS5leGVjKEEpKSYmKHE9CnYuc2hpZnQoKSx5LnB1c2goe3ZhbHVlOnEsdHlwZTp2WzBdLnJlcGxhY2UoemIsIiAiKX0pLEE9QS5zbGljZShxLmxlbmd0aCkpLEsuZmlsdGVyKSEodj1ZYltFXS5leGVjKEEpKXx8SVtFXSYmISh2PUlbRV0odikpfHwocT12LnNoaWZ0KCkseS5wdXNoKHt2YWx1ZTpxLHR5cGU6RSxtYXRjaGVzOnZ9KSxBPUEuc2xpY2UocS5sZW5ndGgpKTtpZighcSlicmVha31yZXR1cm4gcD9BLmxlbmd0aDpBP2EuZXJyb3Ioayk6VmEoayxCKS5zbGljZSgwKX1mdW5jdGlvbiB6KGspe2Zvcih2YXIgcD0wLHE9ay5sZW5ndGgsdj0iIjtwPHE7cCsrKXYrPWtbcF0udmFsdWU7cmV0dXJuIHZ9ZnVuY3Rpb24gRChrLHAscSl7dmFyIHY9cC5kaXIseT1wLm5leHQsRT15fHx2LEE9cSYmInBhcmVudE5vZGUiPT09RSxJPURhKys7cmV0dXJuIHAuZmlyc3Q\/ZnVuY3Rpb24oQixKLFIpe2Zvcig7Qj1CW3ZdOylpZigxPT09Qi5ub2RlVHlwZXx8QSlyZXR1cm4gayhCLEosUik7cmV0dXJuITF9OmZ1bmN0aW9uKEIsCkosUil7dmFyIFQsVixpYT1bZmEsSV07aWYoUilmb3IoO0I9Qlt2XTspe2lmKCgxPT09Qi5ub2RlVHlwZXx8QSkmJmsoQixKLFIpKXJldHVybiEwfWVsc2UgZm9yKDtCPUJbdl07KWlmKDE9PT1CLm5vZGVUeXBlfHxBKWlmKFY9QltXXXx8KEJbV109e30pLHkmJlgoQix5KSlCPUJbdl18fEI7ZWxzZXtpZigoVD1WW0VdKSYmVFswXT09PWZhJiZUWzFdPT09SSlyZXR1cm4gaWFbMl09VFsyXTtpZigoVltFXT1pYSlbMl09ayhCLEosUikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIEYoayl7cmV0dXJuIDE8ay5sZW5ndGg\/ZnVuY3Rpb24ocCxxLHYpe2Zvcih2YXIgeT1rLmxlbmd0aDt5LS07KWlmKCFrW3ldKHAscSx2KSlyZXR1cm4hMTtyZXR1cm4hMH06a1swXX1mdW5jdGlvbiBPKGsscCxxLHYseSl7Zm9yKHZhciBFLEE9W10sST0wLEI9ay5sZW5ndGgsSj1udWxsIT1wO0k8QjtJKyspKEU9a1tJXSkmJihxJiYhcShFLHYseSl8fChBLnB1c2goRSksSiYmcC5wdXNoKEkpKSk7cmV0dXJuIEF9CmZ1bmN0aW9uIGFhKGsscCxxLHYseSxFKXtyZXR1cm4gdiYmIXZbV10mJih2PWFhKHYpKSx5JiYheVtXXSYmKHk9YWEoeSxFKSksYyhmdW5jdGlvbihBLEksQixKKXt2YXIgUixULFY9W10saWE9W10scGE9SS5sZW5ndGgsbmE7aWYoIShuYT1BKSl7bmE9cHx8IioiO2Zvcih2YXIgRWE9Qi5ub2RlVHlwZT9bQl06QixjYT1bXSxBYT0wLFdhPUVhLmxlbmd0aDtBYTxXYTtBYSsrKWEobmEsRWFbQWFdLGNhKTtuYT1jYX1uYT0ha3x8IUEmJnA\/bmE6TyhuYSxWLGssQixKKTtpZihxP3EobmEsVD15fHwoQT9rOnBhfHx2KT9bXTpJLEIsSik6VD1uYSx2KXt2YXIgRmE9TyhULGlhKTt2KEZhLFtdLEIsSik7Zm9yKEI9RmEubGVuZ3RoO0ItLTspKFI9RmFbQl0pJiYoVFtpYVtCXV09IShuYVtpYVtCXV09UikpfWlmKEEpe2lmKHl8fGspe2lmKHkpe0ZhPVtdO2ZvcihCPVQubGVuZ3RoO0ItLTspKFI9VFtCXSkmJkZhLnB1c2gobmFbQl09Uik7eShudWxsLFQ9W10sRmEsSil9Zm9yKEI9VC5sZW5ndGg7Qi0tOykoUj0KVFtCXSkmJi0xPChGYT15P05hLmNhbGwoQSxSKTpWW0JdKSYmKEFbRmFdPSEoSVtGYV09UikpfX1lbHNlIFQ9TyhUPT09ST9ULnNwbGljZShwYSxULmxlbmd0aCk6VCkseT95KG51bGwsSSxULEopOnRhLmFwcGx5KEksVCl9KX1mdW5jdGlvbiBHYShrKXtmb3IodmFyIHAscSx2PWsubGVuZ3RoLHk9Sy5yZWxhdGl2ZVtrWzBdLnR5cGVdLEU9eXx8Sy5yZWxhdGl2ZVsiICJdLEE9eT8xOjAsST1EKGZ1bmN0aW9uKFIpe3JldHVybiBSPT09cH0sRSwhMCksQj1EKGZ1bmN0aW9uKFIpe3JldHVybi0xPE5hLmNhbGwocCxSKX0sRSwhMCksSj1bZnVuY3Rpb24oUixULFYpe1I9IXkmJihWfHxUIT1TKXx8KChwPVQpLm5vZGVUeXBlP0koUixULFYpOkIoUixULFYpKTtyZXR1cm4gcD1udWxsLFJ9XTtBPHY7QSsrKWlmKEU9Sy5yZWxhdGl2ZVtrW0FdLnR5cGVdKUo9W0QoRihKKSxFKV07ZWxzZXtpZigoRT1LLmZpbHRlcltrW0FdLnR5cGVdLmFwcGx5KG51bGwsa1tBXS5tYXRjaGVzKSlbV10pe2ZvcihxPQorK0E7cTx2JiYhSy5yZWxhdGl2ZVtrW3FdLnR5cGVdO3ErKyk7cmV0dXJuIGFhKDE8QSYmRihKKSwxPEEmJnooay5zbGljZSgwLEEtMSkuY29uY2F0KHt2YWx1ZToiICI9PT1rW0EtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZSh6YiwiJDEiKSxFLEE8cSYmR2Eoay5zbGljZShBLHEpKSxxPHYmJkdhKGs9ay5zbGljZShxKSkscTx2JiZ6KGspKX1KLnB1c2goRSl9cmV0dXJuIEYoSil9ZnVuY3Rpb24gcWEoayxwKXt2YXIgcSx2LHksRSxBPVtdLEk9W10sQj11YVtrKyIgIl07aWYoIUIpe3B8fChwPXIoaykpO2ZvcihxPXAubGVuZ3RoO3EtLTspKEI9R2EocFtxXSkpW1ddP0EucHVzaChCKTpJLnB1c2goQik7KEI9dWEoaywodj0wPEEubGVuZ3RoLHk9MDxJLmxlbmd0aCxFPWZ1bmN0aW9uKEosUixULFYsaWEpe3ZhciBwYSxuYSxFYT0wLGNhPSIwIixBYT1KJiZbXSxXYT1bXSxGYT1TLHVjPUp8fHkmJksuZmluZC5UQUcoIioiLGlhKSx2Yz1mYSs9bnVsbD09RmE\/MTpNYXRoLnJhbmRvbSgpfHwKLjEsZGQ9dWMubGVuZ3RoO2ZvcihpYSYmKFM9Uj09Wnx8Unx8aWEpO2NhIT09ZGQmJm51bGwhPShwYT11Y1tjYV0pO2NhKyspe2lmKHkmJnBhKXt2YXIgZWM9MDtmb3IoUnx8cGEub3duZXJEb2N1bWVudD09Wnx8KHQocGEpLFQ9IXZhKTtuYT1JW2VjKytdOylpZihuYShwYSxSfHxaLFQpKXt0YS5jYWxsKFYscGEpO2JyZWFrfWlhJiYoZmE9dmMpfXYmJigocGE9IW5hJiZwYSkmJkVhLS0sSiYmQWEucHVzaChwYSkpfWlmKEVhKz1jYSx2JiZjYSE9PUVhKXtmb3IoZWM9MDtuYT1BW2VjKytdOyluYShBYSxXYSxSLFQpO2lmKEope2lmKDA8RWEpZm9yKDtjYS0tOylBYVtjYV18fFdhW2NhXXx8KFdhW2NhXT1YYy5jYWxsKFYpKTtXYT1PKFdhKX10YS5hcHBseShWLFdhKTtpYSYmIUomJjA8V2EubGVuZ3RoJiYxPEVhK0EubGVuZ3RoJiZkLnVuaXF1ZVNvcnQoVil9cmV0dXJuIGlhJiYoZmE9dmMsUz1GYSksQWF9LHY\/YyhFKTpFKSkpLnNlbGVjdG9yPWt9cmV0dXJuIEJ9ZnVuY3Rpb24gU2EoaywKcCxxLHYpe3ZhciB5LEUsQSxJLEIsSj0iZnVuY3Rpb24iPT10eXBlb2YgayYmayxSPSF2JiZyKGs9Si5zZWxlY3Rvcnx8ayk7aWYocT1xfHxbXSwxPT09Ui5sZW5ndGgpe2lmKDI8KEU9UlswXT1SWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oQT1FWzBdKS50eXBlJiY5PT09cC5ub2RlVHlwZSYmdmEmJksucmVsYXRpdmVbRVsxXS50eXBlXSl7aWYoIShwPShLLmZpbmQuSUQoQS5tYXRjaGVzWzBdLnJlcGxhY2UoVGEsVWEpLHApfHxbXSlbMF0pKXJldHVybiBxO0omJihwPXAucGFyZW50Tm9kZSk7az1rLnNsaWNlKEUuc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWZvcih5PVliLm5lZWRzQ29udGV4dC50ZXN0KGspPzA6RS5sZW5ndGg7eS0tJiYoQT1FW3ldLCFLLnJlbGF0aXZlW0k9QS50eXBlXSk7KWlmKChCPUsuZmluZFtJXSkmJih2PUIoQS5tYXRjaGVzWzBdLnJlcGxhY2UoVGEsVWEpLGRjLnRlc3QoRVswXS50eXBlKSYmbChwLnBhcmVudE5vZGUpfHxwKSkpe2lmKEUuc3BsaWNlKHksCjEpLCEoaz12Lmxlbmd0aCYmeihFKSkpcmV0dXJuIHRhLmFwcGx5KHEsdikscTticmVha319cmV0dXJuKEp8fHFhKGssUikpKHYscCwhdmEscSwhcHx8ZGMudGVzdChrKSYmbChwLnBhcmVudE5vZGUpfHxwKSxxfXZhciBRLEssUyxoYSxpYixaLHJhLHZhLGthLE1hLHRhPXViLFc9ZC5leHBhbmRvLGZhPTAsRGE9MCxkYj1iKCksVmE9YigpLHVhPWIoKSxZPWIoKSxsYT1mdW5jdGlvbihrLHApe3JldHVybiBrPT09cCYmKGliPSEwKSwwfSxJYT1SZWdFeHAoIltcXHgyMFxcdFxcclxcblxcZl0rIiwiZyIpLG1hPVJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0qLFtcXHgyMFxcdFxcclxcblxcZl0qIiksSGE9UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSooWz4rfl18W1xceDIwXFx0XFxyXFxuXFxmXSlbXFx4MjBcXHRcXHJcXG5cXGZdKiIpLHZiPVJlZ0V4cCgiW1xceDIwXFx0XFxyXFxuXFxmXXw+IiksZmM9UmVnRXhwKCI6KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfFxcW1tcXHgyMFxcdFxcclxcblxcZl0qKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OltcXHgyMFxcdFxcclxcblxcZl0qKFsqXiR8IX5dPz0pW1xceDIwXFx0XFxyXFxuXFxmXSooPzonKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKXwpW1xceDIwXFx0XFxyXFxuXFxmXSpcXF0pKil8LiopXFwpfCkiKSwKZWQ9UmVnRXhwKCJeKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSskIiksWWI9e0lEOlJlZ0V4cCgiXiMoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspIiksQ0xBU1M6UmVnRXhwKCJeXFwuKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSIpLFRBRzpSZWdFeHAoIl4oKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSt8WypdKSIpLEFUVFI6UmVnRXhwKCJeXFxbW1xceDIwXFx0XFxyXFxuXFxmXSooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86W1xceDIwXFx0XFxyXFxuXFxmXSooWypeJHwhfl0\/PSlbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwifCgoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykpfClbXFx4MjBcXHRcXHJcXG5cXGZdKlxcXSIpLApQU0VVRE86UmVnRXhwKCJeOigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXxcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpbXFx4MjBcXHRcXHJcXG5cXGZdKihbKl4kfCF+XT89KVtcXHgyMFxcdFxcclxcblxcZl0qKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSl8KVtcXHgyMFxcdFxcclxcblxcZl0qXFxdKSopfC4qKVxcKXwpIiksCkNISUxEOlJlZ0V4cCgiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoW1xceDIwXFx0XFxyXFxuXFxmXSooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufClbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OihbKy1dfClbXFx4MjBcXHRcXHJcXG5cXGZdKihcXGQrKXwpKVtcXHgyMFxcdFxcclxcblxcZl0qXFwpfCkiLCJpIiksYm9vbDpSZWdFeHAoIl4oPzpjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCkkIiwiaSIpLG5lZWRzQ29udGV4dDpSZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoW1xceDIwXFx0XFxyXFxuXFxmXSooKD86LVxcZCk\/XFxkKilbXFx4MjBcXHRcXHJcXG5cXGZdKlxcKXwpKD89W14tXXwkKSIsCiJpIil9LGZkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksZ2Q9L15oXGQkL2ksYWQ9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxkYz0vWyt+XS8sVGE9UmVnRXhwKCJcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFwoW15cXHJcXG5cXGZdKSIsImciKSxVYT1mdW5jdGlvbihrLHApe2s9IjB4IitrLnNsaWNlKDEpLTY1NTM2O3JldHVybiBwfHwoMD5rP1N0cmluZy5mcm9tQ2hhckNvZGUoays2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShrPj4xMHw1NTI5NiwxMDIzJmt8NTYzMjApKX0sY2Q9ZnVuY3Rpb24oKXt0KCl9LGJkPUQoZnVuY3Rpb24oayl7cmV0dXJuITA9PT1rLmRpc2FibGVkJiZYKGssImZpZWxkc2V0Iil9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTt0cnl7dGEuYXBwbHkob2E9eWEuY2FsbChSYS5jaGlsZE5vZGVzKSxSYS5jaGlsZE5vZGVzKSxvYVtSYS5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goayl7dGE9CnthcHBseTpmdW5jdGlvbihwLHEpe3ViLmFwcGx5KHAseWEuY2FsbChxKSl9LGNhbGw6ZnVuY3Rpb24ocCl7dWIuYXBwbHkocCx5YS5jYWxsKGFyZ3VtZW50cywxKSl9fX1mb3IoUSBpbiBhLm1hdGNoZXM9ZnVuY3Rpb24oayxwKXtyZXR1cm4gYShrLG51bGwsbnVsbCxwKX0sYS5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oayxwKXtpZih0KGspLCEoIXZhfHxZW3ArIiAiXXx8a2EmJmthLnRlc3QocCkpKXRyeXt2YXIgcT1NYS5jYWxsKGsscCk7aWYocXx8Ti5kaXNjb25uZWN0ZWRNYXRjaHx8ay5kb2N1bWVudCYmMTEhPT1rLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBxfWNhdGNoKHYpe1kocCwhMCl9cmV0dXJuIDA8YShwLFosbnVsbCxba10pLmxlbmd0aH0sYS5jb250YWlucz1mdW5jdGlvbihrLHApe3JldHVybihrLm93bmVyRG9jdW1lbnR8fGspIT1aJiZ0KGspLGQuY29udGFpbnMoayxwKX0sYS5hdHRyPWZ1bmN0aW9uKGsscCl7KGsub3duZXJEb2N1bWVudHx8aykhPVomJnQoayk7CnZhciBxPUsuYXR0ckhhbmRsZVtwLnRvTG93ZXJDYXNlKCldO3E9cSYmRmIuY2FsbChLLmF0dHJIYW5kbGUscC50b0xvd2VyQ2FzZSgpKT9xKGsscCwhdmEpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cT9xOmsuZ2V0QXR0cmlidXRlKHApfSxhLmVycm9yPWZ1bmN0aW9uKGspe3Rocm93IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2spO30sZC51bmlxdWVTb3J0PWZ1bmN0aW9uKGspe3ZhciBwLHE9W10sdj0wLHk9MDtpZihpYj0hTi5zb3J0U3RhYmxlLGhhPSFOLnNvcnRTdGFibGUmJnlhLmNhbGwoaywwKSxZYy5jYWxsKGssbGEpLGliKXtmb3IoO3A9a1t5KytdOylwPT09a1t5XSYmKHY9cS5wdXNoKHkpKTtmb3IoO3YtLTspWmMuY2FsbChrLHFbdl0sMSl9cmV0dXJuIGhhPW51bGwsa30sZC5mbi51bmlxdWVTb3J0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQudW5pcXVlU29ydCh5YS5hcHBseSh0aGlzKSkpfSwoSz1kLmV4cHI9CntjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86YyxtYXRjaDpZYixhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oayl7cmV0dXJuIGtbMV09a1sxXS5yZXBsYWNlKFRhLFVhKSxrWzNdPShrWzNdfHxrWzRdfHxrWzVdfHwiIikucmVwbGFjZShUYSxVYSksIn49Ij09PWtbMl0mJihrWzNdPSIgIitrWzNdKyIgIiksay5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihrKXtyZXR1cm4ga1sxXT1rWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1rWzFdLnNsaWNlKDAsMyk\/KGtbM118fGEuZXJyb3Ioa1swXSksa1s0XT0rKGtbNF0\/a1s1XSsoa1s2XXx8MSk6MiooImV2ZW4iPT09a1szXXx8Im9kZCI9PT1rWzNdKSksa1s1XT0KKyhrWzddK2tbOF18fCJvZGQiPT09a1szXSkpOmtbM10mJmEuZXJyb3Ioa1swXSksa30sUFNFVURPOmZ1bmN0aW9uKGspe3ZhciBwLHE9IWtbNl0mJmtbMl07cmV0dXJuIFliLkNISUxELnRlc3Qoa1swXSk\/bnVsbDooa1szXT9rWzJdPWtbNF18fGtbNV18fCIiOnEmJmZjLnRlc3QocSkmJihwPXIocSwhMCkpJiYocD1xLmluZGV4T2YoIikiLHEubGVuZ3RoLXApLXEubGVuZ3RoKSYmKGtbMF09a1swXS5zbGljZSgwLHApLGtbMl09cS5zbGljZSgwLHApKSxrLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oayl7dmFyIHA9ay5yZXBsYWNlKFRhLFVhKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWs\/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24ocSl7cmV0dXJuIFgocSxwKX19LENMQVNTOmZ1bmN0aW9uKGspe3ZhciBwPWRiW2srIiAiXTtyZXR1cm4gcHx8KHA9bmV3IFJlZ0V4cCgiKF58W1xceDIwXFx0XFxyXFxuXFxmXSkiK2srIihbXFx4MjBcXHRcXHJcXG5cXGZdfCQpIiksCmRiKGssZnVuY3Rpb24ocSl7cmV0dXJuIHAudGVzdCgic3RyaW5nIj09dHlwZW9mIHEuY2xhc3NOYW1lJiZxLmNsYXNzTmFtZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBxLmdldEF0dHJpYnV0ZSYmcS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pKX0sQVRUUjpmdW5jdGlvbihrLHAscSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3Y9YS5hdHRyKHYsayk7cmV0dXJuIG51bGw9PXY\/IiE9Ij09PXA6IXB8fCh2Kz0iIiwiPSI9PT1wP3Y9PT1xOiIhPSI9PT1wP3YhPT1xOiJePSI9PT1wP3EmJjA9PT12LmluZGV4T2YocSk6Iio9Ij09PXA\/cSYmLTE8di5pbmRleE9mKHEpOiIkPSI9PT1wP3EmJnYuc2xpY2UoLXEubGVuZ3RoKT09PXE6In49Ij09PXA\/LTE8KCIgIit2LnJlcGxhY2UoSWEsIiAiKSsiICIpLmluZGV4T2YocSk6Inw9Ij09PXAmJih2PT09cXx8di5zbGljZSgwLHEubGVuZ3RoKzEpPT09cSsiLSIpKX19LENISUxEOmZ1bmN0aW9uKGsscCxxLHYseSl7dmFyIEU9Im50aCIhPT1rLnNsaWNlKDAsCjMpLEE9Imxhc3QiIT09ay5zbGljZSgtNCksST0ib2YtdHlwZSI9PT1wO3JldHVybiAxPT09diYmMD09PXk\/ZnVuY3Rpb24oQil7cmV0dXJuISFCLnBhcmVudE5vZGV9OmZ1bmN0aW9uKEIsSixSKXt2YXIgVCxWLGlhO0o9RSE9PUE\/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIjt2YXIgcGE9Qi5wYXJlbnROb2RlLG5hPUkmJkIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxFYT0hUiYmIUksY2E9ITE7aWYocGEpe2lmKEUpe2Zvcig7Sjspe2ZvcihWPUI7Vj1WW0pdOylpZihJP1goVixuYSk6MT09PVYubm9kZVR5cGUpcmV0dXJuITE7dmFyIEFhPUo9Im9ubHkiPT09ayYmIUFhJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKEFhPVtBP3BhLmZpcnN0Q2hpbGQ6cGEubGFzdENoaWxkXSxBJiZFYSlmb3IoY2E9KGlhPShUPShSPXBhW1ddfHwocGFbV109e30pKVtrXXx8W10pWzBdPT09ZmEmJlRbMV0pJiZUWzJdLFY9aWEmJnBhLmNoaWxkTm9kZXNbaWFdO1Y9KytpYSYmViYmVltKXXx8CihjYT1pYT0wKXx8QWEucG9wKCk7KXtpZigxPT09Vi5ub2RlVHlwZSYmKytjYSYmVj09PUIpe1Jba109W2ZhLGlhLGNhXTticmVha319ZWxzZSBpZihFYSYmKGNhPWlhPShUPShCW1ddfHwoQltXXT17fSkpW2tdfHxbXSlbMF09PT1mYSYmVFsxXSksITE9PT1jYSlmb3IoOyhWPSsraWEmJlYmJlZbSl18fChjYT1pYT0wKXx8QWEucG9wKCkpJiYoKEk\/IVgoVixuYSk6MSE9PVYubm9kZVR5cGUpfHwhKytjYXx8KEVhJiYoKFI9VltXXXx8KFZbV109e30pKVtrXT1bZmEsY2FdKSxWIT09QikpOyk7cmV0dXJuKGNhLT15KT09PXZ8fDA9PWNhJXYmJjA8PWNhL3Z9fX0sUFNFVURPOmZ1bmN0aW9uKGsscCl7dmFyIHEsdj1LLnBzZXVkb3Nba118fEsuc2V0RmlsdGVyc1trLnRvTG93ZXJDYXNlKCldfHxhLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrayk7cmV0dXJuIHZbV10\/dihwKToxPHYubGVuZ3RoPyhxPVtrLGssIiIscF0sSy5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGsudG9Mb3dlckNhc2UoKSk\/CmMoZnVuY3Rpb24oeSxFKXtmb3IodmFyIEEsST12KHkscCksQj1JLmxlbmd0aDtCLS07KXlbQT1OYS5jYWxsKHksSVtCXSldPSEoRVtBXT1JW0JdKX0pOmZ1bmN0aW9uKHkpe3JldHVybiB2KHksMCxxKX0pOnZ9fSxwc2V1ZG9zOntub3Q6YyhmdW5jdGlvbihrKXt2YXIgcD1bXSxxPVtdLHY9cWEoay5yZXBsYWNlKHpiLCIkMSIpKTtyZXR1cm4gdltXXT9jKGZ1bmN0aW9uKHksRSxBLEkpe3ZhciBCO0E9dih5LG51bGwsSSxbXSk7Zm9yKEk9eS5sZW5ndGg7SS0tOykoQj1BW0ldKSYmKHlbSV09IShFW0ldPUIpKX0pOmZ1bmN0aW9uKHksRSxBKXtyZXR1cm4gcFswXT15LHYocCxudWxsLEEscSkscFswXT1udWxsLCFxLnBvcCgpfX0pLGhhczpjKGZ1bmN0aW9uKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gMDxhKGsscCkubGVuZ3RofX0pLGNvbnRhaW5zOmMoZnVuY3Rpb24oayl7cmV0dXJuIGs9ay5yZXBsYWNlKFRhLFVhKSxmdW5jdGlvbihwKXtyZXR1cm4tMTwocC50ZXh0Q29udGVudHx8CmQudGV4dChwKSkuaW5kZXhPZihrKX19KSxsYW5nOmMoZnVuY3Rpb24oayl7cmV0dXJuIGVkLnRlc3Qoa3x8IiIpfHxhLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2spLGs9ay5yZXBsYWNlKFRhLFVhKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKHApe3ZhciBxO2RvIGlmKHE9dmE\/cC5sYW5nOnAuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxwLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybihxPXEudG9Mb3dlckNhc2UoKSk9PT1rfHwwPT09cS5pbmRleE9mKGsrIi0iKTt3aGlsZSgocD1wLnBhcmVudE5vZGUpJiYxPT09cC5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGspe3ZhciBwPW4ubG9jYXRpb24mJm4ubG9jYXRpb24uaGFzaDtyZXR1cm4gcCYmcC5zbGljZSgxKT09PWsuaWR9LHJvb3Q6ZnVuY3Rpb24oayl7cmV0dXJuIGs9PT1yYX0sZm9jdXM6ZnVuY3Rpb24oayl7YTp7dHJ5e3ZhciBwPVouYWN0aXZlRWxlbWVudDticmVhayBhfWNhdGNoKHEpe31wPQp2b2lkIDB9cmV0dXJuIGs9PT1wJiZaLmhhc0ZvY3VzKCkmJiEhKGsudHlwZXx8ay5ocmVmfHx+ay50YWJJbmRleCl9LGVuYWJsZWQ6aCghMSksZGlzYWJsZWQ6aCghMCksY2hlY2tlZDpmdW5jdGlvbihrKXtyZXR1cm4gWChrLCJpbnB1dCIpJiYhIWsuY2hlY2tlZHx8WChrLCJvcHRpb24iKSYmISFrLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihrKXtyZXR1cm4gay5wYXJlbnROb2RlJiZrLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwhMD09PWsuc2VsZWN0ZWR9LGVtcHR5OmZ1bmN0aW9uKGspe2ZvcihrPWsuZmlyc3RDaGlsZDtrO2s9ay5uZXh0U2libGluZylpZig2Pmsubm9kZVR5cGUpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihrKXtyZXR1cm4hSy5wc2V1ZG9zLmVtcHR5KGspfSxoZWFkZXI6ZnVuY3Rpb24oayl7cmV0dXJuIGdkLnRlc3Qoay5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGspe3JldHVybiBmZC50ZXN0KGsubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oayl7cmV0dXJuIFgoaywKImlucHV0IikmJiJidXR0b24iPT09ay50eXBlfHxYKGssImJ1dHRvbiIpfSx0ZXh0OmZ1bmN0aW9uKGspe3ZhciBwO3JldHVybiBYKGssImlucHV0IikmJiJ0ZXh0Ij09PWsudHlwZSYmKG51bGw9PShwPWsuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1wLnRvTG93ZXJDYXNlKCkpfSxmaXJzdDptKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDptKGZ1bmN0aW9uKGsscCl7cmV0dXJuW3AtMV19KSxlcTptKGZ1bmN0aW9uKGsscCxxKXtyZXR1cm5bMD5xP3ErcDpxXX0pLGV2ZW46bShmdW5jdGlvbihrLHApe2Zvcih2YXIgcT0wO3E8cDtxKz0yKWsucHVzaChxKTtyZXR1cm4ga30pLG9kZDptKGZ1bmN0aW9uKGsscCl7Zm9yKHZhciBxPTE7cTxwO3ErPTIpay5wdXNoKHEpO3JldHVybiBrfSksbHQ6bShmdW5jdGlvbihrLHAscSl7Zm9yKHA9MD5xP3ErcDpwPHE\/cDpxOzA8PS0tcDspay5wdXNoKHApO3JldHVybiBrfSksZ3Q6bShmdW5jdGlvbihrLHAscSl7Zm9yKHE9MD5xPwpxK3A6cTsrK3E8cDspay5wdXNoKHEpO3JldHVybiBrfSl9fSkucHNldWRvcy5udGg9Sy5wc2V1ZG9zLmVxLHtyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlLLnBzZXVkb3NbUV09ZihRKTtmb3IoUSBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KUsucHNldWRvc1tRXT1nKFEpO3cucHJvdG90eXBlPUsuZmlsdGVycz1LLnBzZXVkb3M7Sy5zZXRGaWx0ZXJzPW5ldyB3O04uc29ydFN0YWJsZT1XLnNwbGl0KCIiKS5zb3J0KGxhKS5qb2luKCIiKT09PVc7dCgpO04uc29ydERldGFjaGVkPWUoZnVuY3Rpb24oayl7cmV0dXJuIDEmay5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihaLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0IikpfSk7ZC5maW5kPWE7ZC5leHByWyI6Il09ZC5leHByLnBzZXVkb3M7ZC51bmlxdWU9ZC51bmlxdWVTb3J0O2EuY29tcGlsZT1xYTthLnNlbGVjdD1TYTthLnNldERvY3VtZW50PXQ7YS5lc2NhcGU9ZC5lc2NhcGVTZWxlY3RvcjsKYS5nZXRUZXh0PWQudGV4dDthLmlzWE1MPWQuaXNYTUxEb2M7YS5zZWxlY3RvcnM9ZC5leHByO2Euc3VwcG9ydD1kLnN1cHBvcnQ7YS51bmlxdWVTb3J0PWQudW5pcXVlU29ydH0oKTt2YXIgd2I9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZT1bXSxmPXZvaWQgMCE9PWM7KGE9YVtiXSkmJjkhPT1hLm5vZGVUeXBlOylpZigxPT09YS5ub2RlVHlwZSl7aWYoZiYmZChhKS5pcyhjKSlicmVhaztlLnB1c2goYSl9cmV0dXJuIGV9LHdjPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfSx4Yz1kLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LHljPS9ePChbYS16XVteXC9cMD46XHgyMFx0XHJcblxmXSopW1x4MjBcdFxyXG5cZl0qXC8\/Pig\/OjxcL1wxPnwpJC9pO2QuZmlsdGVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZT1iWzBdO3JldHVybiBjJiYoYT0iOm5vdCgiK2ErIikiKSwxPT09Yi5sZW5ndGgmJgoxPT09ZS5ub2RlVHlwZT9kLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGUsYSk\/W2VdOltdOmQuZmluZC5tYXRjaGVzKGEsZC5ncmVwKGIsZnVuY3Rpb24oZil7cmV0dXJuIDE9PT1mLm5vZGVUeXBlfSkpfTtkLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjPXRoaXMubGVuZ3RoLGU9dGhpcztpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKGQoYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtiPGM7YisrKWlmKGQuY29udGFpbnMoZVtiXSx0aGlzKSlyZXR1cm4hMH0pKTt2YXIgZj10aGlzLnB1c2hTdGFjayhbXSk7Zm9yKGI9MDtiPGM7YisrKWQuZmluZChhLGVbYl0sZik7cmV0dXJuIDE8Yz9kLnVuaXF1ZVNvcnQoZik6Zn0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqYSh0aGlzLGF8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soamEodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIWphKHRoaXMsCiJzdHJpbmciPT10eXBlb2YgYSYmeGMudGVzdChhKT9kKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIGhkPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KGQuZm4uaW5pdD1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZjtpZighYSlyZXR1cm4gdGhpcztpZihjPWN8fGlkLCJzdHJpbmciPT10eXBlb2YgYSl7aWYoIShlPSI8Ij09PWFbMF0mJiI+Ij09PWFbYS5sZW5ndGgtMV0mJjM8PWEubGVuZ3RoP1tudWxsLGEsbnVsbF06aGQuZXhlYyhhKSl8fCFlWzFdJiZiKXJldHVybiFifHxiLmpxdWVyeT8oYnx8YykuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGIpLmZpbmQoYSk7aWYoZVsxXSl7aWYoYj1iIGluc3RhbmNlb2YgZD9iWzBdOmIsZC5tZXJnZSh0aGlzLGQucGFyc2VIVE1MKGVbMV0sYiYmYi5ub2RlVHlwZT9iLm93bmVyRG9jdW1lbnR8fGI6TCwhMCkpLHljLnRlc3QoZVsxXSkmJmQuaXNQbGFpbk9iamVjdChiKSlmb3IoZSBpbiBiKU0odGhpc1tlXSk\/dGhpc1tlXShiW2VdKToKdGhpcy5hdHRyKGUsYltlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGY9TC5nZXRFbGVtZW50QnlJZChlWzJdKSkmJih0aGlzWzBdPWYsdGhpcy5sZW5ndGg9MSksdGhpc31yZXR1cm4gYS5ub2RlVHlwZT8odGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6TShhKT92b2lkIDAhPT1jLnJlYWR5P2MucmVhZHkoYSk6YShkKTpkLm1ha2VBcnJheShhLHRoaXMpfSkucHJvdG90eXBlPWQuZm47dmFyIGlkPWQoTCksamQ9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sa2Q9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07ZC5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYj1kKGEsdGhpcyksYz1iLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPGM7ZSsrKWlmKGQuY29udGFpbnModGhpcyxiW2VdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZT0wLGY9dGhpcy5sZW5ndGgsCmc9W10saD0ic3RyaW5nIiE9dHlwZW9mIGEmJmQoYSk7aWYoIXhjLnRlc3QoYSkpZm9yKDtlPGY7ZSsrKWZvcihjPXRoaXNbZV07YyYmYyE9PWI7Yz1jLnBhcmVudE5vZGUpaWYoMTE+Yy5ub2RlVHlwZSYmKGg\/LTE8aC5pbmRleChjKToxPT09Yy5ub2RlVHlwZSYmZC5maW5kLm1hdGNoZXNTZWxlY3RvcihjLGEpKSl7Zy5wdXNoKGMpO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjaygxPGcubGVuZ3RoP2QudW5pcXVlU29ydChnKTpnKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE\/InN0cmluZyI9PXR5cGVvZiBhP05hLmNhbGwoZChhKSx0aGlzWzBdKTpOYS5jYWxsKHRoaXMsYS5qcXVlcnk\/YVswXTphKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU\/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLnVuaXF1ZVNvcnQoZC5tZXJnZSh0aGlzLmdldCgpLGQoYSxiKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09CmE\/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoYSkpfX0pO2QuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3JldHVybihhPWEucGFyZW50Tm9kZSkmJjExIT09YS5ub2RlVHlwZT9hOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIHdiKGEsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gd2IoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGxiKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIGxiKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gd2IoYSwibmV4dFNpYmxpbmciLGMpfSxwcmV2VW50aWw6ZnVuY3Rpb24oYSxiLApjKXtyZXR1cm4gd2IoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIHdjKChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gd2MoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEuY29udGVudERvY3VtZW50JiZzYyhhLmNvbnRlbnREb2N1bWVudCk\/YS5jb250ZW50RG9jdW1lbnQ6KFgoYSwidGVtcGxhdGUiKSYmKGE9YS5jb250ZW50fHxhKSxkLm1lcmdlKFtdLGEuY2hpbGROb2RlcykpfX0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMsZSl7dmFyIGY9ZC5tYXAodGhpcyxiLGMpO3JldHVybiJVbnRpbCIhPT1hLnNsaWNlKC01KSYmKGU9YyksZSYmInN0cmluZyI9PXR5cGVvZiBlJiYoZj1kLmZpbHRlcihlLGYpKSwxPHRoaXMubGVuZ3RoJiYoa2RbYV18fGQudW5pcXVlU29ydChmKSxqZC50ZXN0KGEpJiZmLnJldmVyc2UoKSksCnRoaXMucHVzaFN0YWNrKGYpfX0pO3ZhciBMYT0vW15ceDIwXHRcclxuXGZdKy9nO2QuQ2FsbGJhY2tzPWZ1bmN0aW9uKGEpe3ZhciBiLGM7YT0ic3RyaW5nIj09dHlwZW9mIGE\/KGI9YSxjPXt9LGQuZWFjaChiLm1hdGNoKExhKXx8W10sZnVuY3Rpb24oeixEKXtjW0RdPSEwfSksYyk6ZC5leHRlbmQoe30sYSk7dmFyIGUsZixnLGgsbT1bXSxsPVtdLHQ9LTEsdz1mdW5jdGlvbigpe2g9aHx8YS5vbmNlO2ZvcihnPWU9ITA7bC5sZW5ndGg7dD0tMSlmb3IoZj1sLnNoaWZ0KCk7Kyt0PG0ubGVuZ3RoOykhMT09PW1bdF0uYXBwbHkoZlswXSxmWzFdKSYmYS5zdG9wT25GYWxzZSYmKHQ9bS5sZW5ndGgsZj0hMSk7YS5tZW1vcnl8fChmPSExKTtlPSExO2gmJihtPWY\/W106IiIpfSxyPXthZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gbSYmKGYmJiFlJiYodD1tLmxlbmd0aC0xLGwucHVzaChmKSksZnVuY3Rpb24gRihEKXtkLmVhY2goRCxmdW5jdGlvbihPLGFhKXtNKGFhKT9hLnVuaXF1ZSYmci5oYXMoYWEpfHwKbS5wdXNoKGFhKTphYSYmYWEubGVuZ3RoJiYic3RyaW5nIiE9PVUoYWEpJiZGKGFhKX0pfShhcmd1bWVudHMpLGYmJiFlJiZ3KCkpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBkLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKHosRCl7Zm9yKHZhciBGOy0xPChGPWQuaW5BcnJheShELG0sRikpOyltLnNwbGljZShGLDEpLEY8PXQmJnQtLX0pLHRoaXN9LGhhczpmdW5jdGlvbih6KXtyZXR1cm4gej8tMTxkLmluQXJyYXkoeixtKTowPG0ubGVuZ3RofSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBtJiYobT1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBoPWw9W10sbT1mPSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIW19LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gaD1sPVtdLGZ8fGV8fChtPWY9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhaH0sZmlyZVdpdGg6ZnVuY3Rpb24oeixEKXtyZXR1cm4gaHx8KEQ9W3osKEQ9RHx8CltdKS5zbGljZT9ELnNsaWNlKCk6RF0sbC5wdXNoKEQpLGV8fHcoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiByLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZ319O3JldHVybiByfTtkLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sibm90aWZ5IiwicHJvZ3Jlc3MiLGQuQ2FsbGJhY2tzKCJtZW1vcnkiKSxkLkNhbGxiYWNrcygibWVtb3J5IiksMl0sWyJyZXNvbHZlIiwiZG9uZSIsZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMCwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDEsInJlamVjdGVkIl1dLGM9InBlbmRpbmciLGU9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBmLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksCnRoaXN9LCJjYXRjaCI6ZnVuY3Rpb24oZyl7cmV0dXJuIGUudGhlbihudWxsLGcpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIGc9YXJndW1lbnRzO3JldHVybiBkLkRlZmVycmVkKGZ1bmN0aW9uKGgpe2QuZWFjaChiLGZ1bmN0aW9uKG0sbCl7dmFyIHQ9TShnW2xbNF1dKSYmZ1tsWzRdXTtmW2xbMV1dKGZ1bmN0aW9uKCl7dmFyIHc9dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dyYmTSh3LnByb21pc2UpP3cucHJvbWlzZSgpLnByb2dyZXNzKGgubm90aWZ5KS5kb25lKGgucmVzb2x2ZSkuZmFpbChoLnJlamVjdCk6aFtsWzBdKyJXaXRoIl0odGhpcyx0P1t3XTphcmd1bWVudHMpfSl9KTtnPW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24oZyxoLG0pe2Z1bmN0aW9uIGwodyxyLHosRCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEY9dGhpcyxPPWFyZ3VtZW50cyxhYT1mdW5jdGlvbigpe3ZhciBxYTtpZighKHc8dCkpe2lmKChxYT16LmFwcGx5KEYsTykpPT09ci5wcm9taXNlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlbmFibGUgc2VsZi1yZXNvbHV0aW9uIik7CnZhciBTYT1xYSYmKCJvYmplY3QiPT10eXBlb2YgcWF8fCJmdW5jdGlvbiI9PXR5cGVvZiBxYSkmJnFhLnRoZW47TShTYSk\/RD9TYS5jYWxsKHFhLGwodCxyLFlhLEQpLGwodCxyLFphLEQpKToodCsrLFNhLmNhbGwocWEsbCh0LHIsWWEsRCksbCh0LHIsWmEsRCksbCh0LHIsWWEsci5ub3RpZnlXaXRoKSkpOih6IT09WWEmJihGPXZvaWQgMCxPPVtxYV0pLChEfHxyLnJlc29sdmVXaXRoKShGLE8pKX19LEdhPUQ\/YWE6ZnVuY3Rpb24oKXt0cnl7YWEoKX1jYXRjaChxYSl7ZC5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZkLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2socWEsR2EuZXJyb3IpLHQ8PXcrMSYmKHohPT1aYSYmKEY9dm9pZCAwLE89W3FhXSksci5yZWplY3RXaXRoKEYsTykpfX07dz9HYSgpOihkLkRlZmVycmVkLmdldEVycm9ySG9vaz9HYS5lcnJvcj1kLkRlZmVycmVkLmdldEVycm9ySG9vaygpOmQuRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYoR2EuZXJyb3I9ZC5EZWZlcnJlZC5nZXRTdGFja0hvb2soKSksCm4uc2V0VGltZW91dChHYSkpfX12YXIgdD0wO3JldHVybiBkLkRlZmVycmVkKGZ1bmN0aW9uKHcpe2JbMF1bM10uYWRkKGwoMCx3LE0obSk\/bTpZYSx3Lm5vdGlmeVdpdGgpKTtiWzFdWzNdLmFkZChsKDAsdyxNKGcpP2c6WWEpKTtiWzJdWzNdLmFkZChsKDAsdyxNKGgpP2g6WmEpKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihnKXtyZXR1cm4gbnVsbCE9Zz9kLmV4dGVuZChnLGUpOmV9fSxmPXt9O3JldHVybiBkLmVhY2goYixmdW5jdGlvbihnLGgpe3ZhciBtPWhbMl0sbD1oWzVdO2VbaFsxXV09bS5hZGQ7bCYmbS5hZGQoZnVuY3Rpb24oKXtjPWx9LGJbMy1nXVsyXS5kaXNhYmxlLGJbMy1nXVszXS5kaXNhYmxlLGJbMF1bMl0ubG9jayxiWzBdWzNdLmxvY2spO20uYWRkKGhbM10uZmlyZSk7ZltoWzBdXT1mdW5jdGlvbigpe3JldHVybiBmW2hbMF0rIldpdGgiXSh0aGlzPT09Zj92b2lkIDA6dGhpcyxhcmd1bWVudHMpLHRoaXN9O2ZbaFswXSsiV2l0aCJdPW0uZmlyZVdpdGh9KSwKZS5wcm9taXNlKGYpLGEmJmEuY2FsbChmLGYpLGZ9LHdoZW46ZnVuY3Rpb24oYSl7dmFyIGI9YXJndW1lbnRzLmxlbmd0aCxjPWIsZT1BcnJheShjKSxmPXlhLmNhbGwoYXJndW1lbnRzKSxnPWQuRGVmZXJyZWQoKSxoPWZ1bmN0aW9uKG0pe3JldHVybiBmdW5jdGlvbihsKXtlW21dPXRoaXM7ZlttXT0xPGFyZ3VtZW50cy5sZW5ndGg\/eWEuY2FsbChhcmd1bWVudHMpOmw7LS1ifHxnLnJlc29sdmVXaXRoKGUsZil9fTtpZigxPj1iJiYobWIoYSxnLmRvbmUoaChjKSkucmVzb2x2ZSxnLnJlamVjdCwhYiksInBlbmRpbmciPT09Zy5zdGF0ZSgpfHxNKGZbY10mJmZbY10udGhlbikpKXJldHVybiBnLnRoZW4oKTtmb3IoO2MtLTspbWIoZltjXSxoKGMpLGcucmVqZWN0KTtyZXR1cm4gZy5wcm9taXNlKCl9fSk7dmFyIGxkPS9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO2QuRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbihhLGIpe24uY29uc29sZSYmCm4uY29uc29sZS53YXJuJiZhJiZsZC50ZXN0KGEubmFtZSkmJm4uY29uc29sZS53YXJuKCJqUXVlcnkuRGVmZXJyZWQgZXhjZXB0aW9uOiAiK2EubWVzc2FnZSxhLnN0YWNrLGIpfTtkLnJlYWR5RXhjZXB0aW9uPWZ1bmN0aW9uKGEpe24uc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGE7fSl9O3ZhciBnYz1kLkRlZmVycmVkKCk7ZC5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gZ2MudGhlbihhKVsiY2F0Y2giXShmdW5jdGlvbihiKXtkLnJlYWR5RXhjZXB0aW9uKGIpfSksdGhpc307ZC5leHRlbmQoe2lzUmVhZHk6ITEscmVhZHlXYWl0OjEscmVhZHk6ZnVuY3Rpb24oYSl7KCEwPT09YT8tLWQucmVhZHlXYWl0OmQuaXNSZWFkeSl8fChkLmlzUmVhZHk9ITApIT09YSYmMDwtLWQucmVhZHlXYWl0fHxnYy5yZXNvbHZlV2l0aChMLFtkXSl9fSk7ZC5yZWFkeS50aGVuPWdjLnRoZW47ImNvbXBsZXRlIj09PUwucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09TC5yZWFkeVN0YXRlJiYhTC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw\/Cm4uc2V0VGltZW91dChkLnJlYWR5KTooTC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixPYSksbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixPYSkpO3ZhciBYYT1mdW5jdGlvbihhLGIsYyxlLGYsZyxoKXt2YXIgbT0wLGw9YS5sZW5ndGgsdD1udWxsPT1jO2lmKCJvYmplY3QiPT09VShjKSlmb3IobSBpbiBmPSEwLGMpWGEoYSxiLG0sY1ttXSwhMCxnLGgpO2Vsc2UgaWYodm9pZCAwIT09ZSYmKGY9ITAsTShlKXx8KGg9ITApLHQmJihoPyhiLmNhbGwoYSxlKSxiPW51bGwpOih0PWIsYj1mdW5jdGlvbih3LHIseil7cmV0dXJuIHQuY2FsbChkKHcpLHopfSkpLGIpKWZvcig7bTxsO20rKyliKGFbbV0sYyxoP2U6ZS5jYWxsKGFbbV0sbSxiKGFbbV0sYykpKTtyZXR1cm4gZj9hOnQ\/Yi5jYWxsKGEpOmw\/YihhWzBdLGMpOmd9LE1jPS9eLW1zLS8sTmM9Ly0oW2Etel0pL2csR2I9ZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfHw5PT09YS5ub2RlVHlwZXx8ISthLm5vZGVUeXBlfTsKSmEudWlkPTE7SmEucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihhKXt2YXIgYj1hW3RoaXMuZXhwYW5kb107cmV0dXJuIGJ8fChiPXt9LEdiKGEpJiYoYS5ub2RlVHlwZT9hW3RoaXMuZXhwYW5kb109YjpPYmplY3QuZGVmaW5lUHJvcGVydHkoYSx0aGlzLmV4cGFuZG8se3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSkpKSxifSxzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlO2E9dGhpcy5jYWNoZShhKTtpZigic3RyaW5nIj09dHlwZW9mIGIpYVtCYShiKV09YztlbHNlIGZvcihlIGluIGIpYVtCYShlKV09YltlXTtyZXR1cm4gYX0sZ2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHZvaWQgMD09PWI\/dGhpcy5jYWNoZShhKTphW3RoaXMuZXhwYW5kb10mJmFbdGhpcy5leHBhbmRvXVtCYShiKV19LGFjY2VzczpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHZvaWQgMD09PWJ8fGImJiJzdHJpbmciPT10eXBlb2YgYiYmdm9pZCAwPT09Yz90aGlzLmdldChhLGIpOih0aGlzLnNldChhLGIsYyksdm9pZCAwIT09CmM\/YzpiKX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7dmFyIGM9YVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PWMpe2lmKHZvaWQgMCE9PWIpe3ZhciBlPShiPUFycmF5LmlzQXJyYXkoYik\/Yi5tYXAoQmEpOihiPUJhKGIpKWluIGM\/W2JdOmIubWF0Y2goTGEpfHxbXSkubGVuZ3RoO2Zvcig7ZS0tOylkZWxldGUgY1tiW2VdXX0odm9pZCAwPT09Ynx8ZC5pc0VtcHR5T2JqZWN0KGMpKSYmKGEubm9kZVR5cGU\/YVt0aGlzLmV4cGFuZG9dPXZvaWQgMDpkZWxldGUgYVt0aGlzLmV4cGFuZG9dKX19LGhhc0RhdGE6ZnVuY3Rpb24oYSl7YT1hW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PWEmJiFkLmlzRW1wdHlPYmplY3QoYSl9fTt2YXIgRz1uZXcgSmEseGE9bmV3IEphLFBjPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sT2M9L1tBLVpdL2c7ZC5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHhhLmhhc0RhdGEoYSl8fEcuaGFzRGF0YShhKX0sZGF0YTpmdW5jdGlvbihhLApiLGMpe3JldHVybiB4YS5hY2Nlc3MoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7eGEucmVtb3ZlKGEsYil9LF9kYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gRy5hY2Nlc3MoYSxiLGMpfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe0cucmVtb3ZlKGEsYil9fSk7ZC5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZz10aGlzWzBdLGg9ZyYmZy5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PWEpe2lmKHRoaXMubGVuZ3RoJiYoZj14YS5nZXQoZyksMT09PWcubm9kZVR5cGUmJiFHLmdldChnLCJoYXNEYXRhQXR0cnMiKSkpe2ZvcihjPWgubGVuZ3RoO2MtLTspaFtjXSYmMD09PShlPWhbY10ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKGU9QmEoZS5zbGljZSg1KSksT2IoZyxlLGZbZV0pKTtHLnNldChnLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gZn1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGE\/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eGEuc2V0KHRoaXMsCmEpfSk6WGEodGhpcyxmdW5jdGlvbihtKXt2YXIgbDtpZihnJiZ2b2lkIDA9PT1tKXJldHVybiB2b2lkIDAhPT0obD14YS5nZXQoZyxhKSk\/bDp2b2lkIDAhPT0obD1PYihnLGEpKT9sOnZvaWQgMDt0aGlzLmVhY2goZnVuY3Rpb24oKXt4YS5zZXQodGhpcyxhLG0pfSl9LG51bGwsYiwxPGFyZ3VtZW50cy5sZW5ndGgsbnVsbCwhMCl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3hhLnJlbW92ZSh0aGlzLGEpfSl9fSk7ZC5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZTtpZihhKXJldHVybiBiPShifHwiZngiKSsicXVldWUiLGU9Ry5nZXQoYSxiKSxjJiYoIWV8fEFycmF5LmlzQXJyYXkoYyk\/ZT1HLmFjY2VzcyhhLGIsZC5tYWtlQXJyYXkoYykpOmUucHVzaChjKSksZXx8W119LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9ZC5xdWV1ZShhLGIpLGU9Yy5sZW5ndGgsZj1jLnNoaWZ0KCksZz1kLl9xdWV1ZUhvb2tzKGEsCmIpOyJpbnByb2dyZXNzIj09PWYmJihmPWMuc2hpZnQoKSxlLS0pO2YmJigiZngiPT09YiYmYy51bnNoaWZ0KCJpbnByb2dyZXNzIiksZGVsZXRlIGcuc3RvcCxmLmNhbGwoYSxmdW5jdGlvbigpe2QuZGVxdWV1ZShhLGIpfSxnKSk7IWUmJmcmJmcuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVlSG9va3MiO3JldHVybiBHLmdldChhLGMpfHxHLmFjY2VzcyhhLGMse2VtcHR5OmQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe0cucmVtb3ZlKGEsW2IrInF1ZXVlIixjXSl9KX0pfX0pO2QuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9ImZ4IixjLS0pLGFyZ3VtZW50cy5sZW5ndGg8Yz9kLnF1ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQucXVldWUodGhpcyxhLGIpO2QuX3F1ZXVlSG9va3ModGhpcywKYSk7ImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWVbMF0mJmQuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2QuZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPTEsZj1kLkRlZmVycmVkKCksZz10aGlzLGg9dGhpcy5sZW5ndGgsbT1mdW5jdGlvbigpey0tZXx8Zi5yZXNvbHZlV2l0aChnLFtnXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCk7Zm9yKGE9YXx8ImZ4IjtoLS07KShjPUcuZ2V0KGdbaF0sYSsicXVldWVIb29rcyIpKSYmYy5lbXB0eSYmKGUrKyxjLmVtcHR5LmFkZChtKSk7cmV0dXJuIG0oKSxmLnByb21pc2UoYil9fSk7dmFyIHpjPS9bKy1dPyg\/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLHliPW5ldyBSZWdFeHAoIl4oPzooWystXSk9fCkoIisKemMrIikoW2EteiVdKikkIiwiaSIpLFBhPVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0samI9TC5kb2N1bWVudEVsZW1lbnQsb2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxtZD17Y29tcG9zZWQ6ITB9O2piLmdldFJvb3ROb2RlJiYob2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfHxhLmdldFJvb3ROb2RlKG1kKT09PWEub3duZXJEb2N1bWVudH0pO3ZhciBRYj1mdW5jdGlvbihhLGIpe3JldHVybiJub25lIj09PShhPWJ8fGEpLnN0eWxlLmRpc3BsYXl8fCIiPT09YS5zdHlsZS5kaXNwbGF5JiZvYihhKSYmIm5vbmUiPT09ZC5jc3MoYSwiZGlzcGxheSIpfSxsYz17fTtkLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiAkYSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiAkYSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE\/CmE\/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7UWIodGhpcyk\/ZCh0aGlzKS5zaG93KCk6ZCh0aGlzKS5oaWRlKCl9KX19KTt2YXIgWmIsSGI9L14oPzpjaGVja2JveHxyYWRpbykkL2ksbWM9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopL2ksbmM9L14kfF5tb2R1bGUkfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHhiPUwuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLmFwcGVuZENoaWxkKEwuY3JlYXRlRWxlbWVudCgiZGl2IikpOyhaYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIik7WmIuc2V0QXR0cmlidXRlKCJjaGVja2VkIiwiY2hlY2tlZCIpO1piLnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKTt4Yi5hcHBlbmRDaGlsZChaYik7Ti5jaGVja0Nsb25lPXhiLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZDt4Yi5pbm5lckhUTUw9Ijx0ZXh0YXJlYT54PC90ZXh0YXJlYT4iOwpOLm5vQ2xvbmVDaGVja2VkPSEheGIuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlO3hiLmlubmVySFRNTD0iPG9wdGlvbj48L29wdGlvbj4iO04ub3B0aW9uPSEheGIubGFzdENoaWxkO3ZhciBDYT17dGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O0NhLnRib2R5PUNhLnRmb290PUNhLmNvbGdyb3VwPUNhLmNhcHRpb249Q2EudGhlYWQ7Q2EudGg9Q2EudGQ7Ti5vcHRpb258fChDYS5vcHRncm91cD1DYS5vcHRpb249WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSk7dmFyIFFjPS88fCYjP1x3KzsvLEFjPS9eKFteLl0qKSg\/OlwuKC4rKXwpLzsKZC5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsbSxsLHQsdyxyLHosRD1HLmdldChhKTtpZihHYihhKSlmb3IoYy5oYW5kbGVyJiYoYz0oZz1jKS5oYW5kbGVyLGY9Zy5zZWxlY3RvciksZiYmZC5maW5kLm1hdGNoZXNTZWxlY3RvcihqYixmKSxjLmd1aWR8fChjLmd1aWQ9ZC5ndWlkKyspLChsPUQuZXZlbnRzKXx8KGw9RC5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGg9RC5oYW5kbGUpfHwoaD1ELmhhbmRsZT1mdW5jdGlvbihPKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGQmJmQuZXZlbnQudHJpZ2dlcmVkIT09Ty50eXBlP2QuZXZlbnQuZGlzcGF0Y2guYXBwbHkoYSxhcmd1bWVudHMpOnZvaWQgMH0pLEQ9KGI9KGJ8fCIiKS5tYXRjaChMYSl8fFsiIl0pLmxlbmd0aDtELS07KXt2YXIgRj16PShtPUFjLmV4ZWMoYltEXSl8fFtdKVsxXTttPShtWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCk7RiYmKHc9ZC5ldmVudC5zcGVjaWFsW0ZdfHwKe30sRj0oZj93LmRlbGVnYXRlVHlwZTp3LmJpbmRUeXBlKXx8Rix3PWQuZXZlbnQuc3BlY2lhbFtGXXx8e30sdD1kLmV4dGVuZCh7dHlwZTpGLG9yaWdUeXBlOnosZGF0YTplLGhhbmRsZXI6YyxndWlkOmMuZ3VpZCxzZWxlY3RvcjpmLG5lZWRzQ29udGV4dDpmJiZkLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoZiksbmFtZXNwYWNlOm0uam9pbigiLiIpfSxnKSwocj1sW0ZdKXx8KChyPWxbRl09W10pLmRlbGVnYXRlQ291bnQ9MCx3LnNldHVwJiYhMSE9PXcuc2V0dXAuY2FsbChhLGUsbSxoKXx8YS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoRixoKSksdy5hZGQmJih3LmFkZC5jYWxsKGEsdCksdC5oYW5kbGVyLmd1aWR8fCh0LmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxmP3Iuc3BsaWNlKHIuZGVsZWdhdGVDb3VudCsrLDAsdCk6ci5wdXNoKHQpLGQuZXZlbnQuZ2xvYmFsW0ZdPSEwKX19LHJlbW92ZTpmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsbSxsLAp0LHcscix6LEQ9Ry5oYXNEYXRhKGEpJiZHLmdldChhKTtpZihEJiYobD1ELmV2ZW50cykpe2Zvcih0PShiPShifHwiIikubWF0Y2goTGEpfHxbIiJdKS5sZW5ndGg7dC0tOylpZih3PXo9KG09QWMuZXhlYyhiW3RdKXx8W10pWzFdLHI9KG1bMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSx3KXt2YXIgRj1kLmV2ZW50LnNwZWNpYWxbd118fHt9LE89bFt3PShlP0YuZGVsZWdhdGVUeXBlOkYuYmluZFR5cGUpfHx3XXx8W107bT1tWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIityLmpvaW4oIlxcLig\/Oi4qXFwufCkiKSsiKFxcLnwkKSIpO2ZvcihoPWc9Ty5sZW5ndGg7Zy0tOyl7dmFyIGFhPU9bZ107IWYmJnohPT1hYS5vcmlnVHlwZXx8YyYmYy5ndWlkIT09YWEuZ3VpZHx8bSYmIW0udGVzdChhYS5uYW1lc3BhY2UpfHxlJiZlIT09YWEuc2VsZWN0b3ImJigiKioiIT09ZXx8IWFhLnNlbGVjdG9yKXx8KE8uc3BsaWNlKGcsMSksYWEuc2VsZWN0b3ImJk8uZGVsZWdhdGVDb3VudC0tLEYucmVtb3ZlJiYKRi5yZW1vdmUuY2FsbChhLGFhKSl9aCYmIU8ubGVuZ3RoJiYoRi50ZWFyZG93biYmITEhPT1GLnRlYXJkb3duLmNhbGwoYSxyLEQuaGFuZGxlKXx8ZC5yZW1vdmVFdmVudChhLHcsRC5oYW5kbGUpLGRlbGV0ZSBsW3ddKX1lbHNlIGZvcih3IGluIGwpZC5ldmVudC5yZW1vdmUoYSx3K2JbdF0sYyxlLCEwKTtkLmlzRW1wdHlPYmplY3QobCkmJkcucmVtb3ZlKGEsImhhbmRsZSBldmVudHMiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksaD1kLmV2ZW50LmZpeChhKSxtPShHLmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbaC50eXBlXXx8W10sbD1kLmV2ZW50LnNwZWNpYWxbaC50eXBlXXx8e307Z1swXT1oO2ZvcihiPTE7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylnW2JdPWFyZ3VtZW50c1tiXTtpZihoLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWwucHJlRGlzcGF0Y2h8fCExIT09bC5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsCmgpKXt2YXIgdD1kLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxoLG0pO2ZvcihiPTA7KGU9dFtiKytdKSYmIWguaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZm9yKGguY3VycmVudFRhcmdldD1lLmVsZW0sbT0wOyhmPWUuaGFuZGxlcnNbbSsrXSkmJiFoLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCk7KWgucm5hbWVzcGFjZSYmITEhPT1mLm5hbWVzcGFjZSYmIWgucm5hbWVzcGFjZS50ZXN0KGYubmFtZXNwYWNlKXx8KGguaGFuZGxlT2JqPWYsaC5kYXRhPWYuZGF0YSx2b2lkIDAhPT0oYz0oKGQuZXZlbnQuc3BlY2lhbFtmLm9yaWdUeXBlXXx8e30pLmhhbmRsZXx8Zi5oYW5kbGVyKS5hcHBseShlLmVsZW0sZykpJiYhMT09PShoLnJlc3VsdD1jKSYmKGgucHJldmVudERlZmF1bHQoKSxoLnN0b3BQcm9wYWdhdGlvbigpKSk7cmV0dXJuIGwucG9zdERpc3BhdGNoJiZsLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsaCksaC5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLAplLGYsZz1bXSxoPWIuZGVsZWdhdGVDb3VudCxtPWEudGFyZ2V0O2lmKGgmJm0ubm9kZVR5cGUmJiEoImNsaWNrIj09PWEudHlwZSYmMTw9YS5idXR0b24pKWZvcig7bSE9PXRoaXM7bT1tLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PW0ubm9kZVR5cGUmJigiY2xpY2siIT09YS50eXBlfHwhMCE9PW0uZGlzYWJsZWQpKXt2YXIgbD1bXSx0PXt9O2ZvcihjPTA7YzxoO2MrKyl2b2lkIDA9PT10W2Y9KGU9YltjXSkuc2VsZWN0b3IrIiAiXSYmKHRbZl09ZS5uZWVkc0NvbnRleHQ\/LTE8ZChmLHRoaXMpLmluZGV4KG0pOmQuZmluZChmLHRoaXMsbnVsbCxbbV0pLmxlbmd0aCksdFtmXSYmbC5wdXNoKGUpO2wubGVuZ3RoJiZnLnB1c2goe2VsZW06bSxoYW5kbGVyczpsfSl9cmV0dXJuIG09dGhpcyxoPGIubGVuZ3RoJiZnLnB1c2goe2VsZW06bSxoYW5kbGVyczpiLnNsaWNlKGgpfSksZ30sYWRkUHJvcDpmdW5jdGlvbihhLGIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLkV2ZW50LnByb3RvdHlwZSwKYSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0Ok0oYik\/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIGIodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFthXX0sc2V0OmZ1bmN0aW9uKGMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX19KX0sZml4OmZ1bmN0aW9uKGEpe3JldHVybiBhW2QuZXhwYW5kb10\/YTpuZXcgZC5FdmVudChhKX0sc3BlY2lhbDp7bG9hZDp7bm9CdWJibGU6ITB9LGNsaWNrOntzZXR1cDpmdW5jdGlvbihhKXthPXRoaXN8fGE7cmV0dXJuIEhiLnRlc3QoYS50eXBlKSYmYS5jbGljayYmWChhLCJpbnB1dCIpJiZwYihhLCJjbGljayIsITApLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGEpe2E9dGhpc3x8YTtyZXR1cm4gSGIudGVzdChhLnR5cGUpJiYKYS5jbGljayYmWChhLCJpbnB1dCIpJiZwYihhLCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXthPWEudGFyZ2V0O3JldHVybiBIYi50ZXN0KGEudHlwZSkmJmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmRy5nZXQoYSwiY2xpY2siKXx8WChhLCJhIil9fSxiZWZvcmV1bmxvYWQ6e3Bvc3REaXNwYXRjaDpmdW5jdGlvbihhKXt2b2lkIDAhPT1hLnJlc3VsdCYmYS5vcmlnaW5hbEV2ZW50JiYoYS5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlPWEucmVzdWx0KX19fX07ZC5yZW1vdmVFdmVudD1mdW5jdGlvbihhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKX07ZC5FdmVudD1mdW5jdGlvbihhLGIpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGQuRXZlbnQpKXJldHVybiBuZXcgZC5FdmVudChhLGIpO2EmJmEudHlwZT8odGhpcy5vcmlnaW5hbEV2ZW50PWEsdGhpcy50eXBlPWEudHlwZSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1hLmRlZmF1bHRQcmV2ZW50ZWR8fAp2b2lkIDA9PT1hLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09YS5yZXR1cm5WYWx1ZT9hYjpiYix0aGlzLnRhcmdldD1hLnRhcmdldCYmMz09PWEudGFyZ2V0Lm5vZGVUeXBlP2EudGFyZ2V0LnBhcmVudE5vZGU6YS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWEuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9YS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9YTtiJiZkLmV4dGVuZCh0aGlzLGIpO3RoaXMudGltZVN0YW1wPWEmJmEudGltZVN0YW1wfHxEYXRlLm5vdygpO3RoaXNbZC5leHBhbmRvXT0hMH07ZC5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmQuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOmJiLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFiOwphJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1hYjthJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5zdG9wUHJvcGFnYXRpb24oKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWI7YSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX19O2QuZWFjaCh7YWx0S2V5OiEwLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjaGFuZ2VkVG91Y2hlczohMCxjdHJsS2V5OiEwLGRldGFpbDohMCxldmVudFBoYXNlOiEwLG1ldGFLZXk6ITAscGFnZVg6ITAscGFnZVk6ITAsc2hpZnRLZXk6ITAsdmlldzohMCwiY2hhciI6ITAsY29kZTohMCwKY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ITB9LGQuZXZlbnQuYWRkUHJvcCk7ZC5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoZSl7aWYoTC5kb2N1bWVudE1vZGUpe3ZhciBmPUcuZ2V0KHRoaXMsImhhbmRsZSIpLGc9ZC5ldmVudC5maXgoZSk7Zy50eXBlPSJmb2N1c2luIj09PWUudHlwZT8iZm9jdXMiOiJibHVyIjtnLmlzU2ltdWxhdGVkPSEwO2YoZSk7Zy50YXJnZXQ9PT1nLmN1cnJlbnRUYXJnZXQmJmYoZyl9ZWxzZSBkLmV2ZW50LnNpbXVsYXRlKGIsZS50YXJnZXQsZC5ldmVudC5maXgoZSkpfWQuZXZlbnQuc3BlY2lhbFthXT0Ke3NldHVwOmZ1bmN0aW9uKCl7dmFyIGU7aWYocGIodGhpcyxhLCEwKSwhTC5kb2N1bWVudE1vZGUpcmV0dXJuITE7KGU9Ry5nZXQodGhpcyxiKSl8fHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihiLGMpO0cuc2V0KHRoaXMsYiwoZXx8MCkrMSl9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcGIodGhpcyxhKSwhMH0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZTtpZighTC5kb2N1bWVudE1vZGUpcmV0dXJuITE7KGU9Ry5nZXQodGhpcyxiKS0xKT9HLnNldCh0aGlzLGIsZSk6KHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpLEcucmVtb3ZlKHRoaXMsYikpfSxfZGVmYXVsdDpmdW5jdGlvbihlKXtyZXR1cm4gRy5nZXQoZS50YXJnZXQsYSl9LGRlbGVnYXRlVHlwZTpifTtkLmV2ZW50LnNwZWNpYWxbYl09e3NldHVwOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLmRvY3VtZW50fHx0aGlzLGY9TC5kb2N1bWVudE1vZGU\/dGhpczplLGc9Ry5nZXQoZixiKTtnfHwKKEwuZG9jdW1lbnRNb2RlP3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihiLGMpOmUuYWRkRXZlbnRMaXN0ZW5lcihhLGMsITApKTtHLnNldChmLGIsKGd8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxmPUwuZG9jdW1lbnRNb2RlP3RoaXM6ZSxnPUcuZ2V0KGYsYiktMTtnP0cuc2V0KGYsYixnKTooTC5kb2N1bWVudE1vZGU\/dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyk6ZS5yZW1vdmVFdmVudExpc3RlbmVyKGEsYywhMCksRy5yZW1vdmUoZixiKSl9fX0pO2QuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXtkLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGMpe3ZhciBlLGY9CmMucmVsYXRlZFRhcmdldCxnPWMuaGFuZGxlT2JqO3JldHVybiBmJiYoZj09PXRoaXN8fGQuY29udGFpbnModGhpcyxmKSl8fChjLnR5cGU9Zy5vcmlnVHlwZSxlPWcuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYy50eXBlPWIpLGV9fX0pO2QuZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gZmIodGhpcyxhLGIsYyxlKX0sb25lOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiBmYih0aGlzLGEsYixjLGUsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZjtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZT1hLmhhbmRsZU9iaixkKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihlLm5hbWVzcGFjZT9lLm9yaWdUeXBlKyIuIitlLm5hbWVzcGFjZTplLm9yaWdUeXBlLGUuc2VsZWN0b3IsZS5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGYgaW4gYSl0aGlzLm9mZihmLGIsYVtmXSk7cmV0dXJuIHRoaXN9cmV0dXJuITEhPT0KYiYmImZ1bmN0aW9uIiE9dHlwZW9mIGJ8fChjPWIsYj12b2lkIDApLCExPT09YyYmKGM9YmIpLHRoaXMuZWFjaChmdW5jdGlvbigpe2QuZXZlbnQucmVtb3ZlKHRoaXMsYSxjLGIpfSl9fSk7dmFyIG5kPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLFJjPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLFNjPS9eXHMqPCFcW0NEQVRBXFt8XF1cXT5ccyokL2c7ZC5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGNsb25lOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD1hLmNsb25lTm9kZSghMCksbT1vYihhKTtpZighKE4ubm9DbG9uZUNoZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fGQuaXNYTUxEb2MoYSkpKXt2YXIgbD1zYShoKSx0PTA7Zm9yKGU9KGY9c2EoYSkpLmxlbmd0aDt0PGU7dCsrKXt2YXIgdz1mW3RdLHI9bFt0XTt2b2lkIDA7ImlucHV0Ij09PShnPXIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkmJkhiLnRlc3Qody50eXBlKT8Kci5jaGVja2VkPXcuY2hlY2tlZDoiaW5wdXQiIT09ZyYmInRleHRhcmVhIiE9PWd8fChyLmRlZmF1bHRWYWx1ZT13LmRlZmF1bHRWYWx1ZSl9fWlmKGIpaWYoYylmb3IoZj1mfHxzYShhKSxsPWx8fHNhKGgpLHQ9MCxlPWYubGVuZ3RoO3Q8ZTt0KyspZ2IoZlt0XSxsW3RdKTtlbHNlIGdiKGEsaCk7cmV0dXJuIDA8KGw9c2EoaCwic2NyaXB0IikpLmxlbmd0aCYmbmIobCwhbSYmc2EoYSwic2NyaXB0IikpLGh9LGNsZWFuRGF0YTpmdW5jdGlvbihhKXtmb3IodmFyIGIsYyxlLGY9ZC5ldmVudC5zcGVjaWFsLGc9MDt2b2lkIDAhPT0oYz1hW2ddKTtnKyspaWYoR2IoYykpe2lmKGI9Y1tHLmV4cGFuZG9dKXtpZihiLmV2ZW50cylmb3IoZSBpbiBiLmV2ZW50cylmW2VdP2QuZXZlbnQucmVtb3ZlKGMsZSk6ZC5yZW1vdmVFdmVudChjLGUsYi5oYW5kbGUpO2NbRy5leHBhbmRvXT12b2lkIDB9Y1t4YS5leHBhbmRvXSYmKGNbeGEuZXhwYW5kb109dm9pZCAwKX19fSk7ZC5mbi5leHRlbmQoe2RldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gVGIodGhpcywKYSwhMCl9LHJlbW92ZTpmdW5jdGlvbihhKXtyZXR1cm4gVGIodGhpcyxhKX0sdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gdm9pZCAwPT09Yj9kLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9Yil9KX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fFNiKHRoaXMsYSkuYXBwZW5kQ2hpbGQoYSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09CnRoaXMubm9kZVR5cGUpe3ZhciBiPVNiKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKykxPT09YS5ub2RlVHlwZSYmKGQuY2xlYW5EYXRhKHNhKGEsITEpKSxhLnRleHRDb250ZW50PSIiKTtyZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1udWxsIT1hJiZhLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZC5jbG9uZSh0aGlzLAphLGIpfSl9LGh0bWw6ZnVuY3Rpb24oYSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9dGhpc1swXXx8e30sZT0wLGY9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09YiYmMT09PWMubm9kZVR5cGUpcmV0dXJuIGMuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmIW5kLnRlc3QoYikmJiFDYVsobWMuZXhlYyhiKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2I9ZC5odG1sUHJlZmlsdGVyKGIpO3RyeXtmb3IoO2U8ZjtlKyspMT09PShjPXRoaXNbZV18fHt9KS5ub2RlVHlwZSYmKGQuY2xlYW5EYXRhKHNhKGMsITEpKSxjLmlubmVySFRNTD1iKTtjPTB9Y2F0Y2goZyl7fX1jJiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGIpfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMucGFyZW50Tm9kZTswPmQuaW5BcnJheSh0aGlzLGEpJiYKKGQuY2xlYW5EYXRhKHNhKHRoaXMpKSxjJiZjLnJlcGxhY2VDaGlsZChiLHRoaXMpKX0sYSl9fSk7ZC5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMpe2Zvcih2YXIgZT1bXSxmPWQoYyksZz1mLmxlbmd0aC0xLGg9MDtoPD1nO2grKyljPWg9PT1nP3RoaXM6dGhpcy5jbG9uZSghMCksZChmW2hdKVtiXShjKSx1Yi5hcHBseShlLGMuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgYmM9bmV3IFJlZ0V4cCgiXigiK3pjKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksYWM9L14tLS8sVWI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiBiJiZiLm9wZW5lcnx8KGI9biksYi5nZXRDb21wdXRlZFN0eWxlKGEpfSxCYz1mdW5jdGlvbihhLApiLGMpe3ZhciBlLGY9e307Zm9yKGUgaW4gYilmW2VdPWEuc3R5bGVbZV0sYS5zdHlsZVtlXT1iW2VdO2ZvcihlIGluIGM9Yy5jYWxsKGEpLGIpYS5zdHlsZVtlXT1mW2VdO3JldHVybiBjfSxUYz1uZXcgUmVnRXhwKFBhLmpvaW4oInwiKSwiaSIpOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtpZihsKXttLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiO2wuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSI7amIuYXBwZW5kQ2hpbGQobSkuYXBwZW5kQ2hpbGQobCk7dmFyIHQ9bi5nZXRDb21wdXRlZFN0eWxlKGwpO2I9IjElIiE9PXQudG9wO2g9MTI9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC5tYXJnaW5MZWZ0KSk7Cmwuc3R5bGUucmlnaHQ9IjYwJSI7Zj0zNj09PU1hdGgucm91bmQocGFyc2VGbG9hdCh0LnJpZ2h0KSk7Yz0zNj09PU1hdGgucm91bmQocGFyc2VGbG9hdCh0LndpZHRoKSk7bC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2U9MTI9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQobC5vZmZzZXRXaWR0aC8zKSk7amIucmVtb3ZlQ2hpbGQobSk7bD1udWxsfX12YXIgYixjLGUsZixnLGgsbT1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGw9TC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnN0eWxlJiYobC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iY29udGVudC1ib3giLGwuY2xvbmVOb2RlKCEwKS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iIixOLmNsZWFyQ2xvbmVTdHlsZT0iY29udGVudC1ib3giPT09bC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCxkLmV4dGVuZChOLHtib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBhKCksY30scGl4ZWxCb3hTdHlsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLApmfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxifSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGh9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGV9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIHQsdyxyLHo7cmV0dXJuIG51bGw9PWcmJih0PUwuY3JlYXRlRWxlbWVudCgidGFibGUiKSx3PUwuY3JlYXRlRWxlbWVudCgidHIiKSxyPUwuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsdy5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MXB4IHNvbGlkIix3LnN0eWxlLmhlaWdodD0iMXB4IixyLnN0eWxlLmhlaWdodD0iOXB4IixyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixqYi5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZCh3KS5hcHBlbmRDaGlsZChyKSx6PW4uZ2V0Q29tcHV0ZWRTdHlsZSh3KSwKZz1wYXJzZUludCh6LmhlaWdodCwxMCkrcGFyc2VJbnQoei5ib3JkZXJUb3BXaWR0aCwxMCkrcGFyc2VJbnQoei5ib3JkZXJCb3R0b21XaWR0aCwxMCk9PT13Lm9mZnNldEhlaWdodCxqYi5yZW1vdmVDaGlsZCh0KSksZ319KSl9KCk7dmFyIHJjPVsiV2Via2l0IiwiTW96IiwibXMiXSxxYz1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLHBjPXt9LG9kPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxwZD17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sQ2M9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9O2QuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYilyZXR1cm4gYT1LYShhLCJvcGFjaXR5IiksIiI9PT1hPyIxIjphfX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYXNwZWN0UmF0aW86ITAsYm9yZGVySW1hZ2VTbGljZTohMCxjb2x1bW5Db3VudDohMCwKZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCxzY2FsZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMH0sY3NzUHJvcHM6e30sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZSl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZixnLGgsbT1CYShiKSxsPWFjLnRlc3QoYiksdD1hLnN0eWxlO2lmKGx8fChiPUFiKG0pKSxoPWQuY3NzSG9va3NbYl18fGQuY3NzSG9va3NbbV0sdm9pZCAwPT09YylyZXR1cm4gaCYmCiJnZXQiaW4gaCYmdm9pZCAwIT09KGY9aC5nZXQoYSwhMSxlKSk\/Zjp0W2JdOyJzdHJpbmciPT09KGc9dHlwZW9mIGMpJiYoZj15Yi5leGVjKGMpKSYmZlsxXSYmKGM9UGIoYSxiLGYpLGc9Im51bWJlciIpO251bGwhPWMmJmM9PWMmJigibnVtYmVyIiE9PWd8fGx8fChjKz1mJiZmWzNdfHwoZC5jc3NOdW1iZXJbbV0\/IiI6InB4IikpLE4uY2xlYXJDbG9uZVN0eWxlfHwiIiE9PWN8fDAhPT1iLmluZGV4T2YoImJhY2tncm91bmQiKXx8KHRbYl09ImluaGVyaXQiKSxoJiYic2V0ImluIGgmJnZvaWQgMD09PShjPWguc2V0KGEsYyxlKSl8fChsP3Quc2V0UHJvcGVydHkoYixjKTp0W2JdPWMpKX19LGNzczpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnLGgsbT1CYShiKTtyZXR1cm4gYWMudGVzdChiKXx8KGI9QWIobSkpLChoPWQuY3NzSG9va3NbYl18fGQuY3NzSG9va3NbbV0pJiYiZ2V0ImluIGgmJihmPWguZ2V0KGEsITAsYykpLHZvaWQgMD09PWYmJihmPUthKGEsYixlKSksIm5vcm1hbCI9PT0KZiYmYiBpbiBDYyYmKGY9Q2NbYl0pLCIiPT09Y3x8Yz8oZz1wYXJzZUZsb2F0KGYpLCEwPT09Y3x8aXNGaW5pdGUoZyk\/Z3x8MDpmKTpmfX0pO2QuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYyxlLGYpe2lmKGUpcmV0dXJuIW9kLnRlc3QoZC5jc3MoYywiZGlzcGxheSIpKXx8Yy5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9CYihjLGIsZik6QmMoYyxwZCxmdW5jdGlvbigpe3JldHVybiBCYihjLGIsZil9KX0sc2V0OmZ1bmN0aW9uKGMsZSxmKXt2YXIgZyxoPVViKGMpLG09IU4uc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aC5wb3NpdGlvbixsPShtfHxmKSYmImJvcmRlci1ib3giPT09ZC5jc3MoYywiYm94U2l6aW5nIiwhMSxoKTtmPWY\/cmIoYyxiLGYsbCxoKTowO3JldHVybiBsJiZtJiYoZi09TWF0aC5jZWlsKGNbIm9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpKwpiLnNsaWNlKDEpXS1wYXJzZUZsb2F0KGhbYl0pLXJiKGMsYiwiYm9yZGVyIiwhMSxoKS0uNSkpLGYmJihnPXliLmV4ZWMoZSkpJiYicHgiIT09KGdbM118fCJweCIpJiYoYy5zdHlsZVtiXT1lLGU9ZC5jc3MoYyxiKSksV2IoMCxlLGYpfX19KTtkLmNzc0hvb2tzLm1hcmdpbkxlZnQ9VmIoTi5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24oYSxiKXtpZihiKXJldHVybihwYXJzZUZsb2F0KEthKGEsIm1hcmdpbkxlZnQiKSl8fGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1CYyhhLHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSk7ZC5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXt2YXIgZT0wLGY9e307Zm9yKGM9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND4KZTtlKyspZlthK1BhW2VdK2JdPWNbZV18fGNbZS0yXXx8Y1swXTtyZXR1cm4gZn19OyJtYXJnaW4iIT09YSYmKGQuY3NzSG9va3NbYStiXS5zZXQ9V2IpfSk7ZC5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGMsZSxmKXt2YXIgZyxoPXt9LG09MDtpZihBcnJheS5pc0FycmF5KGUpKXtmPVViKGMpO2ZvcihnPWUubGVuZ3RoO208ZzttKyspaFtlW21dXT1kLmNzcyhjLGVbbV0sITEsZik7cmV0dXJuIGh9cmV0dXJuIHZvaWQgMCE9PWY\/ZC5zdHlsZShjLGUsZik6ZC5jc3MoYyxlKX0sYSxiLDE8YXJndW1lbnRzLmxlbmd0aCl9fSk7KChkLlR3ZWVuPXphKS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnphLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZSxmLGcpe3RoaXMuZWxlbT1hO3RoaXMucHJvcD1jO3RoaXMuZWFzaW5nPWZ8fGQuZWFzaW5nLl9kZWZhdWx0O3RoaXMub3B0aW9ucz1iO3RoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKTt0aGlzLmVuZD0KZTt0aGlzLnVuaXQ9Z3x8KGQuY3NzTnVtYmVyW2NdPyIiOiJweCIpfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT16YS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ\/YS5nZXQodGhpcyk6emEucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9emEucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMub3B0aW9ucy5kdXJhdGlvbj90aGlzLnBvcz1iPWQuZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOnRoaXMucG9zPWI9YSx0aGlzLm5vdz0odGhpcy5lbmQtdGhpcy5zdGFydCkqYit0aGlzLnN0YXJ0LHRoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKSxjJiZjLnNldD9jLnNldCh0aGlzKTp6YS5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KHRoaXMpLHRoaXN9fSkuaW5pdC5wcm90b3R5cGU9CnphLnByb3RvdHlwZTsoemEucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiAxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsIT1hLmVsZW1bYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW2EucHJvcF0\/YS5lbGVtW2EucHJvcF06KGI9ZC5jc3MoYS5lbGVtLGEucHJvcCwiIikpJiYiYXV0byIhPT1iP2I6MH0sc2V0OmZ1bmN0aW9uKGEpe2QuZnguc3RlcFthLnByb3BdP2QuZnguc3RlcFthLnByb3BdKGEpOjEhPT1hLmVsZW0ubm9kZVR5cGV8fCFkLmNzc0hvb2tzW2EucHJvcF0mJm51bGw9PWEuZWxlbS5zdHlsZVtBYihhLnByb3ApXT9hLmVsZW1bYS5wcm9wXT1hLm5vdzpkLnN0eWxlKGEuZWxlbSxhLnByb3AsYS5ub3crYS51bml0KX19fSkuc2Nyb2xsVG9wPXphLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oYSl7YS5lbGVtLm5vZGVUeXBlJiZhLmVsZW0ucGFyZW50Tm9kZSYmKGEuZWxlbVthLnByb3BdPWEubm93KX19O2QuZWFzaW5nPQp7bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9O2QuZng9emEucHJvdG90eXBlLmluaXQ7ZC5meC5zdGVwPXt9O3ZhciBzYixYYixxZD0vXig\/OnRvZ2dsZXxzaG93fGhpZGUpJC8scmQ9L3F1ZXVlSG9va3MkLztkLkFuaW1hdGlvbj1kLmV4dGVuZCh4LHt0d2VlbmVyczp7IioiOltmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY3JlYXRlVHdlZW4oYSxiKTtyZXR1cm4gUGIoYy5lbGVtLGEseWIuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtNKGEpPyhiPWEsYT1bIioiXSk6YT1hLm1hdGNoKExhKTtmb3IodmFyIGMsZT0wLGY9YS5sZW5ndGg7ZTxmO2UrKyljPWFbZV0seC50d2VlbmVyc1tjXT14LnR3ZWVuZXJzW2NdfHxbXSx4LnR3ZWVuZXJzW2NdLnVuc2hpZnQoYil9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaCwKbSxsLHQsdz0id2lkdGgiaW4gYnx8ImhlaWdodCJpbiBiLHI9dGhpcyx6PXt9LEQ9YS5zdHlsZSxGPWEubm9kZVR5cGUmJlFiKGEpLE89Ry5nZXQoYSwiZnhzaG93Iik7Zm9yKGUgaW4gYy5xdWV1ZXx8KG51bGw9PShoPWQuX3F1ZXVlSG9va3MoYSwiZngiKSkudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsbT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8bSgpfSksaC51bnF1ZXVlZCsrLHIuYWx3YXlzKGZ1bmN0aW9uKCl7ci5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS07ZC5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSxiKWlmKGY9YltlXSxxZC50ZXN0KGYpKXtpZihkZWxldGUgYltlXSxnPWd8fCJ0b2dnbGUiPT09ZixmPT09KEY\/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWZ8fCFPfHx2b2lkIDA9PT1PW2VdKWNvbnRpbnVlO0Y9ITB9eltlXT1PJiZPW2VdfHxkLnN0eWxlKGEsZSl9aWYoKGI9IWQuaXNFbXB0eU9iamVjdChiKSl8fAohZC5pc0VtcHR5T2JqZWN0KHopKWZvcihlIGluIHcmJjE9PT1hLm5vZGVUeXBlJiYoYy5vdmVyZmxvdz1bRC5vdmVyZmxvdyxELm92ZXJmbG93WCxELm92ZXJmbG93WV0sbnVsbD09KGw9TyYmTy5kaXNwbGF5KSYmKGw9Ry5nZXQoYSwiZGlzcGxheSIpKSwibm9uZSI9PT0odD1kLmNzcyhhLCJkaXNwbGF5IikpJiYobD90PWw6KCRhKFthXSwhMCksbD1hLnN0eWxlLmRpc3BsYXl8fGwsdD1kLmNzcyhhLCJkaXNwbGF5IiksJGEoW2FdKSkpLCgiaW5saW5lIj09PXR8fCJpbmxpbmUtYmxvY2siPT09dCYmbnVsbCE9bCkmJiJub25lIj09PWQuY3NzKGEsImZsb2F0IikmJihifHwoci5kb25lKGZ1bmN0aW9uKCl7RC5kaXNwbGF5PWx9KSxudWxsPT1sJiYodD1ELmRpc3BsYXksbD0ibm9uZSI9PT10PyIiOnQpKSxELmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYoRC5vdmVyZmxvdz0iaGlkZGVuIixyLmFsd2F5cyhmdW5jdGlvbigpe0Qub3ZlcmZsb3c9Yy5vdmVyZmxvd1swXTsKRC5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXTtELm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpLGI9ITEseilifHwoTz8iaGlkZGVuImluIE8mJihGPU8uaGlkZGVuKTpPPUcuYWNjZXNzKGEsImZ4c2hvdyIse2Rpc3BsYXk6bH0pLGcmJihPLmhpZGRlbj0hRiksRiYmJGEoW2FdLCEwKSxyLmRvbmUoZnVuY3Rpb24oKXtmb3IoZSBpbiBGfHwkYShbYV0pLEcucmVtb3ZlKGEsImZ4c2hvdyIpLHopZC5zdHlsZShhLGUseltlXSl9KSksYj11KEY\/T1tlXTowLGUsciksZSBpbiBPfHwoT1tlXT1iLnN0YXJ0LEYmJihiLmVuZD1iLnN0YXJ0LGIuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj94LnByZWZpbHRlcnMudW5zaGlmdChhKTp4LnByZWZpbHRlcnMucHVzaChhKX19KTtkLnNwZWVkPWZ1bmN0aW9uKGEsYixjKXt2YXIgZT1hJiYib2JqZWN0Ij09dHlwZW9mIGE\/ZC5leHRlbmQoe30sYSk6e2NvbXBsZXRlOmN8fCFjJiZifHxNKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJgpifHxiJiYhTShiKSYmYn07cmV0dXJuIGQuZngub2ZmP2UuZHVyYXRpb249MDoibnVtYmVyIiE9dHlwZW9mIGUuZHVyYXRpb24mJihlLmR1cmF0aW9uIGluIGQuZnguc3BlZWRzP2UuZHVyYXRpb249ZC5meC5zcGVlZHNbZS5kdXJhdGlvbl06ZS5kdXJhdGlvbj1kLmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9ZS5xdWV1ZSYmITAhPT1lLnF1ZXVlfHwoZS5xdWV1ZT0iZngiKSxlLm9sZD1lLmNvbXBsZXRlLGUuY29tcGxldGU9ZnVuY3Rpb24oKXtNKGUub2xkKSYmZS5vbGQuY2FsbCh0aGlzKTtlLnF1ZXVlJiZkLmRlcXVldWUodGhpcyxlLnF1ZXVlKX0sZX07ZC5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gdGhpcy5maWx0ZXIoUWIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxjLGUpfSxhbmltYXRlOmZ1bmN0aW9uKGEsYixjLGUpe3ZhciBmPWQuaXNFbXB0eU9iamVjdChhKSxnPWQuc3BlZWQoYixjLGUpOwpiPWZ1bmN0aW9uKCl7dmFyIGg9eCh0aGlzLGQuZXh0ZW5kKHt9LGEpLGcpOyhmfHxHLmdldCh0aGlzLCJmaW5pc2giKSkmJmguc3RvcCghMCl9O3JldHVybiBiLmZpbmlzaD1iLGZ8fCExPT09Zy5xdWV1ZT90aGlzLmVhY2goYik6dGhpcy5xdWV1ZShnLnF1ZXVlLGIpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT1mdW5jdGlvbihmKXt2YXIgZz1mLnN0b3A7ZGVsZXRlIGYuc3RvcDtnKGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPSEwLGc9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsaD1kLnRpbWVycyxtPUcuZ2V0KHRoaXMpO2lmKGcpbVtnXSYmbVtnXS5zdG9wJiZlKG1bZ10pO2Vsc2UgZm9yKGcgaW4gbSltW2ddJiZtW2ddLnN0b3AmJnJkLnRlc3QoZykmJmUobVtnXSk7Zm9yKGc9aC5sZW5ndGg7Zy0tOyloW2ddLmVsZW0hPT10aGlzfHxudWxsIT0KYSYmaFtnXS5xdWV1ZSE9PWF8fChoW2ddLmFuaW0uc3RvcChjKSxmPSExLGguc3BsaWNlKGcsMSkpOyFmJiZjfHxkLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1HLmdldCh0aGlzKSxjPWJbYSsicXVldWUiXSxlPWJbYSsicXVldWVIb29rcyJdLGY9ZC50aW1lcnMsZz1jP2MubGVuZ3RoOjA7Yi5maW5pc2g9ITA7ZC5xdWV1ZSh0aGlzLGEsW10pO2UmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCk7Zm9yKGU9Zi5sZW5ndGg7ZS0tOylmW2VdLmVsZW09PT10aGlzJiZmW2VdLnF1ZXVlPT09YSYmKGZbZV0uYW5pbS5zdG9wKCEwKSxmLnNwbGljZShlLDEpKTtmb3IoZT0wO2U8ZztlKyspY1tlXSYmY1tlXS5maW5pc2gmJmNbZV0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIGIuZmluaXNofSl9fSk7ZC5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbihhLApiKXt2YXIgYz1kLmZuW2JdO2QuZm5bYl09ZnVuY3Rpb24oZSxmLGcpe3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PXR5cGVvZiBlP2MuYXBwbHkodGhpcyxhcmd1bWVudHMpOnRoaXMuYW5pbWF0ZSh0YihiLCEwKSxlLGYsZyl9fSk7ZC5lYWNoKHtzbGlkZURvd246dGIoInNob3ciKSxzbGlkZVVwOnRiKCJoaWRlIiksc2xpZGVUb2dnbGU6dGIoInRvZ2dsZSIpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9nZ2xlOntvcGFjaXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMsZSxmKXtyZXR1cm4gdGhpcy5hbmltYXRlKGIsYyxlLGYpfX0pO2QudGltZXJzPVtdO2QuZngudGljaz1mdW5jdGlvbigpe3ZhciBhLGI9MCxjPWQudGltZXJzO2ZvcihzYj1EYXRlLm5vdygpO2I8Yy5sZW5ndGg7YisrKShhPWNbYl0pKCl8fGNbYl0hPT1hfHxjLnNwbGljZShiLS0sMSk7Yy5sZW5ndGh8fGQuZnguc3RvcCgpOwpzYj12b2lkIDB9O2QuZngudGltZXI9ZnVuY3Rpb24oYSl7ZC50aW1lcnMucHVzaChhKTtkLmZ4LnN0YXJ0KCl9O2QuZnguaW50ZXJ2YWw9MTM7ZC5meC5zdGFydD1mdW5jdGlvbigpe1hifHwoWGI9ITAsQ2IoKSl9O2QuZnguc3RvcD1mdW5jdGlvbigpe1hiPW51bGx9O2QuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9O2QuZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1kLmZ4JiZkLmZ4LnNwZWVkc1thXXx8YSxiPWJ8fCJmeCIsdGhpcy5xdWV1ZShiLGZ1bmN0aW9uKGMsZSl7dmFyIGY9bi5zZXRUaW1lb3V0KGMsYSk7ZS5zdG9wPWZ1bmN0aW9uKCl7bi5jbGVhclRpbWVvdXQoZil9fSl9O3ZhciBJYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0Iiksc2Q9TC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKS5hcHBlbmRDaGlsZChMLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtJYi50eXBlPSJjaGVja2JveCI7Ti5jaGVja09uPSIiIT09SWIudmFsdWU7Ti5vcHRTZWxlY3RlZD0Kc2Quc2VsZWN0ZWQ7KEliPUwuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkudmFsdWU9InQiO0liLnR5cGU9InJhZGlvIjtOLnJhZGlvVmFsdWU9InQiPT09SWIudmFsdWU7dmFyIEpiPWQuZXhwci5hdHRySGFuZGxlO2QuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFhhKHRoaXMsZC5hdHRyLGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pO2QuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGc9YS5ub2RlVHlwZTtpZigzIT09ZyYmOCE9PWcmJjIhPT1nKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU\/ZC5wcm9wKGEsYixjKTooMT09PWcmJmQuaXNYTUxEb2MoYSl8fChmPWQuYXR0ckhvb2tzW2IudG9Mb3dlckNhc2UoKV18fChkLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP3RkOnZvaWQgMCkpLAp2b2lkIDAhPT1jP251bGw9PT1jP3ZvaWQgZC5yZW1vdmVBdHRyKGEsYik6ZiYmInNldCJpbiBmJiZ2b2lkIDAhPT0oZT1mLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6ZiYmImdldCJpbiBmJiZudWxsIT09KGU9Zi5nZXQoYSxiKSk\/ZTpudWxsPT0oZT1kLmZpbmQuYXR0cihhLGIpKT92b2lkIDA6ZSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIU4ucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJlgoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYz0wLGU9YiYmYi5tYXRjaChMYSk7aWYoZSYmMT09PWEubm9kZVR5cGUpZm9yKDtiPWVbYysrXTspYS5yZW1vdmVBdHRyaWJ1dGUoYil9fSk7dmFyIHRkPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiExPT09Yj9kLnJlbW92ZUF0dHIoYSwKYyk6YS5zZXRBdHRyaWJ1dGUoYyxjKSxjfX07ZC5lYWNoKGQuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9SmJbYl18fGQuZmluZC5hdHRyO0piW2JdPWZ1bmN0aW9uKGUsZixnKXt2YXIgaCxtLGw9Zi50b0xvd2VyQ2FzZSgpO3JldHVybiBnfHwobT1KYltsXSxKYltsXT1oLGg9bnVsbCE9YyhlLGYsZyk\/bDpudWxsLEpiW2xdPW0pLGh9fSk7dmFyIHVkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksdmQ9L14oPzphfGFyZWEpJC9pO2QuZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFhhKHRoaXMsZC5wcm9wLGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tkLnByb3BGaXhbYV18fGFdfSl9fSk7ZC5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZz1hLm5vZGVUeXBlOwppZigzIT09ZyYmOCE9PWcmJjIhPT1nKXJldHVybiAxPT09ZyYmZC5pc1hNTERvYyhhKXx8KGI9ZC5wcm9wRml4W2JdfHxiLGY9ZC5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM\/ZiYmInNldCJpbiBmJiZ2b2lkIDAhPT0oZT1mLnNldChhLGMsYikpP2U6YVtiXT1jOmYmJiJnZXQiaW4gZiYmbnVsbCE9PShlPWYuZ2V0KGEsYikpP2U6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWQuZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI\/cGFyc2VJbnQoYiwxMCk6dWQudGVzdChhLm5vZGVOYW1lKXx8dmQudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSk7Ti5vcHRTZWxlY3RlZHx8KGQucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oYSl7YT1hLnBhcmVudE5vZGU7cmV0dXJuIGEmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsCm51bGx9LHNldDpmdW5jdGlvbihhKXthPWEucGFyZW50Tm9kZTthJiYoYS5zZWxlY3RlZEluZGV4LGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pO2QuZWFjaCgidGFiSW5kZXggcmVhZE9ubHkgbWF4TGVuZ3RoIGNlbGxTcGFjaW5nIGNlbGxQYWRkaW5nIHJvd1NwYW4gY29sU3BhbiB1c2VNYXAgZnJhbWVCb3JkZXIgY29udGVudEVkaXRhYmxlIi5zcGxpdCgiICIpLGZ1bmN0aW9uKCl7ZC5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pO2QuZm4uZXh0ZW5kKHthZGRDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnLGg7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKG0pe2QodGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsbSxIKHRoaXMpKSl9KTooYj1QKGEpKS5sZW5ndGg\/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoZT1IKHRoaXMpLGM9MT09PXRoaXMubm9kZVR5cGUmJiIgIitDKGUpKyIgIil7Zm9yKGc9MDtnPGIubGVuZ3RoO2crKylmPQpiW2ddLDA+Yy5pbmRleE9mKCIgIitmKyIgIikmJihjKz1mKyIgIik7aD1DKGMpO2UhPT1oJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGgpfX0pOnRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGcsaDtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24obSl7ZCh0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxtLEgodGhpcykpKX0pOmFyZ3VtZW50cy5sZW5ndGg\/KGI9UChhKSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKGU9SCh0aGlzKSxjPTE9PT10aGlzLm5vZGVUeXBlJiYiICIrQyhlKSsiICIpe2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspZm9yKGY9YltnXTstMTxjLmluZGV4T2YoIiAiK2YrIiAiKTspYz1jLnJlcGxhY2UoIiAiK2YrIiAiLCIgIik7aD1DKGMpO2UhPT1oJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGgpfX0pOnRoaXM6dGhpcy5hdHRyKCJjbGFzcyIsIiIpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBjLAplLGYsZyxoPXR5cGVvZiBhLG09InN0cmluZyI9PT1ofHxBcnJheS5pc0FycmF5KGEpO3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihsKXtkKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGwsSCh0aGlzKSxiKSxiKX0pOiJib29sZWFuIj09dHlwZW9mIGImJm0\/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6KGM9UChhKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihtKWZvcihnPWQodGhpcyksZj0wO2Y8Yy5sZW5ndGg7ZisrKWU9Y1tmXSxnLmhhc0NsYXNzKGUpP2cucmVtb3ZlQ2xhc3MoZSk6Zy5hZGRDbGFzcyhlKTtlbHNlIHZvaWQgMCE9PWEmJiJib29sZWFuIiE9PWh8fCgoZT1IKHRoaXMpKSYmRy5zZXQodGhpcywiX19jbGFzc05hbWVfXyIsZSksdGhpcy5zZXRBdHRyaWJ1dGUmJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsZXx8ITE9PT1hPyIiOkcuZ2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpKX0pKX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsCmM9MDtmb3IoYT0iICIrYSsiICI7Yj10aGlzW2MrK107KWlmKDE9PT1iLm5vZGVUeXBlJiYtMTwoIiAiK0MoSChiKSkrIiAiKS5pbmRleE9mKGEpKXJldHVybiEwO3JldHVybiExfX0pO3ZhciB3ZD0vXHIvZztkLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmPXRoaXNbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg\/KGU9TShhKSx0aGlzLmVhY2goZnVuY3Rpb24oZyl7dmFyIGg7MT09PXRoaXMubm9kZVR5cGUmJihudWxsPT0oaD1lP2EuY2FsbCh0aGlzLGcsZCh0aGlzKS52YWwoKSk6YSk\/aD0iIjoibnVtYmVyIj09dHlwZW9mIGg\/aCs9IiI6QXJyYXkuaXNBcnJheShoKSYmKGg9ZC5tYXAoaCxmdW5jdGlvbihtKXtyZXR1cm4gbnVsbD09bT8iIjptKyIifSkpLChiPWQudmFsSG9va3NbdGhpcy50eXBlXXx8ZC52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmInNldCJpbiBiJiZ2b2lkIDAhPT1iLnNldCh0aGlzLGgsInZhbHVlIil8fCh0aGlzLnZhbHVlPQpoKSl9KSk6Zj8oYj1kLnZhbEhvb2tzW2YudHlwZV18fGQudmFsSG9va3NbZi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZiwidmFsdWUiKSk\/Yzoic3RyaW5nIj09dHlwZW9mKGM9Zi52YWx1ZSk\/Yy5yZXBsYWNlKHdkLCIiKTpudWxsPT1jPyIiOmM6dm9pZCAwfX0pO2QuZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9ZC5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOkMoZC50ZXh0KGEpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiLGMsZT1hLm9wdGlvbnMsZj1hLnNlbGVjdGVkSW5kZXgsZz0ic2VsZWN0LW9uZSI9PT1hLnR5cGUsaD1nP251bGw6W10sbT1nP2YrMTplLmxlbmd0aDtmb3IoYz0wPmY\/bTpnP2Y6MDtjPG07YysrKWlmKCEoIShiPWVbY10pLnNlbGVjdGVkJiZjIT09Znx8Yi5kaXNhYmxlZHx8Yi5wYXJlbnROb2RlLmRpc2FibGVkJiZYKGIucGFyZW50Tm9kZSwKIm9wdGdyb3VwIikpKXtpZihhPWQoYikudmFsKCksZylyZXR1cm4gYTtoLnB1c2goYSl9cmV0dXJuIGh9LHNldDpmdW5jdGlvbihhLGIpe3ZhciBjLGUsZj1hLm9wdGlvbnM7Yj1kLm1ha2VBcnJheShiKTtmb3IodmFyIGc9Zi5sZW5ndGg7Zy0tOykoKGU9ZltnXSkuc2VsZWN0ZWQ9LTE8ZC5pbkFycmF5KGQudmFsSG9va3Mub3B0aW9uLmdldChlKSxiKSkmJihjPSEwKTtyZXR1cm4gY3x8KGEuc2VsZWN0ZWRJbmRleD0tMSksYn19fX0pO2QuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe2QudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihhLGIpe2lmKEFycmF5LmlzQXJyYXkoYikpcmV0dXJuIGEuY2hlY2tlZD0tMTxkLmluQXJyYXkoZChhKS52YWwoKSxiKX19O04uY2hlY2tPbnx8KGQudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIik\/Im9uIjphLnZhbHVlfSl9KTt2YXIgS2I9bi5sb2NhdGlvbiwKRGM9RGF0ZS5ub3coKSxoYz0vXD8vO2QucGFyc2VYTUw9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoIWF8fCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7dmFyIGM9KG5ldyBuLkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGEsInRleHQveG1sIil9Y2F0Y2goZSl7fXJldHVybiBiPWMmJmMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIilbMF0sYyYmIWJ8fGQuZXJyb3IoIkludmFsaWQgWE1MOiAiKyhiP2QubWFwKGIuY2hpbGROb2RlcyxmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXh0Q29udGVudH0pLmpvaW4oIlxuIik6YSkpLGN9O3ZhciBFYz0vXig\/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sRmM9ZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKX07ZC5leHRlbmQoZC5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnLGgsbSxsLHQsdz1bY3x8TF0scj1GYi5jYWxsKGEsInR5cGUiKT9hLnR5cGU6YSx6PUZiLmNhbGwoYSwKIm5hbWVzcGFjZSIpP2EubmFtZXNwYWNlLnNwbGl0KCIuIik6W107aWYoZj10PWc9Yz1jfHxMLDMhPT1jLm5vZGVUeXBlJiY4IT09Yy5ub2RlVHlwZSYmIUVjLnRlc3QocitkLmV2ZW50LnRyaWdnZXJlZCkmJigtMTxyLmluZGV4T2YoIi4iKSYmKHI9KHo9ci5zcGxpdCgiLiIpKS5zaGlmdCgpLHouc29ydCgpKSxoPTA+ci5pbmRleE9mKCI6IikmJiJvbiIrciwoYT1hW2QuZXhwYW5kb10\/YTpuZXcgZC5FdmVudChyLCJvYmplY3QiPT10eXBlb2YgYSYmYSkpLmlzVHJpZ2dlcj1lPzI6MyxhLm5hbWVzcGFjZT16LmpvaW4oIi4iKSxhLnJuYW1lc3BhY2U9YS5uYW1lc3BhY2U\/bmV3IFJlZ0V4cCgiKF58XFwuKSIrei5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGEucmVzdWx0PXZvaWQgMCxhLnRhcmdldHx8KGEudGFyZ2V0PWMpLGI9bnVsbD09Yj9bYV06ZC5tYWtlQXJyYXkoYixbYV0pLGw9ZC5ldmVudC5zcGVjaWFsW3JdfHx7fSxlfHwhbC50cmlnZ2VyfHwhMSE9PQpsLnRyaWdnZXIuYXBwbHkoYyxiKSkpe2lmKCFlJiYhbC5ub0J1YmJsZSYmIWtiKGMpKXt2YXIgRD1sLmRlbGVnYXRlVHlwZXx8cjtmb3IoRWMudGVzdChEK3IpfHwoZj1mLnBhcmVudE5vZGUpO2Y7Zj1mLnBhcmVudE5vZGUpdy5wdXNoKGYpLGc9ZjtnPT09KGMub3duZXJEb2N1bWVudHx8TCkmJncucHVzaChnLmRlZmF1bHRWaWV3fHxnLnBhcmVudFdpbmRvd3x8bil9Zm9yKHo9MDsoZj13W3orK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpOyl0PWYsYS50eXBlPTE8ej9EOmwuYmluZFR5cGV8fHIsKG09KEcuZ2V0KGYsImV2ZW50cyIpfHxPYmplY3QuY3JlYXRlKG51bGwpKVthLnR5cGVdJiZHLmdldChmLCJoYW5kbGUiKSkmJm0uYXBwbHkoZixiKSwobT1oJiZmW2hdKSYmbS5hcHBseSYmR2IoZikmJihhLnJlc3VsdD1tLmFwcGx5KGYsYiksITE9PT1hLnJlc3VsdCYmYS5wcmV2ZW50RGVmYXVsdCgpKTtyZXR1cm4gYS50eXBlPXIsZXx8YS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8CmwuX2RlZmF1bHQmJiExIT09bC5fZGVmYXVsdC5hcHBseSh3LnBvcCgpLGIpfHwhR2IoYyl8fGgmJk0oY1tyXSkmJiFrYihjKSYmKChnPWNbaF0pJiYoY1toXT1udWxsKSxkLmV2ZW50LnRyaWdnZXJlZD1yLGEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmdC5hZGRFdmVudExpc3RlbmVyKHIsRmMpLGNbcl0oKSxhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLEZjKSxkLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsZyYmKGNbaF09ZykpLGEucmVzdWx0fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9ZC5leHRlbmQobmV3IGQuRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwfSk7ZC5ldmVudC50cmlnZ2VyKGEsbnVsbCxiKX19KTtkLmZuLmV4dGVuZCh7dHJpZ2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9CnRoaXNbMF07aWYoYylyZXR1cm4gZC5ldmVudC50cmlnZ2VyKGEsYixjLCEwKX19KTt2YXIgVWM9L1xbXF0kLyxHYz0vXHI\/XG4vZyx4ZD0vXig\/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2kseWQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2QucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPVtdLGY9ZnVuY3Rpb24oZyxoKXtoPU0oaCk\/aCgpOmg7ZVtlLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGcpKyI9IitlbmNvZGVVUklDb21wb25lbnQobnVsbD09aD8iIjpoKX07aWYobnVsbD09YSlyZXR1cm4iIjtpZihBcnJheS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIWQuaXNQbGFpbk9iamVjdChhKSlkLmVhY2goYSxmdW5jdGlvbigpe2YodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKWVhKGMsYVtjXSxiLGYpO3JldHVybiBlLmpvaW4oIiYiKX07ZC5mbi5leHRlbmQoe3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiBkLnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LApzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPWQucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP2QubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIWQodGhpcykuaXMoIjpkaXNhYmxlZCIpJiZ5ZC50ZXN0KHRoaXMubm9kZU5hbWUpJiYheGQudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IUhiLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7YT1kKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1hP251bGw6QXJyYXkuaXNBcnJheShhKT9kLm1hcChhLGZ1bmN0aW9uKGMpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoR2MsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6YS5yZXBsYWNlKEdjLCJcclxuIil9fSkuZ2V0KCl9fSk7dmFyIHpkPS8lMjAvZyxBZD0vIy4qJC8sQmQ9LyhbPyZdKV89W14mXSovLENkPS9eKC4qPyk6WyBcdF0qKFteXHJcbl0qKSQvZ20sCkRkPS9eKD86R0VUfEhFQUQpJC8sRWQ9L15cL1wvLyxIYz17fSxjYz17fSxJYz0iKi8iLmNvbmNhdCgiKiIpLGljPUwuY3JlYXRlRWxlbWVudCgiYSIpO2ljLmhyZWY9S2IuaHJlZjtkLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6S2IuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChLYi5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpJYyx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8sCmh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6SlNPTi5wYXJzZSwidGV4dCB4bWwiOmQucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP2hiKGhiKGEsZC5hamF4U2V0dGluZ3MpLGIpOmhiKGQuYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOlFhKEhjKSxhamF4VHJhbnNwb3J0OlFhKGNjKSxhamF4OmZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhTLGhhLGliLFope3ZhciByYSx2YSxrYSxNYSx0YSxXPWhhO0t8fChLPSEwLG0mJm4uY2xlYXJUaW1lb3V0KG0pLGU9dm9pZCAwLGc9Wnx8IiIsUS5yZWFkeVN0YXRlPTA8Uz80OjAscmE9MjAwPD1TJiYzMDA+U3x8CjMwND09PVMsaWImJihNYT1mdW5jdGlvbihmYSxEYSxkYil7Zm9yKHZhciBWYSx1YSxZLGxhLElhPWZhLmNvbnRlbnRzLG1hPWZhLmRhdGFUeXBlczsiKiI9PT1tYVswXTspbWEuc2hpZnQoKSx2b2lkIDA9PT1WYSYmKFZhPWZhLm1pbWVUeXBlfHxEYS5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIikpO2lmKFZhKWZvcih1YSBpbiBJYSlpZihJYVt1YV0mJklhW3VhXS50ZXN0KFZhKSl7bWEudW5zaGlmdCh1YSk7YnJlYWt9aWYobWFbMF1pbiBkYilZPW1hWzBdO2Vsc2V7Zm9yKHVhIGluIGRiKXtpZighbWFbMF18fGZhLmNvbnZlcnRlcnNbdWErIiAiK21hWzBdXSl7WT11YTticmVha31sYXx8KGxhPXVhKX1ZPVl8fGxhfWlmKFkpcmV0dXJuIFkhPT1tYVswXSYmbWEudW5zaGlmdChZKSxkYltZXX0ocixRLGliKSksIXJhJiYtMTxkLmluQXJyYXkoInNjcmlwdCIsci5kYXRhVHlwZXMpJiYwPmQuaW5BcnJheSgianNvbiIsci5kYXRhVHlwZXMpJiYoci5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPQpmdW5jdGlvbigpe30pLE1hPWZ1bmN0aW9uKGZhLERhLGRiLFZhKXt2YXIgdWEsWSxsYSxJYSxtYSxIYT17fSx2Yj1mYS5kYXRhVHlwZXMuc2xpY2UoKTtpZih2YlsxXSlmb3IobGEgaW4gZmEuY29udmVydGVycylIYVtsYS50b0xvd2VyQ2FzZSgpXT1mYS5jb252ZXJ0ZXJzW2xhXTtmb3IoWT12Yi5zaGlmdCgpO1k7KWlmKGZhLnJlc3BvbnNlRmllbGRzW1ldJiYoZGJbZmEucmVzcG9uc2VGaWVsZHNbWV1dPURhKSwhbWEmJlZhJiZmYS5kYXRhRmlsdGVyJiYoRGE9ZmEuZGF0YUZpbHRlcihEYSxmYS5kYXRhVHlwZSkpLG1hPVksWT12Yi5zaGlmdCgpKWlmKCIqIj09PVkpWT1tYTtlbHNlIGlmKCIqIiE9PW1hJiZtYSE9PVkpe2lmKCEobGE9SGFbbWErIiAiK1ldfHxIYVsiKiAiK1ldKSlmb3IodWEgaW4gSGEpaWYoKElhPXVhLnNwbGl0KCIgIikpWzFdPT09WSYmKGxhPUhhW21hKyIgIitJYVswXV18fEhhWyIqICIrSWFbMF1dKSl7ITA9PT1sYT9sYT1IYVt1YV06ITAhPT1IYVt1YV0mJihZPQpJYVswXSx2Yi51bnNoaWZ0KElhWzFdKSk7YnJlYWt9aWYoITAhPT1sYSlpZihsYSYmZmFbInRocm93cyJdKURhPWxhKERhKTtlbHNlIHRyeXtEYT1sYShEYSl9Y2F0Y2goZmMpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmxhP2ZjOiJObyBjb252ZXJzaW9uIGZyb20gIittYSsiIHRvICIrWX19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpEYX19KHIsTWEsUSxyYSkscmE\/KHIuaWZNb2RpZmllZCYmKCh0YT1RLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoZC5sYXN0TW9kaWZpZWRbZl09dGEpLCh0YT1RLmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIikpJiYoZC5ldGFnW2ZdPXRhKSksMjA0PT09U3x8IkhFQUQiPT09ci50eXBlP1c9Im5vY29udGVudCI6MzA0PT09Uz9XPSJub3Rtb2RpZmllZCI6KFc9TWEuc3RhdGUsdmE9TWEuZGF0YSxyYT0hKGthPU1hLmVycm9yKSkpOihrYT1XLCFTJiZXfHwoVz0iZXJyb3IiLDA+UyYmKFM9MCkpKSxRLnN0YXR1cz0KUyxRLnN0YXR1c1RleHQ9KGhhfHxXKSsiIixyYT9GLnJlc29sdmVXaXRoKHosW3ZhLFcsUV0pOkYucmVqZWN0V2l0aCh6LFtRLFcsa2FdKSxRLnN0YXR1c0NvZGUoYWEpLGFhPXZvaWQgMCxsJiZELnRyaWdnZXIocmE\/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbUSxyLHJhP3ZhOmthXSksTy5maXJlV2l0aCh6LFtRLFddKSxsJiYoRC50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtRLHJdKSwtLWQuYWN0aXZlfHxkLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX0ib2JqZWN0Ij09dHlwZW9mIGEmJihiPWEsYT12b2lkIDApO2I9Ynx8e307dmFyIGUsZixnLGgsbSxsLHQsdyxyPWQuYWpheFNldHVwKHt9LGIpLHo9ci5jb250ZXh0fHxyLEQ9ci5jb250ZXh0JiYoei5ub2RlVHlwZXx8ei5qcXVlcnkpP2Qoeik6ZC5ldmVudCxGPWQuRGVmZXJyZWQoKSxPPWQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGFhPXIuc3RhdHVzQ29kZXx8e30sR2E9e30scWE9e30sU2E9ImNhbmNlbGVkIixRPQp7cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKFMpe3ZhciBoYTtpZihLKXtpZighaClmb3IoaD17fTtoYT1DZC5leGVjKGcpOyloW2hhWzFdLnRvTG93ZXJDYXNlKCkrIiAiXT0oaFtoYVsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQoaGFbMl0pO2hhPWhbUy50b0xvd2VyQ2FzZSgpKyIgIl19cmV0dXJuIG51bGw9PWhhP251bGw6aGEuam9pbigiLCAiKX0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIEs\/ZzpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKFMsaGEpe3JldHVybiBudWxsPT1LJiYoUz1xYVtTLnRvTG93ZXJDYXNlKCldPXFhW1MudG9Mb3dlckNhc2UoKV18fFMsR2FbU109aGEpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oUyl7cmV0dXJuIG51bGw9PUsmJihyLm1pbWVUeXBlPVMpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oUyl7dmFyIGhhO2lmKFMpaWYoSylRLmFsd2F5cyhTW1Euc3RhdHVzXSk7CmVsc2UgZm9yKGhhIGluIFMpYWFbaGFdPVthYVtoYV0sU1toYV1dO3JldHVybiB0aGlzfSxhYm9ydDpmdW5jdGlvbihTKXtTPVN8fFNhO3JldHVybiBlJiZlLmFib3J0KFMpLGMoMCxTKSx0aGlzfX07aWYoRi5wcm9taXNlKFEpLHIudXJsPSgoYXx8ci51cmx8fEtiLmhyZWYpKyIiKS5yZXBsYWNlKEVkLEtiLnByb3RvY29sKyIvLyIpLHIudHlwZT1iLm1ldGhvZHx8Yi50eXBlfHxyLm1ldGhvZHx8ci50eXBlLHIuZGF0YVR5cGVzPShyLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkubWF0Y2goTGEpfHxbIiJdLG51bGw9PXIuY3Jvc3NEb21haW4pe2E9TC5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e2EuaHJlZj1yLnVybCxhLmhyZWY9YS5ocmVmLHIuY3Jvc3NEb21haW49aWMucHJvdG9jb2wrIi8vIitpYy5ob3N0IT1hLnByb3RvY29sKyIvLyIrYS5ob3N0fWNhdGNoKFMpe3IuY3Jvc3NEb21haW49ITB9fWlmKHIuZGF0YSYmci5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiByLmRhdGEmJgooci5kYXRhPWQucGFyYW0oci5kYXRhLHIudHJhZGl0aW9uYWwpKSxFYihIYyxyLGIsUSksSylyZXR1cm4gUTtmb3IodCBpbihsPWQuZXZlbnQmJnIuZ2xvYmFsKSYmMD09ZC5hY3RpdmUrKyYmZC5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKSxyLnR5cGU9ci50eXBlLnRvVXBwZXJDYXNlKCksci5oYXNDb250ZW50PSFEZC50ZXN0KHIudHlwZSksZj1yLnVybC5yZXBsYWNlKEFkLCIiKSxyLmhhc0NvbnRlbnQ\/ci5kYXRhJiZyLnByb2Nlc3NEYXRhJiYwPT09KHIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmKHIuZGF0YT1yLmRhdGEucmVwbGFjZSh6ZCwiKyIpKToodz1yLnVybC5zbGljZShmLmxlbmd0aCksci5kYXRhJiYoci5wcm9jZXNzRGF0YXx8InN0cmluZyI9PXR5cGVvZiByLmRhdGEpJiYoZis9KGhjLnRlc3QoZik\/IiYiOiI\/Iikrci5kYXRhLGRlbGV0ZSByLmRhdGEpLCExPT09ci5jYWNoZSYmKGY9Zi5yZXBsYWNlKEJkLAoiJDEiKSx3PShoYy50ZXN0KGYpPyImIjoiPyIpKyJfPSIrRGMrKyArdyksci51cmw9Zit3KSxyLmlmTW9kaWZpZWQmJihkLmxhc3RNb2RpZmllZFtmXSYmUS5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsZC5sYXN0TW9kaWZpZWRbZl0pLGQuZXRhZ1tmXSYmUS5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixkLmV0YWdbZl0pKSwoci5kYXRhJiZyLmhhc0NvbnRlbnQmJiExIT09ci5jb250ZW50VHlwZXx8Yi5jb250ZW50VHlwZSkmJlEuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixyLmNvbnRlbnRUeXBlKSxRLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsci5kYXRhVHlwZXNbMF0mJnIuYWNjZXB0c1tyLmRhdGFUeXBlc1swXV0\/ci5hY2NlcHRzW3IuZGF0YVR5cGVzWzBdXSsoIioiIT09ci5kYXRhVHlwZXNbMF0\/IiwgIitJYysiOyBxPTAuMDEiOiIiKTpyLmFjY2VwdHNbIioiXSksci5oZWFkZXJzKVEuc2V0UmVxdWVzdEhlYWRlcih0LHIuaGVhZGVyc1t0XSk7CmlmKHIuYmVmb3JlU2VuZCYmKCExPT09ci5iZWZvcmVTZW5kLmNhbGwoeixRLHIpfHxLKSlyZXR1cm4gUS5hYm9ydCgpO2lmKFNhPSJhYm9ydCIsTy5hZGQoci5jb21wbGV0ZSksUS5kb25lKHIuc3VjY2VzcyksUS5mYWlsKHIuZXJyb3IpLGU9RWIoY2MscixiLFEpKXtpZihRLnJlYWR5U3RhdGU9MSxsJiZELnRyaWdnZXIoImFqYXhTZW5kIixbUSxyXSksSylyZXR1cm4gUTtyLmFzeW5jJiYwPHIudGltZW91dCYmKG09bi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7US5hYm9ydCgidGltZW91dCIpfSxyLnRpbWVvdXQpKTt0cnl7dmFyIEs9ITE7ZS5zZW5kKEdhLGMpfWNhdGNoKFMpe2lmKEspdGhyb3cgUztjKC0xLFMpfX1lbHNlIGMoLTEsIk5vIFRyYW5zcG9ydCIpO3JldHVybiBRfSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZC5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGQuZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pO2QuZWFjaChbImdldCIsCiJwb3N0Il0sZnVuY3Rpb24oYSxiKXtkW2JdPWZ1bmN0aW9uKGMsZSxmLGcpe3JldHVybiBNKGUpJiYoZz1nfHxmLGY9ZSxlPXZvaWQgMCksZC5hamF4KGQuZXh0ZW5kKHt1cmw6Yyx0eXBlOmIsZGF0YVR5cGU6ZyxkYXRhOmUsc3VjY2VzczpmfSxkLmlzUGxhaW5PYmplY3QoYykmJmMpKX19KTtkLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEuaGVhZGVycykiY29udGVudC10eXBlIj09PWIudG9Mb3dlckNhc2UoKSYmKGEuY29udGVudFR5cGU9YS5oZWFkZXJzW2JdfHwiIil9KTtkLl9ldmFsVXJsPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZC5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKCl7fX0sZGF0YUZpbHRlcjpmdW5jdGlvbihlKXtkLmdsb2JhbEV2YWwoZSxiLGMpfX0pfTtkLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXt2YXIgYjsKcmV0dXJuIHRoaXNbMF0mJihNKGEpJiYoYT1hLmNhbGwodGhpc1swXSkpLGI9ZChhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApLHRoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGM9dGhpcztjLmZpcnN0RWxlbWVudENoaWxkOyljPWMuZmlyc3RFbGVtZW50Q2hpbGQ7cmV0dXJuIGN9KS5hcHBlbmQodGhpcykpLHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24oYil7ZCh0aGlzKS53cmFwSW5uZXIoYS5jYWxsKHRoaXMsYikpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ZCh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1NKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7ZCh0aGlzKS53cmFwQWxsKGI\/YS5jYWxsKHRoaXMsCmMpOmEpfSl9LHVud3JhcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wYXJlbnQoYSkubm90KCJib2R5IikuZWFjaChmdW5jdGlvbigpe2QodGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLHRoaXN9fSk7ZC5leHByLnBzZXVkb3MuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiFkLmV4cHIucHNldWRvcy52aXNpYmxlKGEpfTtkLmV4cHIucHNldWRvcy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiEhKGEub2Zmc2V0V2lkdGh8fGEub2Zmc2V0SGVpZ2h0fHxhLmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX07ZC5hamF4U2V0dGluZ3MueGhyPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgbi5YTUxIdHRwUmVxdWVzdH1jYXRjaChhKXt9fTt2YXIgRmQ9ezA6MjAwLDEyMjM6MjA0fSxMYj1kLmFqYXhTZXR0aW5ncy54aHIoKTtOLmNvcnM9ISFMYiYmIndpdGhDcmVkZW50aWFscyJpbiBMYjtOLmFqYXg9TGI9ISFMYjtkLmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24oYSl7dmFyIGIsCmM7aWYoTi5jb3JzfHxMYiYmIWEuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSxmKXt2YXIgZyxoPWEueGhyKCk7aWYoaC5vcGVuKGEudHlwZSxhLnVybCxhLmFzeW5jLGEudXNlcm5hbWUsYS5wYXNzd29yZCksYS54aHJGaWVsZHMpZm9yKGcgaW4gYS54aHJGaWVsZHMpaFtnXT1hLnhockZpZWxkc1tnXTtmb3IoZyBpbiBhLm1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUmJmgub3ZlcnJpZGVNaW1lVHlwZShhLm1pbWVUeXBlKSxhLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSloLnNldFJlcXVlc3RIZWFkZXIoZyxlW2ddKTtiPWZ1bmN0aW9uKG0pe3JldHVybiBmdW5jdGlvbigpe2ImJihiPWM9aC5vbmxvYWQ9aC5vbmVycm9yPWgub25hYm9ydD1oLm9udGltZW91dD1oLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1tP2guYWJvcnQoKToiZXJyb3IiPT09bT8KIm51bWJlciIhPXR5cGVvZiBoLnN0YXR1cz9mKDAsImVycm9yIik6ZihoLnN0YXR1cyxoLnN0YXR1c1RleHQpOmYoRmRbaC5zdGF0dXNdfHxoLnN0YXR1cyxoLnN0YXR1c1RleHQsInRleHQiIT09KGgucmVzcG9uc2VUeXBlfHwidGV4dCIpfHwic3RyaW5nIiE9dHlwZW9mIGgucmVzcG9uc2VUZXh0P3tiaW5hcnk6aC5yZXNwb25zZX06e3RleHQ6aC5yZXNwb25zZVRleHR9LGguZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKX19O2gub25sb2FkPWIoKTtjPWgub25lcnJvcj1oLm9udGltZW91dD1iKCJlcnJvciIpO3ZvaWQgMCE9PWgub25hYm9ydD9oLm9uYWJvcnQ9YzpoLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PT1oLnJlYWR5U3RhdGUmJm4uc2V0VGltZW91dChmdW5jdGlvbigpe2ImJmMoKX0pfTtiPWIoImFib3J0Iik7dHJ5e2guc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCl9Y2F0Y2gobSl7aWYoYil0aHJvdyBtO319LGFib3J0OmZ1bmN0aW9uKCl7YiYmCmIoKX19fSk7ZC5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGEpe2EuY3Jvc3NEb21haW4mJihhLmNvbnRlbnRzLnNjcmlwdD0hMSl9KTtkLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihhKXtyZXR1cm4gZC5nbG9iYWxFdmFsKGEpLGF9fX0pO2QuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihhKXt2b2lkIDA9PT1hLmNhY2hlJiYoYS5jYWNoZT0hMSk7YS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIil9KTtkLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oYSl7dmFyIGIsYztpZihhLmNyb3NzRG9tYWlufHxhLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsCmYpe2I9ZCgiPHNjcmlwdD4iKS5hdHRyKGEuc2NyaXB0QXR0cnN8fHt9KS5wcm9wKHtjaGFyc2V0OmEuc2NyaXB0Q2hhcnNldCxzcmM6YS51cmx9KS5vbigibG9hZCBlcnJvciIsYz1mdW5jdGlvbihnKXtiLnJlbW92ZSgpO2M9bnVsbDtnJiZmKCJlcnJvciI9PT1nLnR5cGU\/NDA0OjIwMCxnLnR5cGUpfSk7TC5oZWFkLmFwcGVuZENoaWxkKGJbMF0pfSxhYm9ydDpmdW5jdGlvbigpe2MmJmMoKX19fSk7dmFyIEpjLEtjPVtdLGpjPS8oPSlcPyg\/PSZ8JCl8XD9cPy87ZC5hamF4U2V0dXAoe2pzb25wOiJjYWxsYmFjayIsanNvbnBDYWxsYmFjazpmdW5jdGlvbigpe3ZhciBhPUtjLnBvcCgpfHxkLmV4cGFuZG8rIl8iK0RjKys7cmV0dXJuIHRoaXNbYV09ITAsYX19KTtkLmFqYXhQcmVmaWx0ZXIoImpzb24ganNvbnAiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD0hMSE9PWEuanNvbnAmJihqYy50ZXN0KGEudXJsKT8idXJsIjoic3RyaW5nIj09dHlwZW9mIGEuZGF0YSYmMD09PShhLmNvbnRlbnRUeXBlfHwKIiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZqYy50ZXN0KGEuZGF0YSkmJiJkYXRhIik7aWYoaHx8Impzb25wIj09PWEuZGF0YVR5cGVzWzBdKXJldHVybiBlPWEuanNvbnBDYWxsYmFjaz1NKGEuanNvbnBDYWxsYmFjayk\/YS5qc29ucENhbGxiYWNrKCk6YS5qc29ucENhbGxiYWNrLGg\/YVtoXT1hW2hdLnJlcGxhY2UoamMsIiQxIitlKTohMSE9PWEuanNvbnAmJihhLnVybCs9KGhjLnRlc3QoYS51cmwpPyImIjoiPyIpK2EuanNvbnArIj0iK2UpLGEuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBnfHxkLmVycm9yKGUrIiB3YXMgbm90IGNhbGxlZCIpLGdbMF19LGEuZGF0YVR5cGVzWzBdPSJqc29uIixmPW5bZV0sbltlXT1mdW5jdGlvbigpe2c9YXJndW1lbnRzfSxjLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWY\/ZChuKS5yZW1vdmVQcm9wKGUpOm5bZV09ZjthW2VdJiYoYS5qc29ucENhbGxiYWNrPWIuanNvbnBDYWxsYmFjaywKS2MucHVzaChlKSk7ZyYmTShmKSYmZihnWzBdKTtnPWY9dm9pZCAwfSksInNjcmlwdCJ9KTtOLmNyZWF0ZUhUTUxEb2N1bWVudD0oKEpjPUwuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKS5ib2R5KS5pbm5lckhUTUw9Ijxmb3JtPjwvZm9ybT48Zm9ybT48L2Zvcm0+IiwyPT09SmMuY2hpbGROb2Rlcy5sZW5ndGgpO2QucGFyc2VIVE1MPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGE\/W106KCJib29sZWFuIj09dHlwZW9mIGImJihjPWIsYj0hMSksYnx8KE4uY3JlYXRlSFRNTERvY3VtZW50PygoZT0oYj1MLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikpLmNyZWF0ZUVsZW1lbnQoImJhc2UiKSkuaHJlZj1MLmxvY2F0aW9uLmhyZWYsYi5oZWFkLmFwcGVuZENoaWxkKGUpKTpiPUwpLGc9IWMmJltdLChmPXljLmV4ZWMoYSkpP1tiLmNyZWF0ZUVsZW1lbnQoZlsxXSldOihmPVJiKFthXSxiLGcpLGcmJmcubGVuZ3RoJiZkKGcpLnJlbW92ZSgpLApkLm1lcmdlKFtdLGYuY2hpbGROb2RlcykpKTt2YXIgZSxmLGd9O2QuZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9dGhpcyxtPWEuaW5kZXhPZigiICIpO3JldHVybi0xPG0mJihlPUMoYS5zbGljZShtKSksYT1hLnNsaWNlKDAsbSkpLE0oYik\/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLDA8aC5sZW5ndGgmJmQuYWpheCh7dXJsOmEsdHlwZTpmfHwiR0VUIixkYXRhVHlwZToiaHRtbCIsZGF0YTpifSkuZG9uZShmdW5jdGlvbihsKXtnPWFyZ3VtZW50cztoLmh0bWwoZT9kKCI8ZGl2PiIpLmFwcGVuZChkLnBhcnNlSFRNTChsKSkuZmluZChlKTpsKX0pLmFsd2F5cyhjJiZmdW5jdGlvbihsLHQpe2guZWFjaChmdW5jdGlvbigpe2MuYXBwbHkodGhpcyxnfHxbbC5yZXNwb25zZVRleHQsdCxsXSl9KX0pLHRoaXN9O2QuZXhwci5wc2V1ZG9zLmFuaW1hdGVkPWZ1bmN0aW9uKGEpe3JldHVybiBkLmdyZXAoZC50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJuIGE9PT0KYi5lbGVtfSkubGVuZ3RofTtkLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD1kLmNzcyhhLCJwb3NpdGlvbiIpLG09ZChhKSxsPXt9OyJzdGF0aWMiPT09aCYmKGEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIik7dmFyIHQ9bS5vZmZzZXQoKSx3PWQuY3NzKGEsInRvcCIpLHI9ZC5jc3MoYSwibGVmdCIpOygiYWJzb2x1dGUiPT09aHx8ImZpeGVkIj09PWgpJiYtMTwodytyKS5pbmRleE9mKCJhdXRvIik\/KGc9KGU9bS5wb3NpdGlvbigpKS50b3AsZj1lLmxlZnQpOihnPXBhcnNlRmxvYXQodyl8fDAsZj1wYXJzZUZsb2F0KHIpfHwwKTtNKGIpJiYoYj1iLmNhbGwoYSxjLGQuZXh0ZW5kKHt9LHQpKSk7bnVsbCE9Yi50b3AmJihsLnRvcD1iLnRvcC10LnRvcCtnKTtudWxsIT1iLmxlZnQmJihsLmxlZnQ9Yi5sZWZ0LXQubGVmdCtmKTsidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxsKTptLmNzcyhsKX19O2QuZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09CmE\/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oZil7ZC5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsYSxmKX0pO3ZhciBiLGMsZT10aGlzWzBdO3JldHVybiBlP2UuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGg\/KGI9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPWUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldyx7dG9wOmIudG9wK2MucGFnZVlPZmZzZXQsbGVmdDpiLmxlZnQrYy5wYWdlWE9mZnNldH0pOnt0b3A6MCxsZWZ0OjB9OnZvaWQgMH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiPXRoaXNbMF0sYz17dG9wOjAsbGVmdDowfTtpZigiZml4ZWQiPT09ZC5jc3MoYiwicG9zaXRpb24iKSl2YXIgZT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7ZT10aGlzLm9mZnNldCgpO3ZhciBmPWIub3duZXJEb2N1bWVudDtmb3IoYT1iLm9mZnNldFBhcmVudHx8Zi5kb2N1bWVudEVsZW1lbnQ7YSYmKGE9PT1mLmJvZHl8fGE9PT1mLmRvY3VtZW50RWxlbWVudCkmJgoic3RhdGljIj09PWQuY3NzKGEsInBvc2l0aW9uIik7KWE9YS5wYXJlbnROb2RlO2EmJmEhPT1iJiYxPT09YS5ub2RlVHlwZSYmKChjPWQoYSkub2Zmc2V0KCkpLnRvcCs9ZC5jc3MoYSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxjLmxlZnQrPWQuY3NzKGEsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOmUudG9wLWMudG9wLWQuY3NzKGIsIm1hcmdpblRvcCIsITApLGxlZnQ6ZS5sZWZ0LWMubGVmdC1kLmNzcyhiLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMub2Zmc2V0UGFyZW50O2EmJiJzdGF0aWMiPT09ZC5jc3MoYSwicG9zaXRpb24iKTspYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gYXx8amJ9KX19KTtkLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24oYSxiKXt2YXIgYz0icGFnZVlPZmZzZXQiPT09CmI7ZC5mblthXT1mdW5jdGlvbihlKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihmLGcsaCl7dmFyIG07aWYoa2IoZik\/bT1mOjk9PT1mLm5vZGVUeXBlJiYobT1mLmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1oKXJldHVybiBtP21bYl06ZltnXTttP20uc2Nyb2xsVG8oYz9tLnBhZ2VYT2Zmc2V0OmgsYz9oOm0ucGFnZVlPZmZzZXQpOmZbZ109aH0sYSxlLGFyZ3VtZW50cy5sZW5ndGgpfX0pO2QuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihhLGIpe2QuY3NzSG9va3NbYl09VmIoTi5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGMsZSl7aWYoZSlyZXR1cm4gZT1LYShjLGIpLGJjLnRlc3QoZSk\/ZChjKS5wb3NpdGlvbigpW2JdKyJweCI6ZX0pfSk7ZC5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24oYSxiKXtkLmVhY2goe3BhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6YiwiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZSl7ZC5mbltlXT1mdW5jdGlvbihmLApnKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoJiYoY3x8ImJvb2xlYW4iIT10eXBlb2YgZiksbT1jfHwoITA9PT1mfHwhMD09PWc\/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGwsdCx3KXt2YXIgcjtyZXR1cm4ga2IobCk\/MD09PWUuaW5kZXhPZigib3V0ZXIiKT9sWyJpbm5lciIrYV06bC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWwubm9kZVR5cGU\/KHI9bC5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgobC5ib2R5WyJzY3JvbGwiK2FdLHJbInNjcm9sbCIrYV0sbC5ib2R5WyJvZmZzZXQiK2FdLHJbIm9mZnNldCIrYV0sclsiY2xpZW50IithXSkpOnZvaWQgMD09PXc\/ZC5jc3MobCx0LG0pOmQuc3R5bGUobCx0LHcsbSl9LGIsaD9mOnZvaWQgMCxoKX19KX0pO2QuZWFjaCgiYWpheFN0YXJ0IGFqYXhTdG9wIGFqYXhDb21wbGV0ZSBhamF4RXJyb3IgYWpheFN1Y2Nlc3MgYWpheFNlbmQiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSwKYil7ZC5mbltiXT1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5vbihiLGMpfX0pO2QuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5vbihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub2ZmKGEsbnVsbCxiKX0sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIHRoaXMub24oYixhLGMsZSl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihhLCIqKiIpOnRoaXMub2ZmKGIsYXx8IioqIixjKX0saG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7ZC5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLApmdW5jdGlvbihhLGIpe2QuZm5bYl09ZnVuY3Rpb24oYyxlKXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24oYixudWxsLGMsZSk6dGhpcy50cmlnZ2VyKGIpfX0pO3ZhciBHZD0vXltcc1x1RkVGRlx4QTBdK3woW15cc1x1RkVGRlx4QTBdKVtcc1x1RkVGRlx4QTBdKyQvZztkLnByb3h5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmKGM9YVtiXSxiPWEsYT1jKSxNKGEpKXJldHVybiBlPXlhLmNhbGwoYXJndW1lbnRzLDIpLChmPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYnx8dGhpcyxlLmNvbmNhdCh5YS5jYWxsKGFyZ3VtZW50cykpKX0pLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8ZC5ndWlkKyssZn07ZC5ob2xkUmVhZHk9ZnVuY3Rpb24oYSl7YT9kLnJlYWR5V2FpdCsrOmQucmVhZHkoITApfTtkLmlzQXJyYXk9QXJyYXkuaXNBcnJheTtkLnBhcnNlSlNPTj1KU09OLnBhcnNlO2Qubm9kZU5hbWU9WDtkLmlzRnVuY3Rpb249TTtkLmlzV2luZG93PQprYjtkLmNhbWVsQ2FzZT1CYTtkLnR5cGU9VTtkLm5vdz1EYXRlLm5vdztkLmlzTnVtZXJpYz1mdW5jdGlvbihhKXt2YXIgYj1kLnR5cGUoYSk7cmV0dXJuKCJudW1iZXIiPT09Ynx8InN0cmluZyI9PT1iKSYmIWlzTmFOKGEtcGFyc2VGbG9hdChhKSl9O2QudHJpbT1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT8iIjooYSsiIikucmVwbGFjZShHZCwiJDEiKX07ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGR9KTt2YXIgSGQ9bi5qUXVlcnksSWQ9bi4kO3JldHVybiBkLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYSl7cmV0dXJuIG4uJD09PWQmJihuLiQ9SWQpLGEmJm4ualF1ZXJ5PT09ZCYmKG4ualF1ZXJ5PUhkKSxkfSwidW5kZWZpbmVkIj09dHlwZW9mIGRhJiYobi5qUXVlcnk9bi4kPWQpLGR9KTt2YXIgbWF0Y2hlZCxicm93c2VyOwpqUXVlcnkudWFNYXRjaD1mdW5jdGlvbihuKXtuPW4udG9Mb3dlckNhc2UoKTtuPS8oY2hyb21lKVsgXC9dKFtcdy5dKykvLmV4ZWMobil8fC8od2Via2l0KVsgXC9dKFtcdy5dKykvLmV4ZWMobil8fC8ob3BlcmEpKD86Lip2ZXJzaW9ufClbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKG1zaWUpIChbXHcuXSspLy5leGVjKG4pfHwwPm4uaW5kZXhPZigiY29tcGF0aWJsZSIpJiYvKG1vemlsbGEpKD86Lio\/IHJ2OihbXHcuXSspfCkvLmV4ZWMobil8fFtdO3JldHVybnticm93c2VyOm5bMV18fCIiLHZlcnNpb246blsyXXx8IjAifX07bWF0Y2hlZD1qUXVlcnkudWFNYXRjaChuYXZpZ2F0b3IudXNlckFnZW50KTticm93c2VyPXt9O21hdGNoZWQuYnJvd3NlciYmKGJyb3dzZXJbbWF0Y2hlZC5icm93c2VyXT0hMCxicm93c2VyLnZlcnNpb249bWF0Y2hlZC52ZXJzaW9uKTticm93c2VyLmNocm9tZT9icm93c2VyLndlYmtpdD0hMDpicm93c2VyLndlYmtpdCYmKGJyb3dzZXIuc2FmYXJpPSEwKTsKalF1ZXJ5LmJyb3dzZXI9YnJvd3NlcjsKKGZ1bmN0aW9uKG4peyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLGZ1bmN0aW9uKGRhKXtyZXR1cm4gbihkYSx3aW5kb3cpfSk6Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1uKHJlcXVpcmUoImpxdWVyeSIpLHdpbmRvdyk6bihqUXVlcnksd2luZG93KX0pKGZ1bmN0aW9uKG4sZGEpe2Z1bmN0aW9uIHdhKHUpe2E6e3ZhciB4PS9eKFxkKylcLihcZCspXC4oXGQrKS8sQz14LmV4ZWMobi5mbi5qcXVlcnkpfHxbXTt4PXguZXhlYyh1KXx8W107Zm9yKHU9MTszPj11O3UrKyl7aWYoK0NbdV0+K3hbdV0pe0M9MTticmVhayBhfWlmKCtDW3VdPCt4W3VdKXtDPS0xO2JyZWFrIGF9fUM9MH1yZXR1cm4gMDw9Q31mdW5jdGlvbiBVKHUseCl7dmFyIEM9ZGEuY29uc29sZTshbi5taWdyYXRlSXNQYXRjaEVuYWJsZWQodSl8fG4ubWlncmF0ZURlZHVwbGljYXRlV2FybmluZ3MmJm1iW3hdfHwKKG1iW3hdPSEwLG4ubWlncmF0ZVdhcm5pbmdzLnB1c2goeCsiIFsiK3UrIl0iKSxDJiZDLndhcm4mJiFuLm1pZ3JhdGVNdXRlJiYoQy53YXJuKCJKUU1JR1JBVEU6ICIreCksbi5taWdyYXRlVHJhY2UmJkMudHJhY2UmJkMudHJhY2UoKSkpfWZ1bmN0aW9uIGViKHUseCxDLEgsUCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHUseCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7VShILFApO3JldHVybiBDfSxzZXQ6ZnVuY3Rpb24oZWEpe1UoSCxQKTtDPWVhfX0pfWZ1bmN0aW9uIFgodSx4LEMsSCxQKXt2YXIgZWEsUWE9dVt4XTt1W3hdPWZ1bmN0aW9uKCl7UCYmVShILFApO2VhPW4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKEgpP0M6UWF8fG4ubm9vcDtyZXR1cm4gZWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBiYSh1LHgsQyxILFApe2lmKCFQKXRocm93IEVycm9yKCJObyB3YXJuaW5nIG1lc3NhZ2UgcHJvdmlkZWQiKTtyZXR1cm4gWCh1LAp4LEMsSCxQKX1mdW5jdGlvbiBqYSh1LHgsQyxIKXtyZXR1cm4gWCh1LHgsQyxIKX1mdW5jdGlvbiBsYih1KXtyZXR1cm4gdS5yZXBsYWNlKC8tKFthLXpdKS9nLGZ1bmN0aW9uKHgsQyl7cmV0dXJuIEMudG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIFlhKHUpe3JldHVybiBwYi50ZXN0KHUpJiZTYi50ZXN0KHVbMF0udG9VcHBlckNhc2UoKSt1LnNsaWNlKDEpKX1uLm1pZ3JhdGVWZXJzaW9uPSIzLjQuMSI7dmFyIFphPU9iamVjdC5jcmVhdGUobnVsbCk7bi5taWdyYXRlRGlzYWJsZVBhdGNoZXM9ZnVuY3Rpb24oKXt2YXIgdTtmb3IodT0wO3U8YXJndW1lbnRzLmxlbmd0aDt1KyspWmFbYXJndW1lbnRzW3VdXT0hMH07bi5taWdyYXRlRW5hYmxlUGF0Y2hlcz1mdW5jdGlvbigpe3ZhciB1O2Zvcih1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKylkZWxldGUgWmFbYXJndW1lbnRzW3VdXX07bi5taWdyYXRlSXNQYXRjaEVuYWJsZWQ9ZnVuY3Rpb24odSl7cmV0dXJuIVphW3VdfTtkYS5jb25zb2xlJiYKZGEuY29uc29sZS5sb2cmJihuJiZ3YSgiMy4wLjAiKSYmIXdhKCI1LjAuMCIpfHxkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBqUXVlcnkgMy54LTQueCBSRVFVSVJFRCIpLG4ubWlncmF0ZVdhcm5pbmdzJiZkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBNaWdyYXRlIHBsdWdpbiBsb2FkZWQgbXVsdGlwbGUgdGltZXMiKSxkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBNaWdyYXRlIGlzIGluc3RhbGxlZCIrKG4ubWlncmF0ZU11dGU\/IiI6IiB3aXRoIGxvZ2dpbmcgYWN0aXZlIikrIiwgdmVyc2lvbiAiK24ubWlncmF0ZVZlcnNpb24pKTt2YXIgbWI9e307bi5taWdyYXRlRGVkdXBsaWNhdGVXYXJuaW5ncz0hMDtuLm1pZ3JhdGVXYXJuaW5ncz1bXTt2b2lkIDA9PT1uLm1pZ3JhdGVUcmFjZSYmKG4ubWlncmF0ZVRyYWNlPSEwKTtuLm1pZ3JhdGVSZXNldD1mdW5jdGlvbigpe21iPXt9O24ubWlncmF0ZVdhcm5pbmdzLmxlbmd0aD0wfTsiQmFja0NvbXBhdCI9PT1kYS5kb2N1bWVudC5jb21wYXRNb2RlJiYKVSgicXVpcmtzIiwialF1ZXJ5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggUXVpcmtzIE1vZGUiKTt2YXIgT2EsTmI9e30sQmE9bi5mbi5pbml0LEphPW4uZmluZCxPYj0vXFsoXHMqWy1cd10rXHMqKShbfnxeJCpdPz0pXHMqKFstXHcjXSo\/I1stXHcjXSopXHMqXF0vLFBiPS9cWyhccypbLVx3XStccyopKFt+fF4kKl0\/PSlccyooWy1cdyNdKj8jWy1cdyNdKilccypcXS9nLCRhPS9eW1xzXHVGRUZGXHhBMF0rfChbXlxzXHVGRUZGXHhBMF0pW1xzXHVGRUZGXHhBMF0rJC9nO2phKG4uZm4sImluaXQiLGZ1bmN0aW9uKHUpe3ZhciB4PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7bi5taWdyYXRlSXNQYXRjaEVuYWJsZWQoInNlbGVjdG9yLWVtcHR5LWlkIikmJiJzdHJpbmciPT09dHlwZW9mIHUmJiIjIj09PXUmJihVKCJzZWxlY3Rvci1lbXB0eS1pZCIsImpRdWVyeSggJyMnICkgaXMgbm90IGEgdmFsaWQgc2VsZWN0b3IiKSx4WzBdPVtdKTtyZXR1cm4gQmEuYXBwbHkodGhpcywKeCl9LCJzZWxlY3Rvci1lbXB0eS1pZCIpO24uZm4uaW5pdC5wcm90b3R5cGU9bi5mbjtqYShuLCJmaW5kIixmdW5jdGlvbih1KXt2YXIgeD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKCJzdHJpbmciPT09dHlwZW9mIHUmJk9iLnRlc3QodSkpdHJ5e2RhLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodSl9Y2F0Y2goQyl7dT11LnJlcGxhY2UoUGIsZnVuY3Rpb24oSCxQLGVhLFFhKXtyZXR1cm4iWyIrUCtlYSsnIicrUWErJyJdJ30pO3RyeXtkYS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHUpLFUoInNlbGVjdG9yLWhhc2giLCJBdHRyaWJ1dGUgc2VsZWN0b3Igd2l0aCAnIycgbXVzdCBiZSBxdW90ZWQ6ICIreFswXSkseFswXT11fWNhdGNoKEgpe1UoInNlbGVjdG9yLWhhc2giLCJBdHRyaWJ1dGUgc2VsZWN0b3Igd2l0aCAnIycgd2FzIG5vdCBmaXhlZDogIit4WzBdKX19cmV0dXJuIEphLmFwcGx5KHRoaXMseCl9LCJzZWxlY3Rvci1oYXNoIik7Zm9yKE9hIGluIEphKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChKYSwKT2EpJiYobi5maW5kW09hXT1KYVtPYV0pO2JhKG4uZm4sInNpemUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSwic2l6ZSIsImpRdWVyeS5mbi5zaXplKCkgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZDsgdXNlIHRoZSAubGVuZ3RoIHByb3BlcnR5Iik7YmEobiwicGFyc2VKU09OIixmdW5jdGlvbigpe3JldHVybiBKU09OLnBhcnNlLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sInBhcnNlSlNPTiIsImpRdWVyeS5wYXJzZUpTT04gaXMgZGVwcmVjYXRlZDsgdXNlIEpTT04ucGFyc2UiKTtiYShuLCJob2xkUmVhZHkiLG4uaG9sZFJlYWR5LCJob2xkUmVhZHkiLCJqUXVlcnkuaG9sZFJlYWR5IGlzIGRlcHJlY2F0ZWQiKTtiYShuLCJ1bmlxdWUiLG4udW5pcXVlU29ydCwidW5pcXVlIiwialF1ZXJ5LnVuaXF1ZSBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LnVuaXF1ZVNvcnQiKTtlYihuLmV4cHIsImZpbHRlcnMiLG4uZXhwci5wc2V1ZG9zLCJleHByLXByZS1wc2V1ZG9zIiwialF1ZXJ5LmV4cHIuZmlsdGVycyBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LmV4cHIucHNldWRvcyIpOwplYihuLmV4cHIsIjoiLG4uZXhwci5wc2V1ZG9zLCJleHByLXByZS1wc2V1ZG9zIiwialF1ZXJ5LmV4cHJbJzonXSBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LmV4cHIucHNldWRvcyIpO3dhKCIzLjEuMSIpJiZiYShuLCJ0cmltIixmdW5jdGlvbih1KXtyZXR1cm4gbnVsbD09dT8iIjoodSsiIikucmVwbGFjZSgkYSwiJDEiKX0sInRyaW0iLCJqUXVlcnkudHJpbSBpcyBkZXByZWNhdGVkOyB1c2UgU3RyaW5nLnByb3RvdHlwZS50cmltIik7d2EoIjMuMi4wIikmJihiYShuLCJub2RlTmFtZSIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdS5ub2RlTmFtZSYmdS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09eC50b0xvd2VyQ2FzZSgpfSwibm9kZU5hbWUiLCJqUXVlcnkubm9kZU5hbWUgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzQXJyYXkiLEFycmF5LmlzQXJyYXksImlzQXJyYXkiLCJqUXVlcnkuaXNBcnJheSBpcyBkZXByZWNhdGVkOyB1c2UgQXJyYXkuaXNBcnJheSIpKTt3YSgiMy4zLjAiKSYmCihiYShuLCJpc051bWVyaWMiLGZ1bmN0aW9uKHUpe3ZhciB4PXR5cGVvZiB1O3JldHVybigibnVtYmVyIj09PXh8fCJzdHJpbmciPT09eCkmJiFpc05hTih1LXBhcnNlRmxvYXQodSkpfSwiaXNOdW1lcmljIiwialF1ZXJ5LmlzTnVtZXJpYygpIGlzIGRlcHJlY2F0ZWQiKSxuLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKHUseCl7TmJbIltvYmplY3QgIit4KyJdIl09eC50b0xvd2VyQ2FzZSgpfSksYmEobiwidHlwZSIsZnVuY3Rpb24odSl7cmV0dXJuIG51bGw9PXU\/dSsiIjoib2JqZWN0Ij09PXR5cGVvZiB1fHwiZnVuY3Rpb24iPT09dHlwZW9mIHU\/TmJbT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHUpXXx8Im9iamVjdCI6dHlwZW9mIHV9LCJ0eXBlIiwialF1ZXJ5LnR5cGUgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzRnVuY3Rpb24iLGZ1bmN0aW9uKHUpe3JldHVybiJmdW5jdGlvbiI9PT0KdHlwZW9mIHV9LCJpc0Z1bmN0aW9uIiwialF1ZXJ5LmlzRnVuY3Rpb24oKSBpcyBkZXByZWNhdGVkIiksYmEobiwiaXNXaW5kb3ciLGZ1bmN0aW9uKHUpe3JldHVybiBudWxsIT11JiZ1PT09dS53aW5kb3d9LCJpc1dpbmRvdyIsImpRdWVyeS5pc1dpbmRvdygpIGlzIGRlcHJlY2F0ZWQiKSk7aWYobi5hamF4KXt2YXIgc2E9bi5hamF4LG5iPS8oPSlcPyg\/PSZ8JCl8XD9cPy87amEobiwiYWpheCIsZnVuY3Rpb24oKXt2YXIgdT1zYS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dS5wcm9taXNlJiYoYmEodSwic3VjY2VzcyIsdS5kb25lLCJqcVhIUi1tZXRob2RzIiwialFYSFIuc3VjY2VzcyBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIiksYmEodSwiZXJyb3IiLHUuZmFpbCwianFYSFItbWV0aG9kcyIsImpRWEhSLmVycm9yIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKSxiYSh1LCJjb21wbGV0ZSIsdS5hbHdheXMsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5jb21wbGV0ZSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIikpOwpyZXR1cm4gdX0sImpxWEhSLW1ldGhvZHMiKTt3YSgiNC4wLjAiKXx8bi5hamF4UHJlZmlsdGVyKCIranNvbiIsZnVuY3Rpb24odSl7ITEhPT11Lmpzb25wJiYobmIudGVzdCh1LnVybCl8fCJzdHJpbmciPT09dHlwZW9mIHUuZGF0YSYmMD09PSh1LmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJm5iLnRlc3QodS5kYXRhKSkmJlUoImpzb25wLXByb21vdGlvbiIsIkpTT04tdG8tSlNPTlAgYXV0by1wcm9tb3Rpb24gaXMgZGVwcmVjYXRlZCIpfSl9dmFyIFJiPW4uZm4ucmVtb3ZlQXR0cixhYj1uLmZuLnRvZ2dsZUNsYXNzLGJiPS9cUysvZztqYShuLmZuLCJyZW1vdmVBdHRyIixmdW5jdGlvbih1KXt2YXIgeD10aGlzLEM9ITE7bi5lYWNoKHUubWF0Y2goYmIpLGZ1bmN0aW9uKEgsUCl7bi5leHByLm1hdGNoLmJvb2wudGVzdChQKSYmeC5lYWNoKGZ1bmN0aW9uKCl7aWYoITEhPT1uKHRoaXMpLnByb3AoUCkpcmV0dXJuIEM9CiEwLCExfSk7QyYmKFUoInJlbW92ZUF0dHItYm9vbCIsImpRdWVyeS5mbi5yZW1vdmVBdHRyIG5vIGxvbmdlciBzZXRzIGJvb2xlYW4gcHJvcGVydGllczogIitQKSx4LnByb3AoUCwhMSkpfSk7cmV0dXJuIFJiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sInJlbW92ZUF0dHItYm9vbCIpO2phKG4uZm4sInRvZ2dsZUNsYXNzIixmdW5jdGlvbih1KXtpZih2b2lkIDAhPT11JiYiYm9vbGVhbiIhPT10eXBlb2YgdSlyZXR1cm4gYWIuYXBwbHkodGhpcyxhcmd1bWVudHMpO1UoInRvZ2dsZUNsYXNzLWJvb2wiLCJqUXVlcnkuZm4udG9nZ2xlQ2xhc3MoIGJvb2xlYW4gKSBpcyBkZXByZWNhdGVkIik7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB4PXRoaXMuZ2V0QXR0cmlidXRlJiZ0aGlzLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiI7eCYmbi5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHgpO3RoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHh8fAohMT09PXU\/IiI6bi5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LCJ0b2dnbGVDbGFzcy1ib29sIik7dmFyIGZiPSExLHBiPS9eW2Etel0vLFNiPS9eKD86Qm9yZGVyKD86VG9wfFJpZ2h0fEJvdHRvbXxMZWZ0KT8oPzpXaWR0aHwpfCg\/Ok1hcmdpbnxQYWRkaW5nKT8oPzpUb3B8UmlnaHR8Qm90dG9tfExlZnQpP3woPzpNaW58TWF4KT8oPzpXaWR0aHxIZWlnaHQpKSQvO24uc3dhcCYmbi5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiLCJyZWxpYWJsZU1hcmdpblJpZ2h0Il0sZnVuY3Rpb24odSx4KXt2YXIgQz1uLmNzc0hvb2tzW3hdJiZuLmNzc0hvb2tzW3hdLmdldDtDJiYobi5jc3NIb29rc1t4XS5nZXQ9ZnVuY3Rpb24oKXtmYj0hMDt2YXIgSD1DLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtmYj0hMTtyZXR1cm4gSH0pfSk7amEobiwic3dhcCIsZnVuY3Rpb24odSx4LEMsSCl7dmFyIFAsZWE9e307ZmJ8fFUoInN3YXAiLCJqUXVlcnkuc3dhcCgpIGlzIHVuZG9jdW1lbnRlZCBhbmQgZGVwcmVjYXRlZCIpOwpmb3IoUCBpbiB4KWVhW1BdPXUuc3R5bGVbUF0sdS5zdHlsZVtQXT14W1BdO0M9Qy5hcHBseSh1LEh8fFtdKTtmb3IoUCBpbiB4KXUuc3R5bGVbUF09ZWFbUF07cmV0dXJuIEN9LCJzd2FwIik7d2EoIjMuNC4wIikmJiJ1bmRlZmluZWQiIT09dHlwZW9mIFByb3h5JiYobi5jc3NQcm9wcz1uZXcgUHJveHkobi5jc3NQcm9wc3x8e30se3NldDpmdW5jdGlvbigpe1UoImNzc1Byb3BzIiwialF1ZXJ5LmNzc1Byb3BzIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pKTtpZih3YSgiNC4wLjAiKSl7dmFyIHFiPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsZ3JpZEFyZWE6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TdGFydDohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsCmdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9O24uY3NzTnVtYmVyPSJ1bmRlZmluZWQiIT09dHlwZW9mIFByb3h5P25ldyBQcm94eShxYix7Z2V0OmZ1bmN0aW9uKCl7VSgiY3NzLW51bWJlciIsImpRdWVyeS5jc3NOdW1iZXIgaXMgZGVwcmVjYXRlZCIpO3JldHVybiBSZWZsZWN0LmdldC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHNldDpmdW5jdGlvbigpe1UoImNzcy1udW1iZXIiLCJqUXVlcnkuY3NzTnVtYmVyIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pOnFifWVsc2UgcWI9bi5jc3NOdW1iZXI7dmFyICRiPW4uZm4uY3NzO2phKG4uZm4sImNzcyIsZnVuY3Rpb24odSx4KXt2YXIgQz10aGlzO2lmKHUmJiJvYmplY3QiPT09dHlwZW9mIHUmJiFBcnJheS5pc0FycmF5KHUpKXJldHVybiBuLmVhY2godSxmdW5jdGlvbihQLAplYSl7bi5mbi5jc3MuY2FsbChDLFAsZWEpfSksdGhpcztpZigibnVtYmVyIj09PXR5cGVvZiB4KXt2YXIgSD1sYih1KTtZYShIKXx8cWJbSF18fFUoImNzcy1udW1iZXIiLCdOdW1iZXItdHlwZWQgdmFsdWVzIGFyZSBkZXByZWNhdGVkIGZvciBqUXVlcnkuZm4uY3NzKCAiJyt1KyciLCB2YWx1ZSApJyl9cmV0dXJuICRiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImNzcy1udW1iZXIiKTt2YXIgZ2I9bi5kYXRhO2phKG4sImRhdGEiLGZ1bmN0aW9uKHUseCxDKXt2YXIgSDtpZih4JiYib2JqZWN0Ij09PXR5cGVvZiB4JiYyPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIFA9bi5oYXNEYXRhKHUpJiZnYi5jYWxsKHRoaXMsdSksZWE9e307Zm9yKEggaW4geClIIT09bGIoSCk\/KFUoImRhdGEtY2FtZWxDYXNlIiwialF1ZXJ5LmRhdGEoKSBhbHdheXMgc2V0cy9nZXRzIGNhbWVsQ2FzZWQgbmFtZXM6ICIrSCksUFtIXT14W0hdKTplYVtIXT14W0hdO2diLmNhbGwodGhpcyx1LGVhKTtyZXR1cm4geH1yZXR1cm4geCYmCiJzdHJpbmciPT09dHlwZW9mIHgmJnghPT1sYih4KSYmKFA9bi5oYXNEYXRhKHUpJiZnYi5jYWxsKHRoaXMsdSkpJiZ4IGluIFA\/KFUoImRhdGEtY2FtZWxDYXNlIiwialF1ZXJ5LmRhdGEoKSBhbHdheXMgc2V0cy9nZXRzIGNhbWVsQ2FzZWQgbmFtZXM6ICIreCksMjxhcmd1bWVudHMubGVuZ3RoJiYoUFt4XT1DKSxQW3hdKTpnYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJkYXRhLWNhbWVsQ2FzZSIpO2lmKG4uZngpe3ZhciBjYj1uLlR3ZWVuLnByb3RvdHlwZS5ydW4sVGI9ZnVuY3Rpb24odSl7cmV0dXJuIHV9O2phKG4uVHdlZW4ucHJvdG90eXBlLCJydW4iLGZ1bmN0aW9uKCl7MTxuLmVhc2luZ1t0aGlzLmVhc2luZ10ubGVuZ3RoJiYoVSgiZWFzaW5nLW9uZS1hcmciLCInalF1ZXJ5LmVhc2luZy4iK3RoaXMuZWFzaW5nLnRvU3RyaW5nKCkrIicgc2hvdWxkIHVzZSBvbmx5IG9uZSBhcmd1bWVudCIpLG4uZWFzaW5nW3RoaXMuZWFzaW5nXT1UYik7Y2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwKImVhc2luZy1vbmUtYXJnIik7dmFyIEthPW4uZnguaW50ZXJ2YWw7ZGEucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobi5meCwiaW50ZXJ2YWwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtkYS5kb2N1bWVudC5oaWRkZW58fFUoImZ4LWludGVydmFsIiwialF1ZXJ5LmZ4LmludGVydmFsIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gbi5taWdyYXRlSXNQYXRjaEVuYWJsZWQoImZ4LWludGVydmFsIik\/dm9pZCAwPT09S2E\/MTM6S2E6S2F9LHNldDpmdW5jdGlvbih1KXtVKCJmeC1pbnRlcnZhbCIsImpRdWVyeS5meC5pbnRlcnZhbCBpcyBkZXByZWNhdGVkIik7S2E9dX19KX12YXIgVmI9bi5mbi5sb2FkLEFiPW4uZXZlbnQuYWRkLFdiPW4uZXZlbnQuZml4O24uZXZlbnQucHJvcHM9W107bi5ldmVudC5maXhIb29rcz17fTtlYihuLmV2ZW50LnByb3BzLCJjb25jYXQiLG4uZXZlbnQucHJvcHMuY29uY2F0LCJldmVudC1vbGQtcGF0Y2giLAoialF1ZXJ5LmV2ZW50LnByb3BzLmNvbmNhdCgpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKTtqYShuLmV2ZW50LCJmaXgiLGZ1bmN0aW9uKHUpe3ZhciB4PXUudHlwZSxDPXRoaXMuZml4SG9va3NbeF0sSD1uLmV2ZW50LnByb3BzO2lmKEgubGVuZ3RoKWZvcihVKCJldmVudC1vbGQtcGF0Y2giLCJqUXVlcnkuZXZlbnQucHJvcHMgYXJlIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ6ICIrSC5qb2luKCkpO0gubGVuZ3RoOyluLmV2ZW50LmFkZFByb3AoSC5wb3AoKSk7aWYoQyYmIUMuX21pZ3JhdGVkXyYmKEMuX21pZ3JhdGVkXz0hMCxVKCJldmVudC1vbGQtcGF0Y2giLCJqUXVlcnkuZXZlbnQuZml4SG9va3MgYXJlIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ6ICIreCksKEg9Qy5wcm9wcykmJkgubGVuZ3RoKSlmb3IoO0gubGVuZ3RoOyluLmV2ZW50LmFkZFByb3AoSC5wb3AoKSk7eD1XYi5jYWxsKHRoaXMsdSk7cmV0dXJuIEMmJkMuZmlsdGVyP0MuZmlsdGVyKHgsdSk6eH0sImV2ZW50LW9sZC1wYXRjaCIpOwpqYShuLmV2ZW50LCJhZGQiLGZ1bmN0aW9uKHUseCl7dT09PWRhJiYibG9hZCI9PT14JiYiY29tcGxldGUiPT09ZGEuZG9jdW1lbnQucmVhZHlTdGF0ZSYmVSgibG9hZC1hZnRlci1ldmVudCIsImpRdWVyeSh3aW5kb3cpLm9uKCdsb2FkJy4uLikgY2FsbGVkIGFmdGVyIGxvYWQgZXZlbnQgb2NjdXJyZWQiKTtyZXR1cm4gQWIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwibG9hZC1hZnRlci1ldmVudCIpO24uZWFjaChbImxvYWQiLCJ1bmxvYWQiLCJlcnJvciJdLGZ1bmN0aW9uKHUseCl7amEobi5mbix4LGZ1bmN0aW9uKCl7dmFyIEM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO2lmKCJsb2FkIj09PXgmJiJzdHJpbmciPT09dHlwZW9mIENbMF0pcmV0dXJuIFZiLmFwcGx5KHRoaXMsQyk7VSgic2hvcnRoYW5kLXJlbW92ZWQtdjMiLCJqUXVlcnkuZm4uIit4KyIoKSBpcyBkZXByZWNhdGVkIik7Qy5zcGxpY2UoMCwwLHgpO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMub24uYXBwbHkodGhpcywKQyk7dGhpcy50cmlnZ2VySGFuZGxlci5hcHBseSh0aGlzLEMpO3JldHVybiB0aGlzfSwic2hvcnRoYW5kLXJlbW92ZWQtdjMiKX0pO24uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbih1LHgpe2JhKG4uZm4seCxmdW5jdGlvbihDLEgpe3JldHVybiAwPGFyZ3VtZW50cy5sZW5ndGg\/dGhpcy5vbih4LG51bGwsQyxIKTp0aGlzLnRyaWdnZXIoeCl9LCJzaG9ydGhhbmQtZGVwcmVjYXRlZC12MyIsImpRdWVyeS5mbi4iK3grIigpIGV2ZW50IHNob3J0aGFuZCBpcyBkZXByZWNhdGVkIil9KTtuKGZ1bmN0aW9uKCl7bihkYS5kb2N1bWVudCkudHJpZ2dlckhhbmRsZXIoInJlYWR5Iil9KTsKbi5ldmVudC5zcGVjaWFsLnJlYWR5PXtzZXR1cDpmdW5jdGlvbigpe3RoaXM9PT1kYS5kb2N1bWVudCYmVSgicmVhZHktZXZlbnQiLCIncmVhZHknIGV2ZW50IGlzIGRlcHJlY2F0ZWQiKX19O2JhKG4uZm4sImJpbmQiLGZ1bmN0aW9uKHUseCxDKXtyZXR1cm4gdGhpcy5vbih1LG51bGwseCxDKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmJpbmQoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwidW5iaW5kIixmdW5jdGlvbih1LHgpe3JldHVybiB0aGlzLm9mZih1LG51bGwseCl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi51bmJpbmQoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwiZGVsZWdhdGUiLGZ1bmN0aW9uKHUseCxDLEgpe3JldHVybiB0aGlzLm9uKHgsdSxDLEgpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uZGVsZWdhdGUoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwidW5kZWxlZ2F0ZSIsZnVuY3Rpb24odSx4LEMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD8KdGhpcy5vZmYodSwiKioiKTp0aGlzLm9mZih4LHV8fCIqKiIsQyl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi51bmRlbGVnYXRlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sImhvdmVyIixmdW5jdGlvbih1LHgpe3JldHVybiB0aGlzLm9uKCJtb3VzZWVudGVyIix1KS5vbigibW91c2VsZWF2ZSIseHx8dSl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi5ob3ZlcigpIGlzIGRlcHJlY2F0ZWQiKTt2YXIgcmI9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopW14+XSopXC8+L2dpLEJiPWZ1bmN0aW9uKHUpe3ZhciB4PWRhLmRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7eC5ib2R5LmlubmVySFRNTD11O3JldHVybiB4LmJvZHkmJnguYm9keS5pbm5lckhUTUx9O24uVU5TQUZFX3Jlc3RvcmVMZWdhY3lIdG1sUHJlZmlsdGVyPWZ1bmN0aW9uKCl7bi5taWdyYXRlRW5hYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpfTsKamEobiwiaHRtbFByZWZpbHRlciIsZnVuY3Rpb24odSl7dmFyIHg9dS5yZXBsYWNlKHJiLCI8JDE+PC8kMj4iKTt4IT09dSYmQmIodSkhPT1CYih4KSYmVSgic2VsZi1jbG9zZWQtdGFncyIsIkhUTUwgdGFncyBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZCBhbmQgY2xvc2VkOiAiK3UpO3JldHVybiB1LnJlcGxhY2UocmIsIjwkMT48LyQyPiIpfSwic2VsZi1jbG9zZWQtdGFncyIpO24ubWlncmF0ZURpc2FibGVQYXRjaGVzKCJzZWxmLWNsb3NlZC10YWdzIik7dmFyIHphPW4uZm4ub2Zmc2V0O2phKG4uZm4sIm9mZnNldCIsZnVuY3Rpb24oKXt2YXIgdT10aGlzWzBdO3JldHVybiF1fHx1Lm5vZGVUeXBlJiZ1LmdldEJvdW5kaW5nQ2xpZW50UmVjdD96YS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6KFUoIm9mZnNldC12YWxpZC1lbGVtIiwialF1ZXJ5LmZuLm9mZnNldCgpIHJlcXVpcmVzIGEgdmFsaWQgRE9NIGVsZW1lbnQiKSxhcmd1bWVudHMubGVuZ3RoP3RoaXM6dm9pZCAwKX0sIm9mZnNldC12YWxpZC1lbGVtIik7CmlmKG4uYWpheCl7dmFyIENiPW4ucGFyYW07amEobiwicGFyYW0iLGZ1bmN0aW9uKHUseCl7dmFyIEM9bi5hamF4U2V0dGluZ3MmJm4uYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsO3ZvaWQgMD09PXgmJkMmJihVKCJwYXJhbS1hamF4LXRyYWRpdGlvbmFsIiwialF1ZXJ5LnBhcmFtKCkgbm8gbG9uZ2VyIHVzZXMgalF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCIpLHg9Qyk7cmV0dXJuIENiLmNhbGwodGhpcyx1LHgpfSwicGFyYW0tYWpheC10cmFkaXRpb25hbCIpfWJhKG4uZm4sImFuZFNlbGYiLG4uZm4uYWRkQmFjaywiYW5kU2VsZiIsImpRdWVyeS5mbi5hbmRTZWxmKCkgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCwgdXNlIGpRdWVyeS5mbi5hZGRCYWNrKCkiKTtpZihuLkRlZmVycmVkKXt2YXIgRGI9bi5EZWZlcnJlZCx0Yj1bWyJyZXNvbHZlIiwiZG9uZSIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlc29sdmVkIl0sClsicmVqZWN0IiwiZmFpbCIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbi5DYWxsYmFja3MoIm1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKV1dO2phKG4sIkRlZmVycmVkIixmdW5jdGlvbih1KXtmdW5jdGlvbiB4KCl7dmFyIFA9YXJndW1lbnRzO3JldHVybiBuLkRlZmVycmVkKGZ1bmN0aW9uKGVhKXtuLmVhY2godGIsZnVuY3Rpb24oUWEsRWIpe3ZhciBoYj0iZnVuY3Rpb24iPT09dHlwZW9mIFBbUWFdJiZQW1FhXTtDW0ViWzFdXShmdW5jdGlvbigpe3ZhciBvYT1oYiYmaGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKG9hJiYiZnVuY3Rpb24iPT09dHlwZW9mIG9hLnByb21pc2Upb2EucHJvbWlzZSgpLmRvbmUoZWEucmVzb2x2ZSkuZmFpbChlYS5yZWplY3QpLnByb2dyZXNzKGVhLm5vdGlmeSk7ZWxzZSBlYVtFYlswXSsiV2l0aCJdKHRoaXM9PT1IP2VhLnByb21pc2UoKToKdGhpcyxoYj9bb2FdOmFyZ3VtZW50cyl9KX0pO1A9bnVsbH0pLnByb21pc2UoKX12YXIgQz1EYigpLEg9Qy5wcm9taXNlKCk7YmEoQywicGlwZSIseCwiZGVmZXJyZWQtcGlwZSIsImRlZmVycmVkLnBpcGUoKSBpcyBkZXByZWNhdGVkIik7YmEoSCwicGlwZSIseCwiZGVmZXJyZWQtcGlwZSIsImRlZmVycmVkLnBpcGUoKSBpcyBkZXByZWNhdGVkIik7dSYmdS5jYWxsKEMsQyk7cmV0dXJuIEN9LCJkZWZlcnJlZC1waXBlIik7bi5EZWZlcnJlZC5leGNlcHRpb25Ib29rPURiLmV4Y2VwdGlvbkhvb2t9cmV0dXJuIG59KTsKLyoqIC9qcy9qcXVlcnkuY29va2llLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MjgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MDkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y29va2llanNfY19vbj0iMjAyMy0wOS0wNiAxNDozMDowNiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oaCxsLHIpe2Z1bmN0aW9uIHQoYil7cmV0dXJuIGJ9ZnVuY3Rpb24gdShiKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChiLnJlcGxhY2UobSwiICIpKX1jYXRjaChjKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1bmVzY2FwZShiKS5yZXBsYWNlKG0sIiAiKSl9Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZyhhLm1lc3NhZ2UpLGJ9fX1mdW5jdGlvbiBuKGIsYyxhLGUsayxmKXsidW5kZWZpbmVkIj09PXR5cGVvZiBmJiYoZj01KTsidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyP2YmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKGIsYyxhLGUsayxmLTEpfSwxRTMpOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGIsYyxhLGUsayl9dmFyIG09L1wrL2csZz1oLmNvb2tpZT1mdW5jdGlvbihiLGMsYSl7aWYoYyE9PXIpcmV0dXJuIENvb2tpZXMuaXNDb29raWVBbGxvd2VkKGIsZnVuY3Rpb24oZCl7ZGVidWcoIkNvb2tpZTogIiwKYixkKTthPWguZXh0ZW5kKHt9LGcuZGVmYXVsdHMsYSk7aWYoIWQpcmV0dXJuIENvb2tpZXMucmVtb3ZlKGIsYS5wYXRoLGEuZG9tYWluKSwhMTtudWxsPT09YyYmKGEuZXhwaXJlcz0tMSk7Im51bWJlciI9PT10eXBlb2YgYS5leHBpcmVzSW5NaW51dGVzJiYoYS5leHBpcmVzPWEuZXhwaXJlc0luTWludXRlcy8xNDQwKTtpZigibnVtYmVyIj09PXR5cGVvZiBhLmV4cGlyZXMpe2Q9YS5leHBpcmVzO3ZhciBwPWEuZXhwaXJlcz1uZXcgRGF0ZTtwLnNldFRpbWUoK3ArODY0RTUqZCl9ZD1uZXcgRGF0ZTtkLnNldEZ1bGxZZWFyKGQuZ2V0RnVsbFllYXIoKSsxKTthLmV4cGlyZXM+ZCYmKGEuZXhwaXJlcz1kKTtjPWcuanNvbj9KU09OLnN0cmluZ2lmeShjKTpTdHJpbmcoYyk7bihiLGMsYS5leHBpcmVzLGEucGF0aCxhLmRvbWFpbik7cmV0dXJuIGwuY29va2llPVtlbmNvZGVVUklDb21wb25lbnQoYiksIj0iLGcucmF3P2M6ZW5jb2RlVVJJQ29tcG9uZW50KGMpLGEuZXhwaXJlcz8iOyBleHBpcmVzPSIrCmEuZXhwaXJlcy50b1VUQ1N0cmluZygpOiIiLGEucGF0aD8iOyBwYXRoPSIrYS5wYXRoOiIiLGEuZG9tYWluPyI7IGRvbWFpbj0iK2EuZG9tYWluOiIiLGEuc2VjdXJlPyI7IHNlY3VyZSI6IiJdLmpvaW4oIiIpfSk7Zm9yKHZhciBlPWcucmF3P3Q6dSxrPWwuY29va2llLnNwbGl0KCI7ICIpLGY9MCx2PWsubGVuZ3RoO2Y8djtmKyspe3ZhciBxPWtbZl0uc3BsaXQoIj0iKTtpZihlKHEuc2hpZnQoKSk9PT1iKXJldHVybiBlPWUocS5qb2luKCI9IikpLGcuanNvbj9KU09OLnBhcnNlKGUpOmV9cmV0dXJuIG51bGx9O2cuZGVmYXVsdHM9e307aC5yZW1vdmVDb29raWU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gbnVsbCE9PWguY29va2llKGIpPyhoLmNvb2tpZShiLG51bGwsYyksITApOiExfX0pKGpRdWVyeSxkb2N1bWVudCk7Ci8qKiAvanMvdmFuaWxsYWpzL2Nvb2tpZXMuY29uc2VudC5qcyAqKi8KdmFyIF9fX2QyY19jb29raWVzY29uc2VudGpzX2Nfb249IjIwMjYtMDQtMTUgMTE6MzA6MDMiOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXt3aW5kb3cuRDJDRmJDb25zZW50PXdpbmRvdy5EMkNGYkNvbnNlbnR8fHtfc3RhdGU6bnVsbCxfcXVldWU6W10sX2ZsdXNoOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5fcXVldWU7dGhpcy5fcXVldWU9W107YS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3RyeXtiKCl9Y2F0Y2goYyl7fX0pfSxncmFudDpmdW5jdGlvbigpe3RoaXMuX3N0YXRlPSJncmFudCI7InVuZGVmaW5lZCIhPT10eXBlb2YgZmJxJiYoZmJxKCJjb25zZW50IiwiZ3JhbnQiKSx0aGlzLl9mbHVzaCgpKX0scmV2b2tlOmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGU9InJldm9rZSI7InVuZGVmaW5lZCIhPT10eXBlb2YgZmJxJiZmYnEoImNvbnNlbnQiLCJyZXZva2UiKX0sb25HcmFudGVkOmZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlpZigiZ3JhbnQiPT09dGhpcy5fc3RhdGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSl0cnl7YSgpfWNhdGNoKGIpe31lbHNlIHRoaXMuX3F1ZXVlLnB1c2goYSl9LApzeW5jVG9GYnE6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgZmJxJiYoZmJxKCJjb25zZW50Iix0aGlzLl9zdGF0ZSksImdyYW50Ij09PXRoaXMuX3N0YXRlJiZ0aGlzLl9mbHVzaCgpKX19O3dpbmRvdy5Db29raWVDb25zZW50PXtDQVRFR09SWUlEX0VTU0VOVElBTDoyLF9jbXBJbnRlcnZhbElEOm51bGwsX2N1cnJlbnRWZW5kb3I6bnVsbCxfY29va2llczpudWxsLF9jYXRlZ29yaWVzOm51bGwsX3JlZ2lzdGVyZWRSZXF1ZXN0czpbXSxpbml0OmZ1bmN0aW9uKCl7Q29va2llQ29uc2VudC5fbG9hZEpTT04obnVsbCk7Q29va2llQ29uc2VudC5fY21wSW50ZXJ2YWxJRD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQubGlzdGVuRm9yT25lVHJ1c3QoKX0sMUUzKTt2YXIgYT1Db29raWVDb25zZW50LmdldENvbnNlbnQoKTtsZXQgYj1udWxsPT1hfHwtMTxhLmluZGV4T2YoIkMwMDAyIik\/ImdyYW50ZWQiOiJkZW5pZWQiO2E9bnVsbD09CmF8fC0xPGEuaW5kZXhPZigiQzAwMDQiKT8iZ3JhbnRlZCI6ImRlbmllZCI7Z3RhZygiY29uc2VudCIsImRlZmF1bHQiLHthZF9zdG9yYWdlOmEsYW5hbHl0aWNzX3N0b3JhZ2U6Yn0pOyJncmFudGVkIj09PWE\/d2luZG93LkQyQ0ZiQ29uc2VudC5ncmFudCgpOndpbmRvdy5EMkNGYkNvbnNlbnQucmV2b2tlKCl9LGxpc3RlbkZvck9uZVRydXN0OmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgT25lVHJ1c3Qpe2NvbnNvbGUubG9nKCJDb29raWVDb25zZW50Lmxpc3RlbkZvck9uZVRydXN0KCkiKTtDb29raWVDb25zZW50Ll9jdXJyZW50VmVuZG9yPSJPbmVUcnVzdCI7Y2xlYXJJbnRlcnZhbChDb29raWVDb25zZW50Ll9jbXBJbnRlcnZhbElEKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lciAub25ldHJ1c3QtY2xvc2UtYnRuLWhhbmRsZXIiKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsZXQgYj0Kd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGM9bG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKS5zbGljZSgtMikuam9pbigiLiIpO2RvY3VtZW50LmNvb2tpZT0iT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0iK2IrIjsiO2RvY3VtZW50LmNvb2tpZT0iT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0iK2MrIjsifSwxRTMpfSk7T25lVHJ1c3QuT25Db25zZW50Q2hhbmdlZChmdW5jdGlvbihiKXtpZihiJiZiLmRldGFpbCl7dmFyIGM9Q29va2llQ29uc2VudC5fZ2V0Q29uc2VudENvb2tpZSgpO0Nvb2tpZUNvbnNlbnQuX3VwZGF0ZUNvbnNlbnRDb29raWUoSlNPTi5zdHJpbmdpZnkoYi5kZXRhaWwpKTstMTxiLmRldGFpbC5pbmRleE9mKCJDMDAwNCIpP2d0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthZF9zdG9yYWdlOiJncmFudGVkIn0pOgpndGFnKCJjb25zZW50IiwidXBkYXRlIix7YWRfc3RvcmFnZToiZGVuaWVkIn0pOy0xPGIuZGV0YWlsLmluZGV4T2YoIkMwMDAyIik\/Z3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FuYWx5dGljc19zdG9yYWdlOiJncmFudGVkIn0pOmd0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthbmFseXRpY3Nfc3RvcmFnZToiZGVuaWVkIn0pOy0xPGIuZGV0YWlsLmluZGV4T2YoIkMwMDA0Iik\/d2luZG93LkQyQ0ZiQ29uc2VudC5ncmFudCgpOndpbmRvdy5EMkNGYkNvbnNlbnQucmV2b2tlKCk7MT09Yi5kZXRhaWwubGVuZ3RoJiYiQzAwMDEiPT1iLmRldGFpbFswXSYmKG51bGw9PWN8fDE8Yy5sZW5ndGgpJiZkMmNGb290ZXJEZWxldGVBbGxDb29raWVzKCEwKTtpZigtMTxiLmRldGFpbC5pbmRleE9mKCJDMDAwMiIpKXtjPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19jb25zZW50X3dhaXQiKTtjPW51bGwhPWM\/SlNPTi5wYXJzZShhdG9iKGMpKTp7fTtmb3IodmFyIGQgaW4gYylDb29raWVzLnNldChjW2RdLmtleSwKY1tkXS52YWx1ZSxjW2RdLmV4cGlyZXMsY1tkXS5wYXRoLGNbZF0uZG9tYWluKX1zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJkMmNfY29uc2VudF93YWl0Iik7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJkMmNfY29uc2VudF9jaGFuZ2VkIix7Y2F0ZWdvcmllczpiLmRldGFpbH0pKX19KX19LF91cGRhdGVDb25zZW50Q29va2llOmZ1bmN0aW9uKGEpe0Nvb2tpZXMuc2V0KCJkMmNfY29va2llX2NvbnNlbnQiLGEsMzY1LCIvIil9LF9nZXRDb25zZW50Q29va2llOmZ1bmN0aW9uKCl7aWYoIUNvb2tpZXMuaGFzKCJkMmNfY29va2llX2NvbnNlbnQiKSlyZXR1cm4gbnVsbDtsZXQgYT1Db29raWVzLmdldCgiZDJjX2Nvb2tpZV9jb25zZW50Iik7cmV0dXJuIEpTT04ucGFyc2UoYSl9LGdldENvbnNlbnQ6ZnVuY3Rpb24oKXtsZXQgYT0oIiIrZG9jdW1lbnQuY29va2llKS5zcGxpdCgiOyIpO2ZvcihsZXQgYj0wO2I8YS5sZW5ndGg7YisrKXtsZXQgYz0KYVtiXTtjPWMudHJpbSgpO2lmKDA9PWMuaW5kZXhPZigiZDJjX2Nvb2tpZV9jb25zZW50PSIpKXt0cnl7Yz1kZWNvZGVVUklDb21wb25lbnQoYyl9Y2F0Y2goZCl7Y29uc29sZS5sb2coZCk7YnJlYWt9cmV0dXJuIGMuc3Vic3RyaW5nKDE5LGMubGVuZ3RoKX19cmV0dXJuIG51bGx9LGlzQ29va2llQWxsb3dlZDpmdW5jdGlvbihhLGIpe2lmKFsiZDJjX2Nvb2tpZV9jb25zZW50IiwiQ1NSRkRPTUFJTkNIRUNLXzEiXS5pbmNsdWRlcyhhKSliKCEwKTtlbHNlIGlmKG51bGw9PT1Db29raWVDb25zZW50Ll9jb29raWVzfHxudWxsPT09Q29va2llQ29uc2VudC5fY2F0ZWdvcmllcylDb29raWVDb25zZW50Ll9yZWdpc3RlckpTT05Mb2FkZWRFdmVudChmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkKGEsYil9KTtlbHNlIGlmKENvb2tpZUNvbnNlbnQuX2Nvb2tpZXMuaGFzT3duUHJvcGVydHkoYSkpe3ZhciBjPUNvb2tpZUNvbnNlbnQuX2Nvb2tpZXNbYV0sZD1Db29raWVDb25zZW50Ll9nZXRWZW5kb3JDYXRlZ29yeShjKSwKZT1Db29raWVDb25zZW50Ll9nZXRDb25zZW50Q29va2llKCk7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWJ1ZyYmZGVidWcoe25hbWU6YSxjYXRlZ29yeTpjLHZlbmRvcjpkLGNvbnNlbnQ6ZX0pO251bGw9PT1lfHxudWxsPT09ZD9iKCExKToib2JqZWN0Ij09PXR5cGVvZiBkPyhjPTA8ZC5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuLTE8ZS5pbmRleE9mKGYpfSkubGVuZ3RoLGIoYykpOmIoLTE8ZS5pbmRleE9mKGQpKX1lbHNlIGIoITEpfSxfbG9hZEpTT046ZnVuY3Rpb24oYSl7ZmV0Y2goIi9qcy9qc29uL2NhdGVnb3JpemVkX2Nvb2tpZXMuanNvbiIpLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuanNvbigpfSkudGhlbihmdW5jdGlvbihiKXtDb29raWVDb25zZW50Ll9jb29raWVzPWIuY29va2llcztDb29raWVDb25zZW50Ll9jYXRlZ29yaWVzPWIuY2F0ZWdvcmllcztpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpdHJ5e2EoKX1jYXRjaChjKXt9MDxDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMubGVuZ3RoJiYKQ29va2llQ29uc2VudC5fcmVnaXN0ZXJlZFJlcXVlc3RzLmZvckVhY2goZnVuY3Rpb24oYyl7dHJ5e2MoKX1jYXRjaChkKXt9fSl9KX0sX3JlZ2lzdGVySlNPTkxvYWRlZEV2ZW50OmZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlpZihudWxsIT09Q29va2llQ29uc2VudC5fY29va2llcyl0cnl7YSgpfWNhdGNoKGIpe31lbHNlIENvb2tpZUNvbnNlbnQuX3JlZ2lzdGVyZWRSZXF1ZXN0cy5wdXNoKGEpfSxfZ2V0VmVuZG9yQ2F0ZWdvcnk6ZnVuY3Rpb24oYSl7aWYobnVsbD09PUNvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3Ipe2xldCBjPVtdO09iamVjdC52YWx1ZXMoQ29va2llQ29uc2VudC5fY2F0ZWdvcmllcykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmhhc093blByb3BlcnR5KGEpJiZjLnB1c2goZFthXSl9KTtyZXR1cm4gY31sZXQgYj1Db29raWVDb25zZW50Ll9jYXRlZ29yaWVzW0Nvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3JdO3JldHVybiBiJiZiLmhhc093blByb3BlcnR5KGEpPwpiW2FdOm51bGx9fTt3aW5kb3cuQ29va2llQ29uc2VudC5pbml0KCl9KSgpOwovKiogL2pzL3ZhbmlsbGFqcy9jb250ZW50TG9hZGVyLmpzICoqLwp2YXIgX19fZDJjX2NvbnRlbnRMb2FkZXJqc19jX29uPSIyMDI2LTAxLTEyIDEwOjEzOjI5IjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixjKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1jLnZhbHVlO3JldHVybiBhfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1jKXJldHVybiBhW2JdO2M9YVtjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmFbYl19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYSxiLGMsZCl7YiYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGEsYixjLGQpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGEsYixjLGQpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe2M9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlyZXR1cm47Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuc3BsaXQoIi4iKTthPTE9PT1lLmxlbmd0aDtkPWVbMF07ZD0hYSYmZCBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIGY9MDtmPGUubGVuZ3RoLTE7ZisrKXt2YXIgZz1lW2ZdO2lmKCEoZyBpbiBkKSlyZXR1cm47ZD1kW2ddfWU9ZVtlLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2RbZV06bnVsbDtiPWIoYyk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxlLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChlKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitlKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGQsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBjPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGMudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGQpO2lmKCFkLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxkO3ZhciBlPWQudmFsdWV9Y2F0Y2goZil7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhmKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gZihnKXtnLmRvbmU\/ZChnLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoZy52YWx1ZSkudGhlbihiLGMpLnRoZW4oZixlKX1mKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKY29uc3QgY29udGVudEJsb2Nrcz0oKT0+e2NvbnN0IGE9Yj0+JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dmFyIGM9Yi5kYXRhc2V0LGQsZT1udWxsPT0oZD1iLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9ImJsb2NrLWRhdGEiXScpKT92b2lkIDA6ZC52YWx1ZTtkPSJGUkVOQ0giPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsdWU\/ImZyIjoiZW4iO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtkYXRhOmV8fCJ7fSJ9KTtjPXlpZWxkKHlpZWxkIGZldGNoKGAvJHtlbmNvZGVVUklDb21wb25lbnQoZCl9L2FqYXgvZ2V0U2tlbGV0b25Db250ZW50YCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IixjaGFyc2V0OiJVVEYtOCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyhjKX0pKS5qc29uKCk7CmlmKCJ1bmRlZmluZWQiIT10eXBlb2YgYy5zdGF0dXMmJiJzdWNjZXNzIj09Yy5zdGF0dXMpaWYoYz1jLmNvbnRlbnQsMT5jLmxlbmd0aCliLnJlcGxhY2VXaXRoKCIiKTtlbHNle2M9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoYykuY2hpbGRyZW5bMF07dmFyIGY7ZT1udWxsPT0oZj1iLmRhdGFzZXQpP3ZvaWQgMDpmLmNhbGxiYWNrO2IucGFyZW50RWxlbWVudC5kYXRhc2V0LmxvYWRlZD0iMSI7Yi5yZXBsYWNlV2l0aChjKTtlJiYiZnVuY3Rpb24iPT09dHlwZW9mIGhhbmRsZXJzW2VdJiZoYW5kbGVyc1tlXShjKS5pbml0KCl9fSk7aGFuZGxlcnM9e3BheW1lbnRDYWxjQmxvY2s6Yj0+e2NvbnN0IGM9Yi5jbG9zZXN0KCIuZGl2Q2FyU2luZ2xlSW5uZXJCb3giKTtyZXR1cm57aW5pdDooKT0+eyQoYikuZmluZCgiLnBheW1lbnRUb29sdGlwIikuZWFjaChmdW5jdGlvbigpe3RyeXt2YXIgZD0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpOwokKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmQsZ3Jhdml0eToiZWFzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJjbGljayIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goZSl7fX0pO2IuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZnVuY3Rpb24oZCl7ZC5zdG9wUHJvcGFnYXRpb24oKTtpZihiLmRhdGFzZXQudG9vbHRpcENyZWF0ZWQpcmV0dXJuITE7Yi5kYXRhc2V0LnRvb2x0aXBDcmVhdGVkPSIxIjskKGQuY3VycmVudFRhcmdldC5xdWVyeVNlbGVjdG9yKCIuY2FyLWZpbmFuY2UtaW5mbyIpKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToid2VzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9KTtiLnF1ZXJ5U2VsZWN0b3IoIi5jYXItZmluYW5jZS1pbmZvIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGQpe2QucHJldmVudERlZmF1bHQoKTtpZighYylyZXR1cm4hMTtkPWMucXVlcnlTZWxlY3RvcigiLmRpdkNhclRpdGxlQ29udGFpbmVyIGEiKS5ocmVmOwp3aW5kb3cub3BlbihkLCJfc2VsZiIpfSl9fX19O3JldHVybntzZXRCbG9ja09ic2VydmVyOigpPT57Y29uc3QgYj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZD0+e2QuZm9yRWFjaChlPT57ZS5pc0ludGVyc2VjdGluZyYmKGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLGIudW5vYnNlcnZlKGUudGFyZ2V0KSxjb25zb2xlLmxvZygic2tlbGV0b24gb2JzZXJ2ZWQgIitlLnRhcmdldCksYShlLnRhcmdldCkpfSl9LHt0aHJlc2hvbGQ6LjF9KSxjPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbnRlbnQtc2tlbGV0b24iKS5mb3JFYWNoKGQ9PntiLm9ic2VydmUoZCk7InNrZWxldG9uIj09PWMuZ2V0KCJkZWJ1ZyIpJiZkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29udGVudC1za2VsZXRvbiIpLmZvckVhY2goZT0+ZS5jbGFzc0xpc3QuYWRkKCJkZWJ1ZyIpKX0pfSxoYW5kbGVyc319Owpkb2NSZWFkeUFyci5wdXNoKCgpPT57ImZ1bmN0aW9uIj09PXR5cGVvZiBjb250ZW50QmxvY2tzJiZjb250ZW50QmxvY2tzKCkuc2V0QmxvY2tPYnNlcnZlcigpfSk7Ci8qKiAvanMvdmFuaWxsYWpzL2Nvb2tpZXMuanMgKiovCnZhciBfX19kMmNfY29va2llc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTM6MjUiOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXtmdW5jdGlvbiBsKGEsYyxiLGgsZCxmLGUpe3ZhciBnPSIiO2lmKGIpe2xldCBrPW5ldyBEYXRlO2suc2V0RnVsbFllYXIoay5nZXRGdWxsWWVhcigpKzEpO3N3aXRjaChiLmNvbnN0cnVjdG9yKXtjYXNlIE51bWJlcjozNjU8YiYmKGI9MzY1KTtnPW5ldyBEYXRlO2cuc2V0RGF0ZShnLmdldERhdGUoKStiKTtnPUluZmluaXR5PT09Yj8iOyBleHBpcmVzPUZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UIjoiOyBleHBpcmVzPSIrZy50b1VUQ1N0cmluZygpO2JyZWFrO2Nhc2UgU3RyaW5nOm5ldyBEYXRlKGIpPmsmJihiPWsudG9VVENTdHJpbmcoKSk7Zz0iOyBleHBpcmVzPSIrYjticmVhaztjYXNlIERhdGU6Yj5rJiYoYj1rKSxnPSI7IGV4cGlyZXM9IitiLnRvVVRDU3RyaW5nKCl9fSJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPSJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sKTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGEpKwoiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGMpK2crKGQ\/IjsgZG9tYWluPSIrZDoiIikrKGg\/IjsgcGF0aD0iK2g6IiIpKyhmPyI7IHNlY3VyZSI6IiIpKyhlJiYibm9fcmVzdHJpY3Rpb24iIT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk\/ImxheCI9PT1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKXx8MT09PU1hdGguY2VpbChlKXx8ITA9PT1lPyI7IHNhbWVzaXRlPWxheCI6Im5vbmUiPT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl8fDA+ZT8iOyBzYW1lc2l0ZT1ub25lIjoiOyBzYW1lc2l0ZT1zdHJpY3QiOiIiKX1mdW5jdGlvbiBtKGEsYyl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYXx8bnVsbD09PWEpcmV0dXJuLTE7c3dpdGNoKGEuY29uc3RydWN0b3Ipe2Nhc2UgTnVtYmVyOmlmKCJudW1iZXIiPT09Yyl2YXIgYj04NjQwMCphO2Vsc2UgYj1uZXcgRGF0ZSxiLnNldERhdGUoYi5nZXREYXRlKCkrYSksYj1JbmZpbml0eT09PWE\/IkZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UIjoKYi50b1VUQ1N0cmluZygpO2JyZWFrO2Nhc2UgU3RyaW5nOiJzdHJpbmciPT09Yz9iPWE6KGI9bmV3IERhdGUsYj0oKG5ldyBEYXRlKGEpKS5nZXRUaW1lKCktYi5nZXRUaW1lKCkpLzFFMyk7YnJlYWs7Y2FzZSBEYXRlOiJzdHJpbmciPT09Yz9iPWEudG9VVENTdHJpbmcoKTooYj1uZXcgRGF0ZSxiPShhLmdldFRpbWUoKS1iLmdldFRpbWUoKSkvMUUzKX0ibnVtYmVyIj09PWMmJihiPU1hdGgucm91bmQoYikpO3JldHVybiBifXZhciBuPS9bXC1cLlwrXCpdL2cscD0vXig\/OmV4cGlyZXN8bWF4XC1hZ2V8cGF0aHxkb21haW58c2VjdXJlfHNhbWVzaXRlfGh0dHBvbmx5KSQvaSxxPSJ1dG1fY2FtcGFpZ24gdXRtX2tleXdvcmQgdXRtX2xhbmRpbmcgdXRtX2xhbmRpbmdfZm9vdGVyIHV0bV9tZWRpdW0gdXRtX3NvdXJjZSB1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcgdXRtX3NvdXJjZV9yZXRhcmdldGluZyBEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24gRGlzcGxheVNvdXJjZVVUTVNvdXJjZSIuc3BsaXQoIiAiKTsKd2luZG93LkNvb2tpZXM9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYT9kZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuY29va2llLnJlcGxhY2UobmV3IFJlZ0V4cCgiKD86KD86XnwuKjspXFxzKiIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UobiwiXFwkJiIpKyJcXHMqXFw9XFxzKihbXjtdKikuKiQpfF4uKiQiKSwiJDEiKSl8fG51bGw6bnVsbH0sc2V0OmZ1bmN0aW9uKGEsYyxiLGgsZCxmLGUpe3JldHVybiFhfHxwLnRlc3QoYSk\/ITE6Q29va2llcy5pc0Nvb2tpZUFsbG93ZWQoYSxmdW5jdGlvbihnKXtkPWQ\/ZDoiIjtmPW51bGw9PWY\/ITA6ZjtlPW51bGw9PWU\/Ik5vbmUiOmU7Q29va2llcy5sb2coYSxjLGIsaCxkKTtpZighZylyZXR1cm4tMTxxLmluZGV4T2YoYSkmJm51bGw9PUNvb2tpZXMuZ2V0KCJkMmNfY29va2llX2NvbnNlbnQiKSYmKGc9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIpLGc9bnVsbCE9Zz9KU09OLnBhcnNlKGF0b2IoZykpOgp7fSxnW2FdPXtrZXk6YSx2YWx1ZTpjLGV4cGlyZXM6YixwYXRoOmgsZG9tYWluOmR9LHV0bUNvb2tpZXNTdG9yYWdlSlNPTj1KU09OLnN0cmluZ2lmeShnKSxzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkMmNfY29uc2VudF93YWl0IixidG9hKHV0bUNvb2tpZXNTdG9yYWdlSlNPTikpKSxDb29raWVzLnJlbW92ZShhLGgsZCxmLGUpLCExO2RvY3VtZW50LmNvb2tpZT1sKGEsYyxiLGgsZCxmLGUpO3JldHVybiEwfSl9LHJlbW92ZTpmdW5jdGlvbihhLGMsYixoLGQpe2lmKCF0aGlzLmhhcyhhKSlyZXR1cm4hMTtkb2N1bWVudC5jb29raWU9bChhLCIiLCJUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsYyxiLGgsZCk7cmV0dXJuITB9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4hYXx8cC50ZXN0KGEpPyExOihuZXcgUmVnRXhwKCIoPzpefDtcXHMqKSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UobiwiXFwkJiIpKyJcXHMqXFw9IikpLnRlc3QoZG9jdW1lbnQuY29va2llKX0sCmtleXM6ZnVuY3Rpb24oKXtmb3IodmFyIGE9ZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLygoPzpefFxzKjspW149XSspKD89O3wkKXxeXHMqfFxzKig\/Oj1bXjtdKik\/KD86XDF8JCkvZywiIikuc3BsaXQoL1xzKig\/Oj1bXjtdKik\/O1xzKi8pLGM9YS5sZW5ndGgsYj0wO2I8YztiKyspYVtiXT1kZWNvZGVVUklDb21wb25lbnQoYVtiXSk7cmV0dXJuIGF9LGNsZWFyOmZ1bmN0aW9uKGEsYyxiLGgpe2Zvcih2YXIgZD10aGlzLmtleXMoKSxmPWQubGVuZ3RoLGU9MDtlPGY7ZSsrKXRoaXMucmVtb3ZlSXRlbShkW2VdLGEsYyxiLGgpfSxsb2c6ZnVuY3Rpb24oYSxjLGIsaCxkLGYpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZiYmc2V0VGltZW91dChmdW5jdGlvbigpe0Nvb2tpZXMubG9nKGEsYyxiLGgsZCxmLTEpfSwxRTMpOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGEsYyxiLGgsZCl9LGlzQ29va2llQWxsb3dlZDpmdW5jdGlvbihhLApjKXtyZXR1cm4idW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llQ29uc2VudHx8InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkP2MoITApOndpbmRvdy5Db29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZChhLGMpfX07d2luZG93LkNvb2tpZUxvZ2dlcj17X3N0YWNrOltdLGluaXQ6ZnVuY3Rpb24oKXtsZXQgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVhbGVyUHJvdmluY2VDb2RlIik7YSYmIlFDIj09bmV3IFN0cmluZyhhLnZhbHVlKSYmMT09TWF0aC5mbG9vcigzKk1hdGgucmFuZG9tKCkpJiZmZXRjaCgiL3Byb3h5X3JkMmMvZDJjYXBpL2xvZy9jb29raWVzL2FjdGl2ZSIpLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIGMuanNvbigpfSkudGhlbihmdW5jdGlvbihjKXsiYWN0aXZlIj09PWMuc3RhdHVzJiZDb29raWVMb2dnZXIud2FpdFN0YWNrKCl9KX0sbG9nOmZ1bmN0aW9uKGEsYyxiLGgsZCl7aWYoImxpdmUiPT09CndpbmRvdy5kZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpKXtkZWJ1ZygiTG9nZ2luZyBjb29raWU6Iix7bmFtZTphLHZhbHVlOmN8fCIiLGR1cmF0aW9uOm0oYiwibnVtYmVyIikscGF0aDpoLGRvbWFpbjpkfSk7dmFyIGYsZSxnPSJ1bmRlZmluZWQiIT10eXBlb2YgY3VycmVudFNpdGVJRD9jdXJyZW50U2l0ZUlEOm51bGwhPShlPW51bGw9PShmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXRlSUQiKSk\/dm9pZCAwOmYudmFsdWUpP2U6IiI7dGhpcy5fc3RhY2sucHVzaCh7bmFtZTphLGR1cmF0aW9uOm0oYiwibnVtYmVyIikscGF0aDpofHwiLyIsZG9tYWluOmR8fHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSx1cmk6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHNpdGVpZDpnLHZhbHVlOmJ0b2EoYyl9KX19LF9zZW5kU3RhY2s6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5fc3RhY2subGVuZ3RoKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29va2llTG9nVG9rZW4iKT8KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvb2tpZUxvZ1Rva2VuIikudmFsdWU6bnVsbDtpZihhKXt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIGN1cnJlbnRTaXRlSUQ\/Y3VycmVudFNpdGVJRDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIik\/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpLnZhbHVlOiIiOyhuZXcgV29ya2VyKCIvanMvdmFuaWxsYWpzL2Nvb2tpZVdvcmtlci5qcyIpKS5wb3N0TWVzc2FnZSh7dG9rZW46YSxzaXRlSUQ6YyxzdGFjazpDb29raWVMb2dnZXIuX3N0YWNrfSk7Q29va2llTG9nZ2VyLl9zdGFjaz1bXX1lbHNlIGRlYnVnKCJObyBjb29raWUgbG9nIHRva2VuIGZvdW5kLiIpfX0sd2FpdFN0YWNrOmZ1bmN0aW9uKCl7ImxpdmUiPT09d2luZG93LmRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCkmJihzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Q29va2llTG9nZ2VyLl9zZW5kU3RhY2soKX0sMUU0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwKZnVuY3Rpb24oKXtDb29raWVMb2dnZXIuX3NlbmRTdGFjaygpfSkpfX07d2luZG93LkNvb2tpZUxvZ2dlci5pbml0KCl9KSgpOwovKiogL2pzL2pxdWVyeS5iYXNlNjQuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyNS0wNS0yMyAxNzowOToyNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyNC0wMS0zMSAxNDozNTo0OCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDIzLTAxLTEyIDExOjM1OjU4IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDU6MzkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MzozNCI7InVzZSBzdHJpY3QiOwpqUXVlcnkuYmFzZTY0PWZ1bmN0aW9uKGspe2Z1bmN0aW9uIGUoYSxjKXthPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5pbmRleE9mKGEuY2hhckF0KGMpKTtpZigtMT09PWEpdGhyb3ciQ2Fubm90IGRlY29kZSBiYXNlNjQiO3JldHVybiBhfWZ1bmN0aW9uIGgoYSxjKXthPWEuY2hhckNvZGVBdChjKTtpZigyNTU8YSl0aHJvdyJJTlZBTElEX0NIQVJBQ1RFUl9FUlI6IERPTSBFeGNlcHRpb24gNSI7cmV0dXJuIGF9cmV0dXJue2RlY29kZTpmdW5jdGlvbihhKXt2YXIgYz0wLGIsZj1hLmxlbmd0aCxkPVtdO2E9U3RyaW5nKGEpO2lmKDA9PT1mKXJldHVybiBhO2lmKDAhPT1mJTQpdGhyb3ciQ2Fubm90IGRlY29kZSBiYXNlNjQiOyI9Ij09PWEuY2hhckF0KGYtMSkmJihjPTEsIj0iPT09YS5jaGFyQXQoZi0yKSYmKGM9MiksZi09NCk7Zm9yKGI9MDtiPGY7Yis9NCl7dmFyIGc9ZShhLGIpPDwxOHxlKGEsYisxKTw8CjEyfGUoYSxiKzIpPDw2fGUoYSxiKzMpO2QucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGc+PjE2LGc+PjgmMjU1LGcmMjU1KSl9c3dpdGNoKGMpe2Nhc2UgMTpnPWUoYSxiKTw8MTh8ZShhLGIrMSk8PDEyfGUoYSxiKzIpPDw2O2QucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGc+PjE2LGc+PjgmMjU1KSk7YnJlYWs7Y2FzZSAyOmc9ZShhLGIpPDwxOHxlKGEsYisxKTw8MTIsZC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZz4+MTYpKX1yZXR1cm4gZC5qb2luKCIiKX0sZW5jb2RlOmZ1bmN0aW9uKGEpe2lmKDEhPT1hcmd1bWVudHMubGVuZ3RoKXRocm93IlN5bnRheEVycm9yOiBleGFjdGx5IG9uZSBhcmd1bWVudCByZXF1aXJlZCI7YT1TdHJpbmcoYSk7dmFyIGMsYj1bXSxmPWEubGVuZ3RoLWEubGVuZ3RoJTM7aWYoMD09PWEubGVuZ3RoKXJldHVybiBhO2ZvcihjPTA7YzxmO2MrPTMpe3ZhciBkPWgoYSxjKTw8MTZ8aChhLGMrMSk8PDh8aChhLGMrMik7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+CjE4KSk7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTImNjMpKTtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj42JjYzKSk7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZCY2MykpfXN3aXRjaChhLmxlbmd0aC1mKXtjYXNlIDE6ZD1oKGEsYyk8PDE2O2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjE4KSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjEyJjYzKSsiPT0iKTticmVhaztjYXNlIDI6ZD0KaChhLGMpPDwxNnxoKGEsYysxKTw8OCxiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xOCkrIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xMiY2MykrIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj42JjYzKSsiPSIpfXJldHVybiBiLmpvaW4oIiIpfSxWRVJTSU9OOiIxLjAifX0oalF1ZXJ5KTsKLyoqIC9qcy9qcXVlcnkuZGFya3Rvb2x0aXAuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5ZGFya3Rvb2x0aXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjQ4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlkYXJrdG9vbHRpcGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6MDciOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGUoYSxjKXt0aGlzLmJlYXJlcj1hO3RoaXMub3B0aW9ucz1jO3RoaXMuaGlkZUV2ZW50O3RoaXMuaGlkaW5nPSExO3RoaXMubW91c2VPdmVyTW9kZT0iaG92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im1vdXNlb3ZlciI9PXRoaXMub3B0aW9ucy50cmlnZ2VyfHwib25tb3VzZW92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcn1lLnByb3RvdHlwZT17c2hvdzpmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5vcHRpb25zLm1vZGFsJiZ0aGlzLm1vZGFsTGF5ZXIuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTt0aGlzLnRvb2x0aXAuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTthLm1vdXNlT3Zlck1vZGUmJih0aGlzLnRvb2x0aXAub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5oaWRlRXZlbnQpO2EuaGlkaW5nPSExfSksdGhpcy50b29sdGlwLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5oaWRlRXZlbnQpOwphLmhpZGUoKTthLmhpZGluZz0hMX0pKX0saGlkZTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7YS5oaWRpbmd8fChhLmhpZGluZz0hMCx0aGlzLmhpZGVFdmVudD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5oaWRpbmc9ITE7YS50b29sdGlwLmhpZGUoKX0pLGEub3B0aW9ucy5tb2RhbCYmKGEuaGlkaW5nPSExLGEubW9kYWxMYXllci5oaWRlKCkpLHRoaXMub3B0aW9ucy5vbkNsb3NlKCkpfSx0b2dnbGU6ZnVuY3Rpb24oKXt0aGlzLnRvb2x0aXAuaXMoIjp2aXNpYmxlIik\/dGhpcy5oaWRlKCk6dGhpcy5zaG93KCl9LGFkZEFuaW1hdGlvbjpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKXtjYXNlICJmYWRlSW4iOnRoaXMudG9vbHRpcC5hZGRDbGFzcygiYW5pbWF0ZWQiKTt0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImZhZGVJbiIpO2JyZWFrO2Nhc2UgImZsaXBJbiI6dGhpcy50b29sdGlwLmFkZENsYXNzKCJhbmltYXRlZCIpLHRoaXMudG9vbHRpcC5hZGRDbGFzcygiZmxpcEluIil9fSwKc2V0Q29udGVudDpmdW5jdGlvbigpe2IodGhpcy5iZWFyZXIpLmNzcygiY3Vyc29yIiwicG9pbnRlciIpO2lmKHRoaXMub3B0aW9ucy5jb250ZW50KXRoaXMuY29udGVudD10aGlzLm9wdGlvbnMuY29udGVudDtlbHNlIGlmKHRoaXMuYmVhcmVyLmF0dHIoImRhdGEtdG9vbHRpcCIpKXRoaXMuY29udGVudD10aGlzLmJlYXJlci5hdHRyKCJkYXRhLXRvb2x0aXAiKTtlbHNlIHJldHVybjtpZigiIyI9PXRoaXMuY29udGVudC5jaGFyQXQoMCkpe2lmKHRoaXMub3B0aW9ucy5kZWxldGVfY29udGVudCl7dmFyIGE9Yih0aGlzLmNvbnRlbnQpLmh0bWwoKTtiKHRoaXMuY29udGVudCkuaHRtbCgiIik7dGhpcy5jb250ZW50PWE7ZGVsZXRlIGF9ZWxzZSBiKHRoaXMuY29udGVudCkuaGlkZSgpLHRoaXMuY29udGVudD1iKHRoaXMuY29udGVudCkuaHRtbCgpO3RoaXMuY29udGVudFR5cGU9Imh0bWwifWVsc2UgdGhpcy5jb250ZW50VHlwZT0idGV4dCI7YT0iIiE9dGhpcy5iZWFyZXIuYXR0cigiaWQiKSYmCiJ1bmRlZmluZWQiIT10aGlzLmJlYXJlci5hdHRyKCJpZCIpPyJpZD0nZGFya3Rvb2x0aXAtIit0aGlzLmJlYXJlci5hdHRyKCJpZCIpKyInIjoiaWQ9J2Rhcmt0b29sdGlwLSIrKERhdGUubm93KCkrTWF0aC5mbG9vcigxRTQqTWF0aC5yYW5kb20oKSkpKyInIjswPT09YigiSU5TLmRhcmt0b29sdGlwLW1vZGFsLWxheWVyIikubGVuZ3RoJiYodGhpcy5tb2RhbExheWVyPWIoIjxpbnMgY2xhc3M9J2Rhcmt0b29sdGlwLW1vZGFsLWxheWVyJz48L2lucz4iKSk7dGhpcy50b29sdGlwPWIoIjxpbnMgIithKyIgY2xhc3MgPSAnZGFyay10b29sdGlwICIrdGhpcy5vcHRpb25zLnRoZW1lKyIgIit0aGlzLm9wdGlvbnMuc2l6ZSsiICIrdGhpcy5vcHRpb25zLmdyYXZpdHkrIic+PGRpdj4iK3RoaXMuY29udGVudCsiPC9kaXY+PGRpdiBjbGFzcyA9ICd0aXAnPjwvZGl2PjwvaW5zPiIpO3RoaXMudGlwPXRoaXMudG9vbHRpcC5maW5kKCIudGlwIik7YigiYm9keSIpLmFwcGVuZCh0aGlzLm1vZGFsTGF5ZXIpOwpiKCJib2R5IikuYXBwZW5kKHRoaXMudG9vbHRpcCk7Imh0bWwiPT10aGlzLmNvbnRlbnRUeXBlJiZ0aGlzLnRvb2x0aXAuY3NzKCJtYXgtd2lkdGgiLCJub25lIik7dGhpcy50b29sdGlwLmNzcygib3BhY2l0eSIsdGhpcy5vcHRpb25zLm9wYWNpdHkpO3RoaXMuYWRkQW5pbWF0aW9uKCk7dGhpcy5vcHRpb25zLmNvbmZpcm0mJnRoaXMuYWRkQ29uZmlybSgpfSxzZXRQb3NpdGlvbnM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmJlYXJlci5vZmZzZXQoKS5sZWZ0LGM9dGhpcy5iZWFyZXIub2Zmc2V0KCkudG9wO3N3aXRjaCh0aGlzLm9wdGlvbnMuZ3Jhdml0eSl7Y2FzZSAic291dGgiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKS8yLXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCkvMjtjKz0tdGhpcy50b29sdGlwLm91dGVySGVpZ2h0KCktdGhpcy50aXAub3V0ZXJIZWlnaHQoKS8yO2JyZWFrO2Nhc2UgIndlc3QiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKSt0aGlzLnRpcC5vdXRlcldpZHRoKCkvCjI7Yys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKS8yLXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLzI7YnJlYWs7Y2FzZSAibm9ydGgiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKS8yLXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCkvMjtjKz10aGlzLmJlYXJlci5vdXRlckhlaWdodCgpK3RoaXMudGlwLm91dGVySGVpZ2h0KCkvMjticmVhaztjYXNlICJlYXN0IjphKz0tdGhpcy50b29sdGlwLm91dGVyV2lkdGgoKS10aGlzLnRpcC5vdXRlcldpZHRoKCkvMixjKz10aGlzLmJlYXJlci5vdXRlckhlaWdodCgpLzItdGhpcy50b29sdGlwLm91dGVySGVpZ2h0KCkvMn10aGlzLm9wdGlvbnMuYXV0b0xlZnQmJnRoaXMudG9vbHRpcC5jc3MoImxlZnQiLGEpO3RoaXMub3B0aW9ucy5hdXRvVG9wJiZ0aGlzLnRvb2x0aXAuY3NzKCJ0b3AiLGMpfSxzZXRFdmVudHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGM9YS5vcHRpb25zLmhvdmVyRGVsYXksZjtpZihhLm1vdXNlT3Zlck1vZGUpdGhpcy5iZWFyZXIub24oIm1vdXNlZW50ZXIiLApmdW5jdGlvbigpe2Y9c2V0VGltZW91dChmdW5jdGlvbigpe2Euc2V0UG9zaXRpb25zKCk7YS5zaG93KCl9LGMpfSkub24oIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGYpO2EuaGlkZSgpfSk7ZWxzZSBpZigiY2xpY2siPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im9uY2xpayI9PXRoaXMub3B0aW9ucy50cmlnZ2VyKXRoaXMudG9vbHRpcC5vbigiY2xpY2siLGZ1bmN0aW9uKGQpe2Quc3RvcFByb3BhZ2F0aW9uKCl9KSx0aGlzLmJlYXJlci5vbigiY2xpY2siLGZ1bmN0aW9uKGQpe2QucHJldmVudERlZmF1bHQoKTthLnNldFBvc2l0aW9ucygpO2EudG9nZ2xlKCk7ZC5zdG9wUHJvcGFnYXRpb24oKX0pLGIoImh0bWwiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5oaWRlKCl9KX0sYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLnNldENvbnRlbnQoKTt0aGlzLmNvbnRlbnQmJnRoaXMuc2V0RXZlbnRzKCl9LGFkZENvbmZpcm06ZnVuY3Rpb24oKXt0aGlzLnRvb2x0aXAuYXBwZW5kKCI8dWwgY2xhc3MgPSAnY29uZmlybSc+PGxpIGNsYXNzID0gJ2Rhcmt0b29sdGlwLXllcyc+IisKdGhpcy5vcHRpb25zLnllcysiPC9saT48bGkgY2xhc3MgPSAnZGFya3Rvb2x0aXAtbm8nPiIrdGhpcy5vcHRpb25zLm5vKyI8L2xpPjwvdWw+Iik7dGhpcy5zZXRDb25maXJtRXZlbnRzKCl9LHNldENvbmZpcm1FdmVudHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMudG9vbHRpcC5maW5kKCJsaS5kYXJrdG9vbHRpcC15ZXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGMpe2Eub25ZZXMoKTtjLnN0b3BQcm9wYWdhdGlvbigpfSk7dGhpcy50b29sdGlwLmZpbmQoImxpLmRhcmt0b29sdGlwLW5vIikub24oImNsaWNrIixmdW5jdGlvbihjKXthLm9uTm8oKTtjLnN0b3BQcm9wYWdhdGlvbigpfSl9LGZpbmFsTWVzc2FnZTpmdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucy5maW5hbE1lc3NhZ2Upe3ZhciBhPXRoaXM7YS50b29sdGlwLmZpbmQoImRpdjpmaXJzdCIpLmh0bWwodGhpcy5vcHRpb25zLmZpbmFsTWVzc2FnZSk7YS50b29sdGlwLmZpbmQoInVsIikucmVtb3ZlKCk7YS5zZXRQb3NpdGlvbnMoKTsKc2V0VGltZW91dChmdW5jdGlvbigpe2EuaGlkZSgpO2Euc2V0Q29udGVudCgpfSxhLm9wdGlvbnMuZmluYWxNZXNzYWdlRHVyYXRpb24pfWVsc2UgdGhpcy5oaWRlKCl9LG9uWWVzOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9uWWVzKHRoaXMuYmVhcmVyKTt0aGlzLmZpbmFsTWVzc2FnZSgpfSxvbk5vOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9uTm8odGhpcy5iZWFyZXIpO3RoaXMuaGlkZSgpfX07Yi5mbi5kYXJrVG9vbHRpcD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7YT1iLmV4dGVuZCh7fSxiLmZuLmRhcmtUb29sdGlwLmRlZmF1bHRzLGEpOyhuZXcgZShiKHRoaXMpLGEpKS5hY3RpdmF0ZSgpfSl9O2IuZm4uZGFya1Rvb2x0aXAuZGVmYXVsdHM9e2FuaW1hdGlvbjoibm9uZSIsY29uZmlybTohMSxjb250ZW50OiIiLGZpbmFsTWVzc2FnZToiIixmaW5hbE1lc3NhZ2VEdXJhdGlvbjoxRTMsZ3Jhdml0eToic291dGgiLGhvdmVyRGVsYXk6MCxtb2RhbDohMSwKbm86Ik5vIixvbk5vOmZ1bmN0aW9uKCl7fSxvblllczpmdW5jdGlvbigpe30sb3BhY2l0eTouOSxzaXplOiJtZWRpdW0iLHRoZW1lOiJkYXJrIix0cmlnZ2VyOiJob3ZlciIseWVzOiJZZXMiLGF1dG9Ub3A6ITAsYXV0b0xlZnQ6ITAsb25DbG9zZTpmdW5jdGlvbigpe319fSkoalF1ZXJ5KTsKLyoqIC9qcy9qcXVlcnkudmFsaWRpdHkubWluLmpzICoqLwooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihiLGMsZSl7dmFyIGY9KGIucmVkdWN0aW9ufHxiKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksaT1bXTtyZXR1cm4gMT5iLmxlbmd0aD8oY29uc29sZS5sb2coIkNvdWxkIG5vdCB2YWxpZGF0ZSBlbGVtZW50IixiKSxiKTooZi5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKT9pLnB1c2godGhpcyk6ZCh0aGlzLGcoZSx7ZmllbGQ6aCh0aGlzKX0pKX0pLGIucmVkdWN0aW9uPWEoaSksYil9ZnVuY3Rpb24gYygpe2EudmFsaWRpdHkuaXNWYWxpZGF0aW5nKCkmJihhLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnMrKyxhLnZhbGlkaXR5LnJlcG9ydC52YWxpZD0hMSl9ZnVuY3Rpb24gZChiLGQpe2MoKSxhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2UmJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlKGEoYiksZCl9ZnVuY3Rpb24gZShiLGQpe2MoKSxhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2VBZ2dyZWdhdGUmJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlQWdncmVnYXRlKGIsZCl9ZnVuY3Rpb24gZihhKXt2YXIgYj0wO3JldHVybiBhLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1wYXJzZUZsb2F0KHRoaXMudmFsdWUpO2IrPWlzTmFOKGEpPzA6YX0pLGJ9ZnVuY3Rpb24gZyhhLGIpe2Zvcih2YXIgYyBpbiBiKWE9YS5yZXBsYWNlKCIjeyIrYysifSIsYltjXSk7cmV0dXJuIGooYSl9ZnVuY3Rpb24gaChiKXt2YXIgYz1hKGIpLGQ9YS52YWxpZGl0eS5zZXR0aW5ncy5kZWZhdWx0RmllbGROYW1lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYy5hdHRyKCJ0aXRsZSIpJiZjLmF0dHIoInRpdGxlIikubGVuZ3RoKWQ9Yy5hdHRyKCJ0aXRsZSIpO2Vsc2UgaWYoL14oW0EtWjAtOV1bYS16XSopKyQvLnRlc3QoYi5pZCkpZD1iLmlkLnJlcGxhY2UoLyhbQS1aMC05XSlbYS16XSovZywiICQmIik7ZWxzZSBpZigvXlthLXowLTlfXSokLy50ZXN0KGIuaWQpKXtmb3IodmFyIGU9Yi5pZC5zcGxpdCgiXyIpLGY9MDtmPGUubGVuZ3RoOysrZillW2ZdPWooZVtmXSk7ZD1lLmpvaW4oIiAiKX1yZXR1cm4gZH1mdW5jdGlvbiBqKGEpe3JldHVybiBhLnN1YnN0cmluZz9hLnN1YnN0cmluZygwLDEpLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSxhLmxlbmd0aCk6YX1hLnZhbGlkaXR5PXtzZXR0aW5nczphLmV4dGVuZCh7b3V0cHV0TW9kZToibGFiZWwiLGNzc0NsYXNzOiJlcnJvciIsc2Nyb2xsVG86ITEsbW9kYWxFcnJvcnNDbGlja2FibGU6ITAsZGVmYXVsdEZpZWxkTmFtZToiVGhpcyBmaWVsZCIsZWxlbWVudFN1cHBvcnQ6Ijp0ZXh0LCBbdHlwZT10ZWxdLCBbdHlwZT1lbWFpbF0sIFt0eXBlPWRhdGVdLCA6cGFzc3dvcmQsIHRleHRhcmVhLCBzZWxlY3QsIDpyYWRpbywgOmNoZWNrYm94IixhcmdUb1N0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXREYXRlP2EuZ2V0TW9udGgoKSsxKyIvIithLmdldERhdGUoKSsiLyIrYS5nZXRGdWxsWWVhcigpOmF9fSx7fSkscGF0dGVybnM6e2ludGVnZXI6L15cZCskLyxkYXRlOi9eKCgwP1xkKXwoMVswMTJdKSlcLyhbMDEyXT9cZHwzMHwzMSlcL1xkezEsNH0kLyxlbWFpbDovXigoKFthLXpdfFxkfFshI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5dfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSsoXC4oW2Etel18XGR8WyEjXCQlJidcKlwrXC1cLz1cP1xeX2B7XHx9fl18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKykqKXwoKFx4MjIpKCgoKFx4MjB8XHgwOSkqKFx4MGRceDBhKSk\/KFx4MjB8XHgwOSkrKT8oKFtceDAxLVx4MDhceDBiXHgwY1x4MGUtXHgxZlx4N2ZdfFx4MjF8W1x4MjMtXHg1Yl18W1x4NWQtXHg3ZV18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfChcXChbXHgwMS1ceDA5XHgwYlx4MGNceDBkLVx4N2ZdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpKSooKChceDIwfFx4MDkpKihceDBkXHgwYSkpPyhceDIwfFx4MDkpKyk\/KFx4MjIpKSlAKCgoW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLikrKChbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKihbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKVwuPyQvaSx1c2Q6L15cJD8oXGR7MSwzfSw\/KFxkezN9LD8pKlxkezN9KFwuXGR7MCwyfSk\/fFxkezEsM30oXC5cZHswLDJ9KT98XC5cZHsxLDJ9PykkLyx1cmw6L14oaHR0cHM\/fGZ0cCk6XC9cLygoKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OikqQCk\/KCgoXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKSl8KCgoW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLikrKChbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKihbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKVwuPykoOlxkKik\/KShcLygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApKyhcLygoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDp8QCkqKSopPyk\/KFw\/KCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDp8QCl8W1x1RTAwMC1cdUY4RkZdfFwvfFw\/KSopPyhcIygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApfFwvfFw\/KSopPyQvaSxudW1iZXI6L15bKy1dPyhcZCsoXC5cZCopP3xcLlxkKykoW0VlXVxkKyk\/JC8semlwOi9eXGR7NX0oLVxkezR9KT8kLyxwaG9uZTovXlsyLTldXGR7Mn0tXGR7M30tXGR7NH0kLyxndWlkOi9eKFx7PyhbMC05YS1mQS1GXSl7OH0tKChbMC05YS1mQS1GXSl7NH0tKXszfShbMC05YS1mQS1GXSl7MTJ9XH0\/KSQvLHRpbWUxMjovXlswMV0\/XGQ6WzAtNV1cZD9ccz9bYUFwUF1cLj9bbU1dXC4\/JC8sdGltZTI0Oi9eKDIwfDIxfDIyfDIzfFswMV1cZHxcZCkoKFs6XVswLTVdXGQpezEsMn0pJC8sbm9uSHRtbDovXltePD5dKiQvfSxtZXNzYWdlczp7YXJlYWNvZGU6IiN7ZmllbGR9IGFjY2VwdHMgb25seSBsb2NhbCBhcmVhIGNvZGVzIixyZXF1aXJlOiIje2ZpZWxkfSBpcyByZXF1aXJlZC4iLG1hdGNoOiIje2ZpZWxkfSBpcyBpbiBhbiBpbnZhbGlkIGZvcm1hdC4iLGludGVnZXI6IiN7ZmllbGR9IG11c3QgYmUgYSBwb3NpdGl2ZSwgd2hvbGUgbnVtYmVyLiIsZGF0ZToiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBkYXRlLiIsZW1haWw6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGFuIGVtYWlsLiIsdXNkOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIFVTIERvbGxhciBhbW91bnQuIix1cmw6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgVVJMLiIsbnVtYmVyOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIG51bWJlci4iLHppcDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSB6aXBjb2RlICMjIyMjIG9yICMjIyMjLSMjIyMuIixwaG9uZToiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBwaG9uZSBudW1iZXIgIyMjLSMjIy0jIyMjLiIsZ3VpZDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBndWlkIGxpa2UgezNGMjUwNEUwLTRGODktMTFEMy05QTBDLTAzMDVFODJDMzMwMX0uIix0aW1lMjQ6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgMjQgaG91ciB0aW1lOiAyMzowMC4iLHRpbWUxMjoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSAxMiBob3VyIHRpbWU6IDEyOjAwIEFNL1BNIixsZXNzVGhhbjoiI3tmaWVsZH0gbXVzdCBiZSBsZXNzIHRoYW4gI3ttYXh9LiIsbGVzc1RoYW5PckVxdWFsVG86IiN7ZmllbGR9IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICN7bWF4fS4iLGdyZWF0ZXJUaGFuOiIje2ZpZWxkfSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAje21pbn0uIixncmVhdGVyVGhhbk9yRXF1YWxUbzoiI3tmaWVsZH0gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gI3ttaW59LiIscmFuZ2U6IiN7ZmllbGR9IG11c3QgYmUgYmV0d2VlbiAje21pbn0gYW5kICN7bWF4fS4iLHRvb0xvbmc6IiN7ZmllbGR9IGNhbm5vdCBiZSBsb25nZXIgdGhhbiAje21heH0gY2hhcmFjdGVycy4iLHRvb1Nob3J0OiIje2ZpZWxkfSBjYW5ub3QgYmUgc2hvcnRlciB0aGFuICN7bWlufSBjaGFyYWN0ZXJzLiIsbm9uSHRtbDoiI3tmaWVsZH0gY2Fubm90IGNvbnRhaW4gSFRNTCBjaGFyYWN0ZXJzLiIsYWxwaGFiZXQ6IiN7ZmllbGR9IGNvbnRhaW5zIGRpc2FsbG93ZWQgY2hhcmFjdGVycy4iLG1pbkNoYXJDbGFzczoiI3tmaWVsZH0gY2Fubm90IGhhdmUgbW9yZSB0aGFuICN7bWlufSAje2NoYXJDbGFzc30gY2hhcmFjdGVycy4iLG1heENoYXJDbGFzczoiI3tmaWVsZH0gY2Fubm90IGhhdmUgbGVzcyB0aGFuICN7bWlufSAje2NoYXJDbGFzc30gY2hhcmFjdGVycy4iLGVxdWFsOiJWYWx1ZXMgZG9uJ3QgbWF0Y2guIixkaXN0aW5jdDoiQSB2YWx1ZSB3YXMgcmVwZWF0ZWQuIixzdW06IlZhbHVlcyBkb24ndCBhZGQgdG8gI3tzdW19LiIsc3VtTWF4OiJUaGUgc3VtIG9mIHRoZSB2YWx1ZXMgbXVzdCBiZSBsZXNzIHRoYW4gI3ttYXh9LiIsc3VtTWluOiJUaGUgc3VtIG9mIHRoZSB2YWx1ZXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gI3ttaW59LiIscmFkaW9DaGVja2VkOiJUaGUgc2VsZWN0ZWQgdmFsdWUgaXMgbm90IHZhbGlkLiIsZ2VuZXJpYzoiSW52YWxpZC4ifSxjaGFyQ2xhc3Nlczp7YWxwaGFiZXRpY2FsOi9cdy9nLG51bWVyaWM6L1xkL2csYWxwaGFudW1lcmljOi9bQS1aYS16MC05XS9nLHN5bWJvbDovW15BLVphLXowLTldL2d9LG91dHB1dHM6e30sc2V0dXA6ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuc2V0dGluZ3M9YS5leHRlbmQodGhpcy5zZXR0aW5ncyxiKSx0aGlzfSxyZXBvcnQ6bnVsbCxpc1ZhbGlkYXRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMucmVwb3J0fSxzdGFydDpmdW5jdGlvbigpe3RoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdJiZ0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXS5zdGFydCYmdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0uc3RhcnQoKSx0aGlzLnJlcG9ydD17ZXJyb3JzOjAsdmFsaWQ6ITB9fSxlbmQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnJlcG9ydHx8e2Vycm9yczowLHZhbGlkOiEwfTtyZXR1cm4gdGhpcy5yZXBvcnQ9bnVsbCx0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0uZW5kJiZ0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXS5lbmQoYSksYX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLnN0YXJ0KCksdGhpcy5lbmQoKX19LGEuZm4uZXh0ZW5kKHt2YWxpZGl0eTpmdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoImZvcm0iPT10aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl7dmFyIGM9bnVsbDsic3RyaW5nIj09dHlwZW9mIGI\/Yz1mdW5jdGlvbigpe2EoYikucmVxdWlyZSgpfTppc0Z1bmN0aW9uKGIpJiYoYz1iKSxiJiZhKHRoaXMpLm9uKCJzdWJtaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGEudmFsaWRpdHkuc3RhcnQoKSxjKCksYS52YWxpZGl0eS5lbmQoKS52YWxpZH0pfX0pfSxyZXF1aXJlOmZ1bmN0aW9uKGMpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9YShiKS52YWwoKSxkPXRyaW0oYykubGVuZ3RoO3JldHVybiBkfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJlcXVpcmUpfSxtYXRjaDpmdW5jdGlvbihjLGQpe3JldHVybiBkfHwoZD1hLnZhbGlkaXR5Lm1lc3NhZ2VzLm1hdGNoLCJzdHJpbmciPT10eXBlb2YgYyYmYS52YWxpZGl0eS5tZXNzYWdlc1tjXSYmKGQ9YS52YWxpZGl0eS5tZXNzYWdlc1tjXSkpLCJzdHJpbmciPT10eXBlb2YgYyYmKGM9YS52YWxpZGl0eS5wYXR0ZXJuc1tjXSksYih0aGlzLGlzRnVuY3Rpb24oYyk\/ZnVuY3Rpb24oYSl7cmV0dXJuIWEudmFsdWUubGVuZ3RofHxjKGEudmFsdWUpfTpmdW5jdGlvbihhKXtyZXR1cm4gYy5nbG9iYWwmJihjLmxhc3RJbmRleD0wKSwhYS52YWx1ZS5sZW5ndGh8fGMudGVzdChhLnZhbHVlKX0sZCl9LHJhbmdlOmZ1bmN0aW9uKGMsZSxmKXtyZXR1cm4gYih0aGlzLGMuZ2V0VGltZSYmZS5nZXRUaW1lP2Z1bmN0aW9uKGEpe3ZhciBiPW5ldyBEYXRlKGEudmFsdWUpO3JldHVybiBiPj1uZXcgRGF0ZShjKSYmYjw9bmV3IERhdGUoZSl9OmMuc3Vic3RyaW5nJiZlLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3ZhciBiPW5ldyBCaWcoYS52YWx1ZSk7cmV0dXJuIGIuZ3JlYXRlclRoYW5PckVxdWFsVG8obmV3IEJpZyhjKSkmJmIubGVzc1RoYW5PckVxdWFsVG8obmV3IEJpZyhlKSl9OmZ1bmN0aW9uKGEpe3ZhciBiPXBhcnNlRmxvYXQoYS52YWx1ZSk7cmV0dXJuIGI+PWMmJmI8PWV9LGZ8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5yYW5nZSx7bWluOmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyksbWF4OmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoZSl9KSl9LGdyZWF0ZXJUaGFuOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxjLmdldFRpbWU\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBEYXRlKGEudmFsdWUpPmN9OmMuc3Vic3RyaW5nJiZCaWc\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBCaWcoYS52YWx1ZSkuZ3JlYXRlclRoYW4obmV3IEJpZyhjKSl9OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUZsb2F0KGEudmFsdWUpPmN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5ncmVhdGVyVGhhbix7bWluOmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyl9KSl9LGdyZWF0ZXJUaGFuT3JFcXVhbFRvOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxjLmdldFRpbWU\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBEYXRlKGEudmFsdWUpPj1jfTpjLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgQmlnKGEudmFsdWUpLmdyZWF0ZXJUaGFuT3JFcXVhbFRvKG5ldyBCaWcoYykpfTpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnZhbHVlKT49Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmdyZWF0ZXJUaGFuT3JFcXVhbFRvLHttaW46YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhjKX0pKX0sbGVzc1RoYW46ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGMuZ2V0VGltZT9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IERhdGUoYS52YWx1ZSk8Y306Yy5zdWJzdHJpbmcmJkJpZz9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEJpZyhhLnZhbHVlKS5sZXNzVGhhbihuZXcgQmlnKGMpKX06ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlRmxvYXQoYS52YWx1ZSk8Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmxlc3NUaGFuLHttYXg6YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhjKX0pKX0sbGVzc1RoYW5PckVxdWFsVG86ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGMuZ2V0VGltZT9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IERhdGUoYS52YWx1ZSk8PWN9OmMuc3Vic3RyaW5nJiZCaWc\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBCaWcoYS52YWx1ZSkubGVzc1RoYW5PckVxdWFsVG8obmV3IEJpZyhjKSl9OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUZsb2F0KGEudmFsdWUpPD1jfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMubGVzc1RoYW5PckVxdWFsVG8se21heDphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGMpfSkpfSxtYXhMZW5ndGg6ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiBhLnZhbHVlLmxlbmd0aDw9Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnRvb0xvbmcse21heDpjfSkpfSxtaW5MZW5ndGg6ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiBhLnZhbHVlLmxlbmd0aD49Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnRvb1Nob3J0LHttaW46Y30pKX0sYWxwaGFiZXQ6ZnVuY3Rpb24oYyxkKXt2YXIgZT1bXTtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS52YWx1ZS5sZW5ndGg7KytiKWlmKC0xPT1jLmluZGV4T2YoYS52YWx1ZS5jaGFyQXQoYikpKXJldHVybiBlLnB1c2goYS52YWx1ZS5jaGFyQXQoYikpLCExO3JldHVybiEwfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuYWxwaGFiZXQse2NoYXJzOmUuam9pbigiLCAiKX0pKX0sbWluQ2hhckNsYXNzOmZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGMmJihjPWMudG9Mb3dlckNhc2UoKSxhLnZhbGlkaXR5LmNoYXJDbGFzc2VzW2NdJiYoYz1hLnZhbGlkaXR5LmNoYXJDbGFzc2VzW2NdKSksYih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybihhLnZhbHVlLm1hdGNoKGMpfHxbXSkubGVuZ3RoPj1kfSxlfHxnKGEudmFsaWRpdHkubWVzc2FnZXMubWluQ2hhckNsYXNzLHttaW46ZCxjaGFyQ2xhc3M6Y30pKX0sbWF4Q2hhckNsYXNzOmZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGMmJihjPWMudG9Mb3dlckNhc2UoKSxhLnZhbGlkaXR5LmNoYXJDbGFzc2VzW2NdJiYoYz1hLnZhbGlkaXR5LmNoYXJDbGFzc2VzW2NdKSksYih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybihhLnZhbHVlLm1hdGNoKGMpfHxbXSkubGVuZ3RoPD1kfSxlfHxnKGEudmFsaWRpdHkubWVzc2FnZXMubWF4Q2hhckNsYXNzLHttYXg6ZCxjaGFyQ2xhc3M6Y30pKX0scGFzc3dvcmQ6ZnVuY3Rpb24oYil7cmV0dXJuIGI9YS5leHRlbmQoe2FscGhhYmV0Om51bGwsbWluTGVuZ3RoOjAsbWF4TGVuZ3RoOjAsbWluU3ltYm9sOjAsbWluQWxwaGFiZXRpY2FsOjAsbWluTnVtZXJpYzowLG1pbkFscGhhTnVtZXJpYzowfSxiKSxiLmFscGhhYmV0JiZ0aGlzLmFscGhhYmV0KGIuYWxwaGFiZXQpLGIubWluTGVuZ3RoJiZ0aGlzLm1pbkxlbmd0aChiLm1pbkxlbmd0aCksYi5tYXhMZW5ndGgmJnRoaXMubWF4TGVuZ3RoKGIubWF4TGVuZ3RoKSxiLm1pblN5bWJvbCYmdGhpcy5taW5DaGFyQ2xhc3MoInN5bWJvbCIsYi5taW5TeW1ib2wpLGIubWluQWxwaGFiZXRpY2FsJiZ0aGlzLm1pbkNoYXJDbGFzcygiYWxwaGFiZXRpY2FsIixiLm1pbkFscGhhYmV0aWNhbCksYi5taW5OdW1lcmljJiZ0aGlzLm1pbkNoYXJDbGFzcygibnVtZXJpYyIsYi5taW5OdW1lcmljKSxiLm1pbkFscGhhbnVtZXJpYyYmdGhpcy5taW5DaGFyQ2xhc3MoImFscGhhbnVtZXJpYyIsYi5taW5BbHBoYW51bWVyaWMpLHRoaXN9LG5vbkh0bWw6ZnVuY3Rpb24oYyl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYS52YWxpZGl0eS5wYXR0ZXJucy5ub25IdG1sLnRlc3QoYi52YWx1ZSl9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMubm9uSHRtbCl9LGVxdWFsOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksZj1mdW5jdGlvbihhKXtyZXR1cm4gYX0sZz1hLnZhbGlkaXR5Lm1lc3NhZ2VzLmVxdWFsO2lmKGQubGVuZ3RoKXtpc0Z1bmN0aW9uKGIpPyhmPWIsInN0cmluZyI9PXR5cGVvZiBjJiYoZz1jKSk6InN0cmluZyI9PXR5cGVvZiBiJiYoZz1iKTt2YXIgaD1hLm1hcChkLGZ1bmN0aW9uKGEpe3JldHVybiBmKGEudmFsdWUpfSksaj1oWzBdLGs9ITA7Zm9yKHZhciBsIGluIGgpaFtsXSE9aiYmKGs9ITEpO2t8fChlKGQsZyksdGhpcy5yZWR1Y3Rpb249YShbXSkpfXJldHVybiB0aGlzfSxkaXN0aW5jdDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGY9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGc9YS52YWxpZGl0eS5tZXNzYWdlcy5kaXN0aW5jdCxoPVtdLGk9ITA7aWYoZC5sZW5ndGgpe2lzRnVuY3Rpb24oYik\/KGY9Yiwic3RyaW5nIj09dHlwZW9mIGMmJihnPWMpKToic3RyaW5nIj09dHlwZW9mIGImJihnPWIpO2Zvcih2YXIgaj1hLm1hcChkLGZ1bmN0aW9uKGEpe3JldHVybiBmKGEudmFsdWUpfSksaz0wO2s8ai5sZW5ndGg7KytrKWlmKGpba10ubGVuZ3RoKXtmb3IodmFyIGw9MDtsPGgubGVuZ3RoOysrbCloW2xdPT1qW2tdJiYoaT0hMSk7aC5wdXNoKGpba10pfWl8fChlKGQsZyksdGhpcy5yZWR1Y3Rpb249YShbXSkpfXJldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtyZXR1cm4gZC5sZW5ndGgmJmIhPWYoZCkmJihlKGQsY3x8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnN1bSx7c3VtOmJ9KSksdGhpcy5yZWR1Y3Rpb249YShbXSkpLHRoaXN9LHN1bU1heDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO3JldHVybiBkLmxlbmd0aCYmYjxmKGQpJiYoZShkLGN8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5zdW1NYXgse21heDpifSkpLHRoaXMucmVkdWN0aW9uPWEoW10pKSx0aGlzfSxzdW1NaW46ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtyZXR1cm4gZC5sZW5ndGgmJmI8ZihkKSYmKGUoZCxjfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuc3VtTWluLHttaW46Yn0pKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSksdGhpc30scmFkaW9DaGVja2VkOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7ZC5pcygiOnJhZGlvIikmJmQuZmluZCgiOmNoZWNrZWQiKS52YWwoKSE9YiYmZShkLGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKX0scmFkaW9Ob3RDaGVja2VkOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7ZC5pcygiOnJhZGlvIikmJmQuZmlsdGVyKCI6Y2hlY2tlZCIpLnZhbCgpPT1iJiZlKGQsY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5yYWRpb0NoZWNrZWQpfSxjaGVja2JveENoZWNrZWQ6ZnVuY3Rpb24oYil7dmFyIGM9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7Yy5pcygiOmNoZWNrYm94IikmJiFjLmlzKCI6Y2hlY2tlZCIpJiYoZShjLGJ8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKSxjLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSl9LGFzc2VydDpmdW5jdGlvbihjLGQpe3ZhciBmPXRoaXMucmVkdWN0aW9ufHx0aGlzO2lmKGYubGVuZ3RoKXtpZihpc0Z1bmN0aW9uKGMpKXJldHVybiBiKHRoaXMsYyxkfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLmdlbmVyaWMpO2N8fChlKGYsZHx8YS52YWxpZGl0eS5tZXNzYWdlcy5nZW5lcmljKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSl9cmV0dXJuIHRoaXN9fSksYS5mbi5leHRlbmQoe3ZhbGlkQWxsb3JOb25lOmZ1bmN0aW9uKCl7dmFyIGI9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksYz0hMDtyZXR1cm4gYi5lYWNoKGZ1bmN0aW9uKCl7aWYoIiIhPWEodGhpcykudmFsKCkpcmV0dXJuIGIuZWFjaChmdW5jdGlvbigpeyIiPT1hKHRoaXMpLnZhbCgpJiYoYz0hMSxkKHRoaXMsZygiIix7ZmllbGQ6aCh0aGlzKX0pKSl9KSwhMX0pLHRoaXN9LHJlcXVpcmVXaXRoV2F0ZXJtYXJrOmZ1bmN0aW9uKGMpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9ZnVuY3Rpb24oYSl7cmV0dXJuIDA8YS50cmltKCkubGVuZ3RofSxkPWEoYikuYXR0cigiYWx0IiksZT1hKGIpLnZhbCgpLnRyaW0oKTtyZXR1cm4gZD9kIT1lJiZjKGUpOmMoZSl9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmVxdWlyZSl9LHJlcXVpcmVQb3N0YWxDb2RlOmZ1bmN0aW9uKGMpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9YShiKS52YWwoKS5yZXBsYWNlKC9ccy9nLCIiKS5yZXBsYWNlKC9bXkEtejAtOV0vZywiMCIpLnRvVXBwZXJDYXNlKCk7aWYoMD09Yy5sZW5ndGgpcmV0dXJuITA7aWYoNT5jLmxlbmd0aClyZXR1cm4hMTtpZihaaXBSZWdleD1hLnZhbGlkaXR5LnBhdHRlcm5zLnppcCxudWxsIT1jLm1hdGNoKFppcFJlZ2V4KSlyZXR1cm4hMDtyZXR1cm4gQ2FuYWRhUG9zdFJlZ2V4PS9bQUJDRUdISktMTU5QUlNUVldYWVpdWzAtOV1bQUJDRUdISktMTU5QUlNUVldYWVpdWzAtOV1bQUJDRUdISktMTU5QUlNUVldYWVpdWzAtOV0vLG51bGwhPWMubWF0Y2goQ2FuYWRhUG9zdFJlZ2V4KSYmKGEoYikudmFsKGMuc3Vic3RyaW5nKDAsMykrIiAiK2Muc3Vic3RyaW5nKDMsNikpLCEwKX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5yZXF1aXJlKX0sdmFsaWRFbWFpbEFkZHJlc3M6ZnVuY3Rpb24oYyl7dmFyIGQ9dGhpcyxlPVsiLmNvbSIsIi5jYSIsIi5uZXQiLCIuYml6IiwiLnF1ZWJlYyIsIi5jbyIsIi5pbmZvIiwiLm1vYmkiLCIub3JnIiwiLmluYyJdOzE9PWEoIiNBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIpLmxlbmd0aCYmIjEiIT1hKCIjQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siKS52YWwoKSYmZS5wdXNoKCIuZnIiKTt2YXIgZj1iKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIHJ1bGU9YS52YWxpZGl0eS5wYXR0ZXJucy5lbWFpbCxydWxlLmdsb2JhbCYmKHJ1bGUubGFzdEluZGV4PTApLCFiLnZhbHVlLmxlbmd0aHx8cnVsZS50ZXN0KGIudmFsdWUpfSwiIik7cmV0dXJuIGY\/Yih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPWEoYikudmFsKCkudG9Mb3dlckNhc2UoKSxkPSExO2lmKCFjLmxlbmd0aClyZXR1cm4hMDtTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofHwoU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aC1hLmxlbmd0aDtyZXR1cm4gMDw9YiYmdGhpcy5sYXN0SW5kZXhPZihhKT09PWJ9KTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyljLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoZVtmXSkmJihkPSEwKTtpZighMT09ZClyZXR1cm4hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlcil7dmFyIGc9ITA7cmV0dXJuIGVtYWlsSGFuZGxlci52YWxpZGF0ZUVtYWlsKGMpLmRvbmUoZnVuY3Rpb24oYSl7ImludmFsaWQiPT09YS5zdGF0dXMmJihnPSExKX0pLGd9cmV0dXJuITB9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMuZW1haWwpOmN8fGEudmFsaWRpdHkubWVzc2FnZXMuZW1haWx9LHJhZGlvT3B0aW9uQ2hvc2VuOmZ1bmN0aW9uKGIpe3ZhciBjPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGQ9e307Zm9yKHZhciBmIGluIGMuZWFjaChmdW5jdGlvbigpe3ZhciBiPWEodGhpcykuYXR0cigibmFtZSIpOyJ1bmRlZmluZWQiPT10eXBlb2YgZFtiXSYmKGRbYl09W10pLGRbYl0ucHVzaCh0aGlzKX0pLGQpMD09YShkW2ZdKS5maWx0ZXIoIjpyYWRpbyIpLmZpbHRlcigiOmNoZWNrZWQiKS5sZW5ndGgmJmUoYShkW2ZdKSxifHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhZGlvQ2hlY2tlZCl9LG9uZU9yTW9yZUNoZWNrZWQ6ZnVuY3Rpb24oYil7dmFyIGM9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7Yy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9Yy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4hIWEodGhpcykuaXMoIlt0eXBlPWNoZWNrYm94XTpjaGVja2VkIil9KS5sZW5ndGg7MD09ZCYmKGMucGFyZW50cygidWwiKS5maXJzdCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSxlKGMsYnx8YS52YWxpZGl0eS5tZXNzYWdlcy5yYWRpb0NoZWNrZWQpKX0pfSx2YWxpZGF0ZU1vYmlsZTpmdW5jdGlvbihjKXtmb3IodmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksZT0hMCxmPSIiLGc9YShkKS5sZW5ndGgsaD1bNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0Myw2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDJdLGo9MDtqPD1nO2orKylpZihqPGcpZis9YShhKGQpW2pdKS52YWwoKTtlbHNle2lmKGY9Zi5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKSwwPT09Zi5sZW5ndGgpcmV0dXJuIGIoZCwoKT0+ITAsY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSk7IjEiPT1mWzBdJiYoZj1mLnN1YnN0cmluZygxKSk7dmFyIGs9cGFyc2VJbnQoZi5zdWJzdHJpbmcoMCwzKSk7YS5hamF4KHt1cmw6Imh0dHBzOi8vcmVzdC5kMmNtZWRpYS5jYS9zaXRlcy9zdmMvdmFsaWRhdGVQaG9uZU51bWJlci5waHAiLHR5cGU6IkdFVCIsYXN5bmM6ITEsdGltZW91dDoyZTMsZGF0YVR5cGU6Impzb24iLGRhdGE6e3Bob25lOmYsbW9iaWxlOjEsYXJlYWNvZGU6IkNBIn19KS5kb25lKGZ1bmN0aW9uKGYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZi5pc09rKSExPT09Zi5waG9uZU51bWJlcklzVmFsaWQmJihlPSExKTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5pbmRleE9mJiYtMT09aC5pbmRleE9mKGspKXJldHVybiExO3JldHVybiBiKGQsZnVuY3Rpb24oKXtyZXR1cm4gZX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSl9KS5mYWlsKGZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBoLmluZGV4T2YmJi0xPT1oLmluZGV4T2YoaykmJihlPSExKSxiKGQsZnVuY3Rpb24oKXtyZXR1cm4gZX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSl9KX19LHZhbGlkYXRlUGhvbmU6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGU9ITAsZj0iIixnPWEoZCkubGVuZ3RoLGg9WzQzOCw1MTQsMjYzLDQ1MCw1NzksODE5LDI0OSw3MDUsMjI2LDUxOSwyODksMzY1LDkwNSw0MTYsNDM3LDY0NywzNDMsNjEzLDcwOSw4NzMsNDE4LDU4MSw1MDYsOTAyXSxqPTA7ajw9ZztqKyspaWYoajxnKWYrPWEoYShkKVtqXSkudmFsKCk7ZWxzZXtpZihmPWYucmVwbGFjZSgvW14wLTldKy9naSwiIiksInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXImJnRoaXMuaGFzQ2xhc3MoInJlcXVpcmVkIikmJihlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9ITApLDA9PT1mLmxlbmd0aClyZXR1cm4gYihkLCgpPT4hMCxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKTsiMSI9PWZbMF0mJihmPWYuc3Vic3RyaW5nKDEpKTt2YXIgaz1wYXJzZUludChmLnN1YnN0cmluZygwLDMpKTthLmFqYXgoe3VybDoiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL3NpdGVzL3N2Yy92YWxpZGF0ZVBob25lTnVtYmVyLnBocCIsdHlwZToiR0VUIixhc3luYzohMSx0aW1lb3V0OjJlMyxkYXRhVHlwZToianNvbiIsZGF0YTp7cGhvbmU6ZixhcmVhY29kZToiQ0EifX0pLmRvbmUoZnVuY3Rpb24oZil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBmLmlzT2spITE9PT1mLnBob25lTnVtYmVySXNWYWxpZCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiZlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnkmJmVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrLGU9ITEpO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLmluZGV4T2YmJi0xPT1oLmluZGV4T2YoaykpcmV0dXJuITE7cmV0dXJuIGIoZCxmdW5jdGlvbigpe3JldHVybiBlfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKX0pLmZhaWwoZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGguaW5kZXhPZiYmLTE9PWguaW5kZXhPZihrKSYmKCJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiZlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnkmJmVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrLGU9ITEpLGIoZCxmdW5jdGlvbigpe3JldHVybiBlfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKX0pfX19KX0pKGpRdWVyeSksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXtyZXR1cm4gYS5hdHRyKCJpZCIpLmxlbmd0aD9hLmF0dHIoImlkIik6YS5hdHRyKCJuYW1lIil9YS52YWxpZGl0eS5vdXRwdXRzLmxhYmVsPXtzdGFydDpmdW5jdGlvbigpe2EoImxhYmVsLiIrYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykucmVtb3ZlKCl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YSgibGFiZWwuIithLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyI6ZXEoMCkiKS5hdHRyKCJmb3IiKSl9LHJhaXNlOmZ1bmN0aW9uKGMsZCl7dmFyIGU9ImxhYmVsLiIrYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcysiW2Zvcj0nIitiKGMpKyInXSI7YShlKS5sZW5ndGg\/YShlKS50ZXh0KGQpOmEoIjxsYWJlbC8+IikuYXR0cigiZm9yIixiKGMpKS5hZGRDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKS50ZXh0KGQpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtjLmxlbmd0aCYmY1swXS5zZWxlY3QoKX0pLmluc2VydEFmdGVyKGMpfSxyYWlzZUFnZ3JlZ2F0ZTpmdW5jdGlvbihiLGMpe2IubGVuZ3RoJiZ0aGlzLnJhaXNlKGEoYi5nZXQoYi5sZW5ndGgtMSkpLGMpfX19KGpRdWVyeSksZnVuY3Rpb24oYSl7YS52YWxpZGl0eS5vdXRwdXRzLm1vZGFsPXtzdGFydDpmdW5jdGlvbigpe2EoIi52YWxpZGl0eS1tb2RhbC1tc2ciKS5yZW1vdmUoKX0sZW5kOmZ1bmN0aW9uKGIpeyFiLnZhbGlkJiZhLnZhbGlkaXR5LnNldHRpbmdzLnNjcm9sbFRvJiYobG9jYXRpb24uaGFzaD1hKCIudmFsaWRpdHktbW9kYWwtbXNnOmVxKDApIikuYXR0cigiaWQiKSl9LHJhaXNlOmZ1bmN0aW9uKGIsYyl7aWYoYi5sZW5ndGgpe3ZhciBkPWIub2Zmc2V0KCksZT1iLmdldCgwKSxmPXtsZWZ0OnBhcnNlSW50KGQubGVmdCtiLndpZHRoKCkrNCwxMCkrInB4Iix0b3A6cGFyc2VJbnQoZC50b3AtMTAsMTApKyJweCJ9O2EoIjxkaXYvPiIpLmFkZENsYXNzKCJ2YWxpZGl0eS1tb2RhbC1tc2ciKS5jc3MoZikudGV4dChjKS5vbigiY2xpY2siLGEudmFsaWRpdHkuc2V0dGluZ3MubW9kYWxFcnJvcnNDbGlja2FibGU\/ZnVuY3Rpb24oKXthKHRoaXMpLnJlbW92ZSgpfTpudWxsKS5hcHBlbmRUbygiYm9keSIpfX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpLGZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EudmFsaWRpdHkub3V0cHV0cy5zdW1tYXJ5PXtzdGFydDpmdW5jdGlvbigpe2EoIi52YWxpZGl0eS1lcnJvbmVvdXMiKS5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksYj1bXX0sZW5kOmZ1bmN0aW9uKCl7aWYoYSgiLnZhbGlkaXR5LXN1bW1hcnktY29udGFpbmVyIikuaGlkZSgpLmZpbmQoInVsIikuaHRtbCgiIiksYi5sZW5ndGgpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKWEoIjxsaS8+IikudGV4dChiW2NdKS5hcHBlbmRUbygiLnZhbGlkaXR5LXN1bW1hcnktY29udGFpbmVyIHVsIik7YSgiLnZhbGlkaXR5LXN1bW1hcnktY29udGFpbmVyIikuc2hvdygpLGEudmFsaWRpdHkuc2V0dGluZ3Muc2Nyb2xsVG8mJihsb2NhdGlvbi5oYXNoPWEoIi52YWxpZGl0eS1lcnJvbmVvdXM6ZXEoMCkiKS5hdHRyKCJpZCIpKX19LHJhaXNlOmZ1bmN0aW9uKGEsYyl7Yi5wdXNoKGMpO3ZhciBkPWEuY2xvc2VzdCgiZm9ybSIpLmhhc0NsYXNzKCJqcXRyYW5zZm9ybWRvbmUiKTthLnBhcmVudCgpLmlzKCJkaXYiKSYmZD8oYS5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksYS5wYXJlbnQoKS5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIikpOmEuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfSxyYWlzZUFnZ3JlZ2F0ZTpmdW5jdGlvbihhLGIpe3RoaXMucmFpc2UoYSxiKX0sY29udGFpbmVyOmZ1bmN0aW9uKCl7ZG9jdW1lbnQud3JpdGUoIjxkaXYgY2xhc3M9XCJ2YWxpZGl0eS1zdW1tYXJ5LWNvbnRhaW5lclwiPlRoZSBmb3JtIGRpZG4ndCBzdWJtaXQgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uKHMpOjx1bD48L3VsPjwvZGl2PiIpfX19KGpRdWVyeSksZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfTskLnZhbGlkaXR5Lm91dHB1dHMucXVpY2ttYWlsPXtzdGFydDpmdW5jdGlvbigpe30sZW5kOmZ1bmN0aW9uKCl7fSxyYWlzZTpmdW5jdGlvbihhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGEuV2F0ZXJtYXJrJiYidW5kZWZpbmVkIiE9YS5hdHRyKCJhbHQiKSl7YS5XYXRlcm1hcmsoYS5hdHRyKCJhbHQiKSwiI0ZGQkFCQSIpO3ZhciBiPWZ1bmN0aW9uKCl7YS5XYXRlcm1hcmsoYS5hdHRyKCJhbHQiKSl9fWVsc2V7YS5jc3MoImJhY2tncm91bmQtY29sb3IiLCIjZmY3ZTc5Iik7dmFyIGI9ZnVuY3Rpb24oKXt0bXA9dG1wP3RtcDoidHJhbnNwYXJlbnQiLGEuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIix0bXApfX0kKGRvY3VtZW50KS5vbigibW91c2Vkb3duIixiKX0sY29udGFpbmVyOmZ1bmN0aW9uKCl7fX0sJC52YWxpZGl0eS5vdXRwdXRzLnBvcHVwPXtzdGFydDpmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9mZigidG91Y2hzdGFydCBtb3VzZWRvd24iLCIudmFsaWRpdHktZXJyb25lb3VzIixhKX0sZW5kOmZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbGlkfHwkKGRvY3VtZW50KS5vbigidG91Y2hzdGFydCBtb3VzZWRvd24iLCIudmFsaWRpdHktZXJyb25lb3VzIixhKSxifSxyYWlzZTpmdW5jdGlvbihhKXt2YXIgYj1hLmNsb3Nlc3QoImZvcm0iKS5oYXNDbGFzcygianF0cmFuc2Zvcm1kb25lIik7YS5wYXJlbnQoKS5pcygiZGl2IikmJmI\/KGEucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKTphLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSksYS5pcygiOnJhZGlvIikmJmEuaXMoIi5qcVRyYW5zZm9ybUhpZGRlbiIpJiZhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX19fSgpLGZ1bmN0aW9uKGEpe2EudmFsaWRpdHkub3V0cHV0cy5jc3NPbmx5PXtzdGFydDpmdW5jdGlvbigpe2EoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykucmVtb3ZlQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcyl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YShhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyI6ZXEoMCkiKS5hdHRyKCJpZCIpKX0scmFpc2U6ZnVuY3Rpb24oYil7YShiKS5hZGRDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpOwovKiogL2pzL21haW4uanMgKiovCnZhciBfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDQtMDkgMTI6MzA6MDQiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWMpcmV0dXJuIGFbYl07Yz1hW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsYyxkKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGMsZCk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGMsZCkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7Yz0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpO2E9MT09PWUubGVuZ3RoO2Q9ZVswXTtkPSFhJiZkIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgaz0wO2s8ZS5sZW5ndGgtMTtrKyspe3ZhciBoPWVba107aWYoIShoIGluIGQpKXJldHVybjtkPWRbaF19ZT1lW2UubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZFtlXTpudWxsO2I9YihjKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2UpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGM9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoYy52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZCk7aWYoIWQuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGQ7dmFyIGU9ZC52YWx1ZX1jYXRjaChrKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGspLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBhLm5leHQoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gYS50aHJvdyhkKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZCxlKXtmdW5jdGlvbiBrKGgpe2guZG9uZT9kKGgudmFsdWUpOlByb21pc2UucmVzb2x2ZShoLnZhbHVlKS50aGVuKGIsYykudGhlbihrLGUpfWsoYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpqUXVlcnkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBqUXVlcnl9O2pRdWVyeS5ldmVudC5zcGVjaWFsLnRvdWNoc3RhcnQ9e3NldHVwOmZ1bmN0aW9uKGEsYixjKXtiLmluY2x1ZGVzKCJub1ByZXZlbnREZWZhdWx0Iik\/dGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixjLHtwYXNzaXZlOiExfSk6dGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixjLHtwYXNzaXZlOiEwfSl9fTtqUXVlcnkuZXhwci5wc2V1ZG9zLnJlYWxseVZpc2libGU9ZnVuY3Rpb24oYSl7dHJ5e2lmKGE9PWRvY3VtZW50LmJvZHkpcmV0dXJuITA7dmFyIGI9alF1ZXJ5KGEpO3JldHVybiBiLmlzKCI6dmlzaWJsZSIpJiYiaGlkZGVuIiE9PWIuY3NzKCJ2aXNpYmlsaXR5IikmJjA8Yi5wYXJlbnQoIjpyZWFsbHlWaXNpYmxlIikubGVuZ3RofWNhdGNoKGMpe3JldHVybiBjb25zb2xlLmxvZyhjLm1lc3NhZ2UsYyksITF9fTsKQXJyYXkucHJvdG90eXBlLmZpbmR8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsImZpbmQiLHt2YWx1ZTpmdW5jdGlvbihhLGIpe2lmKG51bGw9PXRoaXMpdGhyb3cgVHlwZUVycm9yKCcidGhpcyIgaXMgbnVsbCBvciBub3QgZGVmaW5lZCcpO3ZhciBjPU9iamVjdCh0aGlzKSxkPWMubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgVHlwZUVycm9yKCJwcmVkaWNhdGUgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Zm9yKHZhciBlPTA7ZTxkOyl7dmFyIGs9Y1tlXTtpZihhLmNhbGwoYixrLGUsYykpcmV0dXJuIGs7ZSsrfX0sY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk7CnZhciBpc0Z1bmN0aW9uPWE9PiJmdW5jdGlvbiI9PT10eXBlb2YgYSx0cmltPWE9PmEucmVwbGFjZSgvXlxzK3xccyskL2csIiIpLGRlYnVnPWZ1bmN0aW9uKCl7aWYoZGVidWdFbmFibGVkKCkpe3ZhciBhPWNvbnNvbGUsYj1hcmd1bWVudHM7ImZ1bmN0aW9uIj09dHlwZW9mIGEubG9nJiZhLmxvZy5hcHBseShhLGIpfX0sZGVidWdFbmFibGVkPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQubG9jYXRpb24uaG9zdDt2YXIgYj1kb2N1bWVudC5jb29raWUubWF0Y2goL3Rlc3Rpbmc9KFteO10rKS9pKTtiPW51bGw9PWI\/ITE6YlsxXTtyZXR1cm4gYnx8L14oZGVhbGVyfGRlbW8pfGQyY21lZGlhXC5jYSQvLnRlc3QoYSkmJiJvZmYiIT1ifSxlbmFibGVEZWJ1Zz1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJ0ZXN0aW5nIiwib24iKX0sZGlzYWJsZURlYnVnPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInRlc3RpbmciLCJvZmYiKX0sQWxlcnRCYXI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zZWN0aW9ucy50b0xvd2VyQ2FzZSgpLApjPWEuY3VycmVudC50b0xvd2VyQ2FzZSgpLGQ9JCgiLmhlYWRlci13cmFwcGVyIikubGVuZ3RoPyQoIi5oZWFkZXItd3JhcHBlciIpOiQoIiNtYWluRGl2IiksZT0kKCIjYWxlcnRNc2dDb250YWluZXIiKSxrPSQoImJvZHkiKSxoPSQoIi5BZGRlZFRvcExpbmtEaXYiKSxuPW5ldyBEYXRlO24uc2V0VGltZShuLmdldFRpbWUoKSszNkU1KTt2YXIgeD1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJhbGVydE1lc3NhZ2VDbG9zZWQiLDEsbiwiLyIpO2UuaGlkZSgpO2QuY3NzKHttYXJnaW5Ub3A6MH0pO2suY3NzKCJiYWNrZ3JvdW5kLXBvc2l0aW9uLXkiLCIiKTswPGgubGVuZ3RoJiZoLmNzcygibWFyZ2luLXRvcCIsIiIpfTstMTxiLmluZGV4T2YoYykmJiFDb29raWVzLmdldCgiYWxlcnRNZXNzYWdlQ2xvc2VkIikmJihlLmNzcyh7YmFja2dyb3VuZENvbG9yOmEuY29sb3J9KSwkKCIuY2xvc2UiLGUpLm9uKCJjbGljayIseCksZC5jc3MoIm1hcmdpbi10b3AiLGUuaGVpZ2h0KCkrInB4IiksCmsuY3NzKHsiYmFja2dyb3VuZC1wb3NpdGlvbi15IjplLmhlaWdodCgpKyJweCJ9KSwwPGgubGVuZ3RoJiZoLmNzcygibWFyZ2luLXRvcCIsZS5oZWlnaHQoKSsicHgiKSxlLnNob3coKSl9O2Z1bmN0aW9uIExlYWRHZW5BREYoYSxiLGMsZCxlLGssaCxuKXtpZih0eXBlb2YgY2FycHJvb2ZIYW5kbGVyKXJldHVybiBjYXJwcm9vZkhhbmRsZXIubGVhZEdlbi5hcHBseShjYXJwcm9vZkhhbmRsZXIsYXJndW1lbnRzKX0KZnVuY3Rpb24gcnVuSW1hZ2VQb3B1cEZpcmV3b3JrcygpeyJ1bmRlZmluZWQiIT10eXBlb2YgRmlyZXdvcmtUaW1lciYmKGltYWdlRmlyZXdvcmtzPSEwLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCJGRkZGRkYiLDIwMCwyMDApLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCJGRjAwMDAiLDM4MCwyNTAsMUUzKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiMDBmZjExIiw5MCwxNzAsMkUzKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiNDRjZGZmIiwzMjAsMjUwLDNFMywwLC44KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cnVuSW1hZ2VQb3B1cEZpcmV3b3JrcygpfSwxRTQpKX0KZnVuY3Rpb24gaGFuZGxlQWN0aW9uQ2xpY2soYSl7YT1hfHx3aW5kb3cuZXZlbnQ7YT1hLmN1cnJlbnRUYXJnZXR8fGEuc3JjRWxlbWVudDt2YXIgYj13aW5kb3cubG9jYXRpb24uaHJlZi5zdWJzdHJpbmcod2luZG93LmxvY2F0aW9uLmhyZWYubGFzdEluZGV4T2YoIi8iKSsxKSxjPSJ1c2VkIjt2YXIgZD0iIjtpZigtMT09d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiLWlkIikpe2Q9Yi5yZXBsYWNlKCIuaHRtbCIsIiIpLnNwbGl0KCItIik7aWYoMz5kLmxlbmd0aHx8LTE8Yi5pbmRleE9mKCJzZWFyY2giKXx8LTE8Yi5pbmRleE9mKCJmaW5kLSIpfHwtMTxiLmluZGV4T2YoInJlY2hlcmNoZSIpfHwtMTxiLmluZGV4T2YoInByaXgtIil8fC0xPGIuaW5kZXhPZigicHJpY2UtIil8fC0xPGIuaW5kZXhPZigiZXNzYWlzLXJvdXRpZXItIil8fC0xPGIuaW5kZXhPZigidGVzdC1kcml2ZS0iKXx8LTE8Yi5pbmRleE9mKCJ2ZWhpY3VsZS1lY2hhbmdlLSIpfHwtMTxiLmluZGV4T2YoInRyYWRlLWluLSIpfHwKLTE8Yi5pbmRleE9mKCJwbmV1cy1waWVjZXMtIil8fC0xPGIuaW5kZXhPZigiY2FyLXBhcnRzLSIpfHwtMTxiLmluZGV4T2YoInJlbmRlei12b3VzLSIpfHwtMTxiLmluZGV4T2YoIi1hcHBvaW50bWVudCIpfHwtMTxiLmluZGV4T2YoImNyZWRpdCIpfHwtMTxiLmluZGV4T2YoImZpbmFuY2VtZW50Iil8fC0xPGIuaW5kZXhPZigicHJlLWFwcHJvIil8fC0xPGIuaW5kZXhPZigibmV3LXdlc3QiKXx8LTE8Yi5pbmRleE9mKCJjb25maWRlbnRpYWxpdGUiKXx8LTE8Yi5pbmRleE9mKCJwcml2YWN5LXBvbGljeSIpfHwtMTxiLmluZGV4T2YoInRlcm1lcy1ldC1jb25kaXRpb25zIil8fC0xPGIuaW5kZXhPZigidGVybXMtYW5kLWNvbmRpdGlvbnMiKSlkPSIuaHRtbCI7ZWxzZXt2YXIgZT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7InVuZGVmaW5lZCI9PXR5cGVvZiBkWzJdfHxlIT1kWzJdJiZlKzEhPWRbMl18fChjPSJuZXciKTtkPSIvIitifWQ9YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLnJlcGxhY2UoIi5odG1sIiwKZCl9ZWxzZXtzd2l0Y2goYS5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpKXtjYXNlICJUZXN0RHJpdmVBY3Rpb25Cb3giOmQ9JCgiI3Rlc3REcml2ZUZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiUHJpY2VBY3Rpb25Cb3giOmQ9JCgiI3ByaWNlUmVxdWVzdEZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiRXZhbEFjdGlvbkJveCI6ZD0kKCIjZXZhbENhckZvbGRlciIpLnZhbCgpK2I7YnJlYWs7Y2FzZSAiRmluYW5jZUFjdGlvbkJveCI6ZD0kKCIjRmluYW5jZUZvbGRlciIpLnZhbCgpK2I7YnJlYWs7ZGVmYXVsdDoidW5kZWZpbmVkIiE9dHlwZW9mICQoYSkuYXR0cigiZm9sZGVyIik\/ZD0kKGEpLmF0dHIoImZvbGRlciIpOiJ1bmRlZmluZWQiIT10eXBlb2YgJChhKS5hdHRyKCJ0YXJnZXR1cmkiKSYmKGQ9JChhKS5hdHRyKCJ0YXJnZXR1cmkiKSl9Q29va2llcy5zZXQoImZyb21kZXRhaWxzcGFnZSIsIjEiLG51bGwsIi8iKX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGQmJm51bGwhPQpkJiYwPGQubGVuZ3RoKXtiPWQyY21lZGlhLmh0bWxGaWxlKCExLCEwKTtlPWIuc3BsaXQoIi0iKTt2YXIgaz0iIixoPSIiLG49IiI7MDxlLmxlbmd0aCYmKGs9ZVswXSk7MTxlLmxlbmd0aCYmKGg9ZVsxXSk7MjxlLmxlbmd0aCYmKG49ZVsyXSk7MDxrLmxlbmd0aCYmMDxoLmxlbmd0aCYmMDxuLmxlbmd0aCYmIWlzTmFOKG4pJiY0PT1uLnRvU3RyaW5nKCkubGVuZ3RoJiYtMTxkLmluZGV4T2YoIi5odG0iKSYmKGU9YS5nZXRBdHRyaWJ1dGUoImZvbGRlciIpLGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT1lP2U6ZC5zdWJzdHJpbmcoMCxkLmxhc3RJbmRleE9mKCIvIikrMSksZD1kLnJlcGxhY2UoIi5odG1sIiwiLyIpK2IrIi5odG1sIik7JChhKS5oYXNDbGFzcygidHJhZGVpbkxpbmsiKSYmKDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoInRyYWRlaW52YWx1ZXMiKXx8MDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigiaW5zdGFudG9mZmVyLmFjY3UtdHJhZGUuY29tIikpPwpzaG93VHJhZGVJblBvcHVwKGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKSk6KCJuZXciPT1jJiYoZD1kLnJlcGxhY2UoIm9jY2FzaW9uIiwibmV1ZiIpLnJlcGxhY2UoInVzZWQiLCJuZXciKSksd2luZG93LmxvY2F0aW9uLmhyZWY9ZCl9fQpmdW5jdGlvbiBvcGVuRmluYW5jZU11bHRpc3RlcEZvcm1PbkN1cnJlbnRQYWdlKGEsYixjLGQsZSxrLGgpe2EucHJldmVudERlZmF1bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2I\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoYik6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIuYnJhbmRlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW1ha2UiKS52YWwoKSk7Yz8kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoYyk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoJCgiLm1vZGVsZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYKJCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW1vZGVsIikudmFsKCkpO2Q\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoZCk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIueWVhcmVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmJCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lbXllYXIiKS52YWwoKSk7ZT8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoZSk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKT8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoIiIpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmJCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCkpOwprPyQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoayk6Ik5FV0NBUkRFVEFJTFMiPT0kKCJib2R5IikuYXR0cigiaWQiKSYmJCgiI3RvcGNhcmlkTXVsdGlzdGVwRm9ybSIpLnZhbCgiIik7aCYmKGguc2VuZFRvJiYkKCIjRklOQU5DRV9GT1JNX1NFTkRUT19FTUFJTCIpLnZhbChoLnNlbmRUbyksaC5zZW5kVG9BZGYmJiQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPQURGX0VNQUlMIikudmFsKGguc2VuZFRvQWRmKSxoLmRlYWxlck5hbWUmJiQoIiNGSU5BTkNFX0ZPUk1fREVBTEVSTkFNRSIpLnZhbChoLmRlYWxlck5hbWUpKTthPSJmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiOyQoIiNGaW5hbmNlX0Zvcm1UeXBlIikubGVuZ3RoJiYibXVsdGlzdGVwSW5zdGFudCI9PSQoIiNGaW5hbmNlX0Zvcm1UeXBlIikudmFsKCkmJiQoIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYoYT0iZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIpOwokKCIjIithKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigxKX1mdW5jdGlvbiBvcGVuU2hvd3Jvb21Db250YWN0UG9wdXAoYSxiLGMsZCl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCk7ZW1haWxIYW5kbGVyLm1ha2U9YjskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoYik7ZW1haWxIYW5kbGVyLm1vZGVsPWM7JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbChjKTtlbWFpbEhhbmRsZXIueWVhcj1kOyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbChkKTskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX12YXIgZDJjbWVkaWE9ZDJjbWVkaWF8fHt9OwpkMmNtZWRpYS5zY3JvbGxUbz1mdW5jdGlvbihhLGIsYyl7InVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0xRTMpOyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9MCk7JCgiaHRtbCwgYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKGEpLm9mZnNldCgpLnRvcC1ifSxjKTtyZXR1cm4hMX07CmQyY21lZGlhLnVybD17X3Nhbml0aXplOiEwLGRlc2FuaXRpemU6ZnVuY3Rpb24oYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYSlyZXR1cm4gYS5yZXBsYWNlKC9fL2csIi0iKTtpZigib2JqZWN0Ij09PXR5cGVvZiBhKXtmb3IodmFyIGIgaW4gYSlhW2JdPXRoaXMuZGVzYW5pdGl6ZShhW2JdKTtyZXR1cm4gYX19LGdlbmVyYXRlOmZ1bmN0aW9uKCl7dmFyIGE9IiI7dGhpcy5fc2FuaXRpemUmJihhcmd1bWVudHM9dGhpcy5zYW5pdGl6ZShhcmd1bWVudHMpKTtmb3IoaT0wO2k8YXJndW1lbnRzLmxlbmd0aC0xO2krKylhKz1hcmd1bWVudHNbaV0rIi0iO3JldHVybiBhK2FyZ3VtZW50c1tpXSsiLmh0bWwifSxwYXJzZTpmdW5jdGlvbigpe3VybD1kZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuVVJMKTtzdHJQYXJhbT11cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZigiLyIpKTtvYmpQYXJhbT17bWFrZTpudWxsLG1vZGVsOm51bGwseWVhcjpudWxsLGlkOm51bGx9O2ZvdW5kPSExOwp2YXIgYTtudWxsIT0oYT1zdHJQYXJhbS5tYXRjaCgvXlwvKDIwWzAtOV17Mn18MTlbMC05XXsyfSktKFteLV0rLVteLVwuXSspKC4qXC5odG1sKS8pKSYmKHN0clBhcmFtPSIvIithWzJdKyItIithWzFdK2FbM10pO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oLiopLShcZHs0fSkoLWlkKFxkKikpPy5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sb2JqUGFyYW0ueWVhcj1hWzNdLG9ialBhcmFtLmlkPWFbNV0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oLiopLShcZHs0fSkoLWNcZCopPy5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sb2JqUGFyYW0ueWVhcj1hWzNdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKFxkezR9KS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT0KYVsxXSxvYmpQYXJhbS55ZWFyPWFbMl0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oW14uXSopLmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sb2JqUGFyYW0ubW9kZWw9YVsyXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sZm91bmQ9ITApO3RoaXMuX3Nhbml0aXplJiYob2JqUGFyYW09dGhpcy5kZXNhbml0aXplKG9ialBhcmFtKSk7cmV0dXJuIG9ialBhcmFtfSxzYW5pdGl6ZTpmdW5jdGlvbihhKXtpZigic3RyaW5nIj09PXR5cGVvZiBhKXJldHVybiBhLnJlcGxhY2UoLy0vZywiXyIpLnJlcGxhY2UoL1snIl0vZywiIik7aWYoIm9iamVjdCI9PT10eXBlb2YgYSl7Zm9yKHZhciBiIGluIGEpYVtiXT10aGlzLnNhbml0aXplKGFbYl0pO3JldHVybiBhfX0sc2FuaXRpemVSZWZlcmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1snImAoKTw+XFtcXXt9fCFdL2csCiIiKX19O2QyY21lZGlhLmdldEh0dHBUZXh0PWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOiI9PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sJiYkKCIjdG9wZGVwbG95bWVudHR5cGUiKS5sZW5ndGgmJiJsaXZlIj09JCgiI3RvcGRlcGxveW1lbnR0eXBlIikudmFsKCk\/Imh0dHBzIjoiaHR0cCJ9O2QyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcj1mdW5jdGlvbihhKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGE\/IiI6YS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnNsaWNlKDEpfTtkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZD1mdW5jdGlvbihhKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGE\/IiI6YS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihiLGMpe2M9ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyKGMpO3JldHVybiBiP2IrIiAiK2M6Y30sIiIpfTsKZDJjbWVkaWEuc2FmZVN0cmluZz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLnRleHRDb250ZW50PWE7cmV0dXJuIGIuaW5uZXJUZXh0fTsKZDJjbWVkaWEuaHRtbEZpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz13aW5kb3cubG9jYXRpb24uc2VhcmNoLmxlbmd0aCYmLTE8d2luZG93LmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJwYXRoPSIpP3dpbmRvdy5sb2NhdGlvbi5zZWFyY2g6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO2M9Yy5zdWJzdHJpbmcoYy5sYXN0SW5kZXhPZigiLyIpKzEpO2M9ZDJjbWVkaWEuc2FmZVN0cmluZyhjKTt0cnl7dmFyIGQ9ZGVjb2RlVVJJQ29tcG9uZW50KGMpfWNhdGNoKGspe3ZhciBlPXsiJUMwIjoiJkFncmF2ZTsiLCIlQzEiOiImQWFjdXRlOyIsIiVDMiI6IiZBY2lyYzsiLCIlQzMiOiImQXRpbGRlOyIsIiVDNCI6IiZBdW1sOyIsIiVDNSI6IiZBcmluZzsiLCIlQzYiOiImQUVsaWc7IiwiJUM3IjoiJkNjZWRpbDsiLCIlQzgiOiImRWdyYXZlOyIsIiVDOSI6IiZFYWN1dGU7IiwiJUNBIjoiJkVjaXJjOyIsIiVDQiI6IiZFdW1sOyIsIiVDQyI6IiZJZ3JhdmU7IiwiJUNEIjoiJklhY3V0ZTsiLCIlQ0UiOiImSWNpcmM7IiwKIiVDRiI6IiZJdW1sOyIsIiVEMCI6IiZFVEg7IiwiJUQxIjoiJk50aWxkZTsiLCIlRDIiOiImT2dyYXZlOyIsIiVEMyI6IiZPYWN1dGU7IiwiJUQ0IjoiJk9jaXJjOyIsIiVENSI6IiZPdGlsZGU7IiwiJUQ2IjoiJk91bWw7IiwiJUQ4IjoiJk9zbGFzaDsiLCIlRDkiOiImVWdyYXZlOyIsIiVEQSI6IiZVYWN1dGU7IiwiJURCIjoiJlVjaXJjOyIsIiVEQyI6IiZVdW1sOyIsIiVERCI6IiZZYWN1dGU7IiwiJURFIjoiJlRIT1JOOyIsIiVERiI6IiZzemxpZzsiLCIlRTAiOiImYWdyYXZlOyIsIiVFMSI6IiZhYWN1dGU7IiwiJUUyIjoiJmFjaXJjOyIsIiVFMyI6IiZhdGlsZGU7IiwiJUU0IjoiJmF1bWw7IiwiJUU1IjoiJmFyaW5nOyIsIiVFNiI6IiZhZWxpZzsiLCIlRTciOiImY2NlZGlsOyIsIiVFOCI6IiZlZ3JhdmU7IiwiJUU5IjoiJmVhY3V0ZTsiLCIlRUEiOiImZWNpcmM7IiwiJUVCIjoiJmV1bWw7IiwiJUVDIjoiJmlncmF2ZTsiLCIlRUQiOiImaWFjdXRlOyIsIiVFRSI6IiZpY2lyYzsiLAoiJUVGIjoiJml1bWw7IiwiJUYwIjoiJmV0aDsiLCIlRjEiOiImbnRpbGRlOyIsIiVGMiI6IiZvZ3JhdmU7IiwiJUYzIjoiJm9hY3V0ZTsiLCIlRjQiOiImb2NpcmM7IiwiJUY1IjoiJm90aWxkZTsiLCIlRjYiOiImb3VtbDsiLCIlRjciOiImZGl2aWRlOyIsIiVGOCI6IiZvc2xhc2g7IiwiJUY5IjoiJnVncmF2ZTsiLCIlRkEiOiImdWFjdXRlOyIsIiVGQiI6IiZ1Y2lyYzsiLCIlRkMiOiImdXVtbDsiLCIlRkQiOiImeWFjdXRlOyIsIiVGRSI6IiZ0aG9ybjsiLCIlRkYiOiImeXVtbDsifTtkPWMucmVwbGFjZSgvJVswLTlBLUZdezJ9L2lnLGZ1bmN0aW9uKGgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZVtoXSlyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGgpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtuLnRleHRDb250ZW50PWVbaF07cmV0dXJuIG4uaW5uZXJUZXh0fSl9ZD1kLnN1YnN0cmluZygwLGQuaW5kZXhPZigiLmh0bSIpKTthJiYoZD1kLnJlcGxhY2UoLyAvZywKIl8iKS5yZXBsYWNlKC8nL2csIiIpLnJlcGxhY2UoIi5odG1sIiwiIikpO251bGwhPShhPWQubWF0Y2goL14oMTlbMC05XXsyfXwyMFswLTldezJ9KS0oW14tXSstW14tXSspKC4qKSQvKSkmJihkPWFbMl0rIi0iK2FbMV0rYVszXSwiRU5HTElTSCI9PSgiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iRU5HTElTSCI6IkZSRU5DSCIpJiZiJiYoZD1hWzFdKyItIithWzJdK2FbM10pKTtyZXR1cm4gZH07ZDJjbWVkaWEuaXNIb21lcGFnZT1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4iLyI9PWF8fCIvZW5nLyI9PWF8fCIvZnIvIj09YX07ZDJjbWVkaWEucGFnZURlcGFydG1lbnQ9ZnVuY3Rpb24oKXt2YXIgYT0kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTtyZXR1cm4iT1RIRVIiPT1hJiZkMmNtZWRpYS5pc0hvbWVwYWdlKCk\/IkhPTUVQQUdFIjphfTsKdmFyIGpzX2QyY19nZXRfdmFsPWpzX2QyY19nZXRfdmFsfHxmdW5jdGlvbihhKXt0cnl7cmV0dXJuKGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKT9lbC52YWx1ZToiIn1jYXRjaChiKXtyZXR1cm4gY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJTeXN0ZW0gZmFpbGVkIHdoaWxlIHJldHJpZXZpbmcgcmVwbGFjZW1lbnQgdmFsdWU6ICIrYi5tZXNzYWdlLGIpLGF9fTtTdHJpbmcucHJvdG90eXBlLm5vRDJDUmVwbGFjZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlT2YoKX07CmQyY0JHQ2xpY2s9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczskLmV4dGVuZChiLGEpO3RoaXMuc2V0PWZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9ITEpO3ZhciBkPWIuYmdJbWdVcmwsZT1iLmJnSW1nUGF0aCxrPWIuYmdJbWdGaXhlZCxoPWIuYmdJbWdSZXNwb25zaXZlLG49Yi5tYWtlLHg9ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvLS9nLCIiKSx2PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkudG9Mb3dlckNhc2UoKToiZnJlbmNoIixmPSIiLGc9ITE7MCE9YyYmKG49Yy50b0xvd2VyQ2FzZSgpKTt2YXIgbT1jPSIiO24\/ZS5oYXNPd25Qcm9wZXJ0eShuKT8oYz1lW25dLG09a1tuXStoW25dLGc9ITApOmUuaGFzT3duUHJvcGVydHkoImFsbCIpPyhjPWUuYWxsLG09ay5hbGwraC5hbGwsZz0hMCk6ZS5oYXNPd25Qcm9wZXJ0eSh2KSYmKGM9ZVt2XSxtPWtbdl0raFt2XSk6ZS5oYXNPd25Qcm9wZXJ0eSh2KSYmCjA9PWcmJihjPWVbdl0sbT1rW3ZdK2hbdl0pO2MmJihiLmJnSW1nPWMuc3BsaXQoIi8iKS5wb3AoKSwkKCJib2R5IikuYXR0cigic3R5bGUiLCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIrYysiJyk7IGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IittKSk7Zm9yKHZhciBsIGluIGQpe2lmKC0xIT14LmluZGV4T2YobCx4KSl7Zj1kW2xdO2JyZWFrfWlmKGw9PXYpe2Y9ZFtsXTticmVha319MD09Zi5sZW5ndGgmJihkLmhhc093blByb3BlcnR5KG4pP2Y9ZFtuXTpkLmhhc093blByb3BlcnR5KCJhbGwiKSYmKGY9ZC5hbGwpKTswPGYubGVuZ3RoJiYoZD0kKHdpbmRvdykud2lkdGgoKS8yLSQoIi53cmFwcGVyIikud2lkdGgoKS8yLGU9JCh3aW5kb3cpLndpZHRoKCkvMiskKCIud3JhcHBlciIpLndpZHRoKCkvMiwkKCIjYmdDbGljazEiKS5yZW1vdmUoKSwkKCIjYmdDbGljazIiKS5yZW1vdmUoKSwkKCJib2R5IikuYXBwZW5kKCI8ZGl2IGlkPSdiZ0NsaWNrMScgc3R5bGU9J3otaW5kZXg6MTAwO2N1cnNvcjpwb2ludGVyO3dpZHRoOiIrCmQrInB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MHB4O3RvcDowcHg7Jz48L2Rpdj4iKSwkKCJib2R5IikuYXBwZW5kKCI8ZGl2IGlkPSdiZ0NsaWNrMicgc3R5bGU9J3otaW5kZXg6MTAwO2N1cnNvcjpwb2ludGVyO3dpZHRoOiIrZCsicHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246Zml4ZWQ7bGVmdDoiK2UrInB4O3RvcDowcHg7Jz48L2Rpdj4iKSwkKCIjYmdDbGljazEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5yZWRpcmVjdChmKX0pLCQoIiNiZ0NsaWNrMiIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLnJlZGlyZWN0KGYpfSkpfTt0aGlzLnJlc2V0PWZ1bmN0aW9uKGMpe2Iuc2V0KCl9O3RoaXMucmVkaXJlY3Q9ZnVuY3Rpb24oYyl7ImxpdmUiPT1iLmRlcGxveW1lbnRUeXBlJiYoZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJDbGlxdWVzIiwiSW1hZ2UtZGUtZm9uZCIsYi5iZ0ltZywxKSwiZnVuY3Rpb24iPT10eXBlb2YgYi5kMmNFdmVudCYmYi5kMmNFdmVudC5jYWxsKGIsCmIuYmdJbWcpKTt3aW5kb3cub3BlbihjKX07JCh3aW5kb3cpLm9uKCJyZXNpemUiLGIucmVzZXQpO3JldHVybiB0aGlzfTt2YXIgaW5qZWN0R29vZ2xlTWFwc0tleT1mdW5jdGlvbihhKXtsZXQgYj1udWxsO3JldHVybiBmdW5jdGlvbihjKXtpZihiKXJldHVybiBjKGIpO2EuYWpheCgiL2FqYXgvZ2V0R29vZ2xlTWFwc0tleSIpLmRvbmUoZnVuY3Rpb24oZCl7Yj0oZC5rZXk\/ZC5rZXk6IiIpLnJlcGxhY2UoL1teQS16MC05Xy1dL2csIiIpO2MoYil9KX19KGpRdWVyeSk7CmZ1bmN0aW9uIHJoc1Byb21vSW1hZ2UoYSl7dmFyIGI9dGhpcztiLmRhdGE9YTt2YXIgYz1bXSxkPS0xO2E9d2luZG93LmxvY2F0aW9uO2E9ZGVjb2RlVVJJQ29tcG9uZW50KGEucGF0aG5hbWUrYS5zZWFyY2gpLnRvTG93ZXJDYXNlKCk7Zm9yKHNlYXJjaCBpbiBiLmRhdGEpaWYoImRlZmF1bHQiPT1zZWFyY2h8fC0xIT1hLmluZGV4T2YoZGVjb2RlVVJJQ29tcG9uZW50KChzZWFyY2grIiIpLnRvTG93ZXJDYXNlKCkpKSlmb3IoaT0wO2k8Yi5kYXRhW3NlYXJjaF0ubGVuZ3RoO2krKyljLnB1c2goYi5kYXRhW3NlYXJjaF1baV0pO2Iucm90YXRlPWZ1bmN0aW9uKCl7KytkPmMubGVuZ3RoLTEmJihkPTApO3ZhciBlPWNbZF0saz0kKCI8aW1nIC8+IikuYXR0cih7c3JjOmUuaSxzdHlsZToid2lkdGg6MTAwJTsgbWF4LXdpZHRoOjI4MHB4OyBib3JkZXItcmFkaXVzOiA1cHg7IGN1cnNvcjpwb2ludGVyOyIsYWx0OiIifSk7JCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLmh0bWwoayk7bnVsbCE9CmUudSYmMDxlLnUubGVuZ3RoJiYkKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuYXR0cigib25jbGljayIsIndpbmRvdy5sb2NhdGlvbiA9ICciK2UudSsiJyIpOyQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5zaG93KCk7MSE9Yy5sZW5ndGgmJnNldFRpbWVvdXQoYi5yb3RhdGUsZS5kZWxheSl9OzA8Yy5sZW5ndGgmJmIucm90YXRlKCl9ZnVuY3Rpb24gY2xlYW5UZXh0KGEpe2E9YS5yZXBsYWNlKC9bXHg2MF0vZywiJyIpO2E9YS5yZXBsYWNlKC\/igJkvZywiJyIpO2E9YS5yZXBsYWNlKC9gL2csIiciKTtyZXR1cm4gYT1hLnJlcGxhY2UoL1tcdTIwMTld4oCZL2csIiciKX0KZnVuY3Rpb24gZW5jb2RlVGV4dChhKXt2YXIgYj1hO3RyeXtiPSQuYmFzZTY0LmVuY29kZShhKX1jYXRjaChrKXtjb25zb2xlLmxvZyhrLm1lc3NhZ2Usayk7YT0iIjtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9Yi5jaGFyQXQoYyksZT1kLmNoYXJDb2RlQXQoMCk7aWYoNDc8ZSYmNTg+ZXx8NjQ8ZSYmOTE+ZXx8OTY8ZSYmMTIzPmUpYSs9ZDtlbHNlIHRyeXskLmJhc2U2NC5lbmNvZGUoZCksYSs9ZH1jYXRjaChoKXt9fWI9JC5iYXNlNjQuZW5jb2RlKGEpfXJldHVybiBifWZ1bmN0aW9uIGNsZWFuQW5kRW5jb2RlVGV4dChhKXt0cnl7dmFyIGI9IiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhKXJldHVybiIiO2I9InN0cmluZyIhPXR5cGVvZiBhP2EudG9TdHJpbmcoKTphO2I9Y2xlYW5UZXh0KGIpO3JldHVybiBiPWVuY29kZVRleHQoYil9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKGMubWVzc2FnZSxjKSxhfX0KZnVuY3Rpb24gRXhQaG9uZShhKXtzd2l0Y2goYS50eXBlKXtjYXNlICJtb3VzZWVudGVyIjokKCIuZXh0ZW5kZWRQaG9uZSIpLnNob3coKTticmVhaztjYXNlICJtb3VzZWxlYXZlIjokKCIuZXh0ZW5kZWRQaG9uZSIpLmhpZGUoKX19ZnVuY3Rpb24gZ2V0UmVzaXplZEltYWdlcygpe2RlYnVnRW5hYmxlZCgpO3JldHVybiExfWZ1bmN0aW9uIGNoYW5nZUhvbWVBY3Rpb25CYWNrSW1hZ2UoYSxiKXskKGEpLmNzcyh7YmFja2dyb3VuZDoidXJsKCIrYisiKSIsYmFja2dyb3VuZFJlcGVhdDoibm8tcmVwZWF0IixiYWNrZ3JvdW5kU2l6ZToiMjQwcHggMTIxcHgifSl9dmFyIF9fY3VycmVudFRocmVhc2hvbGQ7CmZ1bmN0aW9uIHRocmVhZGhvbGRTY3JvbGxQZXJjZW50KCl7X19jdXJyZW50VGhyZWFzaG9sZHx8KF9fY3VycmVudFRocmVhc2hvbGQ9KCQod2luZG93KS5oZWlnaHQoKSskKGRvY3VtZW50KS5zY3JvbGxUb3AoKSkvJChkb2N1bWVudCkuaGVpZ2h0KCksc2V0VGltZW91dCgiX19jdXJyZW50VGhyZWFzaG9sZCA9IG51bGwiLDMzMykpO3JldHVybiBfX2N1cnJlbnRUaHJlYXNob2xkfQpmdW5jdGlvbiB0aHJlc2hvbGRFeGVjKGEsYixjKXt2YXIgZD1udWxsO2M9Yz9jOltdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhKXt2YXIgZT1NYXRoLnJvdW5kKDFFNCphKS8xRTQ7MTxlJiYoZS89MTAwKTthPWZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBrPWZ1bmN0aW9uKCl7aWYodGhyZWFkaG9sZFNjcm9sbFBlcmNlbnQoKT5hKCkpe3RyeXtiLmFwcGx5KG51bGwsYyl9Y2F0Y2goaCl7Y29uc29sZS5sb2coaCl9ZD1jbGVhckludGVydmFsKGQpfX07JChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkPXNldEludGVydmFsKGssMzMzKX0sMkUzKX0pfQpmdW5jdGlvbiBzY3JvbGx1cEV4ZWMoYSl7dmFyIGI9bnVsbCxjPTAsZD1mdW5jdGlvbigpeyQod2luZG93KS5vbigic2Nyb2xsIixmdW5jdGlvbihlKXtlPSQodGhpcykuc2Nyb2xsVG9wKCk7ZTxjJiYoYS5jYWxsKG51bGwpLGI9Y2xlYXJJbnRlcnZhbChiKSk7Yz1lfSl9OyQoZnVuY3Rpb24oKXtiPXNldEludGVydmFsKGQsMzMzKX0pfWZ1bmN0aW9uIGluVmlld0V4ZWMoYSxiKXt0aHJlc2hvbGRFeGVjKGZ1bmN0aW9uKCl7dmFyIGM9JChhKTt0cnl7cmV0dXJuIWMubGVuZ3RofHxjLmlzKCI6aGlkZGVuIil8fDA9PWMub2Zmc2V0KCkudG9wPy45NTpjLm9mZnNldCgpLnRvcC8kKGRvY3VtZW50KS5oZWlnaHQoKX1jYXRjaChkKXtyZXR1cm4uOTV9fSxiLFthXSl9dmFyIGx0X0lFOT0iZnVuY3Rpb24iIT10eXBlb2YgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj8hMDohMSxsdF9JRTExPTA9PSFkb2N1bWVudC5hbGw7CmZ1bmN0aW9uIGlzSUUoKXt2YXIgYT1kb2N1bWVudC5kb2N1bWVudE1vZGU7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT0iIn1jYXRjaChjKXt9dmFyIGI9Im51bWJlciI9PXR5cGVvZiBkb2N1bWVudC5kb2N1bWVudE1vZGV8fChuZXcgRnVuY3Rpb24oInJldHVybi8qQGNjX29uIUAqLyExIikpKCk7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT1hfWNhdGNoKGMpe31yZXR1cm4gYn12YXIgdD0wO19fc3RhcnQ9ZnVuY3Rpb24oKXt0PShuZXcgRGF0ZSkuZ2V0VGltZSgpfTtfX3N0b3A9ZnVuY3Rpb24oKXt2YXIgYT0obmV3IERhdGUpLmdldFRpbWUoKTtjb25zb2xlLmxvZygidG9vayIsKGEtdCkvMUUzKX07dmFyIGFsZXJ0RmFsbGJhY2s9ITA7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZS5sb2cpY29uc29sZT17fSxjb25zb2xlLmxvZz1hbGVydEZhbGxiYWNrP2Z1bmN0aW9uKGEpe306ZnVuY3Rpb24oKXt9OwpBcnJheS5wcm90b3R5cGUubWFwfHwoQXJyYXkucHJvdG90eXBlLm1hcD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYobnVsbD09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKCIgdGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGU9T2JqZWN0KHRoaXMpLGs9ZS5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGM9Yik7dmFyIGg9QXJyYXkoayk7Zm9yKGQ9MDtkPGs7KXtpZihkIGluIGUpe3ZhciBuPWVbZF07bj1hLmNhbGwoYyxuLGQsZSk7aFtkXT1ufWQrK31yZXR1cm4gaH0pO0FycmF5LnByb3RvdHlwZS5pbmRleE9mfHwoQXJyYXkucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oYSxiKXtiPWJ8fDA7Zm9yKHZhciBjPXRoaXMubGVuZ3RoO2I8YztiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9KTsKQXJyYXkucHJvdG90eXBlLnJlZHVjZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwicmVkdWNlIix7dmFsdWU6ZnVuY3Rpb24oYSl7aWYobnVsbD09PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnJlZHVjZSBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWQiKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTt2YXIgYj1PYmplY3QodGhpcyksYz1iLmxlbmd0aD4+PjAsZD0wO2lmKDI8PWFyZ3VtZW50cy5sZW5ndGgpdmFyIGU9YXJndW1lbnRzWzFdO2Vsc2V7Zm9yKDtkPGMmJiEoZCBpbiBiKTspZCsrO2lmKGQ+PWMpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO2U9YltkKytdfWZvcig7ZDxjOylkIGluIGImJihlPWEoZSxiW2RdLGQsYikpLGQrKztyZXR1cm4gZX19KTsKQXJyYXkucHJvdG90eXBlLmZvckVhY2h8fChBcnJheS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihhKXt2YXIgYixjO2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigidGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGQ9T2JqZWN0KHRoaXMpLGU9ZC5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGI9YXJndW1lbnRzWzFdKTtmb3IoYz0wO2M8ZTspe2lmKGMgaW4gZCl7dmFyIGs9ZFtjXTthLmNhbGwoYixrLGMsZCl9YysrfX0pO2Z1bmN0aW9uIGdldERhdGFBdHRyaWJ1dGVzKGEpe3JldHVybiBhLmRhdGFzZXR8fFtdLnNsaWNlLmNhbGwoYS5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXtyZXR1cm4vXmRhdGEtLy50ZXN0KGMubmFtZSkmJihiW2MubmFtZS5zdWJzdHIoNSldPWMudmFsdWUpLGJ9LHt9KX0KZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKGEpe2E9YS5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2E9KG5ldyBSZWdFeHAoIltcXD8mXSIrYSsiPShbXiYjXSopIikpLmV4ZWMobG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gbnVsbD09YT8iIjpkZWNvZGVVUklDb21wb25lbnQoYVsxXS5yZXBsYWNlKC9cKy9nLCIgIikpfQpmdW5jdGlvbiBzaG93VHJhZGVJblBvcHVwKGEpe2lmKDA9PSQoIiN0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXt2YXIgYj0iNzUwcHgiLGM9IjU3MHB4IjsxPT0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmKGI9IjMwMHB4IixjPSI2MDBweCIpOyQoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9InRyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJytiKyI7IGhlaWdodDogIitjKyciPjxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9kaXY+PGlmcmFtZSBzcmM9IicrYSsnIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgIGNsYXNzPSItdDAgLWwwIC13MTAwcCAtaDEwMHAiIGlkPSJ0cmFkZWluTGlua1BvcHVwSWZyYW1lIj48L2lmcmFtZT48L2Rpdj4nKX0kKCIjdHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIGN1cnJlbnRQcm9tb1JlZGlyZWN0KCl7ZXZlbnQucHJldmVudERlZmF1bHQoKTtzd2l0Y2goITApe2Nhc2UgImZ1bmN0aW9uIj09dHlwZW9mIHNob3dQb3B1cFdpZGdldDpzaG93UG9wdXBXaWRnZXQoKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI1ZpZXdQcm9tb0FjdGlvbkJveExpbmsiKS5hdHRyKCJocmVmIik6JCgiI1ZpZXdQcm9tb0FjdGlvbkJveExpbmsiKVswXS5jbGljaygpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcHJvbW90aW9uU2lkZVZCdXR0b24gYSIpLmF0dHIoImhyZWYiKTokKCIjcHJvbW90aW9uU2lkZVZCdXR0b24gYSIpWzBdLmNsaWNrKCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNWaWV3Q3VzdG9tUHJvbW9BY3Rpb25Cb3hMaW5rIikuYXR0cigiaHJlZiIpOiQoIiNWaWV3Q3VzdG9tUHJvbW9BY3Rpb25Cb3hMaW5rIilbMF0uY2xpY2soKX19CmZ1bmN0aW9uIHNob3dOZXdSZWJhdGVDb2RlUG9wdXAoKXswIT0kKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmMCE9JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKXx8JCgiI0ltYWdlUG9wdXBDb250YWluZXJfbmV3cmViYXRlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1mdW5jdGlvbiBzaG93TmV3QmVzdFByaWNlVmRwUG9wdXAoKXswIT0kKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmMCE9JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKXx8JCgiI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gcHJpbnRfcHJvbW9fcHJldihhKXt2YXIgYj0hMSxjPSQoYSkucGFyZW50cygiLnByb21vcyIpO2E9Yy5maW5kKCIucHJvbW8tdGl0bGUiKS5odG1sKCk7dmFyIGQ9Yy5maW5kKCIucHJvbW8tZGVzYyIpLmh0bWwoKTtjPWMuZmluZCgiLnByb21vLWltYWdlIGltZyIpLmF0dHIoImRhdGEtcHJpbnQtc3JjIik7JCgiI3Byb21vVG9QcmludCIpLnJlbW92ZSgpOyQoIiNwcm9tb1RvUHJpbnRXcmFwIikucmVtb3ZlKCk7JCgiYm9keSIpLmFwcGVuZCgnPGRpdiBjbGFzcz0idG9wcmludCIgaWQ9InByb21vVG9QcmludCI+PGltZyBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlOyIgc3JjPSInK2MrJyIgYWx0PSIiIGlkPSJwcm9tb0ltZyI+PGJyPjxicj48Yj4nK2ErIjwvYj48YnI+IitkKyI8L2Rpdj4iKTskKCIjcHJvbW9JbWciKS5vbigibG9hZCIsZnVuY3Rpb24oKXtifHwkKCIjcHJvbW9Ub1ByaW50IikucHJpbnRFbGVtZW50KCk7Yj0hMH0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtifHwKJCgiI3Byb21vVG9QcmludCIpLnByaW50RWxlbWVudCgpO2I9ITB9LDFFMyk7cmV0dXJuITF9ZnVuY3Rpb24gZ2V0TXVsdGlwbGVBZGRyZXNzUGhvbmUoYSl7JCgiLm11bHRpQWRkcmVzc1Bob25lIikuc2xpZGVVcCgpO2E9JCgiLm11bHRpQWRkcmVzc1Bob25lIiwkKCQoYSkucGFyZW50KCkpKTskKGEpLmlzKCI6aGlkZGVuIik\/JChhKS5zbGlkZURvd24oKTokKGEpLnNsaWRlVXAoKX0KZnVuY3Rpb24gYWRkR2VuZXJhbFN0eWxlKCl7dmFyIGE9JCgiI0FETUlOX0dFTkVSQUxfQkdfQ09MT1IiKS52YWwoKSxiPSQoIiNkZWZhdWx0X2JsYWNrX3RleHQiKS52YWwoKTtpZigiIzAwMDAwMCIhPWJ8fCIjMDAwIiE9YikkKCIuVXNlZFZkcDJNb2JpbGUgI2JyZWFkY3J1bWJzIikuYWRkQ2xhc3MoInRleHRDb2xvciIpLCQoImkuZmEtZmFjZWJvb2stc3F1YXJlIikuYWRkQ2xhc3MoInRleHRDb2xvciIpLCQoIi51c2VkLWRldGFpbHMgLmRlZmF1bHQgZGl2OmZpcnN0IikuYWRkQ2xhc3MoInRleHRDb2xvciIpOyIjZmZmZmZmIiE9YiYmIiNmZmYiIT1ifHwkKCIuVXNlZFNycDJNb2JpbGUgLmRlZmF1bHQgLm1ha2VNb2RlbFllYXIiKS5hZGRDbGFzcygidGV4dENvbG9yVXNlZFNSUE1vYmlsZSIpOyIjZmZmZmZmIiE9YSYmKCQoIi5vbGQtZGV0YWlscy10ciIpLmFkZENsYXNzKCJiZ05vbmUiKSwkKCIjc3BlY1RpdGxlIikuYWRkQ2xhc3MoImJnTm9uZSIpLCQoIi5Vc2VkVmRwMk1vYmlsZSIpLmFkZENsYXNzKCJvdGhlckJHIikpfQpmdW5jdGlvbiBhcHBlbmRUcmFkZUJvb3N0QmFubmVyKCl7fWRvY1JlYWR5QXJyLnB1c2goKCk9PnthcHBlbmRUcmFkZUJvb3N0QmFubmVyKCk7YWRkR2VuZXJhbFN0eWxlKCl9KTsKalF1ZXJ5KGZ1bmN0aW9uKGEpe2EoIiNuYXYiKS5hZGRDbGFzcygibmF2Iik7KGZ1bmN0aW9uKCl7TENfQVBJPXdpbmRvdy5MQ19BUEl8fHt9O0xDX0FQSS5vbl90aWNrZXRfY3JlYXRlZD1mdW5jdGlvbihtKXt0cnl7KGZ1bmN0aW9uKGwpe251bGwhPWwmJihsPSc8aW1nIHNyYz0iaHR0cHM6Ly9zdGF0cy5kMmNtZWRpYS5jYS9zZXJ2aWNlL2NvbnRhY3QuZ2lmP3RjPScrKG0udGlja2V0X2lkKyImdT0iK2wpKyciIHN0eWxlPSJ3aWR0aDoxcHg7aGVpZ2h0OjFweDtyaWdodDoxMHB4O3RvcDoxMHB4O3Bvc2l0aW9uOmFic29sdXRlOyIgLz4nLGEoImJvZHkiKS5hcHBlbmQobCkpfSkoZnVuY3Rpb24oKXt2YXIgbD0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6bnVsbDtyZXR1cm4gbnVsbD09bD9Db29raWVzLmdldCgidXVpZCIpOmx9KCkpfWNhdGNoKGwpe319fSkoKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygb25Db25maXJtU3VibWl0KWEoIi5jb25maXJtX2h0bWwiKS5vbigic3VibWl0IiwKb25Db25maXJtU3VibWl0KTt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5hdHRyKCJpZCIpKXt2YXIgYj0hMSxjPSExLGQ9ITEsZT0hMSxrPSExLGg9ITEsbj0xMDAseD0xPGEoIiNzbGlkZXIubml2b1NsaWRlciBhIikubGVuZ3RoPyEwOiExO2EoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgmJihoPWs9ZT1kPWM9Yj0hMCxuPWEoIiNCQU5ORVJfU0VBUkNIX0JBUl9WSURFT19PUEFDSVRZIikubGVuZ3RoP2EoIiNCQU5ORVJfU0VBUkNIX0JBUl9WSURFT19PUEFDSVRZIikudmFsKCk6MTAwKTtkb2NSZWFkeUFyci5wdXNoKCgpPT57c2V0VGltZW91dChmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLm5pdm9TbGlkZXIoe2VmZmVjdDoiZmFkZSIsYmVmb3JlQ2hhbmdlOmZ1bmN0aW9uKCl7YSgiI3BhcmFsbGF4V3JhcHBlciIpLmVubGxheCgpfSxhZnRlckNoYW5nZTpmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLnRyaWdnZXIoIm5pdm9TbGlkZXJDaGFuZ2VkIil9LAphZnRlckxvYWQ6ZnVuY3Rpb24oKXthKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS50cmlnZ2VyKCJuaXZvU2xpZGVyTG9hZGVkIik7YSgiI3BhcmFsbGF4V3JhcHBlciIpLmVubGxheCgpO2EoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgmJihhKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5zdG9wLGEoIi5uaXZvLWNvbnRyb2xOYXYiKS5oaWRlKCksYSgiLm5pdm8tZGlyZWN0aW9uTmF2IikuaGlkZSgpLHRoaXMuc3RhcnRZb3V0dWJlKCkpfSxtYW51YWxBZHZhbmNlOmIsdmlkZW9Pbkxvb3A6YyxoaWRlQ29udHJvbDpkLGhpZGVJbmZvOmUsZnVsbFdpZHRoOmssbXV0ZVZpZGVvOmgsdmlkZW9CcmlnaHRuZXNzOm4sY29udHJvbE5hdjp4LGRpcmVjdGlvbk5hdjp4LHNob3dEaXNjbGFpbWVyOiEwfSl9LDVFMyl9KX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGEoIi5leHRlbmRlZFBob25lVHJpZ2dlciIpLmF0dHIoImlkIikpYSgiLmV4dGVuZGVkUGhvbmVUcmlnZ2VyIikub24oIm1vdXNlZW50ZXIiLApFeFBob25lKS5vbigibW91c2VsZWF2ZSIsRXhQaG9uZSk7dmFyIHY9ZnVuY3Rpb24oKXt9O2EoIi50cmFkZWluTGluayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtpZihhKHRoaXMpLmF0dHIoInRhcmdldFVSSSIpJiY2PGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikubGVuZ3RoKXJldHVybiBzaG93VHJhZGVJblBvcHVwKGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikpLCExfSk7YSgiLnVwX21lbnUiKS5vbmUoIm1vdXNlb3ZlciIsdik7c2V0VGltZW91dCh2LDFFNCk7KGZ1bmN0aW9uKCl7aWYoMCE9YSgiI01haW5NZW51X05FVyIpLmxlbmd0aCl7dmFyIHE9YSgiLmltZ19tZW51LnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkuZmlyc3RJdGVtIikscj0hMTswIT1xLmxlbmd0aCYmKGEoIiNNYWluTWVudV9ORVciKS5maW5kKCIucHJpY2UiKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHA9YSh0aGlzKS5zaWJsaW5ncygpLmZpcnN0KCk7CndpbmRvdy5sb2NhdGlvbj1wLmF0dHIoImhyZWYiKX0pLGEoIiNNYWluTWVudV9ORVciKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocik7cS5hZGRDbGFzcygiaG92ZXIiKX0pLHEuc2libGluZ3MoKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocik7cS5yZW1vdmVDbGFzcygiaG92ZXIiKX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3I9c2V0VGltZW91dChmdW5jdGlvbigpe3EuYWRkQ2xhc3MoImhvdmVyIil9LDMwMCl9KSl9fSkoKTthKCJpbWdbZXJyb3JpbWddIikub24oImVycm9yIixmdW5jdGlvbigpe3ZhciBxPWEodGhpcyk7cS5hdHRyKCJzcmMiLHEuYXR0cigiZXJyb3JpbWciKSl9KTtjb25zdCBtPWEod2luZG93KSxsPWEoIi51cF9tZW51Iik7aWYobC5sZW5ndGgmJiFsLmhhc0NsYXNzKCJub2xvY2siKSl7bGV0IHE9bC5vZmZzZXQoKS50b3Ascj0hMTthKGRvY3VtZW50KS5vbigic2Nyb2xsIiwoKT0+e3J8fAood2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3ZhciBwPW0uc2Nyb2xsVG9wKCksdz1sLmhhc0NsYXNzKCJmaXhlZCIpO3cmJnA8cT9sLnJlbW92ZUNsYXNzKCJmaXhlZCIpOiF3JiZwPnEmJmwuYWRkQ2xhc3MoImZpeGVkIik7KHA9bC5oYXNDbGFzcygiZml4ZWQiKSkmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpP2wuY3NzKHt0b3A6YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSsicHgifSk6bC5hdHRyKCJzdHlsZSIsIiIpO3c9YSgiLnB1bGxvdXRzLnNpZGVfdG9wOnZpc2libGUiKTtwJiYwPHcubGVuZ3RoPyh3LmZpbHRlcigiLnB1bGxvdXQtb3BlbmVkIikuY3NzKHt0b3A6bC5oZWlnaHQoKSsicHgifSksdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgej1hKHRoaXMpLEQ9Z2V0X3Bvdyh6LmF0dHIoImlkIikpOyF6LmRhdGEoInBvc1kiKSYmei5kYXRhKCJwb3NZIiwtRC5wb3NpdGlvbik7CkQ9ei5kYXRhKCJwb3NZIikrbC5oZWlnaHQoKTt6LmNzcyh7dG9wOkQrInB4In0pfSkpOih3LmZpbHRlcigiLnB1bGxvdXQtb3BlbmVkIikuY3NzKHt0b3A6MH0pLHcuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5kYXRhKCJwb3NZIikmJncuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5jc3Moe3RvcDphKHRoaXMpLmRhdGEoInBvc1kiKSsicHgifSl9KSk7cj0hMX0pLHI9ITApfSl9dj1mdW5jdGlvbigpe2lmKDA9PWEoIiN0cmFkZWluQmFyRmxvYXQiKS5sZW5ndGgpe2EoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9InRyYWRlaW5CYXJGbG9hdCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOiBmaXhlZDt3aWR0aDogMTAwJTt6LWluZGV4OiAxMDA7ZGlzcGxheTpub25lOyI+PC9kaXY+Jyk7YSgiI3RyYWRlSW5CYXIiKS5jbG9uZSghMCwhMCkuYXBwZW5kVG8oIiN0cmFkZWluQmFyRmxvYXQiKS50cmlnZ2VyKCJ0cmFkZUluQmFyLmNsb25lZCIpOwppZihhKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLmxlbmd0aCYmIjEiPT1hKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLnZhbCgpKXthKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJib3R0b20iLCItMnB4Iik7dmFyIHE9YSgiLmNlcnRpZmllZC1mb290ZXIiKS5oZWlnaHQoKSxyPWEoIiN0cmFkZWluQmFyRmxvYXQiKS5oZWlnaHQoKTthKCIuY2VydGlmaWVkLWZvb3RlciIpLmhlaWdodChxK3IpfWVsc2V7cT1hKCIjdHJhZGVpbkJhckZsb2F0Iik7cj1xLmNzczt2YXIgcD0iMSI9PWEoIiNtZW51TG9jayIpLnZhbCgpPzQ4OjA7MDxhKCIjYWxlcnRNc2dDb250YWluZXIiKS5sZW5ndGgmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpJiYocCs9YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSk7ci5jYWxsKHEsInRvcCIscCl9YSgiI3RyYWRlaW5CYXJGbG9hdCAuLXBiMTAiKS5jc3Moe2Rpc3BsYXk6ImlubGluZS10YWJsZSIsd2lkdGg6YSgiI21haW5EaXYiKS53aWR0aCgpfSl9cT0KIm5ld2NhcmRldGFpbC5odG1sIj09YSgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk7cj0ibmV3Y2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk\/ITA6ITE7cD0wPGEoIi5tYWluRGl2QWRqdXN0SGVhZGVyIikubGVuZ3RoPyEwOiExO2EoIiN0cmFkZUluQmFyIikuaXNJblZpZXdwb3J0KCl8fHE\/cT8ocj9hKCIubmV3VmRwQWN0aW9ucyIpLmlzQWJvdmVWaWV3cG9ydCgyMDApOmEoIi51c2VkVmRwQWN0aW9ucyIpLmlzQWJvdmVWaWV3cG9ydCgyMDApKT9hKCIjdHJhZGVpbkJhckZsb2F0IikuaGlkZSgpOmEoIiN0cmFkZWluQmFyRmxvYXQiKS5zaG93KCk6YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhpZGUoKToocCYmIWEoIiN0cmFkZUluQmFyIikuaXNBYm92ZVZpZXdwb3J0KDIwMCl8fCFwKSYmYSgiI3RyYWRlaW5CYXJGbG9hdCIpLnNob3coKTswPGEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmxlbmd0aCYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjpoaWRkZW4iKSYmCjQ4IT1hKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJ0b3AiKSYmYSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS5sZW5ndGgmJiIxIiE9YSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS52YWwoKSYmYSgiI3RyYWRlaW5CYXJGbG9hdCIpLmNzcygidG9wIiw0OCl9O2Z1bmN0aW9uIHUocSxyKXt2YXIgcD0wO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChwKTtwPXNldFRpbWVvdXQocSxyKX19aWYoYSgiI3RyYWRlSW5CYXIiKS5sZW5ndGgpYShkb2N1bWVudCkub24oInNjcm9sbCIsdSh2LDEwMCkpO3ZhciBmPWEoInVsLm5hdiA+IGxpID4gdWwgPiBsaSA+IHVsIik7Zi5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5wYXJlbnQoKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24ocSl7YSgidWwiLHRoaXMpLnNjcm9sbFRvcCgwKX0pfSk7Zi5vbigiRE9NTW91c2VTY3JvbGwgbW91c2V3aGVlbCIsZnVuY3Rpb24ocSl7dmFyIHI9YSh0aGlzKSxwPXRoaXMuc2Nyb2xsVG9wLHc9dGhpcy5zY3JvbGxIZWlnaHQsCno9dz50aGlzLmNsaWVudEhlaWdodCxEPXIuaGVpZ2h0KCksQz1xLm9yaWdpbmFsRXZlbnQ7Qz0iRE9NTW91c2VTY3JvbGwiPT1xLnR5cGU\/LTQwKkMuZGV0YWlsOkMud2hlZWxEZWx0YTt2YXIgRT0wPEM7aWYoIXopcmV0dXJuITA7ej1mdW5jdGlvbihHKXtyLnNjcm9sbFRvcChHKTtxLnN0b3BQcm9wYWdhdGlvbigpO3EucHJldmVudERlZmF1bHQoKTtxLnJldHVyblZhbHVlPSExO3JldHVybiEwfTtyZXR1cm4hKCFFJiYtQz53LUQtcCYmeih3KXx8RSYmQz5wJiZ6KDApKX0pfWNhdGNoKG0pe2NvbnNvbGUubG9nKCJFcnJvciIsbSl9aWYoYSgiLnVwX21lbnUuaW1nX21lbnUiKS5sZW5ndGgpe2Y9YSgiLmltZ19zdHlsZV8xICNNYWluTWVudV9ORVciKS5jaGlsZHJlbigiLnN1YiIpO3ZhciBnPWYuZmluZCgiLmZpcnN0SXRlbSIpLmZpbmQoIi5zdWIiKTtmLmNoaWxkcmVuKCJsaSIpLm9uKHttb3VzZWVudGVyOmZ1bmN0aW9uKCl7IWEodGhpcykuaXMoIi5oYXNTdWIiKSYmZy5oaWRlKCl9LAptb3VzZWxlYXZlOmZ1bmN0aW9uKCl7IWEodGhpcykuaXMoIi5oYXNTdWIiKSYmZy5zaG93KCl9fSl9YSgiLm51bWVyaWMiKS5vbigia2V5cHJlc3MiLGZ1bmN0aW9uKG0pe2lmKDQ4Pm0ua2V5Q29kZXx8NTc8bS5rZXlDb2RlKW0ucmV0dXJuVmFsdWU9ITF9KTtpZigib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8d2luZG93LkRvY3VtZW50VG91Y2gmJmRvY3VtZW50IGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaClhKCIubGVmdF9ib3ggYSIpLm9uKCJ0YXAiLGZ1bmN0aW9uKG0pe209YSh0aGlzKTtpZigicmFkaW8iIT1tLmF0dHIoInR5cGUiKSYmbS5hdHRyKCJvbmNsaWNrIikpcmV0dXJuIG0udHJpZ2dlcigiY2xpY2siKSwhMX0pLGEoIi5oYXNJdGVtcyA+IGEsIC5oYXNTdWIgPiBhIikub24oImNsaWNrIixmdW5jdGlvbihtKXtpZigiY2xpY2siIT1tLnR5cGUpcmV0dXJuITA7dmFyIGw9YSh0aGlzKS5kYXRhKCJjbGlja0NvdW50Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBsfHwiMCI9PQpsKWEoIi5uYXYgbGkuaGFzSXRlbXMgYSwgLm5hdiBsaS5oYXNTdWIgYSIpLmRhdGEoImNsaWNrQ291bnQiLCIwIiksYSh0aGlzKS5kYXRhKCJjbGlja0NvdW50IiwiMSIpLG0ucHJldmVudERlZmF1bHQoKTtlbHNlIHJldHVybiBkb2N1bWVudC5sb2NhdGlvbj1hKHRoaXMpLmF0dHIoImhyZWYiKSxhKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiLCIwIiksITB9KTthKCJkaXYuZ21hcC1wbGFjZWhvbGRlciIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbT1hKHRoaXMpLGw9bS5kYXRhKCk7aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbih1KXt1PSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/IitbInE9IitlbmNvZGVVUklDb21wb25lbnQobC5wbGFjZUlkKSwiem9vbT0iK2wuem9vbSwibGFuZ3VhZ2U9IitsLmxhbmd1YWdlLCJyZWdpb249Q0EiLCJrZXk9Iit1XS5qb2luKCImIik7bS5odG1sKCc8aWZyYW1lIHNyYz0iJyt1KyciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjQwMCIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpfSl9KTsKdHJ5e2EoIi5hZGR0dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbT1bIm9uQ2xvc2UiLCJvblllcyIsIm9uTm8iXSxsPWEodGhpcyksdT1sLmRhdGEoKSxxPXt9LHI7Zm9yKHIgaW4gdSlxW3JdPWZ1bmN0aW9uKHAsdyl7cmV0dXJuLTEhPW0uaW5kZXhPZihwKT9mdW5jdGlvbigpe2V2YWwodyl9Ond9KHIsdVtyXSk7bC5kYXJrVG9vbHRpcChxKX0pfWNhdGNoKG0pe2NvbnNvbGUubG9nKG0ubWVzc2FnZSxtKX19KTtmdW5jdGlvbiBjaGlsZE9mKGEsYil7Zm9yKDsidW5kZWZpbmVkIiE9PXR5cGVvZiBhJiZudWxsIT09YSYmKGE9YS5wYXJlbnROb2RlKSYmYSE9PWI7KTtyZXR1cm4hIWF9dmFyIE1lbnVIYW5kbGVyOwooZnVuY3Rpb24oKXt2YXIgYTtNZW51SGFuZGxlcj1mdW5jdGlvbiBjKCl7ZnVuY3Rpb24gZChmLGcpe2xldCBtPShnLm1vZGVsfHwiIikudHJpbSgpLGw9KGcudHJpbXx8IiIpLnRyaW0oKTtmPWYucmVwbGFjZSgiIyNNRU5VWUVBUiMjIixnLnllYXIpO20mJmwmJihtLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobC50b0xvd2VyQ2FzZSgpKT9sPSIiOmwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtLnRvTG93ZXJDYXNlKCkpJiYobT0iIikpO3JldHVybiBmPWYucmVwbGFjZSgiIyNNRU5VTU9ERUwjIyIsbSkucmVwbGFjZSgiIyNNRU5VVFJJTSMjIixsKS5yZXBsYWNlKC8gKy9nLCIgIil9aWYoYSlyZXR1cm4gYTthPXRoaXM7dGhpcy5nZXRTcGVjVXJsPWZ1bmN0aW9uKCl7dmFyIGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCIwIj09PSQoIiNuZXdfdHJhbnNsYXRlZF90aXRsZXMiKS52YWwoKT8iZW4iOiJmciI7IjAiPT0kKCIjbXVsdGktbGFuZ3VhZ2UiKS52YWwoKSYmCihmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIik7cmV0dXJuIi9qc29uL25ld2NhcnNkZXRhaWxzXyIrZisiLmpzb24ifTt0aGlzLm1lbnU9JCgiLm1lbnU1LCAubWVudTYsIC5tZW51NywgLm1lbnU4LCAubWVudTksIC5tZW51MTAiKTt0aGlzLnNwZWNzQWpheD0kLmdldCh0aGlzLmdldFNwZWNVcmwoKSk7dGhpcy5jYXJzPXtkZXRhaWxzOnt9LGZpbmRCeUlkOmZ1bmN0aW9uKGYpe3ZhciBnPXt9OyQuZWFjaCh0aGlzLmRldGFpbHMubWFrZXMsZnVuY3Rpb24obSxsKXskLmVhY2gobC5tb2RlbHMsZnVuY3Rpb24odSxxKXsxPT1xLmlzc2VyaWVzfHwxPT1xLmlzQ2xhc3M\/JC5lYWNoKHEuc3R5bGVzLGZ1bmN0aW9uKHIscCl7cC5pZD09ZiYmKGc9cCl9KTpxLmlkPT1mJiYoZz1xKX0pOyQuaXNFbXB0eU9iamVjdChnKX0pO3JldHVybiBnfX07dGhpcy5zcGVjc0FqYXguZG9uZShmdW5jdGlvbihmKXtjKCkuY2Fycy5kZXRhaWxzPWZ9KTt0aGlzLnBvc2l0aW9ucz0KZnVuY3Rpb24oZixnLG0pe3JldHVybnt0YXJnZXQ6JChnLmN1cnJlbnRUYXJnZXQpLHNlY29uZExldmVsTWVudTpudWxsLHdpbmRvd0hlaWdodDpudWxsLHNlY29uZExldmVsTWVudVRvcDpudWxsLHNlY29uZExldmVsTWVudUJvdHRvbTpudWxsLHN1Yk1lbnVJdGVtVG9wOm51bGwsc3ViTWVudUl0ZW1IZWlnaHQ6bnVsbCxzdWJNZW51SXRlbUJvdHRvbTpudWxsLGJvdHRvbUFsaWduOm51bGwsc3BlY3M6bnVsbCxzcGVjc1RvcDpudWxsLHNwZWNzSGVpZ2h0Om51bGwsc3BlY3NCb3R0b206bnVsbCxjdXN0b21TZWNvbmRMZXZlbE1lbnU6bnVsbCxyb3VuZDpmdW5jdGlvbihsKXtyZXR1cm4rKE1hdGgucm91bmQobCsiZSsyIikrImUtMiIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLnNlY29uZExldmVsTWVudT0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnU\/dGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKTp0aGlzLnRhcmdldC5maW5kKCJ1bC5zdWI6Zmlyc3QiKTsKdHJ5e3RoaXMud2luZG93SGVpZ2h0PSQod2luZG93KS5oZWlnaHQoKSx0aGlzLnNlY29uZExldmVsTWVudVRvcD10aGlzLnNlY29uZExldmVsTWVudS5wb3NpdGlvbigpLnRvcCx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodD10aGlzLnNlY29uZExldmVsTWVudS5vdXRlckhlaWdodCgpLHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPXRoaXMucm91bmQodGhpcy5zZWNvbmRMZXZlbE1lbnVUb3ArdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQpfWNhdGNoKGwpe310cnl7dGhpcy5zdWJNZW51SXRlbVRvcD0kKGYpLnBvc2l0aW9uKCkudG9wLHRoaXMuc3ViTWVudUl0ZW1IZWlnaHQ9JChmKS5vdXRlckhlaWdodCgpLHRoaXMuc3ViTWVudUl0ZW1Cb3R0b209dGhpcy5yb3VuZCh0aGlzLnN1Yk1lbnVJdGVtSGVpZ2h0K3RoaXMuc3ViTWVudUl0ZW1Ub3ApLHRoaXMuYm90dG9tQWxpZ249dGhpcy5yb3VuZCgkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpKyQoZikucGFyZW50KCJ1bCIpLm9mZnNldCgpLnRvcC0KdGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20pfWNhdGNoKGwpe310cnl7dGhpcy5zcGVjcz1tLHRoaXMuc3BlY3NUb3A9dGhpcy5zcGVjcy5wb3NpdGlvbigpLnRvcCx0aGlzLnNwZWNzSGVpZ2h0PXRoaXMuc3BlY3Mub3V0ZXJIZWlnaHQoKSx0aGlzLnNwZWNzQm90dG9tPXRoaXMucm91bmQodGhpcy5zcGVjc1RvcCt0aGlzLnNwZWNzSGVpZ2h0KX1jYXRjaChsKXt9fSxhZGp1c3RTZWNvbmRMZXZlbDpmdW5jdGlvbigpe2lmKC42NSp0aGlzLndpbmRvd0hlaWdodDx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodCl7aWYodGhpcy5zZWNvbmRMZXZlbE1lbnUuaGFzQ2xhc3MoImxvY2F0aW9uLWRldGFpbHMiKSlyZXR1cm47dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQXR0cigic3R5bGUiKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImhlaWdodCIsLjY1KnRoaXMud2luZG93SGVpZ2h0KTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoeyJvdmVyZmxvdy15IjoiYXV0byIsd2lkdGg6IjQwMHB4IiwKcG9zaXRpb246InN0YXRpYyIsZGlyZWN0aW9uOiJydGwifSk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuZmluZCgiPiBsaSIpLmNzcyh7ZGlyZWN0aW9uOiJsdHIifSk7aWYoMD09JChmKS5jaGlsZHJlbigiLm1haW5tZW51LXN1Ym1lbnUiKS5sZW5ndGgpe3ZhciBsPSQoIjxkaXYvPiIpO2wuYWRkQ2xhc3MoIm1haW5tZW51LXN1Ym1lbnUiKTtsLmRldGFjaCgpLmFwcGVuZCh0aGlzLnNlY29uZExldmVsTWVudSk7dGhpcy50YXJnZXQuYXBwZW5kKGwpfXRoaXMudXBkYXRlKCl9aWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b208dGhpcy5zdWJNZW51SXRlbVRvcCkkKGYpLmFkZENsYXNzKCJhbGlnbi1sZXZlbCIpLHRoaXMudXBkYXRlKCksbD10aGlzLnNlY29uZExldmVsTWVudUJvdHRvbTwkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpPyQoZikub3V0ZXJIZWlnaHQoKSskKGYpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0OiQoZikucGFyZW50KCJ1bCIpLm91dGVySGVpZ2h0KCkrCiQoZikucGFyZW50KCJ1bCIpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygidHJhbnNmb3JtIiwidHJhbnNsYXRlWSgiK2wrInB4KSIpO2Vsc2UgaWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20+dGhpcy5zdWJNZW51SXRlbVRvcCYmdGhpcy5zdWJNZW51SXRlbUJvdHRvbT50aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSl7bD0wPnBhcnNlSW50KHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygibGVmdCIpLnJlcGxhY2UoInB4IiwiIikpPyJyaWdodCI6ImxlZnQiO3ZhciB1PXt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoIitNYXRoLmFicyh0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbS10aGlzLnN1Yk1lbnVJdGVtQm90dG9tKSt0aGlzLnNlY29uZExldmVsTWVudVRvcCsicHgpIn07InJpZ2h0IiE9bCYmKHVbbF09dGhpcy50YXJnZXQucG9zaXRpb24oKS5sZWZ0K3RoaXMudGFyZ2V0LndpZHRoKCkpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcyh1KX1lbHNlIHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wPgp0aGlzLnN1Yk1lbnVJdGVtVG9wJiZ0aGlzLnNlY29uZExldmVsTWVudS5jc3MoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoIit0aGlzLnN1Yk1lbnVJdGVtVG9wKyJweCkiKX0sYWRqdXN0SG9yaXpvbnRhbDpmdW5jdGlvbigpe3RoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJpbnZpc2libGUiKXx8dGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoImludmlzaWJsZSIpO3ZhciBsPXRoaXMuaXNJblZpZXdwb3J0KHRoaXMuc2Vjb25kTGV2ZWxNZW51WzBdKSx1PTA+cGFyc2VJbnQodGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJsZWZ0IikucmVwbGFjZSgicHgiLCIiKSk\/InJpZ2h0IjoibGVmdCI7bHx8ImxlZnQiIT09dXx8KHRoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJMMTAwIikmJnRoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJMMTAwIiksdGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoIlIxMDAiKSk7bD17fTtsW3VdPXRoaXMudGFyZ2V0LnBvc2l0aW9uKCkubGVmdCsKdGhpcy50YXJnZXQud2lkdGgoKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MobCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoImludmlzaWJsZSIpfSxpc0luVmlld3BvcnQ6ZnVuY3Rpb24obCl7bD1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiAwPD1sLnRvcCYmMDw9bC5sZWZ0JiZsLmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkmJmwucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX19fTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsInVsLm5hdiA+IGxpIixmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpO2cudXBkYXRlKCk7Zy5zZWNvbmRMZXZlbE1lbnVCb3R0b20tJCh3aW5kb3cpLnNjcm9sbFRvcCgpPmcud2luZG93SGVpZ2h0P2cuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJzbGltLXN1Ym1lbnUiKToKZy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoInNsaW0tc3VibWVudSIpOyJtb3VzZWxlYXZlIiE9PWYudHlwZSYmKGY9JCh0aGlzKS5maW5kKCI+IHVsIiksZi5sZW5ndGgmJiFmLmRhdGEoImNhbGN1bGF0ZWQiKSYmKGc9JCh0aGlzKS5vdXRlcldpZHRoKCksZi5vdXRlcldpZHRoKCk8ZyYmZi5jc3MoIndpZHRoIixnKzEpLGYuZGF0YSgiY2FsY3VsYXRlZCIsITApKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSIsZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKTswIT0kKGYuY3VycmVudFRhcmdldCkuZmluZCgidWwuc3ViID4gbGkiKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9Zi50eXBlJiYoZy51cGRhdGUoKSxnLmFkanVzdFNlY29uZExldmVsKCkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgbGkubG9jYXRpb24tbmFtZXMiLApmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpLG09JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIik7Zy5jdXN0b21TZWNvbmRMZXZlbE1lbnU9ZnVuY3Rpb24oKXtyZXR1cm4gbX07MCE9JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPWYudHlwZSYmKCQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpLm9uKCJsYXp5bG9hZGVkIixmdW5jdGlvbihsKXtnLmN1c3RvbVNlY29uZExldmVsTWVudSgpLmF0dHIoInN0eWxlIixudWxsKTtnLnVwZGF0ZSgpO2cuYWRqdXN0SG9yaXpvbnRhbCgpO2cuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pLGcuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCkuYXR0cigic3R5bGUiLG51bGwpLGcudXBkYXRlKCksZy5hZGp1c3RIb3Jpem9udGFsKCksZy5hZGp1c3RTZWNvbmRMZXZlbCgpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwKJyNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IFtkYXRhLWlkPSJTVUJfVEFCX0NPTU1FUkNJQUxfQ09NTUVSIl0nLGZ1bmN0aW9uKGYpe2Y9YS5wb3NpdGlvbnModGhpcyxmKTtmLnVwZGF0ZSgpO2YuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjREVBTEVSUEFSVFJFRElSRUNUVFlQRSIpLnZhbCgpJiYwPCQoIiNERUFMRVJCUkFORCIpLmxlbmd0aCYmJCgiI0RFQUxFUkJSQU5EIikudmFsKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiZm9yZCIpJiYiIiE9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpKXt2YXIgZT0kKCJodG1sIikuYXR0cigibGFuZyIpLGs9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGg9ImVuIj09ZT8iL3JlcXVlc3RzL2Nhci1wYXJ0cy1hbmQtYWNjZXNzb3JpZXMuaHRtbCI6Ii9kZW1hbmRlcy9jb21tYW5kZS1waWVjZXMtYWNjZXNzb2lyZXMtYXV0b21vYmlsZXMuaHRtbCIsbj0iaHR0cHM6Ly9mb3JkYWNjZXNzLmNvbS9Gb3JkLmFzcHg\/bG9jYXRpb249IisKazt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9TRVJWSUNFIHVsLnN1YiBsaVtkYXRhLWlkPSdQSUVDRVMnXSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpO2Y9JCgiPiBhIixmKTtmLmF0dHIoImhyZWYiKT09aCYmKGYuYXR0cigiaHJlZiIsbiksZi5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSl9KX10aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9GSU5BTkNFID4gYSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpLGc9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxtPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxsPSQoIiNERUFMRVJCUkFORF9QUklNQVJZIikudmFsKCkudG9Mb3dlckNhc2UoKTsiZm9yZF9saW5jb2xuX2V4dGVybmFsIiE9JCgiI0ZJTkFOQ0VGT1JNVFlQRSIpLnZhbCgpfHwiZm9yZCIhPWwmJiJsaW5jb2xuIiE9bHx8IiI9PW18fChmLmF0dHIoImhyZWYiLCJmb3JkIj09bD8oImVuIj09Zz8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6CiJodHRwczovL2ZyLmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iKSttOigiZW4iPT1nPyJodHRwczovL3d3dy5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iKSttKSxmLmF0dHIoInRhcmdldCIsIl9ibGFuayIpKX0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY3RhLXRwbCIpLmxlbmd0aCYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmCiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwpe2lmKCExPT09KCJjb21tZXJjaWFsIj09bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5zZWN0aW9uPyEwOiExKSlyZXR1cm47ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmN0YS10cGwgYSIpLmZvckVhY2goKGYsZyk9PntnPWYuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYoZy5pbmNsdWRlcygic2hvcC5mb3JkLmNhIikpe2xldCBtPSExO2cuaW5jbHVkZXMoInN1cGVyZHV0eSIpJiYobT1nLnJlcGxhY2UoIi9zdXBlcmR1dHkvIiwiL3N1cGVyZHV0eS1jb21tZXJjaWFsLyIpKTshMSE9PW0mJmYuc2V0QXR0cmlidXRlKCJocmVmIixtKX19KX1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjY2xhc3Njb21tZXJjaWFsX2NvbnRhaW5lciIpLmxlbmd0aCYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRpdkNhclNpbmdsZU91dGVyQm94IGEiKS5mb3JFYWNoKChmLGcpPT57Zz1mLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwppZihnLmluY2x1ZGVzKCJzaG9wLmZvcmQuY2EiKSl7bGV0IG09ITE7Zy5pbmNsdWRlcygic3VwZXJkdXR5IikmJihtPWcucmVwbGFjZSgiL3N1cGVyZHV0eS8iLCIvc3VwZXJkdXR5LWNvbW1lcmNpYWwvIikpOyExIT09bSYmZi5zZXRBdHRyaWJ1dGUoImhyZWYiLG0pfX0pfX0sMkUzKTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IC5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkiLGZ1bmN0aW9uKGYpe2lmKCJtb3VzZWxlYXZlIiE9CmYudHlwZSl7dmFyIGc9JCh0aGlzKS5maW5kKCIubWVudS10ZWNoLXNwZWNzIik7MD09Zy5sZW5ndGgmJihnPSQoIiNtZW51LXNwZWNzLXRlbXBsYXRlIikuY2xvbmUoKSk7dmFyIG09dGhpcztpZigwPT0kKG0pLmNoaWxkcmVuKCIubWVudS10ZWNoLXNwZWNzIikubGVuZ3RoKXt2YXIgbD0kKG0pLmZpbmQoImE6bnRoLW9mLXR5cGUoMikiKS50ZXh0KCksdT0kKG0pLmZpbmQoImE6Zmlyc3QtY2hpbGQiKS5hdHRyKCJocmVmIikscT11Lmxhc3RJbmRleE9mKCIvIikrMTtjYXJMaW5rVHJpbW1lZD11LnN1YnN0cmluZyhxLHUubGVuZ3RoKTt2YXIgcj0kKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKStjYXJMaW5rVHJpbW1lZDsoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXt2YXIgeT0KMDwkKG0pLmNsb3Nlc3QoImxpW2RhdGEtaWRePSdORVdfQ09NTUVSQ0lBTCddIikubGVuZ3RoPyEwOiExLEE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCk7QT1KU09OLnBhcnNlKEEpO3ZhciBJPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksQj1yLm1hdGNoKCJlbiI9PUk\/L1wvYnVpbGQtYW5kLXByaWNlXC8oXGR7NH0tKFx3KyktKFx3KykuKlwuaHRtbCkuKi86L1wvY29uZmlndXJhdGlvbi1ldC1wcml4XC8oKFx3KyktKFx3KyktXGR7NH0pLipcLmh0bWwvKSxKPUJbMF0sRj1CWzJdLnRvTG93ZXJDYXNlKCk7Qj1CWzNdLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgiXyIsIiAiKTt5JiZCLmluY2x1ZGVzKCJzdXBlciBkdXR5IikmJihCPSJzdXBlciBkdXR5IGNvbW1lcmNpYWwiKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdJiYidW5kZWZpbmVkIj09PXR5cGVvZiBBW0ZdW0JdKWZvcih2YXIgSyBpbiBBW0ZdKWlmKHk9SyxCLmluY2x1ZGVzKHkpKXtCPXk7CmJyZWFrfSJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl1bQl0mJigkKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikscj1yLnJlcGxhY2UoSixBW0ZdW0JdW0ldKSl9fSkoKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigiaHJlZiIscik7JChnKS5maW5kKCIubWVudS1zcGVjLWxpbmsiKS5hdHRyKCJocmVmIix1KTskKGcpLnJlbW92ZUF0dHIoImlkIik7JChnKS5jaGlsZHJlbigiLm1lbnUtc3BlY3MtdGl0bGUiKS5hcHBlbmQobCk7dmFyIHA9e307JC5pc0VtcHR5T2JqZWN0KGMoKS5jYXJzLmRldGFpbHMpPyQud2hlbihjKCkuc3BlY3NBamF4KS5kb25lKGZ1bmN0aW9uKHkpe3A9YygpLmNhcnMuZmluZEJ5SWQoJChtKS5kYXRhKCJtb2RlbGlkIikpfSk6cD1jKCkuY2Fycy5maW5kQnlJZCgkKG0pLmRhdGEoIm1vZGVsaWQiKSk7aWYoISQuaXNFbXB0eU9iamVjdChwKSl7dmFyIHc9YS5zaG91bGRVc2VGcmVuY2hOYW1lcygpPwpwLm5hbWU6cC5tb2RlbDtwLmhhc093blByb3BlcnR5KCJiYXNlX3N0eWxlIikmJihwPXAuYmFzZV9zdHlsZSx3PXAubW9kZWwpO3E9IkZSRU5DSCI9PSQoIiN0ZXh0TGFuZ3VhZ2UiKS52YWwoKT8iTi9EIjoiTi9BIjtsPSIiPT1wLmRpc3BsYWNlbWVudD9xOnAuZGlzcGxhY2VtZW50O3U9IiI9PXAuY2l0eUZ1ZWw\/cTpwLmNpdHlGdWVsO3E9IiI9PXAuaHd5RnVlbD9xOnAuaHd5RnVlbDt2YXIgej1wLm1zcnBBbGxJbixEPSQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS50ZXh0KCkudHJpbSgpO0Q9RC5yZXBsYWNlKCIkTU9ERUwiLHcpO3c9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7ei50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj5gO3o9JCgiI0FETUlOX05FV19ET05UX1NIT1dfUFJJQ0VfTU9ERUxTIikudmFsKCkuaW5jbHVkZXMocC5tb2RlbGlkKTtpZigwPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmxlbmd0aCl7JChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikudGV4dCgiIik7CnZhciBDPSQoJzxkaXYgY2xhc3M9InByaWNlIi8+JyksRT0kKCc8c3BhbiBjbGFzcz0icHJpY2VfYW10Ii8+JyksRz0kKCc8c3BhbiBjbGFzcz0icHJpY2Vfc2NyYXRjaGVkIi8+JyksSD0kKCc8c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iLz4nKTswPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2Utc2NyYXRjaCIpLmxlbmd0aD8oRy5odG1sKHcpLEUuYXBwZW5kKEcpLEUuY3NzKHsidGV4dC1kZWNvcmF0aW9uIjoibGluZS10aHJvdWdoIixjb2xvcjoicmVkIn0pKTpFLmh0bWwodyk7Qy5hcHBlbmQoRSk7MDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlX3Byb21vIikubGVuZ3RoJiYoSC50ZXh0KCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2VfcHJvbW8iKS50ZXh0KCkpLEguY3NzKHtjb2xvcjoicmVkIn0pLEMuYXBwZW5kKEgpKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5hcHBlbmQoQyl9ZWxzZSAkKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5odG1sKHcpOwokKGcpLmZpbmQoIi5tZW51LXNwZWMtaHAiKS50ZXh0KHAuaHBBdFJQTSk7JChnKS5maW5kKCIubWVudS1zcGVjLXBvd2VyIikudGV4dChsKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1jaXR5IikudGV4dCh1KTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1oaWdod2F5IikudGV4dChxKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZHJpdmV0cmFpbiIpLnRleHQocC5kcml2ZVRyYWluKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMz09dGhpcy5ub2RlVHlwZX0pLmxhc3QoKS5yZXBsYWNlV2l0aChEKTt6JiYoJChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLnJlbW92ZSgpLCQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLnRleHQoJCgiI05FV19QUklDRV9URVhUIikudmFsKCkpKTskKGcpLmZpbmQoIi5tZW51LXByaWNlLXRleHQiKS50ZXh0KGQoJChnKS5maW5kKCIubWVudS1wcmljZS10ZXh0IikudGV4dCgpLApwKSk7NUU4PnAuaWQmJiQobSkuYXBwZW5kKGcuZmFkZUluKDIwMCkpO2w9bmV3IEN1c3RvbUV2ZW50KCJ0b3BuYXYtdGVjaC1zcGVjLWxvYWRlZCIse2RldGFpbDp7dGVtcGxhdGU6Z319KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGwpfX1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHk9YS5wb3NpdGlvbnMobSxmLCQoZykpO3kudXBkYXRlKCk7dmFyIEE9JChtKS5wYXJlbnQoInVsLnN1YiIpLnBhcmVudCgpLnBhcmVudCgpO0Eub2Zmc2V0KCk7QS5vdXRlckhlaWdodCgpO3kuc3BlY3NCb3R0b208eS5zdWJNZW51SXRlbVRvcCYmJChnKS5jc3MoInRvcCIseS5zdWJNZW51SXRlbUJvdHRvbS15LnNwZWNzQm90dG9tKTt5LnN1Yk1lbnVJdGVtVG9wPHkuc3BlY3NCb3R0b20mJnkuc3ViTWVudUl0ZW1Cb3R0b20+eS5zcGVjc0JvdHRvbSYmJChnKS5jc3MoInRvcCIsJChnKS5wb3NpdGlvbigpLnRvcCsoeS5zdWJNZW51SXRlbUJvdHRvbS15LnNwZWNzQm90dG9tKSl9LDApO2RlbGV0ZSBwfX0pOwokKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3A6bm90KC5pc09wZW4pJykub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKGYpeyQoZi5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygiaXNPcGVuIil8fCQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcCcpLnJlbW92ZUNsYXNzKCJpc09wZW4iKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsZnVuY3Rpb24oZil7Y2hpbGRPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50LCQoIi51cF9tZW51IilbMF0pfHwkKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3AnKS5yZW1vdmVDbGFzcygiaXNPcGVuIil9KTskKCIjTWFpbk1lbnVfQ09OVEFDVCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGYpe3ZhciBnPSQoIiNtZW51LW1hcC1saW5rIik7MD09Zy5sZW5ndGh8fDA8Zy5maW5kKCJpZnJhbWUiKS5sZW5ndGh8fGluamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24obSl7bT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlPyIrClsicT0iK2VuY29kZVVSSUNvbXBvbmVudChnLmRhdGEoInBsYWNlSWQiKSksInpvb209IitnLmRhdGEoInpvb20iKSwibGFuZ3VhZ2U9IitnLmRhdGEoImxhbmd1YWdlIiksInJlZ2lvbj1DQSIsImtleT0iK21dLmpvaW4oIiYiKTtnLmFwcGVuZCgnPGlmcmFtZSBzcmM9IicrbSsnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSI0MDAiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKX0pfSk7JCgiI01haW5NZW51X0ZJTkFOQ0UsICNNYWluTWVudV9DT05UQUNUIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oZil7dmFyIGc9Zi5jdXJyZW50VGFyZ2V0LmlkLG09JCgiIyIrZyk7MD09PSQoIiMiK2crIi5pc09wZW4iKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9PWYudHlwZSYmbS5hZGRDbGFzcygiaXNPcGVuIik7aWYoIm1vdXNlbGVhdmUiPT09Zi50eXBlKXt2YXIgbD0kKCIuY3JlZGl0U2NvcmVQb3B1cEZvcm0iKVswXTsKZz0kKCIjIitnKyIgPiBhLnRvcF9saW5rIilbMF07KGwmJmYuZnJvbUVsZW1lbnQ9PT1sfHxnJiZmLmZyb21FbGVtZW50PT09ZykmJm0ucmVtb3ZlQ2xhc3MoImlzT3BlbiIpO2w9JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoImNhbC13cmFwcGVyIil8fCQoZi50b0VsZW1lbnQpLmNoaWxkcmVuKCkuaGFzQ2xhc3MoImNhbC13cmFwcGVyIil8fCQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJuZWJDYWwiKXx8JChmLnRvRWxlbWVudCkuY2xvc2VzdCgiLm5lYkNhbCIpLmxlbmd0aDtnPSQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJwYWMtY29udGFpbmVyIik7aWYoIShudWxsPT09Zi50b0VsZW1lbnR8fGNoaWxkT2YoZi50b0VsZW1lbnQsbVswXSl8fGNoaWxkT2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxtWzBdKXx8bHx8Zyl8fGNoaWxkT2YoZi50b0VsZW1lbnQsJCgiLnVwX21lbnUiKVswXSkmJiFjaGlsZE9mKGYudG9FbGVtZW50LG1bMF0pKSQoIi5uZWJDYWwiKS5pcygiOnZpc2libGUiKSYmCihmPSQoIi5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5kYXRhKCJuZWJDYWwiKSkmJmYuaGlkZSgpLG0ucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfX0pO2lmKCQoITApKXtlPSQoIi5tZW51NSAubmF2ID4gbGkiKTtrPWUubGVuZ3RoO3ZhciB4PSQoIiNNYWluTWVudV9DT05UQUNUIiksdj0tMTtlLmVhY2goZnVuY3Rpb24oZixnKXskKGcpLmlzKHgpJiYodj1mKX0pOy0xPHYmJi41PD12L2smJnguZmluZCgiLmNvbnRhY3R1cy1mb3JtLmNvbnRhY3Qtc2hvcnQiKS5jc3Moe3JpZ2h0OiJpbmhlcml0In0pfXRoaXMuc2hvdWxkVXNlRnJlbmNoTmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4iRlJFTkNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYiMSI9PT0kKCIjbmV3X3RyYW5zbGF0ZWRfdGl0bGVzIikudmFsKCl9O3RoaXMuc2V0TWVudUV4cHJlc3NGb3JtU2VsZWN0ZWRPcHRpb249ZnVuY3Rpb24oKXt2YXIgZj13aW5kb3cubG9jYXRpb24uaHJlZiwKZz0vdXNlZHxvY2Nhc2lvbi8udGVzdChmKSxtPS9uZXd8bmV1ZnMvLnRlc3QoZiksbD0vZmluYW5jZW1lbnR8Y3JlZGl0Ly50ZXN0KGYpLHU9L3NlcnZpY2V8YWNjZXNzb3JpZXN8dGlyZXxwbmV1c3xib2R5c2hvcHxib2R5LXNob3B8Y2Fyb3NzZXJpZS8udGVzdChmKTtmPSIiO20\/Zj0ibmV3IjpnP2Y9InVzZWQiOmw\/Zj0iZmluYW5jZSI6dSYmKGY9InNlcnZpY2UiKTsiIiE9ZiYmKGc9JCgiLm1lbnUgI3F1aWNrRW1haWxEZXBhcnRtZW50IiksJCgnIG9wdGlvblt2YWx1ZT0iJytmKyciXScsZykucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpLG09JCgib3B0aW9uOnNlbGVjdGVkIixnKS5pbmRleCgpLGcucHJldigidWwiKS5maW5kKCJsaSIpLmVxKG0pLmZpbmQoImEiKS50cmlnZ2VyKCJjbGljayIpKX07c2V0VGltZW91dChmdW5jdGlvbigpe2Euc2V0TWVudUV4cHJlc3NGb3JtU2VsZWN0ZWRPcHRpb24oKX0sMTApO2NvbnNvbGUubG9nKCJNZW51SGFuZGxlciBpbml0IC0tIHRlc3QgcmVtb3ZlIGxhdGVyIik7CnRoaXMudHJhbnNsYXRlVGl0bGVzPWZ1bmN0aW9uKCl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXt2YXIgZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1tZW51LXRyYW5zbGF0ZV0iKTtpZihmKXt2YXIgZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikuY2xhc3NOYW1lLm1hdGNoKCJGUkVOQ0giKT8iZnIiOiJlbiIsbT0obmV3IFVSTChgL2pzL2pzb24vbWVudVRpdGxlc18ke2d9Lmpzb25gLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pKS5ocmVmO3Jlc3BvbnNlPXlpZWxkIGZldGNoKG0pO2lmKHRleHQ9eWllbGQgcmVzcG9uc2UudGV4dCgpKWlmKGRhdGE9SlNPTi5wYXJzZSh0ZXh0KSxmJiYwIT09ZGF0YS5sZW5ndGgpZm9yKGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGw9ZltnXS5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudS10cmFuc2xhdGUiKTtkYXRhW2xdJiZCYXNlNjQuaXNCYXNlNjQoZGF0YVtsXS50ZXh0KSYmCihmW2ddLnRleHRDb250ZW50PUJhc2U2NC5kZWNvZGUoZGF0YVtsXS50ZXh0KSl9fX1jYXRjaCh1KXtjb25zb2xlLmxvZyh1KX19KX07dGhpcy50cmFuc2xhdGVUaXRsZXMoKX19KSgpOyQoZnVuY3Rpb24oKXt3aW5kb3cubWVudUhhbmRsZXI9bmV3IE1lbnVIYW5kbGVyfSk7CnZhciBnZXRBY3RpdmVQYWdlPWZ1bmN0aW9uKCl7dmFyIGE9IiI7InVuZGVmaW5lZCI9PT10eXBlb2YgYWN0aXZlUGFnZSYmKGFjdGl2ZVBhZ2U9IiIpO3N3aXRjaChhY3RpdmVQYWdlKXtjYXNlICJIT01FUEFHRSI6YT0iQWNjdWVpbCI7YnJlYWs7Y2FzZSAiQ0FSREVUQUlMUyI6YT0iT2NjYXNpb24tVkRQIjticmVhaztjYXNlICJVU0VEQ0FSUyI6YT0iT2NjYXNpb24tU1JQIjticmVhaztjYXNlICJORVdDQVJTIjphPSJOZXVmLVNSUCI7YnJlYWs7Y2FzZSAiTkVXQ0FSREVUQUlMUyI6YT0iTmV1Zi1WRFAifXJldHVybiBhfSxzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQ9ZnVuY3Rpb24oYSxiKXtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkNsaXF1ZXMgQmFubmllcmUiLGEsYiwxKX07CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciA+IGEiLGZ1bmN0aW9uKGEpe2lmKGE9Z2V0QWN0aXZlUGFnZSgpKXt2YXIgYj0iIiE9JCh0aGlzKS5hdHRyKCJocmVmIik\/JCh0aGlzKS5hdHRyKCJocmVmIik6IlBvcHVwIjtzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQoYSxiKX19KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyID4gYSIsZnVuY3Rpb24oYSl7aWYoYT1nZXRBY3RpdmVQYWdlKCkpe3ZhciBiPSIiIT0kKHRoaXMpLmF0dHIoImhyZWYiKT8kKHRoaXMpLmF0dHIoImhyZWYiKToiUG9wdXAiO3NlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLGIpfX0pOwokKGRvY3VtZW50KS5vbigiY2xpY2siLCIjdG9wQmFubmVySW1hZ2UiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJnNlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLCJQb3B1cCIpfSk7dmFyIGhvbWVQYWdlQmFubmVyVmlldz1bXTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIgPiBhIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiYiQWNjdWVpbCI9PWEmJihhPSQoIiNzbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIkRlc2t0b3AtY2xpY2siLGEsMSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJuaXZvU2xpZGVyQ2hhbmdlZCBuaXZvU2xpZGVyTG9hZGVkIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyIixmdW5jdGlvbihhKXshKGE9Z2V0QWN0aXZlUGFnZSgpKXx8IkFjY3VlaWwiIT1hfHw1MDA8JChkb2N1bWVudCkuc2Nyb2xsVG9wKCl8fChhPSQoIiNzbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSwwPiQuaW5BcnJheShhLGhvbWVQYWdlQmFubmVyVmlldykmJihob21lUGFnZUJhbm5lclZpZXcucHVzaChhKSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIkRlc2t0b3AtdmlldyIsYSwxKSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIgPiBhIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiYiQWNjdWVpbCI9PWEmJihhPSQoIiNtb2JpbGVTbGlkZXIyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJNb2JpbGUtY2xpY2siLGEsMSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJuaXZvU2xpZGVyQ2hhbmdlZCBuaXZvU2xpZGVyTG9hZGVkIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiIsZnVuY3Rpb24oYSl7IShhPWdldEFjdGl2ZVBhZ2UoKSl8fCJBY2N1ZWlsIiE9YXx8MzUwPCQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpfHwoYT0kKCIjbW9iaWxlU2xpZGVyMiIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLDA+JC5pbkFycmF5KGEsaG9tZVBhZ2VCYW5uZXJWaWV3KSYmKGhvbWVQYWdlQmFubmVyVmlldy5wdXNoKGEpLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiTW9iaWxlLXZpZXciLGEsMSkpKX0pOwpmdW5jdGlvbiB0aHJlc2hvbGRQb3B1cCgpe3ZhciBhPWdldFVybFZhcnMoKTtpZihudWxsPT1Db29raWVzLmdldCgicG9wdXBTaG93biIpfHwidW5kZWZpbmVkIiE9dHlwZW9mIGEuZGVidWcpc2hvd1BvcHVwV2lkZ2V0KHtkb05vdFJlZGlyZWN0OiEwfSksQ29va2llcy5zZXQoInBvcHVwU2hvd24iLCIxIiw5MCwiLyIpfWZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VTZXQoYSxiLGMpe2M9ODY0RTUqKGN8fDEpO2I9e3ZhbHVlOmIsZXhwaXJ5OihuZXcgRGF0ZSkuZ2V0VGltZSgpK2N9O2xvY2FsU3RvcmFnZS5zZXRJdGVtKGEsSlNPTi5zdHJpbmdpZnkoYikpfWZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VHZXQoYSl7dmFyIGI9bG9jYWxTdG9yYWdlLmdldEl0ZW0oYSk7aWYoIWIpcmV0dXJuIG51bGw7Yj1KU09OLnBhcnNlKGIpO3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpPmIuZXhwaXJ5Pyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKSxudWxsKTpiLnZhbHVlfQpmdW5jdGlvbiBfbG9jYWxTdG9yYWdlUmVtb3ZlKGEpe2lmKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShhKSlyZXR1cm4gbnVsbDtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBnZW5lcmF0ZVVuaXF1ZUlkKCl7cmV0dXJuImlkLSIrRGF0ZS5ub3coKSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9Y29uc3QgaW5pdFRvb2x0aXBzPSgpPT57dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXBvcHBlcl0iKS5mb3JFYWNoKGE9PntUb29sdGlwKGEpLmNyZWF0ZSgpfSl9Y2F0Y2goYSl7Y29uc29sZS5sb2coIlRvb2x0aXAgb2JqZWN0IG5vdCBmb3VuZCIpfX07CmZ1bmN0aW9uIGhhbmRsZUNvb2tpZUNvbnRlbnQoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1jb29raWVoaWRlXSIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC5jb29raWVoaWRlO2IubGVuZ3RoJiZDb29raWVzLmdldChiKSYmKGEuaGlkZGVuPSEwKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNvb2tpZXNob3ddIikuZm9yRWFjaChhPT57bGV0IGI9YS5kYXRhc2V0LmNvb2tpZXNob3c7Yi5sZW5ndGgmJkNvb2tpZXMuZ2V0KGIpJiYoYS5oaWRkZW49ITEpfSl9dmFyIHNpdGVQYWdlPXt9Owpjb25zdCBkb2NSZWFkeT1mdW5jdGlvbigpe19sb2NhbFN0b3JhZ2VHZXQoImQyYy11aWQiKXx8X2xvY2FsU3RvcmFnZVNldCgiZDJjLXVpZCIsZ2VuZXJhdGVVbmlxdWVJZCgpLDIpO2lmKCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlKXtsZXQgYTtjb25zb2xlLmxvZygiR1NQRUVELURPQ1JFQURZIENPTVBMRVRFOiIrKERhdGUubm93KCktKG51bGwhPShhPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/YTowKSkvMUUzKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tdHh0IikuZm9yRWFjaChiPT57Yi5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi10eHQiLCExKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi1zbGlkZXIiKS5mb3JFYWNoKGI9PntiLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXNsaWRlciIsITEpfSk7d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD0hMDtzaXRlUGFnZT17bmFtZToidW5kZWZpbmVkIiE9dHlwZW9mIHBhZ2U\/CnBhZ2U6IiIsaXNNb2JpbGU6IjEiPT0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlzbW9iaWxlIil8fCIiKS52YWx1ZSxsYW5nOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlc2l0ZWxhbmd1YWdlIil8fCIiKS52YWx1ZXx8IkZSRU5DSCJ9O2hhbmRsZUNvb2tpZUNvbnRlbnQoKTtpbml0VG9vbHRpcHMoKTtkb2NSZWFkeUFyci5mb3JFYWNoKGI9PmIoKSk7ZG9jUmVhZHlBcnI9W119ZWxzZXtsZXQgYTtpZigiaW50ZXJhY3RpdmUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmd2luZG93LmdSZXNvdXJjZUxvYWRlckFuZEpxdWVyeUlzUmVhZHkmJiExPT09KG51bGwhPShhPXdpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQpP2E6ITEpKXtsZXQgYjtjb25zb2xlLmxvZygiR1NQRUVELURPQ1JFQURZIElOVEVSQUNUSVZFOiIrKERhdGUubm93KCktKG51bGwhPShiPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/YjowKSkvMUUzKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tdHh0IikuZm9yRWFjaChjPT4Ke2MuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tdHh0IiwhMSl9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tc2xpZGVyIikuZm9yRWFjaChjPT57Yy5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi1zbGlkZXIiLCExKX0pO3dpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQ9ITB9c2V0VGltZW91dChkb2NSZWFkeSw1MCl9fTtkb2NSZWFkeSgpOwokKGZ1bmN0aW9uKCl7dmFyIGE9ITA7JCh3aW5kb3cpLm9uKCJzY3JvbGwiLGZ1bmN0aW9uKCl7dmFyIGQ9JChkb2N1bWVudCkuaGVpZ2h0KCksZT0kKHdpbmRvdykuaGVpZ2h0KCkrJCh3aW5kb3cpLnNjcm9sbFRvcCgpOy4wNT4oZC1lKS9kJiZhJiYoYT0hMSwidW5kZWZpbmVkIiE9PXR5cGVvZiBnYVRyYWNrJiZnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkJvdHRvbSBvZiBwYWdlIHJlYWNoZWQiLCQoJ2lucHV0W25hbWU9InRhcmdldFBhZ2UiXScpLnZhbCgpLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpKX0pOyQoIi5lbWJlZC1jb250YWluZXIteW91dHViZSIpLnBhcmVudCgiLndyYXBwZXIiKS5yZW1vdmVDbGFzcygid3JhcHBlciIpO2lmKCQoIiNpc0JyYW5kUGFnZSIpLmxlbmd0aCl7dmFyIGI9Z2V0VXJsVmFycygpO2lmKGIua3cmJi0xIT1iLmt3LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2FuYWRhIikpe3ZhciBjPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKSYmIkVOR0xJU0giPT0KJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIjtiPSJlbiI9PWM\/IkhlcmUgd2Ugb2ZmZXIgdGhlIGJlc3QgcHJpY2VzIjoiSWNpIG9uIG9mZnJlIGxlcyBtZWlsbGV1cnMgcHJpeCI7Yz0iZW4iPT1jPyJvbiAiKyQoIiNpc0JyYW5kUGFnZSIpLnZhbCgpKyIncyBpbiBDYW5hZGEiOiQoIiNpc0JyYW5kUGFnZSIpLnZhbCgpKyIgYXUgQ2FuYWRhIjskKCIjZGVmYXVsdFRvcEJhbm5lclRpdGxlIikudGV4dChiKTskKCIjZGVmYXVsdFRvcEJhbm5lclRleHQiKS50ZXh0KGMpfX0kKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYoYj1nZXRVcmxWYXJzKCksYi5maW5hbmNlcG9wJiYieWVzIj09Yi5maW5hbmNlcG9wJiZzZXRUaW1lb3V0KCgpPT57JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkub3BlbigpfSwxRTMpKTswPCQoIi50cmFkZXNpaS1yb290IikudGV4dCgpLmxlbmd0aD8kKCIudHJhZGVzaWktcm9vdCIpLmNzcygiei1pbmRleCIsCjFFMyk6c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi50cmFkZXNpaS1yb290IikuY3NzKCJ6LWluZGV4IiwxRTMpfSwxRTMpfSk7ZnVuY3Rpb24gYWRkTWF4TGVuZ3RoKCl7JCgiOmlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuYXR0cigidHlwZSIpLGI9JCh0aGlzKS5hdHRyKCJtYXhsZW5ndGgiKTtpZih2b2lkIDA9PWJ8fG51bGw9PWJ8fCIiPT1iKSJ0ZXh0Ij09YXx8InRlbCI9PWF8fCJlbWFpbCI9PWF8fCJ1cmwiPT1hPyQodGhpcykucHJvcCgibWF4bGVuZ3RoIiwyNTYpOiJudW1iZXIiPT1hJiYoJCh0aGlzKS5wcm9wKCJvbmlucHV0IiwidGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsdGhpcy5tYXhsZW5ndGgpIiksJCh0aGlzKS5wcm9wKCJtYXhsZW5ndGgiLDI1NikpfSl9ZG9jUmVhZHlBcnIucHVzaCgoKT0+eyQoIi5yZXZlYWwtbW9kYWwiKS5vbigicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24oKXthZGRNYXhMZW5ndGgoKX0pO2FkZE1heExlbmd0aCgpfSk7CihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQsZSl7dGhpcy5lbD1kO3RoaXMuJGVsPWEoZCk7aWYodm9pZCAwPT09ZXx8Im9iamVjdCI9PT10eXBlb2YgZSl0aGlzLnNldHRpbmdzPWEuZXh0ZW5kKGMsZSk7dGhpcy5pbml0KCl9dmFyIGM9e2xhdDoiIixsb25nOiIiLHBvc3RhbDoiIixyYXRpbzouNjg4NSx3aWR0aDoiYXV0byJ9O2IucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy4kZWwuaXMoIi5sYXp5bG9hZCIpPyJkYXRhLWltZ3NyYyI6InNyYyI7dGhpcy4kZWwuYXR0cihkLHRoaXMuZ2V0VXJsKCkpfSxpc1Zpc2libGU6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLiRlbC5hdHRyKCJ3aWR0aCIpO3JldHVybiEoIjBweCI9PT10aGlzLiRlbC5hdHRyKCJoZWlnaHQiKXx8IjBweCI9PT1kKX0sZ2V0V2lkdGg6ZnVuY3Rpb24oKXt0aGlzLiRlbC5hdHRyKCJ3aWR0aCIpO3ZhciBkPTA7ImF1dG8iPT09dGhpcy5zZXR0aW5ncy53aWR0aHx8ImF1dG8iPT09dGhpcy4kZWwuZGF0YSgid2lkdGgiKT8KZD10aGlzLiRlbC5wYXJlbnQoKS5jc3MoIndpZHRoIik6aXNOYU4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy53aWR0aCkpP3ZvaWQgMCE9PXRoaXMuJGVsLmF0dHIoIndpZHRoIikmJihkPXRoaXMuJGVsLmF0dHIoIndpZHRoIikpOmQ9dGhpcy5zZXR0aW5ncy53aWR0aDt0aGlzLiRlbC5hdHRyKCJ3aWR0aCIsZCk7cmV0dXJuIHBhcnNlSW50KGQucmVwbGFjZSgicHgiLCIiKSl9LGdldEhlaWdodDpmdW5jdGlvbigpe3ZhciBkPSJhdXRvIj09PXRoaXMuc2V0dGluZ3Mud2lkdGh8fCJhdXRvIj09PXRoaXMuJGVsLmRhdGEoIndpZHRoIik\/TWF0aC5yb3VuZCh0aGlzLmdldFdpZHRoKCkqdGhpcy5zZXR0aW5ncy5yYXRpbykrInB4Ijp0aGlzLiRlbC5wYXJlbnQoKS5jc3MoImhlaWdodCIpO3RoaXMuJGVsLmF0dHIoImhlaWdodCIsZCk7cmV0dXJuIHBhcnNlSW50KGQucmVwbGFjZSgicHgiLCIiKSl9LGdldFVybDpmdW5jdGlvbigpe3ZhciBkPWdldERhdGFBdHRyaWJ1dGVzKHRoaXMuZWwpLAplPXRoaXMuZ2V0V2lkdGgoKSxrPXRoaXMuZ2V0SGVpZ2h0KCksaD1kLmxhdCsiLCIrZC5sb25nLG49ZC5oYXNPd25Qcm9wZXJ0eSgibWFya2VySWNvbiIpPyJpY29uOiIrZC5tYXJrZXJJY29uKyJ8IjoiIjtkPWEuZXh0ZW5kKHtzaXplOmUrIngiK2ssY2VudGVyOmgsem9vbToiMTIiLG1hcmtlcnM6bitofSxkKTtyZXR1cm4iaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL3N0YXRpY21hcD8iK2EucGFyYW0oZCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRlbC5yZW1vdmVEYXRhKCl9fTthLmZuLmdvb2dsZVN0YXRpY01hcD1mdW5jdGlvbihkKXt2YXIgZT1hcmd1bWVudHM7aWYoMT50aGlzLmxlbmd0aClyZXR1cm4gdGhpczt0aGlzLmVhY2goZnVuY3Rpb24oKXtpZighYS5kYXRhKHRoaXMsInBsdWdpbl9zdGF0aWNNYXAiKSlyZXR1cm4gYS5kYXRhKHRoaXMsInBsdWdpbl9zdGF0aWNNYXAiLG5ldyBiKHRoaXMsZCkpLHRoaXN9KTtpZigic3RyaW5nIj09PXR5cGVvZiBkJiYKIl8iIT09ZFswXSYmImluaXQiIT09ZCl7MTx0aGlzLmxlbmd0aCYmY29uc29sZS5sb2coImdvb2dsZVN0YXRpY01hcCB3YXJuaW5nIGNvZGUgMSIpO3ZhciBrPWEuZGF0YSh0aGlzLmZpcnN0KClbMF0sInBsdWdpbl9zdGF0aWNNYXAiKTtyZXR1cm4ga1tkXS5hcHBseShrLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMSkpfXJldHVybiB0aGlzfX0pKGpRdWVyeSk7ZnVuY3Rpb24gcGFyc2VRdWVyeShhKXtpZigxPmEubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgYj17fSxjPWEuc3BsaXQoIiYiKSxkPTA7ZDxjLmxlbmd0aDtkKyspYT1leHBsb2RlKGNbZF0sIj0iLDEpLGJbYVswXV09YVsxXTtyZXR1cm4gYn1mdW5jdGlvbiBkZWNvZGVTdHJpbmcoYSxiKXtpZigiIj09Ynx8InVuZGVmaW5lZCI9PWIpYj0xO2ZvcihpPTA7aTxiO2krKylhPWRlY29kZVVSSUNvbXBvbmVudChhKTtyZXR1cm4gYX0KZnVuY3Rpb24gZXhwbG9kZShhLGIsYyl7YT1hLnNwbGl0KGIpO2lmKGEubGVuZ3RoPD1jKXJldHVybiBhO2M9YS5zcGxpY2UoMCxjKTtjLnB1c2goYS5qb2luKGIpKTtyZXR1cm4gY31mdW5jdGlvbiBnZXRVcmxWYXJzKCl7dmFyIGE9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7cmV0dXJuIHBhcnNlUXVlcnkoYSl9ZnVuY3Rpb24gZ2V0Q29va2llKGEpe3JldHVybiBDb29raWVzLmdldChhKX1mdW5jdGlvbiBzZXRDb29raWUoYSxiLGMpe0Nvb2tpZXMuc2V0KGEsYixjLCIvIil9ZnVuY3Rpb24gZ2V0Q29va2llRDJjKGEpe3JldHVybiBDb29raWVzLmdldChhKX1mdW5jdGlvbiBzZXRDb29raWVEMmMoYSxiLGMpe0Nvb2tpZXMuc2V0KGEsYixjLCIvIil9ZnVuY3Rpb24gaXNTU0woKXtyZXR1cm4iaHR0cHM6Ij09PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH1mdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKGEsYil7Q29va2llcy5zZXQoYSxiLDAsIi8iKX0KZnVuY3Rpb24gaW5pdExDSShhLGIpe2lmKDIwPGIpcmV0dXJuIGI7Yj1iP2I6MDtpZigidW5kZWZpbmVkIj09dHlwZW9mIExDX0FQSXx8InVuZGVmaW5lZCI9PXR5cGVvZiBMQ19JbnZpdGUpc2V0VGltZW91dChmdW5jdGlvbigpe2luaXRMQ0koYSwrK2IpfSw1MDApO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBMQ19BUEkmJiJ1bmRlZmluZWQiIT10eXBlb2YgTENfSW52aXRlJiZhKXJldHVybiBMQ19BUEkuc2V0X2N1c3RvbV92YXJpYWJsZXMoYSl9ZnVuY3Rpb24gZ2V0UmVmZXJyZXJWYXJGdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXsiIj09YSYmKGE9ZG9jdW1lbnQucmVmZXJyZXIpO3ZhciBiPWEuaW5kZXhPZigiPyIpKzE7cmV0dXJuIDA8Yj8oYj1hLnNsaWNlKGIpLHBhcnNlUXVlcnkoYikpOnt9fX0KKGZ1bmN0aW9uKGEpe3ZhciBiPXtjYWxsYmFja3M6W10saGFzU2NyaXB0OmZ1bmN0aW9uKCl7dmFyIGU9YSgnaGVhZCBzY3JpcHRbc3JjKj0ibWFwcy5qcy5waHAiXScpO3JldHVybiAwPT1lLmxlbmd0aD8hMTovbWFwc1wuanMvLnRlc3QoZS5hdHRyKCJzcmMiKSl9LGxvYWQ6ZnVuY3Rpb24oZSl7aWYoYi5oYXNTY3JpcHQoKSkidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGU\/Yi5jYWxsYmFja3MucHVzaChlKTplKCk7ZWxzZXtiLmNhbGxiYWNrcy5wdXNoKGUpO3RyeXt2YXIgaz0iRU5HTElTSCI9PWEoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciI7KGZ1bmN0aW9uKGgsbix4LHYsZil7aFtmXSYmaFtmXS5tYXBzfHwoaD1uLmNyZWF0ZUVsZW1lbnQoeCksbj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKHgpWzBdLGguc3JjPXYsaC5hc3luYz0hMSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImdvb2dsZU1hcHNMb2FkZWQiLGc9Pntmb3IoZz0wO2c8Yi5jYWxsYmFja3MubGVuZ3RoO2crKyliLmNhbGxiYWNrc1tnXS5jYWxsKCl9KSwKbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShoLG4pKX0pKHdpbmRvdyxkb2N1bWVudCwic2NyaXB0IiwiL2pzL21hcHMuanMucGhwP2xhbmc9IitrLCJnb29nbGUiKX1jYXRjaChoKXtjb25zb2xlLmxvZyhoKX19fX0sYz17YXV0b0NvbXBsZXRlOntjb21wb25lbnRSZXN0cmljdGlvbnM6e2NvdW50cnk6ImNhIn19LHJhZGl1czoxRTV9LGQ9ZnVuY3Rpb24oZSxrKXt2YXIgaD10aGlzO2guZWw9ZTtoLiRlbD1hKGUpO2guc2V0dGluZ3M9YS5leHRlbmQoYyxrKTtoLmFkZHJlc3M9e2NpdHk6IiIsc3RyZWV0X251bWJlcjoiIixzdHJlZXQ6IiIsc3VibG9jYWxpdHk6IiIscHJvdmluY2U6IiIsY291bnRyeToiIixwb3N0YWw6IiJ9O2guJGVsLm9uZSgiZm9jdXMiLGZ1bmN0aW9uKCl7aC5pbml0KCl9KX07ZC5wcm90b3R5cGU9e19jaGVja0Zvckdvb2dsZU1hcHM6ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCI9PT10eXBlb2YgZ29vZ2xlfHwidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGUubWFwcz8KYi5sb2FkKGUpOiJmdW5jdGlvbiI9PT10eXBlb2YgZSYmZS5jYWxsKCl9LGdldEFkZHJlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGRyZXNzfSxfc2V0QWRkcmVzczpmdW5jdGlvbihlKXt2YXIgaz10aGlzO2EuZWFjaChlLGZ1bmN0aW9uKGgsbil7c3dpdGNoKCEwKXtjYXNlIC0xPGEuaW5BcnJheSgic3RyZWV0X251bWJlciIsbi50eXBlcyk6ay5hZGRyZXNzLnN0cmVldF9udW1iZXI9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgicm91dGUiLG4udHlwZXMpOmsuYWRkcmVzcy5zdHJlZXQ9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgic3VibG9jYWxpdHkiLG4udHlwZXMpOmsuYWRkcmVzcy5zdWJsb2NhbGl0eT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJsb2NhbGl0eSIsbi50eXBlcyk6Y2FzZSAtMTxhLmluQXJyYXkoImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMyIsbi50eXBlcyk6IiI9PWsuYWRkcmVzcy5jaXR5JiYoay5hZGRyZXNzLmNpdHk9bik7YnJlYWs7CmNhc2UgLTE8YS5pbkFycmF5KCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEiLG4udHlwZXMpOmsuYWRkcmVzcy5wcm92aW5jZT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJjb3VudHJ5IixuLnR5cGVzKTprLmFkZHJlc3MuY291bnRyeT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJwb3N0YWxfY29kZSIsbi50eXBlcyk6ay5hZGRyZXNzLnBvc3RhbD1ufX0pfSxfc2V0U2VhcmNoQm91bmRzOmZ1bmN0aW9uKGUsayxoKXtrPW5ldyBnb29nbGUubWFwcy5MYXRMbmcoayxoKTtrPW5ldyBnb29nbGUubWFwcy5DaXJjbGUoe2NlbnRlcjprLHJhZGl1czp0aGlzLnNldHRpbmdzLnJhZGl1c30pO2Uuc2V0Qm91bmRzKGsuZ2V0Qm91bmRzKCkpfSxpbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLl9jaGVja0Zvckdvb2dsZU1hcHMoZnVuY3Rpb24oKXt2YXIgaz1uZXcgZ29vZ2xlLm1hcHMuR2VvY29kZXIsaD1uZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZShlLmVsLAplLnNldHRpbmdzLmF1dG9Db21wbGV0ZSk7ZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgibGF0IikmJmUuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImxvbmciKT8iIiE9PWUuc2V0dGluZ3MubGF0JiYiIiE9PWUuc2V0dGluZ3MubG9uZyYmZS5fc2V0U2VhcmNoQm91bmRzKGgsZS5zZXR0aW5ncy5sYXQsZS5zZXR0aW5ncy5sb25nKTplLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJhZGRyZXNzIik\/ZS5zZXR0aW5ncy5hZGRyZXNzJiZrLmdlb2NvZGUoe2FkZHJlc3M6ZS5zZXR0aW5ncy5hZGRyZXNzfSxmdW5jdGlvbihuLHgpe2UuX3NldFNlYXJjaEJvdW5kcyhoLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSl9KToidW5kZWZpbmVkIiE9PXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzJiYwPGZvb3Rlck1hcEFkZHJlc3MubGVuZ3RoJiZrLmdlb2NvZGUoe2FkZHJlc3M6Zm9vdGVyTWFwQWRkcmVzc1swXS5hZGRyZXNzfSxmdW5jdGlvbihuLAp4KXtlLl9zZXRTZWFyY2hCb3VuZHMoaCxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubG5nKCkpfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoaCwicGxhY2VfY2hhbmdlZCIsZnVuY3Rpb24oKXt2YXIgbj1oLmdldFBsYWNlKCk7ZS5fc2V0QWRkcmVzcyhuLmFkZHJlc3NfY29tcG9uZW50cyk7ZS4kZWwudmFsKG4uZm9ybWF0dGVkX2FkZHJlc3MpO249bmV3IEV2ZW50KCJpbnB1dCIpO2UuZWwuZGlzcGF0Y2hFdmVudChuKTtlLiRlbC50cmlnZ2VyKCJmb2N1cyIpfSl9KX19O2EuZm4uZ29vZ2xlUGxhY2VzPWZ1bmN0aW9uKGUpe3ZhciBrPWFyZ3VtZW50cztpZih2b2lkIDA9PT1lfHwib2JqZWN0Ij09PXR5cGVvZiBlKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXthLmRhdGEodGhpcywicGx1Z2luX3BsYWNlcyIpfHxhLmRhdGEodGhpcywicGx1Z2luX3BsYWNlcyIsbmV3IGQodGhpcyxlKSl9KTtpZigic3RyaW5nIj09PXR5cGVvZiBlJiYKIl8iIT09ZVswXSYmImluaXQiIT09ZSl7dmFyIGg9YS5kYXRhKHRoaXNbMF0sInBsdWdpbl9wbGFjZXMiKTtyZXR1cm4gaFtlXS5hcHBseShoLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGssMSkpfX19KShqUXVlcnkpOwpmdW5jdGlvbiBzaG93QmFubmVyUG9wdXAoYSl7dHJ5eyQoYSkuaGFzQ2xhc3MoInRyYWRlaW5MaW5rIikmJigwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJ0cmFkZWludmFsdWVzIil8fDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpKT9zaG93VHJhZGVJblBvcHVwKGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKSk6MDwkKCIjYmFubmVyUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJiQoIiNiYW5uZXJQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gZGlzcGxheSB0cmFkZWludmFsdWVzIGlmcmFtZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19CiQoZnVuY3Rpb24oKXswPCQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJykubGVuZ3RoJiYkKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpLmdvb2dsZVBsYWNlcygpOyJ1bmRlZmluZWQiIT09dHlwZW9mICQuZm4uZGFya1Rvb2x0aXAmJigkKCIjc29jaWFsX21lZGlhX2ljb25zX2RpdiBhLCAuZ1JhdGluZy1pY29uIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Im5vcnRoIixvcGFjaXR5OjF9KSwkKCIuc29jaWFsLW1lZGlhLWljb25zIFtkYXRhLXRvb2x0aXBdIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6InNvdXRoIixvcGFjaXR5OjF9KSwkKCIjbWl0c3ViaXNoaUNlcnRpZmllZEZvb3RlciBhLnNvY2lhbC1tZWRpYV9faWNvbiwgI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgYS5zb2NpYWwtbWVkaWFfX2ljb24iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToic291dGgiLG9wYWNpdHk6MX0pKTt2YXIgYT0kKCIuZ3JheWJveC51c2VkRGV0YWlsc1Bob25lLCAuZ3JheWJveC5uZXdEZXRhaWxzUGhvbmUiKTsKMD09PWEuY2hpbGRyZW4oKS5sZW5ndGgmJjA9PT1hLnRleHQoKS50cmltKCkubGVuZ3RoJiZhLmhpZGUoKX0pOyQoIiNmaW5hbmNlQWx0RGlzcGxheSAuc3RlcDEgYmlnLnRleHQgYmlnIikuYXR0cigiZGF0YS1kZXBhcnRtZW50IiwiRmluYW5jZSIpOyQoIi5jcmVkaXRfbV9jYWxsdXNfd3JhcHBlciBhIikuYXR0cigiZGF0YS1kZXBhcnRtZW50IiwiRmluYW5jZSIpOwokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyQoIiNkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKS5sZW5ndGgmJihlbGVtZW50VG9PYnNlcnZlPXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Q2VydGlmaWNhdGlvbi1jYXJndXJ1cy13cmFwcGVyIikuY2hpbGRyZW5bMF0sb2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSxiKXtiPSQoIiNkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKTtsZXQgYz0kKCJzcGFuW2RhdGEtY2ctZXJyb3JdIixiKTtjb25zb2xlLmxvZygiRDJDRyIsYixjLGEpO2MubGVuZ3RoJiZiLnJlbW92ZSgpfSksb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50VG9PYnNlcnZlLHtjaGFyYWN0ZXJEYXRhOiExLGNoaWxkTGlzdDohMCxhdHRyaWJ1dGVzOiExfSkpfSk7JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXstMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvbmV3LyIpfHwkKCIjbmV3LXZkcC1zcGVjLWJyb2NodXJlIikuaGlkZSgpfSk7CiQoZnVuY3Rpb24oKXskKCIjRm9vdGVyX0ZJTkFOQ0UgPiBhLCBhI0ZpbmFuY2VBY3Rpb25Cb3gsIGEjRmluYW5jZUFjdGlvbkJveExpbmsiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbigpe3ZhciBhPSQodGhpcyksYj0kKCJodG1sIikuYXR0cigibGFuZyIpO2lmKDA8JCgiI0RFQUxFUlBBQ09ERSIpLmxlbmd0aCl7dmFyIGM9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGQ9JCgiI0RFQUxFUkJSQU5EX1BSSU1BUlkiKS52YWwoKS50b0xvd2VyQ2FzZSgpO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjRklOQU5DRUZPUk1UWVBFIikudmFsKCkmJigiZm9yZCI9PWR8fCJsaW5jb2xuIj09ZCkmJiIiIT1jKXt2YXIgZT0oImVuIj09Yj8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSIpKwpjO2I9KCJlbiI9PWI\/Imh0dHBzOi8vd3d3LmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IjoiaHR0cHM6Ly9mci5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSIpK2M7YS5vZmYoImNsaWNrIik7YS5hdHRyKCJocmVmIiwiZm9yZCI9PWQ\/ZTpiKTthLmF0dHIoInRhcmdldCIsIl9ibGFuayIpfX19KX0pOwokKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7dHJ5e2lmKGdldFBhcmFtZXRlckJ5TmFtZSgicHJvbW8iKSl7dmFyIGE9MDxhY3RpdmF0ZWRQb3B1cERpdklELmxlbmd0aD9hY3RpdmF0ZWRQb3B1cERpdklEOiExO2lmKGEmJjA8YS5sZW5ndGgpe3ZhciBiPSQoIiMiK2EpLnBvcHVwaXplKHtwcmlvcml0eToxMDAsZW5kUG9wdXBRdWV1ZTohMH0pO3BvcHVwU3VwZXJ2aXNvci5yZWdpc3RlcihiKX19Im9iamVjdCI9PXR5cGVvZiBwb3B1cFN1cGVydmlzb3ImJnNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnNob3csNTAwKX1jYXRjaChjKXtjb25zb2xlLmxvZyhjKX19KTsKJChmdW5jdGlvbigpeyQoIi5uYXYgYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oYSl7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiYoKGE9JCh0aGlzKS5hdHRyKCJocmVmIikpJiYhUmVnRXhwKCJqYXZhc2NyaXB0OiIsImdpIikudGVzdChhKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhLCJNRU5VX2NsaWNrZWRfVVJMIiksKGE9Ii8iPT1hPyJIb21lIjokKHRoaXMpLnRleHQoKSkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSwiTUVOVV9jbGlja2VkX0lORk8iKSl9KX0pOwp2YXIgRDJDVXRpbHM9e0xhbmc6e2lzRU46ZnVuY3Rpb24oKXtyZXR1cm4hKCJmdW5jdGlvbiI9PT10eXBlb2YgJCYmJCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKSl9LGdldFNob3J0TGFuZzpmdW5jdGlvbihhKXtyZXR1cm4gRDJDVXRpbHMuTGFuZy5pc0VOKCk\/YT8iRU4iOiJlbiI6YT8iRlIiOiJmciJ9fSxGb3JtYXQ6e3RvTnVtYmVyOmZ1bmN0aW9uKGEpe2E9YS50b1N0cmluZygpLnNwbGl0KCIuIik7Zm9yKHZhciBiPS8oXGQrKShcZHszfSkvO2IudGVzdChhWzBdKTspYVswXT1hWzBdLnJlcGxhY2UoYiwiJDEsJDIiKTtyZXR1cm4gYVswXX0sdG9QcmljZTpmdW5jdGlvbihhLGIpe3JldHVybiBiPyhiPUQyQ1V0aWxzLkxhbmcuaXNFTigpPyIiOiIgJCIsYCR7RDJDVXRpbHMuTGFuZy5pc0VOKCk\/IiQiOiIifSR7RDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGEpfSR7Yn1gKTpgPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHtEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYSl9PC9zcGFuPmB9fSwKTnVtYmVyOntyb3VuZERvd246ZnVuY3Rpb24oYSl7dmFyIGI9Mj09PWFyZ3VtZW50cy5sZW5ndGg\/cGFyc2VJbnQoYXJndW1lbnRzWzFdKToxO3JldHVybiBNYXRoLmZsb29yKGEvYikqYn0scm91bmRVcDpmdW5jdGlvbihhKXt2YXIgYj0yPT09YXJndW1lbnRzLmxlbmd0aD9wYXJzZUludChhcmd1bWVudHNbMV0pOjE7cmV0dXJuIE1hdGguY2VpbChhL2IpKmJ9fSxBcnJheXM6e2ZpbmQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubGVuZ3RoO2lmKDA8ZClmb3IodmFyIGU9MDtlPGQ7ZSsrKWlmKGFbZV1bYl09PWMpcmV0dXJuIGFbZV07cmV0dXJuLTF9fSxTdHJpbmc6e2NhcGl0YWxpemVGaXJzdExldHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK1N0cmluZyhhKS5zbGljZSgxKX19LE1vYmlsZTp7aXNNb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gMDwkKCIjaXNNb2JpbGUiKS5sZW5ndGh9fX07CmZ1bmN0aW9uIHNldHVwRmluYW5jaW5nTGluayhhLGIpezQ4NT09KCQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpKSYmYi5jbGVhcmFuY2UmJjA8YS5sZW5ndGgmJihiPSQoIiNNYWluTWVudV9mNDgyYmFhYi1hYWM0LWVkYTYtNmI1Mi0zID4gYSIpLDA9PWIubGVuZ3RoJiYoYj0kKCIuQ0xFQVJBTkNFIikucGFyZW50KCkuZmluZCgiLnN1Ym1lbnVJdGVtOmZpcnN0LWNoaWxkIikpLDA8Yi5sZW5ndGgmJihiPWIuYXR0cigiaHJlZiIpLCIiIT09YiYmYS5hdHRyKCJocmVmIixiKSkpfXZhciBvcGVuV2luZG93cz1bXSx3aW5kb3dPcGVuT0c9d2luZG93Lm9wZW47CndpbmRvdy5vcGVuPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93T3Blbk9HLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxiPXt3aW5kb3c6YSxhcmdzOmFyZ3VtZW50c307b3BlbldpbmRvd3MucHVzaChiKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBqUXVlcnkmJmpRdWVyeShkb2N1bWVudCkudHJpZ2dlcigid2luZG93Lm9wZW4iLGIpO3JldHVybiBhfTsKJChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9uKCJ3aW5kb3cub3BlbiIsZnVuY3Rpb24oYSxiKXthPWIuYXJncztmb3IodmFyIGM9ITEsZD0wO2Q8YS5sZW5ndGg7ZCsrKWlmKC0xPGFbZF0uaW5kZXhPZigiY2FyZmF4Iil8fGFbZF0uaW5kZXhPZigiY2FycHJvb2YiKSl7Yz0hMDticmVha31pZihjKXthPXdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHR8fHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7dHJ5e2Iud2luZG93LnJlc2l6ZVRvKGIud2luZG93Lm91dGVyV2lkdGgsTWF0aC5yb3VuZCguOTUqYSkpfWNhdGNoKGUpe319fSl9KTsKJChmdW5jdGlvbigpe3ZhciBhPSQoIi51cF9tZW51IiksYj0kKCIucHJvbW90aW9uU2lkZVZCdXR0b24iKSxjPSQoJyNzbGlkZWl0ID4gbGFiZWxbZm9yPSJvcGVuLWl0ZW0iXTpub3QoLnRleHQtdXMtYnRuKScpO2lmKGEubGVuZ3RoJiZiLmxlbmd0aCl7dmFyIGQ9ITEsZT1mdW5jdGlvbigpe3ZhciBrPSQod2luZG93KS5zY3JvbGxUb3AoKSxoPSQod2luZG93KS5oZWlnaHQoKTtrPWEub2Zmc2V0KCkudG9wK2Eub3V0ZXJIZWlnaHQoKSsxMDAtaztoPU1hdGgubWF4KGgvMixrKTtiLnBhcmVudCgpLmhhc0NsYXNzKCJzcGVjaWFsU2NoZWR1bGVDb250ZW50Iil8fCJzcGVjaWFsU2NoZWR1bGVDb250ZW50Ij09Yi5wYXJlbnQoKS5hdHRyKCJpZCIpfHxiLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6aCsicHgiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsdHJhbnNpdGlvbjoibm9uZSJ9KTtjLmxlbmd0aCYmKGg9YlswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sCmMuY3NzKHtwb3NpdGlvbjoiZml4ZWQiLHRvcDpoKzUrInB4In0pKTtkPSExfTskKHdpbmRvdykub24oInNjcm9sbCByZXNpemUiLGZ1bmN0aW9uKCl7ZHx8KHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSksZD0hMCl9KTtzZXRUaW1lb3V0KGUsMTAwKX19KTtmdW5jdGlvbiByZXBsYWNlVXNlZFZlaGljbGVNb2RlbERpc3BsYXkoYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYXx8YSBpbnN0YW5jZW9mIFN0cmluZykiZnVuY3Rpb24iPT09dHlwZW9mICQmJiQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIil8fC0xIT09YS5pbmRleE9mKCJIeWJyaWRlIikmJihhPWEucmVwbGFjZSgiSHlicmlkZSIsIkh5YnJpZCIpKTtyZXR1cm4gYX0KJChmdW5jdGlvbigpe2lmKCQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5sZW5ndGgpe3ZhciBhPSQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIik\/ImZyIjoiZW4iLGI9JCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iUsOpc2VydmV6LWxlIGF2ZWMgUGF5UGFsICEiOiJSZXNlcnZlIGl0ICB3aXRoIFBheVBhbCAhIjskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgnaW5wdXRbdHlwZT0iaW1hZ2UiXVtuYW1lPSJzdWJtaXQiXScpLmF0dHIoInNyYyIsIi9pbWFnZXMvY29udGludWVfd2l0aF9wYXlwYWxfIithKyIucG5nIik7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoImZvcm0iKS5hdHRyKCJ0YXJnZXQiLCJwYXlwYWxJZnJhbWUiKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgidGFibGUgdHI6Zmlyc3QgdGQiKS5jb250ZW50cygpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAzPT10aGlzLm5vZGVUeXBlfSkuZmlyc3QoKS5yZXBsYWNlV2l0aChiKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5maW5kKCdbbmFtZT0iaXRlbV9uYW1lIl0nKS5yZW1vdmUoKTsKJCgiLnBheXBhbF9idXR0b25faHRtbCBmb3JtIikuZmluZCgnW25hbWU9Iml0ZW1fbnVtYmVyIl0nKS5yZW1vdmUoKTthPSc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpdGVtX25hbWUiIHZhbHVlPSInKyQoIiNwaG9uZW1ha2UiKS52YWwoKSsiICIrJCgiI3Bob25lbW9kZWwiKS52YWwoKSsiICIrJCgiI3Bob25lbXllYXIiKS52YWwoKSsiIFN0b2NrKCMiKyQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCkrJykiPic7JCgiLnBheXBhbF9idXR0b25faHRtbCBmb3JtIikuYXBwZW5kKGEpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCdpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdJykub24oImNsaWNrIixmdW5jdGlvbigpe2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJDbGlxdWVzIFBheVBhbCIsIk9jY2FzaW9uIiwkKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpKyItIiskKCIjcGhvbmVtYWtlIikudmFsKCkrIi0iKyQoIiNwaG9uZW1vZGVsIikudmFsKCkrCiItIiskKCIjcGhvbmVteWVhciIpLnZhbCgpKyItIiskKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpLDEpfSk7JCgiI3BheXBhbFBvcHVwIikuZGV0YWNoKCkuYXBwZW5kVG8oImJvZHkiKTskKCcucGF5cGFsX2J1dHRvbl9odG1sIGlucHV0W25hbWU9InN1Ym1pdCJdJykub24oImNsaWNrIixmdW5jdGlvbigpeyQoIiNwYXlwYWxQb3B1cCIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9KTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuc2hvdygpfSQoIiN0ZXN0RHJpdmVUeXBlIikubGVuZ3RoJiYoIlZpcnR1YWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpfHwiVmlydHVlbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCkpJiYkKCIucHJlZmVyZWRWaXJ0dWFsVG9vbCIpLnNob3coKX0pOwpmdW5jdGlvbiBwcmljZVJlcXVlc3RDb21tZW50VGV4dCgpe3ZhciBhPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKSxiPSQoIiNpc21vYmlsZSIpLGM9JCgiI3F1ZXN0aW9uc0NvbW1lbnRzIik7YT0iRU5HTElTSCI9PWEudmFsKCk\/IkhpLCBJJ2QgbGlrZSB0byBnZXQgeW91ciBiZXN0IHByaWNlIG9uIGEgMCAgIjoiQm9uam91ciwgaidhaW1lcmFpcyBhdm9pciB2b3RyZSBtZWlsbGV1cnMgcHJpeCBwb3VyIHVuICAgMCI7MDxiLmxlbmd0aCYmIjEiPT1iLnZhbCgpJiYwPGMubGVuZ3RoJiZjLnZhbCgpPT1hJiZjLnZhbCgiIil9JChmdW5jdGlvbigpe3ByaWNlUmVxdWVzdENvbW1lbnRUZXh0KCl9KTsKJChmdW5jdGlvbigpe3ZhciBhPSQoIiNmb290ZXIgLmljb24tdGV4dCBzcGFuW2l0ZW1wcm9wPSd0ZWxlcGhvbmUnXSBhLnBob25lLWxpbmsiKSxiPSQoIiNmb290ZXIgLmljb24tdGV4dCAuZmEtcGhvbmUiKTswPGEubGVuZ3RoJiYwPGIubGVuZ3RoJiYiIj09YS5odG1sKCkudHJpbSgpJiZiLmhpZGUoKX0pOwpmdW5jdGlvbiBwYWdlVmlld0NvdW50R29vZ2xlRXZlbnQoKXt2YXIgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsYj0wLGM9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX1ZEUE1WIik7bnVsbCE9Yz8oYz1KU09OLnBhcnNlKGMpLGI9bnVsbCE9Y1thXT9jW2FdOjAsY1thXT1wYXJzZUludChiKSsxKTooYz17fSxjW2FdPTEpO2E9IjEiPT0kKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCk\/Ik5FVyI6JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk7MD09Yj9nYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIxeCIsMSk6MT09Yj9nYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIyeCIsMSk6Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlZEUCBtdWx0aXBsZSB2aWV3cyIsYSwiM3grIiwxKTtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkMmNfVkRQTVYiLEpTT04uc3RyaW5naWZ5KGMpKX0KJC5mbi5pc0luVmlld3BvcnQ9ZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLm9mZnNldCgpLnRvcCxiPWErJCh0aGlzKS5vdXRlckhlaWdodCgpLGM9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGQ9YyskKHdpbmRvdykuaGVpZ2h0KCk7cmV0dXJuIGI+YyYmYTxkfTskLmZuLmlzQWJvdmVWaWV3cG9ydD1mdW5jdGlvbihhKXthPWF8fDA7dmFyIGI9JCh0aGlzKS5vZmZzZXQoKS50b3ArJCh0aGlzKS5vdXRlckhlaWdodCgpLGM9JCh3aW5kb3cpLnNjcm9sbFRvcCgpO3JldHVybiBiPmMrYX07ZnVuY3Rpb24gc2V0UG9wdXBPcGVuT25DbGljaygpeyQoIltkYXRhLXBvcHVwaWRdIikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuYXR0cigiZGF0YS1wb3B1cGlkIik7JCh0aGlzKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCk7JCgiIyIrYSkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0pfSl9CmZ1bmN0aW9uIGFkZERlYWxlckluc2lkZVNjcmlwdCgpe2lmKCQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikubGVuZ3RoKXt2YXIgYT0kKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmF0dHIoImRhdGEtaWREZWFsZXIiKSxiPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1sYW5nIiksYz0kKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmF0dHIoImRhdGEtYnV0dG9uLXR5cGUiKSxkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Quc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0Iik7ZC5zZXRBdHRyaWJ1dGUoInNyYyIsImh0dHBzOi8vZGVhbGVyaW5zaWRlYXBwLmNvbS93aWRnZXRzL2RlYWxlcl9pbnNpZGVfY2FsbC5qcz9kZWFsZXJJZD0iK2ErIiZsYW5nPSIrYisiJmJ1dHRvblR5cGU9IitjKTtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGQpfX0KJChmdW5jdGlvbigpe3NldFBvcHVwT3Blbk9uQ2xpY2soKTthZGREZWFsZXJJbnNpZGVTY3JpcHQoKX0pO2Z1bmN0aW9uIG1vdG9pbnNpZ2h0U2hvcEdvb2dsZU9wdGltaXplKCl7JCgiI2pzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyLWlucHV0IikubGVuZ3RoJiYkKCIuanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJiQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmF0dHIoImRhdGEtbW90b2luc2lnaHRzaG9waWZyYW1ldXJsIiwkKCIjanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXItaW5wdXQiKS52YWwoKSl9ZnVuY3Rpb24gaHRtbFRvTm9kZShhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmlubmVySFRNTD1hLnRyaW0oKTtyZXR1cm4gYi5maXJzdEVsZW1lbnRDaGlsZH0KZnVuY3Rpb24gaHRtbFRvRG9jdW1lbnRGcmFnKGEpe3JldHVybiBkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChhKX1mdW5jdGlvbiBodG1sVG9FbGVtZW50cyhhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO2IuaW5uZXJIVE1MPWE7cmV0dXJuIGIuY29udGVudC5jaGlsZE5vZGVzfQpjb25zdCB2aWV3UG9ydE9ic2VydmVyPWZ1bmN0aW9uKGEpe2xldCBiPSExLGM9ITEsZD01MDtjb25zdCBlPWs9PntrPWtbMF07bGV0IGg9LjAxPj1rLmludGVyc2VjdGlvblJhdGlvJiZrLmJvdW5kaW5nQ2xpZW50UmVjdC50b3A8ZDtjLmNsYXNzTGlzdC50b2dnbGUoInRvcC1maXhlZCIsaCk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNtc0N0YUJ0biIpLmZvckVhY2gobj0+bi5oaWRkZW49IWgpO251bGwhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9hc3QtY29udGFpbmVyIikmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9hc3QtY29udGFpbmVyIikuaGlkZGVuPSFoKX07cmV0dXJue29ic2VydmU6KCk9PntpZihhKXtkKz1hLm9mZnNldEhlaWdodCsxNjt2YXIgaz1hLmNsb3Nlc3QoIi5vYnNlcnZlZC13cmFwcGVyIil8fCExO2lmKCFrKXtsZXQgaD1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJmaXhlZC13cmFwcGVyIj48L2Rpdj4nKTtrPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9Im9ic2VydmVkLXdyYXBwZXIiPjwvZGl2PicpOwphLmFmdGVyKGspO2suYXBwZW5kQ2hpbGQoaCk7aC5hcHBlbmRDaGlsZChhKTtrLnN0eWxlLmhlaWdodD1gJHtoLm9mZnNldEhlaWdodH1weGB9Yj1rO2M9Yi5xdWVyeVNlbGVjdG9yKCIuZml4ZWQtd3JhcHBlciIpOyhuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZSx7cm9vdE1hcmdpbjpgLSR7ZH1weCAwcHggMHB4IDBweGAsdGhyZXNob2xkOlswLC4wMV19KSkub2JzZXJ2ZShiKX19fX07CmZ1bmN0aW9uIGQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXMoYSl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImQyZmF2RGF0YSIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmb3JtRmlsbERhdGEiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKTt2YXIgYj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsYz1iO2I9Yi5yZXBsYWNlKCJ3d3cuIiwiIik7dmFyIGQ9Yj1iLnJlcGxhY2UoIm0uIiwiIik7Yi5pbmNsdWRlcygiZDJjbWVkaWEuY2EiKSYmKGI9ImQyY21lZGlhLmNhIik7Zm9yKHZhciBlPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpLGs9MDtrPGUubGVuZ3RoO2srKyl7dmFyIGg9ZVtrXSxuPWguaW5kZXhPZigiPSIpO2g9LTE8bj9oLnN1YnN0cigwLG4pOmg7ImQyY19jb29raWVfY29uc2VudCIhPWgudHJpbSgpJiYiT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkIiE9CmgudHJpbSgpJiYiT3B0YW5vbkNvbnNlbnQiIT1oLnRyaW0oKSYmKGg9aC50cmltKCksZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uIitiKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0iK2IrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPSIrYysiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49LiIrZCsiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49IitkKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uZDJjbWVkaWEuY2E7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsCmRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49ZDJjbWVkaWEuY2E7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGNvbnNvbGUubG9nKCJEMkRDIixoLGIpLGs9PXBhcnNlRmxvYXQoZS5sZW5ndGgpLTEmJigidW5kZWZpbmVkIj09PXR5cGVvZiBhJiYkKCIjZDJjRm9vdGVyQ29va2llRGVsZXRlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKSxzZXRUaW1lb3V0KGQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXNSZWZyZXNoLDJFMykpKX1yZXR1cm4hMH0KZnVuY3Rpb24gZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llc1JlZnJlc2goKXt3aW5kb3cudG9wPT09d2luZG93LnNlbGYmJmxvY2F0aW9uLnJlbG9hZCgpfQpmdW5jdGlvbiBHb29nbGVDYXB0Y2hhKCl7dGhpcy5yZXNwb25zZVRva2VuPSIiO3RoaXMud2lkZ2V0SWQ9LTE7dGhpcy5wYXNzZWQ9ITE7dmFyIGE9JC5EZWZlcnJlZCgpLGI9dGhpcztfX2luaXQ9ZnVuY3Rpb24oKXt0cnl7aWYoIXdpbmRvdy5ncmVjYXB0Y2hhKXt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxkPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTtjLnNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpLmpzIjtkLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGMsZCl9fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpfX07X19sb2FkQ2FwdGNoYT1mdW5jdGlvbigpe2lmKCEoLTE8Yi53aWRnZXRJZCkpdHJ5e3ZhciBjPSJnb29nbGVXaWRnZXRfIitNYXRoLmZsb29yKDE2Nzc3MjE1Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDE2KTskKCc8ZGl2IGlkPSInK2MrJyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9kaXY+JykuYXBwZW5kVG8oImJvZHkiKTsKYi53aWRnZXRJZD1ncmVjYXB0Y2hhLnJlbmRlcihjLHtzaXRla2V5OiI2TGZwZEQwVUFBQUFBUGQ0UzdJa2U1RWR4MDF5M1lYZDVJLXUzZHhQIixjYWxsYmFjazpfX3N1Ym1pdENhcHRjaGEsImVycm9yLWNhbGxiYWNrIjpiLmZhaWwsc2l6ZToiaW52aXNpYmxlIn0pfWNhdGNoKGQpe2NvbnNvbGUubG9nKGQpfX07X19zdWJtaXRDYXB0Y2hhPWZ1bmN0aW9uKGMpe2IucmVzcG9uc2VUb2tlbj1jO2IucGFzc2VkPSEwO2EucmVzb2x2ZSgpfTtiLmdldFJlc3BvbnNlPWZ1bmN0aW9uKCl7dmFyIGM9JC5EZWZlcnJlZCgpO3dpbmRvdy5ncmVjYXB0Y2hhPyhfX2xvYWRDYXB0Y2hhKCksZ3JlY2FwdGNoYS5leGVjdXRlKGIud2lkZ2V0SWQpLGEuZG9uZShmdW5jdGlvbigpe2MucmVzb2x2ZShiLnJlc3BvbnNlVG9rZW4pfSkpOmMucmVzb2x2ZSgpO3JldHVybiBjfTtiLmZhaWw9ZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiR1JDIEZhaWwiLGFyZ3VtZW50cyl9O19faW5pdCgpfQpmdW5jdGlvbiBnZXRMdXh1cnlUYXhBbW91bnQoYSl7dmFyIGI9MDsxRTU8YSYmKGI9LjEqYSxhPS4yKihhLTFFNSksYj1iPGE\/YjphKTtyZXR1cm4gTWF0aC5yb3VuZChiKX0KdmFyIHdvcmRzPVtdLHBhcnQsd29yZEluZGV4PTAsb2Zmc2V0PTAsbGVuPTEsZm9yd2FyZHM9ITAsc2tpcF9jb3VudD0wLHNraXBfZGVsYXk9MTUsc3BlZWQ9NzAsd29yZGZsaWNrPWZ1bmN0aW9uKGEsYil7d29yZHM9YTtsZW49d29yZHMubGVuZ3RoO3NldEludGVydmFsKGZ1bmN0aW9uKCl7Zm9yd2FyZHM\/b2Zmc2V0Pj13b3Jkc1t3b3JkSW5kZXhdLmxlbmd0aCYmKCsrc2tpcF9jb3VudCxza2lwX2NvdW50PT1za2lwX2RlbGF5JiYoZm9yd2FyZHM9ITEsc2tpcF9jb3VudD0wKSk6MD09b2Zmc2V0JiYoZm9yd2FyZHM9ITAsd29yZEluZGV4Kyssb2Zmc2V0PTAsd29yZEluZGV4Pj1sZW4mJih3b3JkSW5kZXg9MCkpO3BhcnQ9d29yZHNbd29yZEluZGV4XS5zdWJzdHIoMCxvZmZzZXQpOzA9PXNraXBfY291bnQmJihmb3J3YXJkcz9vZmZzZXQrKzpvZmZzZXQtLSk7Yi50ZXh0KHBhcnQpfSxzcGVlZCl9OwpmdW5jdGlvbiBpc0luVmlld3BvcnQoYSxiKXtiPXZvaWQgMD09PWI\/e306YjthPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IGM9aXNOdW1lcmljKGIudG9wKT9iLnRvcDowO2I9aXNOdW1lcmljKGIubGVmdCk\/Yi5sZWZ0OjA7cmV0dXJuIE1hdGguZmxvb3IoYS50b3ApPj1jJiZNYXRoLmZsb29yKGEubGVmdCk+PWImJk1hdGguZmxvb3IoYS5ib3R0b20pPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSYmTWF0aC5mbG9vcihhLnJpZ2h0KTw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpfWZ1bmN0aW9uIGlzTnVtZXJpYyhhKXtyZXR1cm4vXi0\/XGQrJC9nLnRlc3QoYSl9CmRvY1JlYWR5QXJyLnB1c2goKCk9Pntkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT0iYnV0dG9uIl0nKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGI9Pntjb25zdCBjPXZvaWQgMCE9PWIua2V5P2Iua2V5OmIua2V5Q29kZTtpZigiRW50ZXIiPT09Y3x8MTM9PT1jKWIucHJldmVudERlZmF1bHQoKSxhLmNsaWNrKCl9KX0pfSk7CigoKT0+e2xldCBhPWRvY3VtZW50LmNvb2tpZSxiPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRG9jdW1lbnQucHJvdG90eXBlLCJjb29raWUiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRG9jdW1lbnQucHJvdG90eXBlLCJfY29va2llIixiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRG9jdW1lbnQucHJvdG90eXBlLCJjb29raWUiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQoKXtyZXR1cm4gdGhpcy5fY29va2llfSxzZXQoYyl7dmFyIGQ9Yy50cmltKCkuc3BsaXQoIjsiKTtsZXQgZT17fTt2YXIgaz0wO2Zvcih2YXIgaCBvZiBkKWQ9aC50cmltKCkuc3BsaXQoIj0iKSwwPT1rPyhlLm5hbWU9ZFswXSxlLnZhbHVlPWRbMV18fDApOiIiIT1kWzBdJiYoZVtkWzBdXT1kWzFdfHwwKSxrKys7az1lLm5hbWU7aD1lLmV4cGlyZXN8fDA7ZD1lLnBhdGh8fCIvIjtsZXQgbj1lLmRvbWFpbnx8IiI7ZS52YWx1ZSYmIiIhPWUudmFsdWUmJm51bGwhPWUudmFsdWUmJgp3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhrLGUudmFsdWUsaCxkLG4pO2M9dGhpcy5fY29va2llPWM7aWYoYyE9PWEpdHJ5e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvb2tpZWNoYW5nZSIse2RldGFpbDp7b2xkVmFsdWU6YSxuZXdWYWx1ZTpjfX0pKX1maW5hbGx5e2E9Y319fSl9KSgpO2RvY1JlYWR5QXJyLnB1c2goKCk9Pnt2YXIgYT1udWxsO2lmKHdpbmRvdy5sb2NhdGlvbi5oYXNoKXt0cnl7YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24uaGFzaCkpfWNhdGNoKGIpe3JldHVybn1hJiYoYT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cuc2Nyb2xsWSx3aW5kb3cuc2Nyb2xsVG8oe3RvcDphLTIwLGJlaGF2aW9yOiJzbW9vdGgifSkpfX0pOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGMpe2RlYnVnKHtjb2xsZWN0OmN9KTtjPWMubmV3VVJMP25ldyBVUkwoYy5uZXdVUkwpOndpbmRvdy5sb2NhdGlvbjsiIiE9PWMuaGFzaCYmYy5oYXNoLnN1YnN0cmluZygxKS5zcGxpdCgiJiIpLm1hcChmdW5jdGlvbihkLGUsayl7dHJ5e3ZhciBbaCxuXT1kLnNwbGl0KCI9Iik7c3dpdGNoKGgpe2Nhc2UgInV0bV9lIjp2YXIgeD1hdG9iKG4pLnNwbGl0KCI6OiIpLHY9bnVsbCE9Z2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnZXRDb29raWUoInV0bV9jYW1wYWlnbiIpP2dldENvb2tpZSgidXRtX2NhbXBhaWduIik6eFsyXTt2JiZzZXRDb29raWUoInV0bV9jYW1wYWlnbiIsdiwxODApO3ZhciBmPW51bGwhPWdldENvb2tpZSgidXRtX3NvdXJjZSIpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvb2tpZSgidXRtX3NvdXJjZSIpP2dldENvb2tpZSgidXRtX3NvdXJjZSIpOnhbM107ZiYmc2V0Q29va2llKCJ1dG1fc291cmNlIiwKZiwxODApO2JyZWFrO2Nhc2UgInV0bV9leCI6eD1hdG9iKG4pO3ZhciBnPW5ldyBVUkwoImh0dHBzOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCt4KTswPGcuc2VhcmNoUGFyYW1zLnNpemUmJmcuc2VhcmNoUGFyYW1zLmZvckVhY2goYil9cmV0dXJue2tleTpoLHZhbHVlOm59fWNhdGNoKG0pe2RlYnVnKG0pfX0pfWZ1bmN0aW9uIGIoYyxkKXt0cnl7c3dpdGNoKGQpe2Nhc2UgIkRpc3BsYXlTb3VyY2UiOmNhc2UgImdjbGlkIjpkZWJ1Zyh7a2V5OmQsY29va2llOmdldENvb2tpZShkKSx2YWx1ZTpjfSksbnVsbCE9Z2V0Q29va2llKGQpJiYiIiE9Z2V0Q29va2llKGQpfHxzZXRDb29raWUoZCxjLDE4MCl9fWNhdGNoKGUpe2RlYnVnKGUpfX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYSwhMSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGEsITEpfSkoKTswPj0kKCIjc2hhcmVPbkZhY2Vib29rIikubGVuZ3RoJiYkKCJmb290ZXIiKS5wcmVwZW5kKCc8ZGl2IGlkPSJzaGFyZU9uRmFjZWJvb2siIGRhdGEtZXhwbGFpbj0iaG9uZGEvYWN1cmEgY2VydCB1c2VzIGd0bSwgaXQgaGFzIGEgYmluZCB0aGF0IHRocm93cyBhbiBlcnJvciBpZiB0aGlzIGlkIGRvZXMgbm90IGV4aXN0LiBjb2RlIGlzIGZyb20gZ3RtIHNpZGUuIj48L2Rpdj4nKTsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mICQuY29va2llKXtsZXQgYzt2YXIgYj1udWxsIT0oYz0kLmNvb2tpZSgiVGVydGlhcnlTb3VyY2UiKSk\/YzoiIjsiIiE9PWImJigkKCcqW2hyZWYqPSIkRkRUZXJ0aWFyeVNvdXJjZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuYXR0cigiaHJlZiIsJCh0aGlzKS5hdHRyKCJocmVmIikucmVwbGFjZSgiJEZEVGVydGlhcnlTb3VyY2UiLGIpKX0pLCQoJypbb25jbGljayo9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJvbmNsaWNrIiwkKHRoaXMpLmF0dHIoIm9uY2xpY2siKS5yZXBsYWNlKCIkRkRUZXJ0aWFyeVNvdXJjZSIsYikpfSksJCgnKlt2YWx1ZSo9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJ2YWx1ZSIsJCh0aGlzKS5hdHRyKCJ2YWx1ZSIpLnJlcGxhY2UoIiRGRFRlcnRpYXJ5U291cmNlIiwKYikpfSkpfX1hKCk7c2V0VGltZW91dChhLDFFMyk7c2V0VGltZW91dChhLDVFMyk7MDw9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNYWMiKSYmKCQoIi5sYW5ndWFnZUJhciAuZ1JhdGluZy1pY29uI2dSYXRpbmcgLnJhdGluZyIpLmFkZENsYXNzKCJtYXJnaW4tYm90dG9tLS00cHgiKSwkKCIubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gYS5idG4gPiBzcGFuIikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0IikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0IikuY3NzKCJ0b3AiLCI1MiUiKSl9KSgpOwpmdW5jdGlvbiBhZGROb1RyYW5zbGF0ZUVtYWlsRGVmKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2lkKj0iZW1haWxCb2R5RGVmIl0sIFtpZCo9ImVtYWlsU3ViamVjdERlZiJdLCBbY2xhc3MqPSJlbWFpbFN1YmplY3QiXSwgW2NsYXNzKj0iZW1haWxCb2R5Il0sIFtjbGFzcyo9ImxlYWRFbWFpbCJdLCBbY2xhc3MqPSJlbWFpbC1kZWZpbml0aW9uIl0nKS5mb3JFYWNoKGE9PnthLnNldEF0dHJpYnV0ZSgidHJhbnNsYXRlIiwibm8iKX0pfWFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKTtmdW5jdGlvbiB2d3MoKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tdndzIixgJHt3aW5kb3cuaW5uZXJXaWR0aC8xMDAtKHdpbmRvdy5pbm5lcldpZHRoLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkvMTAwLzJ9cHhgKX12d3MoKTtsZXQgcm9fdndzPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3Z3cygpfSk7cm9fdndzLm9ic2VydmUoZG9jdW1lbnQuYm9keSk7Ci8qKiAvanMvbGF6eXNpemVzLm1pbi5qcyAqKi8KLyohIGxhenlzaXplcyAtIHY0LjEuNSAqLwovKiEgbW9kaWZpZWQ6IG9saXZpZXJAZDJjbWVkaWEuY2EgdG8gc3VwcG9ydCBkYXRhLWltZ3NyYyBiZWNhdXNlIG9mIG9uZVRydXN0IGJyZWFrcyBsYXp5bG9hZCBvbiBkYXRhLXNyYyAqLwohZnVuY3Rpb24oYSxiKXt2YXIgYz1iKGEsYS5kb2N1bWVudCk7YS5sYXp5U2l6ZXM9Yywib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMmJihtb2R1bGUuZXhwb3J0cz1jKX0od2luZG93LGZ1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2lmKGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSl7dmFyIGMsZCxlPWIuZG9jdW1lbnRFbGVtZW50LGY9YS5EYXRlLGc9YS5IVE1MUGljdHVyZUVsZW1lbnQsaD0iYWRkRXZlbnRMaXN0ZW5lciIsaT0iZ2V0QXR0cmlidXRlIixqPWFbaF0saz1hLnNldFRpbWVvdXQsbD1hLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8ayxtPWEucmVxdWVzdElkbGVDYWxsYmFjayxuPS9ecGljdHVyZSQvaSxvPVsibG9hZCIsImVycm9yIiwibGF6eWluY2x1ZGVkIiwiX2xhenlsb2FkZWQiXSxwPXt9LHE9QXJyYXkucHJvdG90eXBlLmZvckVhY2gscj1mdW5jdGlvbihhLGIpe3JldHVybiBwW2JdfHwocFtiXT1uZXcgUmVnRXhwKCIoXFxzfF4pIitiKyIoXFxzfCQpIikpLHBbYl0udGVzdChhW2ldKCJjbGFzcyIpfHwiIikmJnBbYl19LHM9ZnVuY3Rpb24oYSxiKXtyKGEsYil8fGEuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGFbaV0oImNsYXNzIil8fCIiKS50cmltKCkrIiAiK2IpfSx0PWZ1bmN0aW9uKGEsYil7dmFyIGM7KGM9cihhLGIpKSYmYS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwoYVtpXSgiY2xhc3MiKXx8IiIpLnJlcGxhY2UoYywiICIpKX0sdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yz9oOiJyZW1vdmVFdmVudExpc3RlbmVyIjtjJiZ1KGEsYiksby5mb3JFYWNoKGZ1bmN0aW9uKGMpe2FbZF0oYyxiKX0pfSx2PWZ1bmN0aW9uKGEsZCxlLGYsZyl7dmFyIGg9Yi5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gZXx8KGU9e30pLGUuaW5zdGFuY2U9YyxoLmluaXRFdmVudChkLCFmLCFnKSxoLmRldGFpbD1lLGEuZGlzcGF0Y2hFdmVudChoKSxofSx3PWZ1bmN0aW9uKGIsYyl7dmFyIGU7IWcmJihlPWEucGljdHVyZWZpbGx8fGQucGYpPyhjJiZjLnNyYyYmIWJbaV0oInNyY3NldCIpJiZiLnNldEF0dHJpYnV0ZSgic3Jjc2V0IixjLnNyYyksZSh7cmVldmFsdWF0ZTohMCxlbGVtZW50czpbYl19KSk6YyYmYy5zcmMmJihiLnNyYz1jLnNyYyl9LHg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpfHx7fSlbYl19LHk9ZnVuY3Rpb24oYSxiLGMpe2ZvcihjPWN8fGEub2Zmc2V0V2lkdGg7YzxkLm1pblNpemUmJmImJiFhLl9sYXp5c2l6ZXNXaWR0aDspYz1iLm9mZnNldFdpZHRoLGI9Yi5wYXJlbnROb2RlO3JldHVybiBjfSx6PWZ1bmN0aW9uKCl7dmFyIGEsYyxkPVtdLGU9W10sZj1kLGc9ZnVuY3Rpb24oKXt2YXIgYj1mO2ZvcihmPWQubGVuZ3RoP2U6ZCxhPSEwLGM9ITE7Yi5sZW5ndGg7KWIuc2hpZnQoKSgpO2E9ITF9LGg9ZnVuY3Rpb24oZCxlKXthJiYhZT9kLmFwcGx5KHRoaXMsYXJndW1lbnRzKTooZi5wdXNoKGQpLGN8fChjPSEwLChiLmhpZGRlbj9rOmwpKGcpKSl9O3JldHVybiBoLl9sc0ZsdXNoPWcsaH0oKSxBPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI\/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\/Yyh3aW5kb3cubG9jYWxTdG9yYWdlLCEwKToic2Vzc2lvbiI9PT1iP2Mod2luZG93LnNlc3Npb25TdG9yYWdlLCExKTpjKHdpbmRvdy5sb2NhbFN0b3JhZ2UsITApfHxjKHdpbmRvdy5zZXNzaW9uU3RvcmFnZSwhMSl9LHJlbW92ZTpmdW5jdGlvbihhLGIpe2I9dm9pZCAwPT09Yj9udWxsOmI7ImxvY2FsIiE9PWImJm51bGwhPT1ifHx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYSk7InNlc3Npb24iIT09YiYmbnVsbCE9PWJ8fHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGEpfX07CmNyZWF0ZURhdGFTdG9yZT1hPT57YT1hfHx7fTtpbml0PWM9Pk9iamVjdC5hc3NpZ24oe30sYyk7Y29uc3QgYj1pbml0KGEpO3JldHVybntzZXQ6ZnVuY3Rpb24oYyxkKXtiW2NdPU9iamVjdC5hc3NpZ24oe30sYltjXSxkKTtyZXR1cm4gYltjXX0sZ2V0OmZ1bmN0aW9uKGMsZCl7ZD12b2lkIDA9PT1kP251bGw6ZDtjPWMuc3BsaXQoIi4iKTtsZXQgZT1iO2Zvcihjb25zdCBmIG9mIGMpe2lmKHZvaWQgMD09PWVbZl0pcmV0dXJuIGQ7ZT1lW2ZdfXJldHVybiB2b2lkIDAhPT1lP2U6ZH0sZmV0Y2g6ZnVuY3Rpb24oYyl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBkPXlpZWxkIGZldGNoKGBodHRwczovLyR7Yi5kZWFsZXJJbmZvLmRvbWFpbn0vYWpheENvbnRyb2xsZXIvJHtjfWApO2lmKCFkLm9rKXRocm93IEVycm9yKCJOZXR3b3JrIHJlc3BvbnNlIHdhcyBub3Qgb2siKTtjb25zdCBlPXlpZWxkIGQuanNvbigpOwpiW2NdPWU7cmV0dXJuIGJbY119Y2F0Y2goZCl7dGhyb3cgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBmcm9tIHNlcnZlcjogJHtkLm1lc3NhZ2V9YCk7fX0pfSxkZWxldGU6ZnVuY3Rpb24oYyl7aWYoIWJbY10pdGhyb3cgRXJyb3IoIklEIG5vdCBmb3VuZCIpO2RlbGV0ZSBiW2NdO3JldHVybiEwfSxnZXRBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxiKX19fTsKLyoqIC9qcy9lbWFpbEhhbmRsZXIuanMgKiovCnZhciBfX19kMmNfZW1haWxIYW5kbGVyanNfY19vbj0iMjAyNi0wNC0wMiAxMjozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihlLGcsYSl7aWYoZT09QXJyYXkucHJvdG90eXBlfHxlPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBlO2VbZ109YS52YWx1ZTtyZXR1cm4gZX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGUpe2U9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxlLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgZz0wO2c8ZS5sZW5ndGg7KytnKXt2YXIgYT1lW2ddO2lmKGEmJmEuTWF0aD09TWF0aClyZXR1cm4gYX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGUsZyl7dmFyIGE9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZ107aWYobnVsbD09YSlyZXR1cm4gZVtnXTthPWVbYV07cmV0dXJuIHZvaWQgMCE9PWE\/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\/JCgiI3RvcGNhcmlkIikudmFsKCk6IiI7bD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7dT0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKT8kKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk6IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKSYmCiQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uQWRmRW1haWwiKS52YWwoKSYmJCgiI25ld1NlY3Rpb25BZGZFbWFpbCIpLnZhbCgpO3N3aXRjaCghMCl7Y2FzZSA1PGwubGVuZ3RoJiYibmV3Ij09eSYmIWEuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M6YS5zZW5kVG89bCxhLnNlbmRUb0FERkZvcm1hdD01PHUubGVuZ3RoP3U6bH1iLmxhbmd1YWdlPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKTsiZnVuY3Rpb24iPT10eXBlb2YgY2xlYW5BbmRFbmNvZGVUZXh0PyhiLnN1YmplY3Q9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuc3ViamVjdCksYi5ib2R5PWNsZWFuQW5kRW5jb2RlVGV4dChhLmJvZHkpKTooYi5zdWJqZWN0PSQuYmFzZTY0LmVuY29kZShhLnN1YmplY3QpLGIuYm9keT0kLmJhc2U2NC5lbmNvZGUoYS5ib2R5KSk7Y2xlYW5FbWFpbERlbGltaXRlcj1mdW5jdGlvbih6KXt2YXIgQz0iIjsidW5kZWZpbmVkIiE9dHlwZW9mIHomJgpudWxsIT16JiZ6Lmxlbmd0aCYmKEM9ei5zcGxpdCgiOyIpLmpvaW4oIiwiKSk7cmV0dXJuIEN9OyJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYiTkVXIj09YS5nZXREZXAoKSYmYS5zZW5kVG89PSQoIiNTSVRFVVNFREVNQUlMIikudmFsKCkmJmEuc2VuZFRvQURGRm9ybWF0PT0kKCIjU0lURVVTRURFTUFJTEFERiIpLnZhbCgpJiYoYS5zZW5kVG89JCgiI1NJVEVORVdFTUFJTCIpLnZhbCgpLGEuc2VuZFRvQURGRm9ybWF0PSQoIiNTSVRFTkVXRU1BSUxBREYiKS52YWwoKSk7Yi5zZW5kVG89YS5zZW5kVG87Yi5zZW5kVG9BREZGb3JtYXQ9Y2xlYW5FbWFpbERlbGltaXRlcihhLnNlbmRUb0FERkZvcm1hdCk7Yi5zZWxlY3RlZFNlbmRUbz1hLnNlbGVjdGVkU2VuZFRvO2Iuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdDtiLmVtYWlsTGlzdFN1ZmZpeD0iIjskKCIjc2l0ZWNvbXBpbGVpZCIpLmxlbmd0aCYmKGIuZW1haWxMaXN0U3VmZml4PQokKCIjc2l0ZWNvbXBpbGVpZCIpLnZhbCgpKTtiLmxlYWRJbnZva2VyPWEubGVhZEludm9rZXJ8fCJnZW5lcmljIjtiLmRpZ2l0YWxSZXRhaWxTSUQ9YS5kaWdpdGFsUmV0YWlsU0lEfHwiIjtiLmNvbnNlbnREZWFsZXI9YS5jb25zZW50RGVhbGVyO2IuY29uc2VudE9FTT1hLmNvbnNlbnRPRU07Yi51c2VyRW1haWw9YS51c2VyRW1haWw7Yi50cmFkZWluPWEudHJhZGVpbjtiLnBvcHVwZGl2PWEucG9wdXBkaXY7Yi51c2VyQXR0YWNobWVudFBhdGg9YS51c2VyQXR0YWNobWVudFBhdGg7Yi51c2VyRmlyc3ROYW1lPWEudXNlckZpcnN0TmFtZTtiLnVzZXJMYXN0TmFtZT1hLnVzZXJMYXN0TmFtZTtiLmxpY2Vuc2VudW09YS5saWNlbnNlbnVtO2IudXNlclBob25lPWEudXNlclBob25lO2IucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM9YS5waG9uZVZhbGlkYXRpb25BdHRlbXB0cztiLnBob25lTWFuZGF0b3J5PWEucGhvbmVNYW5kYXRvcnk7Yi51c2VyUG9zdGFsPWEudXNlclBvc3RhbC50b1VwcGVyQ2FzZSgpfHwKYS5jb250YWN0WmlwLnRvVXBwZXJDYXNlKCk7Yi51c2VyQWRkcmVzcz1hLnVzZXJBZGRyZXNzfHxhLmNvbnRhY3RBZGRyZXNzO2IucHJvdmluY2U9YS5jb250YWN0UHJvdmluY2U7Yi5iaXJ0aGRhdGU9YS5iaXJ0aGRhdGU7Yi5zZW5kRnJvbT1hLnNlbmRGcm9tO2IubWFpbElEPWEubWFpbElEO2IuaXNDVEE9YS5pc0NUQTtiLmJ1dHRvblRleHQ9YS5idXR0b25UZXh0O2IuZnJvbVVSTD13aW5kb3cubG9jYXRpb24uaHJlZjtiLm1ha2U9YS5tYWtlfHwiIjtiLm1vZGVsPWEubW9kZWx8fCIiO2IudHJpbT1hLnRyaW18fCIiO2IudmluPWEudmlufHwiIjtiLnByaWNlPWEucHJpY2V8fCIiO2IueWVhcj1hLnllYXJ8fCIiO2IudmVoaWNsZVR5cGU9YS52ZWhpY2xlVHlwZXx8IiI7Yi5zdG9ja051bWJlcj1oO2IuY2FyaWQ9YS5jYXJpZHx8IiI7Yi5jb25kaXRpb249YS5jb25kaXRpb247Yi5pc21vYmlsZXNpdGU9YS5pc21vYmlsZXNpdGU7Yi5pc0FtcD0iTk8iO2IucmVmZXJlcj0kKCIjdG9wcmVmZXJlciIpLnZhbCgpOwpiLnNpdGVpZD0kKCIjdG9wc2l0ZWlkIikudmFsKCk7Yi5kZWFsZXJpZD1hLmRlYWxlcmlkfHwiIjtiLm9lbUNlcnRpZmljYXRpb249JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8bnVsbDtiLnV0bV9zb3VyY2U9ZjtiLnJlbGFuY2VJRD1jO2IudXRtX2NhbXBhaWduPWs7Yi51dG1fa2V5d29yZD1tO2IudXRtX2xhbmRpbmc9bjtiLnV0bV9kZXRhaWxzPXE7Yi51dG1fc291cmNlX3JldGFyZ2V0aW5nPXQ7Yi51dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmc9cjtiLmxvY19pbnRlcmVzdD12O2IubG9jX3BoeXNpY2FsPWQ7Yi5wb3B1cE9mZmVyVHlwZT1hLnBvcHVwT2ZmZXJUeXBlO2IuZnJvbUZhY2Vib29rPWEuZnJvbUZhY2Vib29rO2IuZGV0YWlsc0ZSPWEuY29uc2VudERldGFpbHNGUjtiLmRldGFpbHNFTj1hLmNvbnNlbnREZXRhaWxzRU47Yi5mcm9tQUE9YS5mcm9tQUE7Yi5vd25lcklEPWEub3duZXJJRDtiLmxlYWRUaXRsZVVJVGV4dD1hLmxlYWRUaXRsZVVJVGV4dDtiLnNtcz0KYS5zbXM7Yi5vbkFmdGVyTGVhZENyZWF0ZWQ9YS5vbkFmdGVyTGVhZENyZWF0ZWQ7Yi50cmFkZWluYmFyUmVnaXN0ZXJQYXJ0aWFsSUQ9YS50cmFkZWluYmFyUmVnaXN0ZXJQYXJ0aWFsSUR8fCIiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJigiIiE9YS51c2VyRmlyc3ROYW1lJiZjbGllbnRTdG9yYWdlLnNldCgiZmlyc3RuYW1lIixhLnVzZXJGaXJzdE5hbWUpLCIiIT1hLnVzZXJMYXN0TmFtZSYmY2xpZW50U3RvcmFnZS5zZXQoImxhc3RuYW1lIixhLnVzZXJMYXN0TmFtZSksIiIhPWEudXNlckVtYWlsJiZjbGllbnRTdG9yYWdlLnNldCgiZW1haWwiLGEudXNlckVtYWlsKSwiIiE9YS51c2VyUGhvbmUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJwaG9uZSIsYS51c2VyUGhvbmUpKTtiLmNoYXRib3RCb29zdElkPWdldENvb2tpZUQyYygiZDJjY2hhdGJvdGlkIik7Yi5zdHlsZWlkPSQoIiNzdHlsZUlkSW5Vc2UiKS5sZW5ndGg\/JCgiI3N0eWxlSWRJblVzZSIpLnZhbCgpOgokKCIjYWN0aXZlU3R5bGVJRCIpLmxlbmd0aD8kKCIjYWN0aXZlU3R5bGVJRCIpLnZhbCgpOiIiOyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQmJndpbmRvdy5hZHBfZm91cmV5ZXNfaWQ\/KGIuVW5pdGVXZWJzaXRlQ3VzdG9tZXJJZD13aW5kb3cuYWRwX2ZvdXJleWVzX2lkLGNvbnNvbGUubG9nKCJEMlVEIC0gZW1haWxIYW5kbGVyIEpTIHBhc3NlZCIsd2luZG93LmFkcF9mb3VyZXllc19pZCkpOmNvbnNvbGUubG9nKCJEMlVEIC0gZW1haWxIYW5kbGVyIEpTIC0gd2luZG93LmFkcF9mb3VyZXllc19pZCBpZiB3YXMgdHJpZ2dlcmVkIix3aW5kb3cuYWRwX2ZvdXJleWVzX2lkKTthLm9uQWZ0ZXJMZWFkQ3JlYXRlZCYmKGIub25BZnRlckxlYWRDcmVhdGVkLmZyb209IiIsYS5zZW5kVG89YS5zZW5kVG98fCIiLGM9YS5zZW5kVG8uc3BsaXQoIjsiKSxjWzBdLnRyaW0oKS5sZW5ndGg\/Yi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT1jWzBdLnRyaW0oKTooYz0KYS5zZW5kVG9BREZGb3JtYXQuc3BsaXQoIiwiKSxjWzBdLnRyaW0oKS5sZW5ndGgmJihiLm9uQWZ0ZXJMZWFkQ3JlYXRlZC5mcm9tPWNbMF0udHJpbSgpKSkpO2IudXNlckFnZW50PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKTtiLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPWEuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW47Yi5jb250YWN0SUQ9YS5jb250YWN0SUQ7Yi5jb250YWN0TkFTPWEuY29udGFjdE5BUztiLmNvbnRhY3RCaXJ0aD1hLmNvbnRhY3RCaXJ0aDtiLmRlYWxlck5hbWU9YS5kZWFsZXJOYW1lP2EuZGVhbGVyTmFtZTp3O2IuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YT1hLmFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE7Yi5wcmVmZXJyZWRfY29udGFjdD1hLnByZWZlcnJlZF9jb250YWN0O2IudXRtZGV0YWlsc1RvUmVwbGFjZT1wOyIiIT1hLmdlb2xvY19zdGF0dXMmJihiLmdlb2xvY19zdGF0dXM9YS5nZW9sb2Nfc3RhdHVzLGIuZ2VvbG9jX2xhdD1hLmdlb2xvY19sYXQsCmIuZ2VvbG9jX2xvbmc9YS5nZW9sb2NfbG9uZyxiLmdlb2xvY19hY2N1cmFjeT1hLmdlb2xvY19hY2N1cmFjeSwiZnVuY3Rpb24iPT10eXBlb2YgY2xlYW5BbmRFbmNvZGVUZXh0PyhiLmdlb2xvY190cmFja19zdHI9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuZ2VvbG9jX3RyYWNrX3N0ciksYi5nZW9sb2NfZW1haWxfc3RyPWNsZWFuQW5kRW5jb2RlVGV4dChhLmdlb2xvY19lbWFpbF9zdHIpKTooYi5nZW9sb2NfdHJhY2tfc3RyPSQuYmFzZTY0LmVuY29kZShhLmdlb2xvY190cmFja19zdHIpLGIuZ2VvbG9jX2VtYWlsX3N0cj0kLmJhc2U2NC5lbmNvZGUoYS5nZW9sb2NfZW1haWxfc3RyKSkpOyIiIT1hLmNhcjJfbWFrZSYmKGIuY2FyMl9tYWtlPWEuY2FyMl9tYWtlLGIuY2FyMl9tb2RlbD1hLmNhcjJfbW9kZWwsYi5jYXIyX3RyaW09YS5jYXIyX3RyaW0sYi5jYXIyX3llYXI9YS5jYXIyX3llYXIsYi5jYXIyX2NvbG9yPWEuY2FyMl9jb2xvcixiLmNhcjJfb2RvbWV0ZXI9YS5jYXIyX29kb21ldGVyLApiLmNhcjJfdmluPWEuY2FyMl92aW4sYi5jYXIyX3RyYW5zbWlzc29uPWEuY2FyMl90cmFuc21pc3NvbixiLmNhcjJfZHJpdmV0cmFpbj1hLmNhcjJfZHJpdmV0cmFpbixiLmNhcjJfZnVlbHR5cGU9YS5jYXIyX2Z1ZWx0eXBlKTtiLnNlcnZpY2VEYXRlMT1hLnNlcnZpY2VEYXRlMXx8IiI7Yi5zZXJ2aWNlRGF0ZTI9YS5zZXJ2aWNlRGF0ZTJ8fCIiO2Iud2FpdGluZ09uU2l0ZT1hLndhaXRpbmdPblNpdGV8fCIiO2IuY29tbWVudHM9YS5jb21tZW50czthLnNraXBHZXREZXA\/Yi5kZXBhcnRtZW50PWEuZGVwYXJ0bWVudDooYi5kZXBhcnRtZW50PWEuZ2V0RGVwKCksYS5kZXBhcnRtZW50PWEuZ2V0RGVwKCkpO2lmKCJVU0VEIj09Yi5kZXBhcnRtZW50JiYwPT1hLmRlcGFydG1lbnRCeVN0b2NrKXt2YXIgQT0kKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmZpbHRlcigiOnZpc2libGU6Zmlyc3QiKS52YWwoKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEEmJihBPUEuc3BsaXQoIihTdG9jayIpLApBWzFdKSl7dmFyIEU9IlVTRUQiO0E9QVsxXS5yZXBsYWNlKCIpIiwiIikucmVwbGFjZSgiOiIsIiIpLnJlcGxhY2UoIiMiLCIiKS50cmltKCkudG9Mb3dlckNhc2UoKTskLmFqYXgoe3R5cGU6IkdFVCIsYXN5bmM6ITEsZGF0YVR5cGU6Impzb24iLHVybDoiL2pzL2pzb24vdXNlZEJ5UHJpY2VBc2MuanNvbiIsc3VjY2VzczpmdW5jdGlvbih6KXskLmVhY2goeixmdW5jdGlvbihDLEQpe2lmKEQuc24udG9Mb3dlckNhc2UoKT09QSlyZXR1cm4gRT0iMSI9PUQuaXNuZXd8fCIxIj09RC5pc2RlbW8\/Ik5FVyI6IlVTRUQiLCExfSk7YS5kZXBhcnRtZW50QnlTdG9jaz1FfX0pfX0iIiE9PWEuZGVwYXJ0bWVudEJ5U3RvY2smJiExIT09YS5kZXBhcnRtZW50QnlTdG9jayYmKGIuZGVwYXJ0bWVudD1hLmRlcGFydG1lbnRCeVN0b2NrKTshYi5kZXBhcnRtZW50fHwibmV3Ij09Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkmJiJ1c2VkIj09Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCk\/Yi5jb25kaXRpb249CmIuZGVwYXJ0bWVudCYmIm5ldyI9PWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpPyJOZXciOiJVc2VkIjpiLmNvbmRpdGlvbj0kKCIjY3VycmVudFN0YXR1cyIpLmxlbmd0aD8kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpOiJ1bmtub3duIjtiLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSE9Yi5jb25kaXRpb24udG9Mb3dlckNhc2UoKSYmKGIuY29uZGl0aW9uPWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpKTtudWxsIT1hLmNyZWRpdERhdGEmJihiLmNyZWRpdERhdGE9YS5jcmVkaXREYXRhKTtudWxsIT1hLmRlYWxlckFwcG9pbnRtZW50RGF0YSYmKGIuZGVhbGVyQXBwb2ludG1lbnREYXRhPWEuZGVhbGVyQXBwb2ludG1lbnREYXRhKTswPCQoIiNwdXJjaGFzZV9pbnRlbnRfYW5zd2VyIikubGVuZ3RoJiYoYi5wdXJjaGFzZV9pbnRlbnQ9YS5wdXJjaGFzZV9pbnRlbnQsYi5wdXJjaGFzZV9pbnRlbnRfYW5zd2VyPSQoIiNwdXJjaGFzZV9pbnRlbnRfYW5zd2VyIikudmFsKCksYi5wdXJjaGFzZV9pbnRlbnRfbm9fYW5zd2VyPQokKCIjcHVyY2hhc2VfaW50ZW50X25vX2Fuc3dlciIpLnZhbCgpKTtiLnB1cmNoYXNlX2ludGVudD1hLmFza1B1cmNoYXNlSW50ZW50P2IucHVyY2hhc2VfaW50ZW50P2IucHVyY2hhc2VfaW50ZW50Oi0xOiExOyQoIiNjdXJyZW50SXRlbVR5cGUiKS5sZW5ndGg\/Yi5pdGVtVHlwZT0kKCIjY3VycmVudEl0ZW1UeXBlIikudmFsKCk6Yi5pdGVtVHlwZT0iIjthLmJvZHkrPSJceDNjIS0tIEpTIFVuaXF1ZSBpZDoiK01hdGgucm91bmQoNUUzKk1hdGgucmFuZG9tKCkpKyItLVx4M2UiO3JldHVybiBifSxnZXREZXA6ZnVuY3Rpb24oKXt2YXIgYj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksZD0vXGIobmV3fG5ldWZ8bmV1ZnN8Y29uZmlndXJhdGlvbi1ldC1wcml4fGJ1aWxkLWFuZC1wcmljZXxkZW1vc3xkZW1vbnN0cmF0ZXVyc3xjbGVhcmFuY2UpXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSxjPS9cYih1c2VkfG9jY2FzaW9uKVxiLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7CmlmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHomJiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmdldEN1cnJlbnRGaWx0ZXJTdGF0ZSl7dmFyIGY9d2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0Q3VycmVudEZpbHRlclN0YXRlKCJjYXRlZ29yeSIpO2lmKCExIT09ZiYmZi5sZW5ndGgpaWYoMT09PWYubGVuZ3RoJiYzPT09ZlswXS52YWx1ZSlkPSEwLGM9ITE7ZWxzZXt2YXIgayxtPTAsbj0wO2ZvcihrPTA7ayE9PWYubGVuZ3RoO2srKylmW2tdLm51bT5tJiYobT1mW2tdLm51bSxuPWZba10udmFsdWUpOzE9PT1ufHwyPT09bj8oZD0hMSxjPSEwKTozPT09biYmKGQ9ITAsYz0hMSl9fWY9MDtrPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6cmVhbGx5VmlzaWJsZTpmaXJzdCIpOwowPGsubGVuZ3RoJiYoaz1rLnZhbCgpLm1hdGNoKC8xOVswLTldezJ9fDIwWzAtOV17Mn0vZyksbnVsbCE9ayYmKGY9cGFyc2VJbnQoa1swXSkpKTtmfHwoZj1hLnllYXIpO3N3aXRjaChhLm1haWxJRCl7Y2FzZSAiVGlyZXNSZXF1ZXN0IjpjYXNlICJQYXJ0c1JlcXVlc3QiOnJldHVybiJQQVJUUyI7Y2FzZSAiU2VydmljZVJlcXVlc3QiOmNhc2UgIlJlY2FsbHMiOmNhc2UgIkJvZHlTaG9wIjpjYXNlICJtZW51U2VydmljZSI6Y2FzZSAiaGVhZGVyU2VydmljZSI6Y2FzZSAiRXN0aGV0aWNSZXF1ZXN0IjpyZXR1cm4iU0VSVklDRSI7Y2FzZSAiQ3JlZGl0UmVxdWVzdCI6Y2FzZSAiQ3JlZGl0UmVxdWVzdE1vYmlsZSI6Y2FzZSAiRGVhbGVyVHJhY2siOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3RJbnN0YW50IjpjYXNlICJDcmVkaXRTY29yZSI6Y2FzZSAiQ3JlZGl0QXBwQ2FyZCI6cmV0dXJuIkZJTkFOQ0UiOwpjYXNlICJKb2JPZmZlciI6cmV0dXJuIkhSIjtjYXNlICJtZW51Q29udGFjdFVzIjppZigiIiE9PWEuZGVwYXJ0bWVudClyZXR1cm4gYS5kZXBhcnRtZW50LnRvVXBwZXJDYXNlKCk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCYmIiIhPT1tYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50KXJldHVybiBtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50LnRvVXBwZXJDYXNlKCl9aWYoMDxmKXtpZihjJiZmPj1iKzEpcmV0dXJuIk5FVyI7aWYoIWQmJiFjKXtpZihmPj1iLTEpcmV0dXJuIk5FVyI7aWYoZjxiLTEpcmV0dXJuIlVTRUQifX1yZXR1cm4iY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCk\/JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk6Yz8iVVNFRCI6ZD8iTkVXIjoiIiE9PWEuZGVwYXJ0bWVudD9hLmRlcGFydG1lbnQ6InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcG9wdXBEZXBhcnRtZW50IikuYXR0cigiaWQiKSYmJCgiI3BvcHVwRGVwYXJ0bWVudCIpLnZhbCgpLmxlbmd0aD8KJCgiI3BvcHVwRGVwYXJ0bWVudCIpLnZhbCgpOiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2RlZmF1bHREZXBhcnRtZW50IikuYXR0cigiaWQiKSYmJCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCkubGVuZ3RoPyQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpOiJVU0VEIn0scmVhZHlUb1NlbmQ6ZnVuY3Rpb24oKXt2YXIgYj1hLmNyZWF0ZUNoZWNrc3VtKCk7aWYoYS5sYXN0Q2hlY2tzdW09PWIpImZ1bmN0aW9uIj09dHlwZW9mIGEub25EdXBsaWNhdGVTZW5kP2Eub25EdXBsaWNhdGVTZW5kLmNhbGwoKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkNSQyBNYXRjaCIsYS5sYXN0Q2hlY2tzdW0sYik7ZWxzZXthLmxhc3RDaGVja3N1bT1iOyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoJiYiIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoJiYKJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJihiPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkNvbmNlc3Npb24gb++\/vSBlc3Qgc2l0de+\/vSBsZSB277+9aGljdWxlOiAiOiJEZWFsZXIgd2hlcmUgdGhlIHZlaGljbGUgaXMgbG9jYXRlZDogIixiKz0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpLGEuYm9keT1hLmJvZHkucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsYikpOzA8JCgiI2lzbW9iaWxlIikubGVuZ3RoJiYoYS5pc21vYmlsZXNpdGU9IllFUyIpO2lmKDA9PWEuc3ViamVjdC5sZW5ndGh8fDA9PWEuYm9keS5sZW5ndGgpcmV0dXJuITE7YS5pbmplY3RDdGFDb21wbGV0ZWREYXRhKCk7anNvbk9iamVjdD1hLmdldEpzb25PYmplY3QoKTthLmlnbm9yZUNhcHRjaGF8fGEucmVjYXB0Y2hhLnJlc2V0VG9rZW4oKTsKYj1udWxsO2I9SlNPTi5zdHJpbmdpZnkoanNvbk9iamVjdCk7dmFyIGQ9YS5wb3B1cE9mZmVyVHlwZTtiPXtqc29uOmJ9O2lmKGEucGFydGlhbCliLnBhcnRpYWw9ITA7ZWxzZXsidW5kZWZpbmVkIiE9dHlwZW9mIGd0YWcmJndpbmRvdy5kMmNfYXdjSWQmJndpbmRvdy5kMmNfYXdjTGFiZWwmJigibGl2ZSI9PWRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk\/Z3RhZygiZXZlbnQiLCJjb252ZXJzaW9uIix7c2VuZF90bzpkMmNfYXdjSWQrIi8iK2QyY19hd2NMYWJlbH0pOmNvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrIi8iK2QyY19hd2NMYWJlbCsiIH0pOyIpKTt2YXIgYz17bWFpbElEOmEubWFpbElELG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwseWVhcjphLnllYXIsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbixkZXBhcnRtZW50OmEuZGVwYXJ0bWVudCx0cmFkZWluOmEudHJhZGVpbixwb3B1cE9mZmVyVHlwZTphLnBvcHVwT2ZmZXJUeXBlLApib2R5VHlwZTphLnZlaGljbGVUeXBlLHNhbGVzRGVwdDphLnNhbGVzRGVwdCxwb3B1cERpdjphLnBvcHVwZGl2LGlzQ1RBOmEuaXNDVEEsYnV0dG9uVGV4dDphLmJ1dHRvblRleHR9O2pRdWVyeSgiYm9keSIpLnRyaWdnZXIoImVtYWlsSGFuZGxlci5zdWJtaXQiLGMpfSQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpfSw1RTMpOyQoJ2lucHV0W25hbWU9ImxlYWRfZGVwYXJ0bWVudCJdJykudmFsKGpzb25PYmplY3QuZGVwYXJ0bWVudCk7JCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLnN1YmplY3QucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7IiIhPWEubGVhZFRpdGxlVGV4dCYmKCQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoYS5sZWFkVGl0bGVUZXh0LnJlcGxhY2UoL1tcblxyXS9nLCIgIikpLGEubGVhZFRpdGxlVGV4dD0iIik7JCgnaW5wdXRbbmFtZT0icGFnZUlEIl0nKS52YWwoJCgiI1BBR0VJRCIpLnZhbCgpKTsKJCgnaW5wdXRbbmFtZT0iY3VycmVudFVSTCJdJykudmFsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTskKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImJ1dHRvblBvc2l0aW9uIl0nKS52YWwoJCgiI25ld1ZEUEJ1dHRvblBvc2l0aW9uIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzQ29uZmlybVBvcHVwIl0nKS52YWwoMCk7ImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIj09YS5wb3B1cGRpdiYmJCgnaW5wdXRbbmFtZT0iaXNDb25maXJtUG9wdXAiXScpLnZhbCgxKTskKCdpbnB1dFtuYW1lPSJjb25maXJtX2VtYWlsIl0nKS52YWwoYS51c2VyRW1haWwpOwokKCdpbnB1dFtuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiXScpLnZhbChhLnVzZXJGaXJzdE5hbWUpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIl0nKS52YWwoYS51c2VyTGFzdE5hbWUpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIl0nKS52YWwoYS51c2VyUGhvbmUpO2Zvcm1GaWxsLnNhdmUoe2VtYWlsOmEudXNlckVtYWlsLGZpcnN0TmFtZTphLnVzZXJGaXJzdE5hbWUsbGFzdE5hbWU6YS51c2VyTGFzdE5hbWUscGhvbmU6YS51c2VyUGhvbmUscG9zdGFsOmEudXNlclBvc3RhbH0pOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvbWFpbC9zZW5kTWFpbEV4LnBocCIsZGF0YTpiLGJlZm9yZVNlbmQ6ZnVuY3Rpb24oZil7ZiYmZi5vdmVycmlkZU1pbWVUeXBlJiZmLm92ZXJyaWRlTWltZVR5cGUoImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpO3RyeXtsZXQgaz0kKCJtZXRhW25hbWU9J2NzcmYtZG9tYWluLWNoZWNrJ10iKTtrLmxlbmd0aCYmCmYuc2V0UmVxdWVzdEhlYWRlcigiY3NyZi1kb21haW4tY2hlY2siLGsuYXR0cigiY29udGVudCIpKX1jYXRjaChrKXtjb25zb2xlLmVycm9yKGYpfX0sc3VjY2VzczpmdW5jdGlvbihmKXthLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtU3VibWl0dGVkIixhLm1haWxJRCxkKTthLnBhcnRpYWw9ITE7YS5sYXN0Q2hlY2tzdW09ITE7dmFyIGs9IiI7az0ic3RyaW5nIj09dHlwZW9mIGY\/SlNPTi5wYXJzZShmKTpmO2EuX19sYXN0UmV0dXJuPWs7aWYoIm9iamVjdCI9PXR5cGVvZiBrfHwidW5kZWZpbmVkIiE9dHlwZW9mIGsubGVhZGlkKWEuX19sZWFkaWQ9ay5sZWFkaWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIGEuY2FsbGJhY2smJihhLmNhbGxiYWNrPWZ1bmN0aW9uKCl7fSk7alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIse21haWxJRDphLm1haWxJRCxtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLHllYXI6YS55ZWFyLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sCmRlcGFydG1lbnQ6YS5kZXBhcnRtZW50LHRyYWRlaW46YS50cmFkZWluLHN1Y2Nlc3M6IlNVQ0NFU1MiPT09ay5zdGF0dXMsZGV0YWlsOntjb25maXJtX2ZpcnN0X25hbWU6YS51c2VyRmlyc3ROYW1lLGNvbmZpcm1fbGFzdF9uYW1lOmEudXNlckxhc3ROYW1lLGNvbmZpcm1fZW1haWw6YS51c2VyRW1haWwsY29uZmlybV9waG9uZV9udW1iZXI6YS51c2VyUGhvbmUseWVhcjphLnllYXIsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCxpZDprLmxlYWRpZCx2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLHZlcnNpb246YS52ZXJzaW9ufHwiIixOSVY6YS52aW4sdHJpbTphLnRyaW0sbGVhZFR5cGU6YS5sZWFkVHlwZXx8IiIsbWFpbElkOmEubWFpbElEfX0pOyJTVUNDRVNTIj09ay5zdGF0dXM\/KGEuY2FsbGJhY2soITApLGEubWFpblByb21vJiYoZj1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJNYWluUHJvbW9CdG4ifX0pLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZikpKToKYS5jYWxsYmFjayghMSk7YS5jYWxsYmFjaz1udWxsfSxmYWlsdXJlOmZ1bmN0aW9uKGYpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWRFbWFpbE5vdFNlbnQiLGEubWFpbElELGQpO2FsZXJ0KHNhdmVIYW5kbGVyLmZhaWxNZXNzYWdlKyJcbiIrZil9LHN0YXR1c0NvZGU6ezQwNDpmdW5jdGlvbigpe2FsZXJ0KCJwYWdlIG5vdCBmb3VuZCIpfX19KTthLnBvcHVwT2ZmZXJUeXBlPSIifX0saW5qZWN0Q3RhQ29tcGxldGVkRGF0YTpmdW5jdGlvbigpe2xldCBiPSIiLGQ9IiI7dmFyIGM9IiIsZj1nZXRDb29raWVEMmMoImJhbmRwX2NvbmZpZyIpLGs9InVuZGVmaW5lZCIhPT10eXBlb2YgZiYmbnVsbCE9PWY\/SlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZikpOkpTT04ucGFyc2UoInt9Iik7Zj0obSxuKT0+e249bnx8ITE7bGV0IHQ9bS5vcHRpb25zLnJlZHVjZSgodyx4KT0+dytgJHt4fTxicj5gLCIiKSxyPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPwoiVmVoaWNsZSBkZXRhaWxzIjoiVsOpaGljdWxlIGNvbmZpZ3Vyw6kiLHY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkZpbmFuY2luZyBkZXRhaWxzIjoiRMOpdGFpbHMgZHUgZmluYW5jZW1lbnQiLHEscCxoO249bj8iIjpgCgkJCQkJCTx1PiR7dn06PC91Pjxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0ocT1tLnBheW1lbnQpP3ZvaWQgMDpxLnRvdGFsfTxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0ocD1tLnBheW1lbnQpP3ZvaWQgMDpwLnJhdGV9PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShoPW0ucGF5bWVudCk\/dm9pZCAwOmguYW1vdW50fTxicj48YnI+CgkJCQkJYDtsZXQgbCx1O3JldHVybmAKCQkJCQk8dT4ke3J9OjwvdT48YnI+CgkJCQkJJHtudWxsPT1tP3ZvaWQgMDptLm1vZGVsfTxicj4KCQkJCQlFeHQ6ICR7KG51bGw9PW0\/dm9pZCAwOm51bGw9PShsPW0uY29sb3JzKT92b2lkIDA6bC5leHQpfHwiIn0sIEludDogJHsobnVsbD09bT92b2lkIDA6bnVsbD09KHU9bS5jb2xvcnMpP3ZvaWQgMDp1LmludCl8fCIifTxicj4KCQkJCQkkeyhudWxsPT1tP3ZvaWQgMDptLmRyaXZlVHJhaW4pfHwiIn08YnI+CgkJCQkJJHt0fTxicj4KCQkJCQkke259CgkJCQlgfTtrLmJhbmRwJiYoYj1mKGsuYmFuZHApLnJlcGxhY2UoLyhcdHxcbikqL2csIiIpKTtpZihDb29raWVzLmdldCgiY3RhX2RhdGFfdmFsaWQiKSl7Yz1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIil8fCJ7fSIpO2s9ISFjLnBheW1lbnQ7Yy5iYW5kcCYmKGMuYmFuZHAub3B0aW9ucz1jLmJhbmRwLm9wdGlvbnN8fFtdLGI9ZihjLmJhbmRwLGspKTtpZihrKXtsZXQgbSxuLHQ7ZD1gCgkJCQkJCTx1PiR7IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IlZlaGljbGUgZGV0YWlscyI6IkTDqXRhaWxzIGR1IGZpbmFuY2VtZW50In06PC91Pjxicj4KCQkJCQkJJHtudWxsPT1jP3ZvaWQgMDpudWxsPT0obT1jLnBheW1lbnQpP3ZvaWQgMDptLmxpc3RQcmljZX08YnI+CgkJCQkJCSR7bnVsbD09Yz92b2lkIDA6bnVsbD09KG49Yy5wYXltZW50KT92b2lkIDA6bi5yYXRlfTxicj4KCQkJCQkJJHtudWxsPT1jP3ZvaWQgMDpudWxsPT0odD1jLnBheW1lbnQpP3ZvaWQgMDp0LnBheW1lbnR9PGJyPgoJCQkJCWB9Yz0iXG5cdFx0XHRcdFx0PGJyPlxuXHRcdFx0XHRcdDxicj5cblx0XHRcdFx0XHQ8dT48c3Ryb25nPlRyYW5zYWN0aW9uIEJ1aWxkZXI6PC9zdHJvbmc+PC91PlxuXG5cdFx0XHRcdCJ9aWYoYnx8ZClhLmJvZHkrPShjK2AKCQkJCQk8YnI+CgkJCQkJPGJyPgoJCQkJCSR7Yn0KCQkJCQkke2R9CgkJCQlgKS5yZXBsYWNlKC9ccj9cbnxcci9nLCIiKX0sZGVjb2RlVVJMUmVjdXJzaXZlbHk6ZnVuY3Rpb24oYil7cmV0dXJuLTEhPWIuaW5kZXhPZigiJSIpP2EuZGVjb2RlVVJMUmVjdXJzaXZlbHkoZGVjb2RlVVJJQ29tcG9uZW50KHVuZXNjYXBlKGIpKSk6Yn0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihiKXtyZXR1cm4gJC5hamF4KHt0eXBlOiJHRVQiLHVybDoiL2FqYXgvdmFsaWRhdGVFbWFpbEFjY291bnQ\/d3N3aWR0aD0wJmVtYWlsPSIrYixhc3luYzohMX0pfSxnZXRVVUlEOmZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEJiZudWxsIT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDoKInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzJiYidW5kZWZpbmVkIiE9Q29va2llcy5nZXQoInV1aWQiKSYmbnVsbCE9Q29va2llcy5nZXQoInV1aWQiKT9Db29raWVzLmdldCgidXVpZCIpOiIifSxzZXRDb250YWN0SW5mbzpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mICQuZm4uZ29vZ2xlUGxhY2VzKXt2YXIgYj0kKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpOzAhPWIubGVuZ3RoJiYoYj1iLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1iLmNpdHkmJiIiPT1hLmNvbnRhY3RDaXR5JiYoYS5jb250YWN0Q2l0eT1iLmNpdHkubG9uZ19uYW1lKSwiIiE9Yi5zdHJlZXQmJiIiIT1iLnN0cmVldF9udW1iZXImJiIiPT1hLmNvbnRhY3RBZGRyZXNzJiYoYS5jb250YWN0QWRkcmVzcz1iLnN0cmVldF9udW1iZXIubG9uZ19uYW1lKyIgIitiLnN0cmVldC5sb25nX25hbWUpLCIiIT1iLnByb3ZpbmNlJiYiIj09YS5jb250YWN0UHJvdmluY2UmJihhLmNvbnRhY3RQcm92aW5jZT0KYi5wcm92aW5jZS5zaG9ydF9uYW1lKSwiIiE9Yi5wb3N0YWwmJiIiPT1hLmNvbnRhY3RaaXAmJihhLmNvbnRhY3RaaXA9Yi5wb3N0YWwubG9uZ19uYW1lKSl9fSxnZXRMb25nRGF0ZVRvU2hvcnRGb3JtYXQ6ZnVuY3Rpb24oYil7aWYoIiI9PWIpcmV0dXJuIGI7Yj1iLnRvTG93ZXJDYXNlKCk7dmFyIGQ9e2phbnZpZXI6ImphbnVhcnkiLCJmw6l2cmllciI6ImZlYnJ1YXJ5IixtYXJzOiJtYXJjaCIsYXZyaWw6ImFwcmlsIixtYWk6Im1heSIsanVpbjoianVuZSIsanVpbGxldDoianVseSIsImFvw7t0IjoiYXVndXN0IixzZXB0ZW1icmU6InNlcHRlbWJlciIsb2N0b2JyZToib2N0b2JlciIsbm92ZW1icmU6Im5vdmVtYmVyIiwiZMOpY2VtYnJlIjoiZGVjZW1iZXIifTtiPWIucmVwbGFjZSgvXGJcUytcYi9pZyxmdW5jdGlvbihjKXt2YXIgZj1jLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGRbZl0\/ZFtmXTpjfSk7cmV0dXJuKG5ldyBEYXRlKGIpKS5mb3JtYXQoInl5eXktTU0tZGQiKX0sZ2V0RW1haWxDb25zZW50OmZ1bmN0aW9uKGIpe3ZhciBkPQpuZXcgRGF0ZTthLnNldENvbnRhY3RJbmZvKCk7dmFyIGM9YS5jb250YWN0QmlydGg\/YS5jb250YWN0QmlydGg6YS5nZXRMb25nRGF0ZVRvU2hvcnRGb3JtYXQoYS5iaXJ0aGRhdGUpOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtnZXREYXRhPXtlbWFpbDphLnVzZXJFbWFpbCxwaG9uZTphLnVzZXJQaG9uZSxuYW1lOmEudXNlckZpcnN0TmFtZSsiICIrYS51c2VyTGFzdE5hbWUsYWRkcjphLmNvbnRhY3RBZGRyZXNzP2EuY29udGFjdEFkZHJlc3M6YS51c2VyQWRkcmVzcyxjaXR5OmEuY29udGFjdENpdHkscHJvdmluY2U6YS5jb250YWN0UHJvdmluY2UsemlwOmEuY29udGFjdFppcD9hLmNvbnRhY3RaaXA6YS51c2VyUG9zdGFsLG5hczphLmNvbnRhY3ROQVMsYmlydGg6YyxzaXRlSUQ6JCgiI3NpdGVJRCIpLnZhbCgpLFVVSUQ6YS5nZXRVVUlEKCksdHM6ZC5nZXRUaW1lKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksdXBkYXRlSW1wbGljaXQ6ITB9OwokLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCIsZGF0YTpnZXREYXRhLGRhdGFUeXBlOiJqc29uIn0pLmFsd2F5cyhmdW5jdGlvbihmLGssbSl7Zj1mP2Y6e2hhc0NvbnNlbnQ6ITF9OyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKTt0cnl7InVuZGVmaW5lZCI9PXR5cGVvZiBmJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIioqKiogZXJyb3IgKioqKiIse2Vycm9yOiJObyBEYXRhIix0ZXh0U3RhdHVzOmsscnZhbHVlOmYsdjpnZXREYXRhLHQ6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIn0pLFtbImNvbnNlbnRUeXBlIiwiY29uc2VudFR5cGUiXSxbImNvbnNlbnRFeHBpcmF0aW9uIiwiZXhwaXJhdGlvbiJdLFsiY29uc2VudERhdGUiLCJkYXRlIl0sWyJjb25zZW50RnJlcXVlbmN5IiwiZnJlcXVlbmN5Il0sClsiY29uc2VudERldGFpbHNGUiIsImRldGFpbHNGUkVOQ0giXSxbImNvbnNlbnREZXRhaWxzRU4iLCJkZXRhaWxzRU5HTElTSCJdLFsiZGV0YWlsc0RlZmF1bHRzIiwiZGV0YWlsc0RlZmF1bHRzIl0sWyJjb250YWN0SUQiLCJ1aWQiXV0ubWFwKGZ1bmN0aW9uKG4pe3ZhciB0PW5bMF07bj1uWzFdO2RlbGV0ZSB2b2lkIDA7YVt0XT12b2lkIDAhPWZbbl0\/ZltuXTphW3RdfSl9Y2F0Y2gobil7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIqKioqIGVycm9yICoqKioiLHtlcnJvcjpuLHRleHRTdGF0dXM6ayxydmFsdWU6Zix2OmdldERhdGEsdDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAifSl9YihmKX0pfSxiYW5kcExpbms6ZnVuY3Rpb24oYil7Yj1mdW5jdGlvbihyKXtyZXR1cm4gci5yZXBsYWNlKC8tL2csIl8iKS5yZXBsYWNlKC8nL2csIiIpfTtpZigidW5kZWZpbmVkIj09dHlwZW9mIENvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKXx8Cm51bGw9PUNvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKXx8InVuZGVmaW5lZCI9PXR5cGVvZiBDb29raWVzLmdldCgic2Vzc2lkIil8fG51bGw9PUNvb2tpZXMuZ2V0KCJzZXNzaWQiKSlyZXR1cm4iIjt2YXIgZD1Db29raWVzLmdldCgiYmFuZHBsaW5rIiksYz1Db29raWVzLmdldCgic2Vzc2lkIik7aWYoMD5kLmluZGV4T2YoInx8fCIpKXJldHVybiIiO3ZhciBmPWQuc3BsaXQoInx8fCIpO2lmKDQ+Zi5sZW5ndGgpcmV0dXJuIiI7ZD0obmV3IFN0cmluZyhmWzBdKSkuc3BsaXQoIi8iKTt2YXIgaz1uZXcgU3RyaW5nKGZbMV0pLG09bmV3IFN0cmluZyhmWzJdKTtmPW5ldyBTdHJpbmcoZlszXSk7dmFyIG49JCgiI3BvcHVwdHJpbSIpLmxlbmd0aCYmInskUE9QVVBUUklNfSIhPSQoIiNwb3B1cHRyaW0iKS52YWwoKT8kKCIjcG9wdXB0cmltIikudmFsKCk6IiIsdD0iPGEgaHJlZj0nIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSskKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKTsKIkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/KHBhcnNlSW50KGRbMl0pLCQoIiNUWFRNT05USCIrcGFyc2VJbnQoZFsxXSkudG9TdHJpbmcoKSkudmFsKCksdCs9ZisiLSIrYihrKSsiLSIrYihtKSsiLmh0bWw\/c2lkPSIrYysiJyB0YXJnZXQ9J19ibGFuayc+IitmKyIgIitrKyIgIittKyIgIituKyI8L2E+Iik6KCQoIiNUWFRNT05USCIrcGFyc2VJbnQoZFsxXSkudG9TdHJpbmcoKSkudmFsKCksdCs9YihrKSsiLSIrYihtKSsiLSIrZisiLmh0bWw\/c2lkPSIrYysiJyB0YXJnZXQ9J19ibGFuayc+IitrKyIgIittKyIgIituKyIgIitmKyI8L2E+Iik7cmV0dXJuIHR9LGxvZ0Zvcm1SZXF1ZXN0OmZ1bmN0aW9uKGIsZCxjKXt2YXIgZj1NYXRoLmZsb29yKDk5OTk5OTkqTWF0aC5yYW5kb20oKSksaz0kKCIjdG9wc2l0ZWlkIikubGVuZ3RoPyQoIiN0b3BzaXRlaWQiKS52YWwoKToiMCIsbT0kKCIjdG9wY2FyaWQiKS5sZW5ndGgmJjA8JCgiI3RvcGNhcmlkIikudmFsKCkubGVuZ3RoPwokKCIjdG9wY2FyaWQiKS52YWwoKToiMCIsbj1Db29raWVzLmdldCgidWlkIik\/Q29va2llcy5nZXQoInVpZCIpOiIwIix0PUNvb2tpZXMuZ2V0KCJ1dG1fc291cmNlIik\/Q29va2llcy5nZXQoInV0bV9zb3VyY2UiKToiMCIscj1Db29raWVzLmdldCgidXRtX2NhbXBhaWduIik\/Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbiIpOiIwIix2PUNvb2tpZXMuZ2V0KCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIik\/Q29va2llcy5nZXQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKToiMCIscT1Db29raWVzLmdldCgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIik\/Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpOiIwIixwPSQoIiN0b3Bpc21vYmlsZSIpLmxlbmd0aCYmMT09JCgiI3RvcGlzbW9iaWxlIikudmFsKCk\/IllFUyI6Ik5PIixoPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS5sZW5ndGg\/JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpOiJGUkVOQ0giLGw9dm9pZCAwIT09CmEmJnZvaWQgMCE9PWEucGhvbmVNYW5kYXRvcnk\/YS5waG9uZU1hbmRhdG9yeTowOyJ1bmRlZmluZWQiIT10eXBlb2YgYyYmY3x8KGM9IjAiKTtyPXIucmVwbGFjZSgvXHQvZywiIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvXHIvZywiIikucmVwbGFjZUFsbCgiJTBBIiwiIikucmVwbGFjZUFsbCgiJTA5IiwiIikucmVwbGFjZUFsbCgiJTBCIiwiIikucmVwbGFjZUFsbCgiJTAwIiwiIikucmVwbGFjZUFsbCgiJTVDIiwiIikucmVwbGFjZUFsbCgiJTBEIiwiIik7dD10LnJlcGxhY2UoL1x0L2csIiIpLnJlcGxhY2UoL1xuL2csIiIpLnJlcGxhY2UoL1xyL2csIiIpLnJlcGxhY2VBbGwoIiUwQSIsIiIpLnJlcGxhY2VBbGwoIiUwOSIsIiIpLnJlcGxhY2VBbGwoIiUwQiIsIiIpLnJlcGxhY2VBbGwoIiUwMCIsIiIpLnJlcGxhY2VBbGwoIiU1QyIsIiIpLnJlcGxhY2VBbGwoIiUwRCIsIiIpO2I9Ii9wcm94eV9zYXViL2xvZ0Zvcm1SZXF1ZXN0LyIrZW5jb2RlVVJJQ29tcG9uZW50KGspKwoiLyIrZW5jb2RlVVJJQ29tcG9uZW50KG0pKyIvIitlbmNvZGVVUklDb21wb25lbnQobikrIi8iK2VuY29kZVVSSUNvbXBvbmVudCh0KSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIpKyIvIitlbmNvZGVVUklDb21wb25lbnQocCkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChoKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHYpKyIvIitlbmNvZGVVUklDb21wb25lbnQocSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChkKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyIvIitlbmNvZGVVUklDb21wb25lbnQoYykrIi8iKyEhbCsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGYpKyIuZ2lmIjskKCJib2R5IikuYXBwZW5kKCI8aW1nIHN0eWxlPSd3aWR0aDoxcHg7aGVpZ2h0OjFweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjBweDt0b3A6MHB4Oycgc3JjPSciK2IrIicgYWx0PScnIC8+Iil9LGdldFVzZWRFbWFpbEZvck11bHRpcGxlRGVhbGVyczpmdW5jdGlvbigpe3ZhciBiPSJmciI7IkVOR0xJU0giPT0KJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYoYj0iZW4iKTt1cmk9Ii8iK2IrIi9waHAvZ2V0RGVhbGVyc0VtYWlsVG8ucGhwP21ha2U9IithLm1ha2UrIiZtb2RlbD0iK2EubW9kZWwrIiZ5ZWFyPSIrYS55ZWFyKyImY2I9IitNYXRoLmZsb29yKDk5OTk5OTkqTWF0aC5yYW5kb20oKSk7JC5hamF4KHt1cmw6dXJpLGFzeW5jOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7ZD1kLnNwbGl0KCJ8fHwiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGRbMF0mJjA8ZFswXS5sZW5ndGgmJihhLnNlbmRUbz1kWzBdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGRbMV0mJjA8ZFsxXS5sZW5ndGgmJihhLnNlbmRUb0FERkZvcm1hdD1kWzFdKX19KX0scHJlU2VuZEltcGxpY2l0OmZ1bmN0aW9uKCl7aWYoYS5wYXJ0aWFsKXJldHVybiExO2pzb25PYmplY3Q9YS5nZXRKc29uT2JqZWN0KCk7dmFyIGI9e2pzb246SlNPTi5zdHJpbmdpZnkoanNvbk9iamVjdCkscGFydGlhbDohMH07JC5hamF4KHt0eXBlOiJQT1NUIiwKdXJsOiIvbWFpbC9zZW5kTWFpbEV4LnBocCIsZGF0YTpiLGJlZm9yZVNlbmQ6ZnVuY3Rpb24oZCl7JCgnaW5wdXRbbmFtZT0ibGVhZF9kZXBhcnRtZW50Il0nKS52YWwoanNvbk9iamVjdC5kZXBhcnRtZW50KTskKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEuc3ViamVjdC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTskKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7JCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImRlYWxlck5hbWUiXScpLnZhbCgkKCIjbmV3VkRQRGVhbGVyTmFtZSIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKTsKZCYmZC5vdmVycmlkZU1pbWVUeXBlJiZkLm92ZXJyaWRlTWltZVR5cGUoImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpO3RyeXtsZXQgYz0kKCJtZXRhW25hbWU9J2NzcmYtZG9tYWluLWNoZWNrJ10iKTtjLmxlbmd0aCYmZC5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsYy5hdHRyKCJjb250ZW50IikpfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoZCl9fSxzdWNjZXNzOmZ1bmN0aW9uKGQpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhkKX0sZmFpbHVyZTpmdW5jdGlvbihkKXthLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtU3VibWl0dGVkRW1haWxOb3RTZW50IixhLm1haWxJRCxhLnBvcHVwT2ZmZXJUeXBlKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoc2F2ZUhhbmRsZXIuZmFpbE1lc3NhZ2UsZCl9LHN0YXR1c0NvZGU6ezQwNDpmdW5jdGlvbigpe2FsZXJ0KCJwYWdlIG5vdCBmb3VuZCIpfX19KX0sbG9nRXZlbnQ6ZnVuY3Rpb24oYiwKZCl7ZD1kP2Q6YS5tYWlsSUQ7aWYoIWJ8fCFkKXJldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixkKSwhMTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLGQpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYixkKX0sYnVpbGRDUk1LZXk6ZnVuY3Rpb24oKXt2YXIgYj1wYXJzZUludCgkKCIjdG9wc2l0ZWlkIikudmFsKCksMTApLGQ9YS5nZXRVVUlEKCksYz1nZXRDb29raWUoImVtYWlsRnJvbUF1dG9BbnN3ZXIiKTtpZighaXNOYU4oYikmJigiIiE9Y3x8IiIhPWQpJiYibnVtYmVyIj09dHlwZW9mIGImJjA8Yil7dmFyIGY9bmV3IERhdGUsaz1mLmdldE1vbnRoKCkrMTtrPSQuYmFzZTY0LmVuY29kZShmLmdldEZ1bGxZZWFyKCkrCiItIisoMTA+az8iMCIrazprKSsiLSIrKDEwPmYuZ2V0RGF0ZSgpPyIwIitmLmdldERhdGUoKTpmLmdldERhdGUoKSkpO2Y9ay5zdWJzdHIoMCw4KTtrPWsuc3Vic3RyKDgpO3JldHVybiAkLmJhc2U2NC5lbmNvZGUoZiskLmJhc2U2NC5lbmNvZGUoYisiOyIrZCsiOyIrYykrayl9cmV0dXJuIiJ9LHNldE1ha2VNb2RlbFllYXJGcm9tTGFzdFZpZXdlZDpmdW5jdGlvbigpe3ZhciBiPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpLGQ9JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpLGM9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgYiYmIiI9PT1hLm1ha2UmJihhLm1ha2U9Yik7InVuZGVmaW5lZCIhPT10eXBlb2YgZCYmIiI9PT1hLm1vZGVsJiYoYS5tb2RlbD1kKTsidW5kZWZpbmVkIj09PXR5cGVvZiBjfHwiIiE9PWEueWVhciYmMCE9PWEueWVhcnx8KGEueWVhcj1jKX0scmVjYXB0Y2hhOnthc2s6ITAsd2lkZ2V0SWQ6LTEsc2tpcEJ5UGFzczohMSwKb246JC5EZWZlcnJlZCgpLGlzRDJDTG9hZGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5ncmVjYXB0Y2hhJiYidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZ3JlY2FwdGNoYS5EMkNMb2FkZWR9LGluaXQ6ZnVuY3Rpb24oKXt0cnl7KGZ1bmN0aW9uKGIsZCxjLGYsayl7aWYoIWJba118fCJ1bmRlZmluZWQiPT09dHlwZW9mIGJba10uRDJDTG9hZGVkKXt2YXIgbT1kLmNyZWF0ZUVsZW1lbnQoYyk7Yz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKGMpWzBdO20uc3JjPWY7Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShtLGMpO20ub25sb2FkPSgpPT57YltrXSYmKGJba10uRDJDTG9hZGVkPSEwKTtkLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJncmVjYXB0Y2hhLmQyY2xvYWRlZCIpKX19fSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanMiLCJncmVjYXB0Y2hhIil9Y2F0Y2goYil7Y29uc29sZS5sb2coYil9fSxsb2FkOmZ1bmN0aW9uKCl7aWYoISgtMTwKYS5yZWNhcHRjaGEud2lkZ2V0SWQpKXRyeXskKCc8ZGl2IGlkPSJlbWFpbGhhbmRsZXJfcmVjYXB0Y2hhV2lkZ2V0Ij48L2Rpdj4nKS5hcHBlbmRUbygiYm9keSIpLGEucmVjYXB0Y2hhLndpZGdldElkPWdyZWNhcHRjaGEucmVuZGVyKCJlbWFpbGhhbmRsZXJfcmVjYXB0Y2hhV2lkZ2V0Iix7c2l0ZWtleToiNkxmcGREMFVBQUFBQVBkNFM3SWtlNUVkeDAxeTNZWGQ1SS11M2R4UCIsY2FsbGJhY2s6YS5yZWNhcHRjaGEub25TdWJtaXQsImVycm9yLWNhbGxiYWNrIjphLnJlY2FwdGNoYS5vbkZhaWwsc2l6ZToiaW52aXNpYmxlIn0pfWNhdGNoKGIpe2NvbnNvbGUubG9nKGIpfX0sb25TdWJtaXQ6ZnVuY3Rpb24oYil7YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbj1iO2EucmVjYXB0Y2hhLm9uLnJlc29sdmUoYil9LG9uRmFpbDpmdW5jdGlvbigpe2NvbnNvbGUubG9nKCJHUkMgRmFpbCIsYXJndW1lbnRzKX0sZ2V0UmVzcG9uc2U6ZnVuY3Rpb24oKXtyZXR1cm4gYS5yZWNhcHRjaGEuaXNEMkNMb2FkZWQoKT8KKGEucmVjYXB0Y2hhLmxvYWQoKSxncmVjYXB0Y2hhLmV4ZWN1dGUoYS5yZWNhcHRjaGEud2lkZ2V0SWQpLGEucmVjYXB0Y2hhLm9uKTokLkRlZmVycmVkKCkucmVzb2x2ZSgpfSxyZXNldFRva2VuOmZ1bmN0aW9uKCl7YS5yZWNhcHRjaGEuaXNEMkNMb2FkZWQoKSYmKGdyZWNhcHRjaGEucmVzZXQoYS5yZWNhcHRjaGEud2lkZ2V0SWQpLGEucmVjYXB0Y2hhLm9uPSQuRGVmZXJyZWQoKSl9LHNldFJlc3BvbnNlOmZ1bmN0aW9uKCl7fX0sc2FuaXRpemVIVE1MOmZ1bmN0aW9uKGIpe3JldHVybiBlbmNvZGVVUkkoYil9LHNob3VsZERpc3BsYXlQdXJjaGFzZUludGVudENvbnRhY3Q6KCk9PntpZihudWxsPT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQiKXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4hMTtsZXQgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5kYXRhc2V0LmRlcGFydG1lbnRzOwpiPWIuc3BsaXQoIjsiKTtpZigtMTxiLmluZGV4T2YoYS5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkpKXJldHVybiEwO3ZhciBkPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU\/ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU6ZG9jdW1lbnQubG9jYXRpb24uaHJlZi5tYXRjaCgvW0Etel06XC9cL1teXC9dK1wvKFteXD9dKylcPz8uKi8pWzFdO2Q9YS5zYW5pdGl6ZUhUTUwoZCk7bGV0IGM9T2JqZWN0LnZhbHVlcyhPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoe25ldzpbIm5ldWYiLCJuZXciXSx1c2VkOlsib2NjYXNpb24iLCJ1c2VkIl0sc2VydmljZTpbInNlcnZpY2UiLCJlbnRyZXRpZW4iLCJtYWludGVuYW5jZSIsInJlcGFpciJdLGZpbmFuY2U6WyJmaW5hbmNlbWVudCIsImZpbmFuY2UiLCJjcmVkaXQiLCJsb2FuIl19KS5maWx0ZXIoZj0+e1tmXT1mO3JldHVybi0xPGIuaW5kZXhPZihmKX0pKSkuZmxhdCgpO3JldHVybihuZXcgUmVnRXhwKCIoIisKYy5qb2luKCJ8IikrIikiKSkudGVzdChkLnRvTG93ZXJDYXNlKCkpfX07alF1ZXJ5KGZ1bmN0aW9uKGIpe2I9anNfZDJjX2dldF92YWwoIklTVk0iKTt2YXIgZD1qc19kMmNfZ2V0X3ZhbCgiZmZkTDEiKSxjPWpzX2QyY19nZXRfdmFsKCJHUldMIikuc3BsaXQoIjsiKTthLmlnbm9yZUNhcHRjaGE9Ynx8LTEhPWMuaW5kZXhPZihkKTthLmlnbm9yZUNhcHRjaGF8fChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJncmVjYXB0Y2hhLmQyY2xvYWRlZCIsZnVuY3Rpb24oKXt0cnl7Z3JlY2FwdGNoYS5yZWFkeShmdW5jdGlvbigpe2EucmVjYXB0Y2hhLmxvYWQoKX0pfWNhdGNoKGYpe2NvbnNvbGUubG9nKGYpfX0pLGEucmVjYXB0Y2hhLmluaXQoKSl9KTthLnJlc2V0Q2FsbGJhY2tzKCk7YS5hc2tQdXJjaGFzZUludGVudD1mdW5jdGlvbihiKXt2YXIgZD0idW5kZWluZmVkIiE9dHlwZW9mIGIucGF0aG5hbWU\/Yi5wYXRobmFtZTpiLmhyZWYubWF0Y2goL1tBLXpdOlwvXC9bXlwvXStcLyhbXlw\/XSspXD8\/LiovKVsxXTsKdmFyIGM9UmVnRXhwKCIoZGVtb25zdHJhdGV1cnN8ZGVtb3xsaXF1aWRhdGlvbnxjbGVhcmFuY2V8cHJvbW90aW9uc3xuZXVmfG5ld3xvY2Nhc2lvbnx1c2VkfGNyZWRpdHxmaW5hbmNlbWVudCkiKTtiPXtkZW1vbnN0cmF0ZXVyczoiZGVtbyIsY2xlYXJhbmNlOiJsaXF1aWRhdGlvbiIsIm5ldyI6Im5ldWYiLHByb21vdGlvbnM6InByb21vIix1c2VkOiJvY2Nhc2lvbiIsY3JlZGl0OiJmaW5hbmNlbWVudCJ9O3JldHVybiBjLnRlc3QoZC50b0xvd2VyQ2FzZSgpKT8oZD1kLm1hdGNoKGMpLG51bGwhPWQmJihhLnB1cmNoYXNlX2ludGVudF9zZWN0aW9uPSJ1bmRlZmluZWQiIT10eXBlb2YgYltkWzFdXT9iW2RbMV1dOmRbMV0pLCEwKTohMX0oZG9jdW1lbnQubG9jYXRpb24pO3JldHVybiBhfSgpLGVtYWlsVHJhY2tpbmc9ZnVuY3Rpb24oKXt2YXIgZT17YnJhbmQ6IiIsbW9kZWw6IiIseWVhcjoiIixpc3Byb21vOiExLGlzZXhwcmVzczohMSxpc2hvbWVwYWdlOiExLHNlY3Rpb246IiIsCnRleHRDYXJTZWN0aW9uVHlwZToiVVNFRCIsaXNNb2JpbGVOZXdWRFA6ITEsaXNGdWxsV2lkdGg6ITEsYnV0dG9uUG9zaXRpb246IiIsZGVhbGVyTmFtZToiIn0sZz1mdW5jdGlvbihjKXt2YXIgZj1bXSxrPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxtPWMubW9kZWw\/Yy5tb2RlbDplbWFpbEhhbmRsZXIubW9kZWw7Yz1jLnllYXI\/Yy55ZWFyOmVtYWlsSGFuZGxlci55ZWFyO2subGVuZ3RoJiZmLnB1c2goayk7bS5sZW5ndGgmJmYucHVzaChtKTtjLmxlbmd0aCYmZi5wdXNoKGMpO3JldHVybiBmLmpvaW4oIi0iKX0sYT1mdW5jdGlvbihjKXt2YXIgZj17ImhvbWVwYWdlLmh0bWwiOiJIb21lLVBhZ2UiLCJjb250YWN0dXMuaHRtbCI6IkNvbnRhY3RVcyIsIm5ld2NhcmRldGFpbC5odG1sIjoiTmV3LVZEUCIsIm5ld2NhcnMuaHRtbCI6Ik5ldy1TUlAiLCJidWlsZGFuZHByaWNlLmh0bWwiOiJOZXctQiZQIiwicmVzdW1lLWJ1aWxkYW5kcHJpY2UuaHRtbCI6Ik5ldy1CJlAtUmVzdW1lIiwKImNvbXBhcmVOZXdWZWhpY2xlcy5odG1sIjoiTmV3LUNvbXBhcmUiLCJ1c2VkY2Fycy5odG1sIjoiVXNlZC1TUlAiLCJjYXJkZXRhaWwuaHRtbCI6IlVzZWQtVkRQIiwiY3JlZGl0Lmh0bWwiOiJEZW1hbmRlcyAtIEZpbmFuY2VtZW50IiwiZGVhbGVydHJhY2suaHRtbCI6IkRlbWFuZGVzIC0gRmluYW5jZW1lbnQiLCJwcm9tb3Rpb24uaHRtbCI6IlByb21vdGlvbnMiLCJwcm9tb3Rpb25zYWxlcy5odG1sIjoiUHJvbW90aW9ucyIsInByb21vdGlvbnNlcnZpY2UuaHRtbCI6IlByb21vdGlvbnMiLCJwYXJ0c1JlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUGnvv71jZXMiLCJzZXJ2aWNlcy5odG1sIjoiU2VydmljZSIsInNlcnZpY2VSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFJEViBTZXJ2aWNlIiwiYm9keVNob3AuaHRtbCI6IkRlbWFuZGVzIC0gUkRWIENhcm9zc2VyaWUiLCJ0aXJlc1JlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUG5ldXMiLCJvdXJ0ZWFtLmh0bWwiOiJUZWFtIiwidGVzdGRyaXZlLmh0bWwiOiJEZW1hbmRlcyAtIEVzc2Fpcy1Sb3V0aWVyLU9jY2FzaW9uIiwKInRlc3Rkcml2ZW5ldy5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1OZXVmIiwiYnJvY2h1cmVzLmh0bWwiOiJEZW1hbmRlcyAtIEJyb2NodXJlcyIsImpvYm9mZmVyLmh0bWwiOiJEZW1hbmRlcyAtIEVtcGxvaXMiLCJtYWtlb2ZmZXJuZXcuaHRtbCI6IkRlbWFuZGVzIC0gT2ZmcmUgLSBOZXVmIiwibWFrZW9mZmVyLmh0bWwiOiJEZW1hbmRlcyAtIE9mZnJlIC0gT2NjYXNpb24iLCJwcmljZXJlcXVlc3RuZXcuaHRtbCI6IkRlbWFuZGVzIC0gUHJpeCAtIE5ldWYiLCJwcmljZXJlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUHJpeCAtIE9jY2FzaW9uIiwiZmluZGNhci5odG1sIjoiRGVtYW5kZXMgLSBSZWNoZXJjaGUgT2NjYXNpb24iLCJ0cmFkZWlubmV3Lmh0bWwiOiJEZW1hbmRlcyAtIEVjaGFuZ2UgTmV1ZiIsInRyYWRlaW4uaHRtbCI6IkRlbWFuZGVzIC0gRWNoYW5nZSBPY2Nhc2lvbiJ9LGs9LTEhPShjLmN1cnJlbnRVUkx8fCIiKS5pbmRleE9mKCJzdGVwPXJlc3VtZSIpLAptPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1vcHRpb25zIik7ImJ1aWxkYW5kcHJpY2UuaHRtbCI9PWMucGFnZUlEJiYoa3x8bSkmJihjLnBhZ2VJRD0icmVzdW1lLWJ1aWxkYW5kcHJpY2UuaHRtbCIpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZltjLnBhZ2VJRF0\/ZltjLnBhZ2VJRF06Ik90aGVyIn0sYj1mdW5jdGlvbihjKXt2YXIgZj0iRGVtYW5kZXMiLGs9Yy5icmFuZD9jLmJyYW5kOmVtYWlsSGFuZGxlci5tYWtlLG09Yy5tb2RlbD9jLm1vZGVsOmVtYWlsSGFuZGxlci5tb2RlbDtjLmlzcHJvbW8mJihmKz0iLVByb21vdGlvbiIpOzA8ay5sZW5ndGgmJjA8bS5sZW5ndGgmJiFjLmlzaG9tZXBhZ2U\/Zj1jLmlzcHJvbW8\/ZisoIi0iK2coYykpOmYrWyIiLGssbSxjLnNlY3Rpb25dLmpvaW4oIi0iKTpjLmlzcHJvbW8mJmMuaXNob21lcGFnZSYmKGYrPSItSW5kZXgiKTsiMSI9PWMuaXNleHByZXNzJiYoYy50ZXh0Q2FyU2VjdGlvblR5cGUmJihmPSJEZW1hbmRlcy1FeHByZXNzIiksCmYrPSItIitnKGMpLGYrPSItIitjLnNlY3Rpb24pO3JldHVybiBmfSxkPWZ1bmN0aW9uKGMpe3ZhciBmPTEyMDA8d2luZG93LnNjcmVlbi5hdmFpbFdpZHRoPyI+MTIwMHB4IC0gIi5pc0Z1bGxXaWR0aDoiPDEyMDBweCAtIE5vcm1hbCBWRFAiO1tmLGMuYnV0dG9uUG9zaXRpb25dLmpvaW4oIi0iKTtjPVtjLmRlYWxlck5hbWUsZiwiTGVhZCJdLmpvaW4oIi0iKTtnYVRyYWNrKCJjIiwiTmV3LVZEUC1EZXNrdG9wLUxheW91dC1DUiIsYWN0aW9uLGMsMSl9O3RoaXMudHJhY2s9ZnVuY3Rpb24oYyl7aWYoZ2V0Q29va2llKCJsZWFkU2VuZCIpKXJldHVybiBkZWJ1ZygibGVhZCBzZW50Iik7c2V0Q29va2llKCJsZWFkU2VuZCIsITAsMSk7Yz0kLmV4dGVuZCh7fSxlLGMpO2MuY3VycmVudFVSTD1jLmN1cnJlbnRVUkw\/Yy5jdXJyZW50VVJMOndpbmRvdy5sb2NhdGlvbi5ocmVmO2MuaXNwcm9tbz0iMSI9PWMuaXNwcm9tbztjLmlzaG9tZXBhZ2U9IjEiPT1jLmlzaG9tZXBhZ2U7dmFyIGY9YShjKTsKZ2FUcmFjaygiIiwiQ291cnJpZWxzIixjLmxhYmVsLGIoYyksMSk7Z2FUcmFjaygiYyIsIkNvdXJyaWVscy1kZXB0IixjLmRlcGFydG1lbnQsZyhjKSwxKTtnYVRyYWNrKCJjIiwiQ291cnJpZWxzLXBhZ2UiLGYsYy5sZWFkVHlwZSwxKTtjLmlzTW9iaWxlTmV3VkRQJiYiTmV3LVZEUCI9PWYmJmQoYyk7dHJ5e2QyY19nYUFjY291bnRzLmFsbC5tYXAoZnVuY3Rpb24oayl7Z3RhZygiY29uZmlnIixrLHtwYWdlX3BhdGg6Ii9jb25maXJtYXRpb24uaHRtbCJ9KX0pLGd0YWcoImNvbmZpZyIsIkctWjVROFo1QzdLRiIse3BhZ2VfcGF0aDoiL2NvbmZpcm1hdGlvbi5odG1sIn0pfWNhdGNoKGspe2RlYnVnKGspfX07cmV0dXJuIHRoaXN9KCksZ2V0TWFpbFNlbnRIYW5kbGVyPWZ1bmN0aW9uKGUpe3ZhciBnPXt0aW1lb3V0Q2FsbGJhY2s6bnVsbCx0aW1lb3V0Om51bGx9O2cuaWRUb0FkZD1lP2U6IiI7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuZGVmYXVsdFN1Y2Nlc3MiKS5zaG93KCk7CiQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLnNlcnZpY2VTdWNjZXNzIikuaGlkZSgpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5sZW5ndGh8fChlPSIiLGcuaWRUb0FkZD0iIiwiU0VSVklDRSIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYiUEFSVFMiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCl8fCgkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5kZWZhdWx0U3VjY2VzcyIpLmhpZGUoKSwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5zZXJ2aWNlU3VjY2VzcyIpLnNob3coKSk7Zy5zaG93U3VjY2Vzcz1mdW5jdGlvbigpe2dldENvb2tpZSgicHJldmVudER1cGxpY2F0ZUNyZWRpdFNjb3JlIil8fGdldENvb2tpZSgiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBTaG93biIpfHxnZXRDb29raWUoImNyZWRpdFNjb3JlRW1iZWRkZWRGaWxsZWQiKXx8IiIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJiIiIT1lbWFpbEhhbmRsZXIudXNlckFkZHJlc3MmJgoiIiE9ZW1haWxIYW5kbGVyLmJpcnRoZGF0ZXx8Im5ldyIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkmJiJ1c2VkIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKXx8ISQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLmxlbmd0aHx8IlRyYWRlSW5CYXJQb3B1cENvbnRhaW5lciI9PWVtYWlsSGFuZGxlci5wb3B1cGRpdj8oJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UpLnBhcmVudCgpLmlzKCJib2R5Iil8fCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5hcHBlbmRUbygiYm9keSIpLCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9KSwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSsiIC5jb25maXJtX3N1Y2Nlc3NDb250aW51ZSIpLm9uKCJjbGljayIsCmcuY2xvc2VTdWNjZXNzKSk6JCgiI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpOyQoIiNlbWFpbG1zZ2ZybSIrZy5pZFRvQWRkKS50cmlnZ2VyKCJzdWJtaXQiKX07Zy5jbG9zZVN1Y2Nlc3M9ZnVuY3Rpb24oKXskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZy5pZFRvQWRkKS50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKTtudWxsIT1nLnRpbWVvdXRDYWxsYmFjayYmZy50aW1lb3V0Q2FsbGJhY2soKTtyZXR1cm4hMX07Zy5zaG93RmFpbD1mdW5jdGlvbigpeyQoIiNlbWFpbEZhaWxNZXNzYWdlIitnLmlkVG9BZGQpLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0pOyQoIiNlbWFpbEZhaWxNZXNzYWdlIisKZSsiIC5jb25maXJtX2ZhaWxDb250aW51ZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9O3JldHVybiBnfSxtYWlsU2VudEhhbmRsZXI9bmV3IGdldE1haWxTZW50SGFuZGxlcigiIik7ZnVuY3Rpb24gc3RvcmFnZUF2YWlsYWJsZShlKXt0cnl7dmFyIGc9d2luZG93W2VdO2cuc2V0SXRlbSgiX19zdG9yYWdlX3Rlc3RfXyIsIl9fc3RvcmFnZV90ZXN0X18iKTtnLnJlbW92ZUl0ZW0oIl9fc3RvcmFnZV90ZXN0X18iKTtyZXR1cm4hMH1jYXRjaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKDIyPT09YS5jb2RlfHwxMDE0PT09YS5jb2RlfHwiUXVvdGFFeGNlZWRlZEVycm9yIj09PWEubmFtZXx8Ik5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEIj09PWEubmFtZSkmJmcmJjAhPT1nLmxlbmd0aH19CnZhciBmb3JtRmlsbD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsZz1zdG9yYWdlQXZhaWxhYmxlKCJsb2NhbFN0b3JhZ2UiKSxhPW51bGwsYj0hMCxkPVtdLGM9e25hbWU6WyJpbnB1dC5uYW1lIiwnaW5wdXRbbmFtZT0ibmFtZSJdJ10scG9zdGFsOlsiaW5wdXQucG9zdGFsIiwnaW5wdXRbbmFtZT0icG9zdGFsIl0nXSxmaXJzdE5hbWU6J2lucHV0LmZpcnN0TmFtZSBpbnB1dC5maXJzdG5hbWUgaW5wdXRbbmFtZT0iZmlyc3RuYW1lIl0gaW5wdXRbbmFtZT0iZmlyc3ROYW1lIl0gaW5wdXQjZmlyc3RuYW1lIGlucHV0I2ZpcnN0TmFtZSBpbnB1dCNtaW5pX2ZuYW1lJy5zcGxpdCgiICIpLGxhc3ROYW1lOidpbnB1dC5sYXN0TmFtZSBpbnB1dC5sYXN0bmFtZSBpbnB1dFtuYW1lPSJsYXN0bmFtZSJdIGlucHV0W25hbWU9Imxhc3ROYW1lIl0gaW5wdXQjbGFzdG5hbWUgaW5wdXQjbGFzdE5hbWUgaW5wdXQjbWluaV9sbmFtZScuc3BsaXQoIiAiKSxwaG9uZTpbImlucHV0LnBob25lIiwnaW5wdXRbbmFtZT0icGhvbmUiXScsCidpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJywiaW5wdXQjbWluaV9waG9uZSIsJ1t0eXBlPSJ0ZWwiXSddLGVtYWlsOlsiaW5wdXQuZW1haWwiLCdpbnB1dFtuYW1lPSJlbWFpbCJdJywnaW5wdXRbbmFtZT0iZW1haWxBZGRyZXNzIl0nLCJpbnB1dCNtaW5pX2VtYWlsIl19LGY9ZnVuY3Rpb24ocCl7aWYoIWcpcmV0dXJuITE7dmFyIGg9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImZvcm1GaWxsRGF0YSIpO2lmKG51bGw9PT1oKXJldHVybiExOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvcHJveHlfc2QyYy9zZXJ2aWNlL2QyYy5lbmNyeXB0aW9uLmdldCIsZGF0YTp7ZGF0YTpofX0pLmRvbmUoZnVuY3Rpb24obCl7aWYobCYmImZ1bmN0aW9uIj09PXR5cGVvZiBwKXRyeXtwKEpTT04ucGFyc2UobC5kYXRhKSl9Y2F0Y2godSl7Y29uc29sZS5sb2codSl9fSl9LGs9ZnVuY3Rpb24oKXtiPSEwO2E9bnVsbDtkLmZvckVhY2goZnVuY3Rpb24ocCl7cC5maWxsZWQ9ITF9KX0sbT1mdW5jdGlvbihwKXtxKCJ1c2VyLmxvYWRlZCIsCmZ1bmN0aW9uKCl7aWYoIW4ocCkpe2QucHVzaCh7c2NvcGU6cCxmaWxsZWQ6ITB9KTtmb3IodmFyIGggaW4gYylhLmhhc093blByb3BlcnR5KGgpJiZwLmZpbmQoJChjW2hdLmpvaW4oIiwiKSkpLnZhbChhW2hdKTtyKCJmb3JtLmZpbGxlZCIpfX0pO251bGw9PT1hJiZiPyhiPSExLGYoZnVuY3Rpb24oaCl7aC5wb3N0YWw9aC5wb3N0YWwudG9VcHBlckNhc2UoKTtoLmZpcnN0TmFtZT1oLmZpcnN0TmFtZS50cmltKCk7aC5sYXN0TmFtZT1oLmxhc3ROYW1lLnRyaW0oKTtlbWFpbEhhbmRsZXIudXNlclBvc3RhbD1oLnBvc3RhbDtlbWFpbEhhbmRsZXIudXNlckVtYWlsPWguZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9aC5maXJzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1oLmxhc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9aC5waG9uZTtoLm5hbWU9KGguZmlyc3ROYW1lKyIgIitoLmxhc3ROYW1lKS50cmltKCk7YT1oO3IoInVzZXIubG9hZGVkIil9KSk6CmEmJnIoInVzZXIubG9hZGVkIil9LG49ZnVuY3Rpb24ocCl7cmV0dXJuKF9zY29wZT1kLmZpbmQoZnVuY3Rpb24oaCl7aWYoaC5zY29wZS5pcyhwKSlyZXR1cm4gaH0pKT9fc2NvcGUuZmlsbGVkOiExfSx0PVtdLHI9ZnVuY3Rpb24ocCl7dmFyIGg9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7aWYodFtwXSl7dmFyIGw9dFtwXS5zbGljZSgpO3ZhciB1PWwubGVuZ3RoO2ZvcihpPTA7aTx1O2krKylsW2ldLmFwcGx5KHRoaXMsaCl9fSx2PWZ1bmN0aW9uKHAsaCl7dFtwXXx8KHRbcF09W10pO3RbcF0ucHVzaChoKX0scT1mdW5jdGlvbihwLGgpe3YocCxmdW5jdGlvbiB1KCl7dFtwXS5zcGxpY2UodFtwXS5pbmRleE9mKHUpLDEpO2guYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9OyQoZnVuY3Rpb24oKXtnJiYoJChkb2N1bWVudCkub24oInBvcHVwaXplci5vbk9wZW4iLGZ1bmN0aW9uKHAsaCl7cD1oLnRhcmdldD9oLnRhcmdldDokKGgpO20ocCl9KSwkKGRvY3VtZW50KS5vbigicG9wdXBpemVyLm9uQ2xvc2UiLApmdW5jdGlvbihwLGgpe30pLCQoImZvcm0iKS5lYWNoKGZ1bmN0aW9uKHAsaCl7bSgkKGgpKX0pKX0pO3JldHVybiBlPXtzYXZlOmZ1bmN0aW9uKHApe2lmKCFnKXJldHVybiExO2EmJiIiPT09cC5wb3N0YWwmJihwLnBvc3RhbD1hLnBvc3RhbCk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9wcm94eV9zZDJjL3NlcnZpY2UvZDJjLmVuY3J5cHRpb24uc2V0IixkYXRhOntkYXRhOkpTT04uc3RyaW5naWZ5KHApfX0pLmRvbmUoZnVuY3Rpb24oaCl7aCYmKGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmb3JtRmlsbERhdGEiLGguZGF0YSksaygpKX0pfX19KCk7Ci8qKiAvanMvamhhc2h0YWJsZS5qcyAqKi8KdmFyIF9fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNzowNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzU6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzM6NDkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDM6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjEtMTItMTUgMTI6NDA6MTMiOyJ1c2Ugc3RyaWN0IjsKdmFyIEhhc2h0YWJsZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHUoYSl7aWYoInN0cmluZyI9PXR5cGVvZiBhKXJldHVybiBhO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLmhhc2hDb2RlKXJldHVybiBhPWEuaGFzaENvZGUoKSwic3RyaW5nIj09dHlwZW9mIGE\/YTp1KGEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnRvU3RyaW5nKXJldHVybiBhLnRvU3RyaW5nKCk7dHJ5e3JldHVybiBTdHJpbmcoYSl9Y2F0Y2goYyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX19ZnVuY3Rpb24gQihhLGMpe3JldHVybiBhLmVxdWFscyhjKX1mdW5jdGlvbiBDKGEsYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGMuZXF1YWxzP2MuZXF1YWxzKGEpOmE9PT1jfWZ1bmN0aW9uIHYoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2lmKG51bGw9PT1jKXRocm93IEVycm9yKCJudWxsIGlzIG5vdCBhIHZhbGlkICIrYSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjKXRocm93IEVycm9yKGErCiIgbXVzdCBub3QgYmUgdW5kZWZpbmVkIik7fX1mdW5jdGlvbiBxKGEsYyxoLGQpe3RoaXNbMF09YTt0aGlzLmVudHJpZXM9W107dGhpcy5hZGRFbnRyeShjLGgpO251bGwhPT1kJiYodGhpcy5nZXRFcXVhbGl0eUZ1bmN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGR9KX1mdW5jdGlvbiByKGEpe3JldHVybiBmdW5jdGlvbihjKXtmb3IodmFyIGg9dGhpcy5lbnRyaWVzLmxlbmd0aCxkLGs9dGhpcy5nZXRFcXVhbGl0eUZ1bmN0aW9uKGMpO2gtLTspaWYoZD10aGlzLmVudHJpZXNbaF0sayhjLGRbMF0pKXN3aXRjaChhKXtjYXNlIDA6cmV0dXJuITA7Y2FzZSAxOnJldHVybiBkO2Nhc2UgMjpyZXR1cm5baCxkWzFdXX1yZXR1cm4hMX19ZnVuY3Rpb24gdyhhKXtyZXR1cm4gZnVuY3Rpb24oYyl7Zm9yKHZhciBoPWMubGVuZ3RoLGQ9MCxrPXRoaXMuZW50cmllcy5sZW5ndGg7ZDxrOysrZCljW2grZF09dGhpcy5lbnRyaWVzW2RdW2FdfX1mdW5jdGlvbiBtKGEsYyl7cmV0dXJuKGE9YVtjXSkmJgphIGluc3RhbmNlb2YgcT9hOm51bGx9ZnVuY3Rpb24geChhLGMpe3ZhciBoPXRoaXMsZD1bXSxrPXt9LG49ImZ1bmN0aW9uIj09dHlwZW9mIGE\/YTp1LEQ9ImZ1bmN0aW9uIj09dHlwZW9mIGM\/YzpudWxsO3RoaXMucHV0PWZ1bmN0aW9uKGIsZSl7cChiKTt5KGUpO3ZhciBmPW4oYiksZyxsPW51bGw7KGc9bShrLGYpKT8oZj1nLmdldEVudHJ5Rm9yS2V5KGIpKT8obD1mWzFdLGZbMV09ZSk6Zy5hZGRFbnRyeShiLGUpOihnPW5ldyBxKGYsYixlLEQpLGRbZC5sZW5ndGhdPWcsa1tmXT1nKTtyZXR1cm4gbH07dGhpcy5nZXQ9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpO2lmKGU9bShrLGUpKWlmKGI9ZS5nZXRFbnRyeUZvcktleShiKSlyZXR1cm4gYlsxXTtyZXR1cm4gbnVsbH07dGhpcy5jb250YWluc0tleT1mdW5jdGlvbihiKXtwKGIpO3ZhciBlPW4oYik7cmV0dXJuKGU9bShrLGUpKT9lLmNvbnRhaW5zS2V5KGIpOiExfTt0aGlzLmNvbnRhaW5zVmFsdWU9ZnVuY3Rpb24oYil7eShiKTsKZm9yKHZhciBlPWQubGVuZ3RoO2UtLTspaWYoZFtlXS5jb250YWluc1ZhbHVlKGIpKXJldHVybiEwO3JldHVybiExfTt0aGlzLmNsZWFyPWZ1bmN0aW9uKCl7ZC5sZW5ndGg9MDtrPXt9fTt0aGlzLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hZC5sZW5ndGh9O3ZhciB0PWZ1bmN0aW9uKGIpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxmPWQubGVuZ3RoO2YtLTspZFtmXVtiXShlKTtyZXR1cm4gZX19O3RoaXMua2V5cz10KCJrZXlzIik7dGhpcy52YWx1ZXM9dCgidmFsdWVzIik7dGhpcy5lbnRyaWVzPXQoImdldEVudHJpZXMiKTt0aGlzLnJlbW92ZT1mdW5jdGlvbihiKXtwKGIpO3ZhciBlPW4oYiksZj1udWxsLGc9bShrLGUpO2lmKGcmJihmPWcucmVtb3ZlRW50cnlGb3JLZXkoYiksbnVsbCE9PWYmJiFnLmVudHJpZXMubGVuZ3RoKSl7YTp7Zm9yKGI9ZC5sZW5ndGg7Yi0tOylpZihnPWRbYl0sZT09PWdbMF0pYnJlYWsgYTtiPW51bGx9eihkLGIpO2RlbGV0ZSBrW2VdfXJldHVybiBmfTsKdGhpcy5zaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPTAsZT1kLmxlbmd0aDtlLS07KWIrPWRbZV0uZW50cmllcy5sZW5ndGg7cmV0dXJuIGJ9O3RoaXMuZWFjaD1mdW5jdGlvbihiKXtmb3IodmFyIGU9aC5lbnRyaWVzKCksZj1lLmxlbmd0aCxnO2YtLTspZz1lW2ZdLGIoZ1swXSxnWzFdKX07dGhpcy5wdXRBbGw9ZnVuY3Rpb24oYixlKXtiPWIuZW50cmllcygpO2Zvcih2YXIgZixnLGwsQT1iLmxlbmd0aCxFPSJmdW5jdGlvbiI9PXR5cGVvZiBlO0EtLTspZj1iW0FdLGc9ZlswXSxmPWZbMV0sRSYmKGw9aC5nZXQoZykpJiYoZj1lKGcsbCxmKSksaC5wdXQoZyxmKX07dGhpcy5jbG9uZT1mdW5jdGlvbigpe3ZhciBiPW5ldyB4KGEsYyk7Yi5wdXRBbGwoaCk7cmV0dXJuIGJ9fXZhciB6PSJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheS5wcm90b3R5cGUuc3BsaWNlP2Z1bmN0aW9uKGEsYyl7YS5zcGxpY2UoYywxKX06ZnVuY3Rpb24oYSxjKXt2YXIgaDtpZihjPT09YS5sZW5ndGgtMSlhLmxlbmd0aD0KYztlbHNle3ZhciBkPWEuc2xpY2UoYysxKTthLmxlbmd0aD1jO3ZhciBrPTA7Zm9yKGg9ZC5sZW5ndGg7azxoOysraylhW2Mra109ZFtrXX19LHA9digia2V5IikseT12KCJ2YWx1ZSIpO3EucHJvdG90eXBlPXtnZXRFcXVhbGl0eUZ1bmN0aW9uOmZ1bmN0aW9uKGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhLmVxdWFscz9COkN9LGdldEVudHJ5Rm9yS2V5OnIoMSksZ2V0RW50cnlBbmRJbmRleEZvcktleTpyKDIpLHJlbW92ZUVudHJ5Rm9yS2V5OmZ1bmN0aW9uKGEpe3JldHVybihhPXRoaXMuZ2V0RW50cnlBbmRJbmRleEZvcktleShhKSk\/KHoodGhpcy5lbnRyaWVzLGFbMF0pLGFbMV0pOm51bGx9LGFkZEVudHJ5OmZ1bmN0aW9uKGEsYyl7dGhpcy5lbnRyaWVzW3RoaXMuZW50cmllcy5sZW5ndGhdPVthLGNdfSxrZXlzOncoMCksdmFsdWVzOncoMSksZ2V0RW50cmllczpmdW5jdGlvbihhKXtmb3IodmFyIGM9YS5sZW5ndGgsaD0wLGQ9dGhpcy5lbnRyaWVzLmxlbmd0aDtoPGQ7KytoKWFbYysKaF09dGhpcy5lbnRyaWVzW2hdLnNsaWNlKDApfSxjb250YWluc0tleTpyKDApLGNvbnRhaW5zVmFsdWU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBjPXRoaXMuZW50cmllcy5sZW5ndGg7Yy0tOylpZihhPT09dGhpcy5lbnRyaWVzW2NdWzFdKXJldHVybiEwO3JldHVybiExfX07cmV0dXJuIHh9KCk7Ci8qKiAvanMvbmV3Y2Fycy5qcyAqKi8KdmFyIF9fX2QyY19uZXdjYXJzanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDoxMiI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZSl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09ZS52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgZT1hW2JdO2lmKGUmJmUuTWF0aD09TWF0aClyZXR1cm4gZX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGU9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09ZSlyZXR1cm4gYVtiXTtlPWFbZV07cmV0dXJuIHZvaWQgMCE9PWU\/ZTphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixlLGcpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsZSxnKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsZSxnKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsZSxnKXtlPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihnPTA7ZzxhLmxlbmd0aC0xO2crKyl7dmFyIGg9YVtnXTtpZighKGggaW4gZSkpcmV0dXJuO2U9ZVtoXX1hPWFbYS5sZW5ndGgtMV07Zz1lW2FdO2I9YihnKTtiIT1nJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGUsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsZSxnKXt2YXIgaD1hLnNwbGl0KCIuIik7YT0xPT09aC5sZW5ndGg7Zz1oWzBdO2c9IWEmJmcgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBuPTA7bjxoLmxlbmd0aC0xO24rKyl7dmFyIHQ9aFtuXTtpZighKHQgaW4gZykpcmV0dXJuO2c9Z1t0XX1oPWhbaC5sZW5ndGgtMV07ZT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09ZT9nW2hdOm51bGw7Yj1iKGUpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsaCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09ZSYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdJiYoZT0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woaCk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrZSsiJCIraCksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShnLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGUpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgZT1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhlKTtpZihlLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1lLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChlLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixlKXtlP3RoaXMuZmluYWxseUNvbnRleHRzX1tlXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oZSl7cmV0dXJue3ZhbHVlOmUsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGUpe3RyeXt2YXIgZz1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhnKTtpZighZy5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZzt2YXIgaD1nLnZhbHVlfWNhdGNoKG4pe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18obiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7ZS5jYWxsKHRoaXMuY29udGV4dF8saCk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZyl7cmV0dXJuIGEubmV4dChnKX1mdW5jdGlvbiBlKGcpe3JldHVybiBhLnRocm93KGcpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihnLGgpe2Z1bmN0aW9uIG4odCl7dC5kb25lP2codC52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHQudmFsdWUpLnRoZW4oYixlKS50aGVuKG4saCl9bihhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmxldCAkanNjb21wJG9wdGNoYWluJHRtcDE5MzczODk4NTkkMDsKbmV3Q2Fycz17aXNNb2JpbGU6IjEiPT09KG51bGw9PSgkanNjb21wJG9wdGNoYWluJHRtcDE5MzczODk4NTkkMD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXNNb2JpbGUiKSk\/dm9pZCAwOiRqc2NvbXAkb3B0Y2hhaW4kdG1wMTkzNzM4OTg1OSQwLnZhbHVlKSxjb250YWluZXI6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ld2NhckNvbnRhaW5lciIpLHJlc2l6ZU1haW5XaW5kb3c6ZnVuY3Rpb24oKXtpZighbmV3Q2Fycy5pc01vYmlsZSl7dmFyIGE9JCgiI3JpZ2h0U2lkZSIpLmhlaWdodCgpLTM1LGI9JCgiI25ld2NhckNvbnRhaW5lciIpLmhlaWdodCgpOyFpc05hTihhKSYmIWlzTmFOKGIpJiZhPmImJigkKCIjbmV3Y2FyQ29udGFpbmVyIikuaGVpZ2h0KGEpLCQoIiNmb290ZXJEaXYiKS5jc3MoInBhZGRpbmciLCIwcHgiKSl9fSxzZXRQYXltZW50VG9vbHRpcHM6KCk9PntuZXdDYXJzLmlzTW9iaWxlPyQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoIi5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudEluZm9CdWJibGUgLnBheW1lbnRUb29sdGlwIikuZWFjaChmdW5jdGlvbigpe3RyeXt2YXIgYT0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpOwokKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmEsZ3Jhdml0eToiZWFzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJjbGljayIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goYil7fX0pfSk6JCgiLmRpdkNhcnNCb3hXcmFwcGVyIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuZmluZCgiLmRpdkNhclNpbmdsZU91dGVyQm94Iikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oYSl7dHJ5e2lmKCQodGhpcykuZGF0YSgidG9vbHRpcENyZWF0ZWQiKSlyZXR1cm4hMTskKHRoaXMpLmRhdGEoInRvb2x0aXBDcmVhdGVkIiwxKTskKHRoaXMpLmZpbmQoIi5kaXZDYXJQYXltZW50Q29udGFpbmVyVG9vbHRpcCIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJ3ZXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChiKXt9fSl9KX0sbmV3Q2Fyc0ZpbHRlcjooKT0+e2Z1bmN0aW9uIGEoKXt2YXIgYz0kKCIuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIikubWFwKGZ1bmN0aW9uKGQsCmYpe3JldHVybiBwYXJzZUludCgkKGYpLmF0dHIoIm5iVmlzaWJsZSIpKX0pLmdldCgpLnJlZHVjZShmdW5jdGlvbihkLGYpe3JldHVybiBkK2Z9LDApO3JldHVybntmaWx0ZXJzOntzdGF0dXM6Ik5ldyIsYm9keVN0eWxlOiQoImlucHV0OmNoZWNrZWQuZmlsdGVyQ2hlY2suY2F0ZWdvcnkiKS5tYXAoZnVuY3Rpb24oZCxmKXtyZXR1cm4gJChmKS52YWwoKX0pLmdldCgpLGZ1ZWxUeXBlOiQoImlucHV0OmNoZWNrZWQuZmlsdGVyQ2hlY2suZnVlbHR5cGUiKS5tYXAoZnVuY3Rpb24oZCxmKXtyZXR1cm4gJChmKS5kYXRhKCJlc3NlbmNlIil9KS5nZXQoKSxkcml2ZVRyYWluOiQoImlucHV0OmNoZWNrZWQuZmlsdGVyQ2hlY2suZHJpdmV0cmFpbiIpLm1hcChmdW5jdGlvbihkLGYpe3JldHVybiAkKGYpLmRhdGEoImRyaXZldHJhaW4iKX0pLmdldCgpLG1heFByaWNlOnAubWF4LG1pblByaWNlOnAubWlufSx2ZWhpY2xlQ291bnQ6Y319dmFyIGI9ITE7dHJ5eyJ1bmRlZmluZWQiPT1qUXVlcnkuYnJvd3Nlci5tc2llPwpiPSEwOjk8PXBhcnNlSW50KGpRdWVyeS5icm93c2VyLnZlcnNpb24sMTApJiYoYj0hMCl9Y2F0Y2goYyl7fWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgYm94QmxvY2tzfHwxPmJveEJsb2Nrcy5sZW5ndGgpYj0hMTstMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJjYW1pb25zLWNvbW1lcmNpYXV4IikmJihiPSExKTtpZihiKXt2YXIgZT1uZXdDYXJzLmdldEZpbHRlcigpO2I9Z2V0VXJsVmFycygpO3ZhciBnPWIuaGFzT3duUHJvcGVydHkoImJvZHkiKSxoPWIuaGFzT3duUHJvcGVydHkoImZ1ZWwiKTtuZXdDYXJzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCIuZmlsdGVyQ2hlY2siKS5mb3JFYWNoKGM9PntnJiZjLmNsYXNzTGlzdC5jb250YWlucygiY2F0ZWdvcnkiKXx8aCYmYy5jbGFzc0xpc3QuY29udGFpbnMoImZ1ZWx0eXBlIil8fChjLmNoZWNrZWQ9IWUuaGFzT3duUHJvcGVydHkoYy5pZCl8fCEwPT09ZVtjLmlkXSl9KTskKCIjZmlsdGVyTWFpbkJveCIpLnNob3coKTsKZm9yKHZhciBuIGluIGJveEJsb2Nrcyl7Yj0wO2Zvcih2YXIgdCBpbiBib3hCbG9ja3Nbbl0pYisrOyQoIiNjbGFzcyIrbisiX2NvbnRhaW5lciIpLmF0dHIoIm5iVmlzaWJsZSIsYil9JCgiLmZpbHRlckNoZWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBjPSQodGhpcyk7bmV3Q2Fycy5zZXRGaWx0ZXIoYy5hdHRyKCJpZCIpLGMuaXMoIjpjaGVja2VkIikpO3NldFRpbWVvdXQoeCwxMDApO2lmKGMuaGFzQ2xhc3MoImNhdGVnb3J5Iikpe3ZhciBkPWMudmFsKCk7c2V0VGltZW91dChmdW5jdGlvbigpe0IoZCl9LDEwMCl9fSk7JCgiLnJhZGlvU29ydCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtDKCQodGhpcykudmFsKCkpfSk7JCgiLmZpbHRlclNwYW4iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGM9JCh0aGlzKTtuZXdDYXJzLnNldEZpbHRlcigiZmlsdGVyU3BhbiIsYy5hdHRyKCJyZWwiKSk7Yz0iIyIrYy5hdHRyKCJyZWwiKTskKGMpLnRyaWdnZXIoImNsaWNrIil9KTsKdmFyIHk9IiIsdz0iIixHPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMuY29uc289PWQuY29uc28\/MDpjLmNvbnNvPmQuY29uc28\/MTotMX0sSD1mdW5jdGlvbihjLGQpe3JldHVybiBjLmNvbnNvPT1kLmNvbnNvPzA6Yy5jb25zbz5kLmNvbnNvPy0xOjF9LEk9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5wcmljZT09ZC5wcmljZT8wOmMucHJpY2U+ZC5wcmljZT8xOi0xfSxKPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMucHJpY2U9PWQucHJpY2U\/MDpjLnByaWNlPmQucHJpY2U\/LTE6MX0sSz1mdW5jdGlvbihjLGQpe3JldHVybiBjLmNhck1vZGVsPT1kLmNhck1vZGVsP2MueWVhcj5kLnllYXI\/LTE6Yy55ZWFyPGQueWVhcj8xOjA6Yy5jYXJNb2RlbD5kLmNhck1vZGVsPzE6LTF9LEM9ZnVuY3Rpb24oYyxkKXt3PSJ1bmRlZmluZWQiIT09dHlwZW9mIGQ\/ZDp5PT1jPyJBc2MiPT13PyJEZXNjIjoiQXNjIjoiQXNjIjt5PWM7bmV3Q2Fycy5zZXRGaWx0ZXIoInNvcnRCeSIseSk7bmV3Q2Fycy5zZXRGaWx0ZXIoInNvcnREaXIiLAp3KTtmb3IodmFyIGYgaW4gYm94QmxvY2tzKXtjPTE7ZD1bXTtmb3IodmFyIG0gaW4gYm94QmxvY2tzW2ZdKXt2YXIgbD1ib3hCbG9ja3NbZl1bbV07bC52aXNpYmxlJiYoZFtkLmxlbmd0aF09bCl9c3dpdGNoKHkpe2Nhc2UgInByaWNlIjoiQXNjIj09dz9kLnNvcnQoSSk6ZC5zb3J0KEopO2JyZWFrO2Nhc2UgIm1vZGVsIjpkLnNvcnQoSyk7YnJlYWs7Y2FzZSAiY29uc28iOiJBc2MiPT13P2Quc29ydChHKTpkLnNvcnQoSCl9ZC5zb3J0KGZ1bmN0aW9uKGssdSl7cmV0dXJuIGsuc3BlY2lhbE9yZGVyPT11LnNwZWNpYWxPcmRlcj8wOmsuc3BlY2lhbE9yZGVyPnUuc3BlY2lhbE9yZGVyPzE6LTF9KTtmb3IobD0wO2w8ZC5sZW5ndGg7bCsrKWRbbF0udmlzaWJsZSYmKGRbbF0ucG9zaXRpb24hPWwrMSYmKGRbbF0ucG9zaXRpb249bCsxLEEoZiwiZmJ4XyIrZisiXyIrZFtsXS5pZCwibW92ZSIsbCsxKSksYysrKX19LEw9ZnVuY3Rpb24oKXtmb3IodmFyIGMgaW4gYm94QmxvY2tzKXt2YXIgZD0KMSxmO2ZvcihmIGluIGJveEJsb2Nrc1tjXSl7dmFyIG09Ym94QmxvY2tzW2NdW2ZdO20udmlzaWJsZSYmbS5wb3NpdGlvbiE9ZCYmKG0ucG9zaXRpb249ZCxBKGMsZiwibW92ZSIsZCkpO0EoYyxmLG0udmlzaWJsZT8ic2hvdyI6ImhpZGUiKTttLnZpc2libGUmJmQrK30kKCIjY2xhc3MiK2MrIl9jb250YWluZXIiKS5hdHRyKCJuYlZpc2libGUiLGQtMSl9fSxEPWZ1bmN0aW9uKGMsZCl7Zm9yKHZhciBmPTAsbT0xO208ZDttKyspe3ZhciBsPSQoIiMiK2MrbSk7MDxsLmxlbmd0aCYmbC5wcm9wKCJjaGVja2VkIikmJihmKz1NYXRoLnBvdygyLG0tMSkpfXJldHVybiBmfSx4PWZ1bmN0aW9uKCl7dmFyIGM9RCgiZmlsdGVyRXNzZW5jZUNoZWNrIiw2KSxkPUQoImZpbHRlckRyaXZlVHJhaW5DaGVjayIsNCksZj1bXSxtPVtdOyQoIi5maWx0ZXJDaGVjay5jYXRlZ29yeSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpJiZmLnB1c2goJCh0aGlzKS52YWwoKSl9KTt2YXIgbD0KITE7MDwkKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLmxlbmd0aCYmKCQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIikmJm0ucHVzaCgkKHRoaXMpLnZhbCgpKX0pLGw9ITApO2Zvcih2YXIgayBpbiBib3hCbG9ja3Mpe3ZhciB1PTAscTtmb3IocSBpbiBib3hCbG9ja3Nba10pe3ZhciBNPXBhcnNlSW50KGJveEJsb2Nrc1trXVtxXS5mdWVsLDEwKSx2PSExO3Y9KHY9KHY9KHY9KHY9IShwYXJzZUludChib3hCbG9ja3Nba11bcV0uZHJpdmV0cmFpbiwxMCkmZCkpfHwhKE0mYykpfHwhKCFib3hCbG9ja3Nba11bcV0uY2FyQ2F0ZWdvcnl8fC0xPCQuaW5BcnJheShib3hCbG9ja3Nba11bcV0uY2FyQ2F0ZWdvcnksZikpKXx8ISghMT09PWx8fC0xPCQuaW5BcnJheShib3hCbG9ja3Nba11bcV0uY2FyTWFrZSxtKSYmbCkpfHwhKDA9PWJveEJsb2Nrc1trXVtxXS5wcmljZXx8Ym94QmxvY2tzW2tdW3FdLnByaWNlPD1wLm1heCYmCmJveEJsb2Nrc1trXVtxXS5wcmljZT49cC5taW4pO2JveEJsb2Nrc1trXVtxXS52aXNpYmxlPSF2O2JveEJsb2Nrc1trXVtxXS52aXNpYmxlJiZ1Kyt9JCgiI2NsYXNzIitrKyJfY29udGFpbmVyIikuYXR0cigibmJWaXNpYmxlIix1KTtCKGspfUwoKTsiMSI9PT0kKCJib2R5IikuZGF0YSgiZmlsdGVyczpsb2FkIikmJiQoImJvZHkiKS50cmlnZ2VyKCQuZXh0ZW5kKHt0eXBlOiJmaWx0ZXJzOmNoYW5nZSJ9LGEoKSkpfSxCPWZ1bmN0aW9uKGMpe3ZhciBkPSQoIiNjbGFzcyIrYysiX2NvbnRhaW5lciIpO2lmKDA8ZC5sZW5ndGgpe3ZhciBmPSQoIiNzaG93Q2xhc3NfIitjKTswPT09Zi5sZW5ndGgmJihmPSQoJ2lucHV0W2RhdGEtZXNzZW5jZT0iJytjKyciXScpKTtmPWYuaXMoIjpjaGVja2VkIik7MDxwYXJzZUludChkLmF0dHIoIm5iVmlzaWJsZSIpLDEwKT8oZiYmKGQuYXR0cigic3RhdGUiLCJvcGVuIiksZC5mYWRlSW4oNjAwKSxuZXdDYXJzLmlzTW9iaWxlfHwoZj1NYXRoLmNlaWwocGFyc2VJbnQoZC5hdHRyKCJuYlZpc2libGUiKSwKMTApLzMpLCQoIi5DTEFTU18iK2MpLmFuaW1hdGUoe2hlaWdodDpyLmhlaWdodCpmKyJweCJ9LDYwMCkpLGY9ITApLGZ8fEUoZCkpOkUoZCl9fSxFPWZ1bmN0aW9uKGMpe2MuYXR0cigic3RhdGUiLCJjbG9zZSIpO2MuZmFkZU91dCg2MDApO3JldHVybiEwfSxBPWZ1bmN0aW9uKGMsZCxmLG0sbCl7aWYoImhpZGUiPT1mKSQoIiMiK2QpLmFuaW1hdGUoe29wYWNpdHk6MH0sNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9KSxib3hCbG9ja3NbY11bZF0udmlzaWJsZT0hMSxzaXRlUGFnZS5pc01vYmlsZSYmKG5ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke2R9YCkuaGlkZGVuPSEwKTtlbHNlIGlmKCJzaG93Ij09ZikkKCIjIitkKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikuYW5pbWF0ZSh7b3BhY2l0eToxfSw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoImlzLWJveC12aXNpYmxlIiwKMSl9KSxib3hCbG9ja3NbY11bZF0udmlzaWJsZT0hMCxzaXRlUGFnZS5pc01vYmlsZSYmKG5ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke2R9YCkuaGlkZGVuPSExKTtlbHNlIGlmKCFzaXRlUGFnZS5pc01vYmlsZSl7dmFyIGs9JCgiLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIikud2lkdGgoKTtjPU1hdGguZmxvb3Ioay9yLndpZHRoKTtmPWJveFBvc2l0aW9uc1tkXTtrPU1hdGguZmxvb3Ioay9jKTtjPXtsZWZ0OiIrPSIrKChtLTEpJWMqay0oZi0xKSVjKmspKyJweCIsdG9wOiIrPSIrKE1hdGguZmxvb3IoKG0tMSkvYykqci5oZWlnaHQtTWF0aC5mbG9vcigoZi0xKS9jKSpyLmhlaWdodCkrInB4In07dm9pZCAwPT1sPyQoIiMiK2QpLmFkZENsYXNzKCJNb3ZpbmdCb3giKS5hbmltYXRlKGMsNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygiTW92aW5nQm94Iil9KTokKCIjIitkKS5hZGRDbGFzcygiTW92aW5nQm94IikuYW5pbWF0ZShjLDYwMCxmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoIk1vdmluZ0JveCIpOwpldmFsKGwpfSk7Ym94UG9zaXRpb25zW2RdPW19fSxGPWZ1bmN0aW9uKCl7dmFyIGM9e3dpZHRoOjAsaGVpZ2h0OjB9OyQoJy5kaXZDYXJTaW5nbGVPdXRlckJveFtpcy1ib3gtdmlzaWJsZT0iMSJdOmZpcnN0JykuZWFjaChmdW5jdGlvbigpe2Mud2lkdGg9JCh0aGlzKS5vdXRlcldpZHRoKCEwKTtjLmhlaWdodD0kKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pO3JldHVybiBjfSx6PTk2MDskKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMSk7dmFyIHI9RigpOzA8JCgiQk9EWS5pc0Z1bGxXaWR0aFBhZ2UiKS5sZW5ndGgmJjA8JCgiQk9EWS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIikubGVuZ3RoJiYoMTMwMDx3aW5kb3cuaW5uZXJXaWR0aCYmKHo9MTIwMCksJCh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7dmFyIGM9ejt6PTEzMDA8d2luZG93LmlubmVyV2lkdGg\/MTIwMDo5NjA7YyE9eiYmc2V0VGltZW91dChmdW5jdGlvbigpe04oKX0pfSkpOwp2YXIgTj1mdW5jdGlvbigpe3ZhciBjPXI7cj1GKCk7JCgiLmRpdkNhcnNCb3hXcmFwcGVyIikuZWFjaChmdW5jdGlvbigpe3ZhciBkPTA7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9cGFyc2VJbnQoJCh0aGlzKS5jc3MoInRvcCIpKSxtPXBhcnNlSW50KCQodGhpcykuY3NzKCJsZWZ0IikpOzA9PT1mJiYwPT09bXx8JCh0aGlzKS5jc3Moe3RvcDpyLmhlaWdodCooZi9wYXJzZUludChjLmhlaWdodCkpKyJweCJ9KS5jc3Moe2xlZnQ6ci53aWR0aCoobS9wYXJzZUludChjLndpZHRoKSkrInB4In0pOzE9PT1wYXJzZUludCgkKHRoaXMpLmF0dHIoImlzLWJveC12aXNpYmxlIikpJiZkKyt9KTtkJiYkKHRoaXMpLmNzcyh7aGVpZ2h0Ok1hdGguZmxvb3IoZC8zKSpyLmhlaWdodCsoZCUzP3IuaGVpZ2h0OjApKyJweCJ9KX0pfSxwPXttaW46MCxtYXg6MUU2fTsoZnVuY3Rpb24oKXt2YXIgYz0kKCIjcHJpY2VSYW5nZVNsaWRlckZpbHRlckNvbnRhaW5lciIpOwppZigwPGMubGVuZ3RoKXt2YXIgZD1jLmZpbmQoImRpdi5yYW5nZS1zbGlkZXIiKTtpZigwPGQubGVuZ3RoKXt2YXIgZj1udWxsLG09ZnVuY3Rpb24obCxrKXtwPXttaW46RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihrLnZhbHVlc1swXSwxRTMpLG1heDpEMkNVdGlscy5OdW1iZXIucm91bmRVcChrLnZhbHVlc1sxXSwxRTMpfTtudWxsIT09bCYmbmV3Q2Fycy5zZXRGaWx0ZXIoInNldFNob3dlZFZhbHVlcyIscC5taW4rIjoiK3AubWF4KTtjLmZpbmQoInNwYW4ucHJpY2UtbWluIikudGV4dChwLm1pbi50b0xvY2FsZVN0cmluZygpKTtjLmZpbmQoInNwYW4ucHJpY2UtbWF4IikudGV4dChwLm1heC50b0xvY2FsZVN0cmluZygpKTtjbGVhclRpbWVvdXQoZik7Zj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eCgpfSw1MDApfTtwPXttaW46RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWluIikpLG1heDpEMkNVdGlscy5OdW1iZXIucm91bmREb3duKGQuYXR0cigiYXR0ci1wcmljZS1tYXgiKSl9OwpkLnNsaWRlcih7cmFuZ2U6ITAsbWluOnAubWluLG1heDpwLm1heCxzbGlkZTptLGNoYW5nZTptLGNyZWF0ZTpmdW5jdGlvbihsLGspe2w9bmV3Q2Fycy5nZXRGaWx0ZXIoKTtrPVtwLm1pbixwLm1heF07InN0cmluZyI9PT10eXBlb2YgbC5zZXRTaG93ZWRWYWx1ZXMmJihrPWwuc2V0U2hvd2VkVmFsdWVzLnNwbGl0KCI6IikpO2Quc2xpZGVyKCJ2YWx1ZXMiLGspO20obnVsbCx7dmFsdWVzOmt9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiYm9keSIpLnRyaWdnZXIoJC5leHRlbmQoe3R5cGU6ImZpbHRlcnM6bG9hZCJ9LGEoKSkpfSwzRTMpfX0pfX19KSgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYz0kKCIjc29ydEJ5Iik7dmFyIGQ9JCgiI3NvcnREaXIiKSxmPSJtb2RlbCI7dmFyIG09IkFzYyI7dmFyIGw9e21vZGVsOiJyYWRpb01vZGxlIixwcmljZToicmFkaW9QcmljZSIsY29uc286InJhZGlvQ29uc28ifTtjLmxlbmd0aCYmZC5sZW5ndGgmJihmPWMudmFsKCksbT1kLnZhbCgpKTsKZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbFtlLnNvcnRCeV0\/KGM9ZS5zb3J0QnksbT1lLnNvcnREaXIpOmM9Zjt0cnl7dmFyIGs9JCgiIyIrbFtjXSk7ay5sZW5ndGgmJmsucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKTtDKGMsbSl9Y2F0Y2godSl7fX0sNTAwKTtpZigkKCIjdG9nZ2xlRmlsdGVyQnRuIikubGVuZ3RoKSQoIiN0b2dnbGVGaWx0ZXJCdG4iKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmKCQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmhhc0NsYXNzKCJvcGVuIik\/JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKTokKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5hZGRDbGFzcygib3BlbiIpKX0pO2lmKCQoIiNjbG9zZVNpZGViYXJCdG4iKS5sZW5ndGgpJCgiI2Nsb3NlU2lkZWJhckJ0biIpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKCl7JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikubGVuZ3RoJiYKJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikuaGFzQ2xhc3MoIm9wZW4iKSYmJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKX0pOyQoIi5zZWxlY3RUb2dnbGVXcmFwcGVyQ2FyTWFrZSIpLmxlbmd0aCYmKCQoIiNzZWxlY3RBbGxCdG5DYXJNYWtlIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLnByb3AoImNoZWNrZWQiLCEwKTtzZXRUaW1lb3V0KHgsMTAwKX0pLCQoIiN1bnNlbGVjdEFsbEJ0bkNhck1ha2UiKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikucHJvcCgiY2hlY2tlZCIsITEpO3NldFRpbWVvdXQoeCwxMDApfSkpfX0sc2V0RmlsdGVyOihhLGIpPT57dmFyIGU9e30sZz1fbG9jYWxTdG9yYWdlR2V0KCJuZXdTdnBGaWx0ZXIiKTtudWxsIT1nJiYib2JqZWN0IiE9dHlwZW9mIGcmJihlPUpTT04ucGFyc2UoZykpO2c9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwp2b2lkIDA9PWVbZ10mJihlW2ddPXt9KTtlW2ddW2FdPWI7X2xvY2FsU3RvcmFnZVNldCgibmV3U3ZwRmlsdGVyIixKU09OLnN0cmluZ2lmeShlKSl9LGdldEZpbHRlcjooKT0+e2xldCBhPSExO3ZhciBiPV9sb2NhbFN0b3JhZ2VHZXQoIm5ld1N2cEZpbHRlciIpO2xldCBlPXt9O251bGwhPWImJiJvYmplY3QiIT10eXBlb2YgYiYmKGU9SlNPTi5wYXJzZShiKSk7Yj13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7dm9pZCAwIT1lW2JdJiYoYT1lW2JdKTtyZXR1cm4gYX0sc2V0UHJpY2VUb29sVGlwczooKT0+e25ld0NhcnMuaXNNb2JpbGV8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC50b29sdGlwOyQoYSkuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6YixncmF2aXR5OiJ3ZXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX0pfSxzZXRFdmVudHM6KCk9Pgp7bmV3Q2Fycy5pc01vYmlsZXx8KCQoImltZ1tlcnJvcmltZ10iKS5vbigiZXJyb3IiLGZ1bmN0aW9uKCl7dGhpcy5zcmM9JCh0aGlzKS5hdHRyKCJlcnJvcmltZyIpfSksJCgiaW1nW211bHRpaW1nPXRydWVdIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInNyYyIsJCh0aGlzKS5hdHRyKCJjb2xvcmltZyIpKX0pOyQodGhpcykub24oIm1vdXNlb3V0IixmdW5jdGlvbigpeyQodGhpcykuYXR0cigic3JjIiwkKHRoaXMpLmF0dHIoImJsYWNraW1nIikpfSl9KSl9LGdldEludmVudG9yeURhdGE6KCk9Pntjb25zdCBhPShiLGUpPT57bGV0IGc9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7ZmV0Y2goYC8ke2d9L2FqYXgvZ2V0SW52ZW50b3J5RGF0YWAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwKIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsiLGNoYXJzZXQ6IlVURi04In0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKGIpfSkudGhlbihoPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoJiYhMD09PWgub2smJjIwMD09aC5zdGF0dXMpcmV0dXJuIGguanNvbigpfSkudGhlbihoPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLnN0YXR1cyYmInN1Y2Nlc3MiPT1oLnN0YXR1cyl7bGV0IG49aC5jb3VudDtoPWgudXJsO2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpblN0b2NrTGFiZWwiKS52YWx1ZTswPG4mJihlLnBhcmVudE5vZGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGA8YSBocmVmPSIke2h9Ij4ke259ICR7dH08L2E+YCksZS5wYXJlbnROb2RlLmhpZGRlbj0hMSl9fSkuY2F0Y2goZnVuY3Rpb24oaCl7fSl9O2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtdHlwZT0iaW52ZGF0YSJdJykuZm9yRWFjaChiPT4Ke2Eoe21ha2U6Yi5kYXRhc2V0Lm1ha2UsbW9kZWw6Yi5kYXRhc2V0Lm1vZGVsLHllYXI6Yi5kYXRhc2V0LnllYXIsc3R5bGVpZHM6Yi5kYXRhc2V0LnN0eWxlaWRzLGh5YnJpZDpiLmRhdGFzZXQuaHlicmlkfSxiKX0pfSxnZXRQYXltZW50RGF0YTooKT0+e2NvbnN0IGE9KGIsZSxnKT0+JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e2NvbnN0IGg9eWllbGQoeWllbGQgZmV0Y2goYC8ke2VuY29kZVVSSUNvbXBvbmVudChnKX0vYWpheC9nZXRTaG93cm9vbVBheW1lbnRIdG1sYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IixjaGFyc2V0OiJVVEYtOCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyhiKX0pKS5qc29uKCk7ZS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi1ibG9jayIpLmhpZGRlbj0KITA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLnN0YXR1cyYmInN1Y2Nlc3MiPT1oLnN0YXR1cyl7bGV0IG49aC5jb250ZW50OzA8bi5sZW5ndGgmJihlLnBhcmVudE5vZGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLG4pLGUucGFyZW50Tm9kZS5oaWRkZW49ITEpfX1jYXRjaChoKXt9fSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbZGF0YS10eXBlPSJwYXltZW50ZGF0YSJdJykuZm9yRWFjaChiPT57bGV0IGU9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7YSh7c3R5bGVpZDpiLmRhdGFzZXQuc3R5bGVpZCx0aXRsZTpiLmRhdGFzZXQudGl0bGUsaHJlZjpiLmRhdGFzZXQuaHJlZixsaW5rU3R5bGU6Yi5kYXRhc2V0LmxpbmtzdHlsZSxsaW5rQ2xhc3M6Yi5kYXRhc2V0LmxpbmtjbGFzcyxjb250YWluZXJDbGFzczpiLmRhdGFzZXQuY29udGFpbmVyY2xhc3MscHJvbW9UZXh0OmIuZGF0YXNldC5wcm9tb3RleHQsCmxhbmc6ZX0sYixlKX0pfX07JCh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe25ld0NhcnMucmVzaXplTWFpbldpbmRvdygpfSk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e25ld0NhcnMuZ2V0UGF5bWVudERhdGEoKTtuZXdDYXJzLnNldFBheW1lbnRUb29sdGlwcygpO25ld0NhcnMuc2V0RXZlbnRzKCk7bmV3Q2Fycy5uZXdDYXJzRmlsdGVyKCk7bmV3Q2Fycy5zZXRQcmljZVRvb2xUaXBzKCk7bmV3Q2Fycy5nZXRJbnZlbnRvcnlEYXRhKCl9KTsKLyoqIC9qcy9wb3B1cC5qcyAqKi8KdmFyIF9fX2QyY19wb3B1cGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6MjciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3BvcHVwanNfY19vbj0iMjAyNC0wMy0xNSAxMDozMDoxMCI7InVzZSBzdHJpY3QiO3ZhciBhY3RpdmF0ZWRQb3B1cERpdklEPSIiLG1haW5Qb3B1cERpdklEPSIiLHBvcHVwT25BZnRlclN1Ym1pdENsb3NlPSExLGlzUG9wdXBJbml0aWFsaXplZD0hMTsKZnVuY3Rpb24gc2hvd1BvcHVwV2lkZ2V0KGEsYj0hMCl7dmFyIGM9ITE9PT1iPyExOiEwO2lmKGlzU21zVGV4dFVzRm9ybSgpJiZiKXJldHVybiBzaG93U21zVGV4dFVzRm9ybShjKSwhMTtpZighMT09PWlzUG9wdXBJbml0aWFsaXplZClyZXR1cm4hMTthPWE\/YTp7fTtzZXR0aW5ncz17c2hvd01haW5Qb3B1cDohMSxkb05vdFJlZGlyZWN0OiExLGV2ZW50VHlwZToiY2xpY2siLGRlbGF5OiExfTskLmV4dGVuZChzZXR0aW5ncyxhKTthPXNldHRpbmdzLmRvTm90UmVkaXJlY3Q7Yj1zZXR0aW5ncy5ldmVudFR5cGU7Yz1zZXR0aW5ncy5kZWxheTt2YXIgZD0wPGFjdGl2YXRlZFBvcHVwRGl2SUQubGVuZ3RoP2FjdGl2YXRlZFBvcHVwRGl2SUQ6ITE7ITA9PT1zZXR0aW5ncy5zaG93TWFpblBvcHVwJiYwPG1haW5Qb3B1cERpdklELmxlbmd0aCYmKGQ9bWFpblBvcHVwRGl2SUQpO2lmKGQmJjA8ZC5sZW5ndGgpJCgiIyIrZCkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKGIpLm9wZW4oYyk7ZWxzZSBpZigiZnVuY3Rpb24iPT09CnR5cGVvZiBzaG93UG9wdXBXaWRnZXRPTEQpc2hvd1BvcHVwV2lkZ2V0T0xEKCExKTtlbHNlIGlmKCExPT09YSkwPCQoIiNwcm9tb1NlY3Rpb25uYWJsZWQiKS5sZW5ndGgmJiIwIiE9JCgiI3Byb21vU2VjdGlvbm5hYmxlZCIpLnZhbCgpP3dpbmRvdy5sb2NhdGlvbi5ocmVmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyIvb3VyLXByb21vdGlvbnMuaHRtbCI6Ii9wcm9tb3Rpb25zLmh0bWwiOndpbmRvdy5sb2NhdGlvbi5ocmVmPSIvIjtlbHNlIHJldHVybiExfWZ1bmN0aW9uIHBvcHVwUG9zdE1lc3NhZ2VPbkF1dG9hdWJhaW5lKCl7c2V0VGltZW91dChmdW5jdGlvbigpeyQucG9zdE1lc3NhZ2UoImNsb3NlUG9wdXAiLCIqIixwYXJlbnQpfSwxRTMpfQpmdW5jdGlvbiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZShhLGIsYyxkLGUsZixnKXtpc1BvcHVwSW5pdGlhbGl6ZWQ9ITA7YyYmKG1haW5Qb3B1cERpdklEPWYrZCk7cmV0dXJuIGI9PWEmJmN8fCJyZXNldCI9PWImJmM\/KGFjdGl2YXRlZFBvcHVwRGl2SUQ9ZitkLCJ1c2VkY2Fycy5odG1sIiE9ZXx8Zz8ibmV3Y2Fycy5odG1sIiE9ZXx8Zz8hMDooY29uc29sZS5sb2coInBvcHVwLmpzIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIC0gbmV3Y2FycyByZXR1cm5zIGZhbHNlLiBQb3B1cCBtYXkgYmUgY2FuY2VsbGVkLiIpLCExKToodGhpcy5jb25zb2xlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBjb25zb2xlLmxvZyYmY29uc29sZS5sb2coInBvcHVwLmpzIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIC0gdXNlZGNhcnMgIHJldHVybnMgZmFsc2UuIFBvcHVwIG1heSBiZSBjYW5jZWxsZWQuIiksITEpKTohMX0KZnVuY3Rpb24gcG9wdXBjbG9zZVBERihhLGIpeyQoIiNwb3B1cGRpdnBkZiIrYSkubGVuZ3RoJiYkKCIjcG9wdXBkaXZwZGYiK2EpLmNzcygiZGlzcGxheSIsIm5vbmUiKTskKCIjcG9wdXBkaWZwZGZtb2RhbCIpLmxlbmd0aCYmJCgiI3BvcHVwZGlmcGRmbW9kYWwiKS5yZW1vdmUoKTskKCIjcG9wdXBkaXZwZGZpZnJhbWUiKS5sZW5ndGgmJiQoIiNwb3B1cGRpdnBkZmlmcmFtZSIpLnJlbW92ZSgpO2ImJnBvcHVwUG9zdE1lc3NhZ2VPbkF1dG9hdWJhaW5lKCl9ZnVuY3Rpb24gcHJpbnRQREZJRnJhbWUoKXt3aW5kb3cuZnJhbWVzLnBvcHVwZGl2cGRmaWZyYW1lLnByaW50TWUoKX1mdW5jdGlvbiBwb3B1cFRyaW0oYSl7cmV0dXJuIGEucmVwbGFjZSgvXlxzK3xccyskL2dtLCIiKX0KZnVuY3Rpb24gc2hvd1BvcHVwV2lkZ2V0QWRkVmVoaWNsZShhKXskKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnZhbChhKX0pO3Nob3dQb3B1cFdpZGdldCgpfWZ1bmN0aW9uIHNob3dTcGVjaWFsU2NoZWR1bGVPbmxvYWQoKXt2YXIgYT0kKCIjc3BlY2lhbFNjaGVkdWxlIik7MDxhLmxlbmd0aCYmYS5wb3B1cGl6ZSh7c2hvd29ubG9hZDohMCxjb29raWVOYW1lOiJzcFNjaGVkdWxlRGlzcGxheWVkIixjb29raWVDcmVhdGU6Im9uT3BlbiIsY2xvc2VCdXR0b246ITB9KX1mdW5jdGlvbiBzaG93U3BlY2lhbFNjaGVkdWxlKCl7JCgiI3NwZWNpYWxTY2hlZHVsZSIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9ZnVuY3Rpb24gc2hvd1RyYWRlQm9vc3RQb3B1cCgpeyQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfQpmdW5jdGlvbiBpc1Ntc1RleHRVc0Zvcm0oKXtsZXQgYT1bIm5ld2NhcmRldGFpbC5odG1sIiwibmV3Y2Fycy5odG1sIl0sYj1bImNhcmRldGFpbC5odG1sIiwidXNlZGNhcnMuaHRtbCJdO3JldHVybiIxIj09JCgiI0Rpc2NvdW50UG9wdXBOZXdSZWJhdGVTaG93VGV4dFVzIikudmFsKCkmJmEuaW5jbHVkZXMoJCgiI1BBR0VJRCIpLnZhbCgpKXx8IjEiPT0kKCIjRGlzY291bnRQb3B1cFVzZWRSZWJhdGVTaG93VGV4dFVzIikudmFsKCkmJmIuaW5jbHVkZXMoJCgiI1BBR0VJRCIpLnZhbCgpKT8hMDohMX1mdW5jdGlvbiBzaG93U21zVGV4dFVzRm9ybShhPSEwKXskKCIjaXNNb2JpbGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiExIT09YT9kZWFsZXJMaW5lU21zKCk6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NsaWRlaXQgI29wZW4taXRlbSIpLmNoZWNrZWQ9ITB9OwovKiogL2pzL21vdG9pbnNpZ2h0U2hvcFBvcHVwLmpzICoqLwp2YXIgX19fZDJjX21vdG9pbnNpZ2h0U2hvcFBvcHVwanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDozOSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbW90b2luc2lnaHRTaG9wUG9wdXBqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM3OjUwIjsidXNlIHN0cmljdCI7X19fZDJjX21vdG9pbnNpZ2h0U2hvcFBvcHVwanNfY19vbj0iMjAyMy0wMS0xMiAxMTozNjoyOSI7InVzZSBzdHJpY3QiO19fX2QyY19tb3RvaW5zaWdodFNob3BQb3B1cGpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDY6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbW90b2luc2lnaHRTaG9wUG9wdXBqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQ0OjI3IjsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbW90b2luc2lnaHRTaG9wSW5pdCgpe30KZnVuY3Rpb24gbW90b2luc2lnaHRTaG9wT3Blbigpe2lmKCQoIiNtb3RvY29tbWVyY2UtdmVoaWNsZS1saW5rIikubGVuZ3RoKXt2YXIgYT0iIjtzd2l0Y2goITApe2Nhc2UgISEkKCIjbW90b2NvbW1lcmNlLXZlaGljbGUtbGluayIpLmF0dHIoImhyZWYiKTphPSQoIiNtb3RvY29tbWVyY2UtdmVoaWNsZS1saW5rIikuYXR0cigiaHJlZiIpO2JyZWFrO2Nhc2UgISEkKCIuanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5hdHRyKCJkYXRhLW1vdG9pbnNpZ2h0c2hvcGlmcmFtZXVybCIpOmE9JCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikuYXR0cigiZGF0YS1tb3RvaW5zaWdodHNob3BpZnJhbWV1cmwiKTticmVhaztjYXNlICEhJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIGEiKS5hdHRyKCJkYXRhLW1vdG9pbnNpZ2h0c2hvcGlmcmFtZXVybCIpOmE9JCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIGEiKS5hdHRyKCJkYXRhLW1vdG9pbnNpZ2h0c2hvcGlmcmFtZXVybCIpOwpicmVhaztjYXNlICQoIiNtb3RvaW5zaWdodHNob3BzY3JpcHR1cmwiKSYmMDwkKCIjbW90b2luc2lnaHRzaG9wc2NyaXB0dXJsIikubGVuZ3RoOmE9JCgiI21vdG9pbnNpZ2h0c2hvcHNjcmlwdHVybCIpLnZhbCgpLnJlcGxhY2UoImludGVncmF0aW9uL2ludGVncmF0aW9uLmpzIiwic2VhcmNoLz9jb25kaXRpb249VXNlZCIpLCIxIj09KCQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKXx8MCkmJihhPSQoIiNtb3RvaW5zaWdodHNob3BzY3JpcHR1cmwiKS52YWwoKS5yZXBsYWNlKCJpbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5qcyIsInNlYXJjaC8iKSl9JCgiI21vdG9pbnNpZ2h0c2hvcGlmcmFtZSIpLnJlbW92ZSgpOyIiIT1hJiYwPT0kKCIjbW90b2luc2lnaHRzaG9waWZyYW1lIikubGVuZ3RoJiYkKCIjbW90b2luc2lnaHRzaG9waWZyYW1lY29udGFpbmVyIikuYXBwZW5kKCc8aWZyYW1lIGlkPSJtb3RvaW5zaWdodHNob3BpZnJhbWUiIHNyYz0iJythKyciIGFsbG93dHJhbnNwYXJlbmN5PSJ0cnVlIiBzdHlsZT0idG9wOjBweDtsZWZ0OjBweDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3otaW5kZXg6MTAwMTsiPjwvaWZyYW1lPicpfX0KZnVuY3Rpb24gc2V0Q3VycmVudE1vdG9jb21tZXJjZUlmcmFtZVVybChhKXskKCIjbW90b2NvbW1lcmNlLXZlaGljbGUtbGluayIpLmF0dHIoImhyZWYiLGEpfTsKLyoqIC9qcy92YW5pbGxhanMvaW1hc2subWluLmpzICoqLwohZnVuY3Rpb24odCxlKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP2UoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sZSk6ZSgodD0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/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+Yi50b1VwcGVyQ2FzZSgpfSl9fTsKLyoqIC9qcy9nZW5lcmljTWFpbC5qcyAqKi8KdmFyIF9fX2QyY19nZW5lcmljTWFpbGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MTUiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2dlbmVyaWNNYWlsanNfY19vbj0iMjAyNC0xMS0yOCAxMDozMDoxMSI7InVzZSBzdHJpY3QiOwpHZW5lcmljTWFpbD1mdW5jdGlvbih2KXtmdW5jdGlvbiBtKGMpe2M9Yy50b1N0cmluZygpO3JldHVybiBjLnJlcGxhY2UoLzxcLz9bXj5dKz4vZ2ksIiIpfXZhciBiPXRoaXM7Yi5tYWlsSUQ9djtiLmVtYWlsU2VudD1mdW5jdGlvbihjKXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKGIubWFpbElEKTtjPygidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxTZW50SGFuZGxlciYmKG1haWxTZW50SGFuZGxlci50aW1lb3V0Q2FsbGJhY2s9Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyLG1haWxTZW50SGFuZGxlci5zaG93U3VjY2VzcygpKSxiLmNsZWFyRm9ybSgpKToidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxTZW50SGFuZGxlciYmKG1haWxTZW50SGFuZGxlci50aW1lb3V0Q2FsbGJhY2s9Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyLG1haWxTZW50SGFuZGxlci5zaG93RmFpbCgpKX07Yi5jbGVhckZvcm09ZnVuY3Rpb24oKXt2YXIgYz1iLmpxU2NvcGU7aWYoInVuZGVmaW5lZCI9PT0KdHlwZW9mIGN8fCIiPT1jKWlmKCQoIi5Jbm5lckJveExheWVyIikubGVuZ3RoKWM9Ii5Jbm5lckJveExheWVyIjtlbHNlIHJldHVybjskKCIuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgaW5wdXQsIC5qcVRyYW5zZm9ybVRleHRhcmVhIHRleHRhcmVhIixjKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoIiIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7JCgiI2Zvb3RlckRpdiAjbGVhZFNlbnQiKS5yZW1vdmUoKX07Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTtiLmJhbmRwTGluaz1mdW5jdGlvbihjKXtyZXR1cm4gZW1haWxIYW5kbGVyLmJhbmRwTGluayhjKX07Yi5zYXZlPWZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKTtpZighYi5fdmFsaWRhdGVGaWVsZHMoKSlyZXR1cm4gJCgiaHRtbCwgYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKCIudmFsaWRpdHktZXJyb25lb3VzOmZpcnN0Iikub2Zmc2V0KCkudG9wLQoxMDB9LDJFMyksITE7Yi5wcmVwYXJlKCk7ZW1haWxIYW5kbGVyLnNlbmRNYWlsKCl9O2IucHJlcGFyZT1mdW5jdGlvbigpe3ZhciBjPWZ1bmN0aW9uKGgpe3g9KGgrIiIpLnNwbGl0KCIuIik7eDE9eFswXTt4Mj0xPHgubGVuZ3RoPyIuIit4WzFdOiIiO2ZvcihoPS8oXGQrKShcZHszfSkvO2gudGVzdCh4MSk7KXgxPXgxLnJlcGxhY2UoaCwiJDEsJDIiKTtyZXR1cm4geDEreDJ9LGc9Yi5qcVNjb3BlP2IuanFTY29wZToiLklubmVyQm94TGF5ZXIiLGs9IiIsYT0iIixlPSIiLGQ9IiIsZj0iIjtrPTA8JCgiI2VtYWlsU3ViamVjdERlZl8iK2IubWFpbElELGcpLmxlbmd0aD8kKCIjZW1haWxTdWJqZWN0RGVmXyIrYi5tYWlsSUQsZykudGV4dCgpOjA8JCgiI2VtYWlsU3ViamVjdERlZiIsZykubGVuZ3RoPyQoIiNlbWFpbFN1YmplY3REZWYiLGcpLnRleHQoKTokKCIjZW1haWxTdWJqZWN0RGVmIikudGV4dCgpO2E9MDwkKCIjZW1haWxCb2R5RGVmXyIrYi5tYWlsSUQsZykubGVuZ3RoPyQoIiNlbWFpbEJvZHlEZWZfIisKYi5tYWlsSUQsZykuaHRtbCgpOiQoIiNlbWFpbEJvZHlEZWYiLGcpLmxlbmd0aD8kKCIjZW1haWxCb2R5RGVmIixnKS5odG1sKCk6JCgiI2VtYWlsQm9keURlZiIpLmh0bWwoKTt2YXIgbD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0SXNEZW1vIikuYXR0cigiaWQiKSYmIjEiPT0kKCIjdGV4dElzRGVtbyIpLnZhbCgpPyEwOiExOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFF1aWNrRW1haWwmJm51bGwhPW1haWxRdWlja0VtYWlsJiYic3RyaW5nIj09PXR5cGVvZiBtYWlsUXVpY2tFbWFpbC5tZXNzYWdlJiYoZW1haWxIYW5kbGVyLmNvbW1lbnRzPW1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO3N3aXRjaChiLm1haWxJRCl7Y2FzZSAiUXVpY2tFbWFpbCI6Y2FzZSAiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6Y2FzZSAibWVudUNvbnRhY3RVcyI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJxdWlja0VtYWlsRm9ybSI7bWFpbFF1aWNrRW1haWwuYXNzaWduVmFsdWVzKCk7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csCmQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxRdWlja0VtYWlsLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsUXVpY2tFbWFpbC5lbWFpbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csbWFpbFF1aWNrRW1haWwucGhvbmUpLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csbWFpbFF1aWNrRW1haWwubWVzc2FnZSk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyxtYWlsUXVpY2tFbWFpbC5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLG1haWxRdWlja0VtYWlsLm1vZGVsKTthPWEucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLG1haWxRdWlja0VtYWlsLnllYXIpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLG1haWxRdWlja0VtYWlsLnN0b2NrTnVtYmVyKTthPWEucmVwbGFjZSgve1wkREVQQVJUTUVOVDJ9L2csbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCk7YT1hLnJlcGxhY2UoL0NpdHk6L2csIiIpOyJ1bmRlZmluZWQiIT0KdHlwZW9mIG1haWxRdWlja0VtYWlsLnJvYWRUZXN0JiZudWxsIT1tYWlsUXVpY2tFbWFpbC5yb2FkVGVzdCYmKGE9YS5yZXBsYWNlKC97XCRFTUFJTFJPQURURVNUfS9nLG1haWxRdWlja0VtYWlsLnJvYWRUZXN0KS5yZXBsYWNlKC97XCRFTUFJTENBUkR9L2csbWFpbFF1aWNrRW1haWwuZ2lmdENhcmQpKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxRdWlja0VtYWlsLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxRdWlja0VtYWlsLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUXVpY2tFbWFpbC5waG9uZTtlPW1haWxRdWlja0VtYWlsLm1lc3NhZ2U7ZW1haWxIYW5kbGVyLnRyaW09JCgiI2V4cHJlc3NjYXJ0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjZXhwcmVzc2NhcnZpbiIpLnZhbCgpO2VtYWlsSGFuZGxlci5wcmljZT0kKCIjZXhwcmVzc2NhcnByaWNlIikudmFsKCk7ZW1haWxIYW5kbGVyLm1ha2U9JCgiI2V4cHJlc3NjYXJtYWtlIikudmFsKCk7CmVtYWlsSGFuZGxlci5tb2RlbD0kKCIjZXhwcmVzc2Nhcm1vZGVsIikudmFsKCk7ZW1haWxIYW5kbGVyLnllYXI9JCgiI2V4cHJlc3NjYXJ5ZWFyIikudmFsKCk7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPW1haWxRdWlja0VtYWlsLnN0b2NrTnVtYmVyOyJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2V4cHJlc3NjYXJpZCIpLmF0dHIoImlkIik\/ZW1haWxIYW5kbGVyLmNhcmlkPSIiOmVtYWlsSGFuZGxlci5jYXJpZD0kKCIjZXhwcmVzc2NhcmlkIikudmFsKCk7JCgiaW5wdXQubGFiZWxlbWFpbCIpLnZhbCgiRGVtYW5kZXMtRXhwcmVzcyIpOyQoImlucHV0LmlzZXhwcmVzcyIpLnZhbCgiMSIpOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRW5naW5lJiYoJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsUXVpY2tFbWFpbC5tYWtlKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKG1haWxRdWlja0VtYWlsLm1vZGVsKSwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwobWFpbFF1aWNrRW1haWwueWVhcikpOwoidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzY2FyaWQiKS5hdHRyKCJpZCIpPzA8JCgiI2V4cHJlc3NjYXJpZCIpLnZhbCgpLmxlbmd0aD9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFF1aWNrRW1haWwubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iOmVtYWlsSGFuZGxlci5jb25kaXRpb249IlVua25vd24iOyIiIT09bWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCYmKGVtYWlsSGFuZGxlci5kZXBhcnRtZW50PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpO2Q9bWFpbFF1aWNrRW1haWwuZ2V0U2VuZFRvKCk7Zj1tYWlsUXVpY2tFbWFpbC5nZXRTZW5kVG9BZGYoKTticmVhaztjYXNlICJSZWJhdGVDb3Vwb25Qcm9tbyI6bWFpbFF1aWNrRW1haWwuYXNzaWduVmFsdWVzKCk7ZT1tYWlsUXVpY2tFbWFpbC5tZXNzYWdlO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxRdWlja0VtYWlsLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZywKbWFpbFF1aWNrRW1haWwuZW1haWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxRdWlja0VtYWlsLnBob25lKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLG1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO2E9YS5yZXBsYWNlKC97XCRDT1VQT05NQUtFfS9nLCQoIiNjb3Vwb25tYWtlIikudmFsKCkpLnJlcGxhY2UoL3tcJENPVVBPTk1PREVMfS9nLCQoIiNjb3Vwb25tb2RlbCIpLnZhbCgpKTthPWEucmVwbGFjZSgve1wkQ09VUE9OWUVBUn0vZywkKCIjY291cG9ueWVhciIpLnZhbCgpKS5yZXBsYWNlKC97XCRDT1VQT05TVE9DS05VTUJFUn0vZywkKCIjY291cG9uc3RvY2tudW1iZXIiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJENPVVBPTlZBTFVFfS9nLCQoIiNjb3Vwb25WYWx1ZSIpLnZhbCgpKyIkIikucmVwbGFjZSgve1wkUFJJQ0V9L2csJCgiI3ZlaGljbGVPcmlnUHJpY2UiKS52YWwoKSsiJCIpO2VtYWlsSGFuZGxlci5tYWtlPSQoIiNjb3Vwb25tYWtlIikudmFsKCk7CmVtYWlsSGFuZGxlci5tb2RlbD0kKCIjY291cG9ubW9kZWwiKS52YWwoKTtlbWFpbEhhbmRsZXIueWVhcj0kKCIjY291cG9ueWVhciIpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFF1aWNrRW1haWwuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFF1aWNrRW1haWwubmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxRdWlja0VtYWlsLnBob25lO2VtYWlsSGFuZGxlci50cmltPSQoIiNjb3Vwb252ZWhpY2xldHJpbSIpLnZhbCgpO2VtYWlsSGFuZGxlci52aW49JCgiI2NvdXBvbnZlaGljbGV2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI3ZlaGljbGVPcmlnUHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9JCgiI2NvdXBvbnN0b2NrbnVtYmVyIikudmFsKCk7ZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNjb3Vwb252ZWhpY2xlaWQiKS52YWwoKTskKCJpbnB1dC5sYWJlbGVtYWlsIikudmFsKCJSZWJhdGVDb3Vwb25Qcm9tbyIpOwoidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaEVuZ2luZSYmKCQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoJCgiI2NvdXBvbm1ha2UiKS52YWwoKSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgkKCIjY291cG9ubW9kZWwiKS52YWwoKSksJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCQoIiNjb3Vwb255ZWFyIikudmFsKCkpKTtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjtiLmVtYWlsU2VudD1mdW5jdGlvbihoKXskKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIikudHJpZ2dlcigiY2xpY2siKX07YnJlYWs7Y2FzZSAiQ2FycHJvb2ZNYWlsIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9ImNhcnByb29mTWFpbkRpdiI7az0kKCIjZW1haWxTdWJqZWN0RGVmMiIpLnRleHQoKTthPSQoIiNlbWFpbEJvZHlEZWYyIikuaHRtbCgpOyQoImlucHV0LmxhYmVsZW1haWwiKS52YWwoIkRlbWFuZGVzLUNhclByb29mIik7JCgiaW5wdXQuaXNleHByZXNzIikudmFsKCIwIik7JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChjYXJwcm9vZkhhbmRsZXIubWFrZSk7CiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLm1vZGVsKTskKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLnllYXIpO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKGNhcnByb29mSGFuZGxlci5uYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csY2FycHJvb2ZIYW5kbGVyLmVtYWlsKTthPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLGNhcnByb29mSGFuZGxlci5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLGNhcnByb29mSGFuZGxlci5tb2RlbCkucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLGNhcnByb29mSGFuZGxlci55ZWFyKTthPWEucmVwbGFjZSgve1wkQ09MT1J9L2csY2FycHJvb2ZIYW5kbGVyLmNvbG9yKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxjYXJwcm9vZkhhbmRsZXIuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csCmNhcnByb29mSGFuZGxlci5waG9uZSk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1jYXJwcm9vZkhhbmRsZXIuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Y2FycHJvb2ZIYW5kbGVyLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1jYXJwcm9vZkhhbmRsZXIucGhvbmU7ZW1haWxIYW5kbGVyLm1ha2U9Y2FycHJvb2ZIYW5kbGVyLm1ha2U7ZW1haWxIYW5kbGVyLm1vZGVsPWNhcnByb29mSGFuZGxlci5tb2RlbDtlbWFpbEhhbmRsZXIueWVhcj1jYXJwcm9vZkhhbmRsZXIueWVhcjtlbWFpbEhhbmRsZXIudHJpbT0kKCIjY2FycHJvb2ZjYXJ0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjY2FycHJvb2ZjYXJ2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI2NhcnByb29mY2FycHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9Y2FycHJvb2ZIYW5kbGVyLnN0b2NrTnVtYmVyO2VtYWlsSGFuZGxlci5jYXJpZD0kKCIjY2FycHJvb2ZjYXJpZCIpLnZhbCgpOwpkPWNhcnByb29mSGFuZGxlci5zZW5kVG8ubGVuZ3RoJiYiIiE9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUbz9jYXJwcm9vZkhhbmRsZXIuc2VuZFRvOiQoIiN0ZXh0U2VuZFRvRW1haWwiKS5sZW5ndGg\/JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpOiIiO2Y9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUb0FkZi5sZW5ndGgmJiIiIT1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvQWRmP2NhcnByb29mSGFuZGxlci5zZW5kVG9BZGY6JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLmxlbmd0aD8kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCk6IiI7ZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9Y2FycHJvb2ZIYW5kbGVyLmRlYWxlck5hbWU7YnJlYWs7Y2FzZSAiQ3VzdG9tZXJSYXRpbmciOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0iQ3VzdG9tZXJSYXRpbmciO21haWxSYXRpbmcuYXNzaWduVmFsdWVzKCk7YT1hLnJlcGxhY2UoL3tcJFJBVElOR01FU1NBR0V9L2csbWFpbFJhdGluZy5tZXNzYWdlKS5yZXBsYWNlKC97XCRMTkFNRX0vZywKZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFJhdGluZy51c2VyTGFzdE5hbWUpKS5yZXBsYWNlKC97XCRGTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsUmF0aW5nLnVzZXJFbWFpbCkucmVwbGFjZSgve1wkUEhPTkV9L2csbWFpbFJhdGluZy51c2VyUGhvbmUpLnJlcGxhY2UoL3tcJFJBVElOR1NUQVJTfS9nLG1haWxSYXRpbmcucmF0aW5nKS5yZXBsYWNlKC97XCRDTElFTlROQU1FfS9nLG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSsiICIrbWFpbFJhdGluZy51c2VyTGFzdE5hbWUpO2s9ay5yZXBsYWNlKC97XCRDTElFTlROQU1FfS9nLG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSsiICIrbWFpbFJhdGluZy51c2VyTGFzdE5hbWUpO2VtYWlsSGFuZGxlci52aW49IiI7ZW1haWxIYW5kbGVyLnByaWNlPTA7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPQoiIjtlbWFpbEhhbmRsZXIuY2FyaWQ9IiI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVW5rbm93biI7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFJhdGluZy51c2VyRmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9bWFpbFJhdGluZy51c2VyTGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUmF0aW5nLnVzZXJQaG9uZTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxSYXRpbmcudXNlckVtYWlsO2Q9bWFpbFJhdGluZy5zZW5kVG87Zj0iICAiO2JyZWFrO2Nhc2UgImhlYWRlclNlcnZpY2UiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0ibWVudVNlcnZpY2UiO3NlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2Uuc2V0RW1haWxTZW50Q2FsbGJhY2soKTthPXNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2Uuc2V0RW1haWxIYW5kbGVyVmFsdWVzQW5kQm9keShhKTtkPXNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2UuZ2V0U2VuZFRvKCk7ays9IiBFeHByZXNzIjsKYnJlYWs7Y2FzZSAibWVudVNlcnZpY2UiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0ibWVudVNlcnZpY2UiO3NlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLnNldEVtYWlsU2VudENhbGxiYWNrKCk7YT1zZXJ2aWNlRm9ybV9tZW51U2VydmljZS5zZXRFbWFpbEhhbmRsZXJWYWx1ZXNBbmRCb2R5KGEpO2Q9c2VydmljZUZvcm1fbWVudVNlcnZpY2UuZ2V0U2VuZFRvKCk7ays9IiBFeHByZXNzIjticmVhaztkZWZhdWx0OiIiPT1kJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2VuZFRvRW1haWwiKS5hdHRyKCJpZCIpJiYoZD0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCkpOyIiPT1mJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS5hdHRyKCJpZCIpJiYzPCQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKS5sZW5ndGgmJihmPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVmVoaWNsZVdpZGdldCYmCihtYWlsVmVoaWNsZVdpZGdldC5hc3NpZ25WYWx1ZXMoKSxhPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csbWFpbFZlaGljbGVXaWRnZXQubW9kZWwpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZyxtYWlsVmVoaWNsZVdpZGdldC55ZWFyKS5yZXBsYWNlKC97XCRDT0xPUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5jb2xvcikucmVwbGFjZSgve1wkRU1BSUxTVE9DS05VTUJFUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csbWFpbFZlaGljbGVXaWRnZXQuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJEZST01ZRUFSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LmZyb21ZZWFyKS5yZXBsYWNlKC97XCRUT1lFQVJ9L2csbWFpbFZlaGljbGVXaWRnZXQudG9ZZWFyKS5yZXBsYWNlKC97XCRJTlRFTlRJT059L2csbWFpbFZlaGljbGVXaWRnZXQuaW50ZW50aW9uKS5yZXBsYWNlKC97XCRQTEFURVN9L2csCm1haWxWZWhpY2xlV2lkZ2V0LnBsYXRlcykucmVwbGFjZSgve1wkVklOfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnZpbiksbWFpbFZlaGljbGVXaWRnZXQub2RvbW90ZXImJihhPWEucmVwbGFjZSgve1wkS019L2csYyhtYWlsVmVoaWNsZVdpZGdldC5vZG9tb3RlcikpKSwkKCJpbnB1dC5icmFuZGVtYWlsIikubGVuZ3RoJiYkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS5sZW5ndGgmJiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXQubW9kZWwpLCQoImlucHV0LnllYXJlbWFpbCIpLmxlbmd0aCYmJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0LnllYXIpLGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPW1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsLGVtYWlsSGFuZGxlci55ZWFyPW1haWxWZWhpY2xlV2lkZ2V0LnllYXIsCmVtYWlsSGFuZGxlci50cmltPSQoIiNjYXJ0cmltIikudmFsKCksZW1haWxIYW5kbGVyLnZpbj1tYWlsVmVoaWNsZVdpZGdldC52aW4sZW1haWxIYW5kbGVyLnByaWNlPSQoIiNjYXJwcmljZSIpLnZhbCgpLGVtYWlsSGFuZGxlci5zdG9ja051bWJlcj1tYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcixlbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2NhcmlkIikudmFsKCksMDwkKCIjY2FyaWQiKS52YWwoKS5sZW5ndGh8fGVtYWlsSGFuZGxlci55ZWFyPChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKT9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFZlaGljbGVXaWRnZXQubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iKTthPWEucmVwbGFjZSgve1wkUExBVEVTfS9nLCIiKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxWZWhpY2xlV2lkZ2V0RXgmJiQoIiN2ZWhpY2xlU2VsZWN0Rm9ybUV4IikubGVuZ3RoJiYobWFpbFZlaGljbGVXaWRnZXRFeC5hc3NpZ25WYWx1ZXMoKSwKYT1hLnJlcGxhY2UoL3tcJE1BS0VFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UpLnJlcGxhY2UoL3tcJE1PREVMRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCkucmVwbGFjZSgve1wkWUVBUkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgueWVhcikucmVwbGFjZSgve1wkQ09MT1JFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LmNvbG9yKS5yZXBsYWNlKC97XCRUUklNRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC50cmltKS5yZXBsYWNlKC97XCRUUkFOU01JU1NJT059L2csbWFpbFZlaGljbGVXaWRnZXRFeC50cmFuc21pc3Npb24pLnJlcGxhY2UoL3tcJEtNfS9nLGMobWFpbFZlaGljbGVXaWRnZXRFeC5vZG9tb3RlcikpLnJlcGxhY2UoL3tcJFZJTkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgudmluKS5yZXBsYWNlKC97XCREUklWRVRSQUlOfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguZHJpdmV0cmFpbikucmVwbGFjZSgve1wkR0FTfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguZnVlbCksCiQoImlucHV0LmJyYW5kZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLmxlbmd0aCYmJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbC5sZW5ndGgmJiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCksJCgiaW5wdXQueWVhcmVtYWlsIikubGVuZ3RoJiYwPG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZS5sZW5ndGgmJiQoImlucHV0LnllYXJlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4LnllYXIpLGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldEV4LnllYXIsZW1haWxIYW5kbGVyLnRyaW09bWFpbFZlaGljbGVXaWRnZXRFeC50cmltLAoidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlci5pc1RyYWRlSW5CYXJ8fCJQcmljZVZlaGljbGUiIT1iLm1haWxJRCYmIlByaWNlVmVoaWNsZU5ldyIhPWIubWFpbElEJiYiRXN0aGV0aWNSZXF1ZXN0IiE9Yi5tYWlsSUR8fChlbWFpbEhhbmRsZXIubWFrZT1tYWlsVmVoaWNsZVdpZGdldC5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1tYWlsVmVoaWNsZVdpZGdldC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldC55ZWFyLGVtYWlsSGFuZGxlci50cmltPW1haWxWZWhpY2xlV2lkZ2V0LnRyaW0sIlByaWNlVmVoaWNsZSIhPWIubWFpbElEJiYiUHJpY2VWZWhpY2xlTmV3IiE9Yi5tYWlsSUQpfHwoZW1haWxIYW5kbGVyLmNhcjJfbWFrZT1tYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UsZW1haWxIYW5kbGVyLmNhcjJfbW9kZWw9bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCxlbWFpbEhhbmRsZXIuY2FyMl90cmltPW1haWxWZWhpY2xlV2lkZ2V0RXgudHJpbSwKZW1haWxIYW5kbGVyLmNhcjJfeWVhcj1tYWlsVmVoaWNsZVdpZGdldEV4LnllYXIsZW1haWxIYW5kbGVyLmNhcjJfY29sb3I9bWFpbFZlaGljbGVXaWRnZXRFeC5jb2xvcixlbWFpbEhhbmRsZXIuY2FyMl9vZG9tZXRlcj1jKG1haWxWZWhpY2xlV2lkZ2V0RXgub2RvbW90ZXIpLGVtYWlsSGFuZGxlci5jYXIyX3Zpbj1tYWlsVmVoaWNsZVdpZGdldEV4LnZpbixlbWFpbEhhbmRsZXIuY2FyMl90cmFuc21pc3Nvbj1tYWlsVmVoaWNsZVdpZGdldEV4LnRyYW5zbWlzc2lvbixlbWFpbEhhbmRsZXIuY2FyMl9kcml2ZXRyYWluPW1haWxWZWhpY2xlV2lkZ2V0RXguZHJpdmV0cmFpbixlbWFpbEhhbmRsZXIuY2FyMl9mdWVsdHlwZT1tYWlsVmVoaWNsZVdpZGdldEV4LmZ1ZWwsYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5MT1d9L2csIk4vQSIpLGE9YS5yZXBsYWNlKC97XCRUUkFERUlOSElHSH0vZywiTi9BIiksYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5BVkd9L2csIk4vQSIpKSxlbWFpbEhhbmRsZXIudmluPQoiIixlbWFpbEhhbmRsZXIucHJpY2U9MCxlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9IiIsZW1haWxIYW5kbGVyLmNhcmlkPSIiLDA8JCgiI2NhcmlkIikudmFsKCkubGVuZ3RoP2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiOmVtYWlsSGFuZGxlci5jb25kaXRpb249MDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UubGVuZ3RoPyJOZXciOiJVbmtub3duIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjc2VydmljZVBhY2thZ2VzIikucHJvcCgiaWQiKSl7dmFyIG49ITEscj0iIjskKCJpbnB1dC5zZWxlY3RlZFNlcnZpY2UiKS5lYWNoKGZ1bmN0aW9uKGgscCl7aD0kKHApO2guaXMoIjpjaGVja2VkIikmJihyKz0iPGJyPiIraC52YWwoKSxuPSEwKX0pO24mJihyPSI8YnI+PGJyPjx1PiIrJCgiI3NlbGVjdGVkU2VydmljZXNUaXRsZSIpLnZhbCgpKyI8L3U+IityKTthPWEucmVwbGFjZSgve1wkU0VMRUNURURTRVJWSUNFU30vZyxyKX0idW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmCihtYWlsVXNlckluZm8uYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJEZOQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxVc2VySW5mby5maXJzdE5hbWUpKS5yZXBsYWNlKC97XCRMTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsVXNlckluZm8ubGFzdE5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxVc2VySW5mby5waG9uZSkucmVwbGFjZSgve1wkRU1BSUx9L2csbWFpbFVzZXJJbmZvLmVtYWlsKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsSm9iT2ZmZXImJihtYWlsSm9iT2ZmZXIuYXNzaWduVmFsdWVzKCksZD0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCksZj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCksYT1hLnJlcGxhY2UoL3tcJEpPQlBPU1R9L2csbShkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsSm9iT2ZmZXIuam9iUG9zaXRvbikpKS5yZXBsYWNlKC97XCRKT0JERVBBUlRNRU5UfS9nLAptKGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxKb2JPZmZlci5qb2JEZXBhcnRtZW50KSkpLnJlcGxhY2UoL3tcJEpPQk1TR30vZyxtKG1haWxKb2JPZmZlci5qb2JNZXNzYWdlKSkpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJBZGRyZXNzKXttYWlsVXNlckFkZHJlc3MuYXNzaWduVmFsdWVzKCk7dmFyIHE9dHJpbShtYWlsVXNlckFkZHJlc3MuYWRkcmVzc0FwcCsiICIrbWFpbFVzZXJBZGRyZXNzLmFkZHJlc3NOdW1iZXIrIiAiK21haWxVc2VyQWRkcmVzcy5hZGRyZXNzU3RyZWV0KTthPWEucmVwbGFjZSgve1wkQ1VSUkVOVEFERFJFU1N9L2csbShxKSkucmVwbGFjZSgve1wkQ1VSUkVOVENJVFl9L2csbShtYWlsVXNlckFkZHJlc3MuY2l0eSkpLnJlcGxhY2UoL3tcJENVUlJFTlRQUk9WSU5DRX0vZyxtKG1haWxVc2VyQWRkcmVzcy5wcm92aW5jZSkpLnJlcGxhY2UoL3tcJENVUlJFTlRQT1NUQUxDT0RFfS9nLG0obWFpbFVzZXJBZGRyZXNzLnBvc3RhbENvZGUpKX0idW5kZWZpbmVkIiE9CnR5cGVvZiBtYWlsU2NoZWR1bGUmJihtYWlsU2NoZWR1bGUuYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJERBVEUxfS9nLG1haWxTY2hlZHVsZS5maXJzdENob2ljZSkucmVwbGFjZSgve1wkREFURTJ9L2csbWFpbFNjaGVkdWxlLnNlY29uZENob2ljZSkucmVwbGFjZSgve1wkV0FJVElOR09OU0lURX0vZyxtYWlsU2NoZWR1bGUud2FpdGluZ09uU2l0ZSkucmVwbGFjZSgve1wkVFJBTlNQT1JUT1BUSU9OfS9nLG1haWxTY2hlZHVsZS5nZXRUcmFuc3BvcnRPcHRpb25UZXh0KCkpLGVtYWlsSGFuZGxlci5zZXJ2aWNlRGF0ZTE9bWFpbFNjaGVkdWxlLmZpcnN0Q2hvaWNlLGVtYWlsSGFuZGxlci5zZXJ2aWNlRGF0ZTI9bWFpbFNjaGVkdWxlLnNlY29uZENob2ljZSxlbWFpbEhhbmRsZXIud2FpdGluZ09uU2l0ZT1tYWlsU2NoZWR1bGUud2FpdGluZ09uU2l0ZSxlbWFpbEhhbmRsZXIudHJhbnNwb3J0T3B0aW9uPW1haWxTY2hlZHVsZS50cmFuc3BvcnRPcHRpb24pO3ZhciB0PXE9IiIsCnU9IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZmluYW5jZU9wdGlvbkRpdiIpLmF0dHIoImlkIikmJigiY2hlY2tlZCI9PSQoIiNmaW5hbmNlT3B0aW9uRGl2IGlucHV0IikuYXR0cigiY2hlY2tlZCIpP3E9JCgiI3RleHRDYXNoIikudmFsKCk6KHE9ImNoZWNrZWQiPT0kKCIjZmluYW5jZU9wdGlvbkRpdjIgaW5wdXQiKS5hdHRyKCJjaGVja2VkIik\/JCgiI3RleHRGaW5hbmNlIikudmFsKCk6JCgiI3RleHRMZWFzZSIpLnZhbCgpLHU9JCgiI2ZpbmFuY2VUZXJtU2VsZWN0IikudmFsKCkpLCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3ZlaGljbGVPZmZlciIpLmF0dHIoImlkIikmJih0PSIkIitjKCQoIiN2ZWhpY2xlT2ZmZXIiKS52YWwoKSkpLGE9YS5yZXBsYWNlKC97XCRQQVlNRU5UfS9nLHEpLnJlcGxhY2UoL3tcJFBBWU1FTlRURVJNfS9nLHUpLnJlcGxhY2UoL3tcJE9GRkVSfS9nLHQpKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNxdWVzdGlvbnNDb21tZW50cyIpLmF0dHIoImlkIikmJgooZT1tKCQoIiNxdWVzdGlvbnNDb21tZW50cyIpLnZhbCgpKSxhPWEucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLGUpLGVtYWlsSGFuZGxlci5jb21tZW50cz1lKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNyZXF1ZXN0VHlwZSIpLmF0dHIoImlkIikmJihhPWEucmVwbGFjZSgve1wkREVNQU5ERX0vZywkKCIjcmVxdWVzdFR5cGUiKS52YWwoKSkpfSQoIiN0ZXN0RHJpdmVUeXBlIikubGVuZ3RoJiYoYT1hLnJlcGxhY2UoL3tcJFRFU1REUklWRVRZUEV9L2csJCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKSksYT0iVmlydHVhbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCl8fCJWaXJ0dWVsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKT9hLnJlcGxhY2UoL3tcJFRFU1REUklWRVZJUlRVQUx9L2csJCgiI3ByZWZlcmVkVmlydHVhbFRvb2wiKS52YWwoKSk6YS5yZXBsYWNlKC97XCRURVNURFJJVkVWSVJUVUFMfS9nLCJOL0EiKSk7JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aD8KZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmZpbmQoIjpzZWxlY3RlZCIpLmh0bWwoKToiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpJiYkKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aCYmKGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikuZmluZCgiOnNlbGVjdGVkIikuaHRtbCgpKTtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZSYmKGE9YS5yZXBsYWNlKCJ7JERFQUxFUk5BTUV9IixlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZSkpO2E9YS5yZXBsYWNlKC97XCQoREFURVsxMl0pfS9nLGZ1bmN0aW9uKGgscCl7aD0kKCdpbnB1dFtuYW1lPSInK3AudG9Mb3dlckNhc2UoKSsnIl0nLGcpO3JldHVybiAwPGgubGVuZ3RoPyhuZXcgRGF0ZShoLnZhbCgpKSkuZGF0ZUZvcm1hdCgiWS1tLWQgSDppIik6IiJ9KTtjPSIiOzA8JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkubGVuZ3RoJiYoYz0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsKIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKSk7YT1hLnJlcGxhY2UoInskTEFTVFZFSElDTEVWSUVXRUR9IixjKTthPWEucmVwbGFjZShSZWdFeHAoIntcXCQoUVVFU1RJT05TfE1FU1NBR0V8UkFUSU5HTUVTU0FHRXxFTUFJTFBIT05FfEVNQUlMTUFLRXxFTUFJTE1PREVMfEVNQUlMWUVBUnxQQVlNRU5UfFBBWU1FTlRURVJNfE9GRkVSfFNUT0NLTlVNQkVSfENPTE9SfEZOQU1FfExOQU1FfEVNQUlMfEtNfFZJTkVYfFNFTEVDVEVEU0VSVklDRVN8RU1BSUxDSVRZfFBMQVRFU3xEQVRFMXxEQVRFMnxUUkFOU1BPUlRPUFRJT04pfSIsImciKSwiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxiLmJhbmRwTGluaygpKTsiIj09ZCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsIikuYXR0cigiaWQiKSYmCihkPWwmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLmF0dHIoImlkIikmJjA8JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpLmxlbmd0aD8kKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCk6JCgiI2V4cHJlc3NTZW5kVG9FbWFpbCIpLnZhbCgpKTtpZigiIj09ZiYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGIikuYXR0cigiaWQiKSlpZihsJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS5hdHRyKCJpZCIpJiYwPCQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS52YWwoKS5sZW5ndGgpZj0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIikudmFsKCk7ZWxzZSBpZigic2VydmljZSI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCl8fGImJigibWVudVNlcnZpY2UiPT1iLm1haWxJRHx8ImhlYWRlclNlcnZpY2UiPT0KYi5tYWlsSUQpKWY9JCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERlNFUlZJQ0UiKS52YWwoKTsiIj09ZCYmJCgiI2V4cHJlc3NJbkRlbW8iKS5sZW5ndGgmJiIxIj09JCgiI2V4cHJlc3NJbkRlbW8iKS52YWwoKSYmKGVtYWlsSGFuZGxlci5jb25kaXRpb249Ik5ldyIsMDwkKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkubGVuZ3RoJiYoZD0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkpKTsiUXVpY2tFbWFpbCI9PWIubWFpbElEJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiYwPGUubGVuZ3RoJiYwPCQoIiNzZXJ2aWNlRW1haWwiKS5sZW5ndGgmJjA8JCgiI3NlcnZpY2VBZGZFbWFpbCIpLmxlbmd0aCYmKHRlcm1zPSJyYXBwZWw7c2VydmljZTtodWlsZTtwaWVjZXM7cGnvv71jZXM7cG5ldXM7dHJhbnNtaXNzaW9uO2FjY2Vzc29pcmVzO2FsdGVybmF0ZXVyO2FudGlyb3VpbGxlO2FudGktcm91aWxsZTtiYXR0ZXJpZTtiYXRlcmllO3Lvv71wYXJhdGlvbjtwZWludHVyZTtmcmVpbnM7ZGlzcXVlcztjYXJyb3NzZXJpZTtjYXRhbHlzZXVyO2Nob2M7ZGVtYXJyZXVyO++\/vWNoYXBwZW1lbnQ7bW90ZXVyO2Vzc3VpZS1nbGFjZTtlc3N1aS1nbGFjZTsgZmV1eDtjbGlnbm90YW50O2tsYXhvbjtmaWx0cmU7aG9ybG9nZTtyYWRpbzt0b2l0LW91dnJhbnQ7IG1hZzsgbWFncztt77+9Y2FuaXF1ZTttdWZmbGVyO25hdmlnYXRpb247b3JkaW5hdGV1cjsgcGhhcmVzO2x1bWnvv71yZXM7bHVtaWVyZTtwcm9ibO+\/vW1lO3Byb2JsZW1lO3JlY2FsbDtwYXJ0czt0aXJlO2FjY2Vzc29yaWVzO2FsdGVybmF0b3I7cnVzdHByb29maW5nO2JhdHRlcnk7cmVwYWlyO3BhaW50O2JyYWtlO2Rpc2tzOyBib2R5O3N0YXJ0ZXI7ZXhoYXVzdDtlbmdpbmU7d2lwZXI7d2lwZXJzOyBmbGFzaDsgbGlnaHQ7Zmxhc2hlcjtmbGFzaGVyczsgaG9ybjtmaWx0ZXI7Y2xvY2s7cm9vZjttZWNhbmljO2NvbXB1dGVyO2VjdTtwcm9ibGVtIi5zcGxpdCgiOyIpLAptYXRjaGVkVGVybXM9W10sJC5lYWNoKHRlcm1zLGZ1bmN0aW9uKGgscCl7aWYoLTE8ZS5pbmRleE9mKHApKXJldHVybiBkPSQoIiNzZXJ2aWNlRW1haWwiKS52YWwoKSxmPSQoIiNzZXJ2aWNlQWRmRW1haWwiKS52YWwoKSwhMX0pKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1rO2VtYWlsSGFuZGxlci5ib2R5PWE7ZW1haWxIYW5kbGVyLnNlbmRUbz1kO2VtYWlsSGFuZGxlci5zZW5kRnJvbT0iIjtlbWFpbEhhbmRsZXIubWFpbElEPWIubWFpbElEO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1iLmVtYWlsU2VudDsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmIm1lbnVDb250YWN0VXMiIT1lbWFpbEhhbmRsZXIubWFpbElEJiYibWVudVNlcnZpY2UiIT1lbWFpbEhhbmRsZXIubWFpbElEJiYoZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsVXNlckluZm8uZW1haWwsZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFVzZXJJbmZvLmZpcnN0TmFtZSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPQptYWlsVXNlckluZm8ubGFzdE5hbWUsZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsVXNlckluZm8ucGhvbmUpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbEpvYk9mZmVyJiYoZW1haWxIYW5kbGVyLnVzZXJBdHRhY2htZW50UGF0aD1tYWlsSm9iT2ZmZXIuam9iRmlsZSk7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1mOy0xIT1lbWFpbEhhbmRsZXIuYm9keS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoInRlc3RAZDJjbWVkaWEuY2EiKSYmJCgiaW5wdXQudGVzdG1vZGUiKS52YWwoIjEiKTskKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoP2VtYWlsSGFuZGxlci5zZW5kVG89JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLnZhbCgpOiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoJiYoZW1haWxIYW5kbGVyLnNlbmRUbz0kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLnZhbCgpKX07Yi5fdmFsaWRhdGVGaWVsZHM9CmZ1bmN0aW9uKGMpe3ZhciBnPSExLGs9JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbCgpLGE9dGhpcy5qcVNjb3BlO2lmKCIjcXVpY2tFbWFpbEZvcm0iPT1hKXJldHVybiEwOyQudmFsaWRpdHkuc3RhcnQoKTt2YXIgZT0iLklubmVyQm94TGF5ZXIiOzA8JCgiLm1haW5fbGVmdF9ib3giKS5sZW5ndGgmJihlPSIubWFpbl9sZWZ0X2JveCIpO2E9Yi5qcVNjb3BlP2IuanFTY29wZTplOzE+JChhKS5sZW5ndGgmJihhPSIjbmV3ZGV0YWlscyIpOzE+JChhKS5sZW5ndGgmJihhPSIubmV3LWRldGFpbHMiKTsxPiQoYSkubGVuZ3RoJiYoYT0iYm9keSIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKTtjPSQoYSkuZmluZCgiLnJlcXVpcmVkLC52YWxpZGF0ZSIpOyQoYSkuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtjLmZpbHRlcigiLnJlcXVpcmVkIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVxdWlyZSgpLm5vbkh0bWwoKX0pOwpjLmZpbHRlcigiLnJlcXVpcmVkLXBob25lIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVxdWlyZSgpLnZhbGlkYXRlUGhvbmUoKX0pO2MuZmlsdGVyKCIucGhvbmU6bm90KC5yZXF1aXJlZC1waG9uZSkiKS5lYWNoKChsLG4pPT57JChuKS52YWxpZGF0ZVBob25lKCl9KTtlPSQoIiNwaG9uZTEsI3Bob25lMiwjcGhvbmUzIixhKS5maWx0ZXIoIjp2aXNpYmxlIik7aWYoMDxlLmxlbmd0aCl7dmFyIGQsZjtsZXQgbCxuOzA8KGVbMF0udmFsdWUrKG51bGwhPShsPW51bGw9PShkPWVbMV0pP3ZvaWQgMDpkLnZhbHVlKT9sOiIiKSsobnVsbCE9KG49bnVsbD09KGY9ZVsyXSk\/dm9pZCAwOmYudmFsdWUpP246IiIpKS5sZW5ndGgmJiQoZSkudmFsaWRhdGVQaG9uZSgpfWMuZmlsdGVyKCIuemlwIikuZWFjaChmdW5jdGlvbigpeygkKHRoaXMpLmlzKCIucmVxdWlyZWQiKXx8MCE9JCh0aGlzKS52YWwoKS5sZW5ndGgpJiYkKHRoaXMpLnJlcXVpcmVQb3N0YWxDb2RlKCl9KTsxPT0kKCIudmluIikubGVuZ3RoJiYKKCQoIi52aW4iKS5pcygiLnJlcXVpcmVkIikmJiQoIi52aW4iKS5yZXF1aXJlKCkubm9uSHRtbCgpLDA8JCgiLnZpbiIpLnZhbCgpLmxlbmd0aCYmJCgiLnZpbiIpLm1pbkxlbmd0aCgxNykpOzE9PSQoIi52aW5FeCIpLmxlbmd0aCYmKCQoIi52aW5FeCIpLmlzKCIucmVxdWlyZWQiKSYmJCgiLnZpbkV4IikucmVxdWlyZSgpLm5vbkh0bWwoKSwwPCQoIi52aW5FeCIpLnZhbCgpLmxlbmd0aCYmJCgiLnZpbkV4IikubWluTGVuZ3RoKDE3KSk7Yy5maWx0ZXIoIi5lbWFpbCIpLmVhY2goZnVuY3Rpb24oKXsoJCh0aGlzKS5pcygiLnJlcXVpcmVkIil8fDAhPSQodGhpcykudmFsKCkubGVuZ3RoKSYmJCh0aGlzKS52YWxpZEVtYWlsQWRkcmVzcygpfSk7JChhKS5maW5kKCIudmFsaWRhdGUtZ3JvdXAiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGw9JCh0aGlzKS52YWwoKTskKGwsYSkudmFsaWRBbGxvck5vbmUoKX0pO2MuZmlsdGVyKCIudXBsb2FkIikuZWFjaChmdW5jdGlvbigpeyEkKHRoaXMpLmlzKCIucmVxdWlyZWQiKSYmCjA9PSQodGhpcykudmFsKCkubGVuZ3RofHwiIiE9JCh0aGlzKS52YWwoKXx8KCQoIiN1cGxvYWRTdGF0dXMiKS5jc3MoImNvbG9yIiwicmVkIiksJCgiI3VwbG9hZFN0YXR1cyIpLmh0bWwoJCgiI2ZpbGVVcGxvYWRSZXF1ZXN0IikudmFsKCkpLCQoIiN1cGxvYWRTdGF0dXMiKS5zaG93KCkpfSk7ZD0kLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnM7JCgiI2VtYWlsIikubWF0Y2goImVtYWlsIik7JC52YWxpZGl0eS5yZXBvcnQuZXJyb3JzPmQmJihmPSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLnRleHQoKSsiLjxici8+IiskKCIjZW1haWxFcnJvck1zZyIsIiN1c2VySW5mb0Zvcm0iKS52YWwoKSsiLiIsMD09ZCYmKGY9JCgiI2VtYWlsRXJyb3JNc2ciLCIjdXNlckluZm9Gb3JtIikudmFsKCkpLCQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmh0bWwoZikpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJJbmZvJiYiZnVuY3Rpb24iPT10eXBlb2YgbWFpbFVzZXJJbmZvLmFkZGVkVmFsaWRhdGlvbiYmCm1haWxVc2VySW5mby5hZGRlZFZhbGlkYXRpb24oYSk7JC52YWxpZGl0eS5lbmQoKS52YWxpZD9nPSEwOigkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5zaG93KCksJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuY2VudGVyKCksJChkb2N1bWVudCkub25lKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGwpeyQudmFsaWRpdHkuY2xlYXIoKTskKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbChrKX0pKTtyZXR1cm4gZ319O3ZhciBtYWlsUGFnZT1uZXcgR2VuZXJpY01haWw7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7MDwkKCIjdG9waXNtb2JpbGUiKS5sZW5ndGgmJjE8JCgiI3RvcGlzbW9iaWxlIikudmFsKCkmJihtYWlsUGFnZS5qcVNjb3BlPSIubmV3LWRldGFpbHMiKTskKCIjc2VuZEVtYWlsRm9ybSBidXR0b24iKS5vbigiY2xpY2sgdGFwIixtYWlsUGFnZS5zYXZlKTskKCIjc2VuZEVtYWlsRm9ybVN1Ym1pdCIpLm9uKCJjbGljayB0YXAiLG1haWxQYWdlLnNhdmUpO21haWxQYWdlLm1haWxJRD0kKCIjdGV4dFNhdmVNYWlsSUQiKS52YWwoKTskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJzdW1tYXJ5IixzY3JvbGxUbzohMX0pO2pRdWVyeS5mbi5jZW50ZXI9ZnVuY3Rpb24oKXskKCJpc21vYmlsZSIpJiYwPCQoIiNzZW5kRW1haWxGb3JtU3VibWl0IikubGVuZ3RoP3RoaXMuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6KCQod2luZG93KS53aWR0aCgpLSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLm91dGVyV2lkdGgoKSkvMiwKdG9wOiQoIiNzZW5kRW1haWxGb3JtU3VibWl0IikucG9zaXRpb24oKS50b3AtMTB9KTp0aGlzLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OigkKHdpbmRvdykud2lkdGgoKS0kKCIjY29udGFpbmVyIikub3V0ZXJXaWR0aCgpKS8yLHRvcDooJCh3aW5kb3cpLmhlaWdodCgpLSQoIiNjb250YWluZXIiKS5vdXRlckhlaWdodCgpKS8yfSk7cmV0dXJuIHRoaXN9OyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFBhZ2UubWFpbElEJiZlbWFpbEhhbmRsZXIubG9nRm9ybVJlcXVlc3QoIkZvcm1Mb2FkZWQiLG1haWxQYWdlLm1haWxJRCl9KTsKLyoqIC9qcy9wb3B1cGl6ZXIuanMgKiovCnZhciBfX19kMmNfcG9wdXBpemVyanNfY19vbj0iMjAyNi0wMS0xMyAxNjozMDowNiI7J3VzZSBzdHJpY3QnO2lzU2NyYXRjaEFuZFNhdmU9InVuZGVmaW5lZCI9PXR5cGVvZiBpc1NjcmF0Y2hBbmRTYXZlPyIiOmlzU2NyYXRjaEFuZFNhdmU7cG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ9InVuZGVmaW5lZCI9PXR5cGVvZiBwb3B1cFdpZGdldF9wYWdlVmlld3NJbmNyZW1lbnRlZD8iIjpwb3B1cFdpZGdldF9wYWdlVmlld3NJbmNyZW1lbnRlZDtzaG93UG9wdXBXaWRnZXQ9ImZ1bmN0aW9uIiE9dHlwZW9mIHNob3dQb3B1cFdpZGdldD9mdW5jdGlvbigpe306c2hvd1BvcHVwV2lkZ2V0O2FjdGl2YXRlUG9wdXBCZWZvcmVMb2FkPSJmdW5jdGlvbiIhPXR5cGVvZiBhY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZD9mdW5jdGlvbigpe306YWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ7CnZhciBwb3B1cElzU3VibWl0dGluZz0hMSxDUG9wdXBTdXBlcnZpc29yPWZ1bmN0aW9uKCl7dmFyIGM9dGhpcztjLm9ubG9hZFF1ZXVlPVtdO2MuaW5kZXg9MDtjLmlzQW5pbWF0aW5nPSExO2MucG9wdXBzPVtdO2MucmVnaXN0ZXI9ZnVuY3Rpb24oYSl7dmFyIGs9MDswPE51bWJlcihhLnNldHRpbmdzLnNob3dvbmxvYWQpJiYhMCE9PWEuc2V0dGluZ3Muc2hvd29ubG9hZCYmKGs9YS5zZXR0aW5ncy5zaG93b25sb2FkKTt2YXIgYj0xOzE8YS5zZXR0aW5ncy5wcmlvcml0eSYmKGI9YS5zZXR0aW5ncy5wcmlvcml0eSk7MSE9Q29va2llcy5nZXQoIm5vdXNlZGN0YSIpfHwidXNlZGNhcnMuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKSYmImNhcmRldGFpbC5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpP2Mub25sb2FkUXVldWUucHVzaCh7cG9wdXA6YSxkZWxheTprLHByaW9yaXR5OmJ9KTpjb25zb2xlLmxvZygiTm90IHNob3dpbmcgcG9wdXAgb25sb2FkLCBiZWNhdXNlIGl0cyBhIHVzZWQgcGFnZSBhbmQgdGhlIGNvb2tpZSBub3VzZWRjdGEgaXMgc2V0Iil9OwpjLnJlcG9zaXRpb249ZnVuY3Rpb24oKXtpZighKHBvcHVwaXplckFjdGl2ZSgpfHwidW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiZtb2RlbENvbmZpZy5pc0FjdGl2ZSYmbW9kZWxDb25maWcuaXNBY3RpdmUoKSkpcmV0dXJuICQoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwiYXV0byIpLCExO2lmKGMuaXNBbmltYXRpbmcpcmV0dXJuITE7dmFyIGE9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuaW5uZXJIZWlnaHQ\/d2luZG93LmlubmVySGVpZ2h0OiQod2luZG93KS5oZWlnaHQoKSxrPSQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLGI9L01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/NToyMDskKCIucmV2ZWFsLW1vZGFsIikuZWFjaChmdW5jdGlvbihkLGYpe2Q9JCh0aGlzKTtpZigidmlzaWJsZSI9PWQuY3NzKCJ2aXNpYmlsaXR5Iikpe2Y9ZC5vZmZzZXQoKS50b3A7dmFyIGg9ZC5vdXRlckhlaWdodCgpLGw9ZitoO2lmKGE8aCtifHxuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC8oaVBob25lfGlQb2QpL2cpKXtpZigkKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsCiJhdXRvIiksaz5sfHxrK2E8ZilmPWsrYixjLmlzQW5pbWF0aW5nPSEwLGQuYW5pbWF0ZSh7dG9wOmYrInB4In0sMjAwLGZ1bmN0aW9uKCl7Yy5pc0FuaW1hdGluZz0hMX0pfWVsc2UgZj1rKyhhLWgpLzIsZj1mPGI\/YjpmLGMuaXNBbmltYXRpbmc9ITAsZC5hbmltYXRlKHt0b3A6ZisicHgifSwyMDAsZnVuY3Rpb24oKXtjLmlzQW5pbWF0aW5nPSExfSl9fSl9O2Muc2hvdz1mdW5jdGlvbigpe2lmKCEoMDwkKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmIjEiPT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpKSYmKGMub25sb2FkUXVldWUuc29ydChmdW5jdGlvbihhLGspe2lmKGEucHJpb3JpdHk+ay5wcmlvcml0eSlyZXR1cm4gMTtpZihhLnByaW9yaXR5PGsucHJpb3JpdHkpcmV0dXJuLTE7aWYoYS5wcmlvcml0eT09ay5wcmlvcml0eSlyZXR1cm4gYS5kZWxheTxrLmRlbGF5PzE6LTF9KSwoIkJVSUxEQU5EUFJJQ0UiIT1wYWdlfHwiLTEiIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJzdGVwPXJlc3VtZSIpKSYmCjA8Yy5vbmxvYWRRdWV1ZS5sZW5ndGgpKXtmb3Ioa2V5IGluIGMub25sb2FkUXVldWUpaWYoMT09Yy5vbmxvYWRRdWV1ZVtrZXldLnBvcHVwLnNldHRpbmdzLmVuZFBvcHVwUXVldWUpcmV0dXJuIGMub25sb2FkUXVldWVba2V5XS5wb3B1cC5vcGVuKGMub25sb2FkUXVldWVba2V5XS5kZWxheSksITE7Zm9yKGtleSBpbiBjLm9ubG9hZFF1ZXVlKWMub25sb2FkUXVldWVba2V5XS5wb3B1cC5vcGVuKGMub25sb2FkUXVldWVba2V5XS5kZWxheSl9fTt2YXIgbT1mdW5jdGlvbigpe2lmKHBvcHVwaXplckFjdGl2ZSgpKXJldHVybiBzZXRUaW1lb3V0KG0sNTAwKSwhMTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQWN0aXZlKCkpcmV0dXJuIG0oKTskLnBvc3RNZXNzYWdlKCJjbG9zZVBvcHVwIiwiKiIsd2luZG93LnBhcmVudCl9LDFFMyl9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXswPCQoIiNhdXRvYXViYWluZV9wb3B1cCIpLmxlbmd0aCYmImZhbHNlIiE9JCgiI2F1dG9hdWJhaW5lX3BvcHVwIikudmFsKCkmJgptKCl9LDVFMyl9LHBvcHVwU3VwZXJ2aXNvcj1uZXcgQ1BvcHVwU3VwZXJ2aXNvcixwb3B1cGl6ZXJBY3RpdmU9ZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJDb25maWcucG9wdXBPcGVuKXJldHVybiEwO3ZhciBjPSExOyQoIi5yZXZlYWwtbW9kYWwsIC5yZXZlYWwtbW9kZWwtZG8tbm90LXNob3ciKS5lYWNoKGZ1bmN0aW9uKCl7aWYoMSE9Yyl7dmFyIG09JCh0aGlzKTtpZighbS5pcygiOmhpZGRlbiIpKXN3aXRjaChtLmNzcygidmlzaWJpbGl0eSIpKXtjYXNlICJ1bmRlZmluZWQiOmNhc2UgInZpc2libGUiOmM9ITB9fX0pO2lmKCQoIi5wcF9vdmVybGF5IikuaXMoIjp2aXNpYmxlIil8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1vdmVybGF5IikpYz0hMDtyZXR1cm4gY30scG9wdXBpemVyQ29uZmlnPXt9OyQuZXh0ZW5kKCEwLHBvcHVwaXplckNvbmZpZyx7cG9wdXBPcGVuOiExfSk7CnZhciBwb3B1cGl6ZXI9ZnVuY3Rpb24oYyxtKXt2YXIgYT10aGlzLGs9ImF1dG8iO2M\/YS50YXJnZXQ9YzpjPWEudGFyZ2V0O2Euc2V0dGluZ3M9bTthLnNldFRyaWdnZXI9ZnVuY3Rpb24oYil7az0ic3RyaW5nIj09dHlwZW9mIGImJiJjbGljayI9PWIudG9Mb3dlckNhc2UoKT8iY2xpY2siOiJhdXRvIjthLnNldHRpbmdzLnRyaWdnZXI9aztyZXR1cm4gYX07YS5pbml0PWZ1bmN0aW9uKCl7dmFyIGI9ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVJbml0aWFsaXplLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemU7aWYoYS5pc0NvbnRlbnRMb2FkZWQoKXx8IWImJiFkKXtpZihiKXt2YXIgZj1hLnNldHRpbmdzLm9uQmVmb3JlSW5pdGlhbGl6ZS5jYWxsKGMsYSk7aWYoMD09ZilyZXR1cm59Yj0hMTtpZihhLnNldHRpbmdzLnRocmVzaG9sZCYmYS5zZXR0aW5ncy5tYWlucG9wdXApe2Euc2V0dGluZ3Muc2hvd29ubG9hZD0hMTsKaWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUmJihiPSEwLGY9YS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZS5jYWxsKGMsYSksMD09Zikpe2Euc2F2ZVNldHRpbmdzKCk7cmV0dXJufXRocmVzaG9sZEV4ZWMoYS5zZXR0aW5ncy50aHJlc2hvbGRWYWx1ZS8xMDAsYS5leGVjT3Blbil9aWYoYS5zZXR0aW5ncy5zY3JvbGx1cCYmYS5zZXR0aW5ncy5tYWlucG9wdXApe2Euc2V0dGluZ3Muc2hvd29ubG9hZD0hMTtpZihkJiYoYj0hMCxmPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWYpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn1zY3JvbGx1cEV4ZWMoYS5leGVjT3Blbil9Yy5hZGRDbGFzcygicmV2ZWFsLW1vZGFsIik7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLmFkZGVkQ2xhc3NlcyYmMDxhLnNldHRpbmdzLmFkZGVkQ2xhc3Nlcy5sZW5ndGgmJmMuYWRkQ2xhc3MoYS5zZXR0aW5ncy5hZGRlZENsYXNzZXMpOwokKCJmb3JtIixjKS5vbigic3VibWl0IixhLnN1Ym1pdCk7Zj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLnNldHRpbmdzLmFuaW1hdGlvbiYmZi5nZXRDb250ZXh0JiYoInVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLmFuaW1hdGlvbi5lZmZlY3QmJihhLnNldHRpbmdzLnJldmVhbC5hbmltYXRpb249ImV4dGVybmFsQW5pbWF0aW9uIixjLmFkZENsYXNzKGEuc2V0dGluZ3MuYW5pbWF0aW9uLmVmZmVjdCkpLCJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hbmltYXRpb24uc3BlZWQmJmMuYWRkQ2xhc3MoYS5zZXR0aW5ncy5hbmltYXRpb24uc3BlZWQpKTthLnNldHRpbmdzLmluaXRpYWxpemVkPSEwO2MudHJpZ2dlcigicG9wdXBpemVyLmluaXRpYWxpemVkIixhKTtpZihkJiYhYiYmKGY9YS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZS5jYWxsKGMsYSksMD09Zikpe2Euc2F2ZVNldHRpbmdzKCk7cmV0dXJufWEuc2F2ZVNldHRpbmdzKCk7ZD0kKCIjaGlkZGVuU2tpcE9ubG9hZFByaW50c2NyZWVuIik7CmlmKDA8ZC5sZW5ndGgmJiJET19TS0lQX1BPUFVQIj09ZC52YWwoKSlyZXR1cm4hMTshYS5zZXR0aW5ncy5zaG93b25sb2FkfHxudWxsIT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIil8fG51bGwhPUNvb2tpZXMuZ2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSl8fDEhPWEuc2V0dGluZ3MuY2xvc2VCdXR0b24mJjAhPWEuc2V0dGluZ3MuY2xvc2VCdXR0b258fCgtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL3JlcXVlc3QvIil8fC0xIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvZGVtYW5kZXMvIikpJiYtMT09YS5zZXR0aW5ncy5uYW1lLmluZGV4T2YoImltYWdlUG9wdXAiKXx8cG9wdXBTdXBlcnZpc29yLnJlZ2lzdGVyKGEpOyQoZG9jdW1lbnQpLm9mZigiY2xpY2siLCIuIittLnJldmVhbC5kaXNtaXNzbW9kYWxjbGFzcykub24oImNsaWNrIiwiLiIrbS5yZXZlYWwuZGlzbWlzc21vZGFsY2xhc3MsZnVuY3Rpb24oaCl7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuY2xvc2UiLApjKX0pOyQoZG9jdW1lbnQpLm9mZigia2V5dXAiKS5vbigia2V5dXAiLGZ1bmN0aW9uKGgpezI3PT09aC53aGljaCYmYy50cmlnZ2VyKCJwb3B1cGl6ZXIuY2xvc2UiLGMpfSk7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5zZXR0aW5ncy5mb3JtLmZyb21BQSYmKGVtYWlsSGFuZGxlci5mcm9tQUE9YS5zZXR0aW5ncy5mb3JtLmZyb21BQSk7cmV0dXJuIGF9YS5sb2FkKGEuaW5pdCl9O2Eub25PcGVuPWZ1bmN0aW9uKCl7YS5pc0NvbnRlbnRMb2FkZWQoKXx8YS5sb2FkKCk7aWYoImF1dG8iPT1rJiZudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpKXJldHVybiExO2MuZmluZCgiLnBvcHVwaXplckJvZHkiKS5zaG93KCk7aWYobnVsbCE9Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpfHxudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpKWMuZmluZCgiLmNsb3NlLXJldmVhbC1tb2RhbCIpLnJlbW92ZUNsYXNzKCJtb2RhbC1jbG9zZS1oaWRlIiksCmMuZmluZCgiLmNsb3NlLXJldmVhbC1tb2RhbCIpLnNob3coKTthLmNyZWF0ZUNvbmZpcm1Gb3JtKCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVPcGVuJiYwPT1hLnNldHRpbmdzLm9uQmVmb3JlT3Blbi5jYWxsKGMsYSkpcmV0dXJuITE7dmFyIGI9Ii9wb3B1cC0iK2EudGFyZ2V0LmZpbmQoIi5lbWFpbFN1YmplY3QiKS50ZXh0KCkucmVwbGFjZSgvW1xuXHJdL2csIiAiKTthLnRhcmdldC5maW5kKCIjaW1hZ2VQb3B1cExlYWRUeXBlIikubGVuZ3RoJiYoYj0iL3BvcHVwLSIrYS50YXJnZXQuZmluZCgiI2ltYWdlUG9wdXBMZWFkVHlwZSIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZCIpLnJlcGxhY2UoL1tcblxyXS9nLCIgIikpO2EudGFyZ2V0LmZpbmQoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciIpLmxlbmd0aCYmKGI9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iL25ldWZzL2NhbGN1bGF0cmljZS1wcmV0LWF1dG8tcG9wdXAuaHRtbCI6Ii9uZXcvY2FyLWxvYW4tY2FsY3VsYXRvci1wb3B1cC5odG1sIik7CmdhUGFnZVZpZXcoYik7Z2E0UGFnZVZpZXcoYik7YS5sb2dFdmVudCgicG9wdXAub3BlbiIpOyJsaXZlIj09JCgiI3RvcGRlcGxveW1lbnR0eXBlIikudmFsKCkmJmdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1MYXVuY2hlZCIsYS5zZXR0aW5ncy5uYW1lLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpO2Euc2V0dGluZ3MuY291bnRkb3duJiZhLmluaXRDb3VudGRvd24oKTtjLmRhdGEoIm9wZW4iLCEwKTtwb3B1cGl6ZXJDb25maWcucG9wdXBPcGVuPSEwOyJvbk9wZW4iPT1hLnNldHRpbmdzLmNvb2tpZUNyZWF0ZSYmYS5zZXRDb29raWUoKTtiPWMuZmluZCgiZm9ybSIpLmZpcnN0KCk7Yi5maW5kKCdpbnB1dCBbdHlwZT0idGV4dCJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykub2ZmKCJmb2N1cyBibHVyIGNoYW5nZSIpLmNzcygiY29sb3IiLCIjMDAwIik7JCh0aGlzKS5hdHRyKCJwbGFjZWhvbGRlciIsJCh0aGlzKS5hdHRyKCJhbHQiKSl9KTt2YXIgZD1uZXcgRm9ybTtkLm1hc2tQaG9uZShjLmZpbmQoImZvcm0iKS5zZWxlY3RvcisKIiBpbnB1dC5waG9uZSIpO2QubWFza1Bob25lKGMuZmluZCgiZm9ybSIpLnNlbGVjdG9yKyIgaW5wdXQubW9iaWxlIik7MDxiLmZpbmQoIi5waG9uZS5yZXF1aXJlZCIpLmxlbmd0aD9lbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9MTplbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9MDthLnNldHRpbmdzLmZvcm0uZW1haWxpZCYmZW1haWxIYW5kbGVyLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtTG9hZGVkIixhLnNldHRpbmdzLmZvcm0uZW1haWxpZCxhLnNldHRpbmdzLmZvcm0ub2ZmZXJ0eXBlKTthLnNldHRpbmdzLnJldmVhbC5jbG9zZWQ9YS5vbkNsb3NlO2MucmV2ZWFsKGEuc2V0dGluZ3MucmV2ZWFsKTskKCIjZmxvYXRQcm9tb1RvcEJ0bkNvbnRhaW5lciIpLmhpZGUoKTskKCIjY29udGFpbmVyRmxCIikuaGlkZSgpOyQoIiN0b2FzdC1jb250YWluZXIiKS5oaWRlKCk7JCgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaGlkZSgpO2Euc2V0dGluZ3MuZm9ybS5PS0J1dHRvbkNsYXNzJiYoYj0KYS5zZXR0aW5ncy5mb3JtLk9LQnV0dG9uQ2xhc3MsIi4iPT1iWzBdJiYoYj1iLnN1YnN0cmluZygxKSksJCgiLiIrYixjKS5vZmYoImNsaWNrIikub24oImNsaWNrIixhLnN1Ym1pdCkpO2Euc2V0dGluZ3MuZm9ybS5DYW5jZWxCdXR0b25DbGFzcyYmKGI9YS5zZXR0aW5ncy5mb3JtLkNhbmNlbEJ1dHRvbkNsYXNzLCIuIj09YlswXSYmKGI9Yi5zdWJzdHJpbmcoMSkpLCQoIi4iK2IsYykub2ZmKCJjbGljayIpLm9uKCJjbGljayIsYS5jYW5jZWwpKTtjLnRyaWdnZXIoInBvcHVwaXplci5vbk9wZW4iLGEpfTthLm9uQ2xvc2U9ZnVuY3Rpb24oKXtjLmRhdGEoIm9wZW4iLCExKTtwb3B1cGl6ZXJDb25maWcucG9wdXBPcGVuPSExO2Euc2V0dGluZ3Muc3VibWl0dGVkfHxhLmxvZ0V2ZW50KCJwb3B1cC5jYW5jZWwiKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiI3RvYXN0LWNvbnRhaW5lciIpLnNob3coKX0sNTAwKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnJldmVhbC1tb2RhbC1iZyIpLmxlbmd0aCYmCiQoIi5yZXZlYWwtbW9kYWwtYmciKS5yZW1vdmUoKX0sMUUzKTtjLnRyaWdnZXIoInBvcHVwaXplci5vbkNsb3NlIixhKTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkNsb3NlJiZhLnNldHRpbmdzLm9uQ2xvc2UuY2FsbChjLGEpfTthLnN1Ym1pdD1mdW5jdGlvbigpe2lmKHBvcHVwSXNTdWJtaXR0aW5nKXJldHVybiExO3BvcHVwSXNTdWJtaXR0aW5nPSEwO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtwb3B1cElzU3VibWl0dGluZz0hMX0sM0UzKTt2YXIgYj1jLmZpbmQoImZvcm0iKS5maXJzdCgpLGQ9W10sZj0iIixoPSIiLGw9W10scD1bXSxnPSEwLHQ9IiIsej0iIixBPSIiO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlVmFsaWRhdGlvbilzd2l0Y2goYS5zZXR0aW5ncy5vbkJlZm9yZVZhbGlkYXRpb24uY2FsbChiLGMsYSkpe2Nhc2UgITE6Y2FzZSAwOnJldHVybiBwb3B1cElzU3VibWl0dGluZz0hMTtjYXNlIC0xOmc9ITF9aWYoZyl7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLApzY3JvbGxUbzohMX0pLnN0YXJ0KCk7Yi5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHRleHRhcmVhIikubm9uSHRtbCgpO2IuZmluZCgiaW5wdXQucmVxdWlyZWQsIHNlbGVjdC5yZXF1aXJlZCwgdGV4dGFyZWEucmVxdWlyZWQiKS5yZXF1aXJlKCk7dmFyIHY9ITEsQj0hMSx3PSExO2IuZmluZCgiaW5wdXQiKS5maWx0ZXIoIi5yZXFSYWRpbyIpLnJhZGlvT3B0aW9uQ2hvc2VuKCk7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMpO2UuaGFzQ2xhc3MoImVtYWlsIikmJihlLmhhc0NsYXNzKCJyZXF1aXJlZCIpfHwwPGUudmFsKCkubGVuZ3RoKSYmKHc9ITApO2lmKGUuaGFzQ2xhc3MoInBob25lIil8fGUuaGFzQ2xhc3MoIm1vYmlsZSIpKWlmKEI9ITAsZS5oYXNDbGFzcygicmVxdWlyZWQiKXx8MDxlLnZhbCgpLmxlbmd0aCl2PSEwfSk7MD09diYmMD09dyYmKEI\/dj0hMDp3PSEwKTtiLmZpbmQoImlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBlPSQodGhpcyk7CmUuaGFzQ2xhc3MoImVtYWlsIikmJmUudmFsaWRFbWFpbEFkZHJlc3MoKTtlLmhhc0NsYXNzKCJwaG9uZSIpJiZlLnZhbGlkYXRlUGhvbmUoKTtlLmhhc0NsYXNzKCJtb2JpbGUiKSYmZS52YWxpZGF0ZU1vYmlsZSgpfSk7MT5jLmZpbmQoIi5NaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmxlbmd0aCYmYy5hcHBlbmQoJzxkaXYgY2xhc3M9Ik1pc3NpbmdWYWxpZGF0aW9uTXNnIj48L2Rpdj4nKTtpZighJC52YWxpZGl0eS5lbmQoKS52YWxpZClyZXR1cm4gJCgiLk1pc3NpbmdWYWxpZGF0aW9uTXNnIixjKS5zaG93KCksJChkb2N1bWVudCkub24oIm1vdXNlZG93biIsZnVuY3Rpb24oZSl7JCgiLk1pc3NpbmdWYWxpZGF0aW9uTXNnIixjKS5oaWRlKCk7JCh0aGlzKS5vZmYoZSl9KSxhLmxvZ0V2ZW50KCJwb3B1cC52YWxpZGF0aW9uRmFpbGVkIikscG9wdXBJc1N1Ym1pdHRpbmc9ITF9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVzdWJtaXQpe2c9ITA7dHJ5e2c9YS5zZXR0aW5ncy5vbkJlZm9yZXN1Ym1pdC5jYWxsKGMsCmEpfWNhdGNoKGUpe2NvbnNvbGUubG9nKCJPbiBiZWZvcmUgc3VibWl0IGZhaWxlZCwgcmV0dXJuaW5nIHRydWUuIixlKX1pZigwPT1nKXJldHVybiBhLnNldHRpbmdzLmNsb3NlT25TdWJtaXQmJmEuY2xvc2UoKSwhMX1hLmxvZ0V2ZW50KCJwb3B1cC5zdWJtaXQiKTtiLmZpbmQoImlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBlPSQodGhpcyk7KGUuaGFzQ2xhc3MoImVtYWlsIil8fCJlbWFpbCI9PT1lLmF0dHIoInR5cGUiKSkmJmQucHVzaChlLnZhbCgpKTtlLmhhc0NsYXNzKCJwb3N0YWwiKSYmKGY9ZS52YWwoKSk7ZS5oYXNDbGFzcygidHJhZGVpbiIpJiYoaD1lLnZhbCgpKTsoZS5oYXNDbGFzcygicGhvbmUiKXx8ZS5oYXNDbGFzcygibW9iaWxlIil8fCJ0ZWwiPT09ZS5hdHRyKCJ0eXBlIikpJiZwLnB1c2goZS52YWwoKSk7InVuZGVmaW5lZCI9PXR5cGVvZiBlLmF0dHIoIm5hbWUiKSYmZS5hdHRyKCJuYW1lIiwiIik7KGUuaGFzQ2xhc3MoIm5hbWUiKXx8Im5hbWUiPT1lLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKSYmCmwucHVzaChlLnZhbCgpKTsoZS5oYXNDbGFzcygiZmlyc3RuYW1lIil8fCJmaXJzdG5hbWUiPT1lLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKSYmbC51bnNoaWZ0KGUudmFsKCkpOyhlLmhhc0NsYXNzKCJsYXN0bmFtZSIpfHwibGFzdG5hbWUiPT1lLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKSYmbC5wdXNoKGUudmFsKCkpO2lmKGUuaGFzQ2xhc3MoImNvbW1lbnQiKXx8ImNvbW1lbnQiPT1lLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKXQ9ZS52YWwoKTtpZihlLmhhc0NsYXNzKCJhZGRyZXNzIil8fCJhZGRyZXNzIj09ZS5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSl6PWUudmFsKCk7aWYoZS5oYXNDbGFzcygiYmlydGhkYXRlIil8fCJiaXJ0aGRhdGUiPT1lLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKUE9ZS52YWwoKX0pO2c9Yi5zZXJpYWxpemVBcnJheSgpO3ZhciB4PSQoIi5lbWFpbEJvZHkiLGMpLmh0bWwoKSsiIix1PSQoIi5lbWFpbFN1YmplY3QiLGMpLmh0bWwoKSsKIiI7IlByaWNlVmVoaWNsZSI9PWEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkJiYwPT1iLmZpbmQoIltuYW1lPW5vQ0JCXSIpLnZhbCgpJiYiU01TIj09Yi5maW5kKCIjdHJhZGVJbkJhclNtc09yRW1haWxTbXM6Y2hlY2tlZCIpLnZhbCgpJiYodSs9IiAoU01TKSIpO3ZhciBxPVtdO1tdLnB1c2guYXBwbHkocSxnKTtbXS5wdXNoLmFwcGx5KHEsYS5nbG9iYWxSZXBsYWNlbWVudHMoKSk7JC5lYWNoKHEsZnVuY3Rpb24oKXt2YXIgZT1uZXcgUmVnRXhwKCJ7XFwkIit0aGlzLm5hbWUudG9VcHBlckNhc2UoKSsifSIsImciKSxuPXRoaXMudmFsdWU7IlNFQVJDSEVEVkVISUNMRSI9PXRoaXMubmFtZS50b1VwcGVyQ2FzZSgpJiYobj0iPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+IituKyI8L3NwYW4+Iik7eD14LnJlcGxhY2UoZSxuKTt1PXUucmVwbGFjZShlLHRoaXMudmFsdWUpfSk7Zz17c2VuZFRvOmEuc2V0dGluZ3MuZm9ybS5zZW5kVG8sc2VuZFRvQURGRm9ybWF0OmEuc2V0dGluZ3MuZm9ybS5zZW5kVG9BREYsCmNvbmRpdGlvbjphLnNldHRpbmdzLnZlaGljbGVTdGF0ZSxtYWlsSUQ6YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQsc3ViamVjdDp1LGJvZHk6eCx1c2VyUG9zdGFsOmYsYWRkcmVzczp6LGJpcnRoZGF0ZTpBLHRyYWRlaW46aCxwb3B1cGRpdjoiIix1c2VyRW1haWw6ZC5qb2luKCI7IiksdXNlck5hbWU6bC5qb2luKCIgIiksdXNlclBob25lOnAuam9pbigiLCIpLHNtczphLnNldHRpbmdzLmZvcm0uc21zLHBvcHVwT2ZmZXJUeXBlOmEuc2V0dGluZ3MuZm9ybS5vZmZlcnR5cGUsY29tbWVudHM6dH07JC5leHRlbmQoITAsZW1haWxIYW5kbGVyLGcpOyJzdHJpbmciPT10eXBlb2YgZW1haWxIYW5kbGVyLnVzZXJOYW1lJiYoZz1lbWFpbEhhbmRsZXIudXNlck5hbWUuc3BsaXQoIiAiKSxlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1nLnNoaWZ0KCksZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1nLmpvaW4oIiAiKSk7ZW1haWxIYW5kbGVyLnBvcHVwZGl2PWEudGFyZ2V0LmF0dHIoImlkIik7CmlmKGEuc2V0dGluZ3MuZmlsbGZsYWcpdmFyIEM9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgicG9wdXBGb3JtRmlsbGVkIiwiMSIsOTAsIi8iKTtjLnRyaWdnZXIoInBvcHVwaXplci5mb3JtRmlsbGVkIixhKX07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGVtYWlsSGFuZGxlci5jYWxsYmFjayYmMDxlbWFpbEhhbmRsZXIuY2FsbGJhY2subGVuZ3RoKXZhciBEPWVtYWlsSGFuZGxlci5jYWxsYmFjazt2YXIgRT1mdW5jdGlvbigpe3JldHVybiEwfTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVyc3VibWl0JiYoRT1hLnNldHRpbmdzLm9uQWZ0ZXJzdWJtaXQpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PWZ1bmN0aW9uKCl7Yy5jc3Moe29wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD1mdW5jdGlvbihlKXthLnNldHRpbmdzLmNsb3NlT25TdWJtaXQ\/CmEuY2xvc2UoKTpjLnJldmVhbChhLnNldHRpbmdzLnJldmVhbCk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITE7ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PSExfTtlbWFpbEhhbmRsZXIub25EdXBsaWNhdGVTZW5kPWZ1bmN0aW9uKCl7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0JiZhLmNsb3NlKCk7ZW1haWxIYW5kbGVyLnJlc2V0Q2FsbGJhY2tzKCl9O2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgbj0hMTthLnNldHRpbmdzLmZvcm0uc2hvd0VtYWlsQ29uZmlybWF0aW9uJiYobj1nZXRNYWlsU2VudEhhbmRsZXIoIl8iK2MuYXR0cigiaWQiKSksbi50aW1lb3V0Q2FsbGJhY2s9ZnVuY3Rpb24oKXtiLnRyaWdnZXIoInJlc2V0Iil9KTt2YXIgRj1hLnNldHRpbmdzLmNsb3NlT25TdWJtaXQ7aWYoZSlhLmxvZ0V2ZW50KCJwb3B1cC5sZWFkX3NlbnQiKSwwPT1FLmNhbGwoYyxhKSYmKEY9ITEpLCJmdW5jdGlvbiI9PXR5cGVvZiBDJiZDKCksImZ1bmN0aW9uIj09CnR5cGVvZiBEJiZEKCksIm9uU3VibWl0Ij09YS5zZXR0aW5ncy5jb29raWVDcmVhdGUmJmEuc2V0Q29va2llKCksRiYmImhpZGRlbiIhPWMuY3NzKCJ2aXNpYmlsaXR5IikmJmEuY2xvc2UoIkNPTlNFTlQiKSxhLnNldHRpbmdzLm1haW5wb3B1cCYmKGVtYWlsSGFuZGxlci5tYWluUHJvbW89ITApLG4\/bi5zaG93U3VjY2VzcygpOjA8JCgiZm9ybSMiK2MuYXR0cigiaWQiKSsiX2NvbmZpcm0iKS5sZW5ndGgmJiQoImZvcm0jIitjLmF0dHIoImlkIikrIl9jb25maXJtIikudHJpZ2dlcigic3VibWl0Iik7ZWxzZXtufHwobj1nZXRNYWlsU2VudEhhbmRsZXIoKSk7dHJ5e24uc2hvd0ZhaWwoKX1jYXRjaChHKXt9fXNldFRpbWVvdXQoZW1haWxIYW5kbGVyLnJlc2V0Q2FsbGJhY2tzKCksMUUzKX07YS5zYXZlU2V0dGluZ3Moe3N1Ym1pdHRlZDohMH0pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlU2VuZE1haWwmJjA9PWEuc2V0dGluZ3Mub25CZWZvcmVTZW5kTWFpbC5jYWxsKGMsCmEpKXJldHVybiExO2Euc2V0RGVmYXVsdEFERigpOyJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQURGJiYoZz1hLnNldHRpbmdzLm9uQURGLmNhbGwoYyxhKSwib2JqZWN0Ij09dHlwZW9mIGcmJiQuZXh0ZW5kKGEuc2V0dGluZ3MuQURGLGcpKTtnPSJtYWtlIG1vZGVsIHllYXIgc3RvY2tOdW1iZXIgdHJpbSB2aW4gcHJpY2UgY2FyaWQiLnNwbGl0KCIgIik7cT1hLnNldHRpbmdzLkFERjtmb3IodmFyIHk9MDt5PGcubGVuZ3RoO3krKyl7dmFyIHI9Z1t5XTtlbWFpbEhhbmRsZXJbcl09IiIhPWVtYWlsSGFuZGxlcltyXT9lbWFpbEhhbmRsZXJbcl06cVtyXT9xW3JdOmVtYWlsSGFuZGxlcltyXX1lbWFpbEhhbmRsZXIuYm9keT1hLmNsZWFuQmxhbmtWYXJpYWJsZXMoZW1haWxIYW5kbGVyLmJvZHkpO2Euc2hvd1B1cmNoYXNlSW50ZW50UG9wdXAoKXx8ZW1haWxIYW5kbGVyLnNlbmRNYWlsKGEuc2V0dGluZ3MuYnlwYXNzQ29uc2VudCk7cmV0dXJuITB9O2Euc2hvd1B1cmNoYXNlSW50ZW50UG9wdXA9CmZ1bmN0aW9uKCl7aWYoYS5zZXR0aW5ncy5wdXJjaGFzZUludGVudFBvcHVwKXt2YXIgYj0kKCIjaW50ZXJzdGl0aWFsVmVoaWNsZUludGVudCIpO2lmKDE+Yi5sZW5ndGh8fG51bGwhPUNvb2tpZXMuZ2V0KCJwdXJjaGFzZV9pbnRlbnQiKSlyZXR1cm4hMTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkludGVudGlvbnMgZCdhY2hhdCIsIlBvcHVwIHZ1cyIsYS5zZXR0aW5ncy5nb29nbGVUcmFja2luZy5sYWJlbCwxKTtjLmNzcyh7b3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtiLmZpbmQoImZvcm0iKS5vbigic3VibWl0IixmdW5jdGlvbigpe3ZhciBkPSQodGhpcyksZj1kLmZpbmQoImlucHV0Iik7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAifSkuc3RhcnQoKTtkLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7Zi5maWx0ZXIoIi5yZXF1aXJlZCIpLnJlcXVpcmUoKS5ub25IdG1sKCk7Zi5maWx0ZXIoIi5yZXFSYWRpbyIpLnJhZGlvT3B0aW9uQ2hvc2VuKCk7CmlmKCQudmFsaWRpdHkuZW5kKCkudmFsaWQpe2IudHJpZ2dlcigicmV2ZWFsOmNsb3NlIik7dmFyIGg9e3B1cmNoYXNlX2ludGVudDohMH07ZC5zZXJpYWxpemVBcnJheSgpLm1hcChmdW5jdGlvbihsLHAsZyl7aFtsLm5hbWVdPWwudmFsdWV9KTtDb29raWVzLnNldCgicHVyY2hhc2VfaW50ZW50IixoLnB1cmNoYXNlX2ludGVudCwzMCwiLyIpO2dhVHJhY2soIl90cmFja0V2ZW50IiwiSW50ZW50aW9ucyBkJ2FjaGF0IiwiUmVwb25zZXMiLGgucHVyY2hhc2VfaW50ZW50LDEpO2VtYWlsSGFuZGxlci5zZW5kTWFpbChhLnNldHRpbmdzLmJ5cGFzc0NvbnNlbnQpfXJldHVybiExfSk7Yi5yZXZlYWwoe2Nsb3NlX29uX2JhY2tncm91bmRfY2xpY2s6ITEsZGlzbWlzc19tb2RhbF9jbGFzczoiX19OVUxMX18ifSk7cmV0dXJuITB9cmV0dXJuITF9O2EuZ2xvYmFsUmVwbGFjZW1lbnRzPWZ1bmN0aW9uKCl7dmFyIGI9W107JCgiaW5wdXRbdHlwZT1oaWRkZW5dIikuZWFjaChmdW5jdGlvbigpe3ZhciBnPQokKHRoaXMpLmF0dHIoIm5hbWUiKTtnPSJ1bmRlZmluZWQiIT10eXBlb2YgZz9nOiQodGhpcykuYXR0cigiaWQiKTtpZighZylyZXR1cm4hMDt2YXIgdD0hMTsiZW1haWxidWlsZGFuZHByaWNlIj09Zy50b0xvd2VyQ2FzZSgpJiYiIj09JCh0aGlzKS52YWwoKS5yZXBsYWNlKC8gL2csIiIpJiYodD0hMCk7dHx8KCJicmFuZCI9PWcudG9Mb3dlckNhc2UoKSYmYi5wdXNoKHtuYW1lOiJtYWtlIix2YWx1ZTokKHRoaXMpLnZhbCgpfSksYi5wdXNoKHtuYW1lOmcsdmFsdWU6JCh0aGlzKS52YWwoKX0pKX0pO3ZhciBkPSIiO2lmKDA8JCgiI2xhc3R2aWV3ZWRtYWtlIikubGVuZ3RoJiYwPCQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpLmxlbmd0aCl7dmFyIGY9JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO2Q9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCk7dmFyIGg9JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpLGw9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkscD0kKCIjbGFzdHZpZXdlZHRyaW0iKS52YWwoKXx8CiIiO2Q9ZCsiICIraCsiICIrbCsocC5sZW5ndGg\/IiAiK3A6IiIpO2QrPTA8Zi5sZW5ndGg\/IiAoU3RvY2sjICIrZisiKSI6IiJ9Yi5wdXNoKHtuYW1lOiJMQVNUVkVISUNMRVZJRVdFRCIsdmFsdWU6ZH0pO3JldHVybiBifTthLmNsZWFuQmxhbmtWYXJpYWJsZXM9ZnVuY3Rpb24oYil7dmFyIGQ9Yi5yZXBsYWNlKC97XCRRVUVTVElPTlN9L2csIiIpLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZywiIikucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZywiIikucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLCIiKS5yZXBsYWNlKC97XCRQQVlNRU5UfS9nLCIiKS5yZXBsYWNlKC97XCRQQVlNRU5UVEVSTX0vZywiIikucmVwbGFjZSgve1wkT0ZGRVJ9L2csIiIpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLCIiKS5yZXBsYWNlKC97XCRDT0xPUn0vZywiIikucmVwbGFjZSgve1wkRk5BTUV9L2csCiIiKS5yZXBsYWNlKC97XCRMTkFNRX0vZywiIikucmVwbGFjZSgve1wkRU1BSUx9L2csIiIpLnJlcGxhY2UoL3tcJFVTRVJQSE9ORX0vZywiIik7bWFpbFBhZ2UmJmIucmVwbGFjZSgve1wkRU1BSUxCVUlMREFORFBSSUNFfS9nLG1haWxQYWdlLmJhbmRwTGluaygpKTtyZXR1cm4gZH07YS5jYW5jZWw9ZnVuY3Rpb24oKXthLmNsb3NlKCJDQU5DRUwiKX07YS5vcGVuPWZ1bmN0aW9uKGIpe2lmKDE9PWMuZGF0YSgib3BlbiIpKXJldHVybiExOyJvYmplY3QiPT10eXBlb2YgYiYmLTEhPSJjbGljayB0YXAiLmluZGV4T2YoYi50eXBlLnRvTG93ZXJDYXNlKCkpJiYoaz0iY2xpY2siKTtpZighaXNOYU4oYikpcmV0dXJuIHNldFRpbWVvdXQoYS5vcGVuLDFFMypiKTtpZighYS5pc0NvbnRlbnRMb2FkZWQoKSlyZXR1cm4gYS5sb2FkKGEub3Blbik7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93Lm5ld1ZEUFZpZGVvSXNQbGF5aW5nJiYxPT13aW5kb3cubmV3VkRQVmlkZW9Jc1BsYXlpbmcmJgoiY2xpY2siIT1rfHxhLmlzQWN0aXZlKCkpcmV0dXJuIGEub3Blbig1KTthLm9uT3BlbigpO3JldHVybiBhfTthLmV4ZWNPcGVuPWZ1bmN0aW9uKCl7bnVsbD09Q29va2llcy5nZXQoInBvcHVwU2hvd25FeGVjIikmJihDb29raWVzLnNldCgicG9wdXBTaG93bkV4ZWMiLCIxIixudWxsLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSksYS5vcGVuKDApKX07YS5pbml0Q291bnRkb3duPWZ1bmN0aW9uKCl7dHJ5e3ZhciBiPW5ldyBEYXRlKDFFMyphLnNldHRpbmdzLmNvdW50ZG93bik7aWYoMDxjLmZpbmQoIi5jb3VudGRvd24iKS5sZW5ndGgpe3ZhciBkPWMuZmluZCgiLmNvdW50ZG93biIpLGY9bmV3IERhdGUsaD1iLmdldFRpbWUoKS1mLmdldFRpbWUoKTtpZigwPGgpe3ZhciBsPVtNYXRoLmZsb29yKGgvODY0RTUpLE1hdGguZmxvb3IoaCU4NjRFNS8zNkU1KSxNYXRoLmZsb29yKGglODY0RTUlMzZFNS82RTQpLE1hdGguZmxvb3IoaCU4NjRFNSUzNkU1JTZFNC8xRTMpXTtmb3IoYj0wO2I8CmwubGVuZ3RoO2IrKylsW2JdPTk8bFtiXT9sW2JdLnRvU3RyaW5nKCk6IjAiK2xbYl07dmFyIHA9bC5qb2luKCI6Iik7ZC5jb3VudGRvd24oe3N0YXJ0VGltZTpwLGltYWdlOiIvaW1hZ2VzL2RpZ2l0c19zbWFsbC5wbmciLGRpZ2l0V2lkdGg6MjksZGlnaXRIZWlnaHQ6NDN9KX1lbHNlIGQuaGlkZSgpfX1jYXRjaChnKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmKGRlYnVnKGcpLGRlYnVnKCJJbnZhbGlkIGRhdGUgIixhLnNldHRpbmdzLmNvdW50ZG93bikpfX07YS5jbG9zZT1mdW5jdGlvbihiKXtpZigiQ0FOQ0VMIj09YiYmImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVDYW5jZWwpe3ZhciBkPWEuc2V0dGluZ3Mub25CZWZvcmVDYW5jZWwuY2FsbChjLGEpO2lmKDA9PWQpcmV0dXJuITF9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVDbG9zZSYmKGQ9YS5zZXR0aW5ncy5vbkJlZm9yZUNsb3NlLmNhbGwoYyxhLGIpLDA9PWQpKXJldHVybiExOwpjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfTthLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHBvcHVwaXplckFjdGl2ZSgpfTthLnNldENvb2tpZT1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSwiMSIsYS5zZXR0aW5ncy5jb29raWVEdXJhdGlvbiwiLyIpO3ZhciBiPWEuc2V0dGluZ3MuY29va2llTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCJyZWJhdGVzaG93biI9PWJ8fCJyZWJhdGVvdGhlcnNob3duIj09YiYmInVzZWQiPT0kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpKWI9bmV3IERhdGUsYi5zZXRUaW1lKGIuZ2V0VGltZSgpKzE4RTQpLENvb2tpZXMuc2V0KCJ1c2VkU2xpZGVyUG9wdXBEaXNwbGF5ZWQiLCIxIixiLCIvIil9O2Euc2F2ZVNldHRpbmdzPWZ1bmN0aW9uKGIpe2I9InVuZGVmaW5lZCI9PXR5cGVvZiBiP3t9OmI7Yj0ib2JqZWN0IiE9dHlwZW9mIGI\/e3VzZXJEZWZpbmVkTm9uT2JqZWN0OmJ9OmI7Yy5kYXRhKCJwb3B1cFNldHRpbmdzIiwKJC5leHRlbmQoITAsYS5zZXR0aW5ncyxiKSl9O2Euc2V0RGVmYXVsdEFERj1mdW5jdGlvbigpe3ZhciBiPSQoIiNwb3B1cG1ha2UiKS52YWwoKSxkPSQoIiNwb3B1cG1vZGVsIikudmFsKCksZj0kKCIjcG9wdXB5ZWFyIikudmFsKCk7MDwkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKCkubGVuZ3RoJiYwPCQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoKS5sZW5ndGgmJjA8JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCkubGVuZ3RoJiYoYj0kKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKCksZD0kKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCksZj0kKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoKSk7YS5zZXR0aW5ncy5BREY9e21ha2U6Yixtb2RlbDpkLHllYXI6ZixzdG9ja051bWJlcjokKCIjcG9wdXBzdG9ja251bWJlciIpLnZhbCgpfX07YS5sb2dFdmVudD1mdW5jdGlvbihiKXt2YXIgZD1hLnNldHRpbmdzLmZvcm07ZD1kLm9mZmVydHlwZT9kLm9mZmVydHlwZToiRU1BSUxJRF8iK2QuZW1haWxpZDsKaWYoIWIpcmV0dXJuITE7JChhLnRhcmdldCkudHJpZ2dlcihiKTtpZigicG9wdXAubGVhZF9zZW50Ij09Yil7dmFyIGY9ay5yZXBsYWNlKC8oXlthLXpdezF9KS9nLGZ1bmN0aW9uKGwpe3JldHVybiBsLnRvVXBwZXJDYXNlKCl9KSxoPWQyY21lZGlhLnBhZ2VEZXBhcnRtZW50KCk7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlBvcHVwLWxlYWRzIixmLGgsMSl9InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsYixkLGEpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYixkKSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGQpfTthLmlzQ29udGVudExvYWRlZD1mdW5jdGlvbigpe2lmKCFhLnRhcmdldFswXS5oYXNBdHRyaWJ1dGUoImRhdGEtbGF6eWxvYWRpZCIpKXJldHVybiEwOwp2YXIgYj0wPT09YS50YXJnZXQuaHRtbCgpLnRyaW0oKS5sZW5ndGgsZD1hLnNldHRpbmdzLmNvbnRlbnRMb2FkZWR8fCExO3JldHVybiFiJiZkfTthLmxvYWQ9ZnVuY3Rpb24oYil7YS5pc0NvbnRlbnRMb2FkZWQoKT8oYS5zZXR0aW5ncy5jb250ZW50TG9hZGVkPSEwLGIoKSk6JC5hamF4KHt0eXBlOiJHRVQiLGNhY2hlOiEwLHVybDooIkVOR0xJU0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UG9wdXBDb250ZW50IixkYXRhOnt3c3dpZHRoOiIwIixfOmEuc2V0dGluZ3MuaWRlbnQsaWQ6YS50YXJnZXQuZGF0YSgibGF6eWxvYWRpZCIpLG1ha2U6JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCl8fCIiLG1vZGVsOiQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKXx8IiIseWVhcjokKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKXx8IiIsdHJpbTokKCIjbGFzdHZpZXdlZHRyaW0iKS52YWwoKXx8IiIsCnN0b2NrTnVtYmVyOiQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKXx8IiIsdmVoaWNsZUlkOiQoIiN0b3BjYXJpZCIpLnZhbCgpfHwwfSxzdWNjZXNzOmZ1bmN0aW9uKGQpe2EudGFyZ2V0Lmh0bWwoZCk7YS5zZXR0aW5ncy5jb250ZW50TG9hZGVkPSEwOyJmdW5jdGlvbiI9PT10eXBlb2YgYWRkTm9UcmFuc2xhdGVFbWFpbERlZiYmYWRkTm9UcmFuc2xhdGVFbWFpbERlZigpO2IoKX19KX07YS5jcmVhdGVDb25maXJtRm9ybT1mdW5jdGlvbigpe3ZhciBiPWEudGFyZ2V0LmF0dHIoImlkIikrIl9jb25maXJtIjsxPiQoIiNjb25maXJtX2Zvcm1zIikubGVuZ3RoJiYkKCJib2R5IikuYXBwZW5kKCQoIjxkaXY+PC9kaXY+IikuYXR0cigiaWQiLCJjb25maXJtX2Zvcm1zIikpO2lmKDE+JCgiIyIrYikubGVuZ3RoJiZhLnNldHRpbmdzLmNvbmZpcm1Gb3JtJiYwIT09YS5zZXR0aW5ncy5jb25maXJtRm9ybS5sZW5ndGgpe2I9JCgiPGZvcm0+PC9mb3JtPiIpLmF0dHIoImlkIixiKS5hdHRyKCJtZXRob2QiLAoiUE9TVCIpLmF0dHIoImFjdGlvbiIsIi9jb25maXJtYXRpb24uaHRtbCIpLmF0dHIoInRhcmdldCIsImlmcmFtZWd0cmFjayIpO3ZhciBkPSQoIiNhdXRvYXViYWluZV9wb3B1cCIpO2Q9W3tuYW1lOiJndGFnX2NvbnZlcnNpb24iLHZhbHVlOiJndGFnIn0se25hbWU6ImxlYWRfZGVwYXJ0bWVudCIsdmFsdWU6IiJ9LHtuYW1lOiJsZWFkVHlwZSIsdmFsdWU6IiJ9LHtuYW1lOiJwYWdlSUQiLHZhbHVlOiIifSx7bmFtZToiY3VycmVudFVSTCIsdmFsdWU6IiJ9LHtuYW1lOiJidXR0b25Qb3NpdGlvbiIsdmFsdWU6IiJ9LHtuYW1lOiJkZWFsZXJOYW1lIix2YWx1ZToiIn0se25hbWU6ImlzRnVsbFdpZHRoIix2YWx1ZToiIn0se25hbWU6ImlzTW9iaWxlTmV3VkRQIix2YWx1ZToiIn0se25hbWU6InRlc3Rtb2RlIix2YWx1ZToiMCIsY2xhc3M6InRlc3Rtb2RlIn0se25hbWU6ImZyb21BdXRvQXViYWluZSIsdmFsdWU6MDxkLmxlbmd0aCYmImZhbHNlIiE9ZC52YWwoKX1dO1tdLnB1c2guYXBwbHkoZCwKYS5zZXR0aW5ncy5jb25maXJtRm9ybSk7Zm9yKHZhciBmPTA7ZjxkLmxlbmd0aDtmKyspJCgiPGlucHV0IC8+IikuYXR0cigidHlwZSIsImhpZGRlbiIpLmF0dHIoZFtmXSkuYXBwZW5kVG8oYik7JCgiI2NvbmZpcm1fZm9ybXMiKS5hcHBlbmQoYik7Yi5vbigic3VibWl0IixvbkNvbmZpcm1TdWJtaXQpfTE+JCgiI2d0cmFja0ZyYW1lIikubGVuZ3RoJiYkKCI8aWZyYW1lPjwvaWZyYW1lPiIpLmF0dHIoe3dpZHRoOjEsaGVpZ2h0OjEsZnJhbWVCb3JkZXI6MCxpZDoiZ3RyYWNrRnJhbWUiLG5hbWU6ImlmcmFtZWd0cmFjayIsc3R5bGU6IndpZHRoOiAxcHg7IGhlaWdodDogMXB4OyJ9KS5hcHBlbmRUbygiI2NvbmZpcm1fZm9ybXMiKX07cmV0dXJuIGF9OwpqUXVlcnkoZnVuY3Rpb24oYyl7dmFyIG09YygiI3NpdGVjb21waWxlaWQiKS5sZW5ndGg\/YygiI3NpdGVjb21waWxlaWQiKS52YWwoKTpNYXRoLnJvdW5kKDFFNypNYXRoLnJhbmRvbSgpKS50b1N0cmluZygxNik7Yy5mbi5wb3B1cGl6ZT1mdW5jdGlvbihhKXthPWE\/YTp7fTt2YXIgaz17cmV2ZWFsOnthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSxmb3JtOntlbWFpbGlkOjAsb2ZmZXJ0eXBlOjAsbmFtZTowLHNlbmRUbzowLHNlbmRUb0FERjowLE9LQnV0dG9uQ2xhc3M6InN1Ym1pdEJ0biIsQ2FuY2VsQnV0dG9uQ2xhc3M6ImNhbmNlbEJ0biIsc2hvd0VtYWlsQ29uZmlybWF0aW9uOiExfSxBREY6e21ha2U6IiIsbW9kZWw6IiIseWVhcjoiIixzdG9ja051bWJlcjoiIn0saWRlbnQ6bSxlbmRQb3B1cFF1ZXVlOiExLHByaW9yaXR5OjEsYW5pbWF0aW9uOiExLApub3RyYW5zZm9ybTohMSxmaWxsZmxhZzohMSxzdWJtaXR0ZWQ6ITEsc2hvd29ubG9hZDohMSxjb29raWVOYW1lOiExLGNvb2tpZUR1cmF0aW9uOjYwLGNsb3NlT25TdWJtaXQ6ITAsYWRkZWRDbGFzc2VzOiIifTtpZigxPT10aGlzLmxlbmd0aCl7dmFyIGI9dGhpcy5kYXRhKCJwb3B1cFNldHRpbmdzIik\/dGhpcy5kYXRhKCJwb3B1cFNldHRpbmdzIik6e307c2V0dGluZ3M9e307Yy5leHRlbmQoITAsc2V0dGluZ3MsayxiLGEpOyFzZXR0aW5ncy5jb29raWVOYW1lJiYwPHRoaXMuYXR0cigiaWQiKS5sZW5ndGgmJihzZXR0aW5ncy5jb29raWVOYW1lPSJjcHBfIit0aGlzLmF0dHIoImlkIikpOyFzZXR0aW5ncy5uYW1lJiYwPHRoaXMuYXR0cigiaWQiKS5sZW5ndGgmJihzZXR0aW5ncy5uYW1lPXRoaXMuYXR0cigiaWQiKS5yZXBsYWNlKC9Db250YWluZXJcYi8sIiIpKTt0aGlzLmRhdGEoInBvcHVwU2V0dGluZ3MiLHNldHRpbmdzKTthPW5ldyBwb3B1cGl6ZXIodGhpcyxzZXR0aW5ncyk7CnNldHRpbmdzLmluaXRpYWxpemVkfHwoYS5pbml0KCkscG9wdXBTdXBlcnZpc29yLnBvcHVwcy5wdXNoKGEpKTtyZXR1cm4gYX1wb3B1cHM9W107dGhpcy5lYWNoKGZ1bmN0aW9uKCl7cG9wdXBzLnB1c2goYyh0aGlzKS5wb3B1cGl6ZSgpKX0pO3JldHVybiBwb3B1cHN9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYT1udWxsO2Mod2luZG93KS5vbigidG91Y2htb3ZlLCBvbnNjcm9sbCwgc2Nyb2xsIG1vdXNld2hlZWwgcmVzaXplIixmdW5jdGlvbihrKXtjbGVhclRpbWVvdXQoYSk7YT1zZXRUaW1lb3V0KHBvcHVwU3VwZXJ2aXNvci5yZXBvc2l0aW9uLDFFMyl9KX0sMUUzKX0pOwovKiogL2pzL3Z0aXAuanMgKiovCnZhciBfX19kMmNfdnRpcGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6NDciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3Z0aXBqc19jX29uPSIyMDI0LTAzLTI1IDEyOjM1OjM5IjsidXNlIHN0cmljdCI7CnRoaXMudnRpcD1mdW5jdGlvbigpe3RoaXMueE9mZnNldD0tMTA7dGhpcy55T2Zmc2V0PTEwOyQoIi52dGlwIikub2ZmKCkub24oImhvdmVyIixmdW5jdGlvbihhKXt0aGlzLnQ9dGhpcy50aXRsZTt0aGlzLnRpdGxlPSIiO3RoaXMudG9wPWEucGFnZVkreU9mZnNldDt0aGlzLmxlZnQ9YS5wYWdlWCt4T2Zmc2V0OyQoImJvZHkiKS5hcHBlbmQoJzxwIGlkPSJ2dGlwIiBzdHlsZT0iei1pbmRleDoxMDAwMDA7Ij48aW1nIGlkPSJ2dGlwQXJyb3ciIC8+Jyt0aGlzLnQrIjwvcD4iKTskKCJwI3Z0aXAgI3Z0aXBBcnJvdyIpLmF0dHIoInNyYyIsIi9pbWFnZXMvc2NyYXRjaC92dGlwX2Fycm93LnBuZyIpOyQoInAjdnRpcCIpLmNzcygidG9wIix0aGlzLnRvcCsicHgiKS5jc3MoImxlZnQiLHRoaXMubGVmdCsicHgiKS5mYWRlSW4oInNsb3ciKX0sZnVuY3Rpb24oKXt0aGlzLnRpdGxlPXRoaXMudDskKCJwI3Z0aXAiKS5mYWRlT3V0KCJzbG93IikucmVtb3ZlKCl9KS5vbigibW91c2Vtb3ZlIiwKZnVuY3Rpb24oYSl7dGhpcy50b3A9YS5wYWdlWSt5T2Zmc2V0O3RoaXMubGVmdD1hLnBhZ2VYK3hPZmZzZXQ7JCgicCN2dGlwIikuY3NzKCJ0b3AiLHRoaXMudG9wKyJweCIpLmNzcygibGVmdCIsdGhpcy5sZWZ0KyJweCIpfSl9O2pRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oYSl7dnRpcCgpfSk7Ci8qKiAvanMvd1NjcmF0Y2hQYWQuanMgKiovCnZhciBfX19kMmNfd1NjcmF0Y2hQYWRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEzOjM3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY193U2NyYXRjaFBhZGpzX2Nfb249IjIwMjQtMDQtMTIgMTg6MzA6MDYiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGQpe2Z1bmN0aW9uIGgoYixhKXt0aGlzLnNwPW51bGw7dGhpcy5zZXR0aW5ncz1iO3RoaXMuJGVsZW09YTt0aGlzLmVuYWJsZWQ9ITA7dGhpcy5zY3JhdGNoPSExO3RoaXMuY3R4PXRoaXMuY2FudmFzPW51bGw7cmV0dXJuIHRoaXN9ZC5mbi53U2NyYXRjaFBhZD1mdW5jdGlvbihiLGEpe2lmKCJlbmFibGUiPT1iKWQodGhpcykuZGF0YSgiX3dTY3JhdGNoUGFkIikuZW5hYmxlKCk7ZWxzZXtpZigib2JqZWN0Ij09PXR5cGVvZiBiKWE9YjtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgYil7dmFyIGM9W10sZj10aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kKHRoaXMpLmRhdGEoIl93U2NyYXRjaFBhZCIpO2UmJigicmVzZXQiPT09Yj9lLnJlc2V0KCk6ImNsZWFyIj09PWI\/ZS5jbGVhcigpOiJlbmFibGVkIj09PWI\/ZS5lbmFibGVkPSEwPT09YTp2b2lkIDAhPT1kLmZuLndTY3JhdGNoUGFkLmRlZmF1bHRTZXR0aW5nc1tiXSYmKHZvaWQgMCE9PWE\/ZS5zZXR0aW5nc1tiXT0KYTpjLnB1c2goZS5zZXR0aW5nc1tiXSkpKX0pO3JldHVybiAxPT09Yy5sZW5ndGg\/Y1swXTowPGMubGVuZ3RoP2M6Zn1hPWQuZXh0ZW5kKHt9LGQuZm4ud1NjcmF0Y2hQYWQuZGVmYXVsdFNldHRpbmdzLGF8fHt9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ZCh0aGlzKSxnPWpRdWVyeS5leHRlbmQoITAse30sYSk7aWYoIWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQpe3ZhciBrPSJCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUgY2FudmFzLCBwbGVhc2UgdXBncmFkZSB0byBhIG1vcmUgbW9kZXJuIGJyb3dzZXIuIjtkKCIjdGV4dERvZXNOb3RTdXBwb3J0SFRNTDUiKS5sZW5ndGgmJihrPWQoIiN0ZXh0RG9lc05vdFN1cHBvcnRIVE1MNSIpLnZhbCgpKTtlLmNzcygicGFkZGluZy10b3AiLCI2MHB4Iik7ZS5jc3MoImhlaWdodCIsIjU1cHgiKTtlLmh0bWwoayk7InVuZGVmaW5lZCIhPXR5cGVvZiBnLmlkVG9BZGQmJmQoIiNibG9ja2FnZSIrCmcuaWRUb0FkZCkubGVuZ3RoJiZkKCIjYmxvY2thZ2UiK2cuaWRUb0FkZCkuY3NzKCJ0b3AiLHBhcnNlSW50KGQoIiNibG9ja2FnZSIrZy5pZFRvQWRkKS5jc3MoInRvcCIpKSszMCsicHgiKTtyZXR1cm4hMX1nPW5ldyBoKGcsZSk7ZS5hcHBlbmQoZy5nZW5lcmF0ZSgpKTtnLnBpeGVscz1nLmNhbnZhcy53aWR0aCpnLmNhbnZhcy5oZWlnaHQ7ZS5kYXRhKCJfd1NjcmF0Y2hQYWQiLGcpO2cuaW5pdCgpfSl9fTtkLmZuLndTY3JhdGNoUGFkLmRlZmF1bHRTZXR0aW5ncz17d2lkdGg6NjAwLGhlaWdodDoxMTUsaW1hZ2U6Ii9pbWFnZXMvc2NyYXRjaC9zbGlkZTIucG5nIixpbWFnZTI6Ii9pbWFnZXMvcG9wdXBzL3N0eWxlMi9zY3JhdGNoLnBuZyIsaW1hZ2VEaXNhYmxlZDoiL2ltYWdlcy9wb3B1cHMvc3R5bGUyL3NjcmF0Y2hfZGlzYWJsZWQucG5nIixjb2xvcjoiIzMzNjY5OSIsb3ZlcmxheToibm9uZSIsc2l6ZTozMCxyZWFsdGltZVBlcmNlbnQ6ITEsc2NyYXRjaERvd246bnVsbCxzY3JhdGNoVXA6bnVsbCwKc2NyYXRjaE1vdmU6bnVsbCxjdXJzb3I6bnVsbCxpZFRvQWRkOiIiLGJhY2tncm91bmRDb2xvcjoiIzAxMGEyOCIsZW5hYmxlZDohMH07aC5wcm90b3R5cGU9e2dlbmVyYXRlOmZ1bmN0aW9uKCl7dGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKTt0aGlzLnNwPWQoIjxkaXY+PC9kaXY+IikuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkuYXBwZW5kKGQodGhpcy5jYW52YXMpLmF0dHIoIndpZHRoIix0aGlzLnNldHRpbmdzLndpZHRoKyJweCIpLmF0dHIoImhlaWdodCIsdGhpcy5zZXR0aW5ncy5oZWlnaHQrInB4IikuYXR0cigic3R5bGUiLCJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0ycHg7dG9wOi0xcHg7ei1pbmRleDoxOyIpKTt0aGlzLnNldHRpbmdzLmVuYWJsZWQmJnRoaXMuZW5hYmxlKCk7cmV0dXJuIHRoaXMuc3B9LGVuYWJsZTpmdW5jdGlvbigpe3RoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2UyLAohMCk7dGhpcy5iaW5kQnJvd3NlcigpO3RoaXMuYmluZE1vYmlsZSh0aGlzLnNwKX0sYmluZEJyb3dzZXI6ZnVuY3Rpb24oYil7dmFyIGE9dGhpcztkKHRoaXMuY2FudmFzKS5vbigibW91c2Vkb3duIixmdW5jdGlvbihjKXtpZighYS5lbmFibGVkKXJldHVybiEwO2MucHJldmVudERlZmF1bHQoKTtjLnN0b3BQcm9wYWdhdGlvbigpO2EuY2FudmFzX29mZnNldD1kKGEuY2FudmFzKS5vZmZzZXQoKTthLnNjcmF0Y2g9ITA7YS5zY3JhdGNoRnVuYyhjLGEsIkRvd24iKX0pLm9uKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKTtjLnN0b3BQcm9wYWdhdGlvbigpO2Euc2NyYXRjaCYmYS5zY3JhdGNoRnVuYyhjLGEsIk1vdmUiKX0pLm9uKCJtb3VzZXVwIixmdW5jdGlvbihjKXtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLnNjcmF0Y2gmJihhLnNjcmF0Y2g9ITEsYS5zY3JhdGNoRnVuYyhjLGEsIlVwIikpfSl9LGJpbmRNb2JpbGU6ZnVuY3Rpb24oYil7Yi5vbigidG91Y2hzdGFydCB0b3VjaG1vdmUgdG91Y2hlbmQgdG91Y2hjYW5jZWwiLApmdW5jdGlvbigpe3ZhciBhPWV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdO3N3aXRjaChldmVudC50eXBlKXtjYXNlICJ0b3VjaHN0YXJ0Ijp2YXIgYz0ibW91c2Vkb3duIjticmVhaztjYXNlICJ0b3VjaG1vdmUiOmM9Im1vdXNlbW92ZSI7YnJlYWs7Y2FzZSAidG91Y2hlbmQiOmM9Im1vdXNldXAiO2JyZWFrO2RlZmF1bHQ6cmV0dXJufXZhciBmPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7Zi5pbml0TW91c2VFdmVudChjLCEwLCEwLHdpbmRvdywxLGEuc2NyZWVuWCxhLnNjcmVlblksYS5jbGllbnRYLGEuY2xpZW50WSwhMSwhMSwhMSwhMSwwLG51bGwpO2EudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZik7ZXZlbnQucHJldmVudERlZmF1bHQoKX0pfSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5zcC5jc3MoIndpZHRoIix0aGlzLnNldHRpbmdzLndpZHRoLTIpO3RoaXMuc3AuY3NzKCJoZWlnaHQiLHRoaXMuc2V0dGluZ3MuaGVpZ2h0LTIpO3RoaXMuc3AuY3NzKCJjdXJzb3IiLHRoaXMuc2V0dGluZ3MuY3Vyc29yPwondXJsKCInK3RoaXMuc2V0dGluZ3MuY3Vyc29yKyciKSwgZGVmYXVsdCc6ImRlZmF1bHQiKTtkKHRoaXMuY2FudmFzKS5jc3Moe2N1cnNvcjp0aGlzLnNldHRpbmdzLmN1cnNvcj8ndXJsKCInK3RoaXMuc2V0dGluZ3MuY3Vyc29yKyciKSwgZGVmYXVsdCc6ImRlZmF1bHQifSk7dGhpcy5jYW52YXMud2lkdGg9dGhpcy5zZXR0aW5ncy53aWR0aDt0aGlzLmNhbnZhcy5oZWlnaHQ9dGhpcy5zZXR0aW5ncy5oZWlnaHQ7dGhpcy5waXhlbHM9dGhpcy5jYW52YXMud2lkdGgqdGhpcy5jYW52YXMuaGVpZ2h0O3RoaXMuc2V0dGluZ3MuaW1hZ2UyPyh0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlMiksdGhpcy5zZXR0aW5ncy5lbmFibGVkfHx0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlRGlzYWJsZWQsITApKTooIm5vbmUiIT10aGlzLnNldHRpbmdzLm92ZXJsYXk\/KHRoaXMuc2V0dGluZ3MuaW1hZ2UmJnRoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2UpLAp0aGlzLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249dGhpcy5zZXR0aW5ncy5vdmVybGF5KTp0aGlzLnNldEJnSW1hZ2UoKSx0aGlzLmN0eC5maWxsU3R5bGU9dGhpcy5zZXR0aW5ncy5jb2xvcix0aGlzLmN0eC5iZWdpblBhdGgoKSx0aGlzLmN0eC5yZWN0KDAsMCx0aGlzLnNldHRpbmdzLndpZHRoLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KSx0aGlzLmN0eC5maWxsKCkpfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLW92ZXIiO3RoaXMuaW5pdCgpfSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5zZXR0aW5ncy53aWR0aCx0aGlzLnNldHRpbmdzLmhlaWdodCl9LHNldEJnSW1hZ2U6ZnVuY3Rpb24oKXt0aGlzLnNldHRpbmdzLmltYWdlJiYodGhpcy5zcC5hZGRDbGFzcygic2NyYXRjaERpdlRleHQiKSx0aGlzLnNwLmNzcygiYmFja2dyb3VuZC1jb2xvciIsdGhpcy5zZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3IpLAp0aGlzLnNwLmFwcGVuZCgiPGRpdiBpZD0nc2NyYXRjaERpdlRleHQiK3RoaXMuc2V0dGluZ3MuaWRUb0FkZCsiJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjMwcHg7Y29sb3I6I2ZmZjttYXJnaW4tbGVmdDowcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyMHB4O3otaW5kZXg6MDsnPiIrZCgiI3NjcmF0Y2hJbnB1dFRleHQiK3RoaXMuc2V0dGluZ3MuaWRUb0FkZCkudmFsKCkrIjwvZGl2PiIpKX0sZHJhd0ltYWdlOmZ1bmN0aW9uKGIsYSl7dmFyIGM9dGhpcyxmPW5ldyBJbWFnZTtmLnNyYz1iO2QoZikub24oImxvYWQiLGZ1bmN0aW9uKCl7Yy5jdHguZHJhd0ltYWdlKGYsMCwwKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEmJmF8fGMuc2V0QmdJbWFnZSgpfSl9LHNjcmF0Y2hGdW5jOmZ1bmN0aW9uKGIsYSxjKXtiLnBhZ2VYPU1hdGguZmxvb3IoYi5wYWdlWC1hLmNhbnZhc19vZmZzZXQubGVmdCk7Yi5wYWdlWT0KTWF0aC5mbG9vcihiLnBhZ2VZLWEuY2FudmFzX29mZnNldC50b3ApO2FbInNjcmF0Y2giK2NdKGIsYSk7KHRoaXMuc2V0dGluZ3MucmVhbHRpbWVQZXJjZW50fHwiVXAiPT1jKSYmYS5zZXR0aW5nc1sic2NyYXRjaCIrY10mJmEuc2V0dGluZ3NbInNjcmF0Y2giK2NdLmFwcGx5KGEsW2IsYS5zY3JhdGNoUGVyY2VudGFnZShhKV0pfSxzY3JhdGNoUGVyY2VudGFnZTpmdW5jdGlvbihiKXtmb3IodmFyIGE9MCxjPWIuY3R4LmdldEltYWdlRGF0YSgwLDAsYi5jYW52YXMud2lkdGgsYi5jYW52YXMuaGVpZ2h0KSxmPTAsZT1jLmRhdGEubGVuZ3RoO2Y8ZTtmKz00KTA9PWMuZGF0YVtmXSYmMD09Yy5kYXRhW2YrMV0mJjA9PWMuZGF0YVtmKzJdJiYwPT1jLmRhdGFbZiszXSYmYSsrO3JldHVybiBhL2IucGl4ZWxzKjEwMH0sc2NyYXRjaERvd246ZnVuY3Rpb24oYixhKXthLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImRlc3RpbmF0aW9uLW91dCI7YS5jdHgubGluZUpvaW49InJvdW5kIjsKYS5jdHgubGluZUNhcD0icm91bmQiO2EuY3R4LnN0cm9rZVN0eWxlPWEuc2V0dGluZ3MuY29sb3I7YS5jdHgubGluZVdpZHRoPWEuc2V0dGluZ3Muc2l6ZTthLmN0eC5iZWdpblBhdGgoKTthLmN0eC5hcmMoYi5wYWdlWCxiLnBhZ2VZLGEuc2V0dGluZ3Muc2l6ZS8yLDAsMipNYXRoLlBJLCEwKTthLmN0eC5jbG9zZVBhdGgoKTthLmN0eC5maWxsKCk7YS5jdHguYmVnaW5QYXRoKCk7YS5jdHgubW92ZVRvKGIucGFnZVgsYi5wYWdlWSl9LHNjcmF0Y2hNb3ZlOmZ1bmN0aW9uKGIsYSl7YS5jdHgubGluZVRvKGIucGFnZVgsYi5wYWdlWSk7YS5jdHguc3Ryb2tlKCl9LHNjcmF0Y2hVcDpmdW5jdGlvbihiLGEpe2EuY3R4LmNsb3NlUGF0aCgpfX19KShqUXVlcnkpOwovKiogL2pzL3N3ZnN0b3JlLmpzICoqLwp2YXIgX19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjoyMSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM3OjUzIjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMy0wMS0xMiAxMTozNToxOCI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDQ6NTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQyOjMxIjsidXNlIHN0cmljdCI7CihmdW5jdGlvbigpe2Z1bmN0aW9uIGcoYSl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhKXRocm93IlN3ZlN0b3JlIEVycm9yOiBGdW5jdGlvbnMgY2Fubm90IGJlIHVzZWQgYXMga2V5cyBvciB2YWx1ZXMuIjt9dmFyIGg9MCxtPS9bXmEtejAtOV9dL2dpO3dpbmRvdy5Td2ZTdG9yZT1mdW5jdGlvbihhKXtmdW5jdGlvbiBlKGQpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYik7Yi5pZD0iU3dmU3RvcmVfIithLm5hbWVzcGFjZSsiXyIraCsrO2R8fChiLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYi5zdHlsZS50b3A9Ii0yMDAwcHgiLGIuc3R5bGUubGVmdD0iLTIwMDBweCIpO3JldHVybiBifWE9YXx8e307dmFyIGY9e3N3Zl91cmw6InN0b3JhZ2Uuc3dmIixuYW1lc3BhY2U6InN3ZnN0b3JlIixwYXRoOm51bGwsZGVidWc6ITEsdGltZW91dDoxMCxvbnJlYWR5Om51bGwsb25lcnJvcjpudWxsfTtmb3IoYyBpbiBmKWYuaGFzT3duUHJvcGVydHkoYykmJgooYS5oYXNPd25Qcm9wZXJ0eShjKXx8KGFbY109ZltjXSkpO2EubmFtZXNwYWNlPWEubmFtZXNwYWNlLnJlcGxhY2UobSwiXyIpO2lmKHdpbmRvdy5Td2ZTdG9yZVthLm5hbWVzcGFjZV0pdGhyb3ciVGhlcmUgaXMgYWxyZWFkeSBhbiBpbnN0YW5jZSBvZiBTd2ZTdG9yZSB1c2luZyB0aGUgJyIrYS5uYW1lc3BhY2UrIicgbmFtZXNwYWNlLiBVc2UgdGhhdCBpbnN0YW5jZSBvciBzcGVjaWZ5IGFuIGFsdGVybmF0ZSBuYW1lc3BhY2UgaW4gdGhlIGNvbmZpZy4iO3RoaXMuY29uZmlnPWE7aWYoYS5kZWJ1Zyl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZSl7dmFyIG49ZSghMCk7d2luZG93LmNvbnNvbGU9e2xvZzpmdW5jdGlvbihkKXt2YXIgYj1lKCEwKTtiLmlubmVySFRNTD1kO24uYXBwZW5kQ2hpbGQoYil9fX10aGlzLmxvZz1mdW5jdGlvbihkLGIsayl7Yj0ic3dmU3RvcmUiPT09Yj8ic3dmIjpiO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGNvbnNvbGVbZF0pY29uc29sZVtkXSgiU3dmU3RvcmUgLSAiKwphLm5hbWVzcGFjZSsiICgiK2IrIik6ICIrayk7ZWxzZSBjb25zb2xlLmxvZygiU3dmU3RvcmUgLSAiK2EubmFtZXNwYWNlKyI6ICIrZCsiICgiK2IrIik6ICIrayl9fWVsc2UgdGhpcy5sb2c9ZnVuY3Rpb24oKXt9O3RoaXMubG9nKCJpbmZvIiwianMiLCJJbml0aWFsaXppbmcuLi4iKTtTd2ZTdG9yZVthLm5hbWVzcGFjZV09dGhpcztmPWUoYS5kZWJ1Zyk7dmFyIGM9IlN3ZlN0b3JlXyIrYS5uYW1lc3BhY2UrIl8iK2grKyxsPSJsb2dmbj1Td2ZTdG9yZS4iK2EubmFtZXNwYWNlKyIubG9nJmFtcDtvbmxvYWQ9U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLm9ubG9hZCZhbXA7b25lcnJvcj1Td2ZTdG9yZS4iK2EubmFtZXNwYWNlKyIub25lcnJvciZhbXA7IisoYS5wYXRoPyJMU09QYXRoPSIrYS5wYXRoKyImYW1wOyI6IiIpKyJMU09OYW1lPSIrYS5uYW1lc3BhY2U7Zi5pbm5lckhUTUw9JzxvYmplY3QgaGVpZ2h0PSIxMDAiIHdpZHRoPSI1MDAiIGNvZGViYXNlPSJodHRwczovL2Rvd25sb2FkLm1hY3JvbWVkaWEuY29tL3B1Yi9zaG9ja3dhdmUvY2Ficy9mbGFzaC9zd2ZsYXNoLmNhYiIgaWQ9IicrCmMrJyIgY2xhc3NpZD0iY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIj4gICAgPHBhcmFtIHZhbHVlPSInK2Euc3dmX3VybCsnIiBuYW1lPSJtb3ZpZSI+ICA8cGFyYW0gdmFsdWU9IicrbCsnIiBuYW1lPSJGbGFzaFZhcnMiPiAgIDxwYXJhbSB2YWx1ZT0iYWx3YXlzIiBuYW1lPSJhbGxvd1NjcmlwdEFjY2VzcyI+ICA8ZW1iZWQgaGVpZ2h0PSIzNzUiIGFsaWduPSJtaWRkbGUiIHdpZHRoPSI1MDAiIHBsdWdpbnNwYWdlPSJodHRwczovL3d3dy5tYWNyb21lZGlhLmNvbS9nby9nZXRmbGFzaHBsYXllciIgZmxhc2h2YXJzPSInK2wrJyIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIGFsbG93c2NyaXB0YWNjZXNzPSJhbHdheXMiIHF1YWxpdHk9ImhpZ2giIGxvb3A9ImZhbHNlIiBwbGF5PSJ0cnVlIiBuYW1lPSInK2MrJyIgYmdjb2xvcj0iI2ZmZmZmZiIgc3JjPSInK2Euc3dmX3VybCsnIj48L29iamVjdD4nO3RoaXMuc3dmPWRvY3VtZW50W2NdfHwKd2luZG93W2NdO3RoaXMuX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe1N3ZlN0b3JlW2EubmFtZXNwYWNlXS5sb2coImVycm9yIiwianMiLCJUaW1lb3V0IHJlYWNoZWQsIGFzc3VtaW5nICIrYS5zd2ZfdXJsKyIgZmFpbGVkIHRvIGxvYWQgYW5kIGZpcmluZyB0aGUgb25lcnJvciBjYWxsYmFjay4iKTtpZihhLm9uZXJyb3IpYS5vbmVycm9yKCl9LDFFMyphLnRpbWVvdXQpfTtTd2ZTdG9yZS5wcm90b3R5cGU9e3ZlcnNpb246IjEuOSIscmVhZHk6ITEsc2V0OmZ1bmN0aW9uKGEsZSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7ZyhlKTt0aGlzLnN3Zi5zZXQoYSxlKX0sZ2V0OmZ1bmN0aW9uKGEpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO3JldHVybiB0aGlzLnN3Zi5nZXQoYSl9LGdldEFsbDpmdW5jdGlvbigpe3RoaXMuX2NoZWNrUmVhZHkoKTt2YXIgYT10aGlzLnN3Zi5nZXRBbGwoKTthLl9fZmxhc2hCdWdGaXgmJmRlbGV0ZSBhLl9fZmxhc2hCdWdGaXg7cmV0dXJuIGF9LApjbGVhcjpmdW5jdGlvbihhKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTt0aGlzLnN3Zi5jbGVhcihhKX0sX2NoZWNrUmVhZHk6ZnVuY3Rpb24oKXtpZighdGhpcy5yZWFkeSl0aHJvdyJTd2ZTdG9yZSBpcyBub3QgeWV0IGZpbmlzaGVkIGluaXRpYWxpemluZy4gUGFzcyBhIGNvbmZpZy5vbnJlYWR5IGNhbGxiYWNrIG9yIHdhaXQgdW50aWwgdGhpcy5yZWFkeSBpcyB0cnVlIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGEgU3dmU3RvcmUgaW5zdGFuY2UuIjt9LG9ubG9hZDpmdW5jdGlvbigpe3ZhciBhPXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFyVGltZW91dChhLl90aW1lb3V0KTthLnJlYWR5PSEwO2Euc2V0KCJfX2ZsYXNoQnVnRml4IiwiMSIpO2lmKGEuY29uZmlnLm9ucmVhZHkpYS5jb25maWcub25yZWFkeSgpfSwwKX0sb25lcnJvcjpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KTtpZih0aGlzLmNvbmZpZy5vbmVycm9yKXRoaXMuY29uZmlnLm9uZXJyb3IoKX19fSkoKTsKLyoqIC9qcy9qcXVlcnkuY291bnRkb3duLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MzIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMy0wMS0xMiAxMTo0MDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIzLTAxLTEyIDEwOjUwOjEwIjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjEtMTItMTUgMTI6NTA6MzUiOyJ1c2Ugc3RyaWN0IjsKalF1ZXJ5LmZuLmNvdW50ZG93bj1mdW5jdGlvbihoKXtpZigxPHRoaXMubGVuZ3RoKXJldHVybiAkKHRoaXMpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmNvdW50ZG93bihoKX0pLHRoaXM7aWYodGhpcy5kYXRhKCJjb3VudGluZyIpKXJldHVybiB0aGlzO3RoaXMuZGF0YSgiY291bnRpbmciLCEwKTt2YXIgYT17c3RlcFRpbWU6NjAsZm9ybWF0OiJkZDpoaDptbTpzcyIsc3RhcnRUaW1lOiIwMToxMjozMjo1NSIsZGlnaXRJbWFnZXM6NixkaWdpdFdpZHRoOjUzLGRpZ2l0SGVpZ2h0Ojc3LHRpbWVyRW5kOmZ1bmN0aW9uKCl7fSxpbWFnZToiZGlnaXRzLnBuZyJ9LGM9W10sZj1mdW5jdGlvbihiLGQpe3JldHVybiB2b2lkIDAhPT1kP2NbYl0uY3NzKHttYXJnaW5Ub3A6ZCsicHgifSk6cGFyc2VJbnQoY1tiXS5jc3MoIm1hcmdpblRvcCIpLnJlcGxhY2UoInB4IiwiIikpfSxrPWZ1bmN0aW9uKGIpe2NbYl0uX2RpZ2l0SW5pdGlhbD0tKGNbYl0uX19tYXgqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKTsKcmV0dXJuIGZ1bmN0aW9uIGUoKXttdG9wPWYoYikrYS5kaWdpdEhlaWdodDtpZihtdG9wPT1hLmRpZ2l0SGVpZ2h0KWlmKGYoYixjW2JdLl9kaWdpdEluaXRpYWwpLDA8YilrKGItMSkoKSwwPGImJnZvaWQgMCE9PWNbYl0uX19jb25kbWF4JiZjW2ItMV0uX2RpZ2l0SW5pdGlhbD09ZihiLTEpJiZmKGIsLShjW2JdLl9fY29uZG1heCphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMpKTtlbHNle2NsZWFySW50ZXJ2YWwobCk7Zm9yKHZhciBnPTA7ZzxjLmxlbmd0aDtnKyspZihnLDApO2EudGltZXJFbmQoKX1lbHNlIGYoYixtdG9wKSwwIT1mKGIpL2EuZGlnaXRIZWlnaHQlYS5kaWdpdEltYWdlcyYmc2V0VGltZW91dChlLGEuc3RlcFRpbWUpLDA9PW10b3AmJihjW2JdLl9faXNtYXg9ITApfX07JC5leHRlbmQoYSxoKTt0aGlzLmNzcyh7aGVpZ2h0OmEuZGlnaXRIZWlnaHQsb3ZlcmZsb3c6ImhpZGRlbiJ9KTsoZnVuY3Rpb24oYil7Zm9yKHZhciBkPTAsZT0wO2U8YS5zdGFydFRpbWUubGVuZ3RoO2UrKyl7aWYoMDw9CnBhcnNlSW50KGEuc3RhcnRUaW1lW2VdKSl7ZWxlbT0kKCc8ZGl2IGlkPSJjbnRfJytlKyciIGNsYXNzPSJjbnREaWdpdCIgLz4nKS5jc3Moe2hlaWdodDphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMqMTAsZmxvYXQ6ImxlZnQiLGJhY2tncm91bmQ6InVybCgnIithLmltYWdlKyInKSIsd2lkdGg6YS5kaWdpdFdpZHRofSk7Yy5wdXNoKGVsZW0pO2YoZCwtKHBhcnNlSW50KGEuc3RhcnRUaW1lW2VdKSphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMpKTtjW2RdLl9fbWF4PTk7c3dpdGNoKGEuZm9ybWF0W2VdKXtjYXNlICJoIjpjW2RdLl9fbWF4PTA9PWQlMj8yOjk7MD09ZCUyJiYoY1tkXS5fX2NvbmRtYXg9NCk7YnJlYWs7Y2FzZSAiZCI6Y1tkXS5fX21heD05O2JyZWFrO2Nhc2UgIm0iOmNhc2UgInMiOmNbZF0uX19tYXg9MD09ZCUyPzU6OX0rK2R9ZWxzZSBlbGVtPSQoJzxkaXYgY2xhc3M9ImNudFNlcGFyYXRvciIvPicpLmNzcyh7ZmxvYXQ6ImxlZnQifSkudGV4dChhLnN0YXJ0VGltZVtlXSk7CmIuYXBwZW5kKGVsZW0pfX0pKHRoaXMpO3ZhciBsPXNldEludGVydmFsKGsoYy5sZW5ndGgtMSksMUUzKX07Ci8qKiAvanMvZGF0ZVV0aWxzLmpzICoqLwp2YXIgX19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6NDYiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MDEiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMy0wMS0xMiAxMTozNDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ0OjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjEtMTItMTUgMTI6NDE6MjMiOyJ1c2Ugc3RyaWN0IjtEYXRlLnByb3RvdHlwZS5hbW91bnRCZXR3ZWVuPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YXx8InVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKXJldHVybiBudWxsO2E9YS5nZXRUaW1lKCk7Yj1iLmdldFRpbWUoKTtyZXR1cm4gTWF0aC5mbG9vcigoYi1hLWQpL2MpfTsKLyoqIC9qcy9kMmNfYXNjX2dhNC5qcyAqKi8KdmFyIF9fX2QyY19kMmNhc2NnYTRqc19jX29uPSIyMDI2LTA0LTE2IDEzOjMwOjA0IjsndXNlIHN0cmljdCc7dmFyIGFzY1RvcENhckRldGFpbHM9ITEsYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9ITEsYXNjTGFzdEZpbHRlckNsaWNrPSExLGFzY0xhc3RDdGFDbGljaz0hMTtmdW5jdGlvbiBkMmFzY1B1YmxpY2F0aW9uRGF0ZShkKXtpZigiIj09ZClyZXR1cm4iIjt2YXIgZz1uZXcgRGF0ZShkKTtkPSIiKyhnLmdldE1vbnRoKCkrMSk7dmFyIGs9IiIrZy5nZXREYXRlKCk7Zz1nLmdldEZ1bGxZZWFyKCk7MTA+cGFyc2VGbG9hdChkKSYmKGQ9IjAiK2QpOzEwPnBhcnNlRmxvYXQoaykmJihrPSIwIitrKTtyZXR1cm5bZCxrLGddLmpvaW4oIi8iKX1mdW5jdGlvbiBlbnN1cmVUcnV0aHkoZCl7cmV0dXJuIGQ\/ZDoiIn0KZnVuY3Rpb24gYXNjVXBkYXRlVG9wQ2FyRGF0YShkKXtpZighMSE9PWQpe2xldCBnPWQyYXNjUHVibGljYXRpb25EYXRlKGVuc3VyZVRydXRoeShkLmRhdGVfbGlzdGluZykpLGs9ZC5tYWtlY2VydCsiIjthc2NUb3BDYXJEZXRhaWxzPXtpdGVtX2lkOmVuc3VyZVRydXRoeShkLk5JViksaXRlbV9udW1iZXI6ZW5zdXJlVHJ1dGh5KGQuaWQpLGl0ZW1fcHJpY2U6ZW5zdXJlVHJ1dGh5KGQucHJpY2UpLGl0ZW1fY29uZGl0aW9uOmVuc3VyZVRydXRoeShkLnZjYXRlZ29yeSkudG9Mb3dlckNhc2UoKSxpdGVtX3llYXI6ZW5zdXJlVHJ1dGh5KGQueWVhcikudG9Mb3dlckNhc2UoKSxpdGVtX21ha2U6ZW5zdXJlVHJ1dGh5KGQubWFrZSkudG9Mb3dlckNhc2UoKSxpdGVtX21vZGVsOmVuc3VyZVRydXRoeShkLm1vZGVsKS50b0xvd2VyQ2FzZSgpLGl0ZW1fdmFyaWFudDplbnN1cmVUcnV0aHkoZC52ZXJzaW9uKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY29sb3I6ZW5zdXJlVHJ1dGh5KGQuY29sb3IpLnRvTG93ZXJDYXNlKCksCml0ZW1fdHlwZTplbnN1cmVUcnV0aHkoZC5ib2R5VHlwZUlEKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY2F0ZWdvcnk6ZW5zdXJlVHJ1dGh5KCIiKSxpdGVtX2Z1ZWxfdHlwZTplbnN1cmVUcnV0aHkoZC52Y2FyYnVyYW50KS50b0xvd2VyQ2FzZSgpLGl0ZW1faW52ZW50b3J5X2RhdGU6ZW5zdXJlVHJ1dGh5KGcpfTsiMjEiIT1rJiYiMCIhPWsmJmQyYXNjLnNldFZlaGljbGVTdGF0dXMoIkNQTyIpfWVsc2UgZD0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiksYXNjVG9wQ2FyRGV0YWlscz17aXRlbV9jb25kaXRpb246Im5ldyIsaXRlbV95ZWFyOiQoImlucHV0W25hbWU9J3llYXInXSIsZCkudmFsKCksaXRlbV9tYWtlOiQoImlucHV0W25hbWU9J21ha2UnXSIsZCkudmFsKCksaXRlbV9tb2RlbDokKCJpbnB1dFtuYW1lPSdtb2RlbCddIixkKS52YWwoKSxpdGVtX3R5cGU6JCgiaW5wdXRbbmFtZT0ndmVoaWNsZUNhdGVnb3J5J10iLGQpLnZhbCgpfTtjb25zb2xlLmxvZygiR0E0IGFzY1RvcENhckRldGFpbHMiLAphc2NUb3BDYXJEZXRhaWxzKX0KZnVuY3Rpb24gZDJhc2NSZXNvbHZlUGFnZUlkKGQpe2Q9ZC5yZXBsYWNlKC88XC8\/W14+XSsoPnwkKS9nLCIiKTtpZihkLmluY2x1ZGVzKCJzaTp2bHMiKSlyZXR1cm4ic2VhcmNoIGludmVudG9yeSI7aWYoZC5pbmNsdWRlcygiOnNpOnZlaGljbGUgZGV0YWlscyIpfHxkLmluY2x1ZGVzKCJ2ZWhpY2xlIikpcmV0dXJuInZkcCI7aWYoZC5pbmNsdWRlcygiY3VzdG9tOiIpKXJldHVybiJibG9nIjtpZihkLmluY2x1ZGVzKCJmaW5hbmNlIikpcmV0dXJuImNyZWRpdCI7aWYoZC5pbmNsdWRlcygic2VydmljZTpyZXF1ZXN0IGFwcG9pbnRtZW50IikpcmV0dXJuInJlcXVlc3QgYXBwb2ludG1lbnQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6b3JkZXIgcGFydHMiKSlyZXR1cm4ib3JkZXIgcGFydHMiO2lmKGQuaW5jbHVkZXMoImFib3V0IHVzOmNvbnRhY3QgdXMiKSlyZXR1cm4iY29udGFjdCB1cyI7aWYoZC5pbmNsdWRlcygiVU5LTk9XTiIpKXtpZigvYnVpbGQtYW5kLXByaWNlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fC9jb25maWd1cmF0aW9uLWV0LXByaXgvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iYnVpbGQgYW5kIHByaWNlIjsKaWYoL3ByaWNlLW5ldy8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvcHJpeC1uZXVmLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuInByaWNlIHJlcXVlc3QiO2lmKC9icm9jaHVyZXMvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iYnJvY2h1cmUiO2lmKC9hdXRvLWpvYnMvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VtcGxvaXMtYXV0b21vYmlsZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJqb2JzIjtpZigvb3VydGVhbS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvZXF1aXBlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuIm91ciB0ZWFtIn1yZXR1cm4gZH0KZnVuY3Rpb24gZDJhc2NSZXNvbHZlTGVhZFR5cGUoZCxnKXtnPWcudG9Mb3dlckNhc2UoKTtsZXQgaz17fTtmb3IodmFyIGwgaW4gZClrW2wudG9Mb3dlckNhc2UoKV09ZFtsXTtsPSQoImh0bWwiKS5hdHRyKCJsYW5nIik7ZD0iIjtsPSJlbiI9PWwudG9Mb3dlckNhc2UoKXx8ImVuZyI9PWwudG9Mb3dlckNhc2UoKT8iRU5HTElTSCI6IkZSRU5DSCI7dm9pZCAwIT09a1tnXSYmdm9pZCAwIT09a1tnXVtsXSYmKGQ9a1tnXVtsXSk7cmV0dXJuIGR9CmZ1bmN0aW9uIEQyQVNDKGQpe2QucGFnZUlkT3JnPWQucGFnZUlkO2QucGFnZUlkPWQyYXNjUmVzb2x2ZVBhZ2VJZChkLnBhZ2VJZCk7ZC5kZWFsZXJfbmFtZT0kKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpO3ZhciBnPXtzdG9yZV9uYW1lOmQuZGVhbGVyX25hbWUudG9Mb3dlckNhc2UoKSxvZW1fY29kZTpkLnBhQ29kZSxvZW1fYnJhbmQ6ZC5jbGllbnQsYWZmaWxpYXRpb246IiIsbGFuZ3VhZ2U6ZC51c2VyTGFuZ3VhZ2UsY3VycmVuY3k6ImNhZCIscGFnZV90eXBlOmQucGFnZUlkLGl0ZW1zOltdLGV2ZW50czpbXSxtZWFzdXJlbWVudF9pZHM6WyJHLTZHRVoyV1dUM0wiXSxwbGF0Zm9ybV9jdXN0b206IiJ9LGs9e2FzY19jbGlja190b19jYWxsOlsiYS5waG9uZS1saW5rIiwiYS5waG9uZS1hY3Rpb24iXSxhc2NfY3RhX2ludGVyYWN0aW9uOiIudi1jYXJkIGE6bm90KC5waG9uZS1saW5rKTsubGVmdF9ib3ggYTsjZm9vdGVyIGE7I3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkX2J0bl8xOyNQdWxsb3V0X0J1aWxkLWFuZC1QcmljZTsjbmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiLnNwbGl0KCI7IiksCmFzY19jdGFfaW50ZXJhY3Rpb246IiNwcm9tb0Rpc2NvdmVyQnV0dG9uIC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciAjc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQgLmxvYW5DYWxjdWxhdG9yVHJpZ2dlciAub2ZmZXItYnRuIC5jdFByb21vIC50cmFkZUluQmFyX2J0biIuc3BsaXQoIiAiKSxhc2NfY3RhX2ludGVyYWN0aW9uOlsiLm5ld1ZkcEFjdGlvbnMgYSIsIi5jdGEtdHBsIGEiXSxhc2NfY29tbV9lbmdhZ2VtZW50OlsiLnRleHQtdXMtYnRuIl0sYXNjX2Zvcm1fZW5nYWdlbWVudDpbImlucHV0Iiwic2VsZWN0IiwidGV4dGFyZWEiXSxhc2NfbWVkaWFfaW50ZXJhY3Rpb246WyIjbmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiLCJpbWciXSxhc2NfbWVudV9pbnRlcmFjdGlvbjpbIi51cF9tZW51IGEiXSxhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uOlsiLmxhbmd1YWdlQmFyIGEiXX0sbD0hMTtjb25zb2xlLmxvZygiRDJBU0MgTG9hZGluZy4uLiIsZCk7dmFyIGg9bmV3IGZ1bmN0aW9uKCl7dmFyIGU9CnRoaXM7ZS5zZXRWZWhpY2xlU3RhdHVzPWZ1bmN0aW9uKGIpe2xldCBhPSQoIiNhc2NfZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT12ZWhpY2xlU3RhdHVzXSIpO2lmKCIiIT0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9J21ha2UnXSIpLnZhbCgpKXtsZXQgYz13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKTthLnZhbCgvdXNlZC8udGVzdChjKXx8L29jY2FzaW9uLy50ZXN0KGMpPyJVc2VkIjoiTmV3Iil9ITEhPT1iJiZhLnZhbChiKX07ZS5zZXREaWdpdGFsRGF0YT1mdW5jdGlvbihiLGEpe2xldCBjPWUuYWRkRXZlbnQoYixhKTtpZighMT09PWMpcmV0dXJuITE7dm9pZCAwIT09Yy5mb3JtX25hbWUmJihjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCJtZW5zdWFsaXQ\/cyIsIm1lbnN1YWxpdGVzIiksYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgidj9oaWN1bGUiLCJ2ZWhpY3VsZSIpLGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoIj90YXBlcyIsCiJldGFwZXMiKSxjLmZvcm1fbmFtZT0iRDJDICIrYy5mb3JtX25hbWUpO3ZvaWQgMCE9PWMuZm9ybV9sYW5nJiYoYy5mb3JtX2xhbmc9ZS5zdGFuZGFyZGl6ZUZvcm1MYW5nKGMuZm9ybV9sYW5nKSk7Zy5ldmVudHMudW5zaGlmdChKU09OLnN0cmluZ2lmeSh7bmFtZTpiLHBhcmFtczpjfSkpOyJ2ZHAiPT1jLnBhZ2VfdHlwZSYmKGMucGFnZV90eXBlPSJpdGVtIik7InNob3dyb29tIj09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbSIpOyJzZWFyY2ggaW52ZW50b3J5Ij09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbWxpc3QiKTtsZXQgZj1lLmdldEV2ZW50VHlwZShiKTtlLnJlcG9ydChmLGIsYyxnKTsiYXNjX2Zvcm1fc3VibWlzc2lvbiI9PWImJihlLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIixhKSxlLnNldERpZ2l0YWxEYXRhKCJEMkNfRm9ybV9zdWJtaXNzaW9uX3NhbGVzIixhKSxlLnNldERpZ2l0YWxEYXRhKCJEMkNfTGVhZHMiLAphKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YXNjTGFzdEN0YUNsaWNrPSExfSwxMjUwKSk7ImFzY19jb21tX3N1Ym1pc3Npb24iPT1iJiZlLnNldERpZ2l0YWxEYXRhKCJhc2NfY29tbV9zdWJtaXNzaW9uX3NhbGVzIixhKX07ZS5nZXRFdmVudFR5cGU9ZnVuY3Rpb24oYil7bGV0IGE9ImVuZ2FnZW1lbnQiO3N3aXRjaChiKXtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZSI6YT0iY29udmVyc2lvbiJ9cmV0dXJuIGF9O2UuYmluZEVsZW1lbnRzPWZ1bmN0aW9uKGIsYSl7JC5lYWNoKGEsZnVuY3Rpb24oYyxmKXskKGYpLmVhY2goZnVuY3Rpb24oKXtjb25zdCBtPSQodGhpcyksbj0iYXNjX2Zvcm1fZW5nYWdlbWVudCI9PWI\/ImJsdXIiOiJjbGljayI7CiQodGhpcykub24obixmdW5jdGlvbigpe2guc2V0RGlnaXRhbERhdGEoYixtKX0pfSl9KX07ZS5hZGRFdmVudD1mdW5jdGlvbihiLGEpe3ZhciBjPXtldmVudF9vd25lcjoiZDJjIixwYWdlX3R5cGU6ZC5wYWdlSWQscGFnZV91cmw6d2luZG93LmxvY2F0aW9uLmhyZWYsZXZlbnRfbGFiZWw6YixldmVudF9jYXRlZ29yeTokKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9dmVoaWNsZVN0YXR1c10iKS52YWwoKX0sZj0hMSE9PWFzY0xhc3RDdGFDbGljaz9lLkN0YVRleHRQYXJzZXIoYXNjTGFzdEN0YUNsaWNrKToiIjtzd2l0Y2goYil7Y2FzZSAiYXNjX3BhZ2V2aWV3IjpicmVhaztjYXNlICJhc2NfY2xpY2tfdG9fY2FsbCI6Zj1hLmhhc0NsYXNzKCJwaG9uZS1saW5rIik\/YS50ZXh0KCk6YS5hdHRyKCJocmVmIik7Zj1mLnJlcGxhY2UoL1teMC05XCtdL2csIiIpO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3Bob25lX251bWJlcjpmLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLAphZmZpbGlhdGlvbjoiIn0pO2JyZWFrO2Nhc2UgImFzY19jdGFfaW50ZXJhY3Rpb24iOmY9ZS5DdGFUZXh0UGFyc2VyKGEpO2UuaXNDdGFDbGljayhhKSYmKGFzY0xhc3RDdGFDbGljaz1hKTtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0OmYsZWxlbWVudF9vcmRlcjoiIixlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfdHlwZTplLmdldEVsZW1lbnRUeXBlKGEpLGV2ZW50X2FjdGlvbjoiIixldmVuX2FjdGlvbl9yZXN1bHQ6YS5hdHRyKCJocmVmIik\/InJlZGlyZWN0IjoicG9wdXAiLGxpbmtfdXJsOmEuYXR0cigiaHJlZiIpP2EuYXR0cigiaHJlZiIpOiIifSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fZW5nYWdlbWVudCI6Zj1lLmdldExlYWRUeXBlRm9ybU5hbWUoYSk7aWYoITE9PT1mKXJldHVybiExO2xldCBtPWUuYXNjVGV4dFJlcGxhY2VyKGEudmFsKCkpLG49ZS5nZXREMmNEZXBhcnRtZW50KGEpO2NvbnNvbGUubG9nKCJEMkFTQyBGb3JtIEVuZ2FnZW1lbnQgRGV0ZWN0ZWQiLApmLG4sYSk7Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDptLGNvbW1fdHlwZToiZm9ybSIsY29tbV9zdGF0dXM6InN0YXJ0IixkZXBhcnRtZW50Om4sZm9ybV9uYW1lOmYsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDpufSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsY29tbV9vdXRjb21lOiJjbG9zZSIsc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6InN1Ym1pdCIsY3RhX3RleHQ6ZixjdXN0b21lcl9waG9uZTphLmNvbmZpcm1fcGhvbmVfbnVtYmVyLGN1c3RvbWVyX2VtYWlsOmEuY29uZmlybV9lbWFpbCxkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSxmb3JtX25hbWU6YS5sZWFkVHlwZSxmb3JtX3R5cGU6ZS5nZXRGb3JtVHlwZShhKSxmb3JtX2xhbmc6JCgiaW5wdXRbbmFtZT0nbGFuZyddIikudmFsKCksCmZvcm1fZGVwdDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZSI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlX2FwcHQiOmNhc2UgIkQyQ19MZWFkcyI6Y29uc29sZS5sb2coIkQyQVNDIEVtYWlsIFNlbnQgLSBEYXRhIDIiLGEpO2EuY29uZmlybV9waG9uZV9udW1iZXI9dm9pZCAwPT09YS5jb25maXJtX3Bob25lX251bWJlcj8iIjphLmNvbmZpcm1fcGhvbmVfbnVtYmVyO2EuY29uZmlybV9lbWFpbD12b2lkIDA9PT1hLmNvbmZpcm1fZW1haWw\/IiI6YS5jb25maXJtX2VtYWlsO2M9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3R5cGU6ImZvcm0iLGNvbW1fb3V0Y29tZTplLmdldEZvcm1PdXRjb21lKGIpLHN1Ym1pc3Npb25faWQ6IiIsCmVsZW1lbnRfdGV4dDplLmFzY1RleHRSZXBsYWNlcigic3VibWl0IiksY3RhX3RleHQ6ZixjdXN0b21lcl9waG9uZTphLmNvbmZpcm1fcGhvbmVfbnVtYmVyLGN1c3RvbWVyX2VtYWlsOmEuY29uZmlybV9lbWFpbCxkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSxmb3JtX25hbWU6YS5sZWFkVHlwZSxmb3JtX3R5cGU6ZS5nZXRGb3JtVHlwZShhKSxmb3JtX2xhbmc6JCgiaW5wdXRbbmFtZT0nbGFuZyddIikudmFsKCksZm9ybV9kZXB0OmUuZ2V0RDJjRGVwYXJ0bWVudChhKX0pO2JyZWFrO2Nhc2UgIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiOmM9e2Zvcm1fZmlsbGVkOiJZZXMifTticmVhaztjYXNlICJhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uIjpjPXZvaWQgMCE9PWEuZXZlbnRfYWN0aW9uP09iamVjdC5hc3NpZ24oe30sYyx7ZXZlbnRfYWN0aW9uX3Jlc3VsdDphLmV2ZW50X2FjdGlvbl9yZXN1bHQsZXZlbnRfYWN0aW9uOmEuZXZlbnRfYWN0aW9uLHByb2R1Y3RfbmFtZToiIiwKZWxlbWVudF9zdGF0ZTphLmZpbHRlckluZm8uc3RhdGUsZWxlbWVudF90eXBlOiJzZWFyY2giPT1hLmV2ZW50X2FjdGlvbj8iZmlsdGVyIjoic29ydCIsZWxlbWVudF9zdWJ0eXBlOmEuZmlsdGVySW5mby50eXBlLGVsZW1lbnRfdGl0bGU6YS5maWx0ZXJJbmZvLmxhYmVsLGVsZW1lbnRfdGV4dDphLmZpbHRlckluZm8udGl0bGUsZWxlbWVudF92YWx1ZTphLmZpbHRlckluZm8udmFsdWUsZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3Bvc2l0aW9uOiIiLGVsZW1lbnRfb3JkZXI6IiJ9KTpPYmplY3QuYXNzaWduKHt9LGMse2V2ZW50X2FjdGlvbl9yZXN1bHQ6Imxhbmd1YWdlIixldmVudF9hY3Rpb246ImNsaWNrIixwcm9kdWN0X25hbWU6IiIsZWxlbWVudF9zdGF0ZTowLGVsZW1lbnRfdHlwZToibGFuZ3VhZ2UgdG9nZ2xlLCIsZWxlbWVudF9zdWJ0eXBlOiJidXR0b24iLGVsZW1lbnRfdGl0bGU6ZS5hc2NUZXh0UmVwbGFjZXIoYS50ZXh0KCkpLGVsZW1lbnRfdGV4dDplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksCmVsZW1lbnRfdmFsdWU6ZS5hc2NUZXh0UmVwbGFjZXIoYS50ZXh0KCkpLGVsZW1lbnRfY29sb3I6IiIsZWxlbWVudF9wb3NpdGlvbjoiIixlbGVtZW50X29yZGVyOiIifSk7YnJlYWs7Y2FzZSAiYXNjX21lZGlhX2ludGVyYWN0aW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7ZXZlbnRfYWN0aW9uX3Jlc3VsdDoiIixhZmZpbGlhdGlvbjoiIixtZWRpYV90eXBlOiIiLGxpbmtfdXJsOiIiLGNyZWF0aXZlX25hbWU6IiJ9KTticmVhaztjYXNlICJhc2NfbWVudV9pbnRlcmFjdGlvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF9zdWJ0eXBlOiJtZWdhX21lbnUiLGVsZW1lbnRfdHlwZTphLmNsb3Nlc3QoImxpIikuYXR0cigiZGF0YS1pZCIpLGV2ZW50X2FjdGlvbjoiY2xpY2sifSk7YnJlYWs7Y2FzZSAiYXNjX3JldGFpbF9wcm9jZXNzIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Zmxvd19uYW1lOiJmaW5hbmNlIiwKZWxlbWVudF90aXRsZToiIixmbG93X291dGNvbWU6InByb2NlZWQiLGl0ZW1fcGF5bWVudDoiZmluYW5jZSIsZmxvd19zdGFnZToiIn0pO2JyZWFrO2Nhc2UgImFzY19zcGVjaWFsX29mZmVyIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7cHJvbW90aW9uX25hbWU6JCgiaDI6Zmlyc3QtY2hpbGQiLGEpLmxlbmd0aD9lLmFzY1RleHRSZXBsYWNlcigkKCJoMjpmaXJzdC1jaGlsZCIsYSkudGV4dCgpKToiRGVhbGVyIFByb21vIixkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSxwcm9kdWN0X25hbWU6IiIsZWxlbWVudF9wb3NpdGlvbjoiZmxvYXRpbmciLGZsb3dfb3V0Y29tZToic3RhcnQifSk7YnJlYWs7Y2FzZSAiYXNjX2NvbW1fZW5nYWdlbWVudCI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fc3RhdHVzOiJzdGFydCIsY29tbV90eXBlOiJzbXMiLHByb2R1Y3RfbmFtZToiZDJjX3RleHQiLGV2ZW50X293bmVyOiJkMmMifSk7YnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbiI6Yz0KT2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3R5cGU6ImNoYXQiLGFmZmlsaWF0aW9uOiJuYXRpdmUiLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGFmZmlsaWF0aW9uX2lkOiJtdWx0aS11c2VyIixjb21tX3N0YXR1czoiY3JtX3VwZGF0ZSJ9KTticmVhaztjYXNlICJhc2NfY29tbV9zdWJtaXNzaW9uX3NhbGVzIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV90eXBlOiJjaGF0IixhZmZpbGlhdGlvbjoibmF0aXZlIixkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSxhZmZpbGlhdGlvbl9pZDoibXVsdGktdXNlciIsY29tbV9zdGF0dXM6ImNybV91cGRhdGUiLGVsZW1lbnRfcG9zaXRpb246InBvcC11cCJ9KTticmVhaztkZWZhdWx0OnJldHVybiBjb25zb2xlLmxvZygiRDJBU0MgRVJST1IoQ09ERTowMDEpIixiLGEpLCExfSExIT09YXNjVG9wQ2FyRGV0YWlscyYmIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiIT1iJiYoYz1PYmplY3QuYXNzaWduKHt9LGMsCmFzY1RvcENhckRldGFpbHMpKTtjb25zb2xlLmxvZygiR0E0IEZpbmFsIERpZ2l0YWwgRGF0YSIsYyk7cmV0dXJuIGN9O2UuaXNDdGFDbGljaz1mdW5jdGlvbihiKXtsZXQgYT0hMTtiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIi5uZXdWZHBBY3Rpb25zIikubGVuZ3RoJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5jdGEtdHBsIikubGVuZ3RoJiYoYT0hMCksInByb21vRGlzY292ZXJCdXR0b24iPT1iLmF0dHIoImlkIikmJihhPSEwKSxiLmhhc0NsYXNzKCJkaXZDYXJQYXltZW50Q2FsY3VsYXRvciIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciIpLmxlbmd0aCYmKGE9ITApLDA8Yi5jbG9zZXN0KCIjc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQiKS5sZW5ndGgmJihhPSEwKSwic2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQiPT1iLmF0dHIoImlkIikmJihhPSEwKSxiLmhhc0NsYXNzKCJsb2FuQ2FsY3VsYXRvclRyaWdnZXIiKSYmKGE9ITApLAowPGIuY2xvc2VzdCgiLmxvYW5DYWxjdWxhdG9yVHJpZ2dlciIpLmxlbmd0aCYmKGE9ITApLGIuaGFzQ2xhc3MoImN0UHJvbW8iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIuY3RQcm9tbyIpLmxlbmd0aCYmKGE9ITApLGIuaGFzQ2xhc3MoIm9mZmVyLWJ0biIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5vZmZlci1idG4iKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJ0cmFkZUluQmFyX2J0biIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi50cmFkZUluQmFyX2J0biIpLmxlbmd0aCYmKGE9ITApLCJUUkFERUlOIj09Yi5hdHRyKCJkYXRhLWlkIikmJihhPSEwKSk7cmV0dXJuIGF9O2Uuc3RhbmRhcmRpemVGb3JtTGFuZz1mdW5jdGlvbihiKXt2b2lkIDA9PT1iJiYkKCJodG1sIikuYXR0cigibGFuZyIpO2I9Yi50b0xvd2VyQ2FzZSgpOyJlbmciPT1iJiYoYj0iZW4iKTsiZW5nbGlzaCI9PWImJihiPSJlbiIpOyJmcm4iPT1iJiYoYj0iZnIiKTsiZnJlbmNoIj09YiYmKGI9ImZyIik7ImVuIiE9CmImJiJmciIhPWImJihiPSJlbiIpO3JldHVybiBifTtlLkN0YVRleHRQYXJzZXI9ZnVuY3Rpb24oYil7ZC5wYWdlSWQudG9Mb3dlckNhc2UoKTtsZXQgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKSxjPSIiO2lmKC9uZXdcL2ludmVudG9yeVwvc2VhcmNoLy50ZXN0KGEpfHwvbmV1ZnNcL2ludmVudGFpcmVcL3JlY2hlcmNoZS8udGVzdChhKSljKz0iRDJDIENUQU0gLSBOZXcgSW52ZW50b3J5IFNSUDogIjtlbHNlIGlmKC9uZXdcL2ludmVudG9yeS8udGVzdChhKXx8L25ldWZzXC9pbnZlbnRhaXJlLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIE5ldyBJbnZlbnRvcnkgVkRQOiAiO2Vsc2UgaWYoL25ldy8udGVzdChhKXx8L25ldWZzLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIE5ldyBTaG93Um9vbSBWRFA6ICI7ZWxzZSBpZigvdXNlZC8udGVzdChhKXx8L29jY2FzaW9uLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIFVzZWQgSW52ZW50b3J5IFZEUDogIjtyZXR1cm4gYysKZS5hc2NUZXh0UmVwbGFjZXIoYi50ZXh0KCkpfTtlLmdldExlYWRUeXBlRm9ybU5hbWU9ZnVuY3Rpb24oYil7bGV0IGE9MDxiLmNsb3Nlc3QoImZvcm0iKS5sZW5ndGg\/Yi5jbG9zZXN0KCJmb3JtIikuYXR0cigiaWQiKTpiLmF0dHIoImlkIiksYz0hMTtkLnBhZ2VJZC5pbmNsdWRlcygib3JkZXIgcGFydHMiKSYmKGM9IlBhcnRzUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJ0ZXN0IGRyaXZlIikmJihjPSJUZXN0RHJpdmUiKTtkLnBhZ2VJZC5pbmNsdWRlcygicHJpY2UgcmVxdWVzdCIpJiYoYz0iUHJpY2VSZXF1ZXN0Iik7ZC5wYWdlSWQuaW5jbHVkZXMoImJyb2NodXJlIikmJihjPSJCcm9jaHVyZXNSZXF1ZXN0Iik7ZC5wYWdlSWQuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSYmKGM9IlNlcnZpY2VSZXF1ZXN0Iik7ZC5wYWdlSWQuaW5jbHVkZXMoInRpcmVzIikmJihjPSJUaXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYm9keSBzaG9wIikmJihjPSJCb2R5U2hvcCIpOwpkLnBhZ2VJZC5pbmNsdWRlcygicmVjYWxsIikmJihjPSJSZWNhbGxzIik7aWYoYiBpbnN0YW5jZW9mIGpRdWVyeSYmKDA8Yi5jbG9zZXN0KCIuZGl2U3BhbkZpbHRlcnMiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIjYmFubmVyX3NlYXJjaF9iYXJfY29udGFpbmVyIikubGVuZ3RoKSlyZXR1cm4hMTtiPWUuZm9ybURhdGFCeUlkKGIpO3JldHVybiExIT09Yj9iLmZvcm1OYW1lOiExIT09Yz9kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsYyk6IlVOS05PV046ICIrYX07ZS5mb3JtRGF0YUJ5SWQ9ZnVuY3Rpb24oYil7aWYoYiBpbnN0YW5jZW9mIGpRdWVyeSl7bGV0IGE9MDxiLmNsb3Nlc3QoImZvcm0iKS5sZW5ndGg\/Yi5jbG9zZXN0KCJmb3JtIikuYXR0cigiaWQiKTpiLmF0dHIoImlkIik7dm9pZCAwPT09YSYmKDA8Yi5jbG9zZXN0KCIjY29udGFjdHBvcHVwIikubGVuZ3RoJiYoYT0iUmVxdWVzdCBmb3IgY29udGFjdCIpLDA8Yi5jbG9zZXN0KCIuY3JlZGl0U2NvcmVJbnB1dCIpLmxlbmd0aCYmCihhPSJjcmVkaXRTY29yZSIpLDA8Yi5jbG9zZXN0KCIjc2NyYXRjaEFuZFNhdmVQb3B1cENvbnRhaW5lcl9ibnAiKS5sZW5ndGgmJihhPSJSZWJhdGVDb3Vwb25OZXdCTlAiKSwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hhbmRzYXZlX3RleHQiKS5sZW5ndGgmJihhPSJSZWJhdGVDb3Vwb24iKSk7aWYoZC5wYWdlSWQuaW5jbHVkZXMoInNob3dyb29tOmNvbXBhcmUiKSYmdm9pZCAwIT09YSYmYS5pbmNsdWRlcygiZmVhdHVyZWRQcm9kdWN0XyIpKXJldHVybntmb3JtVHlwZToicmVzZWFyY2giLGZvcm1OYW1lOiJDb21wYXJlRm9ybSJ9O2lmKDA8Yi5jbG9zZXN0KCIjbXVsdGlmb3JtX2VtYmVkZGVkIikubGVuZ3RoJiYwPGIuY2xvc2VzdCgiI211bHRpZm9ybV9lbWJlZGRlZCIpLmZpbmQoIi5tdWx0aWZvcm1fZW1iZWRkZWRfc3RlcDEiKS5sZW5ndGgpcmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0Iixmb3JtTmFtZToiRGlzY292ZXJPZmZlciJ9O3N3aXRjaChhKXtjYXNlICJtaW5pZm9ybSI6Y2FzZSAiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsCmZvcm1OYW1lOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0In07Y2FzZSAibG9hbi1mb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiUHJpY2VSZXF1ZXN0In07Y2FzZSAiZm9ybURlYWxlckFwcG9pbnRtZW50IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJEZWFsZXJBcHBvaW50bWVudCJ9O2Nhc2UgIlNsaWRlV2lkZ2V0Rm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0Iixmb3JtTmFtZToiU2xpZGVXaWRnZXRGb3JtIn07Y2FzZSAiY3JlZGl0U2NvcmUiOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJDcmVkaXRSZXF1ZXN0X1Nob3J0In07Y2FzZSAiUmViYXRlQ291cG9uTmV3Qk5QIjpyZXR1cm57Zm9ybVR5cGU6InByZS1vcmRlciIsZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ld0JOUCJ9O2Nhc2UgImJhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9ib2R5IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLApmb3JtTmFtZToiQmFubmVyRm9ybSJ9O2Nhc2UgInBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCI6Y2FzZSAicGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSI6Y2FzZSAicGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6Ik1vbnRobHlQYXltZW50cyJ9O2Nhc2UgImNvbnRhY3RfZm9ybSI6Y2FzZSAiY29udGFjdF9mb3JtMiI6Y2FzZSAiY29udGFjdF9mb3JtMyI6Y2FzZSAiUmVxdWVzdCBmb3IgY29udGFjdCI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0Iixmb3JtTmFtZToiQ29udGFjdFJlcXVlc3QifTtjYXNlICJxdWlja0VtYWlsRm9ybSI6Y2FzZSAibWFpbEV4cHJlc3NSZXF1ZXN0IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJRdWlja0VtYWlsIn07Y2FzZSAidHJhZGluTWFrZSI6Y2FzZSAidHJhZGluWWVhciI6Y2FzZSAidHJhZGluTW9kZWwiOmNhc2UgInRyYWRpblRyaW0iOmNhc2UgInRyYWRlSW5CYXJQb3B1cEZvcm0iOmNhc2UgIlNlbGxDYXJGb3JtIjpyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIiwKZm9ybU5hbWU6IlByaWNlVmVoaWNsZSJ9fWlmKDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkxIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MiIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTMiKS5sZW5ndGgpcmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0Iixmb3JtTmFtZToiUmViYXRlQ291cG9uTmV3In07aWYoMDxiLmNsb3Nlc3QoIiNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lciIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiTW9udGhseVBheW1lbnRzIn19cmV0dXJuITF9O2UuY29tbVN1YkRhdGFQYXJzZXI9ZnVuY3Rpb24oYixhKXtsZXQgYz17Zm9ybV9uYW1lOiIiLGZvcm1fdHlwZToiIixmb3JtX2RlcHQ6IiIsZm9ybV9sYW5nOiIifTsvYXNjX2NvbW1fc3VibWlzc2lvbi8udGVzdChiKSYmIlNsaWRlV2lkZ2V0Rm9ybSI9PQphLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpJiYoYy5mb3JtX25hbWU9IkxlYWQ6IENoYXQgU3VibWlzc2lvbiIpO3JldHVybiBjfTtlLmFzY1RleHRSZXBsYWNlcj1mdW5jdGlvbihiKXtiPWIucmVwbGFjZSgvKFxyXG58XG58XHJ8XHQpL2dtLCIiKTtiPWIucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIik7cmV0dXJuIGI9Yi50cmltKCl9O2UuaGFzaFRleHQ9ZnVuY3Rpb24oYil7Yj0obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoYi50cmltKCkudG9Mb3dlckNhc2UoKSk7cmV0dXJuIGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixiKS50aGVuKGE9PkFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkoYSkpLm1hcChjPT5jLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpLmpvaW4oIiIpKX07ZS5nZXRGb3JtT3V0Y29tZT1mdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjpjYXNlICJEMkNfTGVhZHMiOnJldHVybiJjcm1fdXBkYXRlIjsKY2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlc19hcHB0IjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2VfYXBwdCI6cmV0dXJuImFwcHRfYm9va2VkIn19O2UuZ2V0RDJjRGVwYXJ0bWVudD1mdW5jdGlvbihiKXtsZXQgYT1kLnBhZ2VJZC50b0xvd2VyQ2FzZSgpLGM9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCksZj0iT1RIRVIiOy9uZXVmcy8udGVzdChjKSYmKGY9Ik5FVyIpOy9uZXcvLnRlc3QoYykmJihmPSJORVciKTsvb2NjYXNpb24vLnRlc3QoYykmJihmPSJVU0VEIik7L3VzZWQvLnRlc3QoYykmJihmPSJVU0VEIik7YS5pbmNsdWRlcygiZmluYW5jZSIpJiYoZj0iRklOQU5DRSIpO2EuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJwYXJ0cyIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInRpcmVzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiYm9keSBzaG9wIikmJgooZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoImZpbmFuY2UgZGVwYXJ0bWVudCIpJiYoZj0iRklOQU5DRSIpO2EuaW5jbHVkZXMoImNyZWRpdCIpJiYoZj0iRklOQU5DRSIpO2EuaW5jbHVkZXMoImNvbnRhY3QgdXMiKSYmKGY9IlNBTEVTIik7YS5pbmNsdWRlcygicmVjYWxsIikmJihmPSJTRVJWSUNFIik7YiBpbnN0YW5jZW9mIGpRdWVyeSYmKDA8Yi5jbG9zZXN0KCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYoZj0iRklOQU5DRSIpLCJmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiPT1iLmF0dHIoImlkIikmJihmPSJGSU5BTkNFIiksMDxiLmNsb3Nlc3QoIiNTZWxsQ2FyRm9ybSIpLmxlbmd0aCYmKGY9IkZJTkFOQ0UiKSx2b2lkIDAhPT1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpJiYoZj1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpKSk7cmV0dXJuIGZ9O2UuZ2V0Rm9ybVR5cGU9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKTsKaWYoYS5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpKXJldHVybiJzZXJ2aWNlX2FwcG9pbnRtZW50IjtpZihhLmluY2x1ZGVzKCJvcmRlciBwYXJ0cyIpfHxhLmluY2x1ZGVzKCJvcmRlciB0aXJlcyIpKXJldHVybiJwYXJ0cyI7aWYoYS5pbmNsdWRlcygiYm9keSBzaG9wIikpcmV0dXJuImJvZHlfc2hvcCI7aWYoYS5pbmNsdWRlcygiZmluYW5jZSBkZXBhcnRtZW50Iil8fGEuaW5jbHVkZXMoImNyZWRpdCIpKXJldHVybiJjcmVkaXQiO2I9ZS5mb3JtRGF0YUJ5SWQoYik7cmV0dXJuITEhPT1iP2IuZm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QifTtlLmdldEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGIpe3JldHVybiJ0b3BCYW5uZXJJbWFnZSI9PWIuYXR0cigiaWQiKXx8MDxiLmNsb3Nlc3QoIiN0b3BCYW5uZXJJbWFnZSIpLmxlbmd0aD8iYmFubmVyIjowPGIuY2xvc2VzdCgiLmhlYWRlci1pbWFnZS13cmFwcGVyIikubGVuZ3RoPyJoZWFkZXIiOjA8Yi5jbG9zZXN0KCIubGFuZ3VhZ2VCYXIiKS5sZW5ndGg\/CiJhY2Nlc3NpYmlsaXR5X3Rvb2wiOjA8Yi5oYXMoIi5kZWFsZXJNYXBMaW5rIikubGVuZ3RoPyJtYXAiOjA8Yi5jbG9zZXN0KCIuc2xpZGVzIikubGVuZ3RoPyJnYWxsZXJ5IjowPGIuY2xvc2VzdCgiLnVzZWRWZHBBY3Rpb25zIikubGVuZ3RoPyJkaWdpdGFsX3JldGFpbGluZ190b29sIjoiUHVsbG91dF9CdWlsZC1hbmQtUHJpY2UiPT1iLmF0dHIoIi51c2VkVmRwQWN0aW9ucyIpPyJiYW5uZXIiOiJuZXdWZHBGdWxsd2lkdGhWaWRlb0lmcmFtZSI9PWIuYXR0cigiLnVzZWRWZHBBY3Rpb25zIik\/InZpZGVvIjoiZGlnaXRhbF9yZXRhaWxpbmcifTtlLmdldFZlaGljbGVKU09OPWZ1bmN0aW9uKGIsYSl7JC5nZXQoIi9qcy9qc29uLyIrYisiLmpzb24iKS5kb25lKGZ1bmN0aW9uKGMpe2MuaXRlbV9udW1iZXI9YjtpZigiIiE9YSYmdm9pZCAwIT09YSl3aW5kb3dbYV0oYyk7cmV0dXJuIGN9KX07ZS5yZXBvcnQ9ZnVuY3Rpb24oYixhLGMsZil7aWYodm9pZCAwPT09ZC5zdWJfZ2E0fHwiTiI9PQpkLnN1Yl9nYTQpYz1PYmplY3QuYXNzaWduKHt9LGMse3NlbmRfdG86IkctWjVROFo1QzdLRiJ9KTtpZighMD09PWwmJiJhc2NfZm9ybV9lbmdhZ2VtZW50Ij09YSlyZXR1cm4hMTtndGFnKCJldmVudCIsYSxjKTtsPSEwO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsPSExfSwxRTMpfTtyZXR1cm4gZX07c2V0VGltZW91dChmdW5jdGlvbigpe2guc2V0VmVoaWNsZVN0YXR1cyghMSk7InZkcCI9PWQucGFnZUlkJiYoMDwkKCIjdG9wY2FyaWQiKS5sZW5ndGgmJiIiIT0kKCIjdG9wY2FyaWQiKS52YWwoKSYmIjAiIT0kKCIjdG9wY2FyaWQiKS52YWwoKT9oLmdldFZlaGljbGVKU09OKCQoIiN0b3BjYXJpZCIpLnZhbCgpLCJhc2NVcGRhdGVUb3BDYXJEYXRhIik6YXNjVXBkYXRlVG9wQ2FyRGF0YSghMSkpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKGZ1bmN0aW9uKGIpe2guc2V0RGlnaXRhbERhdGEoImFzY19wYWdldmlldyIse30pfSl9LDFFMyk7JC5lYWNoKGssZnVuY3Rpb24oYixhKXtoLmJpbmRFbGVtZW50cyhiLAphKX0sITEpOyQoIi5yZXZlYWwtbW9kYWwiKS5vbmUoInBvcHVwaXplci5vbk9wZW4iLGZ1bmN0aW9uKGIpe2guc2V0RGlnaXRhbERhdGEoImFzY19zcGVjaWFsX29mZmVyIiwkKGIudGFyZ2V0KSk7aC5iaW5kRWxlbWVudHMoImFzY19mb3JtX2VuZ2FnZW1lbnQiLFskKGIudGFyZ2V0KS5maW5kKCJmb3JtIGlucHV0LCBmb3JtIHNlbGVjdCwgZm9ybSB0ZXh0YXJlYSIpXSl9KTtzZXRUaW1lb3V0KCgpPT57JCgiYVtkYXRhLWxlYWQtdHJpZ2dlcj0nRGVhbGVyQXBwb2ludG1lbnQnXSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtoLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsRGVhbGVyQXBwb2ludG1lbnQiKSl9KTskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdQYXlwYWxQYXltZW50J10iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aC5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoIiNtb2RhbFBheXBhbFBheW1lbnQiKSl9KX0sMUUzKTsKMDwkKCIjZmx0U29ydElkIikubGVuZ3RoJiYoYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9JCgiI2ZsdFNvcnRJZCAuZGl2QWN0aW9uV3JhcHBlciAuZGl2TGFiZWwiKS5odG1sKCkpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3Qpe3ZhciBlPW5ldyBBYnN0cmFjdFVzZWRTcnBPYmplY3Qoe25hbWU6ImQyY19ob25kYV9ndG0ifSk7ZS5hZGRVc2VkU3JwRXZlbnRPYnNlcnZlcigicHJveHkiLGZ1bmN0aW9uKGIpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGIuY21kJiYicmVxdWVzdCI9PT1iLmNtZCYmITEhPT1iLmRhdGEpe2xldCBhPWIuZGF0YS5maWx0ZXJTdGF0ZS5maWx0ZXJTZWFyY2g7c2V0VGltZW91dChmdW5jdGlvbigpe2EucmVzdWx0cz1iLmRhdGEuZmlsdGVyU3RhdGUuY291bnRTZWFyY2hSZXN1bHRzO2EudHlwZWRTZWFyY2g9Yi5kYXRhLmZpbHRlclN0YXRlLnR5cGVkU2VhcmNoO2EuZXZlbnRfYWN0aW9uX3Jlc3VsdD0ic2VhcmNoIjsKYS5ldmVudF9hY3Rpb249InNlYXJjaCI7YS5maWx0ZXJJbmZvPWFzY0xhc3RGaWx0ZXJDbGljazthc2NMYXN0RmlsdGVyQ2xpY2s9ITE7T2JqZWN0LmtleXMoYSkuaW5jbHVkZXMoInNvcnQiKSYmYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQhPWEuc29ydFswXSYmKGFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0PWEuc29ydFswXSxhLmV2ZW50X2FjdGlvbj0ic29ydCIpO2guc2V0RGlnaXRhbERhdGEoImFzY19lbGVtZW50X2NvbmZpZ3VyYXRpb24iLGEpfSwxMDApfX0pO2UuaW5pdFVzZWRTcnBPYnNlcnZlcigpfSQoZG9jdW1lbnQpLm9uKCJ1c2VkU3JwRmlsdGVycy5vbkNoYW5nZSIsImJvZHkiLChiLGEpPT57Yj0kKCIjIithLmlkKTtiPSQoIi5mbHRUaXRsZSIsYikudGV4dCgpO2xldCBjPWEudmFsdWU7dmFyIGY9IiI7bGV0IG09InRleHRfc2VhcmNoIjthLnZhbHVlJiZhLnZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoIjo6Iik\/KG09ImJ1dHRvbiIsZj1hLnZhbHVlLnNwbGl0KCI6OiIpLAphLnZhbHVlPWZbMF0sZj1mWzFdKTphLnZhbHVlJiZhLnZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoIiwiKSYmKG09InJhbmdlX3NsaWRlciIpO2FzY0xhc3RGaWx0ZXJDbGljaz17aWQ6YS5pZCx0aXRsZTphLmxhYmVsLHZhbHVlOmEudmFsdWUsb3JnX3ZhbHVlOmMsc3RhdGU6Zix0eXBlOm0sbGFiZWw6Yn19KTskKCJib2R5Iikub24oImVtYWlsSGFuZGxlci5lbWFpbFNlbnQiLGZ1bmN0aW9uKGIsYSl7Y29uc29sZS5sb2coIkQyQVNDIEVtYWlsIFNlbnQgVHJpZ2dlciIsYixhKTtpZih2b2lkIDAhPT1hLmRldGFpbC5sZWFkVHlwZSl7Yj1hLmRldGFpbC5sZWFkVHlwZTtpZihiLmluY2x1ZGVzKCJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkiKXx8Yi5pbmNsdWRlcygiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXMiKSlyZXR1cm4hMTtiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIiKSYmKGI9IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiKTsKYi50cmltKCk7YS5kZXRhaWwubGVhZFR5cGU9Yn12b2lkIDAhPT1hLmRldGFpbC5sZWFkVHlwZSYmIiIhPWEuZGV0YWlsLmxlYWRUeXBlfHx2b2lkIDA9PT1hLmRldGFpbC5tYWlsSWR8fChhLmRldGFpbC5sZWFkVHlwZT1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsYS5kZXRhaWwubWFpbElkKSk7YS5kZXRhaWwubGVhZE5hbWVBcnI9ZC5mb3JtTWFwO3ZvaWQgMD09PWEuZGV0YWlsLmNvbmZpcm1fZW1haWwmJihhLmRldGFpbC5jb25maXJtX2VtYWlsPSIiKTt2b2lkIDA9PT1hLmRldGFpbC5jb25maXJtX3Bob25lX251bWJlciYmKGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyPSIiKTtQcm9taXNlLmFsbChbaC5oYXNoVGV4dChhLmRldGFpbC5jb25maXJtX2VtYWlsKSxoLmhhc2hUZXh0KGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyKV0pLnRoZW4oYz0+e3ZhciBbZixtXT1jO2EuZGV0YWlsLmNvbmZpcm1fZW1haWw9ZjthLmRldGFpbC5jb25maXJtX3Bob25lX251bWJlcj0KbX0pO3ZvaWQgMCE9PWFzY1RvcENhckRldGFpbHMubWFrZSYmIiIhPWFzY1RvcENhckRldGFpbHMubWFrZXx8dm9pZCAwPT09YS5kZXRhaWwubWFrZXx8IiI9PWEuZGV0YWlsLm1ha2V8fChhLmRldGFpbC52Y2F0ZWdvcnk9YS5kZXRhaWwuY29uZGl0aW9uLGEuZGV0YWlsLnZlcnNpb249YS5kZXRhaWwudHJpbSxhLmRldGFpbC5ib2R5VHlwZUlEPWEuZGV0YWlsLnRyaW0sYS5kZXRhaWwuY29sb3I9IiIsYS5kZXRhaWwudmNhcmJ1cmFudD0iIixhLmRldGFpbC5kYXRlX2xpc3Rpbmc9IiIsYXNjVXBkYXRlVG9wQ2FyRGF0YShhLmRldGFpbCkpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtoLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIixhLmRldGFpbCl9LDI1MCl9KTskKCIjU2xpZGVXaWRnZXRGb3JtIGEuYnRuLWRlZmF1bHQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7bGV0IGI9ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLCJTbGlkZVdpZGdldEZvcm0iKTtoLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIiwKe2RlcGFydG1lbnQ6InNhbGVzIixsZWFkVHlwZTpiLGN1cnJlbnRVUkw6IiJ9KX0pOyQoZG9jdW1lbnQpLm9uKCJmb3JtLnN0ZXAiLCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsZnVuY3Rpb24oYil7aC5zZXREaWdpdGFsRGF0YSgiYXNjX3JldGFpbF9wcm9jZXNzIixiKX0pOyQoZG9jdW1lbnQpLm9uKCJtdWx0aUZvcm1GaW5hbmNlU3VibWl0Iixkb2N1bWVudC5ib2R5LGZ1bmN0aW9uKGIpe2I9ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Iik7aC5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbiIse2RlcGFydG1lbnQ6ImZpbmFuY2UiLGxlYWRUeXBlOmIsY3VycmVudFVSTDoiIn0pfSl9LDFFMyk7d2luZG93LmQyYXNjPWg7d2luZG93LmQyYXNjRGF0YU1hcD1nfTsKLyoqIC9qcy9wcmludFRoaXMuanMgKiovCnZhciBfX19kMmNfcHJpbnRUaGlzanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMTo0MCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfcHJpbnRUaGlzanNfY19vbj0iMjAyNC0wNy0zMCAxMDozMDowOCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYyl7ZnVuY3Rpb24gcihkLGUpe2UmJmQuYXBwZW5kKGUuanF1ZXJ5P2UuY2xvbmUoKTplKX1mdW5jdGlvbiB0KGQsZSxrKXt2YXIgZj1lLmNsb25lKGsuZm9ybVZhbHVlcyk7ay5mb3JtVmFsdWVzJiZ1KGUsZiwic2VsZWN0LCB0ZXh0YXJlYSIpO2sucmVtb3ZlU2NyaXB0cyYmZi5maW5kKCJzY3JpcHQiKS5yZW1vdmUoKTtrLnByaW50Q29udGFpbmVyP2YuYXBwZW5kVG8oZCk6Zi5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5jaGlsZHJlbigpLmFwcGVuZFRvKGQpfSl9ZnVuY3Rpb24gdShkLGUsayl7dmFyIGY9ZC5maW5kKGspO2UuZmluZChrKS5lYWNoKGZ1bmN0aW9uKGcscSl7YyhxKS52YWwoZi5lcShnKS52YWwoKSl9KX12YXIgYTtjLmZuLnByaW50VGhpcz1mdW5jdGlvbihkKXthPWMuZXh0ZW5kKHt9LGMuZm4ucHJpbnRUaGlzLmRlZmF1bHRzLGQpO3ZhciBlPXRoaXMgaW5zdGFuY2VvZiBqUXVlcnk\/dGhpczpjKHRoaXMpO2Q9InByaW50VGhpcy0iKyhuZXcgRGF0ZSkuZ2V0VGltZSgpOwppZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUhPT1kb2N1bWVudC5kb21haW4mJm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL21zaWUvaSkpe3ZhciBrPSdqYXZhc2NyaXB0OmRvY3VtZW50LndyaXRlKCI8aGVhZD48c2NyaXB0PmRvY3VtZW50LmRvbWFpbj1cXCInK2RvY3VtZW50LmRvbWFpbisnXFwiO1x4M2Mvc2NyaXB0PjwvaGVhZD48Ym9keT48L2JvZHk+IiknLGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Zi5uYW1lPSJwcmludElmcmFtZSI7Zi5pZD1kO2YuY2xhc3NOYW1lPSJNU0lFIjtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpO2Yuc3JjPWt9ZWxzZSBjKCI8aWZyYW1lIGlkPSciK2QrIicgbmFtZT0ncHJpbnRJZnJhbWUnIC8+IikuYXBwZW5kVG8oImJvZHkiKTt2YXIgZz1jKCIjIitkKTthLmRlYnVnfHxnLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix3aWR0aDoiMHB4IixoZWlnaHQ6IjBweCIsbGVmdDoiLTYwMHB4Iix0b3A6Ii02MDBweCJ9KTsKc2V0VGltZW91dChmdW5jdGlvbigpe2Z1bmN0aW9uIHEoYixwKXtiPWIuZ2V0KDApO2I9Yi5jb250ZW50V2luZG93fHxiLmNvbnRlbnREb2N1bWVudHx8YjtiPWIuZG9jdW1lbnR8fGIuY29udGVudERvY3VtZW50fHxiO2Iub3BlbigpO2Iud3JpdGUocCk7Yi5jbG9zZSgpfWEuZG9jdHlwZVN0cmluZyYmcShnLGEuZG9jdHlwZVN0cmluZyk7dmFyIG09Zy5jb250ZW50cygpLGw9bS5maW5kKCJoZWFkIiksbj1tLmZpbmQoImJvZHkiKSxoPWMoImJhc2UiKTtoPSEwPT09YS5iYXNlJiYwPGgubGVuZ3RoP2guYXR0cigiaHJlZiIpOiJzdHJpbmciPT09dHlwZW9mIGEuYmFzZT9hLmJhc2U6ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wrIi8vIitkb2N1bWVudC5sb2NhdGlvbi5ob3N0O2wuYXBwZW5kKCc8YmFzZSBocmVmPSInK2grJyI+Jyk7YS5pbXBvcnRDU1MmJmMoImxpbmtbcmVsPXN0eWxlc2hlZXRdIikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWModGhpcykuYXR0cigiaHJlZiIpO2lmKGIpe3ZhciBwPQpjKHRoaXMpLmF0dHIoIm1lZGlhIil8fCJhbGwiO2wuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK2IrIicgbWVkaWE9JyIrcCsiJy8+Iil9fSk7YS5pbXBvcnRTdHlsZSYmYygic3R5bGUiKS5lYWNoKGZ1bmN0aW9uKCl7bC5hcHBlbmQodGhpcy5vdXRlckhUTUwpfSk7YS5wYWdlVGl0bGUmJmwuYXBwZW5kKCI8dGl0bGU+IithLnBhZ2VUaXRsZSsiPC90aXRsZT4iKTthLmxvYWRDU1MmJihBcnJheS5pc0FycmF5KGEubG9hZENTUyk\/alF1ZXJ5LmVhY2goYS5sb2FkQ1NTLGZ1bmN0aW9uKGIscCl7bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrdGhpcysiJy8+Iil9KTpsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIithLmxvYWRDU1MrIicvPiIpKTtpZihoPWEuY29weVRhZ0NsYXNzZXMpaD0hMD09PWg\/ImJoIjpoLC0xIT09aC5pbmRleE9mKCJiIikmJgpuLmFkZENsYXNzKGMoImJvZHkiKVswXS5jbGFzc05hbWUpLC0xIT09aC5pbmRleE9mKCJoIikmJm0uZmluZCgiaHRtbCIpLmFkZENsYXNzKGMoImh0bWwiKVswXS5jbGFzc05hbWUpO3IobixhLmhlYWRlcik7aWYoYS5jYW52YXMpe3ZhciB2PTA7ZS5maW5kKCJjYW52YXMiKS5hZGRCYWNrKCJjYW52YXMiKS5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5hdHRyKCJkYXRhLXByaW50dGhpcyIsdisrKX0pfXQobixlLGEpO2EuY2FudmFzJiZuLmZpbmQoImNhbnZhcyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1jKHRoaXMpLmRhdGEoInByaW50dGhpcyIpO2I9YygnW2RhdGEtcHJpbnR0aGlzPSInK2IrJyJdJyk7dGhpcy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZShiWzBdLDAsMCk7Yi5yZW1vdmVEYXRhKCJwcmludHRoaXMiKX0pO2EucmVtb3ZlSW5saW5lJiYoaXNGdW5jdGlvbihjLnJlbW92ZUF0dHIpP20uZmluZCgiYm9keSAqIikucmVtb3ZlQXR0cigic3R5bGUiKTptLmZpbmQoImJvZHkgKiIpLmF0dHIoInN0eWxlIiwKIiIpKTtyKG4sYS5mb290ZXIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtnLmhhc0NsYXNzKCJNU0lFIik\/KHdpbmRvdy5mcmFtZXMucHJpbnRJZnJhbWUudHJpZ2dlcigiZm9jdXMiKSxsLmFwcGVuZCgiPHNjcmlwdD4gIHdpbmRvdy5wcmludCgpOyBceDNjL3NjcmlwdD4iKSk6ZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCJwcmludCIpP2dbMF0uY29udGVudFdpbmRvdy5kb2N1bWVudC5leGVjQ29tbWFuZCgicHJpbnQiLCExLG51bGwpOihnWzBdLmNvbnRlbnRXaW5kb3cudHJpZ2dlcigiZm9jdXMiKSxnWzBdLmNvbnRlbnRXaW5kb3cucHJpbnQoKSk7YS5kZWJ1Z3x8c2V0VGltZW91dChmdW5jdGlvbigpe2cucmVtb3ZlKCl9LDFFMyl9LGEucHJpbnREZWxheSl9LDMzMyl9O2MuZm4ucHJpbnRUaGlzLmRlZmF1bHRzPXtkZWJ1ZzohMSxpbXBvcnRDU1M6ITAsaW1wb3J0U3R5bGU6ITEscHJpbnRDb250YWluZXI6ITAsbG9hZENTUzoiIixwYWdlVGl0bGU6IiIscmVtb3ZlSW5saW5lOiExLApwcmludERlbGF5OjMzMyxoZWFkZXI6bnVsbCxmb290ZXI6bnVsbCxmb3JtVmFsdWVzOiEwLGNhbnZhczohMSxiYXNlOiExLGRvY3R5cGVTdHJpbmc6IjwhRE9DVFlQRSBodG1sPiIscmVtb3ZlU2NyaXB0czohMSxjb3B5VGFnQ2xhc3NlczohMX19KShqUXVlcnkpOwovKiogL2pzL2Jhc2U2NC5qcyAqKi8KdmFyIF9fX2QyY19iYXNlNjRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA2OjA4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19iYXNlNjRqc19jX29uPSIyMDI0LTA3LTA4IDEwOjMwOjA1IjsidXNlIHN0cmljdCI7CnZhciBCYXNlNjQ9e19rZXlTdHI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89IixfYjY0VGVzdDpSZWdFeHAoIl4oPzpbQS1aYS16MC05Ky9dezR9KSooPzpbQS1aYS16MC05Ky9dezJ9PT18W0EtWmEtejAtOSsvXXszfT0pPyQiKSxlbmNvZGU6ZnVuY3Rpb24oYSl7dmFyIGQ9IiIsYz0wO2ZvcihhPUJhc2U2NC5fdXRmOF9lbmNvZGUoYSk7YzxhLmxlbmd0aDspe3ZhciBiPWEuY2hhckNvZGVBdChjKyspLGU9YS5jaGFyQ29kZUF0KGMrKyksZj1hLmNoYXJDb2RlQXQoYysrKSxnPWI+PjI7Yj0oYiYzKTw8NHxlPj40O3ZhciBoPShlJjE1KTw8MnxmPj42LGs9ZiY2Mztpc05hTihlKT9oPWs9NjQ6aXNOYU4oZikmJihrPTY0KTtkPWQrdGhpcy5fa2V5U3RyLmNoYXJBdChnKSt0aGlzLl9rZXlTdHIuY2hhckF0KGIpK3RoaXMuX2tleVN0ci5jaGFyQXQoaCkrdGhpcy5fa2V5U3RyLmNoYXJBdChrKX1yZXR1cm4gZH0sZGVjb2RlOmZ1bmN0aW9uKGEpe3ZhciBkPQoiIixjPTA7Zm9yKGE9YS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC89XS9nLCIiKTtjPGEubGVuZ3RoOyl7dmFyIGI9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZT10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxmPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGc9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSk7Yj1iPDwyfGU+PjQ7ZT0oZSYxNSk8PDR8Zj4+Mjt2YXIgaD0oZiYzKTw8NnxnO2QrPVN0cmluZy5mcm9tQ2hhckNvZGUoYik7NjQhPWYmJihkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTs2NCE9ZyYmKGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoaCkpfXJldHVybiBCYXNlNjQuX3V0ZjhfZGVjb2RlKGQpfSxfdXRmOF9lbmNvZGU6ZnVuY3Rpb24oYSl7dmFyIGQ9IiI7YT1hLnJlcGxhY2UoL1xyXG4vZywiXG4iKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGI9YS5jaGFyQ29kZUF0KGMpOzEyOD4KYj9kKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpOigxMjc8YiYmMjA0OD5iP2QrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+NnwxOTIpOihkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjEyfDIyNCksZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj42JjYzfDEyOCkpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYiY2M3wxMjgpKX1yZXR1cm4gZH0sX3V0ZjhfZGVjb2RlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgZD0iIixjPTAsYixlLGY7YzxhLmxlbmd0aDspYj1hLmNoYXJDb2RlQXQoYyksMTI4PmI\/KGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYiksYysrKToxOTE8YiYmMjI0PmI\/KGU9YS5jaGFyQ29kZUF0KGMrMSksZCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoYiYzMSk8PDZ8ZSY2MyksYys9Mik6KGU9YS5jaGFyQ29kZUF0KGMrMSksZj1hLmNoYXJDb2RlQXQoYysyKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChiJjE1KTw8MTJ8KGUmNjMpPDw2fGYmNjMpLGMrPTMpO3JldHVybiBkfSx3aGl0ZUxpc3Q6ZnVuY3Rpb24oKXtyZXR1cm5bInRyYWlsZXJzIl19LAppc0Jhc2U2NDpmdW5jdGlvbihhKXtyZXR1cm4gQmFzZTY0LndoaXRlTGlzdCgpLmluY2x1ZGVzKGEudG9Mb3dlckNhc2UoKSl8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGF8fCIiPT09YXx8IiI9PT1hLnRyaW0oKXx8ND49YS5sZW5ndGg\/ITE6QmFzZTY0LmVuY29kZShCYXNlNjQuZGVjb2RlKGEpKT09YX19OwovKiogL2pzL0ZpcmV3b3JrLm1pbi5qcyAqKi8KLyogSmF2YVNjcmlwdCBGaXJld29ya3MgQW5pbWF0aW9uIGJ5IEFuZGVzQ29kZSAoaHR0cDovL2NvZGVjYW55b24ubmV0L3VzZXIvYW5kZXNjb2RlL3BvcnRmb2xpbykgKi8idXNlIHN0cmljdCI7ZnVuY3Rpb24gQ0ZpcmV3b3JrKG4sdCxpLHIsdSl7ZndUb3RhbCsrO3RoaXMubnVtPWZ3VG90YWw7dGhpcy5odG1sQ29udGFpbmVySWQ9bi50b0xvd2VyQ2FzZSgpO3RoaXMuaHRtbENvbnRhaW5lcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChuKTt0aGlzLmZpcmVDb2xvcj10O3RoaXMuc3RhcnRYPWk7dGhpcy5zdGFydFk9cjt0aGlzLmZ3U2NhbGU9dHlwZW9mIHUhPSJ1bmRlZmluZWQiP3U6MTt0aGlzLlNWR2NhbnZhcz1udWxsO3RoaXMuZndDb250YWluZXI9bnVsbDt0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsPW51bGw7dGhpcy5zcGFya3M9bnVsbDt0aGlzLmZhc3RFeHBsb3Npb249bnVsbDt0aGlzLnBhcnRpY2xlcz1udWxsO3RoaXMuc2hpbmVDb2xvcj1udWxsO3RoaXMudmVsWD0wO3RoaXMudmVsWT0tMTAwO3RoaXMuZ3Jhdml0eT00MDt0aGlzLnRpbWVCZWZvcmVFeHBsb3Npb249MTUwMDt0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzPTE0O3RoaXMuZmlyc3RFeHBsb3Npb25SYWRpdXM9NDU7dGhpcy5udW1FeHBsb3Npb25QYXJ0aWNsZXM9MjAwO3RoaXMuZXhwbG9zaW9uUGFydGljbGVSYWRpdXM9Mi41O3RoaXMuZXhwbG9zaW9uVmVsb2NpdHk9MTgwO3RoaXMuZXhwbG9zaW9uRGVjZWxlcmF0aW9uPS45Njt0aGlzLmV4cGxvc2lvblBhcnRpY2xlc01heExpZmVzcGFuPTJlMzt0aGlzLnNoaW5lUmFkaXVzPTYwO3RoaXMuc2hpbmVFeHBhbnNpb25UaW1lPTgwMDt0aGlzLnNoaW5lRmFkZU91dFRpbWU9MTEwMDt0aGlzLnVzZUF1ZGlvPSExO3RoaXMuYXVkaW9VUkw9IkV4cGxvc2lvbi5tcDMiO3RoaXMuc2VwYXJhdGlvbj0xMTg7dGhpcy5md0NlbnRlcj0xMzJ9ZnVuY3Rpb24gRmlyZXdvcmtUaW1lcihuLHQsaSxyLHUsZixlLG8pe3ZhciBzPXR5cGVvZiBmIT0idW5kZWZpbmVkIj9mOiExLGg9dHlwZW9mIGUhPSJ1bmRlZmluZWQiP2U6MSxjPXR5cGVvZiBvIT0idW5kZWZpbmVkIj9vOjA7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB1PW5ldyBDRmlyZXdvcmsobix0LGkscixoKTt1LnVzZUF1ZGlvPXM7dS52ZWxYPWM7dS5zdGFydCgpfSx1KX12YXIgZndTVkducz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZ3VG90YWw9MCxmd0FjdGl2ZXM9e30sZXhwbG9zaW9uU291bmRDcmVhdGVkPSExLGV4cGxvc2lvbk1QMz1udWxsO0NGaXJld29yay5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBoKCl7c3x8KG4uc2V0U1ZHc2NhbGUobi5hc2NlbmRpbmdGaXJlQmFsbCxvW3RdWzBdLG4uZndDZW50ZXIsbi5md0NlbnRlciksc2V0VGltZW91dChoLG9bdF1bMV0pLHQ9dD09by5sZW5ndGgtMT8wOnQrMSl9ZnVuY3Rpb24gYSgpe3M9ITA7bi5md0NvbnRhaW5lci5yZW1vdmVDaGlsZChuLmFzY2VuZGluZ0ZpcmVCYWxsKTtjbGVhckludGVydmFsKGMpO24uZXhwbG9zaW9uKCl9ZnVuY3Rpb24gdigpe24uZndDb250YWluZXIucmVtb3ZlQ2hpbGQobi5wYXJ0aWNsZXMpO24uZndDb250YWluZXIucmVtb3ZlQ2hpbGQobi5zaGluZUNvbG9yKTtuLlNWR2NhbnZhcy5yZW1vdmVDaGlsZChuLmZ3Q29udGFpbmVyKTtmd0FjdGl2ZXNbbi5odG1sQ29udGFpbmVySWRdPU1hdGgubWF4KDAsZndBY3RpdmVzW24uaHRtbENvbnRhaW5lcklkXS0xKTtmd0FjdGl2ZXNbbi5odG1sQ29udGFpbmVySWRdPT0wJiZuLmh0bWxDb250YWluZXIucmVtb3ZlQ2hpbGQobi5TVkdjYW52YXMpfXZhciByLGksdSxmLGUsYztmd0FjdGl2ZXNbdGhpcy5odG1sQ29udGFpbmVySWRdPWZ3QWN0aXZlcy5oYXNPd25Qcm9wZXJ0eSh0aGlzLmh0bWxDb250YWluZXJJZCk\/ZndBY3RpdmVzW3RoaXMuaHRtbENvbnRhaW5lcklkXSsxOjE7dGhpcy5zZXBhcmF0aW9uPU1hdGgucm91bmQoMS42Kih0aGlzLnNoaW5lUmFkaXVzK3RoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMpKTt0aGlzLmZ3Q2VudGVyPXRoaXMuYXNjZW5kaW5nRmlyZUJhbGxSYWRpdXMrdGhpcy5zZXBhcmF0aW9uO3I9dGhpcy5odG1sQ29udGFpbmVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImZ3U1ZHY2FudmFzIik7ci5sZW5ndGg+MD90aGlzLlNWR2NhbnZhcz1yWzBdOih0aGlzLlNWR2NhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZndTVkducywic3ZnIiksdGhpcy5TVkdjYW52YXMuc2V0QXR0cmlidXRlTlMobnVsbCwiY2xhc3MiLCJmd1NWR2NhbnZhcyIpLHRoaXMuU1ZHY2FudmFzLnNldEF0dHJpYnV0ZU5TKG51bGwsIndpZHRoIix0aGlzLmh0bWxDb250YWluZXIub2Zmc2V0V2lkdGgpLHRoaXMuU1ZHY2FudmFzLnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIsdGhpcy5odG1sQ29udGFpbmVyLm9mZnNldEhlaWdodCksdGhpcy5TVkdjYW52YXMuc2V0QXR0cmlidXRlTlMobnVsbCwic3R5bGUiLCJkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZSIpLGk9Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmh0bWxDb250YWluZXIsbnVsbCkucG9zaXRpb24udG9Mb3dlckNhc2UoKSxpPT0iYWJzb2x1dGUifHxpPT0iZml4ZWQifHxpPT0icmVsYXRpdmUiPyh0aGlzLlNWR2NhbnZhcy5zdHlsZS50b3A9IjBweCIsdGhpcy5TVkdjYW52YXMuc3R5bGUubGVmdD0iMHB4Iik6KHU9dGhpcy5odG1sQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuU1ZHY2FudmFzLnN0eWxlLnRvcD11LnRvcCsicHgiLHRoaXMuU1ZHY2FudmFzLnN0eWxlLmxlZnQ9dS5sZWZ0KyJweCIpLHRoaXMuaHRtbENvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLlNWR2NhbnZhcykpO3RoaXMuZndDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsInN2ZyIpO2Y9KHRoaXMuc2VwYXJhdGlvbit0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzKSp0aGlzLmZ3U2NhbGU7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ4Iix0aGlzLnN0YXJ0WC1mKTt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsInkiLHRoaXMuc3RhcnRZLWYpO3RoaXMuZndDb250YWluZXIuc2V0QXR0cmlidXRlTlMobnVsbCwid2lkdGgiLHRoaXMuc2VwYXJhdGlvbioyKnRoaXMuZndTY2FsZSk7dGhpcy5md0NvbnRhaW5lci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJoZWlnaHQiLHRoaXMuc2VwYXJhdGlvbioyKnRoaXMuZndTY2FsZSk7ZT10aGlzLnNlcGFyYXRpb24qMjt0aGlzLmZ3Q29udGFpbmVyLnNldEF0dHJpYnV0ZU5TKG51bGwsInZpZXdCb3giLCIwIDAgIitlKyIgIitlKTt0aGlzLlNWR2NhbnZhcy5hcHBlbmRDaGlsZCh0aGlzLmZ3Q29udGFpbmVyKTt0aGlzLnVzZUF1ZGlvJiYhZXhwbG9zaW9uU291bmRDcmVhdGVkJiYoZXhwbG9zaW9uTVAzPW5ldyBBdWRpbyh0aGlzLmF1ZGlvVVJMKSxleHBsb3Npb25Tb3VuZENyZWF0ZWQ9ITApO3RoaXMuY3JlYXRlR3JhZGllbnQodGhpcy5md0NvbnRhaW5lciwiYmlnRmlyZUdyYWQiK3RoaXMubnVtLFt7b2Zmc2V0OiIyMCUiLHN0eWxlOiJzdG9wLWNvbG9yOiNmZmY7c3RvcC1vcGFjaXR5OjEifSx7b2Zmc2V0OiI0NSUiLHN0eWxlOiJzdG9wLWNvbG9yOiMiK3RoaXMuZmlyZUNvbG9yKyI7c3RvcC1vcGFjaXR5OjAuNiJ9LHtvZmZzZXQ6IjEwMCUiLHN0eWxlOiJzdG9wLWNvbG9yOiMiK3RoaXMuZmlyZUNvbG9yKyI7c3RvcC1vcGFjaXR5OjAifV0pO3RoaXMuY3JlYXRlRmlsdGVyKHRoaXMuZndDb250YWluZXIsInNwYXJrbGVzR2xvdyIrdGhpcy5udW0sIkZGRkZGRiIsMik7dGhpcy5jcmVhdGVHcmFkaWVudCh0aGlzLmZ3Q29udGFpbmVyLCJleHBsb3Npb25HcmFkIit0aGlzLm51bSxbe29mZnNldDoiMCUiLHN0eWxlOiJzdG9wLWNvbG9yOiNmZmY7c3RvcC1vcGFjaXR5OjEifSx7b2Zmc2V0OiIxMDAlIixzdHlsZToic3RvcC1jb2xvcjojIit0aGlzLmZpcmVDb2xvcisiO3N0b3Atb3BhY2l0eTowIn1dKTt0aGlzLmNyZWF0ZUZpbHRlcih0aGlzLmZ3Q29udGFpbmVyLCJwYXJ0aWNsZXNHbG93Iit0aGlzLm51bSx0aGlzLmZpcmVDb2xvciw0KTt0aGlzLmNyZWF0ZUdyYWRpZW50KHRoaXMuZndDb250YWluZXIsImJhY2tsaWdodEdyYWQiK3RoaXMubnVtLFt7b2Zmc2V0OiIyMCUiLHN0eWxlOiJzdG9wLWNvbG9yOiMiK3RoaXMuZmlyZUNvbG9yKyI7c3RvcC1vcGFjaXR5OjAuMyJ9LHtvZmZzZXQ6IjEwMCUiLHN0eWxlOiJzdG9wLWNvbG9yOiMiK3RoaXMuZmlyZUNvbG9yKyI7c3RvcC1vcGFjaXR5OjAifV0pO3RoaXMuYXNjZW5kaW5nRmlyZUJhbGw9dGhpcy5jcmVhdGVTVkcoImNpcmNsZSIsImJpZ0ZpcmUiLHtjeDp0aGlzLmZ3Q2VudGVyLGN5OnRoaXMuZndDZW50ZXIscjp0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsUmFkaXVzLHN0cm9rZToibm9uZSIsZmlsbDoidXJsKCNiaWdGaXJlR3JhZCIrdGhpcy5udW0rIikifSk7dGhpcy5md0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmFzY2VuZGluZ0ZpcmVCYWxsKTt2YXIgbD10aGlzLnRpbWVCZWZvcmVFeHBsb3Npb24rTWF0aC5tYXgodGhpcy5leHBsb3Npb25QYXJ0aWNsZXNNYXhMaWZlc3Bhbix0aGlzLnNoaW5lRXhwYW5zaW9uVGltZSt0aGlzLnNoaW5lRmFkZU91dFRpbWUpKzEwMCx5PXRoaXMucHJvamVjdGlsZVR3ZWVuKHRoaXMuZndDb250YWluZXIsbCx2LHRoaXMuZ3Jhdml0eSx0aGlzLnZlbFgsdGhpcy52ZWxZKSxuPXRoaXMscz0hMSxvPVtbLjg1LDg1XSxbLjYsMzBdLFsuODUsMTIwXSxbMSwzMF1dLHQ9MDtoKCk7dGhpcy5zcGFya3M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsInN2ZyIpO3RoaXMuc3BhcmtzLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbHRlciIsInVybCgjc3BhcmtsZXNHbG93Iit0aGlzLm51bSsiKSIpO3RoaXMuc3BhcmtzLnNldEF0dHJpYnV0ZU5TKG51bGwsIngiLHRoaXMuc2VwYXJhdGlvbik7dGhpcy5zcGFya3Muc2V0QXR0cmlidXRlTlMobnVsbCwieSIsdGhpcy5zZXBhcmF0aW9uKTt0aGlzLmZ3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuc3BhcmtzKTtjPXNldEludGVydmFsKGZ1bmN0aW9uKCl7Q0ZpcmV3b3JrLnByb3RvdHlwZS5hZGRTcGFyay5jYWxsKG4pfSw1KTtzZXRUaW1lb3V0KGEsdGhpcy50aW1lQmVmb3JlRXhwbG9zaW9uKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVTVkc9ZnVuY3Rpb24obix0LGkpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLG4pLHU7dCE9bnVsbCYmci5zZXRBdHRyaWJ1dGVOUyhudWxsLCJpZCIsdCk7Zm9yKHUgaW4gaSlyLnNldEF0dHJpYnV0ZU5TKG51bGwsdSxpW3VdKTtyZXR1cm4gcn07Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVHcmFkaWVudD1mdW5jdGlvbihuLHQsaSl7Zm9yKHZhciBlLHIsdSxvPXRoaXMuY3JlYXRlU1ZHKCJyYWRpYWxHcmFkaWVudCIsdCx7Y3g6IjUwJSIsY3k6IjUwJSIscjoiNTAlIixmeDoiNTAlIixmeToiNTAlIn0pLGY9MDtmPGkubGVuZ3RoO2YrKyl7ZT1pW2ZdO3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsInN0b3AiKTtmb3IodSBpbiBlKXIuaGFzQXR0cmlidXRlKHUpfHxyLnNldEF0dHJpYnV0ZSh1LGVbdV0pO28uYXBwZW5kQ2hpbGQocil9dGhpcy5pbnNlcnREZWYobixvKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5jcmVhdGVGaWx0ZXI9ZnVuY3Rpb24obix0LGkscil7dmFyIGY9cGFyc2VJbnQoaSwxNiksbz0oZj4+MTYmMjU1KS8yNTUscz0oZj4+OCYyNTUpLzI1NSxoPShmJjI1NSkvMjU1LHU9dGhpcy5jcmVhdGVTVkcoImZpbHRlciIsdCx7fSksbD10aGlzLmNyZWF0ZVNWRygiZmVDb2xvck1hdHJpeCIsbnVsbCx7dHlwZToibWF0cml4Iix2YWx1ZXM6IjAgMCAwICIrbysiICIrbysiICAwIDAgMCAiK3MrIiAiK3MrIiAgMCAwIDAgIitoKyIgIitoKyIgIDAgMCAwIDEgMCJ9KSxjO3UuYXBwZW5kQ2hpbGQobCk7Yz10aGlzLmNyZWF0ZVNWRygiZmVHYXVzc2lhbkJsdXIiLG51bGwse3N0ZERldmlhdGlvbjpyLHJlc3VsdDoiY29sb3JlZEJsdXIifSk7dS5hcHBlbmRDaGlsZChjKTt2YXIgZT10aGlzLmNyZWF0ZVNWRygiZmVNZXJnZSIsbnVsbCx7fSksYT10aGlzLmNyZWF0ZVNWRygiZmVNZXJnZU5vZGUiLG51bGwseyJpbiI6ImNvbG9yZWRCbHVyIn0pLHY9dGhpcy5jcmVhdGVTVkcoImZlTWVyZ2VOb2RlIixudWxsLHsiaW4iOiJTb3VyY2VHcmFwaGljIn0pO2UuYXBwZW5kQ2hpbGQoYSk7ZS5hcHBlbmRDaGlsZCh2KTt1LmFwcGVuZENoaWxkKGUpO3RoaXMuaW5zZXJ0RGVmKG4sdSl9O0NGaXJld29yay5wcm90b3R5cGUuaW5zZXJ0RGVmPWZ1bmN0aW9uKG4sdCl7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCJkZWZzIil8fG4uaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmd1NWR25zLCJkZWZzIiksbi5maXJzdENoaWxkKTtpLmFwcGVuZENoaWxkKHQpfTtDRmlyZXdvcmsucHJvdG90eXBlLmFkZFNwYXJrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbygpe24ucmVtb3ZlQ2hpbGQodCl9dmFyIGk9NDAwK01hdGgucmFuZG9tKCkqODAwLHI9dGhpcy52ZWxYK01hdGgucmFuZG9tKCkqMjAtMTAsdT1NYXRoLnJhbmRvbSgpKjgwKzQwLGY9dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cytNYXRoLnJhbmRvbSgpKjMtMS41LGU9dGhpcy5hc2NlbmRpbmdGaXJlQmFsbFJhZGl1cytNYXRoLnJhbmRvbSgpKjQsbj10aGlzLnNwYXJrcyx0PUNGaXJld29yay5wcm90b3R5cGUuY3JlYXRlQ2lyY2xlLmNhbGwodGhpcyxuLGYsZSwxLCJGRkVFQjgiKTt0aGlzLnByb2plY3RpbGVUd2Vlbih0LGksbywwLC1yLHUsMSwwKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5leHBsb3Npb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBmKHQpezE1PHQmJnQ8NDAmJm4uc2V0U1ZHc2NhbGUobi5mYXN0RXhwbG9zaW9uLDEuNjcsbi5md0NlbnRlcixuLmZ3Q2VudGVyKTs0MDw9dCYmdDw2NSYmbi5zZXRTVkdzY2FsZShuLmZhc3RFeHBsb3Npb24sMSxuLmZ3Q2VudGVyLG4uZndDZW50ZXIpfWZ1bmN0aW9uIGEodCl7dmFyIGk9TWF0aC5taW4odC9uLnNoaW5lRXhwYW5zaW9uVGltZSwxKSxyPS45Ky43KmkqKDItaSk7bi5zaGluZUNvbG9yLnNldEF0dHJpYnV0ZSgiciIscipuLnNoaW5lUmFkaXVzKX1mdW5jdGlvbiB2KCl7dmFyIHQ9bi5hbmltYXRpb24obi5zaGluZUZhZGVPdXRUaW1lLHksbnVsbCl9ZnVuY3Rpb24geSh0KXt2YXIgaT1NYXRoLm1pbih0L24uc2hpbmVGYWRlT3V0VGltZSwxKSxyPTEtaSppO24uc2hpbmVDb2xvci5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIscil9dmFyIG49dGhpcyx1LGUsdCxsO2Zvcih0aGlzLnNoaW5lQ29sb3I9dGhpcy5jcmVhdGVTVkcoImNpcmNsZSIsInNoaW5lQ29sb3IiLHtjeDp0aGlzLmZ3Q2VudGVyLGN5OnRoaXMuZndDZW50ZXIscjp0aGlzLnNoaW5lUmFkaXVzLHN0cm9rZToibm9uZSIsZmlsbDoidXJsKCNiYWNrbGlnaHRHcmFkIit0aGlzLm51bSsiKSJ9KSx0aGlzLmZ3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuc2hpbmVDb2xvciksdGhpcy5mYXN0RXhwbG9zaW9uPXRoaXMuY3JlYXRlU1ZHKCJjaXJjbGUiLCJleHBsb3Npb24iLHtjeDp0aGlzLmZ3Q2VudGVyLGN5OnRoaXMuZndDZW50ZXIscjp0aGlzLmZpcnN0RXhwbG9zaW9uUmFkaXVzLHN0cm9rZToibm9uZSIsZmlsbDoidXJsKCNleHBsb3Npb25HcmFkIit0aGlzLm51bSsiKSJ9KSx0aGlzLmZ3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuZmFzdEV4cGxvc2lvbiksdT10aGlzLmFuaW1hdGlvbig2NSxmLGZ1bmN0aW9uKCl7bi5md0NvbnRhaW5lci5yZW1vdmVDaGlsZChuLmZhc3RFeHBsb3Npb24pfSksdGhpcy5wYXJ0aWNsZXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsInN2ZyIpLHRoaXMucGFydGljbGVzLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbHRlciIsInVybCgjcGFydGljbGVzR2xvdyIrdGhpcy5udW0rIikiKSxlPXRoaXMucGFydGljbGVzLHQ9MDt0PHRoaXMubnVtRXhwbG9zaW9uUGFydGljbGVzO3QrKyl2YXIgaT1NYXRoLnBvdyhNYXRoLnJhbmRvbSgpLC4zKSp0aGlzLmV4cGxvc2lvblZlbG9jaXR5LHI9TWF0aC5yYW5kb20oKSoyKk1hdGguUEksbz1pKk1hdGguc2luKHIpLHM9aSpNYXRoLmNvcyhyKSxoPTUwK01hdGgucmFuZG9tKCkqdGhpcy5leHBsb3Npb25QYXJ0aWNsZXNNYXhMaWZlc3BhbixjPXRoaXMuY3JlYXRlQ2lyY2xlKHRoaXMucGFydGljbGVzLHRoaXMuZndDZW50ZXIsdGhpcy5md0NlbnRlcix0aGlzLmV4cGxvc2lvblBhcnRpY2xlUmFkaXVzLCJGRkZGRkYiLHRoaXMuZmlyZUNvbG9yKSxwPXRoaXMuZXhwbG9zaW9uUGFydGljbGVUd2VlbihjLGgsdGhpcy5leHBsb3Npb25QYXJ0aWNsZVJhZGl1cyx0aGlzLmV4cGxvc2lvbkRlY2VsZXJhdGlvbixvLHMpO3RoaXMuZndDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJ0aWNsZXMpO2w9dGhpcy5hbmltYXRpb24odGhpcy5zaGluZUV4cGFuc2lvblRpbWUsYSx2KTt0aGlzLnVzZUF1ZGlvJiYoZXhwbG9zaW9uTVAzLmN1cnJlbnRUaW1lPTAsZXhwbG9zaW9uTVAzLnBsYXkoKSl9O0NGaXJld29yay5wcm90b3R5cGUuY3JlYXRlQ2lyY2xlPWZ1bmN0aW9uKG4sdCxpLHIsdSxmKXtmPXR5cGVvZiBmIT0idW5kZWZpbmVkIj8iIyIrZjoibm9uZSI7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGZ3U1ZHbnMsImNpcmNsZSIpO3JldHVybiBlLnNldEF0dHJpYnV0ZU5TKG51bGwsImN4Iix0KSxlLnNldEF0dHJpYnV0ZU5TKG51bGwsImN5IixpKSxlLnNldEF0dHJpYnV0ZU5TKG51bGwsInIiLHIpLGUuc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbCIsIiMiK3UpLGUuc2V0QXR0cmlidXRlTlMobnVsbCwic3Ryb2tlIixmKSxmIT0ibm9uZSImJmUuc2V0QXR0cmlidXRlTlMobnVsbCwic3Ryb2tlLXdpZHRoIiwuNSksbi5hcHBlbmRDaGlsZChlKSxlfTtDRmlyZXdvcmsucHJvdG90eXBlLnByb2plY3RpbGVUd2Vlbj1mdW5jdGlvbihuLHQsaSxyLHUsZixlLG8pe2Z1bmN0aW9uIHAoaSl7dmFyIG8scCx3LHk7bD1pLWE7YT1pO289bC8xZTM7Zis9cipvO3A9cz8iY3giOiJ4Ijt3PXM\/ImN5IjoieSI7aC5pbmNyZWFzZVBhcmFtZXRlcihuLHAsdSpvKTtoLmluY3JlYXNlUGFyYW1ldGVyKG4sdyxmKm8pO2MmJih5PWUrdiooaS90KSxzP24uc2V0QXR0cmlidXRlKCJmaWxsLW9wYWNpdHkiLHkpOm4uc3R5bGUub3BhY2l0eT15KX12YXIgaCx5O2U9dHlwZW9mIGUhPSJ1bmRlZmluZWQiP2U6MTtvPXR5cGVvZiBvIT0idW5kZWZpbmVkIj9vOjE7dmFyIGM9ZSE9byx2PW8tZSxsPTAsYT0wLHM9bi5ub2RlTmFtZSE9InN2ZyI7YyYmKHM\/bi5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIsZSsiIik6bi5zdHlsZS5vcGFjaXR5PWUpO2g9dGhpczt5PXRoaXMuYW5pbWF0aW9uKHQscCxpKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5leHBsb3Npb25QYXJ0aWNsZVR3ZWVuPWZ1bmN0aW9uKG4sdCxpLHIsdSxmKXtmdW5jdGlvbiBoKGgpe3ZhciBsLGEsYztlPWgtcztzPWg7bD1NYXRoLnBvdyhyLGUvMTcpO3UqPWw7Zio9bDthPWUvMWUzO28uaW5jcmVhc2VQYXJhbWV0ZXIobiwiY3giLHUqYSk7by5pbmNyZWFzZVBhcmFtZXRlcihuLCJjeSIsZiphKTtjPTEtLjkqKGgvdCk7Yz1NYXRoLm1heChjLC4wMSk7bi5zZXRBdHRyaWJ1dGUoInIiLGMqaSk7bi5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsLjUqYyl9dmFyIG89dGhpcyxlPTAscz0wLGM9dGhpcy5hbmltYXRpb24odCxoLG51bGwpfTtDRmlyZXdvcmsucHJvdG90eXBlLmFuaW1hdGlvbj1mdW5jdGlvbihuLHQsaSl7ZnVuY3Rpb24gdSgpe3ZhciBlPShuZXcgRGF0ZSkuZ2V0VGltZSgpLGY7cj09PW51bGwmJihyPWUpO2Y9ZS1yO3QoZik7ZjxuP3NldFRpbWVvdXQodSwxNSk6aSE9bnVsbCYmaSgpfWk9dHlwZW9mIGkhPSJ1bmRlZmluZWQiP2k6bnVsbDt2YXIgcj1udWxsO3UoKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5pbmNyZWFzZVBhcmFtZXRlcj1mdW5jdGlvbihuLHQsaSl7bi5zZXRBdHRyaWJ1dGUodCxwYXJzZUZsb2F0KG4uZ2V0QXR0cmlidXRlKHQpKStpKX07Q0ZpcmV3b3JrLnByb3RvdHlwZS5zZXRTVkdzY2FsZT1mdW5jdGlvbihuLHQsaSxyKXtuLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwic2NhbGUoIit0KyIpIik7bi5zZXRBdHRyaWJ1dGUoImN4IixpKygxLXQpKmkvdCk7bi5zZXRBdHRyaWJ1dGUoImN5IixyKygxLXQpKnIvdCl9Oy8qRU9GKi87Ci8qKiAvanMvdHJhZGVJbkJhci5qcyAqKi8KdmFyIF9fX2QyY190cmFkZUluQmFyanNfY19vbj0iMjAyNi0wMS0yNyAxMDozMDowOSI7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIHRyYWRlSW5CYXJJbml0aWFsaXplKCl7Zm9yKHZhciBwPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5NYWtlIl0nKSxrPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJyksbD0kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJykscT0kKCdzZWxlY3RbbmFtZT0idHJhZGluWWVhciJdJyksZz0kKCdpbnB1dFtuYW1lPSJ0cmFkaW5WaW4iXScpLHU9e30sdz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7MTk5OTx3O3ctLSk7cC5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7cC5jc3MoImJhY2tncm91bmQiLCIjZmZmZmZmIil9KTtrLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXtrLmNzcygiYmFja2dyb3VuZCIsIiNmZmZmZmYiKX0pO2wub24oImZvY3VzIixmdW5jdGlvbigpe2wuY3NzKCJiYWNrZ3JvdW5kIiwiI2ZmZmZmZiIpfSk7cS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7cS5jc3MoImJhY2tncm91bmQiLCIjZmZmZmZmIil9KTt2YXIgaD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KIkVOR0xJU0giOiJGUkVOQ0giLEE9JzxvcHRpb24gdmFsdWU9IiI+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+JythW2RdLm5hbWUrIjwvb3B0aW9uPiIpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykubXVsdGlzZWxlY3Qoe2hlYWRlcjohMSxub25lU2VsZWN0ZWRUZXh0OiJPcHRpb25zIixzZWxlY3RlZFRleHQ6ZnVuY3Rpb24oYyxtLHgpe3JldHVybiAkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9jKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKTpjKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJtdWx0aXNlbGVjdGVkVGV4dFZhbHVlIl0nKS52YWwoKSsoMTxjPyJzIjoiIil9LGNsYXNzZXM6InRyYWRlSW5CYXJNdWx0aXNlbGVjdCJ9KS5tdWx0aXNlbGVjdCgicmVmcmVzaCIpOwokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAub3BlblZlaGljbGVPcHRpb25zIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIikuc2hvdygpfWVsc2UgJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm9wZW5WZWhpY2xlT3B0aW9ucyIpLnNob3coKX19KX0pLG4ub24oInBhc3RlIixmdW5jdGlvbigpe2xldCBhPSQodGhpcyk7c2V0VGltZW91dChmdW5jdGlvbigpe2EudHJpZ2dlcigia2V5dXAiKX0sMjAwKX0pLG4ub24oImtleXVwIixmdW5jdGlvbigpeyQodGhpcykudmFsKCkmJjE3PD0kKHRoaXMpLnZhbCgpLmxlbmd0aCYmJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVmluP3dzd2lkdGg9MCIsCmRhdGFUeXBlOiJqc29uIixkYXRhOnt2aW46JCh0aGlzKS52YWwoKSxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGEpe2EmJmEubW9kZWwmJmEueWVhcj8obi5maXJzdCgpLmF0dHIoInZpbk1vZGVsIixhLm1vZGVsKSxuLmZpcnN0KCkuYXR0cigidmluWWVhciIsYS55ZWFyKSx5LnZhbChhLm1ha2UpLHkuZmlyc3QoKS50cmlnZ2VyKCJjaGFuZ2UiKSxmKCksZSgpKTpiKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJVbnJlY29nbml6ZWQgVklOIjoiTklWIG5vbiByZWNvbm51Iil9fSl9KSk7ZnVuY3Rpb24gYihhKXt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJhZGVJbkJhclBvcHVwTml2RGl2Q29udGFpbmVyIik7aWYoZCl7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZFdhcm5pbmdNZXNzYWdlIik7YyYmYy5yZW1vdmUoKTsKYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Yy5pZD0icmVkV2FybmluZ01lc3NhZ2UiO2MudGV4dENvbnRlbnQ9YTtjLnN0eWxlLmNvbG9yPSJyZWQiO2Muc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtjLnN0eWxlLnRvcD0iNTAlIjtjLnN0eWxlLnJpZ2h0PSI4cHgiO2Muc3R5bGUubWFyZ2luVG9wPSI0cHgiO2Muc3R5bGUuZm9udFNpemU9IjExcHgiO2Muc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKC01MCUpIjtkLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7ZC5hcHBlbmRDaGlsZChjKX19ZnVuY3Rpb24gZigpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWRXYXJuaW5nTWVzc2FnZSIpO2EmJmEucmVtb3ZlKCl9ZnVuY3Rpb24gZSgpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuaXZNYWtlTW9kZWxTZWxlY3RNb2RlbCIpO2EmJmEuY2xpY2soKTsoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJhZGVJbkJhclBvcHVwVHJpbSIpKSYmCmEuZm9jdXMoKX19fX07Ci8qKiAvanMvdHJhZGVpbnBvcHVwLmpzICoqLwp2YXIgX19fZDJjX3RyYWRlaW5wb3B1cGpzX2Nfb249IjIwMjYtMDQtMTMgMTU6MzA6MDQiOyd1c2Ugc3RyaWN0Jzt2YXIgdHJhZGVpbnBvcHVwZDJjPXtpbml0OmZ1bmN0aW9uKCl7fSxvbkJlZm9yZVN1Ym1pdDpmdW5jdGlvbihhKXtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iTkVXIjtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJuZXciO2Euc2V0dGluZ3MudmVoaWNsZVN0YXRlPSJuZXciO2lmKCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwiMCI9PSQoImlucHV0W25hbWU9dHJhZGVJbkhhc05ld0RlcF0iKS52YWwoKSllbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iVVNFRCIsZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0idXNlZCIsYS5zZXR0aW5ncy52ZWhpY2xlU3RhdGU9InVzZWQiO2VtYWlsSGFuZGxlci5tYWtlPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5tb2RlbD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCk7ZW1haWxIYW5kbGVyLnllYXI9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUxNQUtFIl0nKS52YWwoJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkpOwokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTE1PREVMIl0nKS52YWwoJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTFlFQVIiXScpLnZhbCgkKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iU1RPQ0tOVU1CRVIiXScpLnZhbCgkKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCkpOyQoIiN2ZWhpY2xlY29sb3IiKS5sZW5ndGgmJiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNPTE9SIl0nKS52YWwoJCgiI3ZlaGljbGVjb2xvciIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS52YWwoKSYmKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikudmFsKCkpLAplbWFpbEhhbmRsZXIuY2FyMl9tYWtlPSQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikudmFsKCkmJigkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikudmFsKCkpLGVtYWlsSGFuZGxlci5jYXIyX21vZGVsPSQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS52YWwoKSYmKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSSU1FWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikudmFsKCkpLCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0gb3B0aW9uOnNlbGVjdGVkIikuYXR0cigiZGF0YS1zdHlsZWlkIikpLAplbWFpbEhhbmRsZXIuY2FyMl90cmltPSQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBZZWFyIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLnZhbCgpJiYoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS52YWwoKSksZW1haWxIYW5kbGVyLmNhcjJfeWVhcj0kKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwTml2IikubGVuZ3RoJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cE5pdiIpLnZhbCgpJiYkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJWSU5FWCJdJykudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBOaXYiKS52YWwoKSk7JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmZpbmQoJ2lucHV0W25hbWU9InRyYWRlaW5iYXJSZWdpc3RlclBhcnRpYWxJRCJdJykubGVuZ3RoJiYKKGVtYWlsSGFuZGxlci50cmFkZWluYmFyUmVnaXN0ZXJQYXJ0aWFsSUQ9JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmZpbmQoJ2lucHV0W25hbWU9InRyYWRlaW5iYXJSZWdpc3RlclBhcnRpYWxJRCJdJykudmFsKCkpO2VtYWlsSGFuZGxlci5jYXIyX29kb21ldGVyPSQoIiNyZWJhdGVNaWxlYWdlX3RyYWRlSW5CYXJQb3B1cCIpLnZhbCgpO2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdD0hMTtpZighJCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF06Y2hlY2tlZCIpLmxlbmd0aCYmMD09JCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKCkmJjEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkpcmV0dXJuIHRoaXMub25CZWZvcmVTdWJtaXRDQkJDYWxsKGEpLCExO2lmKCEkKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikubGVuZ3RoJiYwPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoKSYmCjE9PSQoImlucHV0W25hbWU9aXNBY2N1dHJhZGVdIikudmFsKCkpcmV0dXJuIHRoaXMub25CZWZvcmVTdWJtaXRBY2N1dHJhZGVDYWxsKGEpLCExO2lmKCQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS5sZW5ndGgmJjE9PSQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgpJiYxPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoKSYmMSE9JCgiaW5wdXRbbmFtZT1ub0NCQl0iKS52YWwoKSl0aGlzLm9uQmVmb3JlU3VibWl0Q0JCTWVzc2FnZShhKTtlbHNlIGlmKCQoImlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS5sZW5ndGgmJjE9PSQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgpJiYxPT0kKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkF2YWlsYWJsZVZhbHVlc10iKS52YWwoKSYmMT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSl0aGlzLm9uQmVmb3JlU3VibWl0QWNjdXRyYWRlTWVzc2FnZShhKTsKaWYoIjEiPT09JCgiaW5wdXRbbmFtZT1zdGVwM2FjdGl2ZV0iKS52YWwoKSYmIjAiPT09JCgiaW5wdXRbbmFtZT1zdGVwM2RvbmVdIikudmFsKCkpcmV0dXJuIHRoaXMuaW5pdFRyYWRlSW5TdGVwMygpLCExO2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdD0hMH0sb25BZnRlclN1Ym1pdDpmdW5jdGlvbihhKXskKCJib2R5IikudHJpZ2dlcigiVHJhZGVJbkJhclBvcHVwV2lkZ2V0X29uU3VibWl0IixbXSk7YT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPWRlZmF1bHRTdWJtaXRNZXNhZ2VdIikudmFsKCk7MD09JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJBdmFpbGFibGVWYWx1ZXNdIikudmFsKCkmJjEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCkmJihhPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9bm9WYWx1ZVN1Ym1pdE1lc2FnZV0iKS52YWwoKSk7bGV0IGs9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluTG93XSIpLnZhbCgpfHwKMCxkPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKCl8fDAsYj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikudmFsKCl8fDA7dmFyIGM9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCk6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCk7aWYoMT09CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9UkVBTFRJTUVFU1RJTUFURV0iKS52YWwoKSl7dmFyIGg9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpO2xldCBlPSc8c3BhbiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNnB4OyI+PGJyPicrYysiPC9zcGFuPiIsbj0iIjskKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iMSI9PWg\/ZSs9Ijxicj5Fc3RpbWF0ZWQgVmFsdWU6ICQiK2I6KGUrPSI8YnI+TWluaW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiK2ssZSs9Ijxicj5NYXhpbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIrZCk6IjEiPT1oP2UrPSI8YnI+VmFsZXVyIGVzdGltw6llOiAiK2IrIiQiOihlKz0iPGJyPlZhbGV1ciBlc3RpbcOpZSBtaW5pbWFsZTogIitrKyIkIixlKz0iPGJyPlZhbGV1ciBlc3RpbcOpZSBtYXhpbWFsZTogIitkKyIkIik7bis9JzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O21hcmdpbi10b3A6MTBweDsiPicrCiQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCkrIjwvZGl2PiI7YSs9JzxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOjIwcHg7Ij4nK2UrIjwvZGl2PiIrbn0kKCIjZW1haWxTdWNjZXNzTWVzc2FnZV9UcmFkZUluQmFyUG9wdXBDb250YWluZXIgcCIpLmh0bWwoIjxicj4iK2EpO2xldCBnPWlzTmFOKHBhcnNlSW50KGIpKT9kOmI7aXNOYU4ocGFyc2VJbnQoZykpfHwoYT1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJUcmFkZUluQWN0aW9uQm94IixvbkNvbXBsZXRlOmU9PntlLmRhdGFzZXQuY29tcGxfdHh0X2ZyPWUuZGF0YXNldC5jb21wbF90eHRfZnIucmVwbGFjZSgieyRUUkFERUNBUn0iLGMpLnJlcGxhY2UoInskVFJBREVWQUx9IixnKTtlLmRhdGFzZXQuY29tcGxfdHh0X2VuPQplLmRhdGFzZXQuY29tcGxfdHh0X2VuLnJlcGxhY2UoInskVFJBREVDQVJ9IixjKS5yZXBsYWNlKCJ7JFRSQURFVkFMfSIsZyk7dmFyIG49e3llYXI6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCksbWFrZTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSxtb2RlbDokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCksdHJpbTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKSx2YWx1ZTpwYXJzZUludChnLnJlcGxhY2UoIiwiLCIiKSl9O19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiLEpTT04uc3RyaW5naWZ5KG4pLDEpO2lmKDE+cGFyc2VJbnQoZykpe249JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRW5dIikudmFsKCk7bGV0IHI9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRnJdIikudmFsKCk7CmUuZGF0YXNldC5jb21wbF90eHRfZnI9YCR7Y30gfCAke3J9YDtlLmRhdGFzZXQuY29tcGxfdHh0X2VuPWAke2N9IHwgJHtufWB9fSxmb3JjZVVwZGF0ZTohMH19KSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGEpKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluTG93XSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoMCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgwKTskKCIudHJhZGVJbkJhclN0ZXAxIikuc2hvdygpOyQoIi50cmFkZUluQmFyU3RlcDJUaXRsZSIpLnRleHQoJCgiLnRyYWRlSW5CYXJTdGVwMlRpdGxlIikudGV4dCgpLnJlcGxhY2UoIiAiK2MsIiIpKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXSIpLnJlbW92ZUNsYXNzKCJyZXFSYWRpbyIpOwokKCIudHJhZGVJbkJhclN0ZXAyIikuaGlkZSgpOyQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgwKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikucHJvcCgiY2hlY2tlZCIsITEpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iUVVFU1RJT05TIl0nKS52YWwoIiIpfSxvbkJlZm9yZU9wZW46ZnVuY3Rpb24oKXtmb3IodmFyIGE9Z2V0VXJsVmFycygpLGs9T2JqZWN0LmtleXMoYSksZD1rLmxlbmd0aCxiPXt9O2QtLTspe3ZhciBjPWtbZF07YltjLnRvTG93ZXJDYXNlKCldPWFbY119YT1iO3ZhciBoPSQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5NYWtlIl0nKS52YWwoKT8kKCdzZWxlY3RbbmFtZT0idHJhZGluTWFrZSJdJykudmFsKCk6ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyKGEudG1ha2U\/CmEudG1ha2UudG9Mb3dlckNhc2UoKToiIiksZz0kKCdzZWxlY3RbbmFtZT0idHJhZGluTW9kZWwiXScpLnZhbCgpPyQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5Nb2RlbCJdJykudmFsKCk6ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyKGEudG1vZGVsP2EudG1vZGVsLnRvTG93ZXJDYXNlKCk6IiIpO2s9JCgnc2VsZWN0W25hbWU9InRyYWRpblRyaW0iXScpLnZhbCgpPyQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5UcmltIl0nKS52YWwoKToiICI7ZD0kKCdzZWxlY3RbbmFtZT0idHJhZGluVHJpbSJdJykudmFsKCk\/JCgnc2VsZWN0W25hbWU9InRyYWRpblRyaW0iXSBvcHRpb246c2VsZWN0ZWQnKS5hdHRyKCJkYXRhLXN0eWxlaWQiKToiICI7dmFyIGU9JCgnc2VsZWN0W25hbWU9InRyYWRpblllYXIiXScpLnZhbCgpPyQoJ3NlbGVjdFtuYW1lPSJ0cmFkaW5ZZWFyIl0nKS52YWwoKTphLnR5ZWFyO2E9JCgnaW5wdXRbbmFtZT0idHJhZGluVmluIl0nKS52YWwoKT8kKCdpbnB1dFtuYW1lPSJ0cmFkaW5WaW4iXScpLnZhbCgpOgoiIjskKCJ0cmFkZUluU2VsZWN0ZWRNYWtlIikudmFsKGgpOyQoInRyYWRlSW5TZWxlY3RlZE1vZGVsIikudmFsKGcpOyQoInRyYWRlSW5TZWxlY3RlZFRyaW0iKS52YWwoayk7JCgidHJhZGVJblNlbGVjdGVkWWVhciIpLnZhbChlKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbChoKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoZyk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVFJJTUVYIl0nKS52YWwoayk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoZSk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbChkKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJWSU5FWCJdJykudmFsKGEpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2Upe3ZhciBuOwphPW51bGwhPShuPWNsaWVudFN0b3JhZ2UuZ2V0KCJmaXJzdG5hbWUiKSk\/bjoiIjt2YXIgcjtuPW51bGwhPShyPWNsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpKT9yOiIiO3I9YSsoIiIhPW4\/IiAiK2NsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpOiIiKTskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJGTkFNRSJdJykudmFsKHIpO3ZhciBmOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkVNQUlMUEhPTkUiXScpLnZhbChudWxsIT0oZj1jbGllbnRTdG9yYWdlLmdldCgicGhvbmUiKSk\/ZjoiIik7dmFyIHU7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUwiXScpLnZhbChudWxsIT0odT1jbGllbnRTdG9yYWdlLmdldCgiZW1haWwiKSk\/dToiIil9ZW1haWxIYW5kbGVyLmNhcjJfbWFrZT1oO2VtYWlsSGFuZGxlci5jYXIyX21vZGVsPWc7ZW1haWxIYW5kbGVyLmNhcjJfdHJpbT1rO2VtYWlsSGFuZGxlci5jYXIyX3llYXI9CmU7ZW1haWxIYW5kbGVyLmNhcjJfb2RvbWV0ZXI9JCgiI3JlYmF0ZU1pbGVhZ2VfdHJhZGVJbkJhclBvcHVwIikudmFsKCk7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Ik5FVyI7aWYoInVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCIwIj09JCgiaW5wdXRbbmFtZT10cmFkZUluSGFzTmV3RGVwXSIpLnZhbCgpKWVtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJVU0VEIjtmPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIgIitlKyIgIitoKyIgIitnOiIgIitoKyIgIitnKyIgIitlOyQoIiN0cmFkZUluQmFyUG9wdXBTZWxlY3RlZFZlaGljbGUiKS5odG1sKGYpO0Nvb2tpZXMuZ2V0KCJwb3B1cFBhZ2VWaWV3cyIpfHxDb29raWVzLnNldCgicG9wdXBQYWdlVmlld3MiLCIwIixudWxsLCIvIik7aWYoIjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKXx8IiI9PWh8fCIiPT1nfHwiIj09ZSl7IjEiIT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmKCQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsCiI2ODBweCIpLCQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjY4MHB4IikpOyQoIiN0cmFkZUluQmFyUG9wdXBNYWtlIikuYWRkQ2xhc3MoInJlcXVpcmVkIik7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5lbXB0eSgpOyQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLmFkZENsYXNzKCJyZXF1aXJlZCIpOyQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLmVtcHR5KCk7JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS5hZGRDbGFzcygicmVxdWlyZWQiKTskKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLmVtcHR5KCk7InZpbiIhPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQk1PREVMU0VMRUNUIl0nKS52YWwoKT8oJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2VEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSwkKCIjdHJhZGVJbkJhclBvcHVwTW9kZWxEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSwKJCgiI3RyYWRlSW5CYXJQb3B1cFllYXJEaXZDb250YWluZXIiKS5jc3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKSk6JCgiI3RyYWRlSW5CYXJQb3B1cE5pdkRpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpOzAhPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQk1PREVMU0VMRUNUIl0nKS52YWwoKSYmKCQoJy5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdFt2YWx1ZT0iJyskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJNT0RFTFNFTEVDVCJdJykudmFsKCkrJyJdJykucHJvcCgiY2hlY2tlZCIsITApLCQoIi5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIiKS5zaG93KCkpOyQoIiN0cmFkZUluQmFyUG9wdXBUcmltRGl2Q29udGFpbmVyIikuY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIik7JCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5hZGRDbGFzcygicmVxdWlyZWQiKTsKJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS5lbXB0eSgpO2Y9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiB0cmFkZS1pbiEiOiIgw6ljaGFuZ2UhIjskKCIjdHJhZGVJbkJhclBvcHVwU2VsZWN0ZWRWZWhpY2xlIikuaHRtbChmKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubml2TWFrZU1vZGVsU2VsZWN0IikubGVuZ3RoJiYkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAubml2TWFrZU1vZGVsU2VsZWN0IikudHJpZ2dlcigiY2hhbmdlIik7dmFyIHE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkVOR0xJU0giOiJGUkVOQ0giOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PXE\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJEYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOnF9LHN1Y2Nlc3M6ZnVuY3Rpb24obSl7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IiI+JysKKCJFTkdMSVNIIj09cT8iTWFrZSI6Ik1hcnF1ZSIpKyI8L29wdGlvbj4iKTtmb3IodmFyIGw9MDtsPG0ubGVuZ3RoO2wrKyl7dmFyIHA9bVtsXS5tYWtlLnRvTG93ZXJDYXNlKCk9PWgudG9Mb3dlckNhc2UoKT8nc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiI7bGV0IHQ9MT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKT9tW2xdLm1ha2UudG9VcHBlckNhc2UoKTptW2xdLm1ha2U7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5hcHBlbmQoIjxvcHRpb24gIitwKycgdmFsdWU9IicrdCsnIj4nK21bbF0ubWFrZSsiPC9vcHRpb24+Iil9JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS50cmlnZ2VyKCJjaGFuZ2UiKTskKCIjdHJhZGVJbkJhclBvcHVwTml2IikubGVuZ3RoJiYkKCIjdHJhZGVJbkJhclBvcHVwTml2IikudHJpZ2dlcigia2V5dXAiKX19KX1lbHNlIiAiPT1rPygkKCIjdHJhZGVJbkJhclBvcHVwVHJpbURpdkNvbnRhaW5lciIpLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpLAokKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFkZENsYXNzKCJyZXF1aXJlZCIpLCQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuZW1wdHkoKSxxPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIiwxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpPyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PXE\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJUcmltP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOnEsbWFrZTpoLG1vZGVsOmcseWVhcjplfSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09cT8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+Iik7Zm9yKHZhciBsPTA7bDxtLmxlbmd0aDtsKyspe3ZhciBwPW1bbF0uc3R5bGUrIiAiK21bbF0uc2VyaWVzLAp0PW1bbF0udXZjOyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJyt0KyciIHZhbHVlPSInK3ArJyI+JytwKyI8L29wdGlvbj4iKX19fSk6MT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKT8kLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooIkVOR0xJU0giPT1xPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nVHJpbT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntsYW5ndWFnZTpxLG1ha2U6aCxtb2RlbDpnLHllYXI6ZX0sc3VjY2VzczpmdW5jdGlvbihtKXskKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iIj4nKygiRU5HTElTSCI9PXE\/IlRyaW0iOiJWZXJzaW9uIikrIjwvb3B0aW9uPiIpO2Zvcih2YXIgbD0wO2w8bS5sZW5ndGg7bCsrKXt2YXIgcD1tW2xdLm5hbWUsdD1tW2xdLmlkOyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtc3R5bGVpZD0iJysKdCsnIiB2YWx1ZT0iJytwKyciPicrcCsiPC9vcHRpb24+Iil9fX0pOiQuYWpheCh7dHlwZToiUE9TVCIsdXJsOigiRU5HTElTSCI9PXE\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5CYXJEYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6Impzb24iLGRhdGE6e2xhbmd1YWdlOnEsbWFrZTpofSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSIiPicrKCJFTkdMSVNIIj09cT8iVHJpbSI6IlZlcnNpb24iKSsiPC9vcHRpb24+Iik7Zm9yKHZhciBsPTA7bDxtW2VdLmxlbmd0aDtsKyspbVtlXVtsXS5tb2RlbC50b0xvd2VyQ2FzZSgpPT1nLnRvTG93ZXJDYXNlKCkmJiQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK21bZV1bbF0udHJpbSsnIj4nK21bZV1bbF0udHJpbSsiPC9vcHRpb24+Iil9fSkpOigkKCIjdHJhZGVJbkJhclBvcHVwTWFrZURpdkNvbnRhaW5lciIpLmhpZGUoKSwKJCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5yZW1vdmVDbGFzcygicmVxdWlyZWQiKSwkKCIjdHJhZGVJbkJhclBvcHVwTW9kZWxEaXZDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikucmVtb3ZlQ2xhc3MoInJlcXVpcmVkIiksJCgiI3RyYWRlSW5CYXJQb3B1cFllYXJEaXZDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS5yZW1vdmVDbGFzcygicmVxdWlyZWQiKSwkKCIjdHJhZGVJbkJhclBvcHVwVHJpbURpdkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLnJlbW92ZUNsYXNzKCJyZXF1aXJlZCIpLDEhPSQoImlucHV0W25hbWU9bm9DQkJdIikudmFsKCk\/KCQoIi5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIiKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cE5pdkRpdkNvbnRhaW5lciIpLmhpZGUoKSwkLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/CiIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVmFsdWU\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7dXZjOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoKSxwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKG0peyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLm9wZW5WZWhpY2xlT3B0aW9ucyIpLnNob3coKX19KSk6MT09JCgiaW5wdXRbbmFtZT1pc0FjY3V0cmFkZV0iKS52YWwoKSYmKCQoIi5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIiKS5oaWRlKCksCiQoIiN0cmFkZUluQmFyUG9wdXBOaXZEaXZDb250YWluZXIiKS5oaWRlKCksJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluTW5nT3B0aW9ucz93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntpZDokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCkscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihtKXskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbiIpLnJlbW92ZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC5vcGVuVmVoaWNsZU9wdGlvbnMiKS5zaG93KCl9fSkpKTsKYT1nZXRVcmxWYXJzKCk7Zj1hLmhhc093blByb3BlcnR5KCJ0cmFkZS12YWx1ZSIpJiYieWVzIj09YVsidHJhZGUtdmFsdWUiXTt1PWEuaGFzT3duUHJvcGVydHkoInRyYWRlLXZhbHVlIikmJiJubyI9PWFbInRyYWRlLXZhbHVlIl07cj0kKCdpbnB1dFtuYW1lPSJDQkJDaGVja1VzZXIiXScpLmxlbmd0aD9hdG9iKCQoJ2lucHV0W25hbWU9IkNCQkNoZWNrVXNlciJdJykudmFsKCkpOiIiO3V8fCI2Ni4xMzAuMTA3LjE1NyIhPXImJjEhPUNvb2tpZXMuZ2V0KCJEMkNVVUlEIikmJiFmfHwxPT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpfHwoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRk5BTUUiXScpLmhpZGUoKSwkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJFTUFJTFBIT05FIl0nKS5oaWRlKCksJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iRU1BSUwiXScpLmhpZGUoKSwkKCIudHJhZGVJbkJhckRlYWxlck1lc3NhZ2UiKS5zaG93KCkpOwokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT0iRU1BSUxQSE9ORSJdJykuZWFjaCgobSxsKT0+e0lNYXNrKGwse21hc2s6W3ttYXNrOiIwMDAgMDAwLTAwMDAifSx7bWFzazoiMSAwMDAgMDAwLTAwMDAifV19KX0pOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIC50cmFkZUluRGlzY2xhaW1lclNob3J0Iikub24oImNsaWNrIixmdW5jdGlvbigpe2xldCBtPSQodGhpcykuZmluZCgiLnRyYWRlSW5EaXNjbGFpbWVyQ29udGVudCIpLmh0bWwoKTskKCIudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIgLnRyYWRlSW5EaXNjbGFpbWVyQ29udGVudCIpLmVtcHR5KCkuaHRtbChtKTskKCIudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIiKS5zaG93KCkuYWRkQ2xhc3MoIm9wZW4iKX0pOyQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIgLnRyYWRlSW5EaXNjbGFpbWVyQ2xvc2UiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiLnRyYWRlSW5EaXNjbGFpbWVyRHJhd2VyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKS5oaWRlKCl9KTsKdGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LG9uQmVmb3JlVmFsaWRhdGlvbjpmdW5jdGlvbihhKXt2YXIgaz1nZXRVcmxWYXJzKCk7YT1rLmhhc093blByb3BlcnR5KCJ0cmFkZS12YWx1ZSIpJiYieWVzIj09a1sidHJhZGUtdmFsdWUiXTtrPWsuaGFzT3duUHJvcGVydHkoInRyYWRlLXZhbHVlIikmJiJubyI9PWtbInRyYWRlLXZhbHVlIl07dmFyIGQ9JCgnaW5wdXRbbmFtZT0iQ0JCQ2hlY2tVc2VyIl0nKS5sZW5ndGg\/YXRvYigkKCdpbnB1dFtuYW1lPSJDQkJDaGVja1VzZXIiXScpLnZhbCgpKToiIjtpZighayYmKCI2Ni4xMzAuMTA3LjE1NyI9PWR8fDE9PUNvb2tpZXMuZ2V0KCJEMkNVVUlEIil8fGEpJiYxIT0kKCJpbnB1dFtuYW1lPW5vQ0JCXSIpLnZhbCgpKXskKCIjcmViYXRlTWlsZWFnZV90cmFkZUluQmFyUG9wdXAiKS5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIik7JCgiI3RyYWRlSW5CYXJQb3B1cE1ha2UiKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmCiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLnZhbCgpJiYkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwTWFrZSIpLnZhbCgpKTskKCIjdHJhZGVJbkJhclBvcHVwTW9kZWwiKS5oYXNDbGFzcygicmVxdWlyZWQiKSYmIiIhPSQoIiN0cmFkZUluQmFyUG9wdXBNb2RlbCIpLnZhbCgpJiYkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cE1vZGVsIikudmFsKCkpOyQoIiN0cmFkZUluQmFyUG9wdXBUcmltIikuaGFzQ2xhc3MoInJlcXVpcmVkIikmJiIiIT0kKCIjdHJhZGVJbkJhclBvcHVwVHJpbSIpLnZhbCgpJiYoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVFJJTUVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cFRyaW0iKS52YWwoKSksJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0idHJhZGVpbmJhclN0eWxlaWQiXScpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwVHJpbSBvcHRpb246c2VsZWN0ZWQiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKSkpOwokKCIjdHJhZGVJbkJhclBvcHVwWWVhciIpLmhhc0NsYXNzKCJyZXF1aXJlZCIpJiYiIiE9JCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS52YWwoKSYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cFllYXIiKS52YWwoKSk7aWYoMT4kKCIjcmViYXRlTWlsZWFnZV90cmFkZUluQmFyUG9wdXAiKS52YWwoKSlyZXR1cm4gJCgiI3JlYmF0ZU1pbGVhZ2VfdHJhZGVJbkJhclBvcHVwIikuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLCExO2E9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0pLmdldCgpLmpvaW4oIiwgIik7dmFyIGI9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0fSkuZ2V0KCkuam9pbigiLCAiKTsKaz0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJLTSJdJykudmFsKCk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVmFsdWU\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7dXZjOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoKSxvcHRpb25zOmEsdmVoaWNsZUtNOmsscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihjKXt2YXIgaD1jLmNhbmFkaWFuX3RyYWRlaW5fdmFsdWV8fGMuYmFzZV90cmFkZWluX2F2Z3x8MCxnPWMuY2FuYWRpYW5fdHJhZGVpbl9sb3d8fGMuYmFzZV90cmFkZWluX3JvdWdofHwwO2M9Yy5jYW5hZGlhbl90cmFkZWluX2hpZ2h8fApjLmJhc2VfdHJhZGVpbl9jbGVhbnx8MDtoPSIkIitEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoaCk7Zz0iJCIrRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGcpO2M9IiQiK0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihjKTt2YXIgZT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKSsiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iVFJJTUVYIl0nKS52YWwoKTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKSsiICIrCiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IlRSSU1FWCJdJykudmFsKCk7YiYmKGUrPSIgKCIrYisiKSIpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckRlYWxlclN0ZXBNYWtlTW9kZWxZZWFyIikudGV4dChlKTsiMSI9PSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQlNJTkdMRVZBTFVFIl0nKS52YWwoKT8oJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyQ0JCTWluVmFsdWUiKS5wYXJlbnQoKS5oaWRlKCksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyQ0JCTWF4VmFsdWUiKS5wYXJlbnQoKS5oaWRlKCkpOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQkF2Z1ZhbHVlIikucGFyZW50KCkuaGlkZSgpOwokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJDQkJNaW5WYWx1ZSIpLnRleHQoZyk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIC50cmFkZUluQmFyQ0JCTWF4VmFsdWUiKS50ZXh0KGMpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckNCQkF2Z1ZhbHVlIikudGV4dChoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhckRlYWxlclN0ZXAiKS5zaG93KCl9fSk7cmV0dXJuITF9fSxvbkJlZm9yZVN1Ym1pdENCQkNhbGw6ZnVuY3Rpb24oYSl7dmFyIGs9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0pLmdldCgpLmpvaW4oIiwgIiksZD0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHR9KS5nZXQoKS5qb2luKCIsICIpOwoiIiE9ZCYmJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iUVVFU1RJT05TIl0nKS52YWwoZCk7ZD0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJLTSJdJykudmFsKCk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4vIjoiL2ZyLyIpKyIvYWpheC9nZXRUcmFkZUluQmFyVmFsdWU\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsZGF0YTp7dXZjOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9InRyYWRlaW5iYXJTdHlsZWlkIl0nKS52YWwoKSxvcHRpb25zOmssdmVoaWNsZUtNOmQscHJvdmluY2U6JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iZGVhbGVyUHJvdmluY2VUcmFkZUluIl0nKS52YWwoKX0sc3VjY2VzczpmdW5jdGlvbihiKXt2YXIgYz1iLmNhbmFkaWFuX3RyYWRlaW5fdmFsdWV8fGIuYmFzZV90cmFkZWluX2F2Z3x8CjAsaD1iLmNhbmFkaWFuX3RyYWRlaW5fbG93fHxiLmJhc2VfdHJhZGVpbl9yb3VnaHx8MDtiPWIuY2FuYWRpYW5fdHJhZGVpbl9oaWdofHxiLmJhc2VfdHJhZGVpbl9jbGVhbnx8MDt2YXIgZz0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJBRERFRFZBTFVFIl0nKS52YWwoKSxlPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQkFEREVEVkFMVUVNQUtFUyJdJykudmFsKCksbj0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJBRERFRFZBTFVFVFlQRSJdJykudmFsKCkscj0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk7MCE9ZyYmIiIhPWUmJi0xPGUuc3BsaXQoIjsiKS5pbmRleE9mKCQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkpJiYoImNhc2giPT1uPyhjKz1wYXJzZUludChnKSxoKz1wYXJzZUludChnKSxiKz0KcGFyc2VJbnQoZykpOiJwZXJjZW50YWdlIj09biYmKGc9MStnLzEwMCxjKj1nLGgqPWcsYio9ZykpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciLGMpO2lmKCQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLmxlbmd0aCl7Zz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKTtlPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TUFLRUVYXSIpLnZhbCgpO249JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NT0RFTEVYXSIpLnZhbCgpO2xldCBsPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VFJJTUVYXSIpLnZhbCgpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLnZhbChlKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTW9kZWxdIikudmFsKG4pOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5ZZWFyXSIpLnZhbChnKTsKJCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblRyaW1dIikudmFsKGwpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5WYWx1ZV0iKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIikpOyQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIpKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciLCIiKX1pZigxPT1hLnNldHRpbmdzLmZvcm11bHRpc3RlcCl7bGV0IGw9aXNOYU4ocGFyc2VJbnQoYykpPzA6YztsPUQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihsKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxdIikudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT0KJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTFBIT05FXSIpLnZhbCgpO3ZhciBmO2M9bnVsbCE9KGY9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1GTkFNRV0iKS52YWwoKSk\/ZjoiIjt2YXIgdTtmPW51bGwhPSh1PWMuc3BsaXQoIiAiKVswXSk\/dToiIjt2YXIgcTt1PW51bGwhPShxPWMuc3BsaXQoIiAiKVsxXSk\/cToiIjtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1mO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9dTt2YXIgbT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNT0RFTEVYIl0nKS52YWwoKTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJNQUtFRVgiXScpLnZhbCgpKwoiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTU9ERUxFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCk7aXNOYU4ocGFyc2VJbnQobCkpfHwocT1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJUcmFkZUluQWN0aW9uQm94IixvbkNvbXBsZXRlOnA9PntwLmRhdGFzZXQuY29tcGxfdHh0X2ZyPXAuZGF0YXNldC5jb21wbF90eHRfZnIucmVwbGFjZSgieyRUUkFERUNBUn0iLG0pLnJlcGxhY2UoInskVFJBREVWQUx9IixsKTtwLmRhdGFzZXQuY29tcGxfdHh0X2VuPXAuZGF0YXNldC5jb21wbF90eHRfZW4ucmVwbGFjZSgieyRUUkFERUNBUn0iLG0pLnJlcGxhY2UoInskVFJBREVWQUx9IixsKTt2YXIgdD17eWVhcjokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVlFQVJFWF0iKS52YWwoKSxtYWtlOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TUFLRUVYXSIpLnZhbCgpLAptb2RlbDokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCksdHJpbTokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKSx2YWx1ZTpwYXJzZUludChsLnJlcGxhY2UoIiwiLCIiKSl9O19sb2NhbFN0b3JhZ2VTZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiLEpTT04uc3RyaW5naWZ5KHQpLDEpO2lmKDE+cGFyc2VJbnQobCkpe3Q9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRW5dIikudmFsKCk7bGV0IHY9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT16ZXJvVmFsdWVNZXNzYWdlRnJdIikudmFsKCk7cC5kYXRhc2V0LmNvbXBsX3R4dF9mcj1gJHttfSB8ICR7dn1gO3AuZGF0YXNldC5jb21wbF90eHRfZW49YCR7bX0gfCAke3R9YH19LGZvcmNlVXBkYXRlOiEwfX0pLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQocSkpO2Euc2V0dGluZ3MuZm9ybXVsdGlzdGVwPQohMTthLmNsb3NlKCl9ZWxzZSAkKCJpbnB1dFtuYW1lPXRyYWRlSW5WYWx1ZUNCQkNhbGxlZF0iKS52YWwoMSksIjEiPT1yP2I9aD0icmVtb3ZlZW1wdHkiOmM9InJlbW92ZWVtcHR5IiwwPGh8fDA8Ynx8MDxjPygkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYykpLCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5Mb3ddIikudmFsKEQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihoKSksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkhpZ2hdIikudmFsKEQyQ1V0aWxzLkZvcm1hdC50b051bWJlcihiKSksJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJblZhbHVlQ0JCQXZhaWxhYmxlVmFsdWVzXSIpLnZhbCgxKSx0cmFkZWlucG9wdXBkMmMuaW5pdFRyYWRlSW5TdGVwMihhKSxwb3B1cElzU3VibWl0dGluZz0hMSk6KHBvcHVwSXNTdWJtaXR0aW5nPSExLAokKCJpbnB1dFtuYW1lPXN0ZXAzZG9uZV0iKS52YWwoMSksJCgiLnRyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnRyaWdnZXIoImNsaWNrIikpfX0pfSxvbkJlZm9yZVN1Ym1pdEFjY3V0cmFkZUNhbGw6ZnVuY3Rpb24oYSl7dmFyIGs9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IlZFSElDTEVPUFRJT05TIl0nKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0pLmdldCgpLmpvaW4oIiwgIiksZD0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBzZWxlY3RbbmFtZT0iVkVISUNMRU9QVElPTlMiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHR9KS5nZXQoKS5qb2luKCIsICIpOyIiIT1kJiYkKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJRVUVTVElPTlMiXScpLnZhbChkKTtkPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IktNIl0nKS52YWwoKTsKdmFyIGI9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gc2VsZWN0W25hbWU9IkNPTE9SRVgiXScpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLmF0dHIoImRhdGEtaWQiKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDooJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbi8iOiIvZnIvIikrIi9hamF4L2dldFRyYWRlSW5NbmdWYWx1ZT93c3dpZHRoPTAiLGRhdGFUeXBlOiJqc29uIixkYXRhOntpZDokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJ0cmFkZWluYmFyU3R5bGVpZCJdJykudmFsKCksb3B0aW9uczprLGttOmQsY29sb3I6Yixwcm92aW5jZTokKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJkZWFsZXJQcm92aW5jZVRyYWRlSW4iXScpLnZhbCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGMpe3ZhciBoPWMuYXZnfHwwLGc9Yy5sb3d8fDA7Yz1jLmhpZ2h8fDA7dmFyIGU9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRSJdJykudmFsKCksCm49JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCQURERURWQUxVRU1BS0VTIl0nKS52YWwoKSxyPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQkFEREVEVkFMVUVUWVBFIl0nKS52YWwoKSxmPSQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IkNCQlNJTkdMRVZBTFVFIl0nKS52YWwoKTswIT1lJiYiIiE9biYmLTE8bi5zcGxpdCgiOyIpLmluZGV4T2YoJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iTUFLRUVYIl0nKS52YWwoKSkmJigiY2FzaCI9PXI\/KGgrPXBhcnNlSW50KGUpLGcrPXBhcnNlSW50KGUpLGMrPXBhcnNlSW50KGUpKToicGVyY2VudGFnZSI9PXImJihlPTErZS8xMDAsaCo9ZSxnKj1lLGMqPWUpKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluQXZnXSIpLmF0dHIoImRhdGEtYXZnIixoKTtpZigkKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS5sZW5ndGgpe2U9CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9WUVBUkVYXSIpLnZhbCgpO249JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NQUtFRVhdIikudmFsKCk7cj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCk7bGV0IHA9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikudmFsKG4pOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5Nb2RlbF0iKS52YWwocik7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblllYXJdIikudmFsKGUpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5UcmltXSIpLnZhbChwKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVmFsdWVdIikudmFsKCQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIpKTskKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikuYXR0cigiZGF0YS1hdmciKSk7CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkF2Z10iKS5hdHRyKCJkYXRhLWF2ZyIsIiIpfWlmKDE9PWEuc2V0dGluZ3MuZm9ybXVsdGlzdGVwKXtsZXQgcD1pc05hTihwYXJzZUludChoKSk\/MDpoO3A9RDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKHApO2VtYWlsSGFuZGxlci51c2VyRW1haWw9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTF0iKS52YWwoKTtlbWFpbEhhbmRsZXIudXNlclBob25lPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxQSE9ORV0iKS52YWwoKTt2YXIgdTtoPW51bGwhPSh1PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkpP3U6IiI7dmFyIHE7dT1udWxsIT0ocT1oLnNwbGl0KCIgIilbMF0pP3E6IiI7dmFyIG07cT1udWxsIT0obT1oLnNwbGl0KCIgIilbMV0pP206IiI7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9dTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPQpxO3ZhciBsPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKyIgIiskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJZRUFSRVgiXScpLnZhbCgpO2lzTmFOKHBhcnNlSW50KHApKXx8KG09bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiVHJhZGVJbkFjdGlvbkJveCIsb25Db21wbGV0ZTp0PT57dC5kYXRhc2V0LmNvbXBsX3R4dF9mcj0KdC5kYXRhc2V0LmNvbXBsX3R4dF9mci5yZXBsYWNlKCJ7JFRSQURFQ0FSfSIsbCkucmVwbGFjZSgieyRUUkFERVZBTH0iLHApO3QuZGF0YXNldC5jb21wbF90eHRfZW49dC5kYXRhc2V0LmNvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFRSQURFQ0FSfSIsbCkucmVwbGFjZSgieyRUUkFERVZBTH0iLHApO3ZhciB2PXt5ZWFyOiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9WUVBUkVYXSIpLnZhbCgpLG1ha2U6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NQUtFRVhdIikudmFsKCksbW9kZWw6JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NT0RFTEVYXSIpLnZhbCgpLHRyaW06JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCksdmFsdWU6cGFyc2VJbnQocC5yZXBsYWNlKCIsIiwiIikpfTtfbG9jYWxTdG9yYWdlU2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIixKU09OLnN0cmluZ2lmeSh2KSwxKTtpZigxPgpwYXJzZUludChwKSl7dj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXplcm9WYWx1ZU1lc3NhZ2VFbl0iKS52YWwoKTtsZXQgdz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXplcm9WYWx1ZU1lc3NhZ2VGcl0iKS52YWwoKTt0LmRhdGFzZXQuY29tcGxfdHh0X2ZyPWAke2x9IHwgJHt3fWA7dC5kYXRhc2V0LmNvbXBsX3R4dF9lbj1gJHtsfSB8ICR7dn1gfX0sZm9yY2VVcGRhdGU6ITB9fSksZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChtKSk7YS5zZXR0aW5ncy5mb3JtdWx0aXN0ZXA9ITE7YS5jbG9zZSgpfWVsc2UgJCgiaW5wdXRbbmFtZT10cmFkZUluVmFsdWVDQkJDYWxsZWRdIikudmFsKDEpLCIxIj09Zj9jPWc9InJlbW92ZWVtcHR5IjpoPSJyZW1vdmVlbXB0eSIsMDxnfHwwPGN8fDA8aD8oJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gW25hbWU9dHJhZGVJbkF2Z10iKS52YWwoRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGgpKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluTG93XSIpLnZhbChEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoZykpLAokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoRDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGMpKSwkKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluVmFsdWVDQkJBdmFpbGFibGVWYWx1ZXNdIikudmFsKDEpLHRyYWRlaW5wb3B1cGQyYy5pbml0VHJhZGVJblN0ZXAyKGEpLHRyYWRlaW5wb3B1cGQyYy5zZXRIZWlnaHRNb2JpbGUoMiksdHJhZGVpbnBvcHVwZDJjLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKSxwb3B1cElzU3VibWl0dGluZz0hMSk6KHBvcHVwSXNTdWJtaXR0aW5nPSExLCQoImlucHV0W25hbWU9c3RlcDNkb25lXSIpLnZhbCgxKSwkKCIudHJhZGVJbkJhclBvcHVwU3VibWl0IikudHJpZ2dlcigiY2xpY2siKSl9fSl9LG9uQmVmb3JlU3VibWl0Q0JCTWVzc2FnZTpmdW5jdGlvbihhKXskKCIjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucHJvcCgiZGlzYWJsZWQiLCEwKTskKCIjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOwphPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxdIikudmFsKCk7dmFyIGs9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1FTUFJTFBIT05FXSIpLnZhbCgpLGQ9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1ZRUFSRVhdIikudmFsKCksYj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1BS0VFWF0iKS52YWwoKSxjPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9TU9ERUxFWF0iKS52YWwoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPVRSSU1FWF0iKS52YWwoKTt2YXIgaD0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5BdmddIikudmFsKCksZz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5Mb3ddIikudmFsKCksZT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5IaWdoXSIpLnZhbCgpO2Q9CiQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2QrIiAiK2IrIiAiK2M6YisiICIrYysiICIrZDtiPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9ZGVhbGVyTmFtZVRyYWRlSW5dIikudmFsKCk7Yz0kKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJDQkJTSU5HTEVWQUxVRSJdJykudmFsKCk7dmFyIG49IiI7aWYoIlNNUyI9PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9dHJhZGVJbkJhclNtc09yRW1haWxdOmNoZWNrZWQiKS52YWwoKSl2YXIgcj0iU01TIixmPSIxIj09Yz8kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iVGhlIENhbmFkaWFuIEJsYWNrIEJvb2sgZXN0aW1hdGVkIHRyYWRlIHZhbHVlIGZvciB5b3VyICIrZCsiIGlzICQiK2grIi4gV2UnbGwgY29udGFjdCB5b3Ugc2hvcnRseSB0byBkaXNjdXNzLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk6CiJMYSB2YWxldXIgZCfDqWNoYW5nZSBlc3RpbcOpZSBDYW5hZGlhbiBCbGFjayBCb29rIHBvdXIgdm90cmUgIitkKyIgZXN0ICQiK2grIi4gTm91cyBjb21tdW5pcXVlcm9ucyBhdmVjIHZvdXMgc291cyBwZXUgcG91ciBlbiBkaXNjdXRlci4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOiQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJUaGUgQ2FuYWRpYW4gQmxhY2sgQm9vayBlc3RpbWF0ZWQgdHJhZGUgdmFsdWUgZm9yIHlvdXIgIitkKyIgaXMgYmV0d2VlbiAkIitnKyIgYW5kICQiK2UrIi4gV2UnbGwgY29udGFjdCB5b3Ugc2hvcnRseSB0byBkaXNjdXNzLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk6CiJMYSB2YWxldXIgZCfDqWNoYW5nZSBlc3RpbcOpZSBDYW5hZGlhbiBCbGFjayBCb29rIHBvdXIgdm90cmUgIitkKyIgc2Ugc2l0dWUgZW50cmUgJCIrZysiIGV0ICQiK2UrIi4gTm91cyBjb21tdW5pcXVlcm9ucyBhdmVjIHZvdXMgc291cyBwZXUgcG91ciBlbiBkaXNjdXRlci4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpO2Vsc2Ugcj0iRU1BSUwiLG49JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IklNUE9SVEFOVDogWW91ciB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2Q6IklNUE9SVEFOVDogTGEgdmFsZXVyIGQnw6ljaGFuZ2UgZGUgdm90cmUgIitkLCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyhmPSJIaSAiKyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkrIiw8YnI+PGJyPiIsZj0KZisoIkZvbGxvd2luZyB1cCBvbiB5b3VyIHJlY2VudCB0cmFkZSBlc3RpbWF0ZSByZXF1ZXN0IGZvciBhICIrZCsiLCBoZXJlIGlzIHRoZSBlc3RpbWF0ZSBmcm9tIHRoZSBDYW5hZGlhbiBCbGFjayBCb29rOjxicj48YnI+IikrKCQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCkrIjxicj48YnI+IiksZj0iMSI9PWM\/ZisoIkVzdGltYXRlZCBWYWx1ZTogJCIraCsiPGJyPiIpOmYrKCJNaW5pbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIrZysiPGJyPk1heGltdW0gRXN0aW1hdGVkIFZhbHVlOiAkIikrKGUrIjxicj4iKSxmKz0iKEFjY29yZGluZyB0byBDYW5hZGlhbiBCbGFjayBCb29rLCBsZXNzIHJlY29uZGl0aW9uaW5nIGNvc3RzLCBpZiBhcHBsaWNhYmxlKTxicj48YnI+IixmKz0iQSByZXByZXNlbnRhdGl2ZSB3aWxsIGNvbnRhY3QgeW91IHNob3J0bHkgdG8gZXhwbGFpbiB0aGUgZGV0YWlscyBvZiB0aGUgdmFsdWVzLjxicj48YnI+IiwKZis9IlRoYW5rcyBmb3IgdHJ1c3RpbmcgIitiKyIhPGJyPjxicj4iKTooZj0iQm9uam91ciAiKyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Rk5BTUVdIikudmFsKCkrIiw8YnI+PGJyPiIsZj1mKygiU3VpdGUgw6Agdm90cmUgZGVtYW5kZSBkJ2VzdGltYXRpb24gZGUgbGEgdmFsZXVyIGRlIHZvdHJlIMOpY2hhbmdlIHBvdXIgdW4gIitkKyIsIHZvaWNpIGwnw6l2YWx1YXRpb24gZGUgdm90cmUgdsOpaGljdWxlIHNlbG9uIGxlIENhbmFkaWFuIEJsYWNrIEJvb2s6PGJyPjxicj4iKSsoJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKSsiPGJyPjxicj4iKSxmPSIxIj09Yz9mKygiVmFsZXVyIGVzdGltw6llOiAkIitoKyI8YnI+Iik6ZisoIlZhbGV1ciBlc3RpbcOpZSBtaW5pbWFsZTogJCIrZysiPGJyPlZhbGV1ciBlc3RpbcOpZSBtYXhpbWFsZTogJCIpKwooZSsiPGJyPiIpLGYrPSIoU2Vsb24gbGUgQ2FuYWRpYW4gQmxhY2sgQm9vaywgbW9pbnMgbGVzIGNvw7t0cyBkZSByZWNvbmRpdGlvbm5lbWVudCBzaSBhcHBsaWNhYmxlKTxicj48YnI+IixmKz0iVW4gY29uc2VpbGxlciBlbnRyZXJhIGVuIGNvbW11bmljYXRpb24gc291cyBwZXUgYXZlYyB2b3VzIGFmaW4gZGUgZGlzY3V0ZXIgZGUgY2V0dGUgdmFsZXVyIGV0IHZvdXMgZW4gZXhwbGlxdWVyIGxlcyBkw6l0YWlscy48YnI+PGJyPiIsZis9Ik1lcmNpIGRlIGZhaXJlIGNvbmZpYW5jZSDDoCAiK2IrIiE8YnI+PGJyPiIpO2Y9YnRvYShmKTtuPWJ0b2Eobik7ZW1haWxIYW5kbGVyLm9uQWZ0ZXJMZWFkQ3JlYXRlZD17YWN0aW9uOnIsc3ViamVjdDpuLG1lc3NhZ2U6ZixlbWFpbDphLHBob25lOmt9fSxvbkJlZm9yZVN1Ym1pdEFjY3V0cmFkZU1lc3NhZ2U6ZnVuY3Rpb24oYSl7JCgiI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnByb3AoImRpc2FibGVkIiwhMCk7JCgiI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLmhpZGUoKTsKYT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUVNQUlMXSIpLnZhbCgpO3ZhciBrPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9RU1BSUxQSE9ORV0iKS52YWwoKSxkPSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9WUVBUkVYXSIpLnZhbCgpLGI9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1NQUtFRVhdIikudmFsKCksYz0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPU1PREVMRVhdIikudmFsKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1UUklNRVhdIikudmFsKCk7dmFyIGg9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluQXZnXSIpLnZhbCgpLGc9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluTG93XSIpLnZhbCgpLGU9JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT10cmFkZUluSGlnaF0iKS52YWwoKTtkPQokKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9kKyIgIitiKyIgIitjOmIrIiAiK2MrIiAiK2Q7Yj0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPWRlYWxlck5hbWVUcmFkZUluXSIpLnZhbCgpO2M9JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iQ0JCU0lOR0xFVkFMVUUiXScpLnZhbCgpO3ZhciBuPSIiO2lmKCJTTVMiPT0kKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikudmFsKCkpdmFyIHI9IlNNUyIsZj0iMSI9PWM\/JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkFjY3UtVHJhZGUgZXN0aW1hdGVkIHRyYWRlIHZhbHVlIGZvciB5b3VyICIrZCsiIGlzICQiK2grIi4gV2UnbGwgY29udGFjdCB5b3Ugc2hvcnRseSB0byBkaXNjdXNzLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk6CiJMYSB2YWxldXIgZCfDqWNoYW5nZSBBY2N1LVRyYWRlIGVzdGltw6llIHBvdXIgdm90cmUgIitkKyIgZXN0ICQiK2grIi4gTm91cyBjb21tdW5pcXVlcm9ucyBhdmVjIHZvdXMgc291cyBwZXUgcG91ciBlbiBkaXNjdXRlci4gIitiKyIgIiskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpOiQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJBY2N1LVRyYWRlIGVzdGltYXRlZCB0cmFkZSB2YWx1ZSBmb3IgeW91ciAiK2QrIiBpcyBiZXR3ZWVuICQiK2crIiBhbmQgJCIrZSsiLiBXZSdsbCBjb250YWN0IHlvdSBzaG9ydGx5IHRvIGRpc2N1c3MuICIrYisiICIrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQxXSIpLnZhbCgpKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0Ml0iKS52YWwoKToiTGEgdmFsZXVyIGQnw6ljaGFuZ2UgQWNjdS1UcmFkZSBlc3RpbcOpZSBwb3VyIHZvdHJlICIrCmQrIiBzZSBzaXR1ZSBlbnRyZSAkIitnKyIgZXQgJCIrZSsiLiBOb3VzIGNvbW11bmlxdWVyb25zIGF2ZWMgdm91cyBzb3VzIHBldSBwb3VyIGVuIGRpc2N1dGVyLiAiK2IrIiAiKyQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCk7ZWxzZSByPSJFTUFJTCIsbj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iSU1QT1JUQU5UOiBZb3VyIHRyYWRlIHZhbHVlIGZvciB5b3VyICIrZDoiSU1QT1JUQU5UOiBMYSB2YWxldXIgZCfDqWNoYW5nZSBkZSB2b3RyZSAiK2QsJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/KGY9IkhpICIrJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1GTkFNRV0iKS52YWwoKSsiLDxicj48YnI+IixmPWYrKCJGb2xsb3dpbmcgdXAgb24geW91ciByZWNlbnQgdHJhZGUgZXN0aW1hdGUgcmVxdWVzdCBmb3IgYSAiKwpkKyIsIGhlcmUgaXMgdGhlIGVzdGltYXRlIGZyb20gQWNjdS1UcmFkZTo8YnI+PGJyPiIpKygkKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDFdIikudmFsKCkrJCgiaW5wdXRbbmFtZT10cmFkZUluTXNnRGlzY2xhaW1lclRleHQyXSIpLnZhbCgpKyI8YnI+PGJyPiIpLGY9IjEiPT1jP2YrKCJFc3RpbWF0ZWQgVmFsdWU6ICQiK2grIjxicj4iKTpmKygiTWluaW11bSBFc3RpbWF0ZWQgVmFsdWU6ICQiK2crIjxicj5NYXhpbXVtIEVzdGltYXRlZCBWYWx1ZTogJCIpKyhlKyI8YnI+IiksZis9IihBY2NvcmRpbmcgdG8gQWNjdS1UcmFkZSwgbGVzcyByZWNvbmRpdGlvbmluZyBjb3N0cywgaWYgYXBwbGljYWJsZSk8YnI+PGJyPiIsZis9IkEgcmVwcmVzZW50YXRpdmUgd2lsbCBjb250YWN0IHlvdSBzaG9ydGx5IHRvIGV4cGxhaW4gdGhlIGRldGFpbHMgb2YgdGhlIHZhbHVlcy48YnI+PGJyPiIsZis9IlRoYW5rcyBmb3IgdHJ1c3RpbmcgIitiKyIhPGJyPjxicj4iKToKKGY9IkJvbmpvdXIgIiskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPUZOQU1FXSIpLnZhbCgpKyIsPGJyPjxicj4iLGY9ZisoIlN1aXRlIMOgIHZvdHJlIGRlbWFuZGUgZCdlc3RpbWF0aW9uIGRlIGxhIHZhbGV1ciBkZSB2b3RyZSDDqWNoYW5nZSBwb3VyIHVuICIrZCsiLCB2b2ljaSBsJ8OpdmFsdWF0aW9uIGRlIHZvdHJlIHbDqWhpY3VsZSBzZWxvbiBBY2N1LVRyYWRlOjxicj48YnI+IikrKCQoImlucHV0W25hbWU9dHJhZGVJbk1zZ0Rpc2NsYWltZXJUZXh0MV0iKS52YWwoKSskKCJpbnB1dFtuYW1lPXRyYWRlSW5Nc2dEaXNjbGFpbWVyVGV4dDJdIikudmFsKCkrIjxicj48YnI+IiksZj0iMSI9PWM\/ZisoIlZhbGV1ciBlc3RpbcOpZTogJCIraCsiPGJyPiIpOmYrKCJWYWxldXIgZXN0aW3DqWUgbWluaW1hbGU6ICQiK2crIjxicj5WYWxldXIgZXN0aW3DqWUgbWF4aW1hbGU6ICQiKSsoZSsiPGJyPiIpLGYrPSIoU2Vsb24gQWNjdS1UcmFkZSwgbW9pbnMgbGVzIGNvw7t0cyBkZSByZWNvbmRpdGlvbm5lbWVudCBzaSBhcHBsaWNhYmxlKTxicj48YnI+IiwKZis9IlVuIGNvbnNlaWxsZXIgZW50cmVyYSBlbiBjb21tdW5pY2F0aW9uIHNvdXMgcGV1IGF2ZWMgdm91cyBhZmluIGRlIGRpc2N1dGVyIGRlIGNldHRlIHZhbGV1ciBldCB2b3VzIGVuIGV4cGxpcXVlciBsZXMgZMOpdGFpbHMuPGJyPjxicj4iLGYrPSJNZXJjaSBkZSBmYWlyZSBjb25maWFuY2Ugw6AgIitiKyIhPGJyPjxicj4iKTtmPWJ0b2EoZik7bj1idG9hKG4pO2VtYWlsSGFuZGxlci5vbkFmdGVyTGVhZENyZWF0ZWQ9e2FjdGlvbjpyLHN1YmplY3Q6bixtZXNzYWdlOmYsZW1haWw6YSxwaG9uZTprfX0saW5pdFRyYWRlSW5TdGVwMTpmdW5jdGlvbigpeyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5BdmddIikudmFsKDApOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5Mb3ddIikudmFsKDApOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIFtuYW1lPXRyYWRlSW5IaWdoXSIpLnZhbCgwKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSBbbmFtZT10cmFkZUluVmFsdWVDQkJBdmFpbGFibGVWYWx1ZXNdIikudmFsKDApOwokKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXSIpLnJlbW92ZUNsYXNzKCJyZXFSYWRpbyIpOyQoImlucHV0W25hbWU9dHJhZGVJblZhbHVlQ0JCQ2FsbGVkXSIpLnZhbCgwKTskKCJpbnB1dFtuYW1lPXRyYWRlSW5CYXJTbXNPckVtYWlsXTpjaGVja2VkIikucHJvcCgiY2hlY2tlZCIsITEpOyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIHNlbGVjdFtuYW1lPSJWRUhJQ0xFT1BUSU9OUyJdJykuZmluZCgib3B0aW9uIikucmVtb3ZlKCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iUVVFU1RJT05TIl0nKS52YWwoIiIpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDEiKS5zaG93KCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMiIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAzIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQiKS5oaWRlKCk7CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuc2hvdygpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cF9saW5lMSIpLnNob3coKTt0aGlzLnNldEhlaWdodE1vYmlsZSgxKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluRGlzY2xhaW1lciIpLnNob3coKTt0aGlzLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0saW5pdFRyYWRlSW5TdGVwMjpmdW5jdGlvbihhKXt2YXIgaz0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgiZm9ybSIpLmZpcnN0KCkuc2VyaWFsaXplQXJyYXkoKSxkPSQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5maW5kKCIuZW1haWxCb2R5IikuaHRtbCgpKyIiLGI9JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmZpbmQoIi5lbWFpbFN1YmplY3QiKS5odG1sKCkrCiIiLGM9W107W10ucHVzaC5hcHBseShjLGspOyQuZWFjaChjLGZ1bmN0aW9uKCl7dmFyIGg9bmV3IFJlZ0V4cCgie1xcJCIrdGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkrIn0iLCJnIiksZz10aGlzLnZhbHVlOyJTRUFSQ0hFRFZFSElDTEUiPT10aGlzLm5hbWUudG9VcHBlckNhc2UoKSYmKGc9IjxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPiIrZysiPC9zcGFuPiIpO2Q9ZC5yZXBsYWNlKGgsZyk7Yj1iLnJlcGxhY2UoaCx0aGlzLnZhbHVlKX0pO2VtYWlsSGFuZGxlci5zdWJqZWN0PWI7ZW1haWxIYW5kbGVyLmJvZHk9ZDtlbWFpbEhhbmRsZXIuc2VuZFRvPWEuc2V0dGluZ3MuZm9ybS5zZW5kVG87ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1hLnNldHRpbmdzLmZvcm0uc2VuZFRvQURGO2VtYWlsSGFuZGxlci5tYWlsSUQ9YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQ7YT0kKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuZmluZCgnaW5wdXRbbmFtZT0iRk5BTUUiXScpLnZhbCgpLnNwbGl0KCIgIik7CmVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWEuc2hpZnQoKTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWEuam9pbigiICIpO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmZpbmQoJ2lucHV0W25hbWU9IkVNQUlMUEhPTkUiXScpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmZpbmQoJ2lucHV0W25hbWU9IkVNQUlMIl0nKS52YWwoKTthPWVtYWlsSGFuZGxlci5nZXRKc29uT2JqZWN0KCk7ZW1haWxIYW5kbGVyLnN1YmplY3Q9IiI7ZW1haWxIYW5kbGVyLmJvZHk9IiI7az0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCI7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09az8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvcmVnaXN0ZXJUcmFkZUxlYWQ\/d3N3aWR0aD0wIixkYXRhVHlwZToianNvbiIsCmRhdGE6YSxzdWNjZXNzOmZ1bmN0aW9uKGgpe2gucGFydGlhbExlYWRJRCYmJCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmZpbmQoJ2lucHV0W25hbWU9InRyYWRlaW5iYXJSZWdpc3RlclBhcnRpYWxJRCJdJykudmFsKGgucGFydGlhbExlYWRJRCl9fSk7JCgiLnRyYWRlSW5CYXJTdGVwMSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluRGlzY2xhaW1lciIpLmhpZGUoKTthPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9IllFQVJFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpOiQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1BS0VFWCJdJykudmFsKCkrIiAiKyQoJyN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9Ik1PREVMRVgiXScpLnZhbCgpKwoiICIrJCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT0iWUVBUkVYIl0nKS52YWwoKTskKCIudHJhZGVJbkJhclN0ZXAyVGl0bGUiKS50ZXh0KCQoIi50cmFkZUluQmFyU3RlcDJUaXRsZSIpLnRleHQoKSsiICIrYSk7JCgiaW5wdXRbbmFtZT10cmFkZUluQmFyU21zT3JFbWFpbF0iKS5hZGRDbGFzcygicmVxUmFkaW8iKTskKCIudHJhZGVJbkJhclN0ZXAyIikuc2hvdygpfSxpbml0VHJhZGVJblN0ZXAzOmZ1bmN0aW9uKCl7cG9wdXBJc1N1Ym1pdHRpbmc9ITE7JCgiI3RyYWRlSW5TdGVwM1llcyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt0cmFkZWlucG9wdXBkMmMudHJhZGVJblN0ZXAzWWVzKCk7cmV0dXJuITF9KTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDEiKS5oaWRlKCk7CiQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDIiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMyIpLnNob3coKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA0IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiIpLmhpZGUoKTt0aGlzLnNldEhlaWdodE1vYmlsZSgzKTskKCJpbnB1dFtuYW1lPXN0ZXAzZG9uZV0iKS52YWwoMSk7dGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LHRyYWRlSW5TdGVwM1llczpmdW5jdGlvbigpe3RoaXMuaW5pdFRyYWRlSW5TdGVwNCgpfSxpbml0VHJhZGVJblN0ZXA0OmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCIpLnBhcmVudCgpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluRGlzY2xhaW1lciIpLmhpZGUoKTsKJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDMiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNCIpLnNob3coKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA1IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDYiKS5oaWRlKCk7dGhpcy5zZXRIZWlnaHRNb2JpbGUoNCk7JCgiI3RyYWRlSW5TdGVwNFllcyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtpZigiIj09JCgiI3RyYWRlSW5LZXlTZWxlY3QiKS52YWwoKSlyZXR1cm4gJCgiI3RyYWRlSW5LZXlTZWxlY3QiKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksITE7dHJhZGVpbnBvcHVwZDJjLnRyYWRlSW5TdGVwNENvbnRpbnVlKCk7CnJldHVybiExfSk7JCgiI3RyYWRlSW5LZXlTZWxlY3QiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQoIiN0cmFkZUluS2V5U2VsZWN0IikucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfSk7dGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LHRyYWRlSW5TdGVwNENvbnRpbnVlOmZ1bmN0aW9uKCl7IiI9PSQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIGlucHV0W25hbWU9VklORVhdIikudmFsKCk\/dGhpcy5pbml0VHJhZGVJblN0ZXA1KCk6dGhpcy5pbml0VHJhZGVJblN0ZXA2KCl9LGluaXRUcmFkZUluU3RlcDU6ZnVuY3Rpb24oKXskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDEiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMiIpLmhpZGUoKTsKJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMyIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA0IikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUiKS5zaG93KCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiIpLmhpZGUoKTt0aGlzLnNldEhlaWdodE1vYmlsZSg1KTskKCIjdHJhZGVJblN0ZXA1WWVzIikub24oImNsaWNrIixmdW5jdGlvbigpe3RyYWRlaW5wb3B1cGQyYy50cmFkZUluU3RlcDVDb250aW51ZSgpO3JldHVybiExfSk7dGhpcy50cmFkZUluQm90dG9tTG9nb0hlaWd0KCl9LHRyYWRlSW5TdGVwNUNvbnRpbnVlOmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gaW5wdXRbbmFtZT1WSU5FWF0iKS52YWwoJCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gI3N0ZXA1VmluIikudmFsKCkpO3RoaXMuaW5pdFRyYWRlSW5TdGVwNigpfSxpbml0VHJhZGVJblN0ZXA2OmZ1bmN0aW9uKCl7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwX2xpbmUxIikuaGlkZSgpOwokKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAjdHJhZGVJbkJhclBvcHVwU3VibWl0IikucGFyZW50KCkuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDEiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwMiIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXAzIikuaGlkZSgpOyQoIiN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDQiKS5oaWRlKCk7JCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNSIpLmhpZGUoKTskKCIjdHJhZGVJbkJhclBvcHVwRm9ybSAudHJhZGVJbkJhclN0ZXA2Iikuc2hvdygpO3RoaXMuc2V0SGVpZ2h0TW9iaWxlKDYpO3RoaXMuaW5pdEltYWdlVXBsb2FkKCk7JCgiI3RyYWRlSW5TdGVwNlllcyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjdHJhZGVJblN0ZXA2WWVzIikuaGlkZSgpOwp0cmFkZWlucG9wdXBkMmMudXBsb2FkSW1hZ2VzVG9CYWNrZW5kKCl9KTt0aGlzLnRyYWRlSW5Cb3R0b21Mb2dvSGVpZ3QoKX0saW5pdEltYWdlVXBsb2FkOmZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhIikuZm9yRWFjaChhPT57Y29uc3Qgaz1hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ImZpbGUiXScpLGQ9YS5xdWVyeVNlbGVjdG9yKCIucGxhY2Vob2xkZXIiKSxiPWEucXVlcnlTZWxlY3RvcigiLmRlbGV0ZS1idG4iKSxjPWEucXVlcnlTZWxlY3RvcigiLmFkZC1pY29uIiksaD1hLmRhdGFzZXQub3ZlcmxheTtoJiYoYS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9YHVybCgke2h9KWApO2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ay52YWx1ZXx8ay5jbGljaygpfSk7ay5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGc9PntpZigoZz1nLnRhcmdldC5maWxlc1swXSkmJmcudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSl7Y29uc3QgZT0KbmV3IEZpbGVSZWFkZXI7ZS5vbmxvYWQ9KCk9PntkLnNyYz1lLnJlc3VsdDtkLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjthLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ibm9uZSI7Yi5zdHlsZS5kaXNwbGF5PSJibG9jayI7Yy5zdHlsZS5kaXNwbGF5PSJub25lIn07ZS5yZWFkQXNEYXRhVVJMKGcpfWVsc2Ugay52YWx1ZT0iIn0pO2IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGc9PntnLnN0b3BQcm9wYWdhdGlvbigpO2sudmFsdWU9IiI7ZC5zcmM9IiI7ZC5zdHlsZS5kaXNwbGF5PSJub25lIjthLnN0eWxlLmJhY2tncm91bmRJbWFnZT1gdXJsKCR7aH0pYDtiLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Muc3R5bGUuZGlzcGxheT0iZmxleCI7cmV0dXJuITF9KTtiLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Quc3R5bGUuZGlzcGxheT0ibm9uZSJ9KX0sdXBsb2FkSW1hZ2VzVG9CYWNrZW5kOmZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhIik7CmNvbnN0IGs9bmV3IEZvcm1EYXRhO2xldCBkPSExO2EuZm9yRWFjaChiPT57Yj1iLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ImZpbGUiXScpOzA8Yi5maWxlcy5sZW5ndGgmJmIuZmlsZXNbMF0udHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmKGsuYXBwZW5kKCJpbWFnZXNbXSIsYi5maWxlc1swXSxiLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIikpLGQ9ITApfSk7ZD8oYT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCIsJC5hamF4KHt0eXBlOiJQT1NUIix1cmw6KCJFTkdMSVNIIj09YT8iL2VuLyI6Ii9mci8iKSsiL2FqYXgvdXBsb2FkVHJhZGVJbkltYWdlcyIsY29udGVudFR5cGU6ITEscHJvY2Vzc0RhdGE6ITEsZGF0YTprLHN1Y2Nlc3M6ZnVuY3Rpb24oYil7aWYoYi5sZW5ndGgpeyRkYXRhT2JqPUpTT04ucGFyc2UoYik7JGltYWdlRXhWYWx1ZT0iIjtmb3IoYj0wO2I8JGRhdGFPYmoubGVuZ3RoO2IrKykkaW1hZ2VFeFZhbHVlKz0kZGF0YU9ialtiXS5maWxlbmFtZSsKIiA6ICIrJGRhdGFPYmpbYl0uZmlsZVVybCsiIFxuIjskKCcjdHJhZGVJbkJhclBvcHVwRm9ybSBpbnB1dFtuYW1lPSJUUkFERUlOSU1BR0VFWCJdJykudmFsKCRpbWFnZUV4VmFsdWUpfSQoIi50cmFkZUluQmFyUG9wdXBTdWJtaXQiKS50cmlnZ2VyKCJjbGljayIpfX0pKTokKCIudHJhZGVJbkJhclBvcHVwU3VibWl0IikudHJpZ2dlcigiY2xpY2siKX0sc2V0SGVpZ2h0TW9iaWxlKGEpe2lmKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkpc3dpdGNoKGEpe2Nhc2UgMjokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI1NDBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjUzMHB4Iik7YnJlYWs7Y2FzZSAzOiQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjYwMHB4Iik7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiNTkwcHgiKTticmVhaztjYXNlIDQ6JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmNzcygiaGVpZ2h0IiwKIjU0MHB4Iik7JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiNTMwcHgiKTticmVhaztjYXNlIDU6JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLmNzcygiaGVpZ2h0IiwiNTMwcHgiKTskKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIikuY3NzKCJoZWlnaHQiLCI1MjBweCIpO2JyZWFrO2Nhc2UgNjokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI3NTBweCIpOyQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjc0MHB4Iik7YnJlYWs7ZGVmYXVsdDokKCIjVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIikuY3NzKCJoZWlnaHQiLCI5ODBweCIpLCQoIiN0cmFkZUluQmFyUG9wdXBfZm9ybVciKS5jc3MoImhlaWdodCIsIjk3MHB4Iil9fSx0cmFkZUluQm90dG9tTG9nb0hlaWd0OmZ1bmN0aW9uKCl7aWYoJCgiLnRyYWRlSW5Cb3R0b21Mb2dvIikubGVuZ3RoKXt2YXIgYT0kKCIjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIik7CmxldCBrPSQoIi50cmFkZUluQm90dG9tTG9nbyIpLGQ9JCgiI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIiKSxiPSQoIiNpc01vYmlsZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKSxjPSQoIi5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIiKS5pcygiOnZpc2libGUiKTthPWEuaW5uZXJIZWlnaHQoKS1rLnBvc2l0aW9uKCkudG9wO2QubGVuZ3RoJiZkLmlzKCI6dmlzaWJsZSIpJiYoYS09ZC5vdXRlckhlaWdodCghMCkrKGI\/MDpjPzEwOjMwKSk7JCgiLnRyYWRlSW5Cb3R0b21Mb2dvIikuaGVpZ2h0KGErInB4Iil9fX07Ci8qKiAvanMvanF1ZXJ5LnJldmVhbC5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlyZXZlYWxqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA2OjQyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlyZXZlYWxqc19jX29uPSIyMDI0LTA1LTE0IDEwOjMwOjA1IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihiKXtiKCJib2R5Iikub24oImNsaWNrIiwiYVtkYXRhLXJldmVhbC1pZF0iLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKTthPWIodGhpcykuYXR0cigiZGF0YS1yZXZlYWwtaWQiKTtiKCIjIithKS5yZXZlYWwoYih0aGlzKS5kYXRhKCkpfSk7Yi5mbi5yZXZlYWw9ZnVuY3Rpb24oYSl7YT1iLmV4dGVuZCh7fSx7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMCxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIixjbG9zZW9uZXNjYXBlOiEwfSxhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZigpeyJvYmplY3QiPT10eXBlb2YgcG9wdXBTdXBlcnZpc29yJiZzZXRUaW1lb3V0KHBvcHVwU3VwZXJ2aXNvci5yZXBvc2l0aW9uLDFFMyk7Zz0hMX12YXIgYz1iKHRoaXMpLGg9cGFyc2VJbnQoYy5jc3MoInRvcCIpKSxtPWMuaGVpZ2h0KCkraCxnPSExLApkPWIoIi5yZXZlYWwtbW9kYWwtYmciKTswPT1kLmxlbmd0aCYmKGQ9YignPGRpdiBjbGFzcz0icmV2ZWFsLW1vZGFsLWJnIiAvPicpLmluc2VydEFmdGVyKGMpKTtjLm9uKCJyZXZlYWw6b3BlbiIsZnVuY3Rpb24oKXt2YXIgaz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5pbm5lckhlaWdodD93aW5kb3cuaW5uZXJIZWlnaHQ6Yih3aW5kb3cpLmhlaWdodCgpLG49YihjKS5vdXRlckhlaWdodCgpO2IoYykub2Zmc2V0KCk7Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCk7dmFyIGw9L01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/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\/eDp3fXZhciBqPWcodGhpcyksaz0wLGg9e3g6MCx5OjB9LGY9e3g6MCx5OjB9O2lmKGQpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihDLEQpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixsKX1lbHNle2oub24oQyxEKTtnKGRvY3VtZW50KS5vbigidG91Y2hjYW5jZWwiLGwpfX0pfX0pKGpRdWVyeSk7LypFT0YqLzsKLyoqIC9qcy9wYWdlYmFubmVyLmpzICoqLwp2YXIgX19fZDJjX3BhZ2ViYW5uZXJqc19jX29uPSIyMDI2LTAxLTEzIDEzOjMwOjAzIjsndXNlIHN0cmljdCc7ZnVuY3Rpb24gUGFnZUJhbm5lcihhKXtuZXcgUGFnZUJhbm5lcnNDYXJvdXNlbChhKX0KZnVuY3Rpb24gbW90b2luc2lnaHRCYW5uZXJWYXJpYWJsZVJlcGxhY2VtZW50KCl7aWYoJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoKWlmKCQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS5sZW5ndGgmJiIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpKWlmKCQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfU0VMRUNUIikubGVuZ3RoJiYidGFiIj09JCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9TRUxFQ1QiKS52YWwoKSl7dmFyIGE9JCgiI2pzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyLWlucHV0IikudmFsKCk7JCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpLmF0dHIoIm9udGFwIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIil9ZWxzZSAkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLAoiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7Iik7ZWxzZSAkKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1VTRURfU0VMRUNUIikubGVuZ3RoJiYidGFiIj09JCgiI01PVE9JTlNJR0hUX1NIT1BJTkdfVE9PTF9VU0VEX1NFTEVDVCIpLnZhbCgpPyhhPSQoIiNqcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lci1pbnB1dCIpLnZhbCgpLCQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKS5hdHRyKCJvbnRhcCIsIndpbmRvdy5vcGVuKCciK2ErIicsICdfYmxhbmsnKSIpKTokKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLAoiJCgnI21vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7Iik7ZWxzZSAkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikubGVuZ3RoJiYiMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKT8kKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1NFTEVDVCIpLmxlbmd0aCYmInRhYiI9PSQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfU0VMRUNUIikudmFsKCk\/KGE9JCgiI21vdG9pbnNpZ2h0c2hvcHNjcmlwdHVybCIpLnZhbCgpLGE9YS5yZXBsYWNlKCJpbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5qcyIsInNlYXJjaC8iKSwkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIikuYXR0cigib250YXAiLCJ3aW5kb3cub3BlbignIithKyInLCAnX2JsYW5rJykiKSk6JCgiZGl2I3RvcEJhbm5lckltYWdlIikuYXR0cigib25jbGljayIsCiIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOiQoIiNNT1RPSU5TSUdIVF9TSE9QSU5HX1RPT0xfVVNFRF9TRUxFQ1QiKS5sZW5ndGgmJiJ0YWIiPT0kKCIjTU9UT0lOU0lHSFRfU0hPUElOR19UT09MX1VTRURfU0VMRUNUIikudmFsKCk\/KGE9JCgiI21vdG9pbnNpZ2h0c2hvcHNjcmlwdHVybCIpLnZhbCgpLGE9YS5yZXBsYWNlKCJpbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5qcyIsInNlYXJjaC8\/Y29uZGl0aW9uPVVzZWQiKSwkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwid2luZG93Lm9wZW4oJyIrYSsiJywgJ19ibGFuaycpIikuYXR0cigib250YXAiLCJ3aW5kb3cub3BlbignIisKYSsiJywgJ19ibGFuaycpIikpOiQoImRpdiN0b3BCYW5uZXJJbWFnZSIpLmF0dHIoIm9uY2xpY2siLCIkKCcjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpO3JldHVybiBmYWxzZTsiKS5hdHRyKCJvbnRhcCIsIiQoJyNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpfQpjbGFzcyBQYWdlQmFubmVyc0Nhcm91c2Vse2NvbnN0cnVjdG9yKGEpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGEpe3RoaXMuaXNJbnZlbnRvcnlQYWdlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLm5ld0ludmVudG9yeSYmKGE9YS5uZXdJbnZlbnRvcnkpO3ZhciBlLGI7dGhpcy5kYXRhPW51bGwhPShiPW51bGw9PShlPWEpP3ZvaWQgMDplLmJhbm5lcnMpP2I6YTt2YXIgYyxkO3RoaXMuY29uZmlnPW51bGwhPShkPW51bGw9PShjPWEpP3ZvaWQgMDpjLmNvbmZpZyk\/ZDphO3RoaXMuYmFubmVycz1bXTt0aGlzLmluZGV4PS0xO3RoaXMuaW5pdGlhbGl6ZWQ9ITE7dGhpcy50aW1lb3V0SUQ9bnVsbDt0aGlzLmluaXQoKX19Z2V0IGlzSW52ZW50b3J5UGFnZSgpe3JldHVybiJVU0VEIj09c3RvcmUuZ2V0KCJjb250ZXh0Iikuc2VjdGlvbiYmIm5ld2ludiI9PXN0b3JlLmdldCgiY29udGV4dCIpLmNhdGVnb3J5fHwtMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvbmV1ZnMvaW52ZW50YWlyZS8iKXx8Ci0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9pbnZlbnRhaXJlLmh0bWwiKXx8LTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL25ldy9pbnZlbnRvcnkvIil8fC0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9pbnZlbnRvcnkuaHRtbCIpfWdldCBjdXJyZW50UGF0aCgpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lK3dpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLnRvTG93ZXJDYXNlKCl9Z2V0ICR0b3BCYW5uZXJJbWFnZSgpe3JldHVybiAkKCJkaXYjdG9wQmFubmVySW1hZ2UiKX1pbml0KCl7aWYoIXRoaXMuaW5pdGlhbGl6ZWQpe3ZhciBhPXt9LGU9e30sYj1bXSxjPTA7Zm9yKHZhciBkIGluIHRoaXMuZGF0YSkiaHRtbDUiPT09ZHx8dGhpcy5faXNLZXl3b3JkSW5QYXRoKGQpfHx0aGlzLl9pc0tleXdvcmRJbkNvb2tpZShkKXx8JCgiYm9keSIpLmhhc0NsYXNzKCJ0ZW1wbGF0ZTUiKSYmKCJuZXVmcyI9PT0KZHx8Im5ldyI9PT1kKT8iaHRtbDUiPT09ZCYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscy5zbGlkZXJPYmplY3QmJm51bGwhPW5ld2NhckRldGFpbHMuc2xpZGVyT2JqZWN0JiYzPm5ld2NhckRldGFpbHMuc2xpZGVyT2JqZWN0LnRvdGFsU2xpZGVzKCl8fCQuZWFjaCh0aGlzLmRhdGFbZF0sKGcsZik9PntjPXBhcnNlSW50KGcpOy0xPT09Yi5pbmRleE9mKGMpPyhiLnB1c2goYyksYVtjXT1mKTphW2MrNTBdPWZ9KToiZGVmYXVsdCI9PT1kfHx0aGlzLl9pc0tleXdvcmRJblBhdGgoZCl8fHRoaXMuX2lzS2V5d29yZEluQ29va2llKGQpPyQuZWFjaCh0aGlzLmRhdGFbZF0sKGcsZik9PnthWzBdPWY7Yi5wdXNoKDApfSk6InN0YXRpY2Jhbm5lcnMiPT09ZCYmJC5lYWNoKHRoaXMuZGF0YVtkXSwoZyxmKT0+e2M9cGFyc2VJbnQoZyk7LTE9PT1iLmluZGV4T2YoYykmJihiLnB1c2goYyksYVtjXT1mKTtlW2ddPQpmfSk7dmFyIGg9ITA7JC5lYWNoKGEsKGcsZik9PnsiZGVmYXVsdCIhPWYuaSYmKGg9ITEpfSk7dGhpcy5iYW5uZXJzPVtdOyQuZWFjaChhLChnLGYpPT57InVuZGVmaW5lZCIhPT10eXBlb2YgZiYmKCJkZWZhdWx0Ij09PWYuaSYmITA9PT1ofHwiZGVmYXVsdCIhPT1mLmkpJiZ0aGlzLmJhbm5lcnMucHVzaChmKX0pOzA9PT10aGlzLmJhbm5lcnMubGVuZ3RoJiYwPE9iamVjdC5rZXlzKGUpLmxlbmd0aCYmJC5lYWNoKGUsKGcsZik9PnsidW5kZWZpbmVkIiE9PXR5cGVvZiBmJiZ0aGlzLmJhbm5lcnMucHVzaChmKX0pO2Q9JCgiI2lzTW9iaWxlIik7MDxkLmxlbmd0aCYmMT09PWQudmFsKCkmJigkKCJkaXYjdG9wQmFubmVySW1hZ2UiKS5hZGRDbGFzcygiLW10MTAiKSwkKCdbaWQqPSJoZWFkZXJQcm9tb0Zsb2F0QnV0dG9uSW5Cb2R5Il0nKS5oaWRlKCkpO3RoaXMuaW5pdGlhbGl6ZWQ9ITA7MDxPYmplY3Qua2V5cyh0aGlzLmJhbm5lcnMpLmxlbmd0aD90aGlzLnJvdGF0ZSgpOnRoaXMuY2xlYXJBc3BlY3RSYXRpbygpfX1jbGVhckFzcGVjdFJhdGlvKCl7bGV0IGE9CiQoImRpdiN0b3BCYW5uZXJJbWFnZSIpO2EubGVuZ3RoJiZhLmNzcygiYXNwZWN0LXJhdGlvIiwiIil9c3RvcCgpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJRCl9c3RhcnQoYSl7dGhpcy5pbml0aWFsaXplZCYmKHRoaXMudGltZW91dElEPXNldFRpbWVvdXQoKCk9PnRoaXMucm90YXRlKCksYSkpfXJvdGF0ZSgpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgcG9wdXBpemVyQWN0aXZlJiZwb3B1cGl6ZXJBY3RpdmUoKSlzZXRUaW1lb3V0KCgpPT50aGlzLnJvdGF0ZSgpLDNFMyk7ZWxzZXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZGFyay10b29sdGlwIik7aWYoYS5sZW5ndGgpe2xldCBjPSExO2EuZm9yRWFjaChkPT57Im5vbmUiIT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSYmKGM9ITApfSk7aWYoITA9PT1jKXtzZXRUaW1lb3V0KCgpPT50aGlzLnJvdGF0ZSgpLDJFMyk7cmV0dXJufX1hPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0b3BCYW5uZXJJbWFnZSIpOwppZighMT09PWlzSW5WaWV3cG9ydChhLHt0b3A6LTM1MH0pKXRoaXMuc3RhcnQoM0UzKTtlbHNle3RoaXMuaW5kZXgrKzt0aGlzLmluZGV4Pj1PYmplY3Qua2V5cyh0aGlzLmJhbm5lcnMpLmxlbmd0aCYmKHRoaXMuaW5kZXg9MCk7dmFyIGU9JCgiZGl2I3RvcEJhbm5lckltYWdlIiksYj10aGlzLmJhbm5lcnNbdGhpcy5pbmRleF07aWYoYiYmImh0bWw1Ij09PWIuaSl7YT0wO2xldCBjPTE9PT1iLnU\/dGhpcy5jb25maWcuYzE6dGhpcy5jb25maWcuYzJfMSxkPTI9PT1iLnU\/dGhpcy5jb25maWcuYzI6dGhpcy5jb25maWcuYzJfMjtlLmh0bWwoIiIpLmhpZGUoKTtsZXQgaD0kKCIjcHJvbW9fYnRuX3R5cGUiKS52YWwoKTt2b2lkIDA9PT1oJiYoaD0iYmVzdG9mZmVyX2FuaW1hdGUiKTtsZXQgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtnLmlkPSJnd2RiYW5uZXIiO2cuc3R5bGUud2lkdGg9IjkzMHB4IjtnLnN0eWxlLmhlaWdodD0iMjAwcHgiO2cuc2V0QXR0cmlidXRlKCJzY3JvbGxpbmciLAoibm8iKTtnLnNldEF0dHJpYnV0ZSgiZnJhbWVib3JkZXIiLCIwIik7ImludmVudG9yeSI9PT1iLm8mJjEwPCQoIiN1c2VkSW52ZW50b3J5TmV3UGFnZSIpLmh0bWwoKS5sZW5ndGgmJiFDb29raWVzLmdldCgiaW52ZW50b3J5TmV3UG9wdXBTaG93biIpJiYoYT0xKTtsZXQgZj0kKCIjcG9wdXBtYWtlIikudmFsKCkucmVwbGFjZSgvLXxccy9nLCJfIiksaz0kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS52YWwoKTtrPShrP2s6JCgiI3BvcHVwbW9kZWwiKS52YWwoKSkucmVwbGFjZSgvLXxccy9nLCJfIik7bGV0IG09JCgiI3BvcHVweWVhciIpLnZhbCgpLGw9JCgiI3N0eWxlaWQiKS52YWwoKTtsPTA8cGFyc2VJbnQobCk\/Ii1pZCIrbDoiIjskKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9nLnNyYz1gL2d3ZGJhbm5lci8ke219LSR7Zn0tJHtrfSR7bH0uaHRtbD9wdHlwZT0ke2h9JmMxPSR7Y30mYzI9JHtkfSZ0PSR7Yi51fSZvPSR7YX1gOmcuc3JjPWAvZ3dkYmFubmVyLyR7Zn0tJHtrfS0ke219JHtsfS5odG1sP3B0eXBlPSR7aH0mYzE9JHtjfSZjMj0ke2R9JnQ9JHtiLnV9Jm89JHthfWA7CmUuaHRtbChnKS5mYWRlSW4oInNsb3ciKX1lbHNlIGlmKGImJiJkZWZhdWx0Ij09PWIuaSllLmh0bWwoIiIpLmhpZGUoKS5odG1sKGIuaCkuZmFkZUluKCJzbG93IikuYXR0cigib25jbGljayIsZS5maW5kKCJ0YWJsZSIpLmF0dHIoIm9uY2xpY2siKSkuYXR0cigib250YXAiLGUuZmluZCgidGFibGUiKS5hdHRyKCJvbmNsaWNrIikpO2Vsc2UgJCgnPGltZyBmZXRjaHByaW9yaXR5PSJoaWdoIiBhbHQ9IiIgc3R5bGU9IndpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7IiBzcmM9IicrYi5pKyciPicpLm9uKCJsb2FkIixjPT57ZS5odG1sKCIiKS5oaWRlKCk7JChjLmN1cnJlbnRUYXJnZXQpLmFwcGVuZFRvKCJkaXYjdG9wQmFubmVySW1hZ2UiKTt0aGlzLl9wcm9jZXNzRGlzY2xhaW1lcihiKTtudWxsIT1iLnUmJjA8Yi51Lmxlbmd0aD8tMTxiLnUuaW5kZXhPZigidHJhZGVpbnZhbHVlcy5jYSIpfHwtMTxiLnUuaW5kZXhPZigiaW5zdGFudG9mZmVyLmFjY3UtdHJhZGUuY29tIik\/JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLAoic2hvd1RyYWRlSW5Qb3B1cCgnIitiLnUrIicpIikuYXR0cigib250YXAiLCJzaG93VHJhZGVJblBvcHVwKCciK2IudSsiJykiKTotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkdHJhZGVib29zdCIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwicmV0dXJuIGxhdW5jaFRyYWRlSW5Qb3B1cCgnYmFubmVyJyk7IikuYXR0cigib250YXAiLCJyZXR1cm4gbGF1bmNoVHJhZGVJblBvcHVwKCdiYW5uZXInKTsiKTotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkY3JlZGl0c2NvcmUiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIiQoJyNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyJykucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCdjbGljaycpLm9wZW4oKTtyZXR1cm4gZmFsc2U7IikuYXR0cigib250YXAiLCIkKCcjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOgotMTxiLnUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCIkbXVsdGlzdGVwZmluYW5jZSIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwiJCgnI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiJCgnI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOi0xPGIudS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIiRjcmVkaXRib29zdCIpPyQoYy5jdXJyZW50VGFyZ2V0KS5hdHRyKCJvbmNsaWNrIiwiJCgnI2NyZWRpdEJvb3N0TXVsdGlQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiJCgnI2NyZWRpdEJvb3N0TXVsdGlQb3B1cENvbnRhaW5lcicpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcignY2xpY2snKS5vcGVuKCk7cmV0dXJuIGZhbHNlOyIpOgotMTxiLnUuaW5kZXhPZigiJG1vdG9pbnNpZ2h0c2hvcCIpPyQoIiNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmbW90b2luc2lnaHRCYW5uZXJWYXJpYWJsZVJlcGxhY2VtZW50KCk6LTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiJHNlcnZpY2VhcHQiKT8kKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIkxlYWRIYW5kbGVyKCkuZ2V0TGVhZCgnRGVhbGVyQXBwb2ludG1lbnQnKS5kaXNwbGF5KCk7cmV0dXJuIGZhbHNlOyIpLmF0dHIoIm9udGFwIiwiTGVhZEhhbmRsZXIoKS5nZXRMZWFkKCdEZWFsZXJBcHBvaW50bWVudCcpLmRpc3BsYXkoKTtyZXR1cm4gZmFsc2U7Iik6LTE8Yi51LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiamF2YXNjcmlwdDp2b2lkIik\/JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLGIudSkuYXR0cigib250YXAiLGIudSk6MD09PWIudS5pbmRleE9mKCIvIil8fC0xPGIudS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0KT8KJChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cubG9jYXRpb24gPSAnIitiLnUrIiciKTokKGMuY3VycmVudFRhcmdldCkuYXR0cigib25jbGljayIsIndpbmRvdy5vcGVuKCciK2IudSsiJywgJ19ibGFuaycpIik6JChjLmN1cnJlbnRUYXJnZXQpLmF0dHIoIm9uY2xpY2siLCJzaG93UG9wdXBXaWRnZXQoKSIpLmF0dHIoIm9udGFwIiwic2hvd1BvcHVwV2lkZ2V0KCkiKTtlLmZhZGVJbigic2xvdyIpfSk7Mj5PYmplY3Qua2V5cyh0aGlzLmJhbm5lcnMpLmxlbmd0aHx8dGhpcy5zdGFydChiLnQpfX19X2lzS2V5d29yZEluUGF0aChhKXtyZXR1cm4tMSE9PXRoaXMuY3VycmVudFBhdGguaW5kZXhPZihkZWNvZGVVUklDb21wb25lbnQoYSsiIikudG9Mb3dlckNhc2UoKSl9X2lzS2V5d29yZEluQ29va2llKGEpe2xldCBlPUNvb2tpZXMuZ2V0KCJkMmNvZmZlciIpO3JldHVybiBlJiYoZT1lLnRvTG93ZXJDYXNlKCksLTEhPT1lLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKSk\/CiEwOiExfV9wcm9jZXNzRGlzY2xhaW1lcihhKXtpZihhLmhhc093blByb3BlcnR5KCJkIikmJjAhPT1hLmQubGVuZ3RoKXt2YXIgZT17ZnI6e3Nob3c6IkFmZmljaGVyIGxlcyBtb2RhbGl0w6lzIGV0IGNvbmRpdGlvbnMgZ8OpbsOpcmFsZXMiLGhpZGU6Ik1hc3F1ZXIgbGVzIG1vZGFsaXTDqXMgZXQgY29uZGl0aW9ucyBnw6luw6lyYWxlcyJ9LGVuOntzaG93OiJWaWV3IFRlcm1zIGFuZCBDb25kaXRpb25zIixoaWRlOiJIaWRlIFRlcm1zIGFuZCBDb25kaXRpb25zIn19LGI9IjEiPT09JCgiI2lzbW9iaWxlIikudmFsKCksYz0kKCc8ZGl2IGNsYXNzPSJ0b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250YWluZXIiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgZmEtMngiPjwvaT48ZGl2PjwvZGl2PjwvZGl2PicpLGQ9JChgPGRpdiBjbGFzcz0idG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udHJvbCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iPiR7ZVtEMkNVdGlscy5MYW5nLmdldFNob3J0TGFuZyghMSldLnNob3d9PC9idXR0b24+PC9kaXY+YCk7CmMuZmluZCgiZGl2IikuYXBwZW5kKGEuZCk7dGhpcy4kdG9wQmFubmVySW1hZ2UuYXBwZW5kKGMpO3RoaXMuJHRvcEJhbm5lckltYWdlLmFwcGVuZChkKTtpZihiKWQub24oImNsaWNrIiwoKT0+e2MuaXMoIjp2aXNpYmxlIik\/KGQuZmluZCgiYnV0dG9uIikudGV4dChlW0QyQ1V0aWxzLkxhbmcuZ2V0U2hvcnRMYW5nKCExKV0uc2hvdyksYy5mYWRlT3V0KCksdGhpcy5zdGFydChhLnQpKTooZC5maW5kKCJidXR0b24iKS50ZXh0KGVbRDJDVXRpbHMuTGFuZy5nZXRTaG9ydExhbmcoITEpXS5oaWRlKSxjLmZhZGVJbigpLHRoaXMuc3RvcCgpKX0pO2Vsc2UgZC5vbigiY2xpY2siLCgpPT57Yy5zaG93KCk7dGhpcy5zdG9wKCl9KSxjLmZpbmQoImkiKS5vbigiY2xpY2siLCgpPT57Yy5oaWRlKCk7dGhpcy5zdGFydChhLnQpfSl9fX07Ci8qKiAvanMvZ29vZ2xlbWFwcy5qcyAqKi8KdmFyIF9fX2QyY19nb29nbGVtYXBzanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDo1NCI7J3VzZSBzdHJpY3QnO2NsYXNzIEdvb2dsZU1hcHNXcmFwcGVye2NvbnN0cnVjdG9yKGEpe3RoaXMucHJldmlvdXNJbmZvV2luZG93PSExO3RoaXMub3B0aW9ucz17ZWxlbWVudDphJiZhLmVsZW1lbnQ\/YS5lbGVtZW50OiIiLGNlbnRlcjphJiZhLmNlbnRlcj9hLmNlbnRlcjp7bGF0OjQ1LjQ2NzI3Nyxsbmc6LTczLjgzNDUyNn0sY2VudGVyT2Zmc2V0OmEmJmEuY2VudGVyT2Zmc2V0P2EuY2VudGVyT2Zmc2V0Ont4OjAseTowfSx6b29tOmEmJmEuem9vbT9hLnpvb206OSxhZGRyZXNzZXM6YSYmYS5hZGRyZXNzZXM\/YS5hZGRyZXNzZXM6W10sb25CZWZvcmVJbml0OmEmJmEub25CZWZvcmVJbml0P2Eub25CZWZvcmVJbml0OmZ1bmN0aW9uKCl7fSxvbkFmdGVySW5pdDphJiZhLm9uQWZ0ZXJJbml0P2Eub25BZnRlckluaXQ6ZnVuY3Rpb24oKXt9LG9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmEmJmEub25BZnRlck1hcmtlckNyZWF0ZWQ\/YS5vbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbigpe319fXN0YXRpYyBzZXRHb29nbGVNYXAoKXt2YXIgYT0KMCxlPWZ1bmN0aW9uKCl7Z29vZ2xlLm1hcHMuTWFwLnByb3RvdHlwZS5zZXRDZW50ZXJXaXRoT2Zmc2V0PWZ1bmN0aW9uKGssZyxsKXt2YXIgYz10aGlzLGI9bmV3IGdvb2dsZS5tYXBzLk92ZXJsYXlWaWV3O2Iub25BZGQ9ZnVuY3Rpb24oKXt2YXIgZj10aGlzLmdldFByb2plY3Rpb24oKSxkPWYuZnJvbUxhdExuZ1RvQ29udGFpbmVyUGl4ZWwoayk7ZC54Kz1nO2QueSs9bDtjLnNldENlbnRlcihmLmZyb21Db250YWluZXJQaXhlbFRvTGF0TG5nKGQpKX07Yi5kcmF3PWZ1bmN0aW9uKCl7fTtiLnNldE1hcCh0aGlzKX19O2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZSllKCk7ZWxzZSB2YXIgaD1zZXRJbnRlcnZhbChmdW5jdGlvbigpezQ+YT8idW5kZWZpbmVkIiE9PXR5cGVvZiBnb29nbGU\/KGNsZWFySW50ZXJ2YWwoaCksZSgpKTphKys6Y2xlYXJJbnRlcnZhbChoKX0sMUUzKX1pbml0KCl7dmFyIGE9dGhpcyxlPWEub3B0aW9ucy5jZW50ZXJPZmZzZXQueD9hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lng6CjAsaD1hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lnk\/YS5vcHRpb25zLmNlbnRlck9mZnNldC55OjAsaz1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzO2Eub3B0aW9ucy5vbkJlZm9yZUluaXQoKTtpZihhLm9wdGlvbnMuYWRkcmVzc2VzLmxlbmd0aCl7dmFyIGc9YS5vcHRpb25zLmNlbnRlcixsPW5ldyBnb29nbGUubWFwcy5HZW9jb2RlcixjPW5ldyBnb29nbGUubWFwcy5NYXAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYS5vcHRpb25zLmVsZW1lbnQpLHt6b29tOmEub3B0aW9ucy56b29tLGNlbnRlcjphLm9wdGlvbnMuY2VudGVyLG1hcFR5cGVJZDpnb29nbGUubWFwcy5NYXBUeXBlSWQuUk9BRE1BUCxnZXN0dXJlSGFuZGxpbmc6ImdyZWVkeSIsc2Nyb2xsd2hlZWw6ITEsbWFwVHlwZUNvbnRyb2w6ITF9KTtnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lck9uY2UoYywiaWRsZSIsZnVuY3Rpb24oKXthLm9wdGlvbnMuYWRkcmVzc2VzLm1hcChmdW5jdGlvbihiLGYsZCl7Zj1mdW5jdGlvbihuLApxKXt0cnl7aWYocT09Z29vZ2xlLm1hcHMuR2VvY29kZXJTdGF0dXMuT0spe2suZXh0ZW5kKG5bMF0uZ2VvbWV0cnkubG9jYXRpb24pO2MuZml0Qm91bmRzKGspO2Muc2V0Wm9vbShhLm9wdGlvbnMuem9vbSk7Zz1jLmdldEJvdW5kcygpLmdldENlbnRlcigpO2Muc2V0Q2VudGVyV2l0aE9mZnNldChnLGUsaCk7dmFyIHA9bmV3IGdvb2dsZS5tYXBzLkluZm9XaW5kb3coe2NvbnRlbnQ6Yi5pbmZvd2luZG93fSksbT1uZXcgZ29vZ2xlLm1hcHMuTWFya2VyKHttYXA6Yyxwb3NpdGlvbjpuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLHRpdGxlOmIudGl0bGUsaWNvbjpiLmljb259KTttLmFkZExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXZpb3VzSW5mb1dpbmRvdyYmYS5wcmV2aW91c0luZm9XaW5kb3cuY2xvc2UoKTthLnByZXZpb3VzSW5mb1dpbmRvdz1wO3Aub3BlbihjLG0pfSk7YS5vcHRpb25zLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkKGIsbSl9fWNhdGNoKHIpe2NvbnNvbGUubG9nKHIpfX07CmEuaGFzTGF0KGIpJiZhLmhhc0xuZyhiKT8oZD1uZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKE51bWJlcihiLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCksTnVtYmVyKGIuZ2VvbWV0cnkubG9jYXRpb24ubG5nKSksZihbe2dlb21ldHJ5Ontsb2NhdGlvbjpkfX1dLCJPSyIpKTpsLmdlb2NvZGUoe2FkZHJlc3M6Yi5hZGRyZXNzfSxmKX0pfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkRG9tTGlzdGVuZXIod2luZG93LCJyZXNpemUiLGZ1bmN0aW9uKCl7Yy5zZXRDZW50ZXJXaXRoT2Zmc2V0KGcsZSxoKX0pfWEub3B0aW9ucy5vbkFmdGVySW5pdCgpfV9oYXNMYXRMbmdQcm9wKGEsZSl7cmV0dXJuIGEuaGFzT3duUHJvcGVydHkoImdlb21ldHJ5IikmJmEuZ2VvbWV0cnkuaGFzT3duUHJvcGVydHkoImxvY2F0aW9uIikmJmEuZ2VvbWV0cnkubG9jYXRpb24uaGFzT3duUHJvcGVydHkoZSkmJiJmYWxzZSIhPWEuZ2VvbWV0cnkubG9jYXRpb25bZV0\/ITA6ITF9aGFzTGF0KGEpe3JldHVybiB0aGlzLl9oYXNMYXRMbmdQcm9wKGEsCiJsYXQiKX1oYXNMbmcoYSl7cmV0dXJuIHRoaXMuX2hhc0xhdExuZ1Byb3AoYSwibG5nIil9fTsKLyoqIC9qcy9mb290ZXJXaWRnZXQuanMgKiovCnZhciBfX19kMmNfZm9vdGVyV2lkZ2V0anNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDowNyI7J3VzZSBzdHJpY3QnO2luVmlld0V4ZWMoIiNmb290ZXJXcmFwcGVyIixmdW5jdGlvbigpe3ZhciBiPWZ1bmN0aW9uKCl7dmFyIGE9JCgiI3RhcmdldFBhZ2UiKS52YWwoKTsidW5kZWZpbmVkIj09YSYmKGE9IlVOS05PV04iKTtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiRm9vdGVyLU1hcC1Mb2FkIiwiRGVza3RvcCIsYSwxKX07dHJ5e0dvb2dsZU1hcHNXcmFwcGVyLnNldEdvb2dsZU1hcCgpO3ZhciBjPSQoIiNmb290ZXJHb29nbGVNYXBab29tIikudmFsKCksZj0xPHBhcnNlSW50KGMpJiYxOD49cGFyc2VJbnQoYyk\/cGFyc2VJbnQoYyk6OSxlPW5ldyBHb29nbGVNYXBzV3JhcHBlcih7ZWxlbWVudDoiZm9vdGVyR29vZ2xlTWFwIixhZGRyZXNzZXM6InVuZGVmaW5lZCIhPXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXM\/Zm9vdGVyTWFwQWRkcmVzc2VzOltdLGNlbnRlck9mZnNldDp7eDotMzUwLHk6MH0sem9vbTpmLG9uQmVmb3JlSW5pdDpmdW5jdGlvbigpe2IoKX0sb25BZnRlckluaXQ6ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9CnR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXMmJmZvb3Rlck1hcEFkZHJlc3Nlcy5sZW5ndGgpJChkb2N1bWVudCkub24oImNsaWNrIiwiLm1hcF9kZWFsZXJfbGlzdF9pdGVtIixmdW5jdGlvbigpeyQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5zbGlkZVRvZ2dsZSgic2xvdyIpOyQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3ciKS5yZW1vdmVDbGFzcygiZmEtYW5nbGUtdXAiKTskKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikuYWRkQ2xhc3MoImZhLWFuZ2xlLWRvd24iKTt2YXIgYT0kKHRoaXMpLmZpbmQoIi5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiIpLmVxKDApLmhhc0NsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKTskKCIub3Blbl9ob3Vyc19tYXBfYWN0aXZlIikucmVtb3ZlQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpO2F8fCgkKHRoaXMpLmZpbmQoIi5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiIpLmVxKDApLnNsaWRlVG9nZ2xlKCJzbG93IiksCiQodGhpcykuZmluZCgiLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIikuZXEoMCkuYWRkQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLCQodGhpcykuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLnJlbW92ZUNsYXNzKCJmYS1hbmdsZS1kb3duIiksJCh0aGlzKS5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikuYWRkQ2xhc3MoImZhLWFuZ2xlLXVwIikpfSk7ZWxzZSAkKCIjZm9vdGVyR29vZ2xlTWFwQ29udGFpbmVyIikuaGlkZSgpfSxvbkFmdGVyTWFya2VyQ3JlYXRlZDpmdW5jdGlvbihhLGcpe3ZhciBkPWEub3BlbmluZ0hvdXJzP2Eub3BlbmluZ0hvdXJzOiIiO2Q9JzxkaXYgY2xhc3M9Im1hcF9kZWFsZXJfbGlzdF9pdGVtIiBkYXRhLXRzPSInK2Euc2FmZVRpdGxlKyciICBkYXRhLW5hbWU9IicrYS50aXRsZSsnIj48c3BhbiBjbGFzcz0ibWFya2VyU3BhbiI+PC9zcGFuPjxzcGFuIGNsYXNzPSJtYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIj4nKwphLnRpdGxlKyI8L3NwYW4+IisoZD8nPHNwYW4gY2xhc3M9Im1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyBmYSBmYS1hbmdsZS1kb3duIj48L3NwYW4+JzoiIikrJCgiPGRpdj4iKS5odG1sKGQpLnRleHQoKSsiPC9kaXY+IjskKCIjbWFwX2RlYWxlcl9saXN0IikuYXBwZW5kKGQpOyQoJ1tkYXRhLXRzPSInK2Euc2FmZVRpdGxlKyciXScpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZSIpLnJlbW92ZUNsYXNzKCJtYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lX2FjdGl2ZSIpOyQodGhpcykuZmluZCgiLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUiKS5hZGRDbGFzcygibWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZV9hY3RpdmUiKTtnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKGcsImNsaWNrIil9KX19KTskKCIjZm9vdGVyR29vZ2xlTWFwIikubGVuZ3RoPyJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZT9lLmluaXQoKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5pbml0KCl9LAoxRTMpOiQoIiNmb290ZXJHb29nbGVNYXBIb3Vyc0NvbnRhaW5lciIpLmxlbmd0aCYmYigpfWNhdGNoKGEpe2NvbnNvbGUubG9nKGEpfX0pOyQoZnVuY3Rpb24oKXskKCIuY0V4cGVuZExpc3QgQlVUVE9OIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBiPSQodGhpcykuY2xvc2VzdCgiZGl2LmNGb290ZXJDYXJMaW5rcyIpO2IubGVuZ3RoJiYoYi5oYXNDbGFzcygiY0xpc3RFeHBlbmRlZCIpfHxiLmFkZENsYXNzKCJjTGlzdEV4cGVuZGVkIikuZmluZCgiLmNFeHBlbmRMaXN0IikuaGlkZSgpKX0pO2lmKCQoIiNmYmxpa2UtY29udGFpbmVyIikubGVuZ3RoKXtiKC0xKTtmdW5jdGlvbiBiKGMpeyQoIiNmYmxpa2UtY29udGFpbmVyIikuZmluZCgiaWZyYW1lIikuYXR0cigidGFiaW5kZXgiLGMpOyQoIiNmYmxpa2UtY29udGFpbmVyIikuZmluZCgiaWZyYW1lIikuYXR0cigidGFiaW5kZXgiKSE9YyYmc2V0VGltZW91dChmdW5jdGlvbigpe2IoYyl9LDFFMyl9fX0pOwovKiogL2pzL29wZW5ob3Vycy5qcyAqKi8KdmFyIF9fX2QyY19vcGVuaG91cnNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjAzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19vcGVuaG91cnNqc19jX29uPSIyMDI1LTAzLTE4IDE0OjMwOjA4IjsidXNlIHN0cmljdCI7CnZhciBPcGVuSG91cnM9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhkKXt2YXIgZT0kKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuaGFzQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpOyQoZC5jdXJyZW50VGFyZ2V0KS5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikudG9nZ2xlQ2xhc3MoImV4cGFuZGVkIik7JCh0aGlzKS5wYXJlbnRzKGEub3B0aW9ucy5jb250YWluZXIpLmZpbmQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5zbGlkZVRvZ2dsZSgic2xvdyIpOyQodGhpcykucGFyZW50cyhhLm9wdGlvbnMuY29udGFpbmVyKS5maW5kKCIub3Blbl9ob3Vyc19tYXBfYWN0aXZlIikucmVtb3ZlQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpO2V8fCgkKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuc2xpZGVUb2dnbGUoInNsb3ciKSwkKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuYWRkQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpKX0KdmFyIGE9dGhpczthLm9wdGlvbnM9YjthLiRjb250YWluZXI9JChhLm9wdGlvbnMuY29udGFpbmVyKTthLmluaXQ9ZnVuY3Rpb24oKXthLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZCIpLm9uKCJjbGljayBhdXRvX29wZW4iLGMpOzA8YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQuZGVmYXVsdF9vcGVuZWQiKS5sZW5ndGg\/YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQuZGVmYXVsdF9vcGVuZWQiKS50cmlnZ2VyKCJhdXRvX29wZW4iKToyIT0kKCIuZXhwYW5kYWJsZV9jb250ZW50IikubGVuZ3RofHwwPCQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5maW5kKCIudmlzaXRDb250YWN0SGVhZGVyIikubGVuZ3RoP2Eub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgiYXV0b09wZW4iKSYmIWEub3B0aW9ucy5hdXRvT3Blbnx8YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQiKS5maXJzdCgpLnRyaWdnZXIoImF1dG9fb3BlbiIpOgokKCIuZXhwYW5kYWJsZV9jb250ZW50Iikuc2xpZGVUb2dnbGUoInNsb3ciKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIil9O3JldHVybiBhfTsKLyoqIC9qcy9qcXVlcnkuZGF0ZXRpbWVwaWNrZXIuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5ZGF0ZXRpbWVwaWNrZXJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjM5IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlkYXRldGltZXBpY2tlcmpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6MTEiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGYpeyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSIsImpxdWVyeS1tb3VzZXdoZWVsIiwiZGF0ZS1mdW5jdGlvbnMiXSxmKToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWY6ZihqUXVlcnkpfSkoZnVuY3Rpb24oZil7ZnVuY3Rpb24gTShyLHYsYSl7dGhpcy5kYXRlPXI7dGhpcy5kZXNjPXY7dGhpcy5zdHlsZT1hfXZhciBKPXtpMThuOnthcjp7bW9udGhzOiI\/Pz8\/PyA\/Pz8\/Pz87Pz8\/Pzs\/Pz8\/Oz8\/Pz8\/Oz8\/Pz87Pz8\/Pz8\/Oz8\/Pz87Pz87Pz8\/Pz87Pz8\/Pz8gPz8\/Pz87Pz8\/Pz8gPz8\/Pz8\/Oz8\/Pz8\/ID8\/Pz8\/Ii5zcGxpdCgiOyIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8\/Pz8\/Ii5zcGxpdCgiIiksZGF5T2ZXZWVrOiI\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8iLnNwbGl0KCIgIil9LHJvOnttb250aHM6IklhbnVhcmllIEZlYnJ1YXJpZSBNYXJ0aWUgQXByaWxpZSBNYWkgSXVuaWUgSXVsaWUgQXVndXN0IFNlcHRlbWJyaWUgT2N0b21icmllIE5vaWVtYnJpZSBEZWNlbWJyaWUiLnNwbGl0KCIgIiksCmRheU9mV2Vla1Nob3J0OiJEdSBMdSBNYSBNaSBKbyBWaSBT4iIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IkR1bWluaWM\/IEx1bmkgTWFyP2kgTWllcmN1cmkgSm9pIFZpbmVyaSBT4m1iP3Q\/Ii5zcGxpdCgiICIpfSxpZDp7bW9udGhzOiJKYW51YXJpIEZlYnJ1YXJpIE1hcmV0IEFwcmlsIE1laSBKdW5pIEp1bGkgQWd1c3R1cyBTZXB0ZW1iZXIgT2t0b2JlciBOb3ZlbWJlciBEZXNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTWluIFNlbiBTZWwgUmFiIEthbSBKdW0gU2FiIi5zcGxpdCgiICIpLGRheU9mV2VlazoiTWluZ2d1IFNlbmluIFNlbGFzYSBSYWJ1IEthbWlzIEp1bWF0IFNhYnR1Ii5zcGxpdCgiICIpfSxpczp7bW9udGhzOiJKYW76YXIgRmVicvphciBNYXJzIEFwcu1sIE1h7SBK+m7tIEr6bO0gwWf6c3QgU2VwdGVtYmVyIE9rdPNiZXIgTvN2ZW1iZXIgRGVzZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlN1biBN4W4g3nJp8CBNafAgRmltIEb2cyBMYXUiLnNwbGl0KCIgIiksCmRheU9mV2VlazoiU3VubnVkYWd1ciBN4W51ZGFndXIg3nJp8Gp1ZGFndXIgTWnwdmlrdWRhZ3VyIEZpbW10dWRhZ3VyIEb2c3R1ZGFndXIgTGF1Z2FyZGFndXIiLnNwbGl0KCIgIil9LGJnOnttb250aHM6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/ID8\/Pz8\/ID8\/PyA\/Pz8gPz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8gPz8gPz8gPz8gPz8gPz8gPz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8iLnNwbGl0KCIgIil9LGZhOnttb250aHM6Ij8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8gPz8\/ID8\/Pz8\/ID8\/Pz8\/PyA\/Pz8gPz8\/PyA\/Pz8gPz8gPz8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/Pz8\/Oz8\/Pz8\/Pzs\/PyA\/Pz8\/Oz8\/Pz8\/Pz8\/Oz8\/Pz8\/Pz87Pz8\/Pzs\/Pz8\/Ii5zcGxpdCgiOyIpLApkYXlPZldlZWs6Ij8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/PyA\/Pz8\/ID8\/Pz8\/Pz8iLnNwbGl0KCIgIil9LHJ1Onttb250aHM6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8\/ID8\/PyA\/Pz8\/ID8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiPz8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKX0sdWs6e21vbnRoczoiPz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiPz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/ID8nPz8\/Pz8\/ID8\/Pz8\/PyIuc3BsaXQoIiAiKX0sCmVuOnttb250aHM6IkphbnVhcnkgRmVicnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IlN1bmRheSBNb25kYXkgVHVlc2RheSBXZWRuZXNkYXkgVGh1cnNkYXkgRnJpZGF5IFNhdHVyZGF5Ii5zcGxpdCgiICIpfSxlbDp7bW9udGhzOiI\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKX0sCmRlOnttb250aHM6IkphbnVhciBGZWJydWFyIE3kcnogQXByaWwgTWFpIEp1bmkgSnVsaSBBdWd1c3QgU2VwdGVtYmVyIE9rdG9iZXIgTm92ZW1iZXIgRGV6ZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlNvIE1vIERpIE1pIERvIEZyIFNhIi5zcGxpdCgiICIpLGRheU9mV2VlazoiU29ubnRhZyBNb250YWcgRGllbnN0YWcgTWl0dHdvY2ggRG9ubmVyc3RhZyBGcmVpdGFnIFNhbXN0YWciLnNwbGl0KCIgIil9LG5sOnttb250aHM6ImphbnVhcmkgZmVicnVhcmkgbWFhcnQgYXByaWwgbWVpIGp1bmkganVsaSBhdWd1c3R1cyBzZXB0ZW1iZXIgb2t0b2JlciBub3ZlbWJlciBkZWNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiem8gbWEgZGkgd28gZG8gdnIgemEiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJ6b25kYWcgbWFhbmRhZyBkaW5zZGFnIHdvZW5zZGFnIGRvbmRlcmRhZyB2cmlqZGFnIHphdGVyZGFnIi5zcGxpdCgiICIpfSx0cjp7bW9udGhzOiJPY2FrID91YmF0IE1hcnQgTmlzYW4gTWF5P3MgSGF6aXJhbiBUZW1tdXogQT91c3RvcyBFeWz8bCBFa2ltIEthcz9tIEFyYWw\/ayIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6IlBheiBQdHMgU2FsIMdhciBQZXIgQ3VtIEN0cyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IlBhemFyIFBhemFydGVzaSBTYWw\/IMdhcj9hbWJhIFBlcj9lbWJlIEN1bWEgQ3VtYXJ0ZXNpIi5zcGxpdCgiICIpfSxmcjp7bW9udGhzOiJKYW52aWVyIEbpdnJpZXIgTWFycyBBdnJpbCBNYWkgSnVpbiBKdWlsbGV0IEFv+3QgU2VwdGVtYnJlIE9jdG9icmUgTm92ZW1icmUgROljZW1icmUiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkRpbSBMdW4gTWFyIE1lciBKZXUgVmVuIFNhbSIuc3BsaXQoIiAiKSxkYXlPZldlZWs6ImRpbWFuY2hlIGx1bmRpIG1hcmRpIG1lcmNyZWRpIGpldWRpIHZlbmRyZWRpIHNhbWVkaSIuc3BsaXQoIiAiKX0sZXM6e21vbnRoczoiRW5lcm8gRmVicmVybyBNYXJ6byBBYnJpbCBNYXlvIEp1bmlvIEp1bGlvIEFnb3N0byBTZXB0aWVtYnJlIE9jdHVicmUgTm92aWVtYnJlIERpY2llbWJyZSIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiRG9tIEx1biBNYXIgTWnpIEp1ZSBWaWUgU+FiIi5zcGxpdCgiICIpLApkYXlPZldlZWs6IkRvbWluZ28gTHVuZXMgTWFydGVzIE1p6XJjb2xlcyBKdWV2ZXMgVmllcm5lcyBT4WJhZG8iLnNwbGl0KCIgIil9LHRoOnttb250aHM6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/LiA\/LiA\/LiA\/LiA\/Py4gPy4gPy4iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/ID8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/Pz8iLnNwbGl0KCIgIil9LHBsOnttb250aHM6InN0eWN6ZT8gbHV0eSBtYXJ6ZWMga3dpZWNpZT8gbWFqIGN6ZXJ3aWVjIGxpcGllYyBzaWVycGllPyB3cnplc2llPyBwYT9kemllcm5payBsaXN0b3BhZCBncnVkemllPyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoibmQgcG4gd3QgP3IgY3ogcHQgc2IiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJuaWVkemllbGEgcG9uaWVkemlhP2VrIHd0b3JlayA\/cm9kYSBjendhcnRlayBwaT90ZWsgc29ib3RhIi5zcGxpdCgiICIpfSwKcHQ6e21vbnRoczoiSmFuZWlybyBGZXZlcmVpcm8gTWFy528gQWJyaWwgTWFpbyBKdW5obyBKdWxobyBBZ29zdG8gU2V0ZW1icm8gT3V0dWJybyBOb3ZlbWJybyBEZXplbWJybyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiRG9tIFNlZyBUZXIgUXVhIFF1aSBTZXggU2FiIi5zcGxpdCgiICIpLGRheU9mV2VlazoiRG9taW5nbyBTZWd1bmRhIFRlcudhIFF1YXJ0YSBRdWludGEgU2V4dGEgU+FiYWRvIi5zcGxpdCgiICIpfSxjaDp7bW9udGhzOiI\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8\/Pz8\/Ii5zcGxpdCgiIil9LHNlOnttb250aHM6IkphbnVhcmkgRmVicnVhcmkgTWFycyBBcHJpbCBNYWogSnVuaSBKdWxpIEF1Z3VzdGkgU2VwdGVtYmVyIE9rdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlP2biBN5W4gVGlzIE9ucyBUb3IgRnJlIEz2ciIuc3BsaXQoIiAiKX0sCmtyOnttb250aHM6IjE\/IDI\/IDM\/IDQ\/IDU\/IDY\/IDc\/IDg\/IDk\/IDEwPyAxMT8gMTI\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8\/Pz8\/Ii5zcGxpdCgiIiksZGF5T2ZXZWVrOiI\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIil9LGl0Onttb250aHM6Ikdlbm5haW8gRmViYnJhaW8gTWFyem8gQXByaWxlIE1hZ2dpbyBHaXVnbm8gTHVnbGlvIEFnb3N0byBTZXR0ZW1icmUgT3R0b2JyZSBOb3ZlbWJyZSBEaWNlbWJyZSIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiRG9tIEx1biBNYXIgTWVyIEdpbyBWZW4gU2FiIi5zcGxpdCgiICIpLGRheU9mV2VlazoiRG9tZW5pY2EgTHVuZWTsIE1hcnRlZOwgTWVyY29sZWTsIEdpb3ZlZOwgVmVuZXJk7CBTYWJhdG8iLnNwbGl0KCIgIil9LGRhOnttb250aHM6IkphbnVhcnkgRmVicnVhciBNYXJ0cyBBcHJpbCBNYWogSnVuaSBKdWx5IEF1Z3VzdCBTZXB0ZW1iZXIgT2t0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6IlP4biBNYW4gVGlyIE9ucyBUb3IgRnJlIEz4ciIuc3BsaXQoIiAiKSxkYXlPZldlZWs6InP4bmRhZyBtYW5kYWcgdGlyc2RhZyBvbnNkYWcgdG9yc2RhZyBmcmVkYWcgbPhyZGFnIi5zcGxpdCgiICIpfSxubzp7bW9udGhzOiJKYW51YXIgRmVicnVhciBNYXJzIEFwcmlsIE1haSBKdW5pIEp1bGkgQXVndXN0IFNlcHRlbWJlciBPa3RvYmVyIE5vdmVtYmVyIERlc2VtYmVyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJT+G4gTWFuIFRpciBPbnMgVG9yIEZyZSBM+HIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJT+G5kYWcgTWFuZGFnIFRpcnNkYWcgT25zZGFnIFRvcnNkYWcgRnJlZGFnIEz4cmRhZyIuc3BsaXQoIiAiKX0samE6e21vbnRoczoiMT8gMj8gMz8gND8gNT8gNj8gNz8gOD8gOT8gMTA\/IDExPyAxMj8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/Ii5zcGxpdCgiICIpfSwKdmk6e21vbnRoczoiVGjhbmcgMTtUaOFuZyAyO1Ro4W5nIDM7VGjhbmcgNDtUaOFuZyA1O1Ro4W5nIDY7VGjhbmcgNztUaOFuZyA4O1Ro4W5nIDk7VGjhbmcgMTA7VGjhbmcgMTE7VGjhbmcgMTIiLnNwbGl0KCI7IiksZGF5T2ZXZWVrU2hvcnQ6IkNOIFQyIFQzIFQ0IFQ1IFQ2IFQ3Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiQ2g\/IG5oP3Q7VGg\/IGhhaTtUaD8gYmE7VGg\/IHQ\/O1RoPyBuP207VGg\/IHPhdTtUaD8gYj95Ii5zcGxpdCgiOyIpfSxzbDp7bW9udGhzOiJKYW51YXIgRmVicnVhciBNYXJlYyBBcHJpbCBNYWogSnVuaWogSnVsaWogQXZndXN0IFNlcHRlbWJlciBPa3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJOZWQgUG9uIFRvciBTcmUgP2V0IFBldCBTb2IiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJOZWRlbGphIFBvbmVkZWxqZWsgVG9yZWsgU3JlZGEgP2V0cnRlayBQZXRlayBTb2JvdGEiLnNwbGl0KCIgIil9LGNzOnttb250aHM6IkxlZGVuINpub3IgQj9lemVuIER1YmVuIEt2P3RlbiA\/ZXJ2ZW4gP2VydmVuZWMgU3JwZW4gWuE\/7SA\/7WplbiBMaXN0b3BhZCBQcm9zaW5lYyIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6Ik5lIFBvINp0IFN0ID90IFDhIFNvIi5zcGxpdCgiICIpfSxodTp7bW9udGhzOiJKYW514XIgRmVicnXhciBN4XJjaXVzIMFwcmlsaXMgTeFqdXMgSvpuaXVzIEr6bGl1cyBBdWd1c3p0dXMgU3plcHRlbWJlciBPa3TzYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJWYSBI6SBLZSBTemUgQ3MgUOkgU3pvIi5zcGxpdCgiICIpLGRheU9mV2VlazoidmFz4XJuYXAgaOl0Zj8ga2VkZCBzemVyZGEgY3P8dPZydPZrIHDpbnRlayBzem9tYmF0Ii5zcGxpdCgiICIpfSxhejp7bW9udGhzOiJZYW52YXIgRmV2cmFsIE1hcnQgQXByZWwgTWF5IEl5dW4gSXl1bCBBdnF1c3QgU2VudHlhYnIgT2t0eWFiciBOb3lhYnIgRGVrYWJyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJCIEJlIMdhIMcgQ2EgQyA\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiQmF6YXI7QmF6YXIgZXJ0P3NpO8c\/cj8\/bmI\/IGF4P2FtPzvHP3I\/P25iPztD\/G0\/IGF4P2FtPztD\/G0\/Oz8\/bmI\/Ii5zcGxpdCgiOyIpfSwKYnM6e21vbnRoczoiSmFudWFyIEZlYnJ1YXIgTWFydCBBcHJpbCBNYWogSnVuIEp1bCBBdmd1c3QgU2VwdGVtYmFyIE9rdG9iYXIgTm92ZW1iYXIgRGVjZW1iYXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ik5lZCBQb24gVXRvIFNyaSA\/ZXQgUGV0IFN1YiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ik5lZGplbGphIFBvbmVkamVsamFrIFV0b3JhayBTcmlqZWRhID9ldHZydGFrIFBldGFrIFN1Ym90YSIuc3BsaXQoIiAiKX0sY2E6e21vbnRoczoiR2VuZXIgRmVicmVyIE1hcucgQWJyaWwgTWFpZyBKdW55IEp1bGlvbCBBZ29zdCBTZXRlbWJyZSBPY3R1YnJlIE5vdmVtYnJlIERlc2VtYnJlIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEZyBEbCBEdCBEYyBEaiBEdiBEcyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IkRpdW1lbmdlIERpbGx1bnMgRGltYXJ0cyBEaW1lY3JlcyBEaWpvdXMgRGl2ZW5kcmVzIERpc3NhYnRlIi5zcGxpdCgiICIpfSwiZW4tR0IiOnttb250aHM6IkphbnVhcnkgRmVicnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksCmRheU9mV2Vla1Nob3J0OiJTdW4gTW9uIFR1ZSBXZWQgVGh1IEZyaSBTYXQiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJTdW5kYXkgTW9uZGF5IFR1ZXNkYXkgV2VkbmVzZGF5IFRodXJzZGF5IEZyaWRheSBTYXR1cmRheSIuc3BsaXQoIiAiKX0sZXQ6e21vbnRoczoiSmFhbnVhciBWZWVicnVhciBN5HJ0cyBBcHJpbGwgTWFpIEp1dW5pIEp1dWxpIEF1Z3VzdCBTZXB0ZW1iZXIgT2t0b29iZXIgTm92ZW1iZXIgRGV0c2VtYmVyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJQRVRLTlJMIi5zcGxpdCgiIiksZGF5T2ZXZWVrOiJQ\/GhhcORldiBFc21hc3DkZXYgVGVpc2lw5GV2IEtvbG1hcORldiBOZWxqYXDkZXYgUmVlZGUgTGF1cORldiIuc3BsaXQoIiAiKX0sZXU6e21vbnRoczoiVXJ0YXJyaWxhIE90c2FpbGEgTWFydHhvYSBBcGlyaWxhIE1haWF0emEgRWthaW5hIFV6dGFpbGEgQWJ1enR1YSBJcmFpbGEgVXJyaWEgQXphcm9hIEFiZW5kdWEiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IklnLiBBbC4gQXIuIEF6LiBPZy4gT3IuIExhLiIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrOiJJZ2FuZGVhIEFzdGVsZWhlbmEgQXN0ZWFydGVhIEFzdGVhemtlbmEgT3N0ZWd1bmEgT3N0aXJhbGEgTGFydW5iYXRhIi5zcGxpdCgiICIpfSxmaTp7bW9udGhzOiJUYW1taWt1dSBIZWxtaWt1dSBNYWFsaXNrdXUgSHVodGlrdXUgVG91a29rdXUgS2Vz5Gt1dSBIZWlu5Gt1dSBFbG9rdXUgU3l5c2t1dSBMb2tha3V1IE1hcnJhc2t1dSBKb3VsdWt1dSIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU3UgTWEgVGkgS2UgVG8gUGUgTGEiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJzdW5udW50YWkgbWFhbmFudGFpIHRpaXN0YWkga2Vza2l2aWlra28gdG9yc3RhaSBwZXJqYW50YWkgbGF1YW50YWkiLnNwbGl0KCIgIil9LGdsOnttb250aHM6IlhhbiBGZWIgTWF6IEFiciBNYWkgWHVuIFh1bCBBZ28gU2V0IE91dCBOb3YgRGVjIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEb20gTHVuIE1hciBNZXIgWG92IFZlbiBTYWIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJEb21pbmdvIEx1bnMgTWFydGVzIE3pcmNvcmVzIFhvdmVzIFZlbnJlcyBT4WJhZG8iLnNwbGl0KCIgIil9LApocjp7bW9udGhzOiJTaWplP2FuaiBWZWxqYT9hIE8\/dWphayBUcmF2YW5qIFN2aWJhbmogTGlwYW5qIFNycGFuaiBLb2xvdm96IFJ1amFuIExpc3RvcGFkIFN0dWRlbmkgUHJvc2luYWMiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ik5lZCBQb24gVXRvIFNyaSA\/ZXQgUGV0IFN1YiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ik5lZGplbGphIFBvbmVkamVsamFrIFV0b3JhayBTcmlqZWRhID9ldHZydGFrIFBldGFrIFN1Ym90YSIuc3BsaXQoIiAiKX0sa286e21vbnRoczoiMT8gMj8gMz8gND8gNT8gNj8gNz8gOD8gOT8gMTA\/IDExPyAxMj8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKX0sbHQ6e21vbnRoczoiU2F1c2lvIFZhc2FyaW8gS292byBCYWxhbmQ\/aW8gR2VndT8\/cyBCaXI\/ZWxpbyBMaWVwb3MgUnVncGo\/P2lvIFJ1Z3M\/am8gU3BhbGlvIExhcGtyaT9pbyBHcnVvZD9pbyIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6IlNlayBQaXIgQW50IFRyZSBLZXQgUGVuID9lPyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IlNla21hZGllbmlzIFBpcm1hZGllbmlzIEFudHJhZGllbmlzIFRyZT9pYWRpZW5pcyBLZXR2aXJ0YWRpZW5pcyBQZW5rdGFkaWVuaXMgP2U\/dGFkaWVuaXMiLnNwbGl0KCIgIil9LGx2Onttb250aHM6IkphbnY\/cmlzO0ZlYnJ1P3JpcztNYXJ0cztBcHI\/bGlzIDtNYWlqcztKP25panM7Sj9saWpzO0F1Z3VzdHM7U2VwdGVtYnJpcztPa3RvYnJpcztOb3ZlbWJyaXM7RGVjZW1icmlzIi5zcGxpdCgiOyIpLGRheU9mV2Vla1Nob3J0OiJTdiBQciBPdCBUciBDdCBQayBTdCIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IlN2P3RkaWVuYSBQaXJtZGllbmEgT3RyZGllbmEgVHJlP2RpZW5hIENldHVydGRpZW5hIFBpZWt0ZGllbmEgU2VzdGRpZW5hIi5zcGxpdCgiICIpfSxtazp7bW9udGhzOiI\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8gPz8\/ID8\/Pz8gPz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8iLnNwbGl0KCIgIiksCmRheU9mV2Vla1Nob3J0OiI\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/PyIuc3BsaXQoIiAiKX0sbW46e21vbnRoczoiMS0\/ID8\/PzsyLT8gPz8\/OzMtPyA\/Pz87NC0\/ID8\/Pzs1LT8gPz8\/OzYtPyA\/Pz87Ny0\/ID8\/Pzs4LT8gPz8\/OzktPyA\/Pz87MTAtPyA\/Pz87MTEtPyA\/Pz87MTItPyA\/Pz8iLnNwbGl0KCI7IiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/ID8\/PyIuc3BsaXQoIiAiKX0sInB0LUJSIjp7bW9udGhzOiJKYW5laXJvIEZldmVyZWlybyBNYXLnbyBBYnJpbCBNYWlvIEp1bmhvIEp1bGhvIEFnb3N0byBTZXRlbWJybyBPdXR1YnJvIE5vdmVtYnJvIERlemVtYnJvIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEb20gU2VnIFRlciBRdWEgUXVpIFNleCBT4WIiLnNwbGl0KCIgIiksCmRheU9mV2VlazoiRG9taW5nbyBTZWd1bmRhIFRlcudhIFF1YXJ0YSBRdWludGEgU2V4dGEgU+FiYWRvIi5zcGxpdCgiICIpfSxzazp7bW9udGhzOiJKYW514XIgRmVicnXhciBNYXJlYyBBcHLtbCBN4WogSvpuIEr6bCBBdWd1c3QgU2VwdGVtYmVyIE9rdPNiZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ik5lIFBvIFV0IFN0ID90IFBpIFNvIi5zcGxpdCgiICIpLGRheU9mV2VlazoiTmVkZT9hIFBvbmRlbG9rIFV0b3JvayBTdHJlZGEgP3R2cnRvayBQaWF0b2sgU29ib3RhIi5zcGxpdCgiICIpfSxzcTp7bW9udGhzOiJKYW5hciBTaGt1cnQgTWFycyBQcmlsbCBNYWogUWVyc2hvciBLb3JyaWsgR3VzaHQgU2h0YXRvciBUZXRvciBO6250b3IgRGhqZXRvciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiRGllIEjrbiBNYXIgTetyIEVuaiBQcmUgU2h0dSIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IkUgRGllbDtFIEjrbus7RSBNYXJ0PztFIE3rcmt1cus7RSBFbmp0ZTtFIFByZW10ZTtFIFNodHVu6yIuc3BsaXQoIjsiKX0sCiJzci1ZVSI6e21vbnRoczoiSmFudWFyIEZlYnJ1YXIgTWFydCBBcHJpbCBNYWogSnVuIEp1bCBBdmd1c3QgU2VwdGVtYmFyIE9rdG9iYXIgTm92ZW1iYXIgRGVjZW1iYXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ik5lZCBQb24gVXRvIFNyZSA\/ZXQgUGV0IFN1YiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ik5lZGVsamEgUG9uZWRlbGphayBVdG9yYWsgU3JlZGEgP2V0dnJ0YWsgUGV0YWsgU3Vib3RhIi5zcGxpdCgiICIpfSxzcjp7bW9udGhzOiI\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/ID8\/Pz8\/ID8\/PyA\/Pz8gPz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiPz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Ii5zcGxpdCgiICIpfSxzdjp7bW9udGhzOiJKYW51YXJpIEZlYnJ1YXJpIE1hcnMgQXByaWwgTWFqIEp1bmkgSnVsaSBBdWd1c3RpIFNlcHRlbWJlciBPa3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiU\/ZuIE3lbiBUaXMgT25zIFRvciBGcmUgTPZyIi5zcGxpdCgiICIpLGRheU9mV2VlazoiU\/ZuZGFnIE3lbmRhZyBUaXNkYWcgT25zZGFnIFRvcnNkYWcgRnJlZGFnIEz2cmRhZyIuc3BsaXQoIiAiKX0sInpoLVRXIjp7bW9udGhzOiI\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8\/Pz8\/Ii5zcGxpdCgiIiksZGF5T2ZXZWVrOiI\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIil9LHpoOnttb250aHM6Ij8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKX0saGU6e21vbnRoczoiPz8\/Pz8gPz8\/Pz8\/ID8\/PyA\/Pz8\/PyA\/Pz8gPz8\/PyA\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8iLnNwbGl0KCIgIiksCmRheU9mV2Vla1Nob3J0OiI\/JyA\/JyA\/JyA\/JyA\/JyA\/JyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/PyA\/Pz8gPz8\/Pz8gPz8\/Pz8gPz8\/Pz8gPz8\/PyA\/Pz8gPz8\/Pz8iLnNwbGl0KCIgIil9LGh5Onttb250aHM6Ij8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiPz8\/Pz8\/ID8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKX0sa2c6e21vbnRoczoiPz8\/Pz8gPz8\/Oz8\/Pz8\/PyA\/Pz87Pz8\/Pz8\/ID8\/Pz8\/Oz8\/PyA\/Pz8\/Pzs\/Pz8\/Oz8\/Pz8\/Oz8\/Pz87Pz8\/ID8\/Pz87Pz8\/ID8\/Pz87Pz8\/Pz8\/Pz8gPz8\/Oz8\/Pz8\/Pz8gPz8\/Oz8\/Pz8\/PyA\/Pz8iLnNwbGl0KCI7IiksCmRheU9mV2Vla1Nob3J0OiI\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8iLnNwbGl0KCIgIil9fSx2YWx1ZToiIixydGw6ITEsZm9ybWF0OiJZL20vZCBIOmkiLGZvcm1hdFRpbWU6Ikg6aSIsZm9ybWF0RGF0ZToiWS9tL2QiLHN0YXJ0RGF0ZTohMSxzdGVwOjYwLG1vbnRoQ2hhbmdlU3Bpbm5lcjohMCxjbG9zZU9uRGF0ZVNlbGVjdDohMSxjbG9zZU9uVGltZVNlbGVjdDohMCxjbG9zZU9uV2l0aG91dENsaWNrOiEwLGNsb3NlT25JbnB1dENsaWNrOiEwLHRpbWVwaWNrZXI6ITAsZGF0ZXBpY2tlcjohMCx3ZWVrczohMSxkZWZhdWx0VGltZTohMSxkZWZhdWx0RGF0ZTohMSxtaW5EYXRlOiExLG1heERhdGU6ITEsbWluVGltZTohMSxtYXhUaW1lOiExLGRpc2FibGVkTWluVGltZTohMSxkaXNhYmxlZE1heFRpbWU6ITEsYWxsb3dUaW1lczpbXSxvcGVuZWQ6ITEsCmluaXRUaW1lOiEwLGlubGluZTohMSx0aGVtZToiIixvblNlbGVjdERhdGU6ZnVuY3Rpb24oKXt9LG9uU2VsZWN0VGltZTpmdW5jdGlvbigpe30sb25DaGFuZ2VNb250aDpmdW5jdGlvbigpe30sb25DaGFuZ2VZZWFyOmZ1bmN0aW9uKCl7fSxvbkNoYW5nZURhdGVUaW1lOmZ1bmN0aW9uKCl7fSxvblNob3c6ZnVuY3Rpb24oKXt9LG9uQ2xvc2U6ZnVuY3Rpb24oKXt9LG9uR2VuZXJhdGU6ZnVuY3Rpb24oKXt9LHdpdGhvdXRDb3B5cmlnaHQ6ITAsaW52ZXJzZUJ1dHRvbjohMSxob3VyczEyOiExLG5leHQ6Inhkc29mdF9uZXh0IixwcmV2OiJ4ZHNvZnRfcHJldiIsZGF5T2ZXZWVrU3RhcnQ6MCxwYXJlbnRJRDoiYm9keSIsdGltZUhlaWdodEluVGltZVBpY2tlcjoyNSx0aW1lcGlja2VyU2Nyb2xsYmFyOiEwLHRvZGF5QnV0dG9uOiEwLHByZXZCdXR0b246ITAsbmV4dEJ1dHRvbjohMCxkZWZhdWx0U2VsZWN0OiEwLHNjcm9sbE1vbnRoOiEwLHNjcm9sbFRpbWU6ITAsc2Nyb2xsSW5wdXQ6ITAsCmxhenlJbml0OiExLG1hc2s6ITEsdmFsaWRhdGVPbkJsdXI6ITAsYWxsb3dCbGFuazohMCx5ZWFyU3RhcnQ6MTk1MCx5ZWFyRW5kOjIwNTAsbW9udGhTdGFydDowLG1vbnRoRW5kOjExLHN0eWxlOiIiLGlkOiIiLGZpeGVkOiExLHJvdW5kVGltZToicm91bmQiLGNsYXNzTmFtZToiIix3ZWVrZW5kczpbXSxoaWdobGlnaHRlZERhdGVzOltdLGhpZ2hsaWdodGVkUGVyaW9kczpbXSxkaXNhYmxlZERhdGVzOltdLGRpc2FibGVkV2Vla0RheXM6W10seWVhck9mZnNldDowLGJlZm9yZVNob3dEYXk6bnVsbCxlbnRlckxpa2VUYWI6ITAsc2hvd0FwcGx5QnV0dG9uOiExfSxHPSJlbiI7Zi5kYXRldGltZXBpY2tlcj17c2V0TG9jYWxlOmZ1bmN0aW9uKHIpe0c9Si5pMThuW3JdP3I6ImVuIjtEYXRlLm1vbnRoTmFtZXM9Si5pMThuW0ddLm1vbnRocztEYXRlLmRheU5hbWVzPUouaTE4bltHXS5kYXlPZldlZWt9fTt3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZXx8KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlPQpmdW5jdGlvbihyLHYpe3RoaXMuZWw9cjt0aGlzLmdldFByb3BlcnR5VmFsdWU9ZnVuY3Rpb24oYSl7dmFyIEQ9LyhcLShbYS16XSl7MX0pL2c7ImZsb2F0Ij09PWEmJihhPSJzdHlsZUZsb2F0Iik7RC50ZXN0KGEpJiYoYT1hLnJlcGxhY2UoRCxmdW5jdGlvbihJLGcsZSl7cmV0dXJuIGUudG9VcHBlckNhc2UoKX0pKTtyZXR1cm4gci5jdXJyZW50U3R5bGVbYV18fG51bGx9O3JldHVybiB0aGlzfSk7QXJyYXkucHJvdG90eXBlLmluZGV4T2Z8fChBcnJheS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihyLHYpe3ZhciBhO3Y9dnx8MDtmb3IoYT10aGlzLmxlbmd0aDt2PGE7dis9MSlpZih0aGlzW3ZdPT09cilyZXR1cm4gdjtyZXR1cm4tMX0pO0RhdGUucHJvdG90eXBlLmNvdW50RGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLHRoaXMuZ2V0TW9udGgoKSsxLDApKS5nZXREYXRlKCl9O2YuZm4ueGRzb2Z0U2Nyb2xsZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB2PQpmKHRoaXMpLGE9ZnVuY3Rpb24ocCl7dmFyIEI9e3g6MCx5OjB9O2lmKCJ0b3VjaHN0YXJ0Ij09PXAudHlwZXx8InRvdWNobW92ZSI9PT1wLnR5cGV8fCJ0b3VjaGVuZCI9PT1wLnR5cGV8fCJ0b3VjaGNhbmNlbCI9PT1wLnR5cGUpcD1wLm9yaWdpbmFsRXZlbnQudG91Y2hlc1swXXx8cC5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLEIueD1wLmNsaWVudFgsQi55PXAuY2xpZW50WTtlbHNlIGlmKCJtb3VzZWRvd24iPT09cC50eXBlfHwibW91c2V1cCI9PT1wLnR5cGV8fCJtb3VzZW1vdmUiPT09cC50eXBlfHwibW91c2VvdmVyIj09PXAudHlwZXx8Im1vdXNlb3V0Ij09PXAudHlwZXx8Im1vdXNlZW50ZXIiPT09cC50eXBlfHwibW91c2VsZWF2ZSI9PT1wLnR5cGUpQi54PXAuY2xpZW50WCxCLnk9cC5jbGllbnRZO3JldHVybiBCfSxEPTEwMCxJPSExLGc9MCxlPTAsaD0wLGM9ITEsdD0wLHU9ZnVuY3Rpb24oKXt9O2lmKCJoaWRlIj09PXIpdi5maW5kKCIueGRzb2Z0X3Njcm9sbGJhciIpLmhpZGUoKTsKZWxzZXtpZighZih0aGlzKS5oYXNDbGFzcygieGRzb2Z0X3Njcm9sbGVyX2JveCIpKXt2YXIgdz12LmNoaWxkcmVuKCkuZXEoMCksRT12WzBdLmNsaWVudEhlaWdodCxDPXdbMF0ub2Zmc2V0SGVpZ2h0LHk9ZignPGRpdiBjbGFzcz0ieGRzb2Z0X3Njcm9sbGJhciI+PC9kaXY+Jyksej1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfc2Nyb2xsZXIiPjwvZGl2PicpO3kuYXBwZW5kKHopO3YuYWRkQ2xhc3MoInhkc29mdF9zY3JvbGxlcl9ib3giKS5hcHBlbmQoeSk7dT1mdW5jdGlvbihwKXtwPWEocCkueS1nK3Q7MD5wJiYocD0wKTtwK3pbMF0ub2Zmc2V0SGVpZ2h0PmgmJihwPWgtelswXS5vZmZzZXRIZWlnaHQpO3YudHJpZ2dlcigic2Nyb2xsX2VsZW1lbnQueGRzb2Z0X3Njcm9sbGVyIixbRD9wL0Q6MF0pfTt6Lm9uKCJ0b3VjaHN0YXJ0Lnhkc29mdF9zY3JvbGxlciBtb3VzZWRvd24ueGRzb2Z0X3Njcm9sbGVyIixmdW5jdGlvbihwKXtFfHx2LnRyaWdnZXIoInJlc2l6ZV9zY3JvbGwueGRzb2Z0X3Njcm9sbGVyIiwKW3JdKTtnPWEocCkueTt0PXBhcnNlSW50KHouY3NzKCJtYXJnaW4tdG9wIiksMTApO2g9eVswXS5vZmZzZXRIZWlnaHQ7Im1vdXNlZG93biI9PT1wLnR5cGU\/KGRvY3VtZW50JiZmKGRvY3VtZW50LmJvZHkpLmFkZENsYXNzKCJ4ZHNvZnRfbm9zZWxlY3QiKSxmKFtkb2N1bWVudC5ib2R5LHdpbmRvd10pLm9uKCJtb3VzZXVwLnhkc29mdF9zY3JvbGxlciIsZnVuY3Rpb24gTigpe2YoW2RvY3VtZW50LmJvZHksd2luZG93XSkub2ZmKCJtb3VzZXVwLnhkc29mdF9zY3JvbGxlciIsTikub2ZmKCJtb3VzZW1vdmUueGRzb2Z0X3Njcm9sbGVyIix1KS5yZW1vdmVDbGFzcygieGRzb2Z0X25vc2VsZWN0Iil9KSxmKGRvY3VtZW50LmJvZHkpLm9uKCJtb3VzZW1vdmUueGRzb2Z0X3Njcm9sbGVyIix1KSk6KGM9ITAscC5zdG9wUHJvcGFnYXRpb24oKSxwLnByZXZlbnREZWZhdWx0KCkpfSkub24oInRvdWNobW92ZSIsZnVuY3Rpb24ocCl7YyYmKHAucHJldmVudERlZmF1bHQoKSx1KHApKX0pLm9uKCJ0b3VjaGVuZCB0b3VjaGNhbmNlbCIsCmZ1bmN0aW9uKHApe2M9ITE7dD0wfSk7di5vbigic2Nyb2xsX2VsZW1lbnQueGRzb2Z0X3Njcm9sbGVyIixmdW5jdGlvbihwLEIpe0V8fHYudHJpZ2dlcigicmVzaXplX3Njcm9sbC54ZHNvZnRfc2Nyb2xsZXIiLFtCLCEwXSk7Qj0xPEI\/MTowPkJ8fGlzTmFOKEIpPzA6Qjt6LmNzcygibWFyZ2luLXRvcCIsRCpCKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dy5jc3MoIm1hcmdpblRvcCIsLXBhcnNlSW50KCh3WzBdLm9mZnNldEhlaWdodC1FKSpCLDEwKSl9LDEwKX0pLm9uKCJyZXNpemVfc2Nyb2xsLnhkc29mdF9zY3JvbGxlciIsZnVuY3Rpb24ocCxCLE4pe0U9dlswXS5jbGllbnRIZWlnaHQ7Qz13WzBdLm9mZnNldEhlaWdodDtwPUUvQzt2YXIgTz1wKnlbMF0ub2Zmc2V0SGVpZ2h0OzE8cD96LmhpZGUoKTooei5zaG93KCksei5jc3MoImhlaWdodCIscGFyc2VJbnQoMTA8Tz9POjEwLDEwKSksRD15WzBdLm9mZnNldEhlaWdodC16WzBdLm9mZnNldEhlaWdodCwhMCE9PU4mJnYudHJpZ2dlcigic2Nyb2xsX2VsZW1lbnQueGRzb2Z0X3Njcm9sbGVyIiwKW0J8fE1hdGguYWJzKHBhcnNlSW50KHcuY3NzKCJtYXJnaW5Ub3AiKSwxMCkpLyhDLUUpXSkpfSk7di5vbigibW91c2V3aGVlbCIsZnVuY3Rpb24ocCl7dmFyIEI9TWF0aC5hYnMocGFyc2VJbnQody5jc3MoIm1hcmdpblRvcCIpLDEwKSk7Qi09MjAqcC5kZWx0YVk7MD5CJiYoQj0wKTt2LnRyaWdnZXIoInNjcm9sbF9lbGVtZW50Lnhkc29mdF9zY3JvbGxlciIsW0IvKEMtRSldKTtwLnN0b3BQcm9wYWdhdGlvbigpO3JldHVybiExfSk7di5vbigidG91Y2hzdGFydCIsZnVuY3Rpb24ocCl7ST1hKHApO2U9TWF0aC5hYnMocGFyc2VJbnQody5jc3MoIm1hcmdpblRvcCIpLDEwKSl9KTt2Lm9uKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKHApe0kmJihwLnByZXZlbnREZWZhdWx0KCkscD1hKHApLHYudHJpZ2dlcigic2Nyb2xsX2VsZW1lbnQueGRzb2Z0X3Njcm9sbGVyIixbKGUtKHAueS1JLnkpKS8oQy1FKV0pKX0pO3Yub24oInRvdWNoZW5kIHRvdWNoY2FuY2VsIixmdW5jdGlvbihwKXtJPSExOwplPTB9KX12LnRyaWdnZXIoInJlc2l6ZV9zY3JvbGwueGRzb2Z0X3Njcm9sbGVyIixbcl0pfX0pfTtmLmZuLmRhdGV0aW1lcGlja2VyPWZ1bmN0aW9uKHIpe3ZhciB2PSExLGE9Zi5pc1BsYWluT2JqZWN0KHIpfHwhcj9mLmV4dGVuZCghMCx7fSxKLHIpOmYuZXh0ZW5kKCEwLHt9LEopLEQ9MCxJPWZ1bmN0aW9uKGUpe2Uub24oIm9wZW4ueGRzb2Z0IGZvY3VzaW4ueGRzb2Z0IG1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uIHQoYyl7ZS5pcygiOmRpc2FibGVkIil8fGUuZGF0YSgieGRzb2Z0X2RhdGV0aW1lcGlja2VyIil8fChjbGVhclRpbWVvdXQoRCksRD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKXx8ZyhlKTtlLm9mZigib3Blbi54ZHNvZnQgZm9jdXNpbi54ZHNvZnQgbW91c2Vkb3duLnhkc29mdCIsdCkudHJpZ2dlcigib3Blbi54ZHNvZnQiKX0sMTAwKSl9KX0sZz1mdW5jdGlvbihlKXtmdW5jdGlvbiBoKCl7aWYoYS5zdGFydERhdGUpdmFyIGI9Cmwuc3RyVG9EYXRlKGEuc3RhcnREYXRlKTtlbHNlIGlmKGI9YS52YWx1ZXx8KGUmJmUudmFsJiZlLnZhbCgpP2UudmFsKCk6IiIpKWI9bC5zdHJUb0RhdGVUaW1lKGIpO2Vsc2UgaWYoYS5kZWZhdWx0RGF0ZSYmKGI9bC5zdHJUb0RhdGVUaW1lKGEuZGVmYXVsdERhdGUpLGEuZGVmYXVsdFRpbWUpKXt2YXIgZD1sLnN0cnRvdGltZShhLmRlZmF1bHRUaW1lKTtiLnNldEhvdXJzKGQuZ2V0SG91cnMoKSk7Yi5zZXRNaW51dGVzKGQuZ2V0TWludXRlcygpKX1iJiZsLmlzVmFsaWREYXRlKGIpP2MuZGF0YSgiY2hhbmdlZCIsITApOmI9IiI7cmV0dXJuIGJ8fDB9dmFyIGM9ZignPGRpdiBjbGFzcz0ieGRzb2Z0X2RhdGV0aW1lcGlja2VyIHhkc29mdF9ub3NlbGVjdCI+PC9kaXY+JyksdD1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfY29weXJpZ2h0Ij48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3hkc29mdC5uZXQvanFwbHVnaW5zL2RhdGV0aW1lcGlja2VyLyI+eGRzb2Z0Lm5ldDwvYT48L2Rpdj4nKSwKdT1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfZGF0ZXBpY2tlciBhY3RpdmUiPjwvZGl2PicpLHc9ZignPGRpdiBjbGFzcz0ieGRzb2Z0X21vdW50aHBpY2tlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ4ZHNvZnRfcHJldiI+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ4ZHNvZnRfdG9kYXlfYnV0dG9uIj48L2J1dHRvbj48ZGl2IGNsYXNzPSJ4ZHNvZnRfbGFiZWwgeGRzb2Z0X21vbnRoIj48c3Bhbj48L3NwYW4+PGk+PC9pPjwvZGl2PjxkaXYgY2xhc3M9Inhkc29mdF9sYWJlbCB4ZHNvZnRfeWVhciI+PHNwYW4+PC9zcGFuPjxpPjwvaT48L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Inhkc29mdF9uZXh0Ij48L2J1dHRvbj48L2Rpdj4nKSxFPWYoJzxkaXYgY2xhc3M9Inhkc29mdF9jYWxlbmRhciI+PC9kaXY+JyksQz1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfdGltZXBpY2tlciBhY3RpdmUiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ieGRzb2Z0X3ByZXYiPjwvYnV0dG9uPjxkaXYgY2xhc3M9Inhkc29mdF90aW1lX2JveCI+PC9kaXY+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ4ZHNvZnRfbmV4dCI+PC9idXR0b24+PC9kaXY+JyksCnk9Qy5maW5kKCIueGRzb2Z0X3RpbWVfYm94IikuZXEoMCksej1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfdGltZV92YXJpYW50Ij48L2Rpdj4nKSxwPWYoJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ieGRzb2Z0X3NhdmVfc2VsZWN0ZWQgYmx1ZS1ncmFkaWVudC1idXR0b24iPlNhdmUgU2VsZWN0ZWQ8L2J1dHRvbj4nKSxCPWYoJzxkaXYgY2xhc3M9Inhkc29mdF9zZWxlY3QgeGRzb2Z0X21vbnRoc2VsZWN0Ij48ZGl2PjwvZGl2PjwvZGl2PicpLE49ZignPGRpdiBjbGFzcz0ieGRzb2Z0X3NlbGVjdCB4ZHNvZnRfeWVhcnNlbGVjdCI+PGRpdj48L2Rpdj48L2Rpdj4nKSxPPSExLFc9MDthLmlkJiZjLmF0dHIoImlkIixhLmlkKTthLnN0eWxlJiZjLmF0dHIoInN0eWxlIixhLnN0eWxlKTthLndlZWtzJiZjLmFkZENsYXNzKCJ4ZHNvZnRfc2hvd3dlZWtzIik7YS5ydGwmJmMuYWRkQ2xhc3MoInhkc29mdF9ydGwiKTtjLmFkZENsYXNzKCJ4ZHNvZnRfIithLnRoZW1lKTtjLmFkZENsYXNzKGEuY2xhc3NOYW1lKTsKdy5maW5kKCIueGRzb2Z0X21vbnRoIHNwYW4iKS5hZnRlcihCKTt3LmZpbmQoIi54ZHNvZnRfeWVhciBzcGFuIikuYWZ0ZXIoTik7dy5maW5kKCIueGRzb2Z0X21vbnRoLC54ZHNvZnRfeWVhciIpLm9uKCJtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbihiKXt2YXIgZD1mKHRoaXMpLmZpbmQoIi54ZHNvZnRfc2VsZWN0IikuZXEoMCksaz0wLG49MCxtPWQuaXMoIjp2aXNpYmxlIikscTt3LmZpbmQoIi54ZHNvZnRfc2VsZWN0IikuaGlkZSgpO2wuY3VycmVudFRpbWUmJihrPWwuY3VycmVudFRpbWVbZih0aGlzKS5oYXNDbGFzcygieGRzb2Z0X21vbnRoIik\/ImdldE1vbnRoIjoiZ2V0RnVsbFllYXIiXSgpKTtkW20\/ImhpZGUiOiJzaG93Il0oKTttPWQuZmluZCgiZGl2Lnhkc29mdF9vcHRpb24iKTtmb3IocT0wO3E8bS5sZW5ndGgmJm0uZXEocSkuZGF0YSgidmFsdWUiKSE9PWs7cSs9MSluKz1tWzBdLm9mZnNldEhlaWdodDtkLnhkc29mdFNjcm9sbGVyKG4vKGQuY2hpbGRyZW4oKVswXS5vZmZzZXRIZWlnaHQtCmRbMF0uY2xpZW50SGVpZ2h0KSk7Yi5zdG9wUHJvcGFnYXRpb24oKTtyZXR1cm4hMX0pO3cuZmluZCgiLnhkc29mdF9zZWxlY3QiKS54ZHNvZnRTY3JvbGxlcigpLm9uKCJtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpO2IucHJldmVudERlZmF1bHQoKX0pLm9uKCJtb3VzZWRvd24ueGRzb2Z0IiwiLnhkc29mdF9vcHRpb24iLGZ1bmN0aW9uKGIpe2lmKHZvaWQgMD09PWwuY3VycmVudFRpbWV8fG51bGw9PT1sLmN1cnJlbnRUaW1lKWwuY3VycmVudFRpbWU9bC5ub3coKTtiPWwuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKTtpZihsJiZsLmN1cnJlbnRUaW1lKWwuY3VycmVudFRpbWVbZih0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5oYXNDbGFzcygieGRzb2Z0X21vbnRoc2VsZWN0Iik\/InNldE1vbnRoIjoic2V0RnVsbFllYXIiXShmKHRoaXMpLmRhdGEoInZhbHVlIikpO2YodGhpcykucGFyZW50KCkucGFyZW50KCkuaGlkZSgpO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKTsKYS5vbkNoYW5nZU1vbnRoJiZpc0Z1bmN0aW9uKGEub25DaGFuZ2VNb250aCkmJmEub25DaGFuZ2VNb250aC5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IikpO2IhPT1sLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCkmJmlzRnVuY3Rpb24oYS5vbkNoYW5nZVllYXIpJiZhLm9uQ2hhbmdlWWVhci5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IikpfSk7Yy5zZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3ZhciBkPXt9LGs9ZnVuY3Rpb24obixtKXtuPW4ucmVwbGFjZSgvKFtcW1xdXC9ce1x9XChcKVwtXC5cK117MX0pL2csIlxcJDEiKS5yZXBsYWNlKC9fL2csIntkaWdpdCt9IikucmVwbGFjZSgvKFswLTldezF9KS9nLCJ7ZGlnaXQkMX0iKS5yZXBsYWNlKC9ce2RpZ2l0KFswLTldezF9KVx9L2csIlswLSQxX117MX0iKS5yZXBsYWNlKC9ce2RpZ2l0W1wrXVx9L2csIlswLTlfXXsxfSIpO3JldHVybihuZXcgUmVnRXhwKG4pKS50ZXN0KG0pfTthPWYuZXh0ZW5kKCEwLAp7fSxhLGIpO2IuYWxsb3dUaW1lcyYmQXJyYXkuaXNBcnJheShiLmFsbG93VGltZXMpJiZiLmFsbG93VGltZXMubGVuZ3RoJiYoYS5hbGxvd1RpbWVzPWYuZXh0ZW5kKCEwLFtdLGIuYWxsb3dUaW1lcykpO2Iud2Vla2VuZHMmJkFycmF5LmlzQXJyYXkoYi53ZWVrZW5kcykmJmIud2Vla2VuZHMubGVuZ3RoJiYoYS53ZWVrZW5kcz1mLmV4dGVuZCghMCxbXSxiLndlZWtlbmRzKSk7Yi5oaWdobGlnaHRlZERhdGVzJiZBcnJheS5pc0FycmF5KGIuaGlnaGxpZ2h0ZWREYXRlcykmJmIuaGlnaGxpZ2h0ZWREYXRlcy5sZW5ndGgmJihmLmVhY2goYi5oaWdobGlnaHRlZERhdGVzLGZ1bmN0aW9uKG4sbSl7bj1mLm1hcChtLnNwbGl0KCIsIiksZi50cmltKTttPW5ldyBNKERhdGUucGFyc2VEYXRlKG5bMF0sYS5mb3JtYXREYXRlKSxuWzFdLG5bMl0pO3ZhciBxPW0uZGF0ZS5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSk7dm9pZCAwIT09ZFtxXT8obj1kW3FdLmRlc2MpJiZuLmxlbmd0aCYmbS5kZXNjJiYKbS5kZXNjLmxlbmd0aCYmKGRbcV0uZGVzYz1uKyJcbiIrbS5kZXNjKTpkW3FdPW19KSxhLmhpZ2hsaWdodGVkRGF0ZXM9Zi5leHRlbmQoITAsW10sZCkpO2IuaGlnaGxpZ2h0ZWRQZXJpb2RzJiZBcnJheS5pc0FycmF5KGIuaGlnaGxpZ2h0ZWRQZXJpb2RzKSYmYi5oaWdobGlnaHRlZFBlcmlvZHMubGVuZ3RoJiYoZD1mLmV4dGVuZCghMCxbXSxhLmhpZ2hsaWdodGVkRGF0ZXMpLGYuZWFjaChiLmhpZ2hsaWdodGVkUGVyaW9kcyxmdW5jdGlvbihuLG0pe3ZhciBxO2lmKEFycmF5LmlzQXJyYXkobSkpe249bVswXTt2YXIgeD1tWzFdLEY9bVsyXSxBPW1bM119ZWxzZSBtPWYubWFwKG0uc3BsaXQoIiwiKSxmLnRyaW0pLG49RGF0ZS5wYXJzZURhdGUobVswXSxhLmZvcm1hdERhdGUpLHg9RGF0ZS5wYXJzZURhdGUobVsxXSxhLmZvcm1hdERhdGUpLEY9bVsyXSxBPW1bM107Zm9yKDtuPD14Oyl7bT1uZXcgTShuLEYsQSk7dmFyIEg9bi5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSk7bi5zZXREYXRlKG4uZ2V0RGF0ZSgpKwoxKTt2b2lkIDAhPT1kW0hdPyhxPWRbSF0uZGVzYykmJnEubGVuZ3RoJiZtLmRlc2MmJm0uZGVzYy5sZW5ndGgmJihkW0hdLmRlc2M9cSsiXG4iK20uZGVzYyk6ZFtIXT1tfX0pLGEuaGlnaGxpZ2h0ZWREYXRlcz1mLmV4dGVuZCghMCxbXSxkKSk7Yi5kaXNhYmxlZERhdGVzJiZBcnJheS5pc0FycmF5KGIuZGlzYWJsZWREYXRlcykmJmIuZGlzYWJsZWREYXRlcy5sZW5ndGgmJihhLmRpc2FibGVkRGF0ZXM9Zi5leHRlbmQoITAsW10sYi5kaXNhYmxlZERhdGVzKSk7Yi5kaXNhYmxlZFdlZWtEYXlzJiZBcnJheS5pc0FycmF5KGIuZGlzYWJsZWRXZWVrRGF5cykmJmIuZGlzYWJsZWRXZWVrRGF5cy5sZW5ndGgmJihhLmRpc2FibGVkV2Vla0RheXM9Zi5leHRlbmQoITAsW10sYi5kaXNhYmxlZFdlZWtEYXlzKSk7IWEub3BlbiYmIWEub3BlbmVkfHxhLmlubGluZXx8ZS50cmlnZ2VyKCJvcGVuLnhkc29mdCIpO2EuaW5saW5lJiYoTz0hMCxjLmFkZENsYXNzKCJ4ZHNvZnRfaW5saW5lIiksZS5hZnRlcihjKS5oaWRlKCkpOwphLmludmVyc2VCdXR0b24mJihhLm5leHQ9Inhkc29mdF9wcmV2IixhLnByZXY9Inhkc29mdF9uZXh0Iik7YS5kYXRlcGlja2VyP3UuYWRkQ2xhc3MoImFjdGl2ZSIpOnUucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpO2EudGltZXBpY2tlcj9DLmFkZENsYXNzKCJhY3RpdmUiKTpDLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTthLnZhbHVlJiYobC5zZXRDdXJyZW50VGltZShhLnZhbHVlKSxlJiZlLnZhbCYmZS52YWwobC5zdHIpKTtpc05hTihhLmRheU9mV2Vla1N0YXJ0KT9hLmRheU9mV2Vla1N0YXJ0PTA6YS5kYXlPZldlZWtTdGFydD1wYXJzZUludChhLmRheU9mV2Vla1N0YXJ0LDEwKSU3O2EudGltZXBpY2tlclNjcm9sbGJhcnx8eS54ZHNvZnRTY3JvbGxlcigiaGlkZSIpO2EubWluRGF0ZSYmL15bXCtcLV0oLiopJC8udGVzdChhLm1pbkRhdGUpJiYoYS5taW5EYXRlPWwuc3RyVG9EYXRlVGltZShhLm1pbkRhdGUpLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKSk7YS5tYXhEYXRlJiYvXltcK1wtXSguKikkLy50ZXN0KGEubWF4RGF0ZSkmJgooYS5tYXhEYXRlPWwuc3RyVG9EYXRlVGltZShhLm1heERhdGUpLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKSk7cC50b2dnbGUoYS5zaG93QXBwbHlCdXR0b24pO3cuZmluZCgiLnhkc29mdF90b2RheV9idXR0b24iKS5jc3MoInZpc2liaWxpdHkiLGEudG9kYXlCdXR0b24\/InZpc2libGUiOiJoaWRkZW4iKTt3LmZpbmQoIi4iK2EucHJldikuY3NzKCJ2aXNpYmlsaXR5IixhLnByZXZCdXR0b24\/InZpc2libGUiOiJoaWRkZW4iKTt3LmZpbmQoIi4iK2EubmV4dCkuY3NzKCJ2aXNpYmlsaXR5IixhLm5leHRCdXR0b24\/InZpc2libGUiOiJoaWRkZW4iKTthLm1hc2smJihlLm9mZigia2V5ZG93bi54ZHNvZnQiKSwhMD09PWEubWFzayYmKGEubWFzaz1hLmZvcm1hdC5yZXBsYWNlKC9ZL2csIjk5OTkiKS5yZXBsYWNlKC9GL2csIjk5OTkiKS5yZXBsYWNlKC9tL2csIjE5IikucmVwbGFjZSgvZC9nLCIzOSIpLnJlcGxhY2UoL0gvZywiMjkiKS5yZXBsYWNlKC9pL2csIjU5IikucmVwbGFjZSgvcy9nLAoiNTkiKSksInN0cmluZyI9PT10eXBlb2YgYS5tYXNrJiYoayhhLm1hc2ssZS52YWwoKSl8fGUudmFsKGEubWFzay5yZXBsYWNlKC9bMC05XS9nLCJfIikpLGUub24oImtleWRvd24ueGRzb2Z0IixmdW5jdGlvbihuKXt2YXIgbT10aGlzLnZhbHVlLHE9bi53aGljaDtpZig0ODw9cSYmNTc+PXF8fDk2PD1xJiYxMDU+PXF8fDg9PT1xfHw0Nj09PXEpe2E6e3RyeXtpZihkb2N1bWVudC5zZWxlY3Rpb24mJmRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSl7dmFyIHg9ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCkuZ2V0Qm9va21hcmsoKS5jaGFyQ29kZUF0KDIpLTI7YnJlYWsgYX1pZih0aGlzLnNldFNlbGVjdGlvblJhbmdlKXt4PXRoaXMuc2VsZWN0aW9uU3RhcnQ7YnJlYWsgYX19Y2F0Y2goQSl7eD0wO2JyZWFrIGF9eD12b2lkIDB9dmFyIEY9OCE9PXEmJjQ2IT09cT9TdHJpbmcuZnJvbUNoYXJDb2RlKDk2PD1xJiYxMDU+PXE\/cS00ODpxKToiXyI7Zm9yKDghPT1xJiYKNDYhPT1xfHwheHx8KC0teCxGPSJfIik7L1teMC05X10vLnRlc3QoYS5tYXNrLnN1YnN0cih4LDEpKSYmeDxhLm1hc2subGVuZ3RoJiYwPHg7KXgrPTg9PT1xfHw0Nj09PXE\/LTE6MTttPW0uc3Vic3RyKDAseCkrRittLnN1YnN0cih4KzEpO2lmKCIiPT09dHJpbShtKSltPWEubWFzay5yZXBsYWNlKC9bMC05XS9nLCJfIik7ZWxzZSBpZih4PT09YS5tYXNrLmxlbmd0aClyZXR1cm4gbi5wcmV2ZW50RGVmYXVsdCgpLCExO2Zvcih4Kz04PT09cXx8NDY9PT1xPzA6MTsvW14wLTlfXS8udGVzdChhLm1hc2suc3Vic3RyKHgsMSkpJiZ4PGEubWFzay5sZW5ndGgmJjA8eDspeCs9OD09PXF8fDQ2PT09cT8tMToxO2soYS5tYXNrLG0pPyh0aGlzLnZhbHVlPW0sbT10aGlzLChtPSJzdHJpbmciPT09dHlwZW9mIG18fG0gaW5zdGFuY2VvZiBTdHJpbmc\/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobSk6bSkmJihtLmNyZWF0ZVRleHRSYW5nZT8obT1tLmNyZWF0ZVRleHRSYW5nZSgpLG0uY29sbGFwc2UoITApLAptLm1vdmVFbmQoImNoYXJhY3RlciIseCksbS5tb3ZlU3RhcnQoImNoYXJhY3RlciIseCksbS5zZWxlY3QoKSk6bS5zZXRTZWxlY3Rpb25SYW5nZSYmbS5zZXRTZWxlY3Rpb25SYW5nZSh4LHgpKSk6IiI9PT10cmltKG0pP3RoaXMudmFsdWU9YS5tYXNrLnJlcGxhY2UoL1swLTldL2csIl8iKTplLnRyaWdnZXIoImVycm9yX2lucHV0Lnhkc29mdCIpfWVsc2UgaWYoLTEhPT1bNjUsNjcsODYsOTAsODldLmluZGV4T2YocSkmJnZ8fC0xIT09WzI3LDM4LDQwLDM3LDM5LDExNiwxNyw5LDEzXS5pbmRleE9mKHEpKXJldHVybiEwO24ucHJldmVudERlZmF1bHQoKTtyZXR1cm4hMX0pKSk7aWYoYS52YWxpZGF0ZU9uQmx1cillLm9mZigiYmx1ci54ZHNvZnQiKS5vbigiYmx1ci54ZHNvZnQiLGZ1bmN0aW9uKCl7aWYoYS5hbGxvd0JsYW5rJiYhdHJpbShmKHRoaXMpLnZhbCgpKS5sZW5ndGgpZih0aGlzKS52YWwobnVsbCksYy5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWUiKS5lbXB0eSgpO2Vsc2V7aWYoIURhdGUucGFyc2VEYXRlKGYodGhpcykudmFsKCksCmEuZm9ybWF0KSl7dmFyIG49K1tmKHRoaXMpLnZhbCgpWzBdLGYodGhpcykudmFsKClbMV1dLmpvaW4oIiIpLG09K1tmKHRoaXMpLnZhbCgpWzJdLGYodGhpcykudmFsKClbM11dLmpvaW4oIiIpOyFhLmRhdGVwaWNrZXImJmEudGltZXBpY2tlciYmMDw9biYmMjQ+biYmMDw9bSYmNjA+bT9mKHRoaXMpLnZhbChbbixtXS5tYXAoZnVuY3Rpb24ocSl7cmV0dXJuIDk8cT9xOiIwIitxfSkuam9pbigiOiIpKTpmKHRoaXMpLnZhbChsLm5vdygpLmRhdGVGb3JtYXQoYS5mb3JtYXQpKX1jLmRhdGEoInhkc29mdF9kYXRldGltZSIpLnNldEN1cnJlbnRUaW1lKGYodGhpcykudmFsKCkpfWMudHJpZ2dlcigiY2hhbmdlZGF0ZXRpbWUueGRzb2Z0Iil9KTthLmRheU9mV2Vla1N0YXJ0UHJldj0wPT09YS5kYXlPZldlZWtTdGFydD82OmEuZGF5T2ZXZWVrU3RhcnQtMTtjLnRyaWdnZXIoInhjaGFuZ2UueGRzb2Z0IikudHJpZ2dlcigiYWZ0ZXJPcGVuLnhkc29mdCIpfTtjLmRhdGEoIm9wdGlvbnMiLAphKS5vbigibW91c2Vkb3duLnhkc29mdCIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKTtiLnByZXZlbnREZWZhdWx0KCk7Ti5oaWRlKCk7Qi5oaWRlKCk7cmV0dXJuITF9KTt5LmFwcGVuZCh6KTt5Lnhkc29mdFNjcm9sbGVyKCk7Yy5vbigiYWZ0ZXJPcGVuLnhkc29mdCIsZnVuY3Rpb24oKXt5Lnhkc29mdFNjcm9sbGVyKCl9KTtjLmFwcGVuZCh1KS5hcHBlbmQoQyk7ITAhPT1hLndpdGhvdXRDb3B5cmlnaHQmJmMuYXBwZW5kKHQpO3UuYXBwZW5kKHcpLmFwcGVuZChFKS5hcHBlbmQocCk7ZihhLnBhcmVudElEKS5hcHBlbmQoYyk7dmFyIGw9bmV3IGZ1bmN0aW9uKCl7dmFyIGI9dGhpcztiLm5vdz1mdW5jdGlvbihkKXt2YXIgaz1uZXcgRGF0ZTtpZighZCYmYS5kZWZhdWx0RGF0ZSl7dmFyIG49Yi5zdHJUb0RhdGVUaW1lKGEuZGVmYXVsdERhdGUpO2suc2V0RnVsbFllYXIobi5nZXRGdWxsWWVhcigpKTtrLnNldE1vbnRoKG4uZ2V0TW9udGgoKSk7ay5zZXREYXRlKG4uZ2V0RGF0ZSgpKX1hLnllYXJPZmZzZXQmJgprLnNldEZ1bGxZZWFyKGsuZ2V0RnVsbFllYXIoKSthLnllYXJPZmZzZXQpOyFkJiZhLmRlZmF1bHRUaW1lJiYoZD1iLnN0cnRvdGltZShhLmRlZmF1bHRUaW1lKSxrLnNldEhvdXJzKGQuZ2V0SG91cnMoKSksay5zZXRNaW51dGVzKGQuZ2V0TWludXRlcygpKSk7cmV0dXJuIGt9O2IuaXNWYWxpZERhdGU9ZnVuY3Rpb24oZCl7cmV0dXJuIltvYmplY3QgRGF0ZV0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpPyExOiFpc05hTihkLmdldFRpbWUoKSl9O2Iuc2V0Q3VycmVudFRpbWU9ZnVuY3Rpb24oZCl7Yi5jdXJyZW50VGltZT0ic3RyaW5nIj09PXR5cGVvZiBkP2Iuc3RyVG9EYXRlVGltZShkKTpiLmlzVmFsaWREYXRlKGQpP2Q6Yi5ub3coKTtjLnRyaWdnZXIoInhjaGFuZ2UueGRzb2Z0Iil9O2IuZW1wdHk9ZnVuY3Rpb24oKXtiLmN1cnJlbnRUaW1lPW51bGx9O2IuZ2V0Q3VycmVudFRpbWU9ZnVuY3Rpb24oZCl7cmV0dXJuIGIuY3VycmVudFRpbWV9O2IubmV4dE1vbnRoPQpmdW5jdGlvbigpe2lmKHZvaWQgMD09PWIuY3VycmVudFRpbWV8fG51bGw9PT1iLmN1cnJlbnRUaW1lKWIuY3VycmVudFRpbWU9Yi5ub3coKTt2YXIgZD1iLmN1cnJlbnRUaW1lLmdldE1vbnRoKCkrMTsxMj09PWQmJihiLmN1cnJlbnRUaW1lLnNldEZ1bGxZZWFyKGIuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSsxKSxkPTApO3ZhciBrPWIuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKTtiLmN1cnJlbnRUaW1lLnNldERhdGUoTWF0aC5taW4oKG5ldyBEYXRlKGIuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSxkKzEsMCkpLmdldERhdGUoKSxiLmN1cnJlbnRUaW1lLmdldERhdGUoKSkpO2IuY3VycmVudFRpbWUuc2V0TW9udGgoZCk7YS5vbkNoYW5nZU1vbnRoJiZpc0Z1bmN0aW9uKGEub25DaGFuZ2VNb250aCkmJmEub25DaGFuZ2VNb250aC5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IikpO2shPT1iLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCkmJmlzRnVuY3Rpb24oYS5vbkNoYW5nZVllYXIpJiYKYS5vbkNoYW5nZVllYXIuY2FsbChjLGwuY3VycmVudFRpbWUsYy5kYXRhKCJpbnB1dCIpKTtjLnRyaWdnZXIoInhjaGFuZ2UueGRzb2Z0Iik7cmV0dXJuIGR9O2IucHJldk1vbnRoPWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09Yi5jdXJyZW50VGltZXx8bnVsbD09PWIuY3VycmVudFRpbWUpYi5jdXJyZW50VGltZT1iLm5vdygpO3ZhciBkPWIuY3VycmVudFRpbWUuZ2V0TW9udGgoKS0xOy0xPT09ZCYmKGIuY3VycmVudFRpbWUuc2V0RnVsbFllYXIoYi5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpLTEpLGQ9MTEpO2IuY3VycmVudFRpbWUuc2V0RGF0ZShNYXRoLm1pbigobmV3IERhdGUoYi5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpLGQrMSwwKSkuZ2V0RGF0ZSgpLGIuY3VycmVudFRpbWUuZ2V0RGF0ZSgpKSk7Yi5jdXJyZW50VGltZS5zZXRNb250aChkKTthLm9uQ2hhbmdlTW9udGgmJmlzRnVuY3Rpb24oYS5vbkNoYW5nZU1vbnRoKSYmYS5vbkNoYW5nZU1vbnRoLmNhbGwoYyxsLmN1cnJlbnRUaW1lLApjLmRhdGEoImlucHV0IikpO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKTtyZXR1cm4gZH07Yi5nZXRXZWVrT2ZZZWFyPWZ1bmN0aW9uKGQpe3ZhciBrPW5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwwLDEpO3JldHVybiBNYXRoLmNlaWwoKChkLWspLzg2NEU1K2suZ2V0RGF5KCkrMSkvNyl9O2Iuc3RyVG9EYXRlVGltZT1mdW5jdGlvbihkKXt2YXIgaztpZihkJiZkIGluc3RhbmNlb2YgRGF0ZSYmYi5pc1ZhbGlkRGF0ZShkKSlyZXR1cm4gZDsoaz0vXihcK3xcLSkoLiopJC8uZXhlYyhkKSkmJihrWzJdPURhdGUucGFyc2VEYXRlKGtbMl0sYS5mb3JtYXREYXRlKSk7ayYma1syXT8oZD1rWzJdLmdldFRpbWUoKS02RTQqa1syXS5nZXRUaW1lem9uZU9mZnNldCgpLGs9bmV3IERhdGUoYi5ub3coITApLmdldFRpbWUoKStwYXJzZUludChrWzFdKyIxIiwxMCkqZCkpOms9ZD9EYXRlLnBhcnNlRGF0ZShkLGEuZm9ybWF0KTpiLm5vdygpO2IuaXNWYWxpZERhdGUoayl8fChrPWIubm93KCkpOwpyZXR1cm4ga307Yi5zdHJUb0RhdGU9ZnVuY3Rpb24oZCl7aWYoZCYmZCBpbnN0YW5jZW9mIERhdGUmJmIuaXNWYWxpZERhdGUoZCkpcmV0dXJuIGQ7ZD1kP0RhdGUucGFyc2VEYXRlKGQsYS5mb3JtYXREYXRlKTpiLm5vdyghMCk7Yi5pc1ZhbGlkRGF0ZShkKXx8KGQ9Yi5ub3coITApKTtyZXR1cm4gZH07Yi5zdHJ0b3RpbWU9ZnVuY3Rpb24oZCl7aWYoZCYmZCBpbnN0YW5jZW9mIERhdGUmJmIuaXNWYWxpZERhdGUoZCkpcmV0dXJuIGQ7ZD1kP0RhdGUucGFyc2VEYXRlKGQsYS5mb3JtYXRUaW1lKTpiLm5vdyghMCk7Yi5pc1ZhbGlkRGF0ZShkKXx8KGQ9Yi5ub3coITApKTtyZXR1cm4gZH07Yi5zdHI9ZnVuY3Rpb24oKXtyZXR1cm4gYi5jdXJyZW50VGltZS5kYXRlRm9ybWF0KGEuZm9ybWF0KX07Yi5jdXJyZW50VGltZT10aGlzLm5vdygpfTtwLm9uKCJjbGljayIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpO2MuZGF0YSgiY2hhbmdlZCIsITApO2wuc2V0Q3VycmVudFRpbWUoaCgpKTsKZS52YWwobC5zdHIoKSk7Yy50cmlnZ2VyKCJjbG9zZS54ZHNvZnQiKX0pO3cuZmluZCgiLnhkc29mdF90b2RheV9idXR0b24iKS5vbigibW91c2Vkb3duLnhkc29mdCIsZnVuY3Rpb24oKXtjLmRhdGEoImNoYW5nZWQiLCEwKTtsLnNldEN1cnJlbnRUaW1lKDApO2MudHJpZ2dlcigiYWZ0ZXJPcGVuLnhkc29mdCIpfSkub24oImRibGNsaWNrLnhkc29mdCIsZnVuY3Rpb24oKXt2YXIgYj1sLmdldEN1cnJlbnRUaW1lKCk7Yj1uZXcgRGF0ZShiLmdldEZ1bGxZZWFyKCksYi5nZXRNb250aCgpLGIuZ2V0RGF0ZSgpKTt2YXIgZD1sLnN0clRvRGF0ZShhLm1pbkRhdGUpO2Q9bmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLGQuZ2V0TW9udGgoKSxkLmdldERhdGUoKSk7YjxkfHwoZD1sLnN0clRvRGF0ZShhLm1heERhdGUpLGQ9bmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLGQuZ2V0TW9udGgoKSxkLmdldERhdGUoKSksYj5kfHwoZS52YWwobC5zdHIoKSksZS50cmlnZ2VyKCJjaGFuZ2UiKSxjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpKSl9KTsKdy5maW5kKCIueGRzb2Z0X3ByZXYsLnhkc29mdF9uZXh0Iikub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uKCl7dmFyIGI9Zih0aGlzKSxkPTAsaz0hMTsoZnVuY3Rpb24gcShtKXtiLmhhc0NsYXNzKGEubmV4dCk\/bC5uZXh0TW9udGgoKTpiLmhhc0NsYXNzKGEucHJldikmJmwucHJldk1vbnRoKCk7YS5tb250aENoYW5nZVNwaW5uZXImJihrfHwoZD1zZXRUaW1lb3V0KHEsbXx8MTAwKSkpfSkoNTAwKTtmKFtkb2N1bWVudC5ib2R5LHdpbmRvd10pLm9uKCJtb3VzZXVwLnhkc29mdCIsZnVuY3Rpb24gcSgpe2NsZWFyVGltZW91dChkKTtrPSEwO2YoW2RvY3VtZW50LmJvZHksd2luZG93XSkub2ZmKCJtb3VzZXVwLnhkc29mdCIscSl9KX0pO0MuZmluZCgiLnhkc29mdF9wcmV2LC54ZHNvZnRfbmV4dCIpLm9uKCJtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbigpe3ZhciBiPWYodGhpcyksZD0wLGs9ITEsbj0xMTA7KGZ1bmN0aW9uIHgocSl7dmFyIEY9eVswXS5jbGllbnRIZWlnaHQsCkE9elswXS5vZmZzZXRIZWlnaHQsSD1NYXRoLmFicyhwYXJzZUludCh6LmNzcygibWFyZ2luVG9wIiksMTApKTtiLmhhc0NsYXNzKGEubmV4dCkmJkEtRi1hLnRpbWVIZWlnaHRJblRpbWVQaWNrZXI+PUg\/ei5jc3MoIm1hcmdpblRvcCIsIi0iKyhIK2EudGltZUhlaWdodEluVGltZVBpY2tlcikrInB4Iik6Yi5oYXNDbGFzcyhhLnByZXYpJiYwPD1ILWEudGltZUhlaWdodEluVGltZVBpY2tlciYmei5jc3MoIm1hcmdpblRvcCIsIi0iKyhILWEudGltZUhlaWdodEluVGltZVBpY2tlcikrInB4Iik7eS50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFtNYXRoLmFicyhwYXJzZUludCh6LmNzcygibWFyZ2luVG9wIiksMTApLyhBLUYpKV0pO249MTA8bj8xMDpuLTEwO2t8fChkPXNldFRpbWVvdXQoeCxxfHxuKSl9KSg1MDApO2YoW2RvY3VtZW50LmJvZHksd2luZG93XSkub24oIm1vdXNldXAueGRzb2Z0IixmdW5jdGlvbiB4KCl7Y2xlYXJUaW1lb3V0KGQpO2s9ITA7CmYoW2RvY3VtZW50LmJvZHksd2luZG93XSkub2ZmKCJtb3VzZXVwLnhkc29mdCIseCl9KX0pO3ZhciBiYT0wO2Mub24oInhjaGFuZ2UueGRzb2Z0IixmdW5jdGlvbihiKXtjbGVhclRpbWVvdXQoYmEpO2JhPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZih2b2lkIDA9PT1sLmN1cnJlbnRUaW1lfHxudWxsPT09bC5jdXJyZW50VGltZSlsLmN1cnJlbnRUaW1lPWwubm93KCk7Zm9yKHZhciBkPSIiLGs9bmV3IERhdGUobC5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpLGwuY3VycmVudFRpbWUuZ2V0TW9udGgoKSwxLDEyLDAsMCksbj0wLG0scT1sLm5vdygpLHg9ITEsRj0hMSxBPVtdLEg9ITAsWD0iIixQPSIiLFk7ay5nZXREYXkoKSE9PWEuZGF5T2ZXZWVrU3RhcnQ7KWsuc2V0RGF0ZShrLmdldERhdGUoKS0xKTtkKz0iPHRhYmxlPjx0aGVhZD48dHI+IjthLndlZWtzJiYoZCs9Ijx0aD48L3RoPiIpO2ZvcihtPTA7Nz5tO20rPTEpZCs9Ijx0aD4iK2EuaTE4bltHXS5kYXlPZldlZWtTaG9ydFsobSsKYS5kYXlPZldlZWtTdGFydCklN10rIjwvdGg+IjtkKz0iPC90cj48L3RoZWFkPjx0Ym9keT4iOyExIT09YS5tYXhEYXRlJiYoeD1sLnN0clRvRGF0ZShhLm1heERhdGUpLHg9bmV3IERhdGUoeC5nZXRGdWxsWWVhcigpLHguZ2V0TW9udGgoKSx4LmdldERhdGUoKSwyMyw1OSw1OSw5OTkpKTtmb3IoITEhPT1hLm1pbkRhdGUmJihGPWwuc3RyVG9EYXRlKGEubWluRGF0ZSksRj1uZXcgRGF0ZShGLmdldEZ1bGxZZWFyKCksRi5nZXRNb250aCgpLEYuZ2V0RGF0ZSgpKSk7bjxsLmN1cnJlbnRUaW1lLmNvdW50RGF5c0luTW9udGgoKXx8ay5nZXREYXkoKSE9PWEuZGF5T2ZXZWVrU3RhcnR8fGwuY3VycmVudFRpbWUuZ2V0TW9udGgoKT09PWsuZ2V0TW9udGgoKTspe0E9W107bis9MTt2YXIgUj1rLmdldERheSgpO209ay5nZXREYXRlKCk7UD1rLmdldEZ1bGxZZWFyKCk7dmFyIFE9ay5nZXRNb250aCgpLGRhPWwuZ2V0V2Vla09mWWVhcihrKTtZPSIiO0EucHVzaCgieGRzb2Z0X2RhdGUiKTt2YXIgVj0KYS5iZWZvcmVTaG93RGF5JiZpc0Z1bmN0aW9uKGEuYmVmb3JlU2hvd0RheS5jYWxsKT9hLmJlZm9yZVNob3dEYXkuY2FsbChjLGspOm51bGw7ITEhPT14JiZrPnh8fCExIT09RiYmazxGfHxWJiYhMT09PVZbMF0\/QS5wdXNoKCJ4ZHNvZnRfZGlzYWJsZWQiKTotMSE9PWEuZGlzYWJsZWREYXRlcy5pbmRleE9mKGsuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpKT9BLnB1c2goInhkc29mdF9kaXNhYmxlZCIpOi0xIT09YS5kaXNhYmxlZFdlZWtEYXlzLmluZGV4T2YoUikmJkEucHVzaCgieGRzb2Z0X2Rpc2FibGVkIik7ViYmIiIhPT1WWzFdJiZBLnB1c2goVlsxXSk7bC5jdXJyZW50VGltZS5nZXRNb250aCgpIT09USYmQS5wdXNoKCJ4ZHNvZnRfb3RoZXJfbW9udGgiKTsoYS5kZWZhdWx0U2VsZWN0fHxjLmRhdGEoImNoYW5nZWQiKSkmJmwuY3VycmVudFRpbWUuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpPT09ay5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSkmJkEucHVzaCgieGRzb2Z0X2N1cnJlbnQiKTsKcS5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSk9PT1rLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKSYmQS5wdXNoKCJ4ZHNvZnRfdG9kYXkiKTswIT09ay5nZXREYXkoKSYmNiE9PWsuZ2V0RGF5KCkmJi0xPT09YS53ZWVrZW5kcy5pbmRleE9mKGsuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpKXx8QS5wdXNoKCJ4ZHNvZnRfd2Vla2VuZCIpO3ZvaWQgMCE9PWEuaGlnaGxpZ2h0ZWREYXRlc1trLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKV0mJihSPWEuaGlnaGxpZ2h0ZWREYXRlc1trLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKV0sQS5wdXNoKHZvaWQgMD09PVIuc3R5bGU\/Inhkc29mdF9oaWdobGlnaHRlZF9kZWZhdWx0IjpSLnN0eWxlKSxZPXZvaWQgMD09PVIuZGVzYz8iIjpSLmRlc2MpO2EuYmVmb3JlU2hvd0RheSYmaXNGdW5jdGlvbihhLmJlZm9yZVNob3dEYXkpJiZBLnB1c2goYS5iZWZvcmVTaG93RGF5KGspKTtIJiYoZCs9Ijx0cj4iLEg9ITEsYS53ZWVrcyYmKGQrPSI8dGg+IitkYSsKIjwvdGg+IikpO2QrPSc8dGQgZGF0YS1kYXRlPSInK20rJyIgZGF0YS1tb250aD0iJytRKyciIGRhdGEteWVhcj0iJytQKyciIGNsYXNzPSJ4ZHNvZnRfZGF0ZSB4ZHNvZnRfZGF5X29mX3dlZWsnK2suZ2V0RGF5KCkrIiAiK0Euam9pbigiICIpKyciIHRpdGxlPSInK1krJyI+PGRpdj4nK20rIjwvZGl2PjwvdGQ+IjtrLmdldERheSgpPT09YS5kYXlPZldlZWtTdGFydFByZXYmJihkKz0iPC90cj4iLEg9ITApO2suc2V0RGF0ZShtKzEpfUUuaHRtbChkKyI8L3Rib2R5PjwvdGFibGU+Iik7dy5maW5kKCIueGRzb2Z0X2xhYmVsIHNwYW4iKS5lcSgwKS50ZXh0KGEuaTE4bltHXS5tb250aHNbbC5jdXJyZW50VGltZS5nZXRNb250aCgpXSk7dy5maW5kKCIueGRzb2Z0X2xhYmVsIHNwYW4iKS5lcSgxKS50ZXh0KGwuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSk7UT1QPVg9IiI7ZD1mdW5jdGlvbihTLFQpe3ZhciBLPWwubm93KCksY2E9YS5hbGxvd1RpbWVzJiZBcnJheS5pc0FycmF5KGEuYWxsb3dUaW1lcykmJgphLmFsbG93VGltZXMubGVuZ3RoO0suc2V0SG91cnMoUyk7Uz1wYXJzZUludChLLmdldEhvdXJzKCksMTApO0suc2V0TWludXRlcyhUKTtUPXBhcnNlSW50KEsuZ2V0TWludXRlcygpLDEwKTt2YXIgTD1uZXcgRGF0ZShsLmN1cnJlbnRUaW1lKTtMLnNldEhvdXJzKFMpO0wuc2V0TWludXRlcyhUKTtBPVtdOyghMSE9PWEubWluRGF0ZVRpbWUmJmEubWluRGF0ZVRpbWU+THx8ITEhPT1hLm1heFRpbWUmJmwuc3RydG90aW1lKGEubWF4VGltZSkuZ2V0VGltZSgpPEsuZ2V0VGltZSgpfHwhMSE9PWEubWluVGltZSYmbC5zdHJ0b3RpbWUoYS5taW5UaW1lKS5nZXRUaW1lKCk+Sy5nZXRUaW1lKCkpJiZBLnB1c2goInhkc29mdF9kaXNhYmxlZCIpOyghMSE9PWEubWluRGF0ZVRpbWUmJmEubWluRGF0ZVRpbWU+THx8ITEhPT1hLmRpc2FibGVkTWluVGltZSYmSy5nZXRUaW1lKCk+bC5zdHJ0b3RpbWUoYS5kaXNhYmxlZE1pblRpbWUpLmdldFRpbWUoKSYmITEhPT1hLmRpc2FibGVkTWF4VGltZSYmCksuZ2V0VGltZSgpPGwuc3RydG90aW1lKGEuZGlzYWJsZWRNYXhUaW1lKS5nZXRUaW1lKCkpJiZBLnB1c2goInhkc29mdF9kaXNhYmxlZCIpO0w9bmV3IERhdGUobC5jdXJyZW50VGltZSk7TC5zZXRIb3VycyhwYXJzZUludChsLmN1cnJlbnRUaW1lLmdldEhvdXJzKCksMTApKTtjYXx8TC5zZXRNaW51dGVzKE1hdGhbYS5yb3VuZFRpbWVdKGwuY3VycmVudFRpbWUuZ2V0TWludXRlcygpL2Euc3RlcCkqYS5zdGVwKTsoYS5pbml0VGltZXx8YS5kZWZhdWx0U2VsZWN0fHxjLmRhdGEoImNoYW5nZWQiKSkmJkwuZ2V0SG91cnMoKT09PXBhcnNlSW50KFMsMTApJiYoIWNhJiY1OTxhLnN0ZXB8fEwuZ2V0TWludXRlcygpPT09cGFyc2VJbnQoVCwxMCkpJiYoYS5kZWZhdWx0U2VsZWN0fHxjLmRhdGEoImNoYW5nZWQiKT9BLnB1c2goInhkc29mdF9jdXJyZW50Iik6YS5pbml0VGltZSYmQS5wdXNoKCJ4ZHNvZnRfaW5pdF90aW1lIikpO3BhcnNlSW50KHEuZ2V0SG91cnMoKSwxMCk9PT1wYXJzZUludChTLAoxMCkmJnBhcnNlSW50KHEuZ2V0TWludXRlcygpLDEwKT09PXBhcnNlSW50KFQsMTApJiZBLnB1c2goInhkc29mdF90b2RheSIpO1grPSc8ZGl2IGNsYXNzPSJ4ZHNvZnRfdGltZSAnK0Euam9pbigiICIpKyciIGRhdGEtaG91cj0iJytTKyciIGRhdGEtbWludXRlPSInK1QrJyI+JytLLmRhdGVGb3JtYXQoYS5mb3JtYXRUaW1lKSsiPC9kaXY+In07aWYoYS5hbGxvd1RpbWVzJiZBcnJheS5pc0FycmF5KGEuYWxsb3dUaW1lcykmJmEuYWxsb3dUaW1lcy5sZW5ndGgpZm9yKG49MDtuPGEuYWxsb3dUaW1lcy5sZW5ndGg7bis9MSlQPWwuc3RydG90aW1lKGEuYWxsb3dUaW1lc1tuXSkuZ2V0SG91cnMoKSxRPWwuc3RydG90aW1lKGEuYWxsb3dUaW1lc1tuXSkuZ2V0TWludXRlcygpLGQoUCxRKTtlbHNlIGZvcihtPW49MDtuPChhLmhvdXJzMTI\/MTI6MjQpO24rPTEpZm9yKG09MDs2MD5tO20rPWEuc3RlcClQPSgxMD5uPyIwIjoiIikrbixRPSgxMD5tPyIwIjoiIikrbSxkKFAsUSk7ei5odG1sKFgpOwpyPSIiO249MDtmb3Iobj1wYXJzZUludChhLnllYXJTdGFydCwxMCkrYS55ZWFyT2Zmc2V0O248PXBhcnNlSW50KGEueWVhckVuZCwxMCkrYS55ZWFyT2Zmc2V0O24rPTEpcis9JzxkaXYgY2xhc3M9Inhkc29mdF9vcHRpb24gJysobC5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpPT09bj8ieGRzb2Z0X2N1cnJlbnQiOiIiKSsnIiBkYXRhLXZhbHVlPSInK24rJyI+JytuKyI8L2Rpdj4iO04uY2hpbGRyZW4oKS5lcSgwKS5odG1sKHIpO249cGFyc2VJbnQoYS5tb250aFN0YXJ0LDEwKTtmb3Iocj0iIjtuPD1wYXJzZUludChhLm1vbnRoRW5kLDEwKTtuKz0xKXIrPSc8ZGl2IGNsYXNzPSJ4ZHNvZnRfb3B0aW9uICcrKGwuY3VycmVudFRpbWUuZ2V0TW9udGgoKT09PW4\/Inhkc29mdF9jdXJyZW50IjoiIikrJyIgZGF0YS12YWx1ZT0iJytuKyciPicrYS5pMThuW0ddLm1vbnRoc1tuXSsiPC9kaXY+IjtCLmNoaWxkcmVuKCkuZXEoMCkuaHRtbChyKTtmKGMpLnRyaWdnZXIoImdlbmVyYXRlLnhkc29mdCIpfSwKMTApO2Iuc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiYWZ0ZXJPcGVuLnhkc29mdCIsZnVuY3Rpb24oKXtpZihhLnRpbWVwaWNrZXIpe3ZhciBiO3ouZmluZCgiLnhkc29mdF9jdXJyZW50IikubGVuZ3RoP2I9Ii54ZHNvZnRfY3VycmVudCI6ei5maW5kKCIueGRzb2Z0X2luaXRfdGltZSIpLmxlbmd0aCYmKGI9Ii54ZHNvZnRfaW5pdF90aW1lIik7aWYoYil7dmFyIGQ9eVswXS5jbGllbnRIZWlnaHQsaz16WzBdLm9mZnNldEhlaWdodDtiPXouZmluZChiKS5pbmRleCgpKmEudGltZUhlaWdodEluVGltZVBpY2tlcisxO2stZDxiJiYoYj1rLWQpO3kudHJpZ2dlcigic2Nyb2xsX2VsZW1lbnQueGRzb2Z0X3Njcm9sbGVyIixbcGFyc2VJbnQoYiwxMCkvKGstZCldKX1lbHNlIHkudHJpZ2dlcigic2Nyb2xsX2VsZW1lbnQueGRzb2Z0X3Njcm9sbGVyIixbMF0pfX0pO3ZhciBaPTA7RS5vbigiY2xpY2sueGRzb2Z0IiwidGQiLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCk7Wis9MTt2YXIgZD0KZih0aGlzKSxrPWwuY3VycmVudFRpbWU7aWYodm9pZCAwPT09a3x8bnVsbD09PWspbC5jdXJyZW50VGltZT1sLm5vdygpLGs9bC5jdXJyZW50VGltZTtpZihkLmhhc0NsYXNzKCJ4ZHNvZnRfZGlzYWJsZWQiKSlyZXR1cm4hMTtrLnNldERhdGUoMSk7ay5zZXRGdWxsWWVhcihkLmRhdGEoInllYXIiKSk7ay5zZXRNb250aChkLmRhdGEoIm1vbnRoIikpO2suc2V0RGF0ZShkLmRhdGEoImRhdGUiKSk7Yy50cmlnZ2VyKCJzZWxlY3QueGRzb2Z0Iixba10pO2UudmFsKGwuc3RyKCkpO2Eub25TZWxlY3REYXRlJiZpc0Z1bmN0aW9uKGEub25TZWxlY3REYXRlKSYmYS5vblNlbGVjdERhdGUuY2FsbChjLGwuY3VycmVudFRpbWUsYy5kYXRhKCJpbnB1dCIpLGIpO2MuZGF0YSgiY2hhbmdlZCIsITApO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKTtjLnRyaWdnZXIoImNoYW5nZWRhdGV0aW1lLnhkc29mdCIpOygxPFp8fCEwPT09YS5jbG9zZU9uRGF0ZVNlbGVjdHx8ITE9PT1hLmNsb3NlT25EYXRlU2VsZWN0JiYKIWEudGltZXBpY2tlcikmJiFhLmlubGluZSYmYy50cmlnZ2VyKCJjbG9zZS54ZHNvZnQiKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Wj0wfSwyMDApfSk7ei5vbigiY2xpY2sueGRzb2Z0IiwiZGl2IixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBkPWYodGhpcyksaz1sLmN1cnJlbnRUaW1lO2lmKHZvaWQgMD09PWt8fG51bGw9PT1rKWwuY3VycmVudFRpbWU9bC5ub3coKSxrPWwuY3VycmVudFRpbWU7aWYoZC5oYXNDbGFzcygieGRzb2Z0X2Rpc2FibGVkIikpcmV0dXJuITE7ay5zZXRIb3VycyhkLmRhdGEoImhvdXIiKSk7ay5zZXRNaW51dGVzKGQuZGF0YSgibWludXRlIikpO2MudHJpZ2dlcigic2VsZWN0Lnhkc29mdCIsW2tdKTtjLmRhdGEoImlucHV0IikudmFsKGwuc3RyKCkpO2Eub25TZWxlY3RUaW1lJiZpc0Z1bmN0aW9uKGEub25TZWxlY3RUaW1lKSYmYS5vblNlbGVjdFRpbWUuY2FsbChjLGwuY3VycmVudFRpbWUsYy5kYXRhKCJpbnB1dCIpLGIpO2MuZGF0YSgiY2hhbmdlZCIsCiEwKTtjLnRyaWdnZXIoInhjaGFuZ2UueGRzb2Z0Iik7Yy50cmlnZ2VyKCJjaGFuZ2VkYXRldGltZS54ZHNvZnQiKTshMCE9PWEuaW5saW5lJiYhMD09PWEuY2xvc2VPblRpbWVTZWxlY3QmJmMudHJpZ2dlcigiY2xvc2UueGRzb2Z0Iil9KTt1Lm9uKCJtb3VzZXdoZWVsLnhkc29mdCIsZnVuY3Rpb24oYil7aWYoIWEuc2Nyb2xsTW9udGgpcmV0dXJuITA7MD5iLmRlbHRhWT9sLm5leHRNb250aCgpOmwucHJldk1vbnRoKCk7cmV0dXJuITF9KTtlLm9uKCJtb3VzZXdoZWVsLnhkc29mdCIsZnVuY3Rpb24oYil7aWYoIWEuc2Nyb2xsSW5wdXQpcmV0dXJuITA7aWYoIWEuZGF0ZXBpY2tlciYmYS50aW1lcGlja2VyKXJldHVybiBVPXouZmluZCgiLnhkc29mdF9jdXJyZW50IikubGVuZ3RoP3ouZmluZCgiLnhkc29mdF9jdXJyZW50IikuZXEoMCkuaW5kZXgoKTowLDA8PVUrYi5kZWx0YVkmJlUrYi5kZWx0YVk8ei5jaGlsZHJlbigpLmxlbmd0aCYmKFUrPWIuZGVsdGFZKSx6LmNoaWxkcmVuKCkuZXEoVSkubGVuZ3RoJiYKei5jaGlsZHJlbigpLmVxKFUpLnRyaWdnZXIoIm1vdXNlZG93biIpLCExO2lmKGEuZGF0ZXBpY2tlciYmIWEudGltZXBpY2tlcilyZXR1cm4gdS50cmlnZ2VyKGIsW2IuZGVsdGFZLGIuZGVsdGFYLGIuZGVsdGFZXSksZS52YWwmJmUudmFsKGwuc3RyKCkpLGMudHJpZ2dlcigiY2hhbmdlZGF0ZXRpbWUueGRzb2Z0IiksITF9KTtjLm9uKCJjaGFuZ2VkYXRldGltZS54ZHNvZnQiLGZ1bmN0aW9uKGIpe2lmKGEub25DaGFuZ2VEYXRlVGltZSYmaXNGdW5jdGlvbihhLm9uQ2hhbmdlRGF0ZVRpbWUpKXt2YXIgZD1jLmRhdGEoImlucHV0Iik7YS5vbkNoYW5nZURhdGVUaW1lLmNhbGwoYyxsLmN1cnJlbnRUaW1lLGQsYik7ZGVsZXRlIGEudmFsdWU7ZC50cmlnZ2VyKCJjaGFuZ2UiKX19KS5vbigiZ2VuZXJhdGUueGRzb2Z0IixmdW5jdGlvbigpe2Eub25HZW5lcmF0ZSYmaXNGdW5jdGlvbihhLm9uR2VuZXJhdGUpJiZhLm9uR2VuZXJhdGUuY2FsbChjLGwuY3VycmVudFRpbWUsYy5kYXRhKCJpbnB1dCIpKTsKTyYmKGMudHJpZ2dlcigiYWZ0ZXJPcGVuLnhkc29mdCIpLE89ITEpfSkub24oImNsaWNrLnhkc29mdCIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKX0pO3ZhciBVPTAsYWE9ZnVuY3Rpb24oKXt2YXIgYj1jLmRhdGEoImlucHV0Iikub2Zmc2V0KCksZD1iLnRvcCtjLmRhdGEoImlucHV0IilbMF0ub2Zmc2V0SGVpZ2h0LTEsaz1iLmxlZnQsbj0iYWJzb2x1dGUiOyJydGwiPT1jLmRhdGEoImlucHV0IikucGFyZW50KCkuY3NzKCJkaXJlY3Rpb24iKSYmKGstPWMub3V0ZXJXaWR0aCgpLWMuZGF0YSgiaW5wdXQiKS5vdXRlcldpZHRoKCkpO2EuZml4ZWQ\/KGQtPWYod2luZG93KS5zY3JvbGxUb3AoKSxrLT1mKHdpbmRvdykuc2Nyb2xsTGVmdCgpLG49ImZpeGVkIik6KGQrY1swXS5vZmZzZXRIZWlnaHQ+Zih3aW5kb3cpLmhlaWdodCgpK2Yod2luZG93KS5zY3JvbGxUb3AoKSYmKGQ9Yi50b3AtY1swXS5vZmZzZXRIZWlnaHQrMSksMD5kJiYoZD0wKSxrK2NbMF0ub2Zmc2V0V2lkdGg+CmYod2luZG93KS53aWR0aCgpJiYoaz1mKHdpbmRvdykud2lkdGgoKS1jWzBdLm9mZnNldFdpZHRoKSk7Yj1jWzBdO2RvIGlmKGI9Yi5wYXJlbnROb2RlLCJyZWxhdGl2ZSI9PT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShiKS5nZXRQcm9wZXJ0eVZhbHVlKCJwb3NpdGlvbiIpJiZmKHdpbmRvdykud2lkdGgoKT49Yi5vZmZzZXRXaWR0aCl7ay09KGYod2luZG93KS53aWR0aCgpLWIub2Zmc2V0V2lkdGgpLzI7YnJlYWt9d2hpbGUoIkhUTUwiIT09Yi5ub2RlTmFtZSk7Yy5jc3Moe2xlZnQ6ayx0b3A6ZCxwb3NpdGlvbjpufSl9O2Mub24oIm9wZW4ueGRzb2Z0IixmdW5jdGlvbihiKXt2YXIgZD0hMDthLm9uU2hvdyYmaXNGdW5jdGlvbihhLm9uU2hvdykmJihkPWEub25TaG93LmNhbGwoYyxsLmN1cnJlbnRUaW1lLGMuZGF0YSgiaW5wdXQiKSxiKSk7aWYoITEhPT1kJiYoYy5zaG93KCksYWEoKSxmKHdpbmRvdykub2ZmKCJyZXNpemUueGRzb2Z0IixhYSkub24oInJlc2l6ZS54ZHNvZnQiLAphYSksYS5jbG9zZU9uV2l0aG91dENsaWNrKSlmKFtkb2N1bWVudC5ib2R5LHdpbmRvd10pLm9uKCJtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbiBuKCl7Yy50cmlnZ2VyKCJjbG9zZS54ZHNvZnQiKTtmKFtkb2N1bWVudC5ib2R5LHdpbmRvd10pLm9mZigibW91c2Vkb3duLnhkc29mdCIsbil9KX0pLm9uKCJjbG9zZS54ZHNvZnQiLGZ1bmN0aW9uKGIpe3ZhciBkPSEwO3cuZmluZCgiLnhkc29mdF9tb250aCwueGRzb2Z0X3llYXIiKS5maW5kKCIueGRzb2Z0X3NlbGVjdCIpLmhpZGUoKTthLm9uQ2xvc2UmJmlzRnVuY3Rpb24oYS5vbkNsb3NlKSYmKGQ9YS5vbkNsb3NlLmNhbGwoYyxsLmN1cnJlbnRUaW1lLGMuZGF0YSgiaW5wdXQiKSxiKSk7ITE9PT1kfHxhLm9wZW5lZHx8YS5pbmxpbmV8fGMuaGlkZSgpO2Iuc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigidG9nZ2xlLnhkc29mdCIsZnVuY3Rpb24oYil7Yy5pcygiOnZpc2libGUiKT9jLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpOmMudHJpZ2dlcigib3Blbi54ZHNvZnQiKX0pLmRhdGEoImlucHV0IiwKZSk7Vz0wO2MuZGF0YSgieGRzb2Z0X2RhdGV0aW1lIixsKTtjLnNldE9wdGlvbnMoYSk7bC5zZXRDdXJyZW50VGltZShoKCkpO2UuZGF0YSgieGRzb2Z0X2RhdGV0aW1lcGlja2VyIixjKS5vbigib3Blbi54ZHNvZnQgZm9jdXNpbi54ZHNvZnQgbW91c2Vkb3duLnhkc29mdCIsZnVuY3Rpb24oYil7ZS5pcygiOmRpc2FibGVkIil8fGUuZGF0YSgieGRzb2Z0X2RhdGV0aW1lcGlja2VyIikuaXMoIjp2aXNpYmxlIikmJmEuY2xvc2VPbklucHV0Q2xpY2t8fChjbGVhclRpbWVvdXQoVyksVz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5pcygiOmRpc2FibGVkIil8fChPPSEwLGwuc2V0Q3VycmVudFRpbWUoaCgpKSxjLnRyaWdnZXIoIm9wZW4ueGRzb2Z0IikpfSwxMDApKX0pLm9uKCJrZXlkb3duLnhkc29mdCIsZnVuY3Rpb24oYil7Yj1iLndoaWNoO2lmKC0xIT09WzEzXS5pbmRleE9mKGIpJiZhLmVudGVyTGlrZVRhYilyZXR1cm4gYj1mKCJpbnB1dDp2aXNpYmxlLHRleHRhcmVhOnZpc2libGUiKSwKYy50cmlnZ2VyKCJjbG9zZS54ZHNvZnQiKSxiLmVxKGIuaW5kZXgodGhpcykrMSkuZm9jdXMoKSwhMTtpZigtMSE9PVs5XS5pbmRleE9mKGIpKXJldHVybiBjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpLCEwfSl9O2YoZG9jdW1lbnQpLm9mZigia2V5ZG93bi54ZHNvZnRjdHJsIGtleXVwLnhkc29mdGN0cmwiKS5vbigia2V5ZG93bi54ZHNvZnRjdHJsIixmdW5jdGlvbihlKXsxNz09PWUua2V5Q29kZSYmKHY9ITApfSkub24oImtleXVwLnhkc29mdGN0cmwiLGZ1bmN0aW9uKGUpezE3PT09ZS5rZXlDb2RlJiYodj0hMSl9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9Zih0aGlzKS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKTtpZihlKXtpZigic3RyaW5nIj09PXR5cGVvZiByKXN3aXRjaChyKXtjYXNlICJzaG93IjpmKHRoaXMpLnNlbGVjdCgpLmZvY3VzKCk7ZS50cmlnZ2VyKCJvcGVuLnhkc29mdCIpO2JyZWFrO2Nhc2UgImhpZGUiOmUudHJpZ2dlcigiY2xvc2UueGRzb2Z0Iik7CmJyZWFrO2Nhc2UgInRvZ2dsZSI6ZS50cmlnZ2VyKCJ0b2dnbGUueGRzb2Z0Iik7YnJlYWs7Y2FzZSAiZGVzdHJveSI6ZT1mKHRoaXMpO3ZhciBoPWUuZGF0YSgieGRzb2Z0X2RhdGV0aW1lcGlja2VyIik7aCYmKGguZGF0YSgieGRzb2Z0X2RhdGV0aW1lIixudWxsKSxoLnJlbW92ZSgpLGUuZGF0YSgieGRzb2Z0X2RhdGV0aW1lcGlja2VyIixudWxsKS5vZmYoIi54ZHNvZnQiKSxmKHdpbmRvdykub2ZmKCJyZXNpemUueGRzb2Z0IiksZihbd2luZG93LGRvY3VtZW50LmJvZHldKS5vZmYoIm1vdXNlZG93bi54ZHNvZnQiKSxlLnVubW91c2V3aGVlbCYmZS51bm1vdXNld2hlZWwoKSk7YnJlYWs7Y2FzZSAicmVzZXQiOih0aGlzLnZhbHVlPXRoaXMuZGVmYXVsdFZhbHVlKSYmZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWUiKS5pc1ZhbGlkRGF0ZShEYXRlLnBhcnNlRGF0ZSh0aGlzLnZhbHVlLGEuZm9ybWF0KSl8fGUuZGF0YSgiY2hhbmdlZCIsITEpO2UuZGF0YSgieGRzb2Z0X2RhdGV0aW1lIikuc2V0Q3VycmVudFRpbWUodGhpcy52YWx1ZSk7CmJyZWFrO2Nhc2UgInZhbGlkYXRlIjplPWUuZGF0YSgiaW5wdXQiKSxlLnRyaWdnZXIoImJsdXIueGRzb2Z0Iil9ZWxzZSBlLnNldE9wdGlvbnMocik7cmV0dXJuIDB9InN0cmluZyIhPT10eXBlb2YgciYmKCFhLmxhenlJbml0fHxhLm9wZW58fGEuaW5saW5lP2coZih0aGlzKSk6SShmKHRoaXMpKSl9KX07Zi5mbi5kYXRldGltZXBpY2tlci5kZWZhdWx0cz1KfSk7CihmdW5jdGlvbihmKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmKToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWY6ZihqUXVlcnkpfSkoZnVuY3Rpb24oZil7ZnVuY3Rpb24gTShlKXt2YXIgaD1lfHx3aW5kb3cuZXZlbnQsYz12LmNhbGwoYXJndW1lbnRzLDEpLHQ9MCx1PTAsdz0wLEU9MDtlPWYuZXZlbnQuZml4KGgpO2UudHlwZT0ibW91c2V3aGVlbCI7ImRldGFpbCJpbiBoJiYodT0tMSpoLmRldGFpbCk7IndoZWVsRGVsdGEiaW4gaCYmKHU9aC53aGVlbERlbHRhKTsid2hlZWxEZWx0YVkiaW4gaCYmKHU9aC53aGVlbERlbHRhWSk7IndoZWVsRGVsdGFYImluIGgmJih0PS0xKmgud2hlZWxEZWx0YVgpOyJheGlzImluIGgmJmguYXhpcz09PWguSE9SSVpPTlRBTF9BWElTJiYodD0tMSp1LHU9MCk7dmFyIEM9MD09PXU\/dDp1OyJkZWx0YVkiaW4gaCYmKEM9dT0tMSpoLmRlbHRhWSk7ImRlbHRhWCJpbgpoJiYodD1oLmRlbHRhWCwwPT09dSYmKEM9LTEqdCkpO2lmKDAhPT11fHwwIT09dCl7aWYoMT09PWguZGVsdGFNb2RlKXt2YXIgeT1mLmRhdGEodGhpcywibW91c2V3aGVlbC1saW5lLWhlaWdodCIpO0MqPXk7dSo9eTt0Kj15fWVsc2UgMj09PWguZGVsdGFNb2RlJiYoeT1mLmRhdGEodGhpcywibW91c2V3aGVlbC1wYWdlLWhlaWdodCIpLEMqPXksdSo9eSx0Kj15KTt5PU1hdGgubWF4KE1hdGguYWJzKHUpLE1hdGguYWJzKHQpKTtpZighRHx8eTxEKUQ9eSxnLnNldHRpbmdzLmFkanVzdE9sZERlbHRhcyYmIm1vdXNld2hlZWwiPT09aC50eXBlJiYwPT09eSUxMjAmJihELz00MCk7Zy5zZXR0aW5ncy5hZGp1c3RPbGREZWx0YXMmJiJtb3VzZXdoZWVsIj09PWgudHlwZSYmMD09PXklMTIwJiYoQy89NDAsdC89NDAsdS89NDApO0M9TWF0aFsxPD1DPyJmbG9vciI6ImNlaWwiXShDL0QpO3Q9TWF0aFsxPD10PyJmbG9vciI6ImNlaWwiXSh0L0QpO3U9TWF0aFsxPD11PyJmbG9vciI6ImNlaWwiXSh1LwpEKTtnLnNldHRpbmdzLm5vcm1hbGl6ZU9mZnNldCYmdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QmJihoPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdz1lLmNsaWVudFgtaC5sZWZ0LEU9ZS5jbGllbnRZLWgudG9wKTtlLmRlbHRhWD10O2UuZGVsdGFZPXU7ZS5kZWx0YUZhY3Rvcj1EO2Uub2Zmc2V0WD13O2Uub2Zmc2V0WT1FO2UuZGVsdGFNb2RlPTA7Yy51bnNoaWZ0KGUsQyx0LHUpO2EmJmNsZWFyVGltZW91dChhKTthPXNldFRpbWVvdXQoSiwyMDApO3JldHVybihmLmV2ZW50LmRpc3BhdGNofHxmLmV2ZW50LmhhbmRsZSkuYXBwbHkodGhpcyxjKX19ZnVuY3Rpb24gSigpe0Q9bnVsbH12YXIgRz1bIndoZWVsIiwibW91c2V3aGVlbCIsIkRPTU1vdXNlU2Nyb2xsIiwiTW96TW91c2VQaXhlbFNjcm9sbCJdLHI9Im9ud2hlZWwiaW4gZG9jdW1lbnR8fDk8PWRvY3VtZW50LmRvY3VtZW50TW9kZT9bIndoZWVsIl06WyJtb3VzZXdoZWVsIiwiRG9tTW91c2VTY3JvbGwiLCJNb3pNb3VzZVBpeGVsU2Nyb2xsIl0sCnY9QXJyYXkucHJvdG90eXBlLnNsaWNlLGEsRDtpZihmLmV2ZW50LmZpeEhvb2tzKWZvcih2YXIgST1HLmxlbmd0aDtJOylmLmV2ZW50LmZpeEhvb2tzW0dbLS1JXV09Zi5ldmVudC5tb3VzZUhvb2tzO3ZhciBnPWYuZXZlbnQuc3BlY2lhbC5tb3VzZXdoZWVsPXt2ZXJzaW9uOiIzLjEuMTIiLHNldHVwOmZ1bmN0aW9uKCl7aWYodGhpcy5hZGRFdmVudExpc3RlbmVyKWZvcih2YXIgZT1yLmxlbmd0aDtlOyl0aGlzLmFkZEV2ZW50TGlzdGVuZXIoclstLWVdLE0sITEpO2Vsc2UgdGhpcy5vbm1vdXNld2hlZWw9TTtmLmRhdGEodGhpcywibW91c2V3aGVlbC1saW5lLWhlaWdodCIsZy5nZXRMaW5lSGVpZ2h0KHRoaXMpKTtmLmRhdGEodGhpcywibW91c2V3aGVlbC1wYWdlLWhlaWdodCIsZy5nZXRQYWdlSGVpZ2h0KHRoaXMpKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtpZih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIpZm9yKHZhciBlPXIubGVuZ3RoO2U7KXRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihyWy0tZV0sCk0sITEpO2Vsc2UgdGhpcy5vbm1vdXNld2hlZWw9bnVsbDtmLnJlbW92ZURhdGEodGhpcywibW91c2V3aGVlbC1saW5lLWhlaWdodCIpO2YucmVtb3ZlRGF0YSh0aGlzLCJtb3VzZXdoZWVsLXBhZ2UtaGVpZ2h0Iil9LGdldExpbmVIZWlnaHQ6ZnVuY3Rpb24oZSl7ZT1mKGUpO3ZhciBoPWVbIm9mZnNldFBhcmVudCJpbiBmLmZuPyJvZmZzZXRQYXJlbnQiOiJwYXJlbnQiXSgpO2gubGVuZ3RofHwoaD1mKCJib2R5IikpO3JldHVybiBwYXJzZUludChoLmNzcygiZm9udFNpemUiKSwxMCl8fHBhcnNlSW50KGUuY3NzKCJmb250U2l6ZSIpLDEwKXx8MTZ9LGdldFBhZ2VIZWlnaHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGYoZSkuaGVpZ2h0KCl9LHNldHRpbmdzOnthZGp1c3RPbGREZWx0YXM6ITAsbm9ybWFsaXplT2Zmc2V0OiEwfX07Zi5mbi5leHRlbmQoe21vdXNld2hlZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU\/dGhpcy5vbigibW91c2V3aGVlbCIsZSk6dGhpcy50cmlnZ2VyKCJtb3VzZXdoZWVsIil9LAp1bm1vdXNld2hlZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub2ZmKCJtb3VzZXdoZWVsIixlKX19KX0pOwohZnVuY3Rpb24oZil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFtdLGYpOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZjpmKCl9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZihnKXtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBoPVtdLGM9MCx0PWcubGVuZ3RoO2M8dDtjKyspaC5wdXNoKCJzdHJpbmciPT09dHlwZW9mIGdbY10\/Z1tjXTpnW2NdKGUpKTtyZXR1cm4gaC5qb2luKCIiKX19ZnVuY3Rpb24gTShnLGUsaCl7cmV0dXJuIGZ1bmN0aW9uKGMpe3ZhciB0PW5ldyBEYXRlO2lmKChjPWMubWF0Y2goYVtlXSkpJiYwPGMubGVuZ3RoKXtjLnk9dC5nZXRGdWxsWWVhcigpO2MubT10LmdldE1vbnRoKCk7Yy5kPXQuZ2V0RGF0ZSgpO2MuaD0tMTtjLmk9LTE7Yy5zPS0xO3Q9MDtmb3IodmFyIHU9aC5sZW5ndGg7dDx1O3QrKyloW3RdKGMpO2lmKDA8Yy55JiYwPD1jLm0mJjA8Yy5kJiYwPD1jLmgmJjA8PWMuaSYmMDw9Yy5zKXJldHVybiBuZXcgRGF0ZShjLnksCmMubSxjLmQsYy5oLGMuaSxjLnMpO2lmKDA8Yy55JiYwPD1jLm0mJjA8Yy5kJiYwPD1jLmgmJjA8PWMuaSlyZXR1cm4gbmV3IERhdGUoYy55LGMubSxjLmQsYy5oLGMuaSk7aWYoMDxjLnkmJjA8PWMubSYmMDxjLmQmJjA8PWMuaClyZXR1cm4gbmV3IERhdGUoYy55LGMubSxjLmQsYy5oKTtpZigwPGMueSYmMDw9Yy5tJiYwPGMuZClyZXR1cm4gbmV3IERhdGUoYy55LGMubSxjLmQpO2lmKDA8Yy55JiYwPD1jLm0pcmV0dXJuIG5ldyBEYXRlKGMueSxjLm0pO2lmKDA8Yy55KXJldHVybiBuZXcgRGF0ZShjLnkpfXJldHVybiBudWxsfX1mdW5jdGlvbiBKKGcsZSl7c3dpdGNoKGcpe2Nhc2UgIkQiOnJldHVybntnOjAsczoiKD86U3VufE1vbnxUdWV8V2VkfFRodXxGcml8U2F0KSJ9O2Nhc2UgImoiOmNhc2UgImQiOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXtoLmQ9cGFyc2VJbnQoaFtlXSwxMCl9LHM6IihcXGR7MSwyfSkifTtjYXNlICJsIjpyZXR1cm57ZzowLHM6Iig\/OiIrRGF0ZS5kYXlOYW1lcy5qb2luKCJ8IikrCiIpIn07Y2FzZSAiUyI6cmV0dXJue2c6MCxzOiIoPzpzdHxuZHxyZHx0aCkifTtjYXNlICJ3IjpyZXR1cm57ZzowLHM6IlxcZCJ9O2Nhc2UgInoiOnJldHVybntnOjAsczoiKD86XFxkezEsM30pIn07Y2FzZSAiVyI6cmV0dXJue2c6MCxzOiIoPzpcXGR7Mn0pIn07Y2FzZSAiRiI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2gubT1wYXJzZUludChEYXRlLm1vbnRoTnVtYmVyc1toW2VdLnN1YnN0cmluZygwLDMpXSwxMCl9LHM6IigiK0RhdGUubW9udGhOYW1lcy5qb2luKCJ8IikrIikifTtjYXNlICJNIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7aC5tPXBhcnNlSW50KERhdGUubW9udGhOdW1iZXJzW2hbZV1dLDEwKX0sczoiKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSJ9O2Nhc2UgIm4iOmNhc2UgIm0iOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXtoLm09cGFyc2VJbnQoaFtlXSwxMCktMX0sczoiKFxcZHsxLDJ9KSJ9O2Nhc2UgInQiOnJldHVybntnOjAsCnM6IlxcZHsxLDJ9In07Y2FzZSAiTCI6cmV0dXJue2c6MCxzOiIoPzoxfDApIn07Y2FzZSAiWSI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2gueT1wYXJzZUludChoW2VdLDEwKX0sczoiKFxcZHs0fSkifTtjYXNlICJ5IjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7dmFyIGM9cGFyc2VJbnQoaFtlXSwxMCk7aC55PWM+RGF0ZS55MmtZZWFyPzE5MDArYzoyRTMrY30sczoiKFxcZHsxLDJ9KSJ9O2Nhc2UgImEiOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXsiYW0iPT09aFtlXT8xMj09aC5oJiYoaC5oPTApOjEyPmguaCYmKGguaCs9MTIpfSxzOiIoYW18cG0pIn07Y2FzZSAiQSI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpeyJBTSI9PT1oW2VdPzEyPT1oLmgmJihoLmg9MCk6MTI+aC5oJiYoaC5oKz0xMil9LHM6IihBTXxQTSkifTtjYXNlICJnIjpjYXNlICJHIjpjYXNlICJoIjpjYXNlICJIIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7aC5oPXBhcnNlSW50KGhbZV0sMTApfSxzOiIoXFxkezEsMn0pIn07CmNhc2UgImkiOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXtoLmk9cGFyc2VJbnQoaFtlXSwxMCl9LHM6IihcXGR7Mn0pIn07Y2FzZSAicyI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2gucz1wYXJzZUludChoW2VdLDEwKX0sczoiKFxcZHsyfSkifTtjYXNlICJPIjpyZXR1cm57ZzowLHM6IlsrLV1cXGR7NH0ifTtjYXNlICJUIjpyZXR1cm57ZzowLHM6IltBLVpdezN9In07Y2FzZSAiWiI6cmV0dXJue2c6MCxzOiJbKy1dXFxkezEsNX0ifTtkZWZhdWx0OnJldHVybntnOjAsczpHKGcpfX19ZnVuY3Rpb24gRyhnKXtyZXR1cm4gZy5yZXBsYWNlKC8oJ3xcXCkvZywiXFwkMSIpfWZ1bmN0aW9uIHIoZyxlLGgpe2c9IiIrZztmb3IoaD0iIitofHwiICI7Zy5sZW5ndGg8ZTspZz1oK2c7cmV0dXJuIGd9dmFyIHY9e30sYT1bXSxEPXt9LEk9e2Q6ZnVuY3Rpb24oZyl7cmV0dXJuIHIoZy5nZXREYXRlKCksMiwiMCIpfSxEOmZ1bmN0aW9uKGcpe3JldHVybiBEYXRlLmRheU5hbWVzW2cuZ2V0RGF5KCldLnN1YnN0cmluZygwLAozKX0sajpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXREYXRlKCl9LGw6ZnVuY3Rpb24oZyl7cmV0dXJuIERhdGUuZGF5TmFtZXNbZy5nZXREYXkoKV19LFM6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0U3VmZml4KCl9LHc6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0RGF5KCl9LHo6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0RGF5T2ZZZWFyKCl9LFc6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0V2Vla09mWWVhcigpfSxGOmZ1bmN0aW9uKGcpe3JldHVybiBEYXRlLm1vbnRoTmFtZXNbZy5nZXRNb250aCgpXX0sbTpmdW5jdGlvbihnKXtyZXR1cm4gcihnLmdldE1vbnRoKCkrMSwyLCIwIil9LE06ZnVuY3Rpb24oZyl7cmV0dXJuIERhdGUubW9udGhOYW1lc1tnLmdldE1vbnRoKCldLnN1YnN0cmluZygwLDMpfSxuOmZ1bmN0aW9uKGcpe3JldHVybiBnLmdldE1vbnRoKCkrMX0sdDpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXREYXlzSW5Nb250aCgpfSxMOmZ1bmN0aW9uKGcpe3JldHVybiBnLmlzTGVhcFllYXIoKT8KMTowfSxZOmZ1bmN0aW9uKGcpe3JldHVybiBnLmdldEZ1bGxZZWFyKCl9LHk6ZnVuY3Rpb24oZyl7cmV0dXJuKCIiK2cuZ2V0RnVsbFllYXIoKSkuc3Vic3RyaW5nKDIsNCl9LGE6ZnVuY3Rpb24oZyl7cmV0dXJuIDEyPmcuZ2V0SG91cnMoKT8iYW0iOiJwbSJ9LEE6ZnVuY3Rpb24oZyl7cmV0dXJuIDEyPmcuZ2V0SG91cnMoKT8iQU0iOiJQTSJ9LGc6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0SG91cnMoKSUxMj9nLmdldEhvdXJzKCklMTI6MTJ9LEc6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0SG91cnMoKX0saDpmdW5jdGlvbihnKXtyZXR1cm4gcihnLmdldEhvdXJzKCklMTI\/Zy5nZXRIb3VycygpJTEyOjEyLDIsIjAiKX0sSDpmdW5jdGlvbihnKXtyZXR1cm4gcihnLmdldEhvdXJzKCksMiwiMCIpfSxpOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0TWludXRlcygpLDIsIjAiKX0sczpmdW5jdGlvbihnKXtyZXR1cm4gcihnLmdldFNlY29uZHMoKSwyLCIwIil9LE86ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0R01UT2Zmc2V0KCl9LApUOmZ1bmN0aW9uKGcpe3JldHVybiBnLmdldFRpbWV6b25lKCl9LFo6ZnVuY3Rpb24oZyl7cmV0dXJuLTYwKmcuZ2V0VGltZXpvbmVPZmZzZXQoKX19O0RhdGUucHJvdG90eXBlLmRhdGVGb3JtYXQ9ZnVuY3Rpb24oZyl7aWYoIURbZ10pe2Zvcih2YXIgZT1bXSxoPSExLGMsdD0wO3Q8Zy5sZW5ndGg7Kyt0KWM9Zy5jaGFyQXQodCksaHx8IlxcIiE9PWM\/aD8oaD0hMSxlLnB1c2goRyhjKSkpOmUucHVzaChJW2NdfHxHKGMpKTpoPSEwO0RbZ109ZihlKX1yZXR1cm4gRFtnXSh0aGlzKX07RGF0ZS5wYXJzZURhdGU9ZnVuY3Rpb24oZyxlKXtpZighdltlXSl7Zm9yKHZhciBoPWEubGVuZ3RoLGM9MSx0PSIiLHU9ITEsdyxFPVtdLEM9MDtDPGUubGVuZ3RoOysrQyl3PWUuY2hhckF0KEMpLHV8fCJcXCIhPT13P3U\/KHU9ITEsdCs9Ryh3KSk6KHc9Sih3LGMpLGMrPXcuZyx0Kz13LnMsdy5nJiZ3LmEmJkUucHVzaCh3LmEpKTp1PSEwO2FbaF09bmV3IFJlZ0V4cCgiXiIrdCsiJCIpO3ZbZV09TShlLApoLEUpfXJldHVybiB2W2VdKGcpfTtEYXRlLnByb3RvdHlwZS5nZXRUaW1lem9uZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKCkucmVwbGFjZSgvXi4qPyAoW0EtWl17M30pIFswLTldezR9LiokLywiJDEiKS5yZXBsYWNlKC9eLio\/XCgoW0EtWl0pW2Etel0rIChbQS1aXSlbYS16XSsgKFtBLVpdKVthLXpdK1wpJC8sIiQxJDIkMyIpfTtEYXRlLnByb3RvdHlwZS5nZXRHTVRPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4oMDx0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCk\/Ii0iOiIrIikrcihNYXRoLmZsb29yKHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKS82MCksMiwiMCIpK3IodGhpcy5nZXRUaW1lem9uZU9mZnNldCgpJTYwLDIsIjAiKX07RGF0ZS5wcm90b3R5cGUuZ2V0RGF5T2ZZZWFyPWZ1bmN0aW9uKCl7dmFyIGc9MDtEYXRlLmRheXNJbk1vbnRoWzFdPXRoaXMuaXNMZWFwWWVhcigpPzI5OjI4O2Zvcih2YXIgZT0wO2U8dGhpcy5nZXRNb250aCgpOysrZSlnKz1EYXRlLmRheXNJbk1vbnRoW2VdOwpyZXR1cm4gZyt0aGlzLmdldERhdGUoKS0xfTtEYXRlLnByb3RvdHlwZS5nZXRXZWVrT2ZZZWFyPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5nZXREYXlPZlllYXIoKSsoNC10aGlzLmdldERheSgpKSxlPTctKG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSwwLDEpKS5nZXREYXkoKSs0O3JldHVybiByKChnLWUpLzcrMSwyLCIwIil9O0RhdGUucHJvdG90eXBlLmlzTGVhcFllYXI9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmdldEZ1bGxZZWFyKCk7cmV0dXJuISgwIT09KGcmMyl8fCEoZyUxMDB8fDA9PT1nJTQwMCYmZykpfTtEYXRlLnByb3RvdHlwZS5nZXRGaXJzdERheU9mTW9udGg9ZnVuY3Rpb24oKXt2YXIgZz0odGhpcy5nZXREYXkoKS0odGhpcy5nZXREYXRlKCktMSkpJTc7cmV0dXJuIDA+Zz9nKzc6Z307RGF0ZS5wcm90b3R5cGUuZ2V0TGFzdERheU9mTW9udGg9ZnVuY3Rpb24oKXt2YXIgZz0odGhpcy5nZXREYXkoKSsoRGF0ZS5kYXlzSW5Nb250aFt0aGlzLmdldE1vbnRoKCldLXRoaXMuZ2V0RGF0ZSgpKSklCjc7cmV0dXJuIDA+Zz9nKzc6Z307RGF0ZS5wcm90b3R5cGUuZ2V0RGF5c0luTW9udGg9ZnVuY3Rpb24oKXtEYXRlLmRheXNJbk1vbnRoWzFdPXRoaXMuaXNMZWFwWWVhcigpPzI5OjI4O3JldHVybiBEYXRlLmRheXNJbk1vbnRoW3RoaXMuZ2V0TW9udGgoKV19O0RhdGUucHJvdG90eXBlLmdldFN1ZmZpeD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLmdldERhdGUoKSl7Y2FzZSAxOmNhc2UgMjE6Y2FzZSAzMTpyZXR1cm4ic3QiO2Nhc2UgMjpjYXNlIDIyOnJldHVybiJuZCI7Y2FzZSAzOmNhc2UgMjM6cmV0dXJuInJkIjtkZWZhdWx0OnJldHVybiJ0aCJ9fTtEYXRlLmRheXNJbk1vbnRoPVszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07RGF0ZS5tb250aE5hbWVzPSJKYW51YXJ5IEZlYnJ1YXJ5IE1hcmNoIEFwcmlsIE1heSBKdW5lIEp1bHkgQXVndXN0IFNlcHRlbWJlciBPY3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpO0RhdGUuZGF5TmFtZXM9IlN1bmRheSBNb25kYXkgVHVlc2RheSBXZWRuZXNkYXkgVGh1cnNkYXkgRnJpZGF5IFNhdHVyZGF5Ii5zcGxpdCgiICIpOwpEYXRlLnkya1llYXI9NTA7RGF0ZS5tb250aE51bWJlcnM9e0phbjowLEZlYjoxLE1hcjoyLEFwcjozLE1heTo0LEp1bjo1LEp1bDo2LEF1Zzo3LFNlcDo4LE9jdDo5LE5vdjoxMCxEZWM6MTF9O0RhdGUucGF0dGVybnM9e0lTTzg2MDFMb25nUGF0dGVybjoiWS1tLWQgSDppOnMiLElTTzg2MDFTaG9ydFBhdHRlcm46IlktbS1kIixTaG9ydERhdGVQYXR0ZXJuOiJuL2ovWSIsTG9uZ0RhdGVQYXR0ZXJuOiJsLCBGIGQsIFkiLEZ1bGxEYXRlVGltZVBhdHRlcm46ImwsIEYgZCwgWSBnOmk6cyBBIixNb250aERheVBhdHRlcm46IkYgZCIsU2hvcnRUaW1lUGF0dGVybjoiZzppIEEiLExvbmdUaW1lUGF0dGVybjoiZzppOnMgQSIsU29ydGFibGVEYXRlVGltZVBhdHRlcm46IlktbS1kXFxUSDppOnMiLFVuaXZlcnNhbFNvcnRhYmxlRGF0ZVRpbWVQYXR0ZXJuOiJZLW0tZCBIOmk6c08iLFllYXJNb250aFBhdHRlcm46IkYsIFkifX0pOwovKiogL2pzL21haWxTY2hlZHVsZS4yLjAuanMgKiovCnZhciBfX19kMmNfbWFpbFNjaGVkdWxlMjBqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjEwIjsndXNlIHN0cmljdCc7bGV0IGRlYWxlclN0b3JlSG91cnM9e307CmZ1bmN0aW9uIE1haWxTY2hlZHVsZShoKXt2YXIgYz17Zmlyc3RDaG9pY2U6IiIsc2Vjb25kQ2hvaWNlOiIiLHdhaXRpbmdPblNpdGU6IiIsdHJhbnNwb3J0T3B0aW9uOiIiLHNjb3BlOmguc2NvcGUsZmlyc3RDaG9pY2VPYmplY3RJZDoiZmlyc3REYXRlIixzZWNvbmRDaG9pY2VPYmplY3RJZDoic2Vjb25kRGF0ZSIsZmlyc3RIb3VyU2VsZWN0OiJmaXJzdERhdGVTZWxlY3QiLHNlY29uZEhvdXJTZWxlY3Q6InNlY29uZERhdGVTZWxlY3QiLHNldHVwRGF0ZTpmdW5jdGlvbihhLGIsZCl7dmFyIGU9JCgiIyIrYSksZz1uZXcgRGF0ZTtjLmlzRGF0ZShiKXx8KGI9bmV3IERhdGUpO2MuaXNEYXRlKGQpfHwoZD1uZXcgRGF0ZShnLmdldFRpbWUoKStjLmRheVRvTWlsbGlzZWNvbmRzKDMwKSkpO3ZhciBrPW5ldyBEYXRlO2suc2V0TWludXRlcyhrLmdldE1pbnV0ZXMoKSszMCk7ZS5vbigia2V5ZG93biIsZnVuY3Rpb24oZil7Zi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiExfSk7ZS5kYXRhKCJkYXRldGltZXBpY2tlck9wdGlvbnMiLAp7ZGF0ZVNlbGVjdGVkOiExLHRpbWVTZWxlY3RlZDohMX0pOyQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSYmIkVOR0xJU0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwkLmRhdGV0aW1lcGlja2VyLnNldExvY2FsZSgiZnIiKTtlLmRhdGV0aW1lcGlja2VyKCQuZXh0ZW5kKHt9LHAse2lkOmErIl9kYXRlVGltZVBpY2tlciIsbWluRGF0ZTpiLG1heERhdGU6ZCxkaXNhYmxlZERhdGVzOmMuZ2V0Q2xvc2VkRGF0ZXNCZXR3ZWVuKGIsZCksb25DaGFuZ2VEYXRlVGltZTpmdW5jdGlvbihmKXtudWxsIT1mJiZmLnRvRGF0ZVN0cmluZygpPT09Zy50b0RhdGVTdHJpbmcoKT90aGlzLnNldE9wdGlvbnMoe21pblRpbWU6ay5kYXRlRm9ybWF0KCJIOmkiKX0pOnRoaXMuc2V0T3B0aW9ucyh7bWluVGltZTohMX0pfSxvblNob3c6ZnVuY3Rpb24oZil7Zj0kKHRoaXMpLmRhdGEoKS5vcHRpb25zLmRhdGVTZWxlY3RlZD8kKHRoaXMpLmRhdGEoKS5vcHRpb25zLnZhbHVlOmI7CmMudXBkYXRlSG91cnMoZixhKX19KSl9LGluaXQ6ZnVuY3Rpb24oKXt2YXIgYT1jLmdldFBpY2tlckRhdGVSYW5nZSgpO2lmKDE+JChjLnNjb3BlKS5sZW5ndGgpcmV0dXJuIHNldFRpbWVvdXQoYy5pbml0LDFFNCk7aWYoISQoYy5zY29wZSkuaXMoIjp2aXNpYmxlIikpcmV0dXJuIHNldFRpbWVvdXQoYy5pbml0LDFFMyk7YT8oJCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS5wcm9wKCJkaXNhYmxlZCIsITEpLCQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpLnByb3AoImRpc2FibGVkIiwhMSksYy5zZXR1cERhdGUoYy5maXJzdENob2ljZU9iamVjdElkLGEuc3RhcnREYXRlLGEuZW5kRGF0ZSksYy5zZXR1cERhdGUoYy5zZWNvbmRDaG9pY2VPYmplY3RJZCxhLnN0YXJ0RGF0ZSxhLmVuZERhdGUpKTooJCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS5wcm9wKCJkaXNhYmxlZCIsITApLCQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCkuY2xvc2VzdCgiLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIikuY3NzKHsiYmFja2dyb3VuZC1jb2xvciI6Ii1pbnRlcm5hbC1saWdodC1kYXJrLWNvbG9yKHJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKSwgcmdiYSg1OSwgNTksIDU5LCAwLjMpKSIsCiJib3JkZXItY29sb3IiOiJyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMykifSksJCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkucHJvcCgiZGlzYWJsZWQiLCEwKSwkKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKS5jbG9zZXN0KCIuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIiKS5jc3MoeyJiYWNrZ3JvdW5kLWNvbG9yIjoiLWludGVybmFsLWxpZ2h0LWRhcmstY29sb3IocmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpLCByZ2JhKDU5LCA1OSwgNTksIDAuMykpIiwiYm9yZGVyLWNvbG9yIjoicmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpIn0pKX0sYXNzaWduVmFsdWVzOmZ1bmN0aW9uKCl7dmFyIGE9JChjLnNjb3BlKSxiPW51bGw7c3dpdGNoKG1haWxQYWdlLm1haWxJRCl7Y2FzZSAiU2VydmljZVJlcXVlc3QiOnZhciBkPWEuZmluZCgiI2ZpcnN0RGF0ZSIpO2I9YS5maW5kKCIjc2Vjb25kRGF0ZSIpO2JyZWFrO2Nhc2UgInNlcnZpY2VNZW51IjpkPWEuZmluZChzZXJ2aWNlRm9ybV9tZW51U2VydmljZS5kYXRlSWQpOwpicmVhaztjYXNlICJoZWFkZXJTZXJ2aWNlIjpkPWEuZmluZChzZXJ2aWNlRm9ybV9oZWFkZXJTZXJ2aWNlLmRhdGVJZCk7YnJlYWs7ZGVmYXVsdDpkPWEuZmluZCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKSxiPWEuZmluZCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCl9Yy5maXJzdENob2ljZT1jLmdldERhdGVDaG9pY2UoZCk7Yy5zZWNvbmRDaG9pY2U9Yy5nZXREYXRlQ2hvaWNlKGIpO2Mud2FpdGluZ09uU2l0ZT1hLmZpbmQoInNlbGVjdFtuYW1lPSd3YWl0aW5nb25zaXRlJ10gb3B0aW9uOnNlbGVjdGVkIikudmFsKCk7Yy50cmFuc3BvcnRPcHRpb249Yy5nZXRUcmFuc3BvcnRPcHRpb24oKX0sZ2V0VHJhbnNwb3J0T3B0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9JChjLnNjb3BlKS5maW5kKCJzZWxlY3RbbmFtZT0ncHJlZmVycmVkVHJhbnNwb3J0J10gb3B0aW9uOnNlbGVjdGVkIik7cmV0dXJuIGEubGVuZ3RoP2EudmFsKCk6IiJ9LGdldFRyYW5zcG9ydE9wdGlvblRleHQ6ZnVuY3Rpb24oKXt2YXIgYT0KJChjLnNjb3BlKS5maW5kKCJzZWxlY3RbbmFtZT0ncHJlZmVycmVkVHJhbnNwb3J0J10gb3B0aW9uOnNlbGVjdGVkIik7cmV0dXJuIGEubGVuZ3RoP2EudGV4dCgpOiIifSx1cGRhdGVIb3VyczpmdW5jdGlvbihhLGIpe3ZhciBkPSQoIiMiK2IpLGU9Yy5nZXRBbGxvd2VkVGltZXMoYSxiKTtjLmRpc3BsYXlQaWNrZXJNZXNzYWdlKGIsYy5nZXREYXRlU2NoZWR1bGUoYSkpOzA8ZS5sZW5ndGg\/KGI9e3RpbWVwaWNrZXI6ITAsYWxsb3dUaW1lczplfSwiIj09PWQudmFsKCk\/Yi52YWx1ZT1hLmRhdGVGb3JtYXQoIlkvbS9kIikrIiAiK2VbMF06Yi52YWx1ZT1hLGQuZGF0ZXRpbWVwaWNrZXIoYikpOihkLnZhbCgiIiksZC5kYXRldGltZXBpY2tlcih7dGltZXBpY2tlcjohMX0pKX0sY2xvc2VkQWZ0ZXJNaWRuaWdodDpmdW5jdGlvbihhKXthPWMuZ2V0RGF0ZVNjaGVkdWxlKGEpO3JldHVybiJ1bmRlZmluZWQiPT09YS5zdGFydEhvdXI\/ITE6YS5lbmRIb3VyPGEuc3RhcnRIb3VyJiYwIT09CmEuZW5kSG91cn0sZGlzcGxheVBpY2tlck1lc3NhZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgZD0iIjtzd2l0Y2goYi5zdGF0dXMpe2Nhc2UgImNsb3NlZCI6ZD0kKCIudGV4dENsb3NlZCIpLnZhbCgpO2JyZWFrO2Nhc2UgInJkdiI6ZD0kKCIudGV4dFJkdiIpLnZhbCgpO2JyZWFrO2Nhc2UgImNvbnRhY3QiOmQ9Yi5tZXNzYWdlfSQoIiMiK2ErIl9kYXRlVGltZVBpY2tlciAuZGF0ZVRpbWVQaWNrZXJNZXNzYWdlIikuaHRtbChkKX0scmVtb3ZlQ2xvc2VkSG91cnM6ZnVuY3Rpb24oYSl7dmFyIGI9JChjLnNjb3BlKS5maW5kKCIuQ2xvc2VkU2NoZWR1bGUiKTtpZighYi5sZW5ndGh8fCJjbG9zZWQiPT09Yi52YWwoKSlyZXR1cm4gYTt2YXIgZD1bXSxlPXBhcnNlSW50KGIuYXR0cigic3RhcnRob3VyIikpLGc9cGFyc2VJbnQoYi5hdHRyKCJzdGFydG1pbiIpKSxrPXBhcnNlSW50KGIuYXR0cigiZW5kaG91ciIpKTtiPXBhcnNlSW50KGIuYXR0cigiZW5kbWluIikpO3ZhciBmPW5ldyBEYXRlOwpmLnNldEhvdXJzKGUsZyk7dmFyIHE9bmV3IERhdGU7cS5zZXRIb3VycyhrLGIpOyQuZWFjaChhLGZ1bmN0aW9uKG0scil7bT1yLnNwbGl0KCI6Iik7dmFyIG49bmV3IERhdGU7bi5zZXRIb3VycyhwYXJzZUludChtWzBdKSxwYXJzZUludChtWzFdKSk7KG48Znx8bj49cSkmJmQucHVzaChyKX0pO3JldHVybiBkfSxnZXRBbGxvd2VkVGltZXM6ZnVuY3Rpb24oYSxiKXskKCIjIitiKTtiPVtdO3ZhciBkPWMuZ2V0RGF0ZVNjaGVkdWxlKGEpLGU9bmV3IERhdGUoYSk7ZS5zZXREYXRlKGEuZ2V0RGF0ZSgpLTEpO2U9Yy5nZXREYXlCZWZvcmVBcHBvaW50bWVudHMoZSk7Yj1iLmNvbmNhdChlKTtpZigiY29uY2VzcyI9PT1kLnN0YXR1c3x8IiI9PT1kLnN0YXR1c3x8InVuZGVmaW5lZCI9PT10eXBlb2YgZC5zdGF0dXN8fCJyZHYiPT09ZC5zdGF0dXMpe2U9ZC5zdGFydEhvdXI7dmFyIGc9ZC5zdGFydE1pbjtkPWMuZ2V0RW5kT2ZEYXkoZSxkLmVuZEhvdXIsZC5lbmRNaW4pO2U9Yy5nZXRBcHBvaW50bWVudHNCZXR3ZWVuKGUsCmcsZC5lbmRIb3VyLGQuZW5kTWluKTtlPWMucmVtb3ZlQ2xvc2VkSG91cnMoZSk7Yj1iLmNvbmNhdChlKX1pZihhLnRvRGF0ZVN0cmluZygpPT0obmV3IERhdGUpLnRvRGF0ZVN0cmluZygpKWZvcihhPShuZXcgRGF0ZSkuZ2V0SG91cnMoKTswPGIubGVuZ3RoOylpZihwYXJzZUludChiWzBdKTw9YSliLnNoaWZ0KCk7ZWxzZSBicmVhaztyZXR1cm4gYn0sZ2V0QXBwb2ludG1lbnRzQmV0d2VlbjpmdW5jdGlvbihhLGIsZCxlKXthKz0zMD09PWI\/LjU6MDtkPWQrKDMwPT09ZT8uNTowKS0xO2U9W107Zm9yKGI9IjE1Ij09JCgiLlNFUlZJQ0VfQVBQT0lOVE1FTlRfTEVOR1RIIikudmFsKCk\/LjI1Oi41O2E8PWQ7YSs9YikwPT09YSUxP2UucHVzaChhKyI6MDAiKTowPT09YSUuNT9lLnB1c2goTWF0aC5mbG9vcihhKSsiOjMwIik6MD09PShhLS4yNSklMT9lLnB1c2goTWF0aC5mbG9vcihhKSsiOjE1Iik6ZS5wdXNoKE1hdGguZmxvb3IoYSkrIjo0NSIpO3JldHVybiBlfSxnZXRDbG9zZWREYXRlc0JldHdlZW46ZnVuY3Rpb24oYSwKYil7Yj1jLmdldERheXNEaWZmKGEsYik7Zm9yKHZhciBkPVtdLGU9W10sZz0wO2c8YjtnKyspe3ZhciBrPW5ldyBEYXRlKChuZXcgRGF0ZShhKSkuc2V0RGF0ZShhLmdldERhdGUoKSsoZy0xKSkpLGY9bmV3IERhdGUoKG5ldyBEYXRlKGEpKS5zZXREYXRlKGEuZ2V0RGF0ZSgpK2cpKTtlLmhhc093blByb3BlcnR5KGYuZ2V0RGF5KCkpfHwoZVtmLmdldERheSgpXT1jLmdldERhdGVTY2hlZHVsZShmKSk7ImNsb3NlZCIhPT1lW2YuZ2V0RGF5KCldLnN0YXR1cyYmIm9ubGluZSIhPT1lW2YuZ2V0RGF5KCldLnN0YXR1c3x8Yy5jbG9zZWRBZnRlck1pZG5pZ2h0KGspfHxkLnB1c2goZi5kYXRlRm9ybWF0KCJZL20vZCIpKX1yZXR1cm4gZH0sZ2V0RGF0ZUNob2ljZTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmMDxhLmxlbmd0aCYmKGE9bmV3IERhdGUoYS52YWwoKSksYy5pc0RhdGUoYSkpP2EuZGF0ZUZvcm1hdCgiWTptOmQgSDppIik6IiJ9LGdldERhdGVTY2hlZHVsZTpmdW5jdGlvbihhKXt2YXIgYj0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlcnZpY2VFbWFpbHNTZWxlY3QiKTtpZihiJiZiLm9wdGlvbnMmJjE8Yi5vcHRpb25zLmxlbmd0aCYmMDw9Yi5zZWxlY3RlZEluZGV4JiZiLm9wdGlvbnMuaGFzT3duUHJvcGVydHkoYi5zZWxlY3RlZEluZGV4KSYmZGVhbGVyU3RvcmVIb3VycyYmZGVhbGVyU3RvcmVIb3Vycy5oYXNPd25Qcm9wZXJ0eShiLm9wdGlvbnNbYi5zZWxlY3RlZEluZGV4XS5nZXRBdHRyaWJ1dGUoImRhdGEtZGVhbGVybmFtZSIpKSl7Yj1iLm9wdGlvbnNbYi5zZWxlY3RlZEluZGV4XS5nZXRBdHRyaWJ1dGUoImRhdGEtZGVhbGVybmFtZSIpO2NvbnN0IGc9YS50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7d2Vla2RheToibG9uZyJ9KS5yZXBsYWNlKC9cdTIwMEUvZywiIik7YT1kZWFsZXJTdG9yZUhvdXJzW2JdO2lmKGImJmEmJihhPWEuZmluZChrPT5rLmRheT09PWcpKSYmYS5ob3VycyYmImNsb3NlZCIhPT1hLmhvdXJzLnRvTG93ZXJDYXNlKCkmJihiPShhLmhvdXJzLm1hdGNoKC86L2cpfHwKW10pLmxlbmd0aCxhLmhvdXJzLmluY2x1ZGVzKCItIikmJjI9PT1iKSl7dmFyIGQ9YS5ob3Vycy5zcGxpdCgiIC0gIik7YT1wYXJzZUludChkWzBdLnNwbGl0KCI6IilbMF0pO2I9cGFyc2VJbnQoZFswXS5zcGxpdCgiOiIpWzFdLnN1YnN0cmluZygwLDIpKTt2YXIgZT1wYXJzZUludChkWzFdLnNwbGl0KCI6IilbMF0pO2Q9cGFyc2VJbnQoZFsxXS5zcGxpdCgiOiIpWzFdLnN1YnN0cmluZygwLDIpKTtyZXR1cm57c3RhdHVzOiIiLHN0YXJ0SG91cjphLHN0YXJ0TWluOmIsZW5kSG91cjplLGVuZE1pbjpkfX1yZXR1cm57c3RhdHVzOiJjbG9zZWQifX1hPWEudG9Mb2NhbGVEYXRlU3RyaW5nKCJlbi1VUyIse3dlZWtkYXk6ImxvbmcifSkucmVwbGFjZSgvXHUyMDBFL2csIiIpO2I9Ii4iK2ErIlNjaGVkdWxlIjtiPSQoYy5zY29wZSkuZmluZChiKTtlPWIudmFsKCk7cmV0dXJuImNvbmNlc3MiPT09ZXx8InJkdiI9PT1lP3tzdGF0dXM6ZSxzdGFydEhvdXI6NyxzdGFydE1pbjozMCxlbmRIb3VyOjIwLAplbmRNaW46MH06IiI9PT1lfHwidW5kZWZpbmVkIj09PXR5cGVvZiBlP3tzdGF0dXM6ZSxzdGFydEhvdXI6cGFyc2VJbnQoYi5hdHRyKCJzdGFydGhvdXIiKSksc3RhcnRNaW46cGFyc2VJbnQoYi5hdHRyKCJzdGFydG1pbiIpKSxlbmRIb3VyOnBhcnNlSW50KGIuYXR0cigiZW5kaG91ciIpKSxlbmRNaW46cGFyc2VJbnQoYi5hdHRyKCJlbmRtaW4iKSl9OntzdGF0dXM6ZSxtZXNzYWdlOiQoYy5zY29wZSkuZmluZCgiLiIrYSsiU2NoZWR1bGVfbWVzc2FnZSIpLmh0bWwoKX19LGdldERheUJlZm9yZUFwcG9pbnRtZW50czpmdW5jdGlvbihhKXt2YXIgYj1jLmdldERhdGVTY2hlZHVsZShhKTtyZXR1cm4gYy5jbG9zZWRBZnRlck1pZG5pZ2h0KGEpP2MuZ2V0QXBwb2ludG1lbnRzQmV0d2VlbigwLDAsYi5lbmRIb3VyLGIuZW5kTWluKTpbXX0sZ2V0RGF5c0RpZmY6ZnVuY3Rpb24oYSxiKXt2YXIgZD1jLmRheVRvTWlsbGlzZWNvbmRzKDEpO3JldHVybiBNYXRoLnJvdW5kKChiLmdldFRpbWUoKS0KYS5nZXRUaW1lKCkpL2QpfSxnZXRFbmRPZkRheTpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGE8Yj97ZW5kSG91cjpiLGVuZE1pbjpkfTpiPGEmJjA9PT1iP3tlbmRIb3VyOjI0LGVuZE1pbjpkfTp7ZW5kSG91cjoyNCxlbmRNaW46MzB9fSxnZXROZXh0T3BlbkRhdGU6ZnVuY3Rpb24oYSl7aWYoImNsb3NlZCI9PT1jLmdldERhdGVTY2hlZHVsZShhKS5zdGF0dXMpe2E9bmV3IERhdGUoKG5ldyBEYXRlKGEpKS5zZXREYXRlKGEuZ2V0RGF0ZSgpKzEpKTt2YXIgYj1uZXcgRGF0ZSgobmV3IERhdGUpLnNldERhdGUoKG5ldyBEYXRlKS5nZXREYXRlKCkrNykpO3JldHVybiBhPmI\/ITE6Yy5nZXROZXh0T3BlbkRhdGUoYSl9cmV0dXJuIGF9LGdldFBpY2tlckRhdGVSYW5nZTpmdW5jdGlvbigpe3ZhciBhPSQoIi5hbGxvd1RvZGF5IikudmFsKCksYj1wYXJzZUludCgkKCIubWluU3RhcnREYXlzIikudmFsKCkpLGQ9MCxlPW5ldyBEYXRlO2F8fChkPTEpO2ImJihkPWIpO2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmZvb3RlclZpc2l0Q29udGFjdEZvcm1XcmFwcGVyIik7Cm51bGwhPT1hPyhiPWUuZ2V0RGF5KCksYj0wPT09Yj83OmIsMT09YS5xdWVyeVNlbGVjdG9yQWxsKCIud2Vla0RheVNjaGVkdWxlIilbYi0xXS5kYXRhc2V0LmNsb3NlZD9lPW5ldyBEYXRlKChuZXcgRGF0ZShlKSkuc2V0RGF0ZShlLmdldERhdGUoKStkKSk6KGE9ZS5nZXRIb3VycygpLGI9ZS5nZXRNaW51dGVzKCkrNjAsNjA8PWImJihhKz1NYXRoLmZsb29yKGIvNjApLGIlPTYwLGIlMzAmJig1Pj1iJTMwP2ItPWIlMzA6NTxiJTMwJiYoYis9MzAtYiUzMCkpKSwyNDw9YT8oZD1kP2Q6MSxlPW5ldyBEYXRlKGUuc2V0RGF0ZShlLmdldERhdGUoKStkKSkpOihlPW5ldyBEYXRlKGUuc2V0RGF0ZShlLmdldERhdGUoKStkKSksZS5zZXRIb3VycyhhLGIsMCwwKSkpKTooZT1uZXcgRGF0ZSgobmV3IERhdGUoZSkpLnNldERhdGUoZS5nZXREYXRlKCkrZCkpLGU9Yy5nZXROZXh0T3BlbkRhdGUoZSkpO2lmKCFlKXJldHVybiExO2Q9bmV3IERhdGUoZS5nZXRUaW1lKCkrYy5kYXlUb01pbGxpc2Vjb25kcyg0NTApKTsKcmV0dXJue3N0YXJ0RGF0ZTplLGVuZERhdGU6ZH19LGlzRGF0ZTpmdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIERhdGUmJiJJbnZhbGlkIERhdGUiIT09YS50b0RhdGVTdHJpbmcoKX0sZGF5VG9NaWxsaXNlY29uZHM6ZnVuY3Rpb24oYSl7cmV0dXJuIDg2NEU1KmF9LHBpY2tlck9uQ2xvc2U6ZnVuY3Rpb24oYSxiKXthPSQoYikuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIikudGltZVNlbGVjdGVkO3ZhciBkPSQoYikuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIikuZGF0ZVNlbGVjdGVkOyIiPT09Yi52YWwoKSYmbCYmKCQoIiMiK2IuZGF0YSgiaG91ci1zZWxlY3QiKSkuZW1wdHkoKSwkKCIjIitiLmRhdGEoImhvdXItc2VsZWN0IikpLnByb3AoImRpc2FibGVkIiwhMCkpO2lmKCFhJiYhZClyZXR1cm4hMDthfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi52YWwoYi52YWwoKS5zcGxpdCgiICIpWzBdLnRyaW0oKSl9KX0scGlja2VyT25HZW5lcmF0ZTpmdW5jdGlvbigpeyQoIi54ZHNvZnRfc2F2ZV9zZWxlY3RlZCIpLnJlbW92ZSgpOwowPT09JCgiLmRhdGVUaW1lUGlja2VyTWVzc2FnZSIsdGhpcykubGVuZ3RoJiYkKHRoaXMpLmFwcGVuZCgnPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7IHBhZGRpbmc6IDExcHg7ICBmb250LXNpemU6IDEycHg7Zm9udC13ZWlnaHQ6Ym9sZDsgIiBjbGFzcz0iZGF0ZVRpbWVQaWNrZXJNZXNzYWdlIj48L2Rpdj4nKX0scGlja2VyT25TZWxlY3REYXRlOmZ1bmN0aW9uKGEsYil7JCh0aGlzKS5kYXRhKCkub3B0aW9ucy52YWx1ZT1hOyQodGhpcykuZGF0YSgpLm9wdGlvbnMuZGF0ZVNlbGVjdGVkPSEwO2IuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIikuZGF0ZVNlbGVjdGVkPSEwOyQoIi54ZHNvZnRfc2F2ZV9zZWxlY3RlZCIpLnJlbW92ZSgpO2IuZGF0YSgiaG91ci1zZWxlY3QiKT9jLnVwZGF0ZUhvdXJzKGEsYi5hdHRyKCJpZCIpLGIuZGF0YSgiaG91ci1zZWxlY3QiKSk6Yy51cGRhdGVIb3VycyhhLGIuYXR0cigiaWQiKSk7cmV0dXJuITF9LHBpY2tlck9uU2VsZWN0VGltZTpmdW5jdGlvbihhLApiKXskKHRoaXMpLmRhdGEoKS5vcHRpb25zLnZhbHVlPWE7JCh0aGlzKS5kYXRhKCkub3B0aW9ucy50aW1lU2VsZWN0ZWQ9ITA7Yi5kYXRhKCJkYXRldGltZXBpY2tlck9wdGlvbnMiKS50aW1lU2VsZWN0ZWQ9ITB9LHNldFNjb3BlOmZ1bmN0aW9uKGEpe2Muc2NvcGU9YTtyZXR1cm4gY319LGw9aC5pc01vYmlsZTtsJiYoYy5pbml0PWZ1bmN0aW9uKCl7dmFyIGE9JChjLnNjb3BlKTthLmZpbmQoIiMiK2MuZmlyc3RIb3VyU2VsZWN0KS5wcm9wKCJkaXNhYmxlZCIsITApO2EuZmluZCgiIyIrYy5zZWNvbmRIb3VyU2VsZWN0KS5wcm9wKCJkaXNhYmxlZCIsITApO2EuZmluZCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS5kYXRhKCJob3VyLXNlbGVjdCIsYy5maXJzdEhvdXJTZWxlY3QpO2EuZmluZCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkuZGF0YSgiaG91ci1zZWxlY3QiLGMuc2Vjb25kSG91clNlbGVjdCk7dmFyIGI9Yy5nZXRQaWNrZXJEYXRlUmFuZ2UoKTtiPyhhLmZpbmQoIiMiKwpjLmZpcnN0SG91clNlbGVjdCkub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZD0kKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLnZhbCgpLGU9JCh0aGlzKS52YWwoKTthLmZpbmQoImlucHV0W25hbWU9ZGF0ZTFdIikudmFsKGQrIiAiK2UpfSksYS5maW5kKCIjIitjLnNlY29uZEhvdXJTZWxlY3QpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGQ9JCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkudmFsKCksZT0kKHRoaXMpLnZhbCgpO2EuZmluZCgiaW5wdXRbbmFtZT1kYXRlMl0iKS52YWwoZCsiICIrZSl9KSxjLnNldHVwRGF0ZShjLmZpcnN0Q2hvaWNlT2JqZWN0SWQsYy5maXJzdEhvdXJTZWxlY3QsYi5zdGFydERhdGUsYi5lbmREYXRlKSxjLnNldHVwRGF0ZShjLnNlY29uZENob2ljZU9iamVjdElkLGMuc2Vjb25kSG91clNlbGVjdCxiLnN0YXJ0RGF0ZSxiLmVuZERhdGUpKTooYS5maW5kKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLnByb3AoImRpc2FibGVkIiwKITApLGEuZmluZCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkucHJvcCgiZGlzYWJsZWQiLCEwKSl9LGMuYXNzaWduVmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGE9JChjLnNjb3BlKSxiPWEuZmluZCgiIyIrYy5maXJzdEhvdXJTZWxlY3QpLmZpbmQoIjpzZWxlY3RlZCIpLnRleHQoKSxkPW5ldyBEYXRlKGEuZmluZCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS52YWwoKSk7ZC5zZXRIb3VycyhiLnNwbGl0KCI6IilbMF0sYi5zcGxpdCgiOiIpWzFdKTsiSW52YWxpZCBEYXRlIiE9PWQudG9EYXRlU3RyaW5nKCkmJihjLmZpcnN0Q2hvaWNlPWQuZGF0ZUZvcm1hdCgiWTptOmQgSDppIikpO2I9YS5maW5kKCIjIitjLnNlY29uZEhvdXJTZWxlY3QpLmZpbmQoIjpzZWxlY3RlZCIpLnRleHQoKTtkPW5ldyBEYXRlKGEuZmluZCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkudmFsKCkpO2Quc2V0SG91cnMoYi5zcGxpdCgiOiIpWzBdLGIuc3BsaXQoIjoiKVsxXSk7IkludmFsaWQgRGF0ZSIhPT0KZC50b0RhdGVTdHJpbmcoKSYmKGMuc2Vjb25kQ2hvaWNlPWQuZGF0ZUZvcm1hdCgiWTptOmQgSDppIikpO2Mud2FpdGluZ09uU2l0ZT1hLmZpbmQoInNlbGVjdFtuYW1lPSd3YWl0aW5nb25zaXRlJ10gb3B0aW9uOnNlbGVjdGVkIikudmFsKCl9LGMuc2V0dXBEYXRlPWZ1bmN0aW9uKGEsYixkLGUpe3ZhciBnPSQoIiMiK2EpLGs9bmV3IERhdGU7Yy5pc0RhdGUoZCl8fChkPW5ldyBEYXRlKTtjLmlzRGF0ZShlKXx8KGU9bmV3IERhdGUoay5nZXRUaW1lKCkrYy5kYXlUb01pbGxpc2Vjb25kcygzMCkpKTtnLm9uKCJrZXlkb3duIixmdW5jdGlvbihmKXtmLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuITF9KTtnLmRhdGEoImRhdGV0aW1lcGlja2VyT3B0aW9ucyIse2RhdGVTZWxlY3RlZDohMSx0aW1lU2VsZWN0ZWQ6ITF9KTskKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJiJFTkdMSVNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8JC5kYXRldGltZXBpY2tlci5zZXRMb2NhbGUoImZyIik7CmcuZGF0ZXRpbWVwaWNrZXIoJC5leHRlbmQoe30scCx7aWQ6YSsiX2RhdGVUaW1lUGlja2VyIix0aW1lcGlja2VyOiExLGZvcm1hdDoiWS9tL2QiLG1pbkRhdGU6ZCxtYXhEYXRlOmUsZGlzYWJsZWREYXRlczpjLmdldENsb3NlZERhdGVzQmV0d2VlbihkLGUpLG9uU2hvdzpmdW5jdGlvbihmKXtmPSQodGhpcykuZGF0YSgpLm9wdGlvbnMuZGF0ZVNlbGVjdGVkP2Y6ZDtjLnVwZGF0ZUhvdXJzKGYsYSxiKX19KSl9LGMudXBkYXRlSG91cnM9ZnVuY3Rpb24oYSxiLGQpe2Q9JChjLnNjb3BlKS5maW5kKCIjIitkKTt2YXIgZT1jLmdldEFsbG93ZWRUaW1lcyhhLGIpO2E9Yy5nZXREYXRlU2NoZWR1bGUoYSk7Yy5kaXNwbGF5UGlja2VyTWVzc2FnZShiLGEpO2QuZW1wdHkoKTswPGUubGVuZ3RoP2QucHJvcCgiZGlzYWJsZWQiLCExKTpkLnByb3AoImRpc2FibGVkIiwhMCk7Zm9yKHZhciBnIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShnKSl7Yj1lW2ddO3ZhciBrPSQoIjxvcHRpb24+PC9vcHRpb24+IikudGV4dChlW2ddKTsKYj09PWEuc3RhcnRIb3VyKyI6IithLnN0YXJ0TWluJiZrLnByb3AoInNlbGVjdGVkIiwic2VsZWN0ZWQiKTtkLmFwcGVuZChrKX19KTt2YXIgcD17bGFuZzoiRU5HTElTSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiLGFsbG93Qmxhbms6ITAsZGF5T2ZXZWVrU3RhcnQ6MSxzdGVwOjMwLG9uR2VuZXJhdGU6Yy5waWNrZXJPbkdlbmVyYXRlLG9uU2VsZWN0VGltZTpjLnBpY2tlck9uU2VsZWN0VGltZSxvblNlbGVjdERhdGU6Yy5waWNrZXJPblNlbGVjdERhdGUsb25DbG9zZTpjLnBpY2tlck9uQ2xvc2V9O3JldHVybiBjfXZhciBtYWlsU2NoZWR1bGU9bmV3IE1haWxTY2hlZHVsZSh7c2NvcGU6IiNtYWlsU2NoZWR1bGVGb3JtIixpc01vYmlsZTowPCQoIiNpc01vYmlsZSIpLmxlbmd0aD8kKCIjaXNNb2JpbGUiKS52YWwoKToiIn0pOwpmdW5jdGlvbiBmZXRjaEFuZEluaXREZWFsZXJIb3VycyhoKXtkZWFsZXJTdG9yZUhvdXJzW2hdfHwiIj09PWg\/bWFpbFNjaGVkdWxlLmluaXQoKTpmZXRjaCgiL2FqYXgvR2V0U3RvcmVIb3Vycz9kZWFsZXJfbmFtZT0iK2gpLnRoZW4oYz0+Yy5qc29uKCkpLnRoZW4oYz0+e2MuaXNPayYmYy5ob3Vyc0luZm8\/ZGVhbGVyU3RvcmVIb3Vyc1toXT1jLmhvdXJzSW5mbzpjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc3RvcmUgaG91cnMgZm9yIGRlYWxlciBuYW1lOiAiK2grIiBlcnJvcjogIitjLmVycm9yKTttYWlsU2NoZWR1bGUuaW5pdCgpfSkuY2F0Y2goYz0+Y29uc29sZS5lcnJvcigiRXJyb3IgZmV0Y2hpbmcgc3RvcmUgaG91cnMgZm9yIGRlYWxlciBuYW1lICIraCsiOiAiLGMpKX0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtjb25zdCBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXJ2aWNlRW1haWxzU2VsZWN0Iik7aWYoaCYmaC5vcHRpb25zJiYxPGgub3B0aW9ucy5sZW5ndGgpe2NvbnN0IGM9aC5vcHRpb25zWzBdLmdldEF0dHJpYnV0ZSgiZGF0YS1kZWFsZXJuYW1lIik7ZmV0Y2hBbmRJbml0RGVhbGVySG91cnMoYyk7aC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCgpPT57aWYoMDw9aC5zZWxlY3RlZEluZGV4KXtjb25zdCBsPWgub3B0aW9uc1toLnNlbGVjdGVkSW5kZXhdLmdldEF0dHJpYnV0ZSgiZGF0YS1kZWFsZXJuYW1lIik7ZmV0Y2hBbmRJbml0RGVhbGVySG91cnMobCl9fSl9ZWxzZSBtYWlsU2NoZWR1bGUuaW5pdCgpfSk7Ci8qKiAvanMvbWFpbEV4cHJlc3NSZXF1ZXN0V2lkZ2V0LmpzICoqLwp2YXIgX19fZDJjX21haWxFeHByZXNzUmVxdWVzdFdpZGdldGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6NDciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX21haWxFeHByZXNzUmVxdWVzdFdpZGdldGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6NDAiOyJ1c2Ugc3RyaWN0IjsKZnVuY3Rpb24gQ01haWxFeHByZXNzUmVxdWVzdFdpZGdldChlLGQpe3ZhciBhPXRoaXM7YS5zY29wZT0kKGUpO2Euc2V0dGluZ3M9ZDthLmhhc0Vycm9ycz0hMTthLmluaXQ9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVJbml0JiYhMT09PWEuc2V0dGluZ3Mub25CZWZvcmVJbml0LmNhbGwoYS5zY29wZSxhKSlyZXR1cm4hMTthLnNldHRpbmdzLnBob25lLm1hc2s9YS5zZXR0aW5ncy5waG9uZS5tYXNrfHwiMDAwIDAwMC0wMDAwIjthLnNjb3BlLmZpbmQoYS5zZXR0aW5ncy5waG9uZS5zZWxlY3RvcikuZWFjaCgoYixjKT0+e0lNYXNrKGMse21hc2s6W3ttYXNrOmEuc2V0dGluZ3MucGhvbmUubWFza30se21hc2s6YDEgJHthLnNldHRpbmdzLnBob25lLm1hc2t9YH1dfSl9KTsoYS5zY29wZS5pcygiZm9ybSIpP2Euc2NvcGU6YS5zY29wZS5maW5kKCJmb3JtIikpLm9uKCJzdWJtaXQiLGZ1bmN0aW9uKCl7YS5zdWJtaXQoKTtyZXR1cm4hMX0pOwphLnNjb3BlLmZpbmQoIioiKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7YS5yZXNldEVycm9ycygpfSk7YS5zZXR0aW5ncy5pbml0aWFsaXplZD0hMDthLnNjb3BlLmRhdGEoInxtYWlsZXhwcmVzcy1vcHRpb25zIixhLnNldHRpbmdzKTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlckluaXQmJiExPT09YS5zZXR0aW5ncy5vbkFmdGVySW5pdC5jYWxsKGEuc2NvcGUsYSkpcmV0dXJuITF9O2EuZ2V0SW5wdXRWYWx1ZXM9ZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5zY29wZS5maW5kKGIpLm1hcChmdW5jdGlvbigpe3JldHVybiAkKHRoaXMpLnZhbCgpfSkuZ2V0KCkuam9pbihjKX07YS5wcmVwYXJlRW1haWxIYW5kbGVyPWZ1bmN0aW9uKGIsYyl7JC5leHRlbmQoZW1haWxIYW5kbGVyLHttYWlsSUQ6YS5zZXR0aW5ncy5lbWFpbElkLHN1YmplY3Q6Yixib2R5OmMsc2VuZFRvOmEuc2V0dGluZ3MuZW1haWwuc2VuZFRvLHNlbmRUb0FERkZvcm1hdDphLnNldHRpbmdzLmVtYWlsLnNlbmRUb0FERiwKZGVwYXJ0bWVudDphLnNldHRpbmdzLmRlcGFydG1lbnQscG9wdXBPZmZlclR5cGU6IiIhPWEuc2V0dGluZ3MucG9wdXBPZmZlclR5cGU\/YS5zZXR0aW5ncy5wb3B1cE9mZmVyVHlwZTphLnNldHRpbmdzLmVtYWlsSWQsdXNlckZpcnN0TmFtZTphLmdldElucHV0VmFsdWVzKCJpbnB1dFtuYW1lPSdmbmFtZSddIiwiICIpLHVzZXJMYXN0TmFtZTphLmdldElucHV0VmFsdWVzKCJpbnB1dFtuYW1lPSdsbmFtZSddIiwiICIpLHVzZXJFbWFpbDphLmdldElucHV0VmFsdWVzKCJpbnB1dFt0eXBlPSdlbWFpbCddLCBpbnB1dFtuYW1lPSdlbWFpbCddLCBpbnB1dFtuYW1lPSdtYWlsJ10iLCI7IiksdXNlck5hbWU6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbbmFtZT0nbmFtZSddIiwiICIpLHVzZXJQaG9uZTphLmdldElucHV0VmFsdWVzKCJpbnB1dFt0eXBlPSd0ZWwnXSwgaW5wdXQucGhvbmUiLCIsIiksdXNlclBvc3RhbDphLmdldElucHV0VmFsdWVzKCJpbnB1dC5wb3N0YWwiLCIsIiksbWFrZTphLmdldElucHV0VmFsdWVzKCJpbnB1dFtuYW1lPW1ha2VdIiksCm1vZGVsOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W25hbWU9bW9kZWxdIikseWVhcjphLmdldElucHV0VmFsdWVzKCJpbnB1dFtuYW1lPXllYXJdIiksdHJhZGVpbjphLmdldElucHV0VmFsdWVzKCJpbnB1dC50cmFkZWluIiwiLCIpLGFkZHJlc3M6YS5nZXRJbnB1dFZhbHVlcygiaW5wdXRbbmFtZT0nYWRkcmVzcyddIiwiIiksYmlydGhkYXRlOmEuZ2V0SW5wdXRWYWx1ZXMoImlucHV0W25hbWU9J2JpcnRoZGF0ZSddIiwiIiksY29tbWVudHM6YS5nZXRJbnB1dFZhbHVlcygidGV4dGFyZWFbbmFtZT0nbWVzc2FnZSddIil9KTsic3RyaW5nIj09PXR5cGVvZiBlbWFpbEhhbmRsZXIudXNlck5hbWUmJiIiPT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmKGI9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Yi5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Yi5qb2luKCIgIikpO21haWxTZW50SGFuZGxlcj0iU0VSVklDRSI9PQplbWFpbEhhbmRsZXIuZGVwYXJ0bWVudHx8IlBBUlRTIj09ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ\/Z2V0TWFpbFNlbnRIYW5kbGVyKCJfU0VSVklDRSIpOmdldE1haWxTZW50SGFuZGxlcigpO2VtYWlsSGFuZGxlci5jYWxsYmFjaz0iZnVuY3Rpb24iPT09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlclNlbmRFbWFpbD9mdW5jdGlvbihmKXthLnNldHRpbmdzLm9uQWZ0ZXJTZW5kRW1haWwuY2FsbChhLnNjb3BlLGEsZik7aWYoYS5zZXR0aW5ncy5lbWFpbElkLmluY2x1ZGVzKCJSZWJhdGVDb3Vwb24iKXx8YS5zZXR0aW5ncy5lbWFpbElkLmluY2x1ZGVzKCJNdWx0aUZvcm0iKXx8YS5zZXR0aW5ncy5lbWFpbElkLmluY2x1ZGVzKCJDb250YWN0VXNSZXF1ZXN0IikpZW1haWxIYW5kbGVyLm1haW5Qcm9tbz0hMDthLnNldHRpbmdzLm5vU3VjY2VzTWVzc2FnZXx8bWFpbFNlbnRIYW5kbGVyLnNob3dTdWNjZXNzKCk7JCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikuZmluZCgiLmxhYmVsZW1haWwiKS52YWwoYS5zZXR0aW5ncy5nb29nbGVUcmFja2luZy5sYWJlbCk7CiQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpLmZpbmQoIi5sYWJlbHNlY3Rpb24iKS52YWwoYS5zZXR0aW5ncy5nb29nbGVUcmFja2luZy5sYWJlbHNlY3Rpb24pOyQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpLnRyaWdnZXIoInN1Ym1pdCIpOyJvYmplY3QiPT10eXBlb2YgQ3RhVHJhY2smJiQoIi5tdWx0aWZvcm1fZW1iZWRkZWRfZm9vdGVyIC5tdWx0aWZvcm1fZW1iZWRkZWRfc3RlcDEiKS5zaG93KCl9OmZ1bmN0aW9uKGYpe2Y\/KG1haWxTZW50SGFuZGxlci5zaG93U3VjY2VzcygpLGEucmVzZXRGaWVsZHMoKSwkKCIjZ2VuZXJpY19mb3JtX2NvbmZpcm0iKS5maW5kKCIubGFiZWxlbWFpbCIpLnZhbChhLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsKSwkKCIjZ2VuZXJpY19mb3JtX2NvbmZpcm0iKS5maW5kKCIubGFiZWxzZWN0aW9uIikudmFsKGEuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWxzZWN0aW9uKSwkKCIjZ2VuZXJpY19mb3JtX2NvbmZpcm0iKS50cmlnZ2VyKCJzdWJtaXQiKSk6Cm1haWxTZW50SGFuZGxlci5zaG93RmFpbCgpfTtyZXR1cm4gZW1haWxIYW5kbGVyfTthLnJlc2V0RXJyb3JzPWZ1bmN0aW9uKCl7YS5oYXNFcnJvcnMmJigkKCIubWFpbC1leHByZXNzLXdpZGdldF9fZm9vdGVyIC5lcnJvck1zZyIpLmhpZGUoKSwkKCIudmFsaWRpdHktZXJyb25lb3VzIikucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEuaGFzRXJyb3JzPSExKX07YS5yZXNldEZpZWxkcz1mdW5jdGlvbigpe2EucmVzZXRFcnJvcnMoKTthLnNjb3BlLmZpbmQoIjppbnB1dCIpLm5vdCgiOmJ1dHRvbiwgOnN1Ym1pdCwgOnJlc2V0LCA6aGlkZGVuIikucHJvcCgiY2hlY2tlZCIsITEpLnByb3AoInNlbGVjdGVkIiwhMSkubm90KCI6Y2hlY2tib3gsIDpyYWRpbywgc2VsZWN0IikudmFsKCIiKX07YS5zdWJtaXQ9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0ZSYmITE9PT1hLnNldHRpbmdzLm9uQmVmb3JlVmFsaWRhdGUuY2FsbChhLnNjb3BlLAphKSlyZXR1cm4hMTthLnJlc2V0RXJyb3JzKCk7aWYoIWEudmFsaWRhdGVGb3JtKCkudmFsaWQpcmV0dXJuIGEuaGFzRXJyb3JzPSEwLCQoIi5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXIgLmVycm9yTXNnIikuc2hvdygpLCExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVyVmFsaWRhdGUmJiExPT09YS5zZXR0aW5ncy5vbkFmdGVyVmFsaWRhdGUuY2FsbChhLnNjb3BlLGEpKXJldHVybiExO3ZhciBiPW5ldyBNYWlsRGVmaW5pdGlvblBhcnNlcihhLnNjb3BlLHtmaWVsZHM6YS5zY29wZS5zZXJpYWxpemVBcnJheSgpLHN1YmplY3RTZWxlY3RvcjphLnNldHRpbmdzLmRlZmluaXRpb25zLnN1YmplY3QsYm9keVNlbGVjdG9yOmEuc2V0dGluZ3MuZGVmaW5pdGlvbnMuYm9keX0pO2EucHJlcGFyZUVtYWlsSGFuZGxlcihiLnN1YmplY3QsYi5ib2R5KTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVTZW5kRW1haWwmJiExPT09YS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRFbWFpbC5jYWxsKGEuc2NvcGUsCmEpKXJldHVybiExO2VtYWlsSGFuZGxlci5zZW5kTWFpbCgpfTthLnZhbGlkYXRlRm9ybT1mdW5jdGlvbigpeyQudmFsaWRpdHkuc2V0dXAoYS5zZXR0aW5ncy52YWxpZGF0aW9uKS5zdGFydCgpO2Euc2NvcGUuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCBzZWxlY3QsIHRleHRhcmVhIikuZWFjaChmdW5jdGlvbihiLGMpe2I9JChjKTtiLm5vbkh0bWwoKTsoYi5pcygiW3JlcXVpcmVkXSIpfHxiLmlzKCJbZGF0YS1yZXF1aXJlZF0iKXx8Yi5oYXNDbGFzcygicmVxdWlyZWQiKSkmJmIucmVxdWlyZSgpOygiZW1haWwiPT09Yi5hdHRyKCJ0eXBlIil8fGIuaXMoIltkYXRhLWVtYWlsXSIpfHxiLmhhc0NsYXNzKCJlbWFpbCIpKSYmYi52YWxpZEVtYWlsQWRkcmVzcygpO2lmKCJ0ZWwiPT09Yi5hdHRyKCJ0eXBlIil8fGIuaGFzQ2xhc3MoInBob25lIikpYi5pcygiW2RhdGEtbW9iaWxlXSIpfHxiLmhhc0NsYXNzKCJtb2JpbGUiKT9iLnZhbGlkYXRlTW9iaWxlKCk6KCJ0ZWwiPT09Yi5hdHRyKCJ0eXBlIil8fApiLmlzKCJbZGF0YS1waG9uZV0iKXx8Yi5oYXNDbGFzcygicGhvbmUiKSkmJmIudmFsaWRhdGVQaG9uZSgpfSk7cmV0dXJuICQudmFsaWRpdHkuZW5kKCl9O3JldHVybiBhfQpqUXVlcnkoZnVuY3Rpb24oZSl7ZS5mbi5tYWlsRXhwcmVzc1JlcXVlc3Q9ZnVuY3Rpb24oZCl7ZD1kfHx7fTt2YXIgYT17ZW1haWxJZDoiUXVpY2tFbWFpbCIscG9wdXBPZmZlclR5cGU6IiIscGhvbmU6e3NlbGVjdG9yOiJbdHlwZT10ZWxdIixtYXNrOiIwMDAgMDAwLTAwMDAifSx2YWxpZGF0aW9uOntvdXRwdXRNb2RlOiJjc3NPbmx5IixzY3JvbGxUbzohMSxjc3NDbGFzczoidmFsaWRpdHktZXJyb25lb3VzIn0sZGVmaW5pdGlvbnM6e3N1YmplY3Q6Ii5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19lbWFpbC1kZWZpbml0aW9uX19zdWJqZWN0Iixib2R5OiIubWFpbC1leHByZXNzLXdpZGdldF9fZW1haWwtZGVmaW5pdGlvbl9fYm9keSJ9LGVtYWlsOntzZW5kVG86IiIsc2VuZFRvQURGOiIifSxnb29nbGVUcmFja2luZzp7bGFiZWw6IiIsbGFiZWxzZWN0aW9uOiIifSxub1N1Y2Nlc01lc3NhZ2U6ITF9O2lmKDE9PT10aGlzLmxlbmd0aCl7dmFyIGI9dGhpcy5kYXRhKCJtYWlsZXhwcmVzcy13aWRnZXQiKTsKInVuZGVmaW5lZCI9PT10eXBlb2YgYiYmKGI9dGhpcy5kYXRhKCJ8bWFpbGV4cHJlc3Mtb3B0aW9ucyIpP3RoaXMuZGF0YSgifG1haWxleHByZXNzLW9wdGlvbnMiKTp7fSxhPWUuZXh0ZW5kKHt9LGEsYixkKSxiPW5ldyBDTWFpbEV4cHJlc3NSZXF1ZXN0V2lkZ2V0KHRoaXMsYSksYS5pbml0aWFsaXplZHx8Yi5pbml0KCksdGhpcy5kYXRhKCJtYWlsZXhwcmVzcy13aWRnZXQiLGIpKTtyZXR1cm4gYn12YXIgYz1bXTt0aGlzLmVhY2goZnVuY3Rpb24oKXtjLnB1c2goZSh0aGlzKS5tYWlsRXhwcmVzc1JlcXVlc3QoZCkpfSk7cmV0dXJuIGN9fSk7Ci8qKiAvanMvbWFpbERlZmluaXRpb25QYXJzZXIuanMgKiovCnZhciBfX19kMmNfbWFpbERlZmluaXRpb25QYXJzZXJqc19jX29uPSIyMDI2LTAyLTAyIDEzOjMwOjA1IjsndXNlIHN0cmljdCc7ZnVuY3Rpb24gTWFpbERlZmluaXRpb25QYXJzZXIoaCxmKXt2YXIgYj10aGlzO2Iuc2NvcGU9aDtiLmZpZWxkcz1mLmZpZWxkcztkZWxldGUgZi5lbWFpbFR5cGU7ZGVsZXRlIGYuZmllbGRzO2Iuc2V0dGluZ3M9ZjtiLnN1YmplY3Q9IiI7Yi5ib2R5PSIiO2IuY2xlYW5CbGFua1ZhcmlhYmxlcz1mdW5jdGlvbihhKXthPWEucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLCIiKTthPWEucmVwbGFjZSgve1wkTUVTU0FHRX0vZywiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLCIiKTthPWEucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLCIiKTthPWEucmVwbGFjZSgve1wkUEFZTUVOVH0vZywiIik7YT1hLnJlcGxhY2UoL3tcJFBBWU1FTlRURVJNfS9nLCIiKTthPWEucmVwbGFjZSgve1wkT0ZGRVJ9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZywKIiIpO2E9YS5yZXBsYWNlKC97XCRDT0xPUn0vZywiIik7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csIiIpO2E9YS5yZXBsYWNlKC97XCRGTkFNRX0vZywiIik7YT1hLnJlcGxhY2UoL3tcJExOQU1FfS9nLCIiKTthPWEucmVwbGFjZSgve1wkRU1BSUx9L2csIiIpO3JldHVybiBhPWEucmVwbGFjZSgve1wkVVNFUlBIT05FfS9nLCIiKX07Yi5nZXRMYXN0VmVoaWNsZVZpZXdlZD1mdW5jdGlvbigpe3ZhciBhPSQoIiNsYXN0dmlld2VkbWFrZSIpO2lmKDA9PT1hLmxlbmd0aCYmMD09PWEudmFsKCkubGVuZ3RoKXJldHVybiIiO3ZhciBjPWEudmFsKCk7YT0kKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7dmFyIGQ9JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpLGU9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCksZz0kKCIjbGFzdHZpZXdlZHRyaW0iKS52YWwoKXx8IiI7Yz1jKyIgIitkKyIgIitlKyhnLmxlbmd0aD8iICIrZzoiIik7cmV0dXJuIGMrPTA8YS5sZW5ndGg\/IiAoU3RvY2sjICIrCmErIikiOiIifTtiLmdsb2JhbFJlcGxhY2VtZW50cz1mdW5jdGlvbigpe3ZhciBhPVtdOyQoImlucHV0OmhpZGRlbiIpLmVhY2goZnVuY3Rpb24oYyxkKXtjPSQoZCkuYXR0cigibmFtZSIpfHwkKGQpLmF0dHIoImlkIik7aWYoIWMpcmV0dXJuITA7dmFyIGU9ITE7ImVtYWlsYnVpbGRhbmRwcmljZSI9PT1jLnRvTG93ZXJDYXNlKCkmJiIiPT09JChkKS52YWwoKS5yZXBsYWNlKC8gL2csIiIpJiYoZT0hMCk7ZXx8KCJicmFuZCI9PT1jLnRvTG93ZXJDYXNlKCkmJmEucHVzaCh7bmFtZToibWFrZSIsdmFsdWU6JChkKS52YWwoKX0pLGEucHVzaCh7bmFtZTpjLHZhbHVlOiQoZCkudmFsKCl9KSl9KTthLnB1c2goe25hbWU6IkxBU1RWRUhJQ0xFVklFV0VEIix2YWx1ZTpiLmdldExhc3RWZWhpY2xlVmlld2VkKCl9KTtyZXR1cm4gYX07Yi5pbml0PWZ1bmN0aW9uKCl7Yi5wYXJzZSgpO2IuYm9keT1iLmNsZWFuQmxhbmtWYXJpYWJsZXMoYi5ib2R5KTtiLnN1YmplY3Q9Yi5jbGVhbkJsYW5rVmFyaWFibGVzKGIuc3ViamVjdCl9OwpiLnBhcnNlPWZ1bmN0aW9uKCl7Yi5zdWJqZWN0PWIuc2NvcGUuZmluZChiLnNldHRpbmdzLnN1YmplY3RTZWxlY3RvcikuaHRtbCgpO2IuYm9keT1iLnNjb3BlLmZpbmQoYi5zZXR0aW5ncy5ib2R5U2VsZWN0b3IpLmh0bWwoKTt2YXIgYT1bXTtbXS5wdXNoLmFwcGx5KGEsYi5maWVsZHMpO1tdLnB1c2guYXBwbHkoYSxiLmdsb2JhbFJlcGxhY2VtZW50cygpKTskKGEpLmVhY2goZnVuY3Rpb24oYyxkKXtjPWQudmFsdWU7dmFyIGU9W107ZS5wdXNoKGQubmFtZS50b1VwcGVyQ2FzZSgpKTtlLnB1c2goIk0iK2QubmFtZS50b1VwcGVyQ2FzZSgpKTtzd2l0Y2goZC5uYW1lLnRvVXBwZXJDYXNlKCkpe2Nhc2UgIlBIT05FIjplLnB1c2goIkVNQUlMUEhPTkUiKTtlLnB1c2goIlVTRVJQSE9ORSIpO2JyZWFrO2Nhc2UgIlNFQVJDSEVEVkVISUNMRSI6IiI9PWVtYWlsSGFuZGxlci50cmltJiYkKCIjcG9wdXB0cmltIikubGVuZ3RoJiYieyRQT1BVUFRSSU19IiE9JCgiI3BvcHVwdHJpbSIpLnZhbCgpJiYKKGVtYWlsSGFuZGxlci50cmltPSQoIiNwb3B1cHRyaW0iKS52YWwoKSxjKz0iICIrZW1haWxIYW5kbGVyLnRyaW0pOyQoIjxzcGFuPjwvc3Bhbj4iKS5hdHRyKCJpZCIsInBoU0VBUkNIVkVISUNMRSIpLnRleHQoYykuaHRtbCgpO3JldHVybjtjYXNlICJOQU1FIjplLnB1c2goIkZOQU1FIik7YnJlYWs7Y2FzZSAiREVQQVJUTUVOVCI6ZS5wdXNoKCJERVBBUlRNRU5UMiIpO2JyZWFrO2Nhc2UgIk1FU1NBR0UiOmUucHVzaCgiTUVTU0FHRVMiKX1kPW5ldyBSZWdFeHAoIntcXCQoIitlLmpvaW4oInwiKSsiKX0iLCJnIik7Yi5ib2R5PWIuYm9keS5yZXBsYWNlKGQsYyk7Yi5zdWJqZWN0PWIuc3ViamVjdC5yZXBsYWNlKGQsYyl9KX07Yi5pbml0KCk7cmV0dXJuIGJ9OwovKiogL2pzL3Zpc2l0Q29udGFjdEZvcm0uanMgKiovCnZhciBfX19kMmNfdmlzaXRDb250YWN0Rm9ybWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTM6MzUiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3Zpc2l0Q29udGFjdEZvcm1qc19jX29uPSIyMDI0LTAzLTI1IDEyOjM1OjM2IjsidXNlIHN0cmljdCI7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgiLnZpc2l0Q29udGFjdEZvcm0iKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbihhKXskKHRoaXMpLmZpbmQoIi52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyIikuaGFzQ2xhc3MoImZpeGVkUG9zaXRpb24iKXx8KGE9KCQodGhpcykub3V0ZXJXaWR0aCgpLSQodGhpcykuZmluZCgiLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXIiKS5vdXRlcldpZHRoKCkpLzIsJCh0aGlzKS5maW5kKCIudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lciIpLmNzcygibGVmdCIsYSsicHgiKSwkKHRoaXMpLmZpbmQoIi52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyIikuYWRkQ2xhc3MoImZpeGVkUG9zaXRpb24iKSl9KTskKHRoaXMpLnBhcmVudCgpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGEpeyQodGhpcykuaGFzQ2xhc3MoImlzT3BlbiIpfHwKIm1vdXNlbGVhdmUiPT09YS50eXBlfHwkKHRoaXMpLmFkZENsYXNzKCJpc09wZW4iKTtpZigibW91c2VsZWF2ZSI9PT1hLnR5cGUpe3ZhciBiPSQoYS50b0VsZW1lbnQpLmhhc0NsYXNzKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKXx8JChhLnRvRWxlbWVudCkuY2xvc2VzdCgiLnhkc29mdF9kYXRldGltZXBpY2tlciIpLmxlbmd0aDtudWxsPT09YS50b0VsZW1lbnR8fGJ8fCQodGhpcykucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfX0pO3ZhciBjPSQodGhpcykuYXR0cigiZGF0YS1tYWlsaWQiKSxkPSQodGhpcykuZmluZCgiLnRleHRTZW5kVG9FbWFpbCIpLnZhbCgpLGU9JCh0aGlzKS5maW5kKCIudGV4dFNlbmRUb0VtYWlsQWRmIikudmFsKCksZj0kKHRoaXMpLmZpbmQoIi52aXNpdENvbnRhY3RGb3JtRGVwIikudmFsKCk7JCh0aGlzKS5tYWlsRXhwcmVzc1JlcXVlc3Qoe2VtYWlsSWQ6YyxkZXBhcnRtZW50OmYsZW1haWw6e3NlbmRUbzpkLHNlbmRUb0FERjplfSxkZWZpbml0aW9uczp7c3ViamVjdDoiLmVtYWlsU3ViamVjdERlZl9WaXNpdENvbnRhY3QiLApib2R5OiIuZW1haWxCb2R5RGVmX1Zpc2l0Q29udGFjdCJ9LHBob25lOntzZWxlY3RvcjoiLnZpc2l0Q29udGFjdFBob25lIn0sb25BZnRlckluaXQ6ZnVuY3Rpb24oKXtzY2hlZHVsZT1uZXcgTWFpbFNjaGVkdWxlKHtzY29wZTokKHRoaXMpfSk7c2NoZWR1bGUuZmlyc3RDaG9pY2VPYmplY3RJZD0kKHRoaXMpLmZpbmQoIi52aXNpdENvbnRhY3REYXRlIikuYXR0cigiaWQiKTtzY2hlZHVsZS5pbml0KCk7JCh0aGlzKS5maW5kKCIudmlzaXRDb250YWN0RGF0ZSIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7MD09PSQodGhpcykudmFsKCkubGVuZ3RoPyQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgiLnZpc2l0Q29udGFjdENvbW1lbnQiKS5yZW1vdmVDbGFzcygic2hvd0NvbW1lbnQiKTokKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLmZpbmQoIi52aXNpdENvbnRhY3RDb21tZW50IikuYWRkQ2xhc3MoInNob3dDb21tZW50Iil9KTskKHRoaXMpLm9uKCJjbGljayIsIi52aXNpdENvbnRhY3RGb3JtU3VibWl0IiwKZnVuY3Rpb24oKXskKHRoaXMpLmNsb3Nlc3QoIi52aXNpdENvbnRhY3RGb3JtIikubWFpbEV4cHJlc3NSZXF1ZXN0KCkuc3VibWl0KCk7cmV0dXJuITF9KX19KX0pfSk7Ci8qKiAvanMvZ2VvTG9jYXRpb24uanMgKiovCnZhciBfX19kMmNfZ2VvTG9jYXRpb25qc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjI0IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19nZW9Mb2NhdGlvbmpzX2Nfb249IjIwMjUtMDItMjYgMDk6MzA6MTEiOyJ1c2Ugc3RyaWN0IjsKdmFyIGdlb0xvY2F0b3I9ZnVuY3Rpb24oZil7dmFyIGE9dGhpczthLm1hcHNBUElLZXk9bnVsbDthLnVzZUhUTUw1PSEwO2EuZ2VvY29kZUxvY2F0aW9uPSEwO2EuYXR0ZW1wdFBhZ2VOdW09MDthLnRyYWNrTG9jYXRpb25HQT0hMTthLmZvcmNlR2VvbG9jQXR0ZW1wdD0hMTthLnNob3dQb2ludGVyTWVzc2FnZT0hMDthLnRpbWVvdXRzPVtdO2EuYnJvd3Nlcj0iIjthLmlzTW9iaWxlPSIxIj09JCgiI2lzbW9iaWxlIikudmFsKCk7YS5nZW9sb2NTdGF0dXNlcz17T0s6IlNVQ0NFU1MiLFJFRlVTRUQ6IlJFRlVTRUQiLENPT0tJRV9BQ0NFUFRFRDoiUFJFX0FDQ0VQVEVEIixDT09LSUVfUkVGVVNFRDoiUFJFX1JFRlVTRUQiLENBTkNFTEVEOiJDQU5DRUxFRCIsRkFJTDoiRkFJTEVEIn07YS5nZW9sb2NFcnJvcnM9e0lOVkFMSURfUkVTUE9OU0U6IklOVkFMSURfUkVTUE9OU0UiLENPTk5FQ1RJT05fRkFJTEVEOiJDT05ORUNUSU9OX0ZBSUxFRCIsR0VPTE9DX0ZBSUxFRDoiR0VPTE9DX0ZBSUxFRCIsCkdFT0xPQ19SRUZVU0VEOiJHRU9MT0NfUkVGVVNFRCIsR0VPQ09ERV9GQUlMRUQ6IkdFT0NPREVfRkFJTEVEIn07YS5nZW9sb2NSZXN1bHQ9e3Jlc3VsdDowLGdlb2xvY19kYXRlOiIiLGdlb2xvY19zdGF0dXM6YS5nZW9sb2NTdGF0dXNlcy5GQUlMLGdlb2NvZGVfc3RhdHVzOjAsbGF0aXR1ZGU6MCxsb25naXR1ZGU6MCxhY2N1cmFjeTowLHBvc3RhbF9jb2RlOiIiLGdlb2NvZGVfYWRkcmVzczoiIixnZW9jb2RlX2FkZHJlc3Nfc3RyOiIifTthLmdlb2xvY0NhbGxiYWNrPWZ1bmN0aW9uKCl7ZihhLmdlb2xvY1Jlc3VsdCk7Zj1mdW5jdGlvbigpe2NvbnNvbGUubG9nKCJHZW8gY2FsbGJhY2sgYWxyZWFkeSBmaXJlZC4iKX19O2EuX2luaXQ9ZnVuY3Rpb24oKXthLmlzTW9iaWxlJiYoYS5zaG93UG9pbnRlck1lc3NhZ2U9ITEpO2lmKDA8YS5hdHRlbXB0UGFnZU51bSl7dmFyIGI9bnVsbCE9Q29va2llcy5nZXQoImdlb2xvY1BhZ2VWaWV3cyIpP3BhcnNlSW50KENvb2tpZXMuZ2V0KCJnZW9sb2NQYWdlVmlld3MiKSkrCjE6MTtDb29raWVzLnNldCgiZ2VvbG9jUGFnZVZpZXdzIixiPGEuYXR0ZW1wdFBhZ2VOdW0\/YjowLG51bGwsIi8iKTtpZihiPGEuYXR0ZW1wdFBhZ2VOdW0pcmV0dXJuIGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wLGEuZ2VvbG9jUmVzdWx0LnN0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNBTkNFTEVELGEuZ2VvbG9jQ2FsbGJhY2soKSwhMX1pZighYS5mb3JjZUdlb2xvY0F0dGVtcHQmJkNvb2tpZXMuZ2V0KCJnZW9sb2NQcm9jZXNzZWQiKSlyZXR1cm4gYj1KU09OLnBhcnNlKENvb2tpZXMuZ2V0KCJnZW9sb2NQcm9jZXNzZWQiKSksIjEiPT1iLmFjY2VwdGVkPyhhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MSxhLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZT1iLmdlb2xvY19kYXRlLGEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DT09LSUVfQUNDRVBURUQsYS5nZW9sb2NSZXN1bHQubGF0aXR1ZGU9Yi5sYXRpdGl1ZGUsYS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlPQpiLmxvbmdpdHVkZSxhLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3M9Yi5hZGRyZXNzLGEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzc19zdHI9Yi5hZGRyZXNzX3N0cik6KGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wLGEuZ2VvbG9jUmVzdWx0LnN0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNPT0tJRV9SRUZVU0VEKSxhLmdlb2xvY0NhbGxiYWNrKCksITE7aWYoImh0dHBzOiIhPWxvY2F0aW9uLnByb3RvY29sKXJldHVybiBhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MCxhLmdlb2xvY1Jlc3VsdC5zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DQU5DRUxFRCxhLmdlb2xvY0NhbGxiYWNrKCksITE7aWYobHRfSUU5fHwhbmF2aWdhdG9yLmdlb2xvY2F0aW9uKWEudXNlSFRNTDU9ITE7bmF2aWdhdG9yLmJyb3dzZXI9ZnVuY3Rpb24oKXt2YXIgYz1uYXZpZ2F0b3IudXNlckFnZW50LGQ9Yy5tYXRjaCgvKG9wZXJhfGNocm9tZXxzYWZhcml8ZmlyZWZveHxtc2llfHRyaWRlbnQoPz1cLykpXC8\/XHMqKFxkKykvaSl8fApbXTtpZigvdHJpZGVudC9pLnRlc3QoZFsxXSkpe3ZhciBlPS9cYnJ2WyA6XSsoXGQrKS9nLmV4ZWMoYyl8fFtdO3JldHVybiJJRXhwbG9yZXIgIisoZVsxXXx8IiIpfWlmKCJDaHJvbWUiPT09ZFsxXSYmKGU9Yy5tYXRjaCgvXGJPUFJcLyhcZCspLyksbnVsbCE9ZSkpcmV0dXJuIk9wZXJhICIrZVsxXTtkPWRbMl0\/W2RbMV0sZFsyXV06W25hdmlnYXRvci5hcHBOYW1lLG5hdmlnYXRvci5hcHBWZXJzaW9uLCItPyJdO251bGwhPShlPWMubWF0Y2goL3ZlcnNpb25cLyhcZCspL2kpKSYmZC5zcGxpY2UoMSwxLGVbMV0pO3JldHVybiBkLmpvaW4oIiAiKX0oKTthLmJyb3dzZXI9bmF2aWdhdG9yLmJyb3dzZXI7cmV0dXJuITB9O2EuaGFuZGxlTG9jYXRpb25TdWNjZXNzPWZ1bmN0aW9uKCl7dmFyIGI9IkxhdGl0dWRlOiAiK2EuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlKyI7IExvbmdpdHVkZTogIithLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGU7Mzw9YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUubGVuZ3RoJiYKKGI9YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUpO2EudHJhY2tMb2NhdGlvbigiR2VvbG9jYXRpb24iLCJBY2NlcHRlZCIsYik7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7Yj1uZXcgRGF0ZTtiLnNldEhvdXJzKDIzLDU5LDU5LDApO0Nvb2tpZXMuc2V0KCJnZW9sb2NQcm9jZXNzZWQiLEpTT04uc3RyaW5naWZ5KHthY2NlcHRlZDoxLGdlb2xvY19kYXRlOmEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlLGxhdGl0dWRlOmEuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlLGxvbmdpdHVkZTphLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGUscG9zdGFsX2NvZGU6YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsYWNjdXJhY3k6YS5nZW9sb2NSZXN1bHQuYWNjdXJhY3ksYWRkcmVzczphLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3MsYWRkcmVzc19zdHI6YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cn0pLGIsIi8iKTthLmdlb2xvY0NhbGxiYWNrKCl9OwphLmhhbmRsZUxvY2F0aW9uRXJyb3I9ZnVuY3Rpb24oYixjKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0iIjthLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MDthLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZT0obmV3IERhdGUpLmdldFRpbWUoKTthLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuRkFJTDtzd2l0Y2goYil7Y2FzZSBhLmdlb2xvY0Vycm9ycy5JTlZBTElEX1JFU1BPTlNFOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IEludmFsaWQgcmVzcG9uc2UgZGF0YSI7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5DT05ORUNUSU9OX0ZBSUxFRDpjPSJHZW9sb2MgZXJyb3IgbWVzYWdlOiBDb25lY3Rpb24gZmFpbGVkIjticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19SRUZVU0VEOmEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5SRUZVU0VEO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuR0VPTE9DX0ZBSUxFRDpicmVhazsKY2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9DT0RFX0ZBSUxFRDpjPSJHZW9sb2MgZXJyb3IgbWVzYWdlOiBJbnZhbGlkIHJlc3BvbnNlIGRhdGEiO2JyZWFrO2RlZmF1bHQ6Yz0iVW5rbm93biBlcnJvciBvY3VycmVkIn1hLnRyYWNrTG9jYXRpb24oIkdlb2xvY2F0aW9uIiwiRmFpbGVkIixjKTthLmdlb2xvY0NhbGxiYWNrKCl9O2EuZ2V0TG9jYXRpb249ZnVuY3Rpb24oKXthLl9pbml0KCkmJigwPT1hLnVzZUhUTUw1P2EuZ2V0R29vZ2xlU2VydmljZUxvY2F0aW9uKCk6YS5nZXRIVE1MNUxvY2F0aW9uKCkpfTthLmdldEdvb2dsZVNlcnZpY2VMb2NhdGlvbj1mdW5jdGlvbigpe2EuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCk7cmV0dXJuITF9O2EuZ2V0SFRNTDVMb2NhdGlvbj1mdW5jdGlvbigpe2Euc2hvd0dlb2xvY01zZygpO25hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24oYil7YS5oaWRlR2VvbG9jTXNnKCk7YS5jbGVhclNldFRpbWVvdXRzKCk7CmEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0xO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5PSzthLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZT1iLmNvb3Jkcy5sYXRpdHVkZTthLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGU9Yi5jb29yZHMubG9uZ2l0dWRlO2EuZ2VvbG9jUmVzdWx0LmFjY3VyYWN5PWIuY29vcmRzLmFjY3VyYWN5O2lmKDEhPWEuZ2VvY29kZUxvY2F0aW9uKXJldHVybiBhLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpLCExO2EubGF0TG9uZ0dlb2NvZGUoYi5jb29yZHMubGF0aXR1ZGUsYi5jb29yZHMubG9uZ2l0dWRlKX0sZnVuY3Rpb24oYil7Y29uc29sZS5sb2coYik7dmFyIGM9Ikdlb2xvYyBlcnJvciBjb2RlOiAiK2IuY29kZSsiLCBnZW9sb2MgZXJyb3IgbWVzYWdlOiAiK2IubWVzc2FnZTthLmhpZGVHZW9sb2NNc2coKTthLmNsZWFyU2V0VGltZW91dHMoKTtDb29raWVzLnNldCgiZ2VvbG9jUHJvY2Vzc2VkIixKU09OLnN0cmluZ2lmeSh7YWNjZXB0ZWQ6MH0pLAoxLCIvIik7dmFyIGQ9YS5nZW9sb2NFcnJvcnMuR0VPTE9DX1JFRlVTRUQ7MSE9cGFyc2VJbnQoYi5jb2RlKSYmKGQ9YS5nZW9sb2NFcnJvcnMuR0VPTE9DX0ZBSUxFRCk7YS5oYW5kbGVMb2NhdGlvbkVycm9yKGQsYyl9LHt0aW1lb3V0OjI1RTN9KX07YS5sYXRMb25nR2VvY29kZT1mdW5jdGlvbihiLGMpe2EuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcz1iKyJ8IitjO2EuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzc19zdHI9IkxhdGl0dWRlOiAiK2IrIjsgTG9uZ2l0dWRlOiAiK2M7YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKX07YS50cmFja1Bvc3RhbD1mdW5jdGlvbigpe2lmKCRjb29raWU9Q29va2llcy5nZXQoIkhUTUw1R2VvIikpaWYoJGNvb2tpZT1KU09OLnBhcnNlKCRjb29raWUpLCRjb29raWUucG9zdGFsX2NvZGUpcmV0dXJuO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlJiYiIiE9PWEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlKXt2YXIgYj0KYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUrInwiK2EuZ2VvbG9jUmVzdWx0LmFjY3VyYWN5OyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLCJIVE1MNUdlby5wb3N0YWwiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsIkhUTUw1R2VvLnBvc3RhbCIpKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLCJIVE1MNUdlby5wb3N0YWwiKTtiPW5ldyBEYXRlO2Iuc2V0SG91cnMoMjMsNTksNTksMCk7Q29va2llcy5zZXQoIkhUTUw1R2VvIixKU09OLnN0cmluZ2lmeSh7cG9zdGFsX2NvZGU6MX0pLGIsIi8iKX19OwphLmdldEFkZHJlc3NDb29yZD1mdW5jdGlvbihiLGMpe3JldHVybiExfTthLnRyYWNrTG9jYXRpb249ZnVuY3Rpb24oYixjLGQpe2lmKCFhLnRyYWNrTG9jYXRpb25HQSlyZXR1cm4hMX07YS5jbGVhclNldFRpbWVvdXRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPTA7YjxhLnRpbWVvdXRzLmxlbmd0aDtiKyspY2xlYXJUaW1lb3V0KGEudGltZW91dHNbYl0pO2EudGltZW91dHM9W119O2Euc2hvd0dlb2xvY01zZz1mdW5jdGlvbigpe2lmKCFhLnNob3dQb2ludGVyTWVzc2FnZSlyZXR1cm4hMTthLmNsZWFyU2V0VGltZW91dHMoKTt2YXIgYj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpfSwzRTQpO2EudGltZW91dHMucHVzaChiKTtpZigtMTxhLmJyb3dzZXIuaW5kZXhPZigiRmlyZWZveCIpfHwtMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKSkkKCIuZ2VvbG9jLW1vZGFsLWJnIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCk7Y2xlYXJUaW1lb3V0KGIpfSksCiQoIiNnZW9sb2NhdGlvbk1zZyIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpO2NsZWFyVGltZW91dChiKX0pLCQoIiNnZW9sb2NhdGlvbk1zZ0lFIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCk7Y2xlYXJUaW1lb3V0KGIpfSk7dmFyIGM9Imdlb2xvY2F0aW9uTXNnIixkPSEwLGU9e3RvcDoiMCIsbGVmdDoiMCJ9O3N3aXRjaCghMCl7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKTplPXtib3R0b206IjBweCIsbGVmdDoiNDMlIn07Yz0iZ2VvbG9jYXRpb25Nc2dJRSI7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiRmlyZWZveCIpOmU9e3RvcDoiOTBweCIsbGVmdDoiNXB4In07JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiNzVweCIpOyQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygidG9wIiwiMzVweCIpOy0xPT0kKCIjdHh0VXNlckFnZW50IikudmFsKCkuaW5kZXhPZigiV2luZG93cyIpJiYKJCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMTc1cHgiKTticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJDaHJvbWUiKTplPXt0b3A6IjY1cHgiLGxlZnQ6IjBweCJ9OyQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjIxMHB4Iik7LTE9PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKS5pbmRleE9mKCJXaW5kb3dzIikmJihlPXt0b3A6Ijc1cHgiLGxlZnQ6IjUwcHgifSwkKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIyNDBweCIpKTticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJTYWZhcmkiKTplPXt0b3A6IjUxNXB4IixsZWZ0OiIzNSUifTtkPSEwO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIk9wZXJhIik6ZT17dG9wOiIwIixsZWZ0OiIwIn07ZD0hMTticmVhaztkZWZhdWx0OmU9e3RvcDoiMCIsbGVmdDoiMCJ9LGQ9ITF9ZCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiLnJldmVhbC1tb2RhbC1iZyIpLnZhbCgpJiYKImJsb2NrIj09JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiZGlzcGxheSIpJiYkKCIucmV2ZWFsLW1vZGFsLWJnIikuaGlkZSgpLCQoIi5nZW9sb2MtbW9kYWwtYmciKS5zaG93KCksJCgiIyIrYykuY3NzKGUpLCQoIiMiK2MpLnNob3coKSwidW5kZWZpbmVkIj09dHlwZW9mIHNpdGVTZWN0aW9uJiYoc2l0ZVNlY3Rpb249IlVOREVGSU5FRCIpLGEudHJhY2tMb2NhdGlvbigiR2VvbG9jYXRpb24iLCJTZWN0aW9uLSIrc2l0ZVNlY3Rpb24sIiIpKX07YS5oaWRlR2VvbG9jTXNnPWZ1bmN0aW9uKGIpe2lmKCFhLnNob3dQb2ludGVyTWVzc2FnZSlyZXR1cm4hMTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWIpYj0hMTskKCIuZ2VvbG9jLW1vZGFsLWJnIikuaGlkZSgpO2J8fCgkKCIjZ2VvbG9jYXRpb25Nc2ciKS5oaWRlKCksJCgiI2dlb2xvY2F0aW9uTXNnSUUiKS5oaWRlKCkpfTthLmdlb2xvY0ZhaWw9ZnVuY3Rpb24oKXstMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKSYmCmxvY2F0aW9uLnJlbG9hZCgpO292ZXJsYXlPbmx5PSEwO2lmKC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iil8fC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpKW92ZXJsYXlPbmx5PSExO2EuaGlkZUdlb2xvY01zZyhvdmVybGF5T25seSk7cmV0dXJuITF9O2EuZ2V0RGlzdGFuY2U9ZnVuY3Rpb24oYixjLGQpe3JldHVybiBhLmdldERpc3RhbmNlSGF2ZXJzaW5lKGIsYyl9O2EuZ2V0RGlzdGFuY2VIYXZlcnNpbmU9ZnVuY3Rpb24oYixjKXt2YXIgZD0oYy5sYXQtYi5sYXQpKk1hdGguUEkvMTgwLGU9KGMubG9uZy1iLmxvbmcpKk1hdGguUEkvMTgwO2I9TWF0aC5zaW4oZC8yKSpNYXRoLnNpbihkLzIpK01hdGguY29zKGIubGF0Kk1hdGguUEkvMTgwKSpNYXRoLmNvcyhjLmxhdCpNYXRoLlBJLzE4MCkqTWF0aC5zaW4oZS8yKSpNYXRoLnNpbihlLzIpO3JldHVybigxMjc1NjI3NCpNYXRoLmF0YW4yKE1hdGguc3FydChiKSxNYXRoLnNxcnQoMS1iKSkpLnRvRml4ZWQoMil9O2EuZ2V0RGlzdGFuY2VHbWFwcz0KZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5nZXREaXN0YW5jZUhhdmVyc2luZShiLGMpfX07Ci8qKiAvanMvdG9hc3RyLmpzICoqLwp2YXIgX19fZDJjX3RvYXN0cmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6MDkiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3RvYXN0cmpzX2Nfb249IjIwMjQtMDMtMjYgMTI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKHope3ooWyJqcXVlcnkiXSxmdW5jdGlvbihkKXtyZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGEsYyl7YXx8KGE9bCgpKTtmPWQoIiMiK2EuY29udGFpbmVySWQpO2lmKGYubGVuZ3RoKXJldHVybiBmO2MmJihmPWQoIjxkaXYvPiIpLmF0dHIoImlkIixhLmNvbnRhaW5lcklkKS5hZGRDbGFzcyhhLnBvc2l0aW9uQ2xhc3MpLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpLmF0dHIoInJvbGUiLCJhbGVydCIpLmNzcygiY29sb3IiLGEuY29sb3IpLGYuYXBwZW5kVG8oZChhLnRhcmdldCkpKTtyZXR1cm4gZn1mdW5jdGlvbiBBKGEsYyxlKXtlPWUmJmUuZm9yY2U\/ZS5mb3JjZTohMTtyZXR1cm4gYSYmKGV8fDA9PT1kKCI6Zm9jdXMiLGEpLmxlbmd0aCk\/KGFbYy5oaWRlTWV0aG9kXSh7ZHVyYXRpb246Yy5oaWRlRHVyYXRpb24sZWFzaW5nOmMuaGlkZUVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe3UoYSl9fSksITApOiExfWZ1bmN0aW9uIEUoKXtyZXR1cm57dGFwVG9EaXNtaXNzOiEwLAp0b2FzdENsYXNzOiJ0b2FzdCIsY29udGFpbmVySWQ6InRvYXN0LWNvbnRhaW5lciIsZGVidWc6ITEsc2hvd01ldGhvZDoiZmFkZUluIixzaG93RHVyYXRpb246MzAwLHNob3dFYXNpbmc6InN3aW5nIixvblNob3duOmZ1bmN0aW9uKCl7ZCgiLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24iKS5hZGRDbGFzcygid2l0aFRvYXN0ZXIiKTtkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5hZGRDbGFzcygid2l0aFRvYXN0ZXIiKX0saGlkZU1ldGhvZDoiZmFkZU91dCIsaGlkZUR1cmF0aW9uOjFFMyxoaWRlRWFzaW5nOiJzd2luZyIsb25IaWRkZW46ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpO2QoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpfSxvbkNsb3NlOmZ1bmN0aW9uKCl7ZCgiLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24iKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKTsKZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIil9LGV4dGVuZGVkVGltZU91dDoxRTMsaWNvbkNsYXNzZXM6e2Vycm9yOiJ0b2FzdC1lcnJvciIsaW5mbzoidG9hc3QtaW5mbyIsc3VjY2VzczoidG9hc3Qtc3VjY2VzcyIsd2FybmluZzoidG9hc3Qtd2FybmluZyJ9LGljb25DbGFzczoidG9hc3QtaW5mbyIsY29sb3I6IiNGRkYiLGJnQ29sb3I6IiIscG9zaXRpb25DbGFzczoidG9hc3QtdG9wLXJpZ2h0Iix0aW1lT3V0OjVFMyx0aXRsZUNsYXNzOiJ0b2FzdC10aXRsZSIsbWVzc2FnZUNsYXNzOiJ0b2FzdC1tZXNzYWdlIix0YXJnZXQ6ImJvZHkiLGNsb3NlSHRtbDonPGJ1dHRvbiB0eXBlPSJidXR0b24iPiZ0aW1lczs8L2J1dHRvbj4nLG5ld2VzdE9uVG9wOiEwLHByZXZlbnREdXBsaWNhdGVzOiExLHByb2dyZXNzQmFyOiExfX1mdW5jdGlvbiByKGEpe2Z1bmN0aW9uIGMoayl7aWYoIWQoIjpmb2N1cyIsZykubGVuZ3RofHxrKXJldHVybiBjbGVhclRpbWVvdXQoaC5pbnRlcnZhbElkKSwKZ1tiLmhpZGVNZXRob2RdKHtkdXJhdGlvbjpiLmhpZGVEdXJhdGlvbixlYXNpbmc6Yi5oaWRlRWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dShnKTtpZihiLm9uSGlkZGVuJiYiaGlkZGVuIiE9PW0uc3RhdGUpYi5vbkhpZGRlbigpO20uc3RhdGU9ImhpZGRlbiI7bS5lbmRUaW1lPW5ldyBEYXRlO3AmJnAobSl9fSl9ZnVuY3Rpb24gZSgpe2lmKDA8Yi50aW1lT3V0fHwwPGIuZXh0ZW5kZWRUaW1lT3V0KXY9c2V0VGltZW91dChjLGIuZXh0ZW5kZWRUaW1lT3V0KSxoLm1heEhpZGVUaW1lPXBhcnNlRmxvYXQoYi5leHRlbmRlZFRpbWVPdXQpLGguaGlkZUV0YT0obmV3IERhdGUpLmdldFRpbWUoKStoLm1heEhpZGVUaW1lfWZ1bmN0aW9uIEYoKXtjbGVhclRpbWVvdXQodik7aC5oaWRlRXRhPTA7Zy5zdG9wKCEwLCEwKVtiLnNob3dNZXRob2RdKHtkdXJhdGlvbjpiLnNob3dEdXJhdGlvbixlYXNpbmc6Yi5zaG93RWFzaW5nfSl9ZnVuY3Rpb24gRygpe3ZhciBrPShoLmhpZGVFdGEtKG5ldyBEYXRlKS5nZXRUaW1lKCkpLwpoLm1heEhpZGVUaW1lKjEwMDt3LndpZHRoKGsrIiUiKX12YXIgYj1sKCkseD1hLmljb25DbGFzc3x8Yi5pY29uQ2xhc3M7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5vcHRpb25zT3ZlcnJpZGUmJihiPWQuZXh0ZW5kKGIsYS5vcHRpb25zT3ZlcnJpZGUpLHg9YS5vcHRpb25zT3ZlcnJpZGUuaWNvbkNsYXNzfHx4KTthOntpZihiLnByZXZlbnREdXBsaWNhdGVzKWlmKGEubWVzc2FnZT09PXkpe3ZhciBxPSEwO2JyZWFrIGF9ZWxzZSB5PWEubWVzc2FnZTtxPSExfWlmKCFxKXtCKys7Zj1uKGIsITApO3ZhciB2PW51bGwsZz1kKCI8ZGl2Lz4iKTtxPWQoIjxkaXYvPiIpO3ZhciBDPWQoIjxkaXYvPiIpLHc9ZCgiPGRpdi8+IiksdD1kKGIuY2xvc2VIdG1sKSxoPXtpbnRlcnZhbElkOm51bGwsaGlkZUV0YTpudWxsLG1heEhpZGVUaW1lOm51bGx9LG09e3RvYXN0SWQ6QixzdGF0ZToidmlzaWJsZSIsc3RhcnRUaW1lOm5ldyBEYXRlLG9wdGlvbnM6YixtYXA6YX07NjxiLmJnQ29sb3IubGVuZ3RoJiYKZy5jc3MoImJhY2tncm91bmQtY29sb3IiLGIuYmdDb2xvcik7YS5pY29uQ2xhc3MmJmcuYWRkQ2xhc3MoYi50b2FzdENsYXNzKS5hZGRDbGFzcyh4KTthLnRpdGxlJiYocS5hcHBlbmQoYS50aXRsZSkuYWRkQ2xhc3MoYi50aXRsZUNsYXNzKSxnLmFwcGVuZChxKSk7YS5tZXNzYWdlJiYoQy5hcHBlbmQoYS5tZXNzYWdlKS5hZGRDbGFzcyhiLm1lc3NhZ2VDbGFzcyksZy5hcHBlbmQoQykpO2IuY2xvc2VCdXR0b24mJih0LmFkZENsYXNzKCJ0b2FzdC1jbG9zZS1idXR0b24iKS5hdHRyKCJyb2xlIiwiYnV0dG9uIiksZy5wcmVwZW5kKHQpKTtiLnByb2dyZXNzQmFyJiYody5hZGRDbGFzcygidG9hc3QtcHJvZ3Jlc3MiKSxnLnByZXBlbmQodykpO2IubmV3ZXN0T25Ub3A\/Zi5wcmVwZW5kKGcpOmYuYXBwZW5kKGcpO2cuaGlkZSgpO2dbYi5zaG93TWV0aG9kXSh7ZHVyYXRpb246Yi5zaG93RHVyYXRpb24sZWFzaW5nOmIuc2hvd0Vhc2luZyxjb21wbGV0ZTpiLm9uU2hvd259KTswPGIudGltZU91dCYmCih2PXNldFRpbWVvdXQoYyxiLnRpbWVPdXQpLGgubWF4SGlkZVRpbWU9cGFyc2VGbG9hdChiLnRpbWVPdXQpLGguaGlkZUV0YT0obmV3IERhdGUpLmdldFRpbWUoKStoLm1heEhpZGVUaW1lLGIucHJvZ3Jlc3NCYXImJihoLmludGVydmFsSWQ9c2V0SW50ZXJ2YWwoRywxMCkpKTsoZnVuY3Rpb24oKXtnLm9uKCJtb3VzZWVudGVyIixGKS5vbigibW91c2VsZWF2ZSIsZSk7aWYoIWIub25jbGljayYmYi50YXBUb0Rpc21pc3MpZy5vbigiY2xpY2siLGMpO2lmKGIuY2xvc2VCdXR0b24mJnQpdC5vbigiY2xpY2siLGZ1bmN0aW9uKGspe2suc3RvcFByb3BhZ2F0aW9uP2suc3RvcFByb3BhZ2F0aW9uKCk6dm9pZCAwIT09ay5jYW5jZWxCdWJibGUmJiEwIT09ay5jYW5jZWxCdWJibGUmJihrLmNhbmNlbEJ1YmJsZT0hMCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGIub25DbG9zZSliLm9uQ2xvc2UoKTtjKCEwKX0pO2lmKGIub25jbGljaylnLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLm9uY2xpY2soKTsKYygpfSl9KSgpO3AmJnAobSk7Yi5kZWJ1ZyYmY29uc29sZSYmY29uc29sZS5sb2cobSk7cmV0dXJuIGd9fWZ1bmN0aW9uIGwoKXtyZXR1cm4gZC5leHRlbmQoe30sRSgpLEQub3B0aW9ucyl9ZnVuY3Rpb24gdShhKXtmfHwoZj1uKCkpO2EuaXMoIjp2aXNpYmxlIil8fChhLnJlbW92ZSgpLDA9PT1mLmNoaWxkcmVuKCkubGVuZ3RoJiYoZi5yZW1vdmUoKSx5PXZvaWQgMCkpfXZhciBmLHAsQj0wLEQ9e2NsZWFyOmZ1bmN0aW9uKGEsYyl7dmFyIGU9bCgpO2Z8fG4oZSk7aWYoIUEoYSxlLGMpKWZvcihhPWYuY2hpbGRyZW4oKSxjPWEubGVuZ3RoLTE7MDw9YztjLS0pQShkKGFbY10pLGUpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7dmFyIGM9bCgpO2Z8fG4oYyk7YSYmMD09PWQoIjpmb2N1cyIsYSkubGVuZ3RoP3UoYSk6Zi5jaGlsZHJlbigpLmxlbmd0aCYmZi5yZW1vdmUoKX0sZXJyb3I6ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJlcnJvciIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5lcnJvciwKbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX0sZ2V0Q29udGFpbmVyOm4saW5mbzpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6ImluZm8iLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuaW5mbyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSxvcHRpb25zOnt9LHN1YnNjcmliZTpmdW5jdGlvbihhKXtwPWF9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJzdWNjZXNzIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLnN1Y2Nlc3MsbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX0sdmVyc2lvbjoiMi4xLjEiLHdhcm5pbmc6ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJ3YXJuaW5nIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLndhcm5pbmcsbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX19LHk7cmV0dXJuIER9KCl9KX0pKCJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiYKZGVmaW5lLmFtZD9kZWZpbmU6ZnVuY3Rpb24oeixkKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWQocmVxdWlyZSgianF1ZXJ5IikpOndpbmRvdy50b2FzdHI9ZCh3aW5kb3cualF1ZXJ5KX0pOwovKiogL2pzL3NsaWRlV2lkZ2V0LmpzICoqLwp2YXIgX19fZDJjX3NsaWRlV2lkZ2V0anNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzoxMSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfc2xpZGVXaWRnZXRqc19jX29uPSIyMDI1LTA0LTA0IDE3OjMwOjExIjsidXNlIHN0cmljdCI7ClNsaWRlRm9ybT1mdW5jdGlvbihnKXtnPWd8fCJTTVNMZWFkIjt2YXIgYz10aGlzO2MucmVzZXRWYWx1ZXM9e307alF1ZXJ5KGZ1bmN0aW9uKGEpeyhuZXcgRm9ybSkubWFza1Bob25lKCIjcGhvbmVTbGlkZSIpO2EudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InN1bW1hcnkiLHNjcm9sbFRvOiExfSk7dmFyIGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI1NsaWRlV2lkZ2V0Rm9ybSAjZGVwYXJ0bWVudCIpLGQ9KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYWdlU2VjdGlvbiIpLnZhbHVlfHwiIikudG9Mb3dlckNhc2UoKTtsZXQgZj1hKCIjUEFHRUlEIikubGVuZ3RoJiYiY2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk\/ZW1haWxIYW5kbGVyLmdldERlcCgpLnRvTG93ZXJDYXNlKCk6ZDtmb3IobGV0IGUgb2YgYi5vcHRpb25zKWUuaGlkZGVuPW51bGw9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiMiK2UudmFsdWUrIlNlY3Rpb25uYWJsZWQiKSxlLnNlbGVjdGVkPQplLnZhbHVlPT09ZjtiPSIiO1sibmV3IiwidXNlZCJdLmluY2x1ZGVzKGQpJiYoYj0oQ29va2llcy5nZXQoIm5ldyI9PWQ\/Imxhc3RuZXd2ZWhpY2xlIjoibGFzdHZpZXdlZHZlaGljbGUiKXx8IiIpLnNwbGl0KCJ8fHwiKS5qb2luKCIgIikucmVwbGFjZUFsbCgifCIsIiIpKTtiLmxlbmd0aCYmKGI9IkVOR0xJU0giPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsdWU\/YG9uIHRoaXMgJHtifWA6YHN1ciBjZSAke2J9YCk7ZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjU2xpZGVXaWRnZXRGb3JtICNxdWVyeV9hcmVhIik7ZC52YWx1ZT1kLnZhbHVlLnJlcGxhY2UoLyhcdHxcbikqL2csIiIpLnJlcGxhY2UoIiMjVkVISUNMRSMjIixiKTthKCIjc2xpZGVpdCAub3BlbiIpLm9uKCJjbGljayIsYy5sb2dDbGlja0V2ZW50KX0pO2MubG9nQ2xpY2tFdmVudD1mdW5jdGlvbihhKXt0cnl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCgiVGV4dC11cyIsCiJTTVNfQ0xJQ0tfVEVYVF9VUyIpfWNhdGNoKGIpe2NvbnNvbGUubG9nKGIpfX07Yy5yZXNldEZpZWxkcz1mdW5jdGlvbigpeyQoIiNTbGlkZVdpZGdldEZvcm0iKS5maW5kKCJpbnB1dCx0ZXh0YXJlYSIpLmVhY2goZnVuY3Rpb24oYSxiKXskKGIpLnZhbCgiIil9KX07Yy5zZW5kTWFpbD1mdW5jdGlvbigpe3ZhciBhPW5ldyBNYWlsRGVmaW5pdGlvblBhcnNlcigkKCIjc2xpZGVpdCIpLHtmaWVsZHM6JCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLnNlcmlhbGl6ZUFycmF5KCksc3ViamVjdFNlbGVjdG9yOiQoIiNlbWFpbFNsaWRlU3ViamVjdCIpLGJvZHlTZWxlY3RvcjokKCIjZW1haWxTbGlkZUJvZHkiKX0pLGI9MDwkKCIjIiskKCIjU2xpZGVXaWRnZXRGb3JtICNkZXBhcnRtZW50IikudmFsKCkrIkVtYWlsU2xpZGUiKS5sZW5ndGg\/JCgiIyIrJCgiI1NsaWRlV2lkZ2V0Rm9ybSAjZGVwYXJ0bWVudCIpLnZhbCgpKyJFbWFpbFNsaWRlIikudmFsKCk6IiIsZD0wPCQoIiMiKyQoIiNTbGlkZVdpZGdldEZvcm0gI2RlcGFydG1lbnQiKS52YWwoKSsKIkFkZkVtYWlsU2xpZGUiKS5sZW5ndGg\/JCgiIyIrJCgiI1NsaWRlV2lkZ2V0Rm9ybSAjZGVwYXJ0bWVudCIpLnZhbCgpKyJBZGZFbWFpbFNsaWRlIikudmFsKCk6IiI7ZW1haWxIYW5kbGVyLnN1YmplY3Q9YS5zdWJqZWN0O2VtYWlsSGFuZGxlci5ib2R5PWEuYm9keTtlbWFpbEhhbmRsZXIubWFpbElEPWc7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9JCgiI1NsaWRlV2lkZ2V0Rm9ybSAjbmFtZVNsaWRlIikudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT0kKCIjU2xpZGVXaWRnZXRGb3JtIC5waG9uZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVua25vd24iO2VtYWlsSGFuZGxlci5zZW5kVG89YjtlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWQ7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9JCgiI1NsaWRlV2lkZ2V0Rm9ybSAjZGVwYXJ0bWVudCBvcHRpb246c2VsZWN0ZWQiKS52YWwoKTstMSE9ZW1haWxIYW5kbGVyLmJvZHkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ0ZXN0QGQyY21lZGlhLmNhIikmJgokKCJpbnB1dC50ZXN0bW9kZSIpLnZhbCgiMSIpO3ZhciBmPW1haWxTZW50SGFuZGxlcjtlbWFpbEhhbmRsZXIuY2FsbGJhY2s9ZnVuY3Rpb24oZSl7ZT8oYy5zaG93TWVzc2FnZSgiI2VtYWlsU2VudE1zZyIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXskKCJpbnB1dCNjbG9zZS1pdGVtIikucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKTtjLmhpZGVNZXNzYWdlKCIjZW1haWxTZW50TXNnIik7Yy5yZXNldEZpZWxkcygpfSwzRTMpKToidW5kZWZpbmVkIiE9dHlwZW9mIGYmJmYuc2hvd0ZhaWwoKX07ZW1haWxIYW5kbGVyLnNlbmRNYWlsKCExKX07Yy5zdWJtaXRTbGlkZUZvcm09ZnVuY3Rpb24oKXskLnZhbGlkaXR5LnN0YXJ0KCk7JCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7JCgiI1NsaWRlV2lkZ2V0Rm9ybSAjbmFtZVNsaWRlIikucmVxdWlyZSgpLm5vbkh0bWwoKTskKCIjU2xpZGVXaWRnZXRGb3JtICNkZXBhcnRtZW50IikucmVxdWlyZSgpOwokKCIjU2xpZGVXaWRnZXRGb3JtIC5waG9uZSIpLnJlcXVpcmUoKS52YWxpZGF0ZVBob25lKCk7aWYoJC52YWxpZGl0eS5lbmQoKS52YWxpZCl7dHJ5e2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoIlRleHQtdXMiLCJTTVNfTEVBRF9URVhUX1VTIil9Y2F0Y2goYSl7Y29uc29sZS5sb2coYSl9Yy5zZW5kTWFpbCgpfWVsc2UgJCgiI1NsaWRlV2lkZ2V0Rm9ybSAjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5zaG93KCksJChkb2N1bWVudCkub24oIm1vdXNlZG93biIsZnVuY3Rpb24oYSl7JC52YWxpZGl0eS5jbGVhcigpOyQoIiNTbGlkZVdpZGdldEZvcm0gI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaGlkZSgpOyQodGhpcykub2ZmKGEpfSk7cmV0dXJuITF9O2MubW92ZVRvTmV4dElucHV0PWZ1bmN0aW9uKGEpe2E9JChhLnRhcmdldCk7dmFyIGI9YS5kYXRhKCJuZXh0SW5wdXQiKSxkPWEudmFsKCkucmVwbGFjZSgvW14wLTldL2csIiIpO2lmKCFiKXJldHVybiEwO2QhPT0KYS5kYXRhKCJsYXN0VmFsIikmJihhLmRhdGEoImxhc3RWYWwiLGQpLDM8PWQubGVuZ3RoJiYkKGIpLnRyaWdnZXIoImZvY3VzIikpfTtjLm1vdmVUb05leHREaXY9ZnVuY3Rpb24oYSl7dmFyIGI9U3RyaW5nLmZyb21DaGFyQ29kZShhLndoaWNoKTthPSQodGhpcyk7dmFyIGQ9YS5kYXRhKCJuZXh0RGl2Iik7IWlzTmFOKHBhcnNlSW50KGIpKSYmZCYmKGI9YS52YWwoKS5yZXBsYWNlKC9bXjAtOV0vZywiIiksYS52YWwoYiksMzw9Yi5sZW5ndGgmJiQoZCkudHJpZ2dlcigiZm9jdXMiKSl9O2Muc2hvd01lc3NhZ2U9ZnVuY3Rpb24oYSl7JCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLmZpbmQoYSkuZmFkZUluKCl9O2MuaGlkZU1lc3NhZ2U9ZnVuY3Rpb24oYSl7JCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLmZpbmQoYSkuZmFkZU91dCgpfTtyZXR1cm4gY307Ci8qKiAvanMvaHRtbDJjYW52YXMuanMgKiovCnZhciBfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA2OjI2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzQ6NTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfaHRtbDJjYW52YXNqc19jX29uPSIyMDIzLTAxLTEyIDExOjM2OjM3IjsidXNlIHN0cmljdCI7X19fZDJjX2h0bWwyY2FudmFzanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NjoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19odG1sMmNhbnZhc2pzX2Nfb249IjIwMjItMDItMDcgMjI6MzA6MDgiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKE4sUixRKXtmdW5jdGlvbiBxYShkLHAscSl7dmFyIGs9ZC5ydW50aW1lU3R5bGUmJmQucnVudGltZVN0eWxlW3BdLGM9ZC5zdHlsZTtpZighL14tP1swLTldK1wuP1swLTldKig\/OnB4KT8kL2kudGVzdChxKSYmL14tP1xkLy50ZXN0KHEpKXt2YXIgbj1jLmxlZnQ7ayYmKGQucnVudGltZVN0eWxlLmxlZnQ9ZC5jdXJyZW50U3R5bGUubGVmdCk7Yy5sZWZ0PSJmb250U2l6ZSI9PT1wPyIxZW0iOnF8fDA7cT1jLnBpeGVsTGVmdCsicHgiO2MubGVmdD1uO2smJihkLnJ1bnRpbWVTdHlsZS5sZWZ0PWspfXJldHVybi9eKHRoaW58bWVkaXVtfHRoaWNrKSQvaS50ZXN0KHEpP3E6TWF0aC5yb3VuZChwYXJzZUZsb2F0KHEpKSsicHgifWZ1bmN0aW9uIHhhKGQpe3JldHVybiBwYXJzZUludChkLDEwKX1mdW5jdGlvbiBqYShkKXtyZXR1cm4tMSE9PWQudG9TdHJpbmcoKS5pbmRleE9mKCIlIil9ZnVuY3Rpb24geWEoZCxwKXt2YXIgcT1bXTtyZXR1cm57c3RvcmFnZTpxLHdpZHRoOmQsCmhlaWdodDpwLGNsaXA6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJjbGlwIixhcmd1bWVudHN9KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToidHJhbnNsYXRlIixhcmd1bWVudHN9KX0sZmlsbDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImZpbGwiLGFyZ3VtZW50c30pfSxzYXZlOmZ1bmN0aW9uKCl7cS5wdXNoKHt0eXBlOiJmdW5jdGlvbiIsbmFtZToic2F2ZSIsYXJndW1lbnRzfSl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJyZXN0b3JlIixhcmd1bWVudHN9KX0sZmlsbFJlY3Q6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJmaWxsUmVjdCIsYXJndW1lbnRzfSl9LGNyZWF0ZVBhdHRlcm46ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJjcmVhdGVQYXR0ZXJuIixhcmd1bWVudHN9KX0sCmRyYXdTaGFwZTpmdW5jdGlvbigpe3ZhciBrPVtdO3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLG5hbWU6ImRyYXdTaGFwZSIsYXJndW1lbnRzOmt9KTtyZXR1cm57bW92ZVRvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJtb3ZlVG8iLGFyZ3VtZW50c30pfSxsaW5lVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImxpbmVUbyIsYXJndW1lbnRzfSl9LGFyY1RvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJhcmNUbyIsYXJndW1lbnRzfSl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24oKXtrLnB1c2goe25hbWU6ImJlemllckN1cnZlVG8iLGFyZ3VtZW50c30pfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKCl7ay5wdXNoKHtuYW1lOiJxdWFkcmF0aWNDdXJ2ZVRvIixhcmd1bWVudHN9KX19fSxkcmF3SW1hZ2U6ZnVuY3Rpb24oKXtxLnB1c2goe3R5cGU6ImZ1bmN0aW9uIixuYW1lOiJkcmF3SW1hZ2UiLGFyZ3VtZW50c30pfSxmaWxsVGV4dDpmdW5jdGlvbigpe3EucHVzaCh7dHlwZToiZnVuY3Rpb24iLApuYW1lOiJmaWxsVGV4dCIsYXJndW1lbnRzfSl9LHNldFZhcmlhYmxlOmZ1bmN0aW9uKGssYyl7cS5wdXNoKHt0eXBlOiJ2YXJpYWJsZSIsbmFtZTprLGFyZ3VtZW50czpjfSk7cmV0dXJuIGN9fX12YXIgeD17fSxyYTt4LlV0aWw9e307eC5VdGlsLmxvZz1mdW5jdGlvbihkKXt4LmxvZ2dpbmcmJk4uY29uc29sZSYmTi5jb25zb2xlLmxvZyYmTi5jb25zb2xlLmxvZyhkKX07eC5VdGlsLnRyaW1UZXh0PWZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gZD9kLmFwcGx5KHApOigocHx8IiIpKyIiKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9fShTdHJpbmcucHJvdG90eXBlLnRyaW0pO3guVXRpbC5hc0Zsb2F0PWZ1bmN0aW9uKGQpe3JldHVybiBwYXJzZUZsb2F0KGQpfTsoZnVuY3Rpb24oKXt2YXIgZD0vKChyZ2JhfHJnYilcKFteXCldK1wpKFxzLT9cZCtweCl7MCx9KS9nLHA9LygtP1xkK3B4KXwoIy4rKXwocmdiXCguK1wpKXwocmdiYVwoLitcKSkvZzt4LlV0aWwucGFyc2VUZXh0U2hhZG93cz0KZnVuY3Rpb24ocSl7aWYoIXF8fCJub25lIj09PXEpcmV0dXJuW107cT1xLm1hdGNoKGQpO2Zvcih2YXIgaz1bXSxjPTA7cSYmYzxxLmxlbmd0aDtjKyspe3ZhciBuPXFbY10ubWF0Y2gocCk7ay5wdXNoKHtjb2xvcjpuWzBdLG9mZnNldFg6blsxXT9uWzFdLnJlcGxhY2UoInB4IiwiIik6MCxvZmZzZXRZOm5bMl0\/blsyXS5yZXBsYWNlKCJweCIsIiIpOjAsYmx1cjpuWzNdP25bM10ucmVwbGFjZSgicHgiLCIiKTowfSl9cmV0dXJuIGt9fSkoKTt4LlV0aWwucGFyc2VCYWNrZ3JvdW5kSW1hZ2U9ZnVuY3Rpb24oZCl7dmFyIHAscSxrLGMsbj1bXSx0PTAsdj0wLGwsZSxJPWZ1bmN0aW9uKCl7cCYmKCciJz09PUouc3Vic3RyKDAsMSkmJihKPUouc3Vic3RyKDEsSi5sZW5ndGgtMikpLEomJmUucHVzaChKKSwiLSI9PT1wLnN1YnN0cigwLDEpJiYwPChrPXAuaW5kZXhPZigiLSIsMSkrMSkmJihxPXAuc3Vic3RyKDAsaykscD1wLnN1YnN0cihrKSksbi5wdXNoKHtwcmVmaXg6cSxtZXRob2Q6cC50b0xvd2VyQ2FzZSgpLAp2YWx1ZTpjLGFyZ3M6ZX0pKTtlPVtdO3A9cT1KPWM9IiJ9O0koKTtmb3IodmFyIHo9MCxFPWQubGVuZ3RoO3o8RTt6Kyspe3ZhciBLPWRbel07aWYoISgwPT09dCYmLTE8IiBcclxuXHQiLmluZGV4T2YoSykpKXtzd2l0Y2goSyl7Y2FzZSAnIic6bD9sPT09SyYmKGw9bnVsbCk6bD1LO2JyZWFrO2Nhc2UgIigiOmlmKCFsKWlmKDA9PT10KXt0PTE7Yys9Sztjb250aW51ZX1lbHNlIHYrKzticmVhaztjYXNlICIpIjppZighbCYmMT09PXQpaWYoMD09PXYpe3Q9MDtjKz1LO0koKTtjb250aW51ZX1lbHNlIHYtLTticmVhaztjYXNlICIsIjppZighbClpZigwPT09dCl7SSgpO2NvbnRpbnVlfWVsc2UgaWYoMT09PXQmJjA9PT12JiYhcC5tYXRjaCgvXnVybCQvaSkpe2UucHVzaChKKTt2YXIgSj0iIjtjKz1LO2NvbnRpbnVlfX1jKz1LOzA9PT10P3ArPUs6Sis9S319SSgpO3JldHVybiBufTt4LlV0aWwuQm91bmRzPWZ1bmN0aW9uKGQpe3ZhciBwPXt9O2lmKGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgcT0KZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtwLnRvcD1xLnRvcDtwLmJvdHRvbT1xLmJvdHRvbXx8cS50b3ArcS5oZWlnaHQ7cC5sZWZ0PXEubGVmdDtwLndpZHRoPWQub2Zmc2V0V2lkdGg7cC5oZWlnaHQ9ZC5vZmZzZXRIZWlnaHR9cmV0dXJuIHB9O3guVXRpbC5PZmZzZXRCb3VuZHM9ZnVuY3Rpb24oZCl7dmFyIHA9ZC5vZmZzZXRQYXJlbnQ\/eC5VdGlsLk9mZnNldEJvdW5kcyhkLm9mZnNldFBhcmVudCk6e3RvcDowLGxlZnQ6MH07cmV0dXJue3RvcDpkLm9mZnNldFRvcCtwLnRvcCxib3R0b206ZC5vZmZzZXRUb3ArZC5vZmZzZXRIZWlnaHQrcC50b3AsbGVmdDpkLm9mZnNldExlZnQrcC5sZWZ0LHdpZHRoOmQub2Zmc2V0V2lkdGgsaGVpZ2h0OmQub2Zmc2V0SGVpZ2h0fX07eC5VdGlsLmdldENTUz1mdW5jdGlvbihkLHAscSl7dm9pZCAwIT09ZCYmKHJhPVIuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkLG51bGwpKTt2YXIgaz1yYVtwXTtpZigvXmJhY2tncm91bmQoU2l6ZXxQb3NpdGlvbikkLy50ZXN0KHApKXthOntrPQooa3x8IiIpLnNwbGl0KCIsIik7az1rW3F8fDBdfHxrWzBdfHwiYXV0byI7az14LlV0aWwudHJpbVRleHQoaykuc3BsaXQoIiAiKTtpZigiYmFja2dyb3VuZFNpemUiIT09cHx8IWtbMF18fCFrWzBdLm1hdGNoKC9eKGNvdmVyfGNvbnRhaW58YXV0bykkLykpe2tbMF09LTE9PT1rWzBdLmluZGV4T2YoIiUiKT9xYShkLHArIlgiLGtbMF0pOmtbMF07aWYoa1sxXT09PVEpaWYoImJhY2tncm91bmRTaXplIj09PXApe2tbMV09ImF1dG8iO2Q9azticmVhayBhfWVsc2Uga1sxXT1rWzBdO2tbMV09LTE9PT1rWzFdLmluZGV4T2YoIiUiKT9xYShkLHArIlkiLGtbMV0pOmtbMV19ZD1rfXJldHVybiBkfXJldHVybi9ib3JkZXIoVG9wfEJvdHRvbSkoTGVmdHxSaWdodClSYWRpdXMvLnRlc3QocCk\/KGQ9ay5zcGxpdCgiICIpLDE+PWQubGVuZ3RoJiYoZFsxXT1kWzBdKSxkLm1hcCh4YSkpOmt9O3guVXRpbC5yZXNpemVCb3VuZHM9ZnVuY3Rpb24oZCxwLHEsayxjKXtkLz1wO2MmJiJhdXRvIiE9PWM\/CnEvazxkXiJjb250YWluIj09PWM\/KHE9ayxjPWsqZCk6KGM9cSxxLz1kKTooYz1xLHE9ayk7cmV0dXJue3dpZHRoOmMsaGVpZ2h0OnF9fTt4LlV0aWwuQmFja2dyb3VuZFBvc2l0aW9uPWZ1bmN0aW9uKGQscCxxLGssYyl7ZD14LlV0aWwuZ2V0Q1NTKGQsImJhY2tncm91bmRQb3NpdGlvbiIsayk7MT09PWQubGVuZ3RoJiYoZD1bZFswXSxkWzBdXSk7az1qYShkWzBdKT8ocC53aWR0aC0oY3x8cSkud2lkdGgpKihwYXJzZUZsb2F0KGRbMF0pLzEwMCk6cGFyc2VJbnQoZFswXSwxMCk7cD0iYXV0byI9PT1kWzFdP2svcS53aWR0aCpxLmhlaWdodDpqYShkWzFdKT8ocC5oZWlnaHQtKGN8fHEpLmhlaWdodCkqcGFyc2VGbG9hdChkWzFdKS8xMDA6cGFyc2VJbnQoZFsxXSwxMCk7ImF1dG8iPT09ZFswXSYmKGs9cC9xLmhlaWdodCpxLndpZHRoKTtyZXR1cm57bGVmdDprLHRvcDpwfX07eC5VdGlsLkJhY2tncm91bmRTaXplPWZ1bmN0aW9uKGQscCxxLGspe2Q9eC5VdGlsLmdldENTUyhkLCJiYWNrZ3JvdW5kU2l6ZSIsCmspOzE9PT1kLmxlbmd0aCYmKGQ9W2RbMF0sZFswXV0pO2lmKGphKGRbMF0pKWs9cC53aWR0aCpwYXJzZUZsb2F0KGRbMF0pLzEwMDtlbHNle2lmKC9jb250YWlufGNvdmVyLy50ZXN0KGRbMF0pKXJldHVybiB4LlV0aWwucmVzaXplQm91bmRzKHEud2lkdGgscS5oZWlnaHQscC53aWR0aCxwLmhlaWdodCxkWzBdKTtrPXBhcnNlSW50KGRbMF0sMTApfXA9ImF1dG8iPT09ZFswXSYmImF1dG8iPT09ZFsxXT9xLmhlaWdodDoiYXV0byI9PT1kWzFdP2svcS53aWR0aCpxLmhlaWdodDpqYShkWzFdKT9wLmhlaWdodCpwYXJzZUZsb2F0KGRbMV0pLzEwMDpwYXJzZUludChkWzFdLDEwKTsiYXV0byI9PT1kWzBdJiYoaz1wL3EuaGVpZ2h0KnEud2lkdGgpO3JldHVybnt3aWR0aDprLGhlaWdodDpwfX07eC5VdGlsLkJhY2tncm91bmRSZXBlYXQ9ZnVuY3Rpb24oZCxwKXtkPXguVXRpbC5nZXRDU1MoZCwiYmFja2dyb3VuZFJlcGVhdCIpLnNwbGl0KCIsIikubWFwKHguVXRpbC50cmltVGV4dCk7cmV0dXJuIGRbcF18fApkWzBdfTt4LlV0aWwuRXh0ZW5kPWZ1bmN0aW9uKGQscCl7Zm9yKHZhciBxIGluIGQpZC5oYXNPd25Qcm9wZXJ0eShxKSYmKHBbcV09ZFtxXSk7cmV0dXJuIHB9O3guVXRpbC5DaGlsZHJlbj1mdW5jdGlvbihkKXt0cnl7aWYoZC5ub2RlTmFtZSYmIklGUkFNRSI9PT1kLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkpdmFyIHA9ZC5jb250ZW50RG9jdW1lbnR8fGQuY29udGVudFdpbmRvdy5kb2N1bWVudDtlbHNle3ZhciBxPWQuY2hpbGROb2RlcztkPVtdO2lmKG51bGwhPT1xKXt2YXIgaz1kLmxlbmd0aCxjPTA7aWYoIm51bWJlciI9PT10eXBlb2YgcS5sZW5ndGgpZm9yKHZhciBuPXEubGVuZ3RoO2M8bjtjKyspZFtrKytdPXFbY107ZWxzZSBmb3IoO3FbY10hPT1ROylkW2srK109cVtjKytdO2QubGVuZ3RoPWt9cD1kfWQ9cH1jYXRjaCh0KXt4LlV0aWwubG9nKCJodG1sMmNhbnZhcy5VdGlsLkNoaWxkcmVuIGZhaWxlZCB3aXRoIGV4Y2VwdGlvbjogIit0Lm1lc3NhZ2UpLGQ9W119cmV0dXJuIGR9Owp4LlV0aWwuaXNUcmFuc3BhcmVudD1mdW5jdGlvbihkKXtyZXR1cm4hZHx8InRyYW5zcGFyZW50Ij09PWR8fCJyZ2JhKDAsIDAsIDAsIDApIj09PWR9O3guVXRpbC5Gb250PWZ1bmN0aW9uKCl7dmFyIGQ9e307cmV0dXJuIGZ1bmN0aW9uKHAscSxrKXtpZihkW3ArIi0iK3FdIT09USlyZXR1cm4gZFtwKyItIitxXTt2YXIgYz1rLmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49ay5jcmVhdGVFbGVtZW50KCJpbWciKSx0PWsuY3JlYXRlRWxlbWVudCgic3BhbiIpO2Muc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtjLnN0eWxlLmZvbnRGYW1pbHk9cDtjLnN0eWxlLmZvbnRTaXplPXE7Yy5zdHlsZS5tYXJnaW49MDtjLnN0eWxlLnBhZGRpbmc9MDtrLmJvZHkuYXBwZW5kQ2hpbGQoYyk7bi5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFCQVAvLy93QUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iO24ud2lkdGg9MTtuLmhlaWdodD0xO24uc3R5bGUubWFyZ2luPTA7bi5zdHlsZS5wYWRkaW5nPQowO24uc3R5bGUudmVydGljYWxBbGlnbj0iYmFzZWxpbmUiO3Quc3R5bGUuZm9udEZhbWlseT1wO3Quc3R5bGUuZm9udFNpemU9cTt0LnN0eWxlLm1hcmdpbj0wO3Quc3R5bGUucGFkZGluZz0wO3QuYXBwZW5kQ2hpbGQoay5jcmVhdGVUZXh0Tm9kZSgiSGlkZGVuIFRleHQiKSk7Yy5hcHBlbmRDaGlsZCh0KTtjLmFwcGVuZENoaWxkKG4pO3ZhciB2PW4ub2Zmc2V0VG9wLXQub2Zmc2V0VG9wKzE7Yy5yZW1vdmVDaGlsZCh0KTtjLmFwcGVuZENoaWxkKGsuY3JlYXRlVGV4dE5vZGUoIkhpZGRlbiBUZXh0IikpO2Muc3R5bGUubGluZUhlaWdodD0ibm9ybWFsIjtuLnN0eWxlLnZlcnRpY2FsQWxpZ249InN1cGVyIjtuPXtiYXNlbGluZTp2LGxpbmVXaWR0aDoxLG1pZGRsZTpuLm9mZnNldFRvcC1jLm9mZnNldFRvcCsxfTtkW3ArIi0iK3FdPW47ay5ib2R5LnJlbW92ZUNoaWxkKGMpO3JldHVybiBufX0oKTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGMpe3JldHVybiBmdW5jdGlvbihuKXt0cnl7Yy5hZGRDb2xvclN0b3Aobi5zdG9wLApuLmNvbG9yKX1jYXRjaCh0KXtwLmxvZyhbImZhaWxlZCB0byBhZGQgY29sb3Igc3RvcDogIix0LCI7IHRyaWVkIHRvIGFkZDogIixuXSl9fX12YXIgcD14LlV0aWwscT17fTt4LkdlbmVyYXRlPXE7dmFyIGs9Wy9eKC13ZWJraXQtbGluZWFyLWdyYWRpZW50KVwoKFthLXpcc10rKShbXHdcZFwuXHMsJVwoXCldKylcKSQvLC9eKC1vLWxpbmVhci1ncmFkaWVudClcKChbYS16XHNdKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtd2Via2l0LWdyYWRpZW50KVwoKGxpbmVhcnxyYWRpYWwpLFxzKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPyksXHMoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKShbXHdcZFwuXHMsJVwoXClcLV0rKVwpJC8sL14oLW1vei1saW5lYXItZ3JhZGllbnQpXCgoKD86XGR7MSwzfSU\/KVxzKD86XGR7MSwzfSU\/KSkoW1x3XGRcLlxzLCVcKFwpXSspXCkkLywvXigtd2Via2l0LXJhZGlhbC1ncmFkaWVudClcKCgoPzpcZHsxLDN9JT8pXHMoPzpcZHsxLDN9JT8pKSxccyhcdyspXHMoW2EtelwtXSspKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sCi9eKC1tb3otcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3Kylccz8oW2EtelwtXSopKFtcd1xkXC5ccywlXChcKV0rKVwpJC8sL14oLW8tcmFkaWFsLWdyYWRpZW50KVwoKCg\/OlxkezEsM30lPylccyg\/OlxkezEsM30lPykpLFxzKFx3KylccyhbYS16XC1dKykoW1x3XGRcLlxzLCVcKFwpXSspXCkkL107cS5wYXJzZUdyYWRpZW50PWZ1bmN0aW9uKGMsbil7dmFyIHQsdj1rLmxlbmd0aCxsO2Zvcih0PTA7dDx2JiYhKGw9Yy5tYXRjaChrW3RdKSk7dCs9MSk7aWYobClzd2l0Y2gobFsxXSl7Y2FzZSAiLXdlYmtpdC1saW5lYXItZ3JhZGllbnQiOmNhc2UgIi1vLWxpbmVhci1ncmFkaWVudCI6dmFyIGU9e3R5cGU6ImxpbmVhciIseDA6bnVsbCx5MDpudWxsLHgxOm51bGwseTE6bnVsbCxjb2xvclN0b3BzOltdfTtpZihjPWxbMl0ubWF0Y2goL1x3Ky9nKSlmb3Iodj1jLmxlbmd0aCx0PTA7dDx2O3QrPTEpc3dpdGNoKGNbdF0pe2Nhc2UgInRvcCI6ZS55MD0KMDtlLnkxPW4uaGVpZ2h0O2JyZWFrO2Nhc2UgInJpZ2h0IjplLngwPW4ud2lkdGg7ZS54MT0wO2JyZWFrO2Nhc2UgImJvdHRvbSI6ZS55MD1uLmhlaWdodDtlLnkxPTA7YnJlYWs7Y2FzZSAibGVmdCI6ZS54MD0wLGUueDE9bi53aWR0aH1udWxsPT09ZS54MCYmbnVsbD09PWUueDEmJihlLngwPWUueDE9bi53aWR0aC8yKTtudWxsPT09ZS55MCYmbnVsbD09PWUueTEmJihlLnkwPWUueTE9bi5oZWlnaHQvMik7aWYoYz1sWzNdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkoPzpcc1xkezEsM30oPzolfHB4KSk\/KSsvZykpe3Y9Yy5sZW5ndGg7dmFyIEk9MS9NYXRoLm1heCh2LTEsMSk7Zm9yKHQ9MDt0PHY7dCs9MSl7dmFyIHo9Y1t0XS5tYXRjaCgvKCg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpKVxzKihcZHsxLDN9KT8oJXxweCk\/Lyk7elsyXT8obD1wYXJzZUZsb2F0KHpbMl0pLApsPSIlIj09PXpbM10\/bC8xMDA6bC9uLndpZHRoKTpsPXQqSTtlLmNvbG9yU3RvcHMucHVzaCh7Y29sb3I6elsxXSxzdG9wOmx9KX19YnJlYWs7Y2FzZSAiLXdlYmtpdC1ncmFkaWVudCI6ZT17dHlwZToicmFkaWFsIj09PWxbMl0\/ImNpcmNsZSI6bFsyXSx4MDowLHkwOjAseDE6MCx5MTowLGNvbG9yU3RvcHM6W119O2lmKGM9bFszXS5tYXRjaCgvKFxkezEsM30pJT9ccyhcZHsxLDN9KSU\/LFxzKFxkezEsM30pJT9ccyhcZHsxLDN9KSU\/LykpZS54MD1jWzFdKm4ud2lkdGgvMTAwLGUueTA9Y1syXSpuLmhlaWdodC8xMDAsZS54MT1jWzNdKm4ud2lkdGgvMTAwLGUueTE9Y1s0XSpuLmhlaWdodC8xMDA7aWYoYz1sWzRdLm1hdGNoKC8oKD86ZnJvbXx0b3xjb2xvci1zdG9wKVwoKD86WzAtOVwuXSssXHMpPyg\/OnJnYnxyZ2JhKVwoXGR7MSwzfSxcc1xkezEsM30sXHNcZHsxLDN9KD86LFxzWzAtOVwuXSspP1wpXCkpKy9nKSlmb3Iodj1jLmxlbmd0aCx0PTA7dDx2O3QrPTEpej1jW3RdLm1hdGNoKC8oZnJvbXx0b3xjb2xvci1zdG9wKVwoKFswLTlcLl0rKT8oPzosXHMpPygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlcKS8pLApsPXBhcnNlRmxvYXQoelsyXSksImZyb20iPT09elsxXSYmKGw9MCksInRvIj09PXpbMV0mJihsPTEpLGUuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzNdLHN0b3A6bH0pO2JyZWFrO2Nhc2UgIi1tb3otbGluZWFyLWdyYWRpZW50IjplPXt0eXBlOiJsaW5lYXIiLHgwOjAseTA6MCx4MTowLHkxOjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzJdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLngwPWNbMV0qbi53aWR0aC8xMDAsZS55MD1jWzJdKm4uaGVpZ2h0LzEwMCxlLngxPW4ud2lkdGgtZS54MCxlLnkxPW4uaGVpZ2h0LWUueTA7aWYoYz1sWzNdLm1hdGNoKC8oKD86cmdifHJnYmEpXChcZHsxLDN9LFxzXGR7MSwzfSxcc1xkezEsM30oPzosXHNbMC05XC5dKyk\/XCkoPzpcc1xkezEsM30lKT8pKy9nKSlmb3Iodj1jLmxlbmd0aCxJPTEvTWF0aC5tYXgodi0xLDEpLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlccyooXGR7MSwzfSk\/KCUpPy8pLAp6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSkselszXSYmKGwvPTEwMCkpOmw9dCpJLGUuY29sb3JTdG9wcy5wdXNoKHtjb2xvcjp6WzFdLHN0b3A6bH0pO2JyZWFrO2Nhc2UgIi13ZWJraXQtcmFkaWFsLWdyYWRpZW50IjpjYXNlICItbW96LXJhZGlhbC1ncmFkaWVudCI6Y2FzZSAiLW8tcmFkaWFsLWdyYWRpZW50IjplPXt0eXBlOiJjaXJjbGUiLHgwOjAseTA6MCx4MTpuLndpZHRoLHkxOm4uaGVpZ2h0LGN4OjAsY3k6MCxyeDowLHJ5OjAsY29sb3JTdG9wczpbXX07aWYoYz1sWzJdLm1hdGNoKC8oXGR7MSwzfSklP1xzKFxkezEsM30pJT8vKSllLmN4PWNbMV0qbi53aWR0aC8xMDAsZS5jeT1jWzJdKm4uaGVpZ2h0LzEwMDtjPWxbM10ubWF0Y2goL1x3Ky8pO3o9bFs0XS5tYXRjaCgvW2EtelwtXSovKTtpZihjJiZ6KXN3aXRjaCh6WzBdKXtjYXNlICJmYXJ0aGVzdC1jb3JuZXIiOmNhc2UgImNvdmVyIjpjYXNlICIiOnQ9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS5jeSwKMikpO2M9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt2PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt6PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7ZS5yeD1lLnJ5PU1hdGgubWF4KHQsYyx2LHopO2JyZWFrO2Nhc2UgImNsb3Nlc3QtY29ybmVyIjp0PU1hdGguc3FydChNYXRoLnBvdyhlLmN4LDIpK01hdGgucG93KGUuY3ksMikpO2M9TWF0aC5zcXJ0KE1hdGgucG93KGUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt2PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS55MS1lLmN5LDIpKTt6PU1hdGguc3FydChNYXRoLnBvdyhlLngxLWUuY3gsMikrTWF0aC5wb3coZS5jeSwyKSk7ZS5yeD1lLnJ5PU1hdGgubWluKHQsYyx2LHopO2JyZWFrO2Nhc2UgImZhcnRoZXN0LXNpZGUiOiJjaXJjbGUiPT09Y1swXT9lLnJ4PQplLnJ5PU1hdGgubWF4KGUuY3gsZS5jeSxlLngxLWUuY3gsZS55MS1lLmN5KTooZS50eXBlPWNbMF0sZS5yeD1NYXRoLm1heChlLmN4LGUueDEtZS5jeCksZS5yeT1NYXRoLm1heChlLmN5LGUueTEtZS5jeSkpO2JyZWFrO2Nhc2UgImNsb3Nlc3Qtc2lkZSI6Y2FzZSAiY29udGFpbiI6ImNpcmNsZSI9PT1jWzBdP2Uucng9ZS5yeT1NYXRoLm1pbihlLmN4LGUuY3ksZS54MS1lLmN4LGUueTEtZS5jeSk6KGUudHlwZT1jWzBdLGUucng9TWF0aC5taW4oZS5jeCxlLngxLWUuY3gpLGUucnk9TWF0aC5taW4oZS5jeSxlLnkxLWUuY3kpKX1pZihjPWxbNV0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSg\/OlxzXGR7MSwzfSg\/OiV8cHgpKT8pKy9nKSlmb3Iodj1jLmxlbmd0aCxJPTEvTWF0aC5tYXgodi0xLDEpLHQ9MDt0PHY7dCs9MSl6PWNbdF0ubWF0Y2goLygoPzpyZ2J8cmdiYSlcKFxkezEsM30sXHNcZHsxLDN9LFxzXGR7MSwzfSg\/Oixcc1swLTlcLl0rKT9cKSlccyooXGR7MSwzfSk\/KCV8cHgpPy8pLAp6WzJdPyhsPXBhcnNlRmxvYXQoelsyXSksbD0iJSI9PT16WzNdP2wvMTAwOmwvbi53aWR0aCk6bD10KkksZS5jb2xvclN0b3BzLnB1c2goe2NvbG9yOnpbMV0sc3RvcDpsfSl9cmV0dXJuIGV9O3EuR3JhZGllbnQ9ZnVuY3Rpb24oYyxuKXtpZigwIT09bi53aWR0aCYmMCE9PW4uaGVpZ2h0KXt2YXIgdD1SLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHY9dC5nZXRDb250ZXh0KCIyZCIpO3Qud2lkdGg9bi53aWR0aDt0LmhlaWdodD1uLmhlaWdodDtpZihjPXguR2VuZXJhdGUucGFyc2VHcmFkaWVudChjLG4pKXN3aXRjaChjLnR5cGUpe2Nhc2UgImxpbmVhciI6dmFyIGw9di5jcmVhdGVMaW5lYXJHcmFkaWVudChjLngwLGMueTAsYy54MSxjLnkxKTtjLmNvbG9yU3RvcHMuZm9yRWFjaChkKGwpKTt2LmZpbGxTdHlsZT1sO3YuZmlsbFJlY3QoMCwwLG4ud2lkdGgsbi5oZWlnaHQpO2JyZWFrO2Nhc2UgImNpcmNsZSI6bD12LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGMuY3gsYy5jeSwwLGMuY3gsCmMuY3ksYy5yeCk7Yy5jb2xvclN0b3BzLmZvckVhY2goZChsKSk7di5maWxsU3R5bGU9bDt2LmZpbGxSZWN0KDAsMCxuLndpZHRoLG4uaGVpZ2h0KTticmVhaztjYXNlICJlbGxpcHNlIjpuPVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dmFyIGU9bi5nZXRDb250ZXh0KCIyZCIpO2w9TWF0aC5tYXgoYy5yeCxjLnJ5KTt2YXIgST0yKmw7bi53aWR0aD1uLmhlaWdodD1JO2w9ZS5jcmVhdGVSYWRpYWxHcmFkaWVudChjLnJ4LGMucnksMCxjLnJ4LGMucnksbCk7Yy5jb2xvclN0b3BzLmZvckVhY2goZChsKSk7ZS5maWxsU3R5bGU9bDtlLmZpbGxSZWN0KDAsMCxJLEkpO3YuZmlsbFN0eWxlPWMuY29sb3JTdG9wc1tjLmNvbG9yU3RvcHMubGVuZ3RoLTFdLmNvbG9yO3YuZmlsbFJlY3QoMCwwLHQud2lkdGgsdC5oZWlnaHQpO3YuZHJhd0ltYWdlKG4sYy5jeC1jLnJ4LGMuY3ktYy5yeSwyKmMucngsMipjLnJ5KX1yZXR1cm4gdH19O3EuTGlzdEFscGhhPWZ1bmN0aW9uKGMpe3ZhciBuPSIiOwpkbyBuPVN0cmluZy5mcm9tQ2hhckNvZGUoYyUyNis2NCkrbixjLz0yNjt3aGlsZSgyNjwyNipjKTtyZXR1cm4gbn07cS5MaXN0Um9tYW49ZnVuY3Rpb24oYyl7dmFyIG49Ik0gQ00gRCBDRCBDIFhDIEwgWEwgWCBJWCBWIElWIEkiLnNwbGl0KCIgIiksdD1bMUUzLDkwMCw1MDAsNDAwLDEwMCw5MCw1MCw0MCwxMCw5LDUsNCwxXSx2PSIiLGwsZT1uLmxlbmd0aDtpZigwPj1jfHw0RTM8PWMpcmV0dXJuIGM7Zm9yKGw9MDtsPGU7bCs9MSlmb3IoO2M+PXRbbF07KWMtPXRbbF0sdis9bltsXTtyZXR1cm4gdn19KSgpO3guUGFyc2U9ZnVuY3Rpb24oZCxwLHEpe2Z1bmN0aW9uIGsoYSl7ZnVuY3Rpb24gYihoKXt2YXIgcj1hYShoLCI6YmVmb3JlIiksdz1hYShoLCI6YWZ0ZXIiKTtyJiZmLnB1c2goe3R5cGU6ImJlZm9yZSIscHNldWRvOnIsZWw6aH0pO3cmJmYucHVzaCh7dHlwZToiYWZ0ZXIiLHBzZXVkbzp3LGVsOmh9KX12YXIgZj1bXSxnPVtdOyhmdW5jdGlvbigpe2Zvcih2YXIgaD0vOmJlZm9yZXw6YWZ0ZXIvLApyPVIuc3R5bGVTaGVldHMsdz0wLG09ci5sZW5ndGg7dzxtO3crKyl0cnl7Zm9yKHZhciBEPXJbd10uY3NzUnVsZXMsdT0wLEg9RC5sZW5ndGg7dTxIO3UrKyloLnRlc3QoRFt1XS5zZWxlY3RvclRleHQpJiZnLnB1c2goRFt1XS5zZWxlY3RvclRleHQpfWNhdGNoKEwpe313PTA7Zm9yKG09Zy5sZW5ndGg7dzxtO3crKylnW3ddPWdbd10ubWF0Y2goLyheW146XSopLylbMV19KSgpOyhmdW5jdGlvbihoKXtoPVIucXVlcnlTZWxlY3RvckFsbChnLmZpbHRlcihmdW5jdGlvbihtKXtyZXR1cm4gbT8hMDohMX0pLmpvaW4oIiwiKSk7Zm9yKHZhciByPTAsdz1oLmxlbmd0aDtyPHc7cisrKWIoaFtyXSl9KShhKTsoZnVuY3Rpb24oKXtmLmZvckVhY2goZnVuY3Rpb24oaCl7aD1oLmVsO2guY2xhc3NMaXN0P2guY2xhc3NMaXN0LmFkZCgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIpOmguY2xhc3NOYW1lKz0iIF9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQifSk7CmYuZm9yRWFjaChmdW5jdGlvbihoKXsiYmVmb3JlIj09PWgudHlwZT9oLmVsLmluc2VydEJlZm9yZShoLnBzZXVkbyxoLmVsLmZpcnN0Q2hpbGQpOmguZWwuYXBwZW5kQ2hpbGQoaC5wc2V1ZG8pfSl9KSgpfWZ1bmN0aW9uIGMoYSxiKXthPXBhcnNlSW50KEMoYSxiKSwxMCk7cmV0dXJuIGlzTmFOKGEpPzA6YX1mdW5jdGlvbiBuKGEsYixmLGcsaCxyKXsidHJhbnNwYXJlbnQiIT09ciYmKGEuc2V0VmFyaWFibGUoImZpbGxTdHlsZSIsciksYS5maWxsUmVjdChiLGYsZyxoKSl9ZnVuY3Rpb24gdChhLGIsZil7aWYoMDxhLmxlbmd0aClyZXR1cm4gYitmLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gdihhLGIpe3N3aXRjaChiKXtjYXNlICJsb3dlcmNhc2UiOnJldHVybiBhLnRvTG93ZXJDYXNlKCk7Y2FzZSAiY2FwaXRhbGl6ZSI6cmV0dXJuIGEucmVwbGFjZSgvKF58XHN8OnwtfFwofFwpKShbYS16XSkvZyx0KTtjYXNlICJ1cHBlcmNhc2UiOnJldHVybiBhLnRvVXBwZXJDYXNlKCk7ZGVmYXVsdDpyZXR1cm4gYX19CmZ1bmN0aW9uIGwoYSxiLGYsZyl7dmFyIGg9QyhiLCJmb250V2VpZ2h0Iikscj1DKGIsImZvbnRGYW1pbHkiKSx3PUMoYiwiZm9udFNpemUiKSxtPU0ucGFyc2VUZXh0U2hhZG93cyhDKGIsInRleHRTaGFkb3ciKSk7c3dpdGNoKHBhcnNlSW50KGgsMTApKXtjYXNlIDQwMTpoPSJib2xkIjticmVhaztjYXNlIDQwMDpoPSJub3JtYWwifWEuc2V0VmFyaWFibGUoImZpbGxTdHlsZSIsZyk7YS5zZXRWYXJpYWJsZSgiZm9udCIsW0MoYiwiZm9udFN0eWxlIiksQyhiLCJmb250VmFyaWFudCIpLGgsdyxyXS5qb2luKCIgIikpO2Euc2V0VmFyaWFibGUoInRleHRBbGlnbiIsImxlZnQiKTttLmxlbmd0aCYmKGEuc2V0VmFyaWFibGUoInNoYWRvd0NvbG9yIixtWzBdLmNvbG9yKSxhLnNldFZhcmlhYmxlKCJzaGFkb3dPZmZzZXRYIixtWzBdLm9mZnNldFgpLGEuc2V0VmFyaWFibGUoInNoYWRvd09mZnNldFkiLG1bMF0ub2Zmc2V0WSksYS5zZXRWYXJpYWJsZSgic2hhZG93Qmx1ciIsbVswXS5ibHVyKSk7CmlmKCJub25lIiE9PWYpcmV0dXJuIE0uRm9udChyLHcsUCl9ZnVuY3Rpb24gZShhLGIsZil7dmFyIGc9Zi5jdHgsaD1DKGEsImNvbG9yIikscj1DKGEsInRleHREZWNvcmF0aW9uIiksdz1DKGEsInRleHRBbGlnbiIpLG09YixEPTA7aWYoMDxNLnRyaW1UZXh0KGIubm9kZVZhbHVlKS5sZW5ndGgpe2Iubm9kZVZhbHVlPXYoYi5ub2RlVmFsdWUsQyhhLCJ0ZXh0VHJhbnNmb3JtIikpO3c9dy5yZXBsYWNlKFsiLXdlYmtpdC1hdXRvIl0sWyJhdXRvIl0pO3ZhciB1PSFwLmxldHRlclJlbmRlcmluZyYmL14obGVmdHxyaWdodHxqdXN0aWZ5fGF1dG8pJC8udGVzdCh3KSYmL14obm9ybWFsfG5vbmV8MHB4KSQvLnRlc3QoQyhhLCJsZXR0ZXJTcGFjaW5nIikpP2Iubm9kZVZhbHVlLnNwbGl0KC8oXGJ8ICkvKTpiLm5vZGVWYWx1ZS5zcGxpdCgiIiksSD1sKGcsYSxyLGgpO3AuY2hpbmVzZSYmdS5mb3JFYWNoKGZ1bmN0aW9uKEwsRil7Ly4qW1x1NEUwMC1cdTlGQTVdLiokLy50ZXN0KEwpJiYoTD0KTC5zcGxpdCgiIiksTC51bnNoaWZ0KEYsMSksdS5zcGxpY2UuYXBwbHkodSxMKSl9KTt1LmZvckVhY2goZnVuY3Rpb24oTCxGKXt2YXIgVj1GPHUubGVuZ3RoLTE7Rj1mLnRyYW5zZm9ybS5tYXRyaXg7aWYoemEucmFuZ2VCb3VuZHMmJiFGKXtpZigibm9uZSIhPT1yfHwwIT09TS50cmltVGV4dChMKS5sZW5ndGgpe0Y9bTtWPUQ7dmFyIFM9UC5jcmVhdGVSYW5nZSgpO1Muc2V0U3RhcnQoRixWKTtTLnNldEVuZChGLFYrTC5sZW5ndGgpO1M9Uy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1EKz1MLmxlbmd0aH1lbHNlIGlmKG0mJiJzdHJpbmciPT09dHlwZW9mIG0ubm9kZVZhbHVlKXtWPVY\/bS5zcGxpdFRleHQoTC5sZW5ndGgpOm51bGw7dmFyIFo9bTtTPVoucGFyZW50Tm9kZTt2YXIgY2E9UC5jcmVhdGVFbGVtZW50KCJ3cmFwcGVyIiksZWE9Wi5jbG9uZU5vZGUoITApO2NhLmFwcGVuZENoaWxkKFouY2xvbmVOb2RlKCEwKSk7Uy5yZXBsYWNlQ2hpbGQoY2EsWik7Rj1GP00uT2Zmc2V0Qm91bmRzKGNhKToKTS5Cb3VuZHMoY2EpO1MucmVwbGFjZUNoaWxkKGVhLGNhKTtTPUY7bT1WfWlmKEY9Uylzd2l0Y2goVj1GLmxlZnQsUz1GLmJvdHRvbSxudWxsIT09TCYmMDxNLnRyaW1UZXh0KEwpLmxlbmd0aCYmZy5maWxsVGV4dChMLFYsUykscil7Y2FzZSAidW5kZXJsaW5lIjpuKGcsRi5sZWZ0LE1hdGgucm91bmQoRi50b3ArSC5iYXNlbGluZStILmxpbmVXaWR0aCksRi53aWR0aCwxLGgpO2JyZWFrO2Nhc2UgIm92ZXJsaW5lIjpuKGcsRi5sZWZ0LE1hdGgucm91bmQoRi50b3ApLEYud2lkdGgsMSxoKTticmVhaztjYXNlICJsaW5lLXRocm91Z2giOm4oZyxGLmxlZnQsTWF0aC5jZWlsKEYudG9wK0gubWlkZGxlK0gubGluZVdpZHRoKSxGLndpZHRoLDEsaCl9fSl9fWZ1bmN0aW9uIEkoYSxiLGYpe2I9Yi5jdHg7dmFyIGc9QyhhLCJsaXN0U3R5bGVUeXBlIik7aWYoL14oZGVjaW1hbHxkZWNpbWFsLWxlYWRpbmctemVyb3x1cHBlci1hbHBoYXx1cHBlci1sYXRpbnx1cHBlci1yb21hbnxsb3dlci1hbHBoYXxsb3dlci1ncmVla3xsb3dlci1sYXRpbnxsb3dlci1yb21hbikkL2kudGVzdChnKSl7dmFyIGg9Ci0xLHI9MSx3PWEucGFyZW50Tm9kZS5jaGlsZE5vZGVzO2lmKGEucGFyZW50Tm9kZSl7Zm9yKDt3WysraF0hPT1hOykxPT09d1toXS5ub2RlVHlwZSYmcisrO2g9cn1lbHNlIGg9LTE7c3dpdGNoKGcpe2Nhc2UgImRlY2ltYWwiOnZhciBtPWg7YnJlYWs7Y2FzZSAiZGVjaW1hbC1sZWFkaW5nLXplcm8iOm09MT09PWgudG9TdHJpbmcoKS5sZW5ndGg\/IjAiK2gudG9TdHJpbmcoKTpoLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSAidXBwZXItcm9tYW4iOm09eC5HZW5lcmF0ZS5MaXN0Um9tYW4oaCk7YnJlYWs7Y2FzZSAibG93ZXItcm9tYW4iOm09eC5HZW5lcmF0ZS5MaXN0Um9tYW4oaCkudG9Mb3dlckNhc2UoKTticmVhaztjYXNlICJsb3dlci1hbHBoYSI6bT14LkdlbmVyYXRlLkxpc3RBbHBoYShoKS50b0xvd2VyQ2FzZSgpO2JyZWFrO2Nhc2UgInVwcGVyLWFscGhhIjptPXguR2VuZXJhdGUuTGlzdEFscGhhKGgpfW0rPSIuICI7aD1QLmNyZWF0ZUVsZW1lbnQoImJvdW5kZWxlbWVudCIpOwpoLnN0eWxlLmRpc3BsYXk9ImlubGluZSI7cj1hLnN0eWxlLmxpc3RTdHlsZVR5cGU7YS5zdHlsZS5saXN0U3R5bGVUeXBlPSJub25lIjtoLmFwcGVuZENoaWxkKFAuY3JlYXRlVGV4dE5vZGUobSkpO2EuaW5zZXJ0QmVmb3JlKGgsYS5maXJzdENoaWxkKTtnPU0uQm91bmRzKGgpO2EucmVtb3ZlQ2hpbGQoaCk7YS5zdHlsZS5saXN0U3R5bGVUeXBlPXI7bChiLGEsIm5vbmUiLEMoYSwiY29sb3IiKSk7Imluc2lkZSI9PT1DKGEsImxpc3RTdHlsZVBvc2l0aW9uIikmJihiLnNldFZhcmlhYmxlKCJ0ZXh0QWxpZ24iLCJsZWZ0IiksYT1mLmxlZnQsZj1nLmJvdHRvbSxudWxsIT09bSYmMDxNLnRyaW1UZXh0KG0pLmxlbmd0aCYmYi5maWxsVGV4dChtLGEsZikpfX1mdW5jdGlvbiB6KGEpe3JldHVybihhPWRbYV0pJiYhMD09PWEuc3VjY2VlZGVkP2EuaW1nOiExfWZ1bmN0aW9uIEUoYSxiKXt2YXIgZj1NYXRoLm1heChhLmxlZnQsYi5sZWZ0KSxnPU1hdGgubWF4KGEudG9wLGIudG9wKTtyZXR1cm57bGVmdDpmLAp0b3A6Zyx3aWR0aDpNYXRoLm1pbihhLmxlZnQrYS53aWR0aCxiLmxlZnQrYi53aWR0aCktZixoZWlnaHQ6TWF0aC5taW4oYS50b3ArYS5oZWlnaHQsYi50b3ArYi5oZWlnaHQpLWd9fWZ1bmN0aW9uIEsoYSxiLGYsZyxoKXt2YXIgcj1jKGIsInBhZGRpbmdMZWZ0Iiksdz1jKGIsInBhZGRpbmdUb3AiKSxtPWMoYiwicGFkZGluZ1JpZ2h0Iik7Yj1jKGIsInBhZGRpbmdCb3R0b20iKTtVKGEsZiwwLDAsZi53aWR0aCxmLmhlaWdodCxnLmxlZnQrcitoWzNdLndpZHRoLGcudG9wK3craFswXS53aWR0aCxnLndpZHRoLShoWzFdLndpZHRoK2hbM10ud2lkdGgrcittKSxnLmhlaWdodC0oaFswXS53aWR0aCtoWzJdLndpZHRoK3crYikpfWZ1bmN0aW9uIEooYSl7cmV0dXJuWyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXS5tYXAoZnVuY3Rpb24oYil7cmV0dXJue3dpZHRoOmMoYSwiYm9yZGVyIitiKyJXaWR0aCIpLGNvbG9yOkMoYSwiYm9yZGVyIitiKyJDb2xvciIpfX0pfWZ1bmN0aW9uIEcoYSl7cmV0dXJuWyJUb3BMZWZ0IiwKIlRvcFJpZ2h0IiwiQm90dG9tUmlnaHQiLCJCb3R0b21MZWZ0Il0ubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBDKGEsImJvcmRlciIrYisiUmFkaXVzIil9KX1mdW5jdGlvbiBPKGEsYixmLGcpe3ZhciBoPShNYXRoLnNxcnQoMiktMSkvMyo0LHI9ZipoO2gqPWc7Zj1hK2Y7Zz1iK2c7cmV0dXJue3RvcExlZnQ6VCh7eDphLHk6Z30se3g6YSx5OmctaH0se3g6Zi1yLHk6Yn0se3g6Zix5OmJ9KSx0b3BSaWdodDpUKHt4OmEseTpifSx7eDphK3IseTpifSx7eDpmLHk6Zy1ofSx7eDpmLHk6Z30pLGJvdHRvbVJpZ2h0OlQoe3g6Zix5OmJ9LHt4OmYseTpiK2h9LHt4OmErcix5Omd9LHt4OmEseTpnfSksYm90dG9tTGVmdDpUKHt4OmYseTpnfSx7eDpmLXIseTpnfSx7eDphLHk6YitofSx7eDphLHk6Yn0pfX1mdW5jdGlvbiBUKGEsYixmLGcpe3ZhciBoPWZ1bmN0aW9uKHIsdyxtKXtyZXR1cm57eDpyLngrKHcueC1yLngpKm0seTpyLnkrKHcueS1yLnkpKm19fTtyZXR1cm57c3RhcnQ6YSxzdGFydENvbnRyb2w6YiwKZW5kQ29udHJvbDpmLGVuZDpnLHN1YmRpdmlkZTpmdW5jdGlvbihyKXt2YXIgdz1oKGEsYixyKSxtPWgoYixmLHIpLEQ9aChmLGcsciksdT1oKHcsbSxyKTttPWgobSxELHIpO3I9aCh1LG0scik7cmV0dXJuW1QoYSx3LHUsciksVChyLG0sRCxnKV19LGN1cnZlVG86ZnVuY3Rpb24ocil7ci5wdXNoKFsiYmV6aWVyQ3VydmUiLGIueCxiLnksZi54LGYueSxnLngsZy55XSl9LGN1cnZlVG9SZXZlcnNlZDpmdW5jdGlvbihyKXtyLnB1c2goWyJiZXppZXJDdXJ2ZSIsZi54LGYueSxiLngsYi55LGEueCxhLnldKX19fWZ1bmN0aW9uIFcoYSxiLGYsZyxoLHIsdyl7MDxiWzBdfHwwPGJbMV0\/KGEucHVzaChbImxpbmUiLGdbMF0uc3RhcnQueCxnWzBdLnN0YXJ0LnldKSxnWzBdLmN1cnZlVG8oYSksZ1sxXS5jdXJ2ZVRvKGEpKTphLnB1c2goWyJsaW5lIixyLHddKTsoMDxmWzBdfHwwPGZbMV0pJiZhLnB1c2goWyJsaW5lIixoWzBdLnN0YXJ0LngsaFswXS5zdGFydC55XSl9ZnVuY3Rpb24gYmEoYSwKYixmLGcsaCxyLHcpe3ZhciBtPVtdOzA8YlswXXx8MDxiWzFdPyhtLnB1c2goWyJsaW5lIixnWzFdLnN0YXJ0LngsZ1sxXS5zdGFydC55XSksZ1sxXS5jdXJ2ZVRvKG0pKTptLnB1c2goWyJsaW5lIixhLmMxWzBdLGEuYzFbMV1dKTswPGZbMF18fDA8ZlsxXT8obS5wdXNoKFsibGluZSIsclswXS5zdGFydC54LHJbMF0uc3RhcnQueV0pLHJbMF0uY3VydmVUbyhtKSxtLnB1c2goWyJsaW5lIix3WzBdLmVuZC54LHdbMF0uZW5kLnldKSx3WzBdLmN1cnZlVG9SZXZlcnNlZChtKSk6KG0ucHVzaChbImxpbmUiLGEuYzJbMF0sYS5jMlsxXV0pLG0ucHVzaChbImxpbmUiLGEuYzNbMF0sYS5jM1sxXV0pKTswPGJbMF18fDA8YlsxXT8obS5wdXNoKFsibGluZSIsaFsxXS5lbmQueCxoWzFdLmVuZC55XSksaFsxXS5jdXJ2ZVRvUmV2ZXJzZWQobSkpOm0ucHVzaChbImxpbmUiLGEuYzRbMF0sYS5jNFsxXV0pO3JldHVybiBtfWZ1bmN0aW9uIHkoYSxiLGYpe3ZhciBnPWIubGVmdCxoPWIudG9wLHI9CmIud2lkdGgsdz1iLmhlaWdodCxtPUcoYSksRD1iLmxlZnQsdT1iLnRvcCxIPWIud2lkdGgsTD1iLmhlaWdodCxGPW1bMF1bMF0sVj1tWzBdWzFdLFM9bVsxXVswXSxaPW1bMV1bMV0sY2E9bVsyXVswXSxlYT1tWzJdWzFdLFk9bVszXVswXSxYPW1bM11bMV0sb2E9SC1TLHNhPUwtZWEsdGE9SC1jYSxmYT1MLVgsa2E9TyhELHUsRixWKS50b3BMZWZ0LnN1YmRpdmlkZSguNSk7Rj1PKEQrZlszXS53aWR0aCx1K2ZbMF0ud2lkdGgsTWF0aC5tYXgoMCxGLWZbM10ud2lkdGgpLE1hdGgubWF4KDAsVi1mWzBdLndpZHRoKSkudG9wTGVmdC5zdWJkaXZpZGUoLjUpO1Y9TyhEK29hLHUsUyxaKS50b3BSaWdodC5zdWJkaXZpZGUoLjUpO1M9TyhEK01hdGgubWluKG9hLEgrZlszXS53aWR0aCksdStmWzBdLndpZHRoLG9hPkgrZlszXS53aWR0aD8wOlMtZlszXS53aWR0aCxaLWZbMF0ud2lkdGgpLnRvcFJpZ2h0LnN1YmRpdmlkZSguNSk7Wj1PKEQrdGEsdStzYSxjYSxlYSkuYm90dG9tUmlnaHQuc3ViZGl2aWRlKC41KTsKSD1PKEQrTWF0aC5taW4odGEsSCtmWzNdLndpZHRoKSx1K01hdGgubWluKHNhLEwrZlswXS53aWR0aCksTWF0aC5tYXgoMCxjYS1mWzFdLndpZHRoKSxNYXRoLm1heCgwLGVhLWZbMl0ud2lkdGgpKS5ib3R0b21SaWdodC5zdWJkaXZpZGUoLjUpO0w9TyhELHUrZmEsWSxYKS5ib3R0b21MZWZ0LnN1YmRpdmlkZSguNSk7RD1PKEQrZlszXS53aWR0aCx1K2ZhLE1hdGgubWF4KDAsWS1mWzNdLndpZHRoKSxNYXRoLm1heCgwLFgtZlsyXS53aWR0aCkpLmJvdHRvbUxlZnQuc3ViZGl2aWRlKC41KTt1PVtdO3N3aXRjaChDKGEsImJhY2tncm91bmRDbGlwIikpe2Nhc2UgImNvbnRlbnQtYm94IjpjYXNlICJwYWRkaW5nLWJveCI6Vyh1LG1bMF0sbVsxXSxGLFMsYi5sZWZ0K2ZbM10ud2lkdGgsYi50b3ArZlswXS53aWR0aCk7Vyh1LG1bMV0sbVsyXSxTLEgsYi5sZWZ0K2Iud2lkdGgtZlsxXS53aWR0aCxiLnRvcCtmWzBdLndpZHRoKTtXKHUsbVsyXSxtWzNdLEgsRCxiLmxlZnQrYi53aWR0aC1mWzFdLndpZHRoLApiLnRvcCtiLmhlaWdodC1mWzJdLndpZHRoKTtXKHUsbVszXSxtWzBdLEQsRixiLmxlZnQrZlszXS53aWR0aCxiLnRvcCtiLmhlaWdodC1mWzJdLndpZHRoKTticmVhaztkZWZhdWx0OlcodSxtWzBdLG1bMV0sa2EsVixiLmxlZnQsYi50b3ApLFcodSxtWzFdLG1bMl0sVixaLGIubGVmdCtiLndpZHRoLGIudG9wKSxXKHUsbVsyXSxtWzNdLFosTCxiLmxlZnQrYi53aWR0aCxiLnRvcCtiLmhlaWdodCksVyh1LG1bM10sbVswXSxMLGthLGIubGVmdCxiLnRvcCtiLmhlaWdodCl9ZmE9e2NsaXA6dSxib3JkZXJzOltdfTtmb3IoYT0wOzQ+YTthKyspaWYoMDxmW2FdLndpZHRoKXtiPWc7dT1oO1k9cjtYPXctZlsyXS53aWR0aDtzd2l0Y2goYSl7Y2FzZSAwOlg9ZlswXS53aWR0aDt2YXIgbGE9YmEoe2MxOltiLHVdLGMyOltiK1ksdV0sYzM6W2IrWS1mWzFdLndpZHRoLHUrWF0sYzQ6W2IrZlszXS53aWR0aCx1K1hdfSxtWzBdLG1bMV0sa2EsRixWLFMpO2JyZWFrO2Nhc2UgMTpiPWcrci1mWzFdLndpZHRoOwpZPWZbMV0ud2lkdGg7bGE9YmEoe2MxOltiK1ksdV0sYzI6W2IrWSx1K1grZlsyXS53aWR0aF0sYzM6W2IsdStYXSxjNDpbYix1K2ZbMF0ud2lkdGhdfSxtWzFdLG1bMl0sVixTLFosSCk7YnJlYWs7Y2FzZSAyOnU9dSt3LWZbMl0ud2lkdGg7WD1mWzJdLndpZHRoO2xhPWJhKHtjMTpbYitZLHUrWF0sYzI6W2IsdStYXSxjMzpbYitmWzNdLndpZHRoLHVdLGM0OltiK1ktZlszXS53aWR0aCx1XX0sbVsyXSxtWzNdLFosSCxMLEQpO2JyZWFrO2Nhc2UgMzpZPWZbM10ud2lkdGgsbGE9YmEoe2MxOltiLHUrWCtmWzJdLndpZHRoXSxjMjpbYix1XSxjMzpbYitZLHUrZlswXS53aWR0aF0sYzQ6W2IrWSx1K1hdfSxtWzNdLG1bMF0sTCxELGthLEYpfWZhLmJvcmRlcnMucHVzaCh7YXJnczpsYSxjb2xvcjpmW2FdLmNvbG9yfSl9cmV0dXJuIGZhfWZ1bmN0aW9uIEEoYSxiKXt2YXIgZj1hLmRyYXdTaGFwZSgpO2IuZm9yRWFjaChmdW5jdGlvbihnLGgpe2ZbMD09PWg\/Im1vdmVUbyI6Z1swXSsiVG8iXS5hcHBseShudWxsLApnLnNsaWNlKDEpKX0pO3JldHVybiBmfWZ1bmN0aW9uIEIoYSxiLGYpe3ZhciBnPVAuY3JlYXRlRWxlbWVudCgidmFsdWV3cmFwIik7ImxpbmVIZWlnaHQgdGV4dEFsaWduIGZvbnRGYW1pbHkgY29sb3IgZm9udFNpemUgcGFkZGluZ0xlZnQgcGFkZGluZ1RvcCB3aWR0aCBoZWlnaHQgYm9yZGVyIGJvcmRlckxlZnRXaWR0aCBib3JkZXJUb3BXaWR0aCIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGgpe3RyeXtnLnN0eWxlW2hdPUMoYSxoKX1jYXRjaChyKXtNLmxvZygiaHRtbDJjYW52YXM6IFBhcnNlOiBFeGNlcHRpb24gY2F1Z2h0IGluIHJlbmRlckZvcm1WYWx1ZTogIityLm1lc3NhZ2UpfX0pO2cuc3R5bGUuYm9yZGVyQ29sb3I9ImJsYWNrIjtnLnN0eWxlLmJvcmRlclN0eWxlPSJzb2xpZCI7Zy5zdHlsZS5kaXNwbGF5PSJibG9jayI7Zy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2lmKC9eKHN1Ym1pdHxyZXNldHxidXR0b258dGV4dHxwYXNzd29yZCkkLy50ZXN0KGEudHlwZSl8fAoiU0VMRUNUIj09PWEubm9kZU5hbWUpZy5zdHlsZS5saW5lSGVpZ2h0PUMoYSwiaGVpZ2h0Iik7Zy5zdHlsZS50b3A9Yi50b3ArInB4IjtnLnN0eWxlLmxlZnQ9Yi5sZWZ0KyJweCI7KGI9IlNFTEVDVCI9PT1hLm5vZGVOYW1lPyhhLm9wdGlvbnNbYS5zZWxlY3RlZEluZGV4XXx8MCkudGV4dDphLnZhbHVlKXx8KGI9YS5wbGFjZWhvbGRlcik7Yj1QLmNyZWF0ZVRleHROb2RlKGIpO2cuYXBwZW5kQ2hpbGQoYik7bWEuYXBwZW5kQ2hpbGQoZyk7ZShhLGIsZik7bWEucmVtb3ZlQ2hpbGQoZyl9ZnVuY3Rpb24gVShhKXthLmRyYXdJbWFnZS5hcHBseShhLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSl9ZnVuY3Rpb24gYWEoYSxiKXt2YXIgZj1OLmdldENvbXB1dGVkU3R5bGUoYSxiKTthPU4uZ2V0Q29tcHV0ZWRTdHlsZShhKTtpZihmJiZmLmNvbnRlbnQmJiJub25lIiE9PWYuY29udGVudCYmIi1tb3otYWx0LWNvbnRlbnQiIT09Zi5jb250ZW50JiYibm9uZSIhPT0KZi5kaXNwbGF5JiZhLmNvbnRlbnQhPT1mLmNvbnRlbnQpe2E9Zi5jb250ZW50KyIiO2lmKCInIj09PWFbMF18fCciJz09PWFbMF0pYT1hLnJlcGxhY2UoLyheWyciXSl8KFsnIl0kKS9nLCIiKTtiPSJ1cmwiPT09YS5zdWJzdHIoMCwzKTt2YXIgZz1SLmNyZWF0ZUVsZW1lbnQoYj8iaW1nIjoic3BhbiIpO2cuY2xhc3NOYW1lPSJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtZWxlbWVudCAiO09iamVjdC5rZXlzKGYpLmZpbHRlcihkYSkuZm9yRWFjaChmdW5jdGlvbihoKXt0cnl7Zy5zdHlsZVtoXT1mW2hdfWNhdGNoKHIpe00ubG9nKFsiVHJpZWQgdG8gYXNzaWduIHJlYWRvbmx5IHByb3BlcnR5ICIsaCwiRXJyb3I6IixyXSl9fSk7Yj9nLnNyYz1NLnBhcnNlQmFja2dyb3VuZEltYWdlKGEpWzBdLmFyZ3NbMF06Zy5pbm5lckhUTUw9YTtyZXR1cm4gZ319ZnVuY3Rpb24gZGEoYSl7cmV0dXJuIGlzTmFOKE4ucGFyc2VJbnQoYSwxMCkpfWZ1bmN0aW9uIGhhKGEsYixmLGcpe3ZhciBoPQpNYXRoLnJvdW5kKGcubGVmdCtmLmxlZnQpO2Y9TWF0aC5yb3VuZChnLnRvcCtmLnRvcCk7YS5jcmVhdGVQYXR0ZXJuKGIpO2EudHJhbnNsYXRlKGgsZik7YS5maWxsKCk7YS50cmFuc2xhdGUoLWgsLWYpfWZ1bmN0aW9uIG5hKGEsYixmLGcsaCxyLHcsbSl7dmFyIEQ9W107RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoKSxNYXRoLnJvdW5kKHIpXSk7RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoK3cpLE1hdGgucm91bmQocildKTtELnB1c2goWyJsaW5lIixNYXRoLnJvdW5kKGgrdyksTWF0aC5yb3VuZChtK3IpXSk7RC5wdXNoKFsibGluZSIsTWF0aC5yb3VuZChoKSxNYXRoLnJvdW5kKG0rcildKTtBKGEsRCk7YS5zYXZlKCk7YS5jbGlwKCk7aGEoYSxiLGYsZyk7YS5yZXN0b3JlKCl9ZnVuY3Rpb24gQWEoYSxiLGYpe2Zvcih2YXIgZz1DKGEsImJhY2tncm91bmRJbWFnZSIpLGg9TS5wYXJzZUJhY2tncm91bmRJbWFnZShnKSxyLHc9aC5sZW5ndGg7dy0tOylpZihnPWhbd10sZy5hcmdzJiYKMCE9PWcuYXJncy5sZW5ndGgpaWYocj16KCJ1cmwiPT09Zy5tZXRob2Q\/Zy5hcmdzWzBdOmcudmFsdWUpKXt2YXIgbT1hO2c9Yjt2YXIgRD1mLHU9cixIPXcsTD1NLkJhY2tncm91bmRTaXplKG0sZyx1LEgpO3I9TS5CYWNrZ3JvdW5kUG9zaXRpb24obSxnLHUsSCxMKTttPU0uQmFja2dyb3VuZFJlcGVhdChtLEgpO0g9TDtpZih1LndpZHRoIT09SC53aWR0aHx8dS5oZWlnaHQhPT1ILmhlaWdodCl7dmFyIEY9UC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtGLndpZHRoPUgud2lkdGg7Ri5oZWlnaHQ9SC5oZWlnaHQ7TD1GLmdldENvbnRleHQoIjJkIik7VShMLHUsMCwwLHUud2lkdGgsdS5oZWlnaHQsMCwwLEgud2lkdGgsSC5oZWlnaHQpO3U9Rn1zd2l0Y2gobSl7Y2FzZSAicmVwZWF0LXgiOmNhc2UgInJlcGVhdCBuby1yZXBlYXQiOm5hKEQsdSxyLGcsZy5sZWZ0LGcudG9wK3IudG9wLDk5OTk5LHUuaGVpZ2h0KTticmVhaztjYXNlICJyZXBlYXQteSI6Y2FzZSAibm8tcmVwZWF0IHJlcGVhdCI6bmEoRCwKdSxyLGcsZy5sZWZ0K3IubGVmdCxnLnRvcCx1LndpZHRoLDk5OTk5KTticmVhaztjYXNlICJuby1yZXBlYXQiOm5hKEQsdSxyLGcsZy5sZWZ0K3IubGVmdCxnLnRvcCtyLnRvcCx1LndpZHRoLHUuaGVpZ2h0KTticmVhaztkZWZhdWx0OmhhKEQsdSxyLHt0b3A6Zy50b3AsbGVmdDpnLmxlZnQsd2lkdGg6dS53aWR0aCxoZWlnaHQ6dS5oZWlnaHR9KX19ZWxzZSBNLmxvZygiaHRtbDJjYW52YXM6IEVycm9yIGxvYWRpbmcgYmFja2dyb3VuZDoiLGcpfWZ1bmN0aW9uIEJhKGEpe3JldHVybiBhLnJlcGxhY2UoInB4IiwiIil9ZnVuY3Rpb24gQ2EoYSxiKXtiPS8obWF0cml4KVwoKC4rKVwpLzt2YXIgZj1DKGEsInRyYW5zZm9ybSIpfHxDKGEsIi13ZWJraXQtdHJhbnNmb3JtIil8fEMoYSwiLW1vei10cmFuc2Zvcm0iKXx8QyhhLCItbXMtdHJhbnNmb3JtIil8fEMoYSwiLW8tdHJhbnNmb3JtIik7YT1DKGEsInRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iKXx8CkMoYSwiLW1vei10cmFuc2Zvcm0tb3JpZ2luIil8fEMoYSwiLW1zLXRyYW5zZm9ybS1vcmlnaW4iKXx8QyhhLCItby10cmFuc2Zvcm0tb3JpZ2luIil8fCIwcHggMHB4IjthPWEuc3BsaXQoIiAiKS5tYXAoQmEpLm1hcChNLmFzRmxvYXQpO2lmKGYmJiJub25lIiE9PWYmJihiPWYubWF0Y2goYikpKXN3aXRjaChiWzFdKXtjYXNlICJtYXRyaXgiOnZhciBnPWJbMl0uc3BsaXQoIiwiKS5tYXAoTS50cmltVGV4dCkubWFwKE0uYXNGbG9hdCl9cmV0dXJue29yaWdpbjphLG1hdHJpeDpnfX1mdW5jdGlvbiBEYShhLGIsZixnKXt2YXIgaD15YShiP2Yud2lkdGg6TWF0aC5tYXgoTWF0aC5tYXgoUC5ib2R5LnNjcm9sbFdpZHRoLFAuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoKSxNYXRoLm1heChQLmJvZHkub2Zmc2V0V2lkdGgsUC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGgpLE1hdGgubWF4KFAuYm9keS5jbGllbnRXaWR0aCxQLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkpLApiP2YuaGVpZ2h0Ok1hdGgubWF4KE1hdGgubWF4KFAuYm9keS5zY3JvbGxIZWlnaHQsUC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KSxNYXRoLm1heChQLmJvZHkub2Zmc2V0SGVpZ2h0LFAuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCksTWF0aC5tYXgoUC5ib2R5LmNsaWVudEhlaWdodCxQLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpKSkscj1oLnNldFZhcmlhYmxlKCJnbG9iYWxBbHBoYSIsQyhhLCJvcGFjaXR5IikqKGI\/Yi5vcGFjaXR5OjEpKTtnPXtjdHg6aCxvcGFjaXR5OnIsY3NzUG9zaXRpb246QyhhLCJwb3NpdGlvbiIpLGJvcmRlcnM6SihhKSx0cmFuc2Zvcm06ZyxjbGlwOmImJmIuY2xpcD9NLkV4dGVuZCh7fSxiLmNsaXApOm51bGx9O3ZhciB3PShyPSJzdGF0aWMiIT09Zy5jc3NQb3NpdGlvbik\/QyhhLCJ6SW5kZXgiKToiYXV0byIsbT1DKGEsIm9wYWNpdHkiKSxEPSJub25lIiE9PUMoYSwiY3NzRmxvYXQiKTtnLnpJbmRleD1oPXtkZXB0aDowLHppbmRleDp3LApjaGlsZHJlbjpbXX07aC5pc1Bvc2l0aW9uZWQ9cjtoLmlzRmxvYXRlZD1EO2gub3BhY2l0eT1tO2gub3duU3RhY2tpbmc9ImF1dG8iIT09d3x8MT5tO2guZGVwdGg9Yj9iLnpJbmRleC5kZXB0aCsxOjA7YiYmYi56SW5kZXguY2hpbGRyZW4ucHVzaChnKTshMD09PXAudXNlT3ZlcmZsb3cmJiEwPT09LyhoaWRkZW58c2Nyb2xsfGF1dG8pLy50ZXN0KEMoYSwib3ZlcmZsb3ciKSkmJiExPT09LyhCT0RZKS9pLnRlc3QoYS5ub2RlTmFtZSkmJihnLmNsaXA9Zy5jbGlwP0UoZy5jbGlwLGYpOmYpO3JldHVybiBnfWZ1bmN0aW9uIEVhKGEsYixmKXthPXtsZWZ0OmIubGVmdCthWzNdLndpZHRoLHRvcDpiLnRvcCthWzBdLndpZHRoLHdpZHRoOmIud2lkdGgtKGFbMV0ud2lkdGgrYVszXS53aWR0aCksaGVpZ2h0OmIuaGVpZ2h0LShhWzBdLndpZHRoK2FbMl0ud2lkdGgpfTtmJiYoYT1FKGEsZikpO3JldHVybiBhfWZ1bmN0aW9uIEZhKGEsYil7YT1iLm1hdHJpeD9NLk9mZnNldEJvdW5kcyhhKToKTS5Cb3VuZHMoYSk7Yi5vcmlnaW5bMF0rPWEubGVmdDtiLm9yaWdpblsxXSs9YS50b3A7cmV0dXJuIGF9ZnVuY3Rpb24gdWEoYSxiLGYpe3ZhciBnPUNhKGEsYiksaD1GYShhLGcpLHI7Yj1EYShhLGIsaCxnKTtnPWIuYm9yZGVyczt2YXIgdz1iLmN0eCxtPUVhKGcsaCxiLmNsaXApLEQ9eShhLGgsZyksdT12YS50ZXN0KGEubm9kZU5hbWUpPyIjZWZlZmVmIjpDKGEsImJhY2tncm91bmRDb2xvciIpO0EodyxELmNsaXApO3cuc2F2ZSgpO3cuY2xpcCgpOzA8bS5oZWlnaHQmJjA8bS53aWR0aCYmIWY\/KG4odyxoLmxlZnQsaC50b3AsaC53aWR0aCxoLmhlaWdodCx1KSxBYShhLG0sdykpOmYmJihiLmJhY2tncm91bmRDb2xvcj11KTt3LnJlc3RvcmUoKTtELmJvcmRlcnMuZm9yRWFjaChmdW5jdGlvbihIKXt2YXIgTD1ILmFyZ3M7SD1ILmNvbG9yOyJ0cmFuc3BhcmVudCIhPT1IJiYody5zZXRWYXJpYWJsZSgiZmlsbFN0eWxlIixIKSxBKHcsTCksdy5maWxsKCkpfSk7c3dpdGNoKGEubm9kZU5hbWUpe2Nhc2UgIklNRyI6KHI9CnooYS5nZXRBdHRyaWJ1dGUoInNyYyIpKSk\/Syh3LGEscixoLGcpOk0ubG9nKCJodG1sMmNhbnZhczogRXJyb3IgbG9hZGluZyA8aW1nPjoiK2EuZ2V0QXR0cmlidXRlKCJzcmMiKSk7YnJlYWs7Y2FzZSAiSU5QVVQiOi9eKHRleHR8dXJsfGVtYWlsfHN1Ym1pdHxidXR0b258cmVzZXQpJC8udGVzdChhLnR5cGUpJiYwPChhLnZhbHVlfHxhLnBsYWNlaG9sZGVyfHwiIikubGVuZ3RoJiZCKGEsaCxiKTticmVhaztjYXNlICJURVhUQVJFQSI6MDwoYS52YWx1ZXx8YS5wbGFjZWhvbGRlcnx8IiIpLmxlbmd0aCYmQihhLGgsYik7YnJlYWs7Y2FzZSAiU0VMRUNUIjowPChhLm9wdGlvbnN8fGEucGxhY2Vob2xkZXJ8fCIiKS5sZW5ndGgmJkIoYSxoLGIpO2JyZWFrO2Nhc2UgIkxJIjpJKGEsYixtKTticmVhaztjYXNlICJDQU5WQVMiOksodyxhLGEsaCxnKX1yZXR1cm4gYn1mdW5jdGlvbiBHYShhKXtyZXR1cm4ibm9uZSIhPT1DKGEsImRpc3BsYXkiKSYmImhpZGRlbiIhPT1DKGEsInZpc2liaWxpdHkiKSYmCiFhLmhhc0F0dHJpYnV0ZSgiZGF0YS1odG1sMmNhbnZhcy1pZ25vcmUiKX1mdW5jdGlvbiBIYShhLGIsZil7Znx8KGY9ZnVuY3Rpb24oKXt9KTtpZihHYShhKSYmKGI9dWEoYSxiLCExKXx8YiwhdmEudGVzdChhLm5vZGVOYW1lKSkpcmV0dXJuIHdhKGEsYixmKTtmKCl9ZnVuY3Rpb24gd2EoYSxiLGYpe2Z1bmN0aW9uIGcobSl7bS5ub2RlVHlwZT09PW0uRUxFTUVOVF9OT0RFP0hhKG0sYixoKToobS5ub2RlVHlwZT09PW0uVEVYVF9OT0RFJiZlKGEsbSxiKSxoKCkpfWZ1bmN0aW9uIGgobSl7MD49LS13JiYoTS5sb2coImZpbmlzaGVkIHJlbmRlcmluZyAiK3IubGVuZ3RoKyIgY2hpbGRyZW4uIiksZigpKX12YXIgcj1NLkNoaWxkcmVuKGEpLHc9ci5sZW5ndGgrMTtoKCk7cC5hc3luYz9yLmZvckVhY2goZnVuY3Rpb24obSl7c2V0VGltZW91dChmdW5jdGlvbigpe2cobSl9LDApfSk6ci5mb3JFYWNoKGcpfU4uc2Nyb2xsKDAsMCk7dmFyIGlhPXAuZWxlbWVudHM9PT1RP1IuYm9keTpwLmVsZW1lbnRzWzBdLApQPWlhLm93bmVyRG9jdW1lbnQsTT14LlV0aWwsemE9TS5TdXBwb3J0KHAsUCksdmE9bmV3IFJlZ0V4cCgiKCIrcC5pZ25vcmVFbGVtZW50cysiKSIpLG1hPVAuYm9keSxDPU0uZ2V0Q1NTLHBhPVAuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtwYS5pbm5lckhUTUw9Jy5fX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50OmJlZm9yZSB7IGNvbnRlbnQ6ICIiICFpbXBvcnRhbnQ7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfS5fX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50OmFmdGVyIHsgY29udGVudDogIiIgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9JzttYS5hcHBlbmRDaGlsZChwYSk7ZD1kfHx7fTsoZnVuY3Rpb24oKXt2YXIgYT1DKFIuZG9jdW1lbnRFbGVtZW50LCJiYWNrZ3JvdW5kQ29sb3IiKSxiPU0uaXNUcmFuc3BhcmVudChhKSYmaWE9PT1SLmJvZHksZj11YShpYSxudWxsLCExLGIpO2soaWEpO3dhKGlhLGYsZnVuY3Rpb24oKXtiJiYKKGE9Zi5iYWNrZ3JvdW5kQ29sb3IpO21hLnJlbW92ZUNoaWxkKHBhKTtmb3IodmFyIGc9Ui5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtZWxlbWVudCIpO2cubGVuZ3RoOylnWzBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZ1swXSk7Zm9yKGc9Ui5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnQtcGFyZW50Iik7Zy5sZW5ndGg7KXt2YXIgaD1nWzBdO2guY2xhc3NMaXN0P2guY2xhc3NMaXN0LnJlbW92ZSgiX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50LXBhcmVudCIpOmguY2xhc3NOYW1lPWguY2xhc3NOYW1lLnJlcGxhY2UoIl9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudC1wYXJlbnQiLCIiKS50cmltKCl9TS5sb2coIkRvbmUgcGFyc2luZywgbW92aW5nIHRvIFJlbmRlci4iKTtxKHtiYWNrZ3JvdW5kQ29sb3I6YSxzdGFjazpmfSl9KX0pKCl9O3guUHJlbG9hZD1mdW5jdGlvbihkKXtmdW5jdGlvbiBwKCl7ZS5sb2coImh0bWwyY2FudmFzOiBzdGFydDogaW1hZ2VzOiAiKwpsLm51bUxvYWRlZCsiIC8gIitsLm51bVRvdGFsKyIgKGZhaWxlZDogIitsLm51bUZhaWxlZCsiKSIpOyFsLmZpcnN0UnVuJiZsLm51bUxvYWRlZD49bC5udW1Ub3RhbCYmKGUubG9nKCJGaW5pc2hlZCBsb2FkaW5nIGltYWdlczogIyAiK2wubnVtVG90YWwrIiAoZmFpbGVkOiAiK2wubnVtRmFpbGVkKyIpIiksImZ1bmN0aW9uIj09PXR5cGVvZiBkLmNvbXBsZXRlJiZkLmNvbXBsZXRlKGwpKX1mdW5jdGlvbiBxKHksQSxCKXt2YXIgVT1kLnByb3h5O0cuaHJlZj15O3k9Ry5ocmVmO3ZhciBhYT0iaHRtbDJjYW52YXNfIitJKys7Qi5jYWxsYmFja25hbWU9YWE7VT0tMTxVLmluZGV4T2YoIj8iKT9VKyImIjpVKyI\/IjtVKz0idXJsPSIrZW5jb2RlVVJJQ29tcG9uZW50KHkpKyImY2FsbGJhY2s9IithYTt2YXIgZGE9RS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtOW2FhXT1mdW5jdGlvbihoYSl7ImVycm9yOiI9PT1oYS5zdWJzdHJpbmcoMCw2KT8oQi5zdWNjZWVkZWQ9ITEsbC5udW1Mb2FkZWQrKywKbC5udW1GYWlsZWQrKyxwKCkpOih2KEEsQiksQS5zcmM9aGEpO05bYWFdPVE7dHJ5e2RlbGV0ZSBOW2FhXX1jYXRjaChuYSl7fWRhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGEpO2RhPW51bGw7ZGVsZXRlIEIuc2NyaXB0O2RlbGV0ZSBCLmNhbGxiYWNrbmFtZX07ZGEuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0Iik7ZGEuc2V0QXR0cmlidXRlKCJzcmMiLFUpO0Iuc2NyaXB0PWRhO04uZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkYSl9ZnVuY3Rpb24gayh5LEEpe0E9Ti5nZXRDb21wdXRlZFN0eWxlKHksQSk7dmFyIEI9QS5jb250ZW50OyJ1cmwiPT09Qi5zdWJzdHIoMCwzKSYmYmEubG9hZEltYWdlKHguVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZShCKVswXS5hcmdzWzBdKTtuKEEuYmFja2dyb3VuZEltYWdlLHkpfWZ1bmN0aW9uIGMoeSl7cmV0dXJuIHkmJnkubWV0aG9kJiZ5LmFyZ3MmJjA8eS5hcmdzLmxlbmd0aH1mdW5jdGlvbiBuKHksQSl7dmFyIEI7CnguVXRpbC5wYXJzZUJhY2tncm91bmRJbWFnZSh5KS5maWx0ZXIoYykuZm9yRWFjaChmdW5jdGlvbihVKXtpZigidXJsIj09PVUubWV0aG9kKWJhLmxvYWRJbWFnZShVLmFyZ3NbMF0pO2Vsc2UgaWYoVS5tZXRob2QubWF0Y2goL1wtP2dyYWRpZW50JC8pKXtCPT09USYmKEI9eC5VdGlsLkJvdW5kcyhBKSk7VT1VLnZhbHVlO3ZhciBhYT14LkdlbmVyYXRlLkdyYWRpZW50KFUsQik7YWEhPT1RJiYobFtVXT17aW1nOmFhLHN1Y2NlZWRlZDohMH0sbC5udW1Ub3RhbCsrLGwubnVtTG9hZGVkKysscCgpKX19KX1mdW5jdGlvbiB0KHkpe3ZhciBBPSExO3RyeXtpZihudWxsIT09eS5nZXRBdHRyaWJ1dGUoImhpZGRlbiIpfHwibm9uZSI9PT1nZXRDb21wdXRlZFN0eWxlKHkpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSlyZXR1cm47ZS5DaGlsZHJlbih5KS5mb3JFYWNoKHQpfWNhdGNoKEIpe310cnl7QT15Lm5vZGVUeXBlfWNhdGNoKEIpe0E9ITEsZS5sb2coImh0bWwyY2FudmFzOiBmYWlsZWQgdG8gYWNjZXNzIHNvbWUgZWxlbWVudCdzIG5vZGVUeXBlIC0gRXhjZXB0aW9uOiAiKwpCLm1lc3NhZ2UpfWlmKDE9PT1BfHxBPT09USl7ayh5LCI6YmVmb3JlIik7ayh5LCI6YWZ0ZXIiKTt0cnl7bihlLmdldENTUyh5LCJiYWNrZ3JvdW5kSW1hZ2UiKSx5KX1jYXRjaChCKXtlLmxvZygiaHRtbDJjYW52YXM6IGZhaWxlZCB0byBnZXQgYmFja2dyb3VuZC1pbWFnZSAtIEV4Y2VwdGlvbjogIitCLm1lc3NhZ2UpfW4oeSl9fWZ1bmN0aW9uIHYoeSxBKXt5Lm9ubG9hZD1mdW5jdGlvbigpe0EudGltZXIhPT1RJiZOLmNsZWFyVGltZW91dChBLnRpbWVyKTtsLm51bUxvYWRlZCsrO0Euc3VjY2VlZGVkPSEwO3kub25lcnJvcj15Lm9ubG9hZD1udWxsO3AoKX07eS5vbmVycm9yPWZ1bmN0aW9uKCl7aWYoImFub255bW91cyI9PT15LmNyb3NzT3JpZ2luJiYoTi5jbGVhclRpbWVvdXQoQS50aW1lciksZC5wcm94eSkpe3ZhciBCPXkuc3JjO3k9bmV3IEltYWdlO0EuaW1nPXk7eS5zcmM9QjtxKHkuc3JjLHksQSl9ZWxzZSBsLm51bUxvYWRlZCsrLGwubnVtRmFpbGVkKyssQS5zdWNjZWVkZWQ9CiExLHkub25lcnJvcj15Lm9ubG9hZD1udWxsLHAoKX19dmFyIGw9e251bUxvYWRlZDowLG51bUZhaWxlZDowLG51bVRvdGFsOjAsY2xlYW51cERvbmU6ITF9LGU9eC5VdGlsLEk9MCx6PWQuZWxlbWVudHNbMF18fFIuYm9keSxFPXoub3duZXJEb2N1bWVudCxLPXouZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpLEo9Sy5sZW5ndGgsRz1FLmNyZWF0ZUVsZW1lbnQoImEiKSxPPShuZXcgSW1hZ2UpLmNyb3NzT3JpZ2luIT09USxUO0cuaHJlZj1OLmxvY2F0aW9uLmhyZWY7dmFyIFc9Ry5wcm90b2NvbCtHLmhvc3QsYmE9e2xvYWRJbWFnZTpmdW5jdGlvbih5KXtpZih5JiZsW3ldPT09USl7dmFyIEE9bmV3IEltYWdlO2lmKHkubWF0Y2goL2RhdGE6aW1hZ2VcLy4qO2Jhc2U2NCwvaSkpe0Euc3JjPXkucmVwbGFjZSgvdXJsXChbJyJdezAsfXxbJyJdezAsfVwpJC9pZywiIik7dmFyIEI9bFt5XT17aW1nOkF9O2wubnVtVG90YWwrKzt2KEEsQil9ZWxzZSBHLmhyZWY9eSxHLmhyZWY9Ry5ocmVmLApHLnByb3RvY29sK0cuaG9zdD09PVd8fCEwPT09ZC5hbGxvd1RhaW50PyhCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKyssdihBLEIpLEEuc3JjPXkpOk8mJiFkLmFsbG93VGFpbnQmJmQudXNlQ09SUz8oQS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKyssdihBLEIpLEEuc3JjPXkpOmQucHJveHkmJihCPWxbeV09e2ltZzpBfSxsLm51bVRvdGFsKysscSh5LEEsQikpfX0sY2xlYW51cERPTTpmdW5jdGlvbih5KXt2YXIgQTtpZighbC5jbGVhbnVwRG9uZSl7eSYmInN0cmluZyI9PT10eXBlb2YgeT9lLmxvZygiaHRtbDJjYW52YXM6IENsZWFudXAgYmVjYXVzZTogIit5KTplLmxvZygiaHRtbDJjYW52YXM6IENsZWFudXAgYWZ0ZXIgdGltZW91dDogIitkLnRpbWVvdXQrIiBtcy4iKTtmb3IoQSBpbiBsKWlmKGwuaGFzT3duUHJvcGVydHkoQSkpe3ZhciBCPWxbQV07aWYoIm9iamVjdCI9PT10eXBlb2YgQiYmQi5jYWxsYmFja25hbWUmJkIuc3VjY2VlZGVkPT09ClEpe05bQi5jYWxsYmFja25hbWVdPVE7dHJ5e2RlbGV0ZSBOW0IuY2FsbGJhY2tuYW1lXX1jYXRjaChVKXt9Qi5zY3JpcHQmJkIuc2NyaXB0LnBhcmVudE5vZGUmJihCLnNjcmlwdC5zZXRBdHRyaWJ1dGUoInNyYyIsImFib3V0OmJsYW5rIiksQi5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChCLnNjcmlwdCkpO2wubnVtTG9hZGVkKys7bC5udW1GYWlsZWQrKztlLmxvZygiaHRtbDJjYW52YXM6IENsZWFuZWQgdXAgZmFpbGVkIGltZzogJyIrQSsiJyBTdGVwczogIitsLm51bUxvYWRlZCsiIC8gIitsLm51bVRvdGFsKX19Ti5zdG9wIT09UT9OLnN0b3AoKTpSLmV4ZWNDb21tYW5kIT09USYmUi5leGVjQ29tbWFuZCgiU3RvcCIsITEpO1IuY2xvc2UhPT1RJiZSLmNsb3NlKCk7bC5jbGVhbnVwRG9uZT0hMDt5JiYic3RyaW5nIj09PXR5cGVvZiB5fHxwKCl9fSxyZW5kZXJpbmdEb25lOmZ1bmN0aW9uKCl7VCYmTi5jbGVhclRpbWVvdXQoVCl9fTswPGQudGltZW91dCYmKFQ9Ti5zZXRUaW1lb3V0KGJhLmNsZWFudXBET00sCmQudGltZW91dCkpO2UubG9nKCJodG1sMmNhbnZhczogUHJlbG9hZCBzdGFydHM6IGZpbmRpbmcgYmFja2dyb3VuZC1pbWFnZXMiKTtsLmZpcnN0UnVuPSEwO3Qoeik7ZS5sb2coImh0bWwyY2FudmFzOiBQcmVsb2FkOiBGaW5kaW5nIGltYWdlcyIpO2Zvcih6PTA7ejxKO3orPTEpYmEubG9hZEltYWdlKEtbel0uZ2V0QXR0cmlidXRlKCJzcmMiKSk7bC5maXJzdFJ1bj0hMTtlLmxvZygiaHRtbDJjYW52YXM6IFByZWxvYWQ6IERvbmUuIik7bC5udW1Ub3RhbD09PWwubnVtTG9hZGVkJiZwKCk7cmV0dXJuIGJhfTt4LlJlbmRlcmVyPWZ1bmN0aW9uKGQscCl7ZnVuY3Rpb24gcShrLGMpe3JldHVybiJjaGlsZHJlbiI9PT1rPy0xOiJjaGlsZHJlbiI9PT1jPzE6ay1jfXJldHVybiBmdW5jdGlvbihrKXtpZigic3RyaW5nIj09PXR5cGVvZiBwLnJlbmRlcmVyJiZ4LlJlbmRlcmVyW2tdIT09USlrPXguUmVuZGVyZXJba10ocCk7ZWxzZSBpZigiZnVuY3Rpb24iPT09dHlwZW9mIGspaz1rKHApOwplbHNlIHRocm93IEVycm9yKCJVbmtub3duIHJlbmRlcmVyIik7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBrKXRocm93IEVycm9yKCJJbnZhbGlkIHJlbmRlcmVyIGRlZmluZWQiKTtyZXR1cm4ga30ocC5yZW5kZXJlcikoZCxwLFIsZnVuY3Rpb24oayl7ZnVuY3Rpb24gYyh0KXtPYmplY3Qua2V5cyh0KS5zb3J0KHEpLmZvckVhY2goZnVuY3Rpb24odil7dmFyIGw9W10sZT1bXSxJPVtdLHo9W107dFt2XS5mb3JFYWNoKGZ1bmN0aW9uKEUpe0Uubm9kZS56SW5kZXguaXNQb3NpdGlvbmVkfHwxPkUubm9kZS56SW5kZXgub3BhY2l0eT9JLnB1c2goRSk6RS5ub2RlLnpJbmRleC5pc0Zsb2F0ZWQ\/ZS5wdXNoKEUpOmwucHVzaChFKX0pOyhmdW5jdGlvbiBKKEspe0suZm9yRWFjaChmdW5jdGlvbihHKXt6LnB1c2goRyk7Ry5jaGlsZHJlbiYmSihHLmNoaWxkcmVuKX0pfSkobC5jb25jYXQoZSxJKSk7ei5mb3JFYWNoKGZ1bmN0aW9uKEspe0suY29udGV4dD9jKEsuY29udGV4dCk6bi5wdXNoKEsubm9kZSl9KX0pfQp2YXIgbj1bXTtrPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHYoZSxJLHope3ZhciBFPSJhdXRvIj09PUkuekluZGV4LnppbmRleD8wOk51bWJlcihJLnpJbmRleC56aW5kZXgpLEs9ZSxKPUkuekluZGV4LmlzUG9zaXRpb25lZCxHPUkuekluZGV4LmlzRmxvYXRlZCxPPXtub2RlOkl9LFQ9ejtpZihJLnpJbmRleC5vd25TdGFja2luZylLPU8uY29udGV4dD17Y2hpbGRyZW46W3tub2RlOkksY2hpbGRyZW46W119XX0sVD1RO2Vsc2UgaWYoSnx8RylUPU8uY2hpbGRyZW49W107MD09PUUmJno\/ei5wdXNoKE8pOihlW0VdfHwoZVtFXT1bXSksZVtFXS5wdXNoKE8pKTtJLnpJbmRleC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKFcpe3YoSyxXLFQpfSl9dmFyIGw9e307dihsLHQpO3JldHVybiBsfShrKTtjKGspO3JldHVybiBufShkLnN0YWNrKSx4KX07eC5VdGlsLlN1cHBvcnQ9ZnVuY3Rpb24oZCxwKXtmdW5jdGlvbiBxKCl7dmFyIGs9bmV3IEltYWdlLGM9cC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSwKbj1jLmdldENvbnRleHQ9PT1RPyExOmMuZ2V0Q29udGV4dCgiMmQiKTtpZighMT09PW4pcmV0dXJuITE7Yy53aWR0aD1jLmhlaWdodD0xMDtrLnNyYz0iZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTAnIGhlaWdodD0nMTAnPjxmb3JlaWduT2JqZWN0IHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGRpdiB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcgc3R5bGU9J3dpZHRoOjEwO2hlaWdodDoxMDsnPnN1cDwvZGl2PjwvZm9yZWlnbk9iamVjdD48L3N2Zz4iO3RyeXtuLmRyYXdJbWFnZShrLDAsMCksYy50b0RhdGFVUkwoKX1jYXRjaCh0KXtyZXR1cm4hMX14LlV0aWwubG9nKCJodG1sMmNhbnZhczogUGFyc2U6IFNWRyBwb3dlcmVkIHJlbmRlcmluZyBhdmFpbGFibGUiKTtyZXR1cm4hMH1yZXR1cm57cmFuZ2VCb3VuZHM6ZnVuY3Rpb24oKXt2YXIgaz0hMTtpZihwLmNyZWF0ZVJhbmdlKXt2YXIgYz0KcC5jcmVhdGVSYW5nZSgpO2lmKGMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgbj1wLmNyZWF0ZUVsZW1lbnQoImJvdW5kdGVzdCIpO24uc3R5bGUuaGVpZ2h0PSIxMjNweCI7bi5zdHlsZS5kaXNwbGF5PSJibG9jayI7cC5ib2R5LmFwcGVuZENoaWxkKG4pO2Muc2VsZWN0Tm9kZShuKTtjPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Yz1jLmhlaWdodDsxMjM9PT1jJiYoaz0hMCk7cC5ib2R5LnJlbW92ZUNoaWxkKG4pfX1yZXR1cm4ga30oKSxzdmdSZW5kZXJpbmc6ZC5zdmdSZW5kZXJpbmcmJnEoKX19O04uaHRtbDJjYW52YXM9ZnVuY3Rpb24oZCxwKXtkPWQubGVuZ3RoP2Q6W2RdO3ZhciBxLGs9e2xvZ2dpbmc6ITEsZWxlbWVudHM6ZCxiYWNrZ3JvdW5kOiIjZmZmIixwcm94eTpudWxsLHRpbWVvdXQ6MCx1c2VDT1JTOiExLGFsbG93VGFpbnQ6ITEsc3ZnUmVuZGVyaW5nOiExLGlnbm9yZUVsZW1lbnRzOiJJRlJBTUV8T0JKRUNUfFBBUkFNIix1c2VPdmVyZmxvdzohMCxsZXR0ZXJSZW5kZXJpbmc6ITEsCmNoaW5lc2U6ITEsYXN5bmM6ITEsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCx0YWludFRlc3Q6ITAscmVuZGVyZXI6IkNhbnZhcyJ9O2s9eC5VdGlsLkV4dGVuZChwLGspO3gubG9nZ2luZz1rLmxvZ2dpbmc7ay5jb21wbGV0ZT1mdW5jdGlvbihjKXsiZnVuY3Rpb24iPT09dHlwZW9mIGsub25wcmVsb2FkZWQmJiExPT09ay5vbnByZWxvYWRlZChjKXx8eC5QYXJzZShjLGssZnVuY3Rpb24obil7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBrLm9ucGFyc2VkfHwhMSE9PWsub25wYXJzZWQobikpaWYocT14LlJlbmRlcmVyKG4sayksImZ1bmN0aW9uIj09PXR5cGVvZiBrLm9ucmVuZGVyZWQpay5vbnJlbmRlcmVkKHEpfSl9O04uc2V0VGltZW91dChmdW5jdGlvbigpe3guUHJlbG9hZChrKX0sMCk7cmV0dXJue3JlbmRlcjpmdW5jdGlvbihjLG4pe3JldHVybiB4LlJlbmRlcmVyKGMseC5VdGlsLkV4dGVuZChuLGspKX0scGFyc2U6ZnVuY3Rpb24oYyxuKXtyZXR1cm4geC5QYXJzZShjLHguVXRpbC5FeHRlbmQobiwKaykpfSxwcmVsb2FkOmZ1bmN0aW9uKGMpe3JldHVybiB4LlByZWxvYWQoeC5VdGlsLkV4dGVuZChjLGspKX0sbG9nOnguVXRpbC5sb2d9fTtOLmh0bWwyY2FudmFzLmxvZz14LlV0aWwubG9nO04uaHRtbDJjYW52YXMuUmVuZGVyZXI9e0NhbnZhczpRfTt4LlJlbmRlcmVyLkNhbnZhcz1mdW5jdGlvbihkKXtmdW5jdGlvbiBwKHYsbCl7di5iZWdpblBhdGgoKTtsLmZvckVhY2goZnVuY3Rpb24oZSl7dltlLm5hbWVdLmFwcGx5KHYsZS5hcmd1bWVudHMpfSk7di5jbG9zZVBhdGgoKX1kPWR8fHt9O3ZhciBxPVtdLGs9Ui5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxjPWsuZ2V0Q29udGV4dCgiMmQiKSxuPXguVXRpbCx0PWQuY2FudmFzfHxSLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3JldHVybiBmdW5jdGlvbih2LGwsZSxJLHope3ZhciBFPXQuZ2V0Q29udGV4dCgiMmQiKSxLPXYuc3RhY2s7dC53aWR0aD10LnN0eWxlLndpZHRoPWwud2lkdGh8fEsuY3R4LndpZHRoO3QuaGVpZ2h0PXQuc3R5bGUuaGVpZ2h0PQpsLmhlaWdodHx8Sy5jdHguaGVpZ2h0O0s9RS5maWxsU3R5bGU7RS5maWxsU3R5bGU9bi5pc1RyYW5zcGFyZW50KHYuYmFja2dyb3VuZENvbG9yKSYmbC5iYWNrZ3JvdW5kIT09UT9sLmJhY2tncm91bmQ6di5iYWNrZ3JvdW5kQ29sb3I7RS5maWxsUmVjdCgwLDAsdC53aWR0aCx0LmhlaWdodCk7RS5maWxsU3R5bGU9SztJLmZvckVhY2goZnVuY3Rpb24oSil7RS50ZXh0QmFzZWxpbmU9ImJvdHRvbSI7RS5zYXZlKCk7Si50cmFuc2Zvcm0ubWF0cml4JiYoRS50cmFuc2xhdGUoSi50cmFuc2Zvcm0ub3JpZ2luWzBdLEoudHJhbnNmb3JtLm9yaWdpblsxXSksRS50cmFuc2Zvcm0uYXBwbHkoRSxKLnRyYW5zZm9ybS5tYXRyaXgpLEUudHJhbnNsYXRlKC1KLnRyYW5zZm9ybS5vcmlnaW5bMF0sLUoudHJhbnNmb3JtLm9yaWdpblsxXSkpO0ouY2xpcCYmKEUuYmVnaW5QYXRoKCksRS5yZWN0KEouY2xpcC5sZWZ0LEouY2xpcC50b3AsSi5jbGlwLndpZHRoLEouY2xpcC5oZWlnaHQpLEUuY2xpcCgpKTsKSi5jdHguc3RvcmFnZSYmSi5jdHguc3RvcmFnZS5mb3JFYWNoKGZ1bmN0aW9uKEcpe3ZhciBPPUU7c3dpdGNoKEcudHlwZSl7Y2FzZSAidmFyaWFibGUiOk9bRy5uYW1lXT1HLmFyZ3VtZW50czticmVhaztjYXNlICJmdW5jdGlvbiI6c3dpdGNoKEcubmFtZSl7Y2FzZSAiY3JlYXRlUGF0dGVybiI6aWYoMDxHLmFyZ3VtZW50c1swXS53aWR0aCYmMDxHLmFyZ3VtZW50c1swXS5oZWlnaHQpdHJ5e08uZmlsbFN0eWxlPU8uY3JlYXRlUGF0dGVybihHLmFyZ3VtZW50c1swXSwicmVwZWF0Iil9Y2F0Y2goVyl7bi5sb2coImh0bWwyY2FudmFzOiBSZW5kZXJlcjogRXJyb3IgY3JlYXRpbmcgcGF0dGVybiIsVy5tZXNzYWdlKX1icmVhaztjYXNlICJkcmF3U2hhcGUiOnAoTyxHLmFyZ3VtZW50cyk7YnJlYWs7Y2FzZSAiZHJhd0ltYWdlIjppZigwPEcuYXJndW1lbnRzWzhdJiYwPEcuYXJndW1lbnRzWzddKXt2YXIgVDtpZighKFQ9IWQudGFpbnRUZXN0KSYmKFQ9ZC50YWludFRlc3QpKWE6e2lmKC0xPT09CnEuaW5kZXhPZihHLmFyZ3VtZW50c1swXS5zcmMpKXtjLmRyYXdJbWFnZShHLmFyZ3VtZW50c1swXSwwLDApO3RyeXtjLmdldEltYWdlRGF0YSgwLDAsMSwxKX1jYXRjaChXKXtrPVIuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Yz1rLmdldENvbnRleHQoIjJkIik7VD0hMTticmVhayBhfXEucHVzaChHLmFyZ3VtZW50c1swXS5zcmMpfVQ9ITB9VCYmTy5kcmF3SW1hZ2UuYXBwbHkoTyxHLmFyZ3VtZW50cyl9YnJlYWs7ZGVmYXVsdDpPW0cubmFtZV0uYXBwbHkoTyxHLmFyZ3VtZW50cyl9fX0pO0UucmVzdG9yZSgpfSk7bi5sb2coImh0bWwyY2FudmFzOiBSZW5kZXJlcjogQ2FudmFzIHJlbmRlcmVyIGRvbmUgLSByZXR1cm5pbmcgY2FudmFzIG9iaiIpO3JldHVybiAxPT09bC5lbGVtZW50cy5sZW5ndGgmJiJvYmplY3QiPT09dHlwZW9mIGwuZWxlbWVudHNbMF0mJiJCT0RZIiE9PWwuZWxlbWVudHNbMF0ubm9kZU5hbWU\/KHY9ei5VdGlsLkJvdW5kcyhsLmVsZW1lbnRzWzBdKSxlPWUuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksCmUud2lkdGg9TWF0aC5jZWlsKHYud2lkdGgpLGUuaGVpZ2h0PU1hdGguY2VpbCh2LmhlaWdodCksRT1lLmdldENvbnRleHQoIjJkIiksRS5kcmF3SW1hZ2UodCx2LmxlZnQsdi50b3Asdi53aWR0aCx2LmhlaWdodCwwLDAsdi53aWR0aCx2LmhlaWdodCksdD1udWxsLGUpOnR9fX0pKHdpbmRvdyxkb2N1bWVudCk7Ci8qKiAvanMvZDJjdGNrL3Vwcm9maWxlLmZpbmFsLm1pbi5qcyAqKi8KYWN0aXZlVXNlclByb2ZpbGVNbmc9e29ucmVhZHk6bnVsbCxvbm5vdGZvdW5kOm51bGwsZGlzYWJsZWQ6ITEsdWlkOm51bGwsYWN0aXZlU3RlcDowLHN3ZlN0b3JlOiExLHJlZ2lzdGVyZWRQYWdlVmlld3M6bnVsbCxyZWdpc3RlcmVkRXZlbnRzOm51bGwsc2Vzc2lvbmlkOm51bGwscmVnaXN0ZXJlZENhbGxiYWNrczpudWxsLHJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzOm51bGwscGFnZVZpZXdDb3VudDpudWxsLF9fcHJvcGVydGllczpudWxsLGpxdWVyeUFjdGl2ZTohMCxpc0QyQ1NpdGU6ITAsX19yZXNldFY6OSxyZXNldFNlY29uZFBhc3M6ITEsX19vdXRwdXREaXZNc2c6ITEsX19vdXRwdXRDb25zb2xlTXNnOiExLGFqYXhNbmc6e2FzeW5jOiEwLF9sYXN0WDpudWxsLHg6ZnVuY3Rpb24oKXt0cnl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgWE1MSHR0cFJlcXVlc3QpcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtmb3IodmFyIGE9WyJNU1hNTDIuWG1sSHR0cC41LjAiLAoJCQkiTVNYTUwyLlhtbEh0dHAuNC4wIiwiTVNYTUwyLlhtbEh0dHAuMy4wIiwiTVNYTUwyLlhtbEh0dHAuMi4wIiwiTWljcm9zb2Z0LlhtbEh0dHAiXSxiLGQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7Yj1uZXcgQWN0aXZlWE9iamVjdChhW2RdKTticmVha31jYXRjaChjKXt9fWNhdGNoKGMpe31yZXR1cm4gYn0sX3NlbmQ6ZnVuY3Rpb24oYSxiLGQsYyxlLGgpe3RyeXt2YXIgZj10aGlzLngoKTt0aGlzLl9sYXN0WD1mO2Yub3BlbihkLGEsZSk7dHJ5e2YuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKHEpeyJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLGYuc3RhdHVzVGV4dCxFcnJvcihmLnJlc3BvbnNlVGV4dCkpfSl9Y2F0Y2gocSl7fWYub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09Zi5yZWFkeVN0YXRlP2IoZi5yZXNwb25zZVRleHQpOiJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLGYuc3RhdHVzVGV4dCxFcnJvcihmLnJlc3BvbnNlVGV4dCkpfTsKCQkJIlBPU1QiPT1kJiZmLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO2Yuc2VuZChjKX1jYXRjaChxKXsidW5kZWZpbmVkIiE9dHlwZW9mIGgmJm51bGwhPWgmJmgoZiwidW5rbm93biIscSl9fSxhamF4OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dHJ5e2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS50eXBlJiYoYS50eXBlPSJHRVQiKSwidW5kZWZpbmVkIj09dHlwZW9mIGEuZGF0YSYmKGEuZGF0YT17fSksd2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmFqYXgpJC5hamF4KGEpLmRvbmUoZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmRvbmUmJmEuZG9uZShjKX0pLmZhaWwoZnVuY3Rpb24oYyxlLGgpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5mYWlsJiZhLmZhaWwoYyxlLGgpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmFsd2F5cyYmYS5hbHdheXMoKX0pLmRvbmUoZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPQoJCXR5cGVvZiBhLnN1Y2Nlc3MmJmEuc3VjY2VzcyhjKX0pLmFsd2F5cyhmdW5jdGlvbihjLGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5jb21wbGV0ZSYmYS5jb21wbGV0ZShiLl9sYXN0WCwidW5kZWZpbmVkIiE9dHlwZW9mIGIuX2xhc3RYLnN0YXR1c1RleHQ\/Yi5fbGFzdFguc3RhdHVzVGV4dDoiIil9KTtlbHNle3ZhciBkPWIuX2dldDsicG9zdCI9PWEudHlwZS50b0xvd2VyQ2FzZSgpJiYoZD1iLl9wb3N0KTtkKGEudXJsLGEuZGF0YSxmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZG9uZSYmYS5kb25lKGMpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zdWNjZXNzJiZhLnN1Y2Nlc3MoYyk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNvbXBsZXRlJiZhLmNvbXBsZXRlKCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmFsd2F5cyYmYS5hbHdheXMoKX0sYi5hc3luYyxmdW5jdGlvbihjLGUsaCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmZhaWwmJmEuZmFpbChjLGUsaCl9KX19Y2F0Y2goYyl7Y29uc29sZSYmCgkJY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGFjY2Vzc2luZyBhamF4TW5nLmdldDogJXMiLGMubWVzc2FnZSl9fSxfZ2V0OmZ1bmN0aW9uKGEsYixkLGMsZSl7dmFyIGg9W10sZjtmb3IoZiBpbiBiKWgucHVzaChlbmNvZGVVUklDb21wb25lbnQoZikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChiW2ZdKSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9ITA7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5fc2VuZChhKyI\/IitoLmpvaW4oIiYiKSxkLCJHRVQiLG51bGwsYyxlKX0sX3Bvc3Q6ZnVuY3Rpb24oYSxiLGQsYyxlKXt2YXIgaD1bXSxmO2ZvcihmIGluIGIpaC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChmKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGJbZl0pKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0hMDthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLl9zZW5kKGEsZCwiUE9TVCIsaC5qb2luKCImIiksCgkJCWMsZSl9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3RyeXtpZih3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuZ2V0U2NyaXB0KSQuZ2V0U2NyaXB0KGEsYik7ZWxzZXt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxjPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTtkLmFzeW5jPTE7ZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oZSxoKXtpZihofHwhZC5yZWFkeVN0YXRlfHwvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGQucmVhZHlTdGF0ZSkpZC5vbmxvYWQ9ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxkPXZvaWQgMCwhaCYmYiYmc2V0VGltZW91dChiLDApfTtkLnNyYz1hO2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZCxjKX19Y2F0Y2goZSl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJldHJpZXZpbmcganMgc2NyaXB0LiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW46ICVzIiwKCQkJZS5tZXNzYWdlKX19fSxjb29raWVNbmc6e3JlYWRDb29raWVWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1udWxsO3RyeXtpZih3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llKWI9JC5jb29raWUoYSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1udWxsKTtlbHNle2ErPSI9Ijtmb3IodmFyIGQ9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7IiksYz0wO2M8ZC5sZW5ndGg7YysrKXtmb3IodmFyIGU9ZFtjXTsiICI9PWUuY2hhckF0KDApOyllPWUuc3Vic3RyaW5nKDEsZS5sZW5ndGgpO2lmKDA9PWUuaW5kZXhPZihhKSl7Yj1lLnN1YnN0cmluZyhhLmxlbmd0aCxlLmxlbmd0aCk7YnJlYWt9fX19Y2F0Y2goaCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJlYWRpbmcgY29va2llOiAlcyIsaC5tZXNzYWdlKX1yZXR1cm4gYn0sc2V0Q29va2llVmFsdWU6ZnVuY3Rpb24oYSxiLGQsYyl7dHJ5e2lmKCEwIT09dGhpcy5kaXNhYmxlZCl7aWYoInVuZGVmaW5lZCI9PQoJCQl0eXBlb2YgZHx8bnVsbD09ZClkPSIvIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0wOyJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9bnVsbCk7dmFyIGU9bmV3IERhdGU7ZS5zZXRUaW1lKGUuZ2V0VGltZSgpKzg2NEU1KmMpO3dpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWU\/JC5jb29raWUoYSxiLHtwYXRoOmQsc2VjdXJlOiEwLGV4cGlyZXM6MD09Yz8iIjplfSk6KGV4cGlyZXM9MCE9Yz8iOyBleHBpcmVzPSIrZS50b0dNVFN0cmluZygpOiIiLGRvY3VtZW50LmNvb2tpZT1hKyI9IitiK2V4cGlyZXMrIjsgc2VjdXJlOyBwYXRoPSIrZCxiJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcubG9nQ29va2llKGEsYixjLGQpKX19Y2F0Y2goaCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHNldHRpbmcgY29va2llOiAlcyIsaC5tZXNzYWdlKX19LGRlbGV0ZUNvb2tpZTpmdW5jdGlvbihhKXt0cnl7d2luZG93LmpRdWVyeSYmCgkJInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZT8oJC5jb29raWUoYSxudWxsKSwkLmNvb2tpZShhLG51bGwse3BhdGg6Ii8ifSkpOnRoaXMuc2V0Q29va2llVmFsdWUoYSxudWxsLC0xKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgZGVsZXRpbmcgY29va2llOiAlcyIsYi5tZXNzYWdlKX19LGxvZ0Nvb2tpZTpmdW5jdGlvbihhLGIsZCxjLGUpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGUmJihlPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZSYmc2V0VGltZW91dChmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5sb2dDb29raWUoYSxiLGQsYyxlLTEpfSwxMDApOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGEsYixkLGMpfX0sX191c2VQcm94eTpmdW5jdGlvbigpe3JldHVybiExPT09dGhpcy5pc0QyQ1NpdGU\/ITE6ITB9LF9pc0JvdDpmdW5jdGlvbigpe3JldHVybi9ib3R8Z29vZ2xlYm90fGNyYXdsZXJ8c3BpZGVyfHJvYm90fGNyYXdsaW5nL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT8KCQkhMDohMX0sZ2V0U3RhdHNVUkk6ZnVuY3Rpb24oKXt2YXIgYT0iL3Byb3h5X3NkMmMvIjt0cnl7ITE9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGUmJihhPSJodHRwOi8vc3RhdHMuZDJjbWVkaWEuY2EvIiwiaHR0cHM6Ij09d2luZG93LmxvY2F0aW9uLnByb3RvY29sJiYoYT0iaHR0cHM6Ly9zc2xzdGF0cy5kMmNtZWRpYS5jYS8iKSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBnZXRTdGF0c1VSSTogJXMiLGIubWVzc2FnZSksYT0iaHR0cHM6Ly9zc2xzdGF0cy5kMmNtZWRpYS5jYS8ifXJldHVybiBhfSxnZXRGUFVSSTpmdW5jdGlvbigpe2lmKCEwPT09dGhpcy5kaXNhYmxlZClyZXR1cm4iIjt2YXIgYT0iL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIjt0cnl7YT0hMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZT9udWxsIT13aW5kb3cubG9jYXRpb24mJiJ1bmRlZmluZWQiIT0KCXR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiYmLTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNybTIuZDJjbWVkaWEuY2EiKT8iaHR0cHM6Ly9jcm0yLmQyY21lZGlhLmNhL2Fzc2V0cy9qcy9kMmN0Y2svZnByaW50LnYyLmpzIjoiaHR0cHM6Ly93d3cuYXV0b2F1YmFpbmUuY29tL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIjohMD09PXRoaXMuX19vdXRwdXREaXZNc2c\/Ii9qcy9kMmN0Y2svZnByaW50LnYyLmpzIjoiL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIn1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIGdldEZQVVJJOiAlcyIsYi5tZXNzYWdlKSxhPSIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMifXJldHVybiBhfSxnZXRTZXNzaW9uSUQ6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZDsKCQl2YXIgYT13aW5kb3cuYWN0aXZlU2Vzc2lvbklEO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YXx8MD09YSlyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkO2E9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZCIpO3JldHVybiBudWxsIT1hPyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9YSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpOjB9LHJlZ2lzdGVyQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7aWYoITA9PT10aGlzLmRpc2FibGVkKXtpZihudWxsIT1hKXRyeXthKCl9Y2F0Y2goYil7fXJldHVybiExfW51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzPVtdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmCgludWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2EoKTphY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzLnB1c2goYSl9LHJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrOmZ1bmN0aW9uKGEpe2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7aWYobnVsbCE9YSl0cnl7YSgpfWNhdGNoKGIpe31yZXR1cm4hMX1udWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzPVtdKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkJiYwIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ\/YSgpOmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzLnB1c2goYSl9LAoJX19ub3RpZnlVVUlEOmZ1bmN0aW9uKCl7dHJ5e2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7dHJ5e2IoKX1jYXRjaChkKXt9cmV0dXJuITF9aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcyl7Zm9yKHZhciBhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzLmxlbmd0aDthKyspe3ZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3NbYV07YigpfWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3M9bnVsbH19Y2F0Y2goZCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBfX25vdGlmeVVVSUQ6ICVzIixkLm1lc3NhZ2UpfX0sX19ub3RpZnlTZXNzaW9uSUQ6ZnVuY3Rpb24oKXtpZighMD09PXRoaXMuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCk7CgkJaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwiMCI9PWF8fDA9PWEpdmFyIGI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0cnl7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M\/Y2xlYXJJbnRlcnZhbChiKTowIT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCkmJihjbGVhckludGVydmFsKGIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCkpfWNhdGNoKGQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiTm90aWZ5IHNlc3Npb25pZCBmYWlsZWQgd2l0aDogJXMiLGQubWVzc2FnZSl9fSw1MDApO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzKXRyeXtmb3IoYT0wO2E8YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MubGVuZ3RoO2ErKykoMCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrc1thXSkoKTsKCQkJYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M9bnVsbH1jYXRjaChkKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIF9fbm90aWZ5U2Vzc2lvbklEOiAlcyIsZC5tZXNzYWdlKX19LGxvZ01zZzpmdW5jdGlvbihhKXt0cnl7aWYoITA9PT10aGlzLmRpc2FibGVkKXJldHVybiExOyEwPT09dGhpcy5fX291dHB1dERpdk1zZyYmJChkb2N1bWVudC5ib2R5KS5hcHBlbmQoIjxkaXY+IithKyI8L2Rpdj4iKTshMD09PXRoaXMuX19vdXRwdXRDb25zb2xlTXNnJiZjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coYSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBtZXNzYWdlIGxvZ2dpbmcuIEhvdyBpcm9uaWM6ICVzIixiLm1lc3NhZ2UpfX0sY2hlY2tTY2hlZHVsZWRSZXNldDpmdW5jdGlvbigpe3ZhciBhPQoJCSExO3RyeXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfcnN0Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKWI9MDtiIT10aGlzLl9fcmVzZXRWJiYoYT0hMCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfcnN0Iix0aGlzLl9fcmVzZXRWLCIvIiw0RTMpKX1jYXRjaChkKXt0aGlzLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBpbiBzY2hlZHVsZWQgcmVzZXQgY2hlY2s6ICIrZC5tZXNzYWdlKX1yZXR1cm4gYX0sZ2V0QWN0aXZlUHJvZmlsZWlkOmZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy51aWQpcmV0dXJuIG51bGw9PXdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJih3aW5kb3cuYWN0aXZlUHJvZmlsZUlEPXRoaXMudWlkKSx0aGlzLnVpZDtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiBudWxsOwoJCXZhciBhPXRoaXMuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZCIpO2lmKG51bGwhPWEmJjA8YS5sZW5ndGgpcmV0dXJuIHRoaXMuYWN0aXZlUHJvZmlsZUlEPXRoaXMudWlkPWEsdGhpcy5fX2ZpcmVSZWFkeUV2ZW50KCksdGhpcy51aWQ7YT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkX3ZsZDMiKTtpZihudWxsIT1hJiYwIT1hLmxlbmd0aCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkVXNlckRhdGFDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkTG9jYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOwoJCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRHbG9iYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFNlc3Npb25TdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZyb21Mb2NhbERCKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZMVkNvb2tpZSgpfWVsc2Ugc2V0VGltZW91dCgiYWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMykiLAoJCQk1MDApO3JldHVybiBudWxsfSxlbnN1cmVWYWxpZElEOmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZ3x8InN0cmluZyI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJjA9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZC5sZW5ndGgpYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPW51bGx9LHNldEFjdGl2ZVByb2ZpbGVpZDpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZHx8ITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXREQkNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFBOR0Nvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEVUYWdDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRVc2VyRGF0YUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldExvY2FsU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEdsb2JhbFN0b3JhZ2VDb29raWUoKTsKCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRTZXNzaW9uU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEZMVkNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfSxfX2NvbnRpbnVlTG9hZDpmdW5jdGlvbihhKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpYWN0aXZlVXNlclByb2ZpbGVNbmcuX19maXJlUmVhZHlFdmVudCgpO2Vsc2Ugc3dpdGNoKGEpe2Nhc2UgMTphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRFVGFnQ29va2llKCk7YnJlYWs7Y2FzZSAyOmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFBOR0Nvb2tpZSgpO2JyZWFrO2RlZmF1bHQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19maXJlTm90Rm91bmQoKX19LF9fZmlyZVJlYWR5RXZlbnQ6ZnVuY3Rpb24oKXtpZihudWxsIT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5vbnJlYWR5KWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ucmVhZHkoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVVVSUQoKX0sX19maXJlTm90Rm91bmQ6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5vbm5vdGZvdW5kKWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ubm90Zm91bmQoKX0sc2V0RkxWQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2lucyYmIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl18fHdpbmRvdy5BY3RpdmVYT2JqZWN0JiYwIT1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlJiYKCQkoYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmU9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBTd2ZTdG9yZSkpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuZ2V0U2NyaXB0KCIvanMvc3dmc3RvcmUuanMiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNldEZMVkNvb2tpZSk7cmV0dXJufXRyeXt2YXIgYT1uZXcgU3dmU3RvcmUoe25hbWVzcGFjZToidXByb2ZpbGUiLHN3Zl91cmw6Ii9mbGFzaC9zdG9yYWdlLnN3ZiIsb25yZWFkeTpmdW5jdGlvbigpe2Euc2V0KCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl9LG9uZXJyb3I6ZnVuY3Rpb24oKXt9fSl9Y2F0Y2goYil7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZudWxsIT1jb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzZXQgRkxWIENvb2tpZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19fWNhdGNoKGIpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmbnVsbCE9Y29uc29sZSYmY29uc29sZS5sb2cmJgoJY29uc29sZS5sb2coIk1BSU46IFVuYWJsZSB0byBzZXQgRkxWIENvb2tpZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19fSxfX2xvYWRGTFZDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2lucyYmIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl18fHdpbmRvdy5BY3RpdmVYT2JqZWN0JiYwIT1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmU9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBTd2ZTdG9yZSkpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuZ2V0U2NyaXB0KCIvanMvc3dmc3RvcmUuanMiLAoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEZMVkNvb2tpZSk7cmV0dXJufXRyeXt2YXIgYT1uZXcgU3dmU3RvcmUoe25hbWVzcGFjZToidXByb2ZpbGUiLHN3Zl91cmw6Ii9mbGFzaC9zdG9yYWdlLnN3ZiIsb25yZWFkeTpmdW5jdGlvbigpe3ZhciBiPWEuZ2V0KCJ1aWQiKTsidW5kZWZpbmVkIiE9dHlwZW9mIGImJm51bGwhPWImJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9Yik7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9LG9uZXJyb3I6ZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX19KX1jYXRjaChiKXt9fWVsc2UgYWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9fSxfX2xvYWRGcm9tTG9jYWxEQjpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93Lm9wZW5EYXRhYmFzZSYmCglkYXRhYmFzZS50cmFuc2FjdGlvbihmdW5jdGlvbihhKXthLmV4ZWN1dGVTcWwoIlNFTEVDVCB2YWx1ZSBGUk9NIHVwcm9maWxlIFdIRVJFIG5hbWU9PyIsWyJ1aWQiXSxmdW5jdGlvbihiLGQpezE8PWQucm93cy5sZW5ndGgmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9ZC5yb3dzLml0ZW0oMCkudmFsdWUpfSxmdW5jdGlvbihiLGQpe30pfSl9Y2F0Y2goYSl7fX19LHNldERCQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYod2luZG93Lm9wZW5EYXRhYmFzZSl7dmFyIGE9d2luZG93Lm9wZW5EYXRhYmFzZSgic3FsaXRlX3Vwcm9maWxlIiwiIiwidXByb2ZpbGUiLDEwNDg1NzYpOyJ1bmRlZmluZWQiIT10eXBlb2YgdmFsdWUmJmEudHJhbnNhY3Rpb24oZnVuY3Rpb24oYil7Yi5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB1cHJvZmlsZShpZCBJTlRFR0VSIE5PVCBOVUxMIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIHVpZCBURVhUIE5PVCBOVUxMLCB2YWx1ZSBURVhUIE5PVCBOVUxMLCBVTklRVUUgKHVpZCkpIiwKCQlbXSxmdW5jdGlvbihkLGMpe30sZnVuY3Rpb24oZCxjKXt9KTtiLmV4ZWN1dGVTcWwoIklOU0VSVCBPUiBSRVBMQUNFIElOVE8gdXByb2ZpbGUodWlkLCB2YWx1ZSkgVkFMVUVTKD8sID8pIixbInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkXSxmdW5jdGlvbihkLGMpe30sZnVuY3Rpb24oZCxjKXt9KX0pfX1jYXRjaChiKXt9fX0sX19sb2FkUE5HQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Eud2lkdGg9MjAwO2EuaGVpZ2h0PTE7dmFyIGI9YS5nZXRDb250ZXh0KCIyZCIpLGQ9bmV3IEltYWdlOwoJCWQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtkLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7ZC5zcmM9Ii9pbWFnZXNfYXBpL2QyY2lnY2FjaGUxLnBuZyI7ZC5vbmVycm9yPWZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMyl9O2Qub25sb2FkPWZ1bmN0aW9uKCl7dHJ5e2IuZHJhd0ltYWdlKGQsMCwwKTtmb3IodmFyIGM9Yi5nZXRJbWFnZURhdGEoMCwwLDIwMCwxKS5kYXRhLGU9IiIsaD0wLGY9Yy5sZW5ndGg7aDxmJiYwIT1jW2hdO2grPTQpe2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toXSk7aWYoMD09Y1toKzFdKWJyZWFrO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toKzFdKTtpZigwPT1jW2grMl0pYnJlYWs7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2grMl0pfTA8ZS5sZW5ndGgmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9ZSl9Y2F0Y2gocSl7fWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDMpfX19Y2F0Y2goYyl7fX19LAoJc2V0UE5HQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1uZXcgSW1hZ2U7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTEucG5nP3ZhbD0iK2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZH19LF9fbG9hZEVUYWdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dGhpcy5hamF4TW5nLmFqYXgoe3VybDoiL2ltYWdlc19hcGkvZDJjaWdjYWNoZTIucG5nIix0eXBlOiJHRVQiLHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWF9LAoJCWNvbXBsZXRlOmZ1bmN0aW9uKGEsYil7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMil9fSl9fSxzZXRFVGFnQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1uZXcgSW1hZ2U7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTIucG5nP3ZhbD0iK2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZH19LF9fbG9hZFVzZXJEYXRhQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt2YXIgYT10aGlzLmNyZWF0ZUVsZW0oImRpdiIsInVzZXJkYXRhX2VsIiwKCQkxKTthLnN0eWxlLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjdXNlckRhdGEpIjthLmxvYWQoInVpZCIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1hLmdldEF0dHJpYnV0ZSgidWlkIil9Y2F0Y2goYil7fX19LHNldFVzZXJEYXRhQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7dmFyIGE9dGhpcy5jcmVhdGVFbGVtKCJkaXYiLCJ1c2VyZGF0YV9lbCIsMSk7YS5zdHlsZS5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I3VzZXJEYXRhKSI7YS5zZXRBdHRyaWJ1dGUoInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKTthLnNhdmUoInVpZCIpfWNhdGNoKGIpe319fSxfX2xvYWRMb2NhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2UmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oInVpZCIpKX1jYXRjaChhKXt9fX0sc2V0TG9jYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKX1jYXRjaChhKXt9fX0sX19sb2FkR2xvYmFsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYod2luZG93Lmdsb2JhbFN0b3JhZ2UpcmV0dXJuIHRoaXMuZ2V0SG9zdCgpLAoJCWV2YWwoImFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCA9IGdsb2JhbFN0b3JhZ2VbaG9zdF0udWlkIil9Y2F0Y2goYSl7fX19LHNldEdsb2JhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuZ2xvYmFsU3RvcmFnZSYmKHRoaXMuZ2V0SG9zdCgpLGV2YWwoImdsb2JhbFN0b3JhZ2VbaG9zdF0udWlkID0gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkIikpfWNhdGNoKGEpe319fSxfX2xvYWRTZXNzaW9uU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPQoJCXdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJ1aWQiKSl9Y2F0Y2goYSl7fX19LHNldFNlc3Npb25TdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlJiZ3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpfWNhdGNoKGEpe319fSxyZWdpc3RlclBhZ2VWaWV3OmZ1bmN0aW9uKCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMDtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cz1bXSk7Zm9yKHZhciBhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzLmxlbmd0aDthKyspaWYod2luZG93LmxvY2F0aW9uLmhyZWY9PQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3NbYV0pcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cy5wdXNoKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtyZXR1cm4hMH0scmVnaXN0ZXJQYWdlVmlld0V2ZW50OmZ1bmN0aW9uKGEsYixkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiEwO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZHx8bnVsbD09ZClkPSIiO2E9YSsifHx8IitiKyJ8fHwiK2Q7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHM9W10pO2ZvcihiPTA7YjxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzLmxlbmd0aDtiKyspaWYoYT09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50c1tiXSlyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzLnB1c2goYSk7CgkJcmV0dXJuITB9LGxvZ1BhZ2VWaWV3RXZlbnQ6ZnVuY3Rpb24oYSxiLGQpe2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3RXZlbnQoYSxiKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkfHxudWxsPT1kKWQ9IiI7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkfHwwPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQpYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJTZXNzaW9uQ2FsbGJhY2soZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsYixkKX0pO2Vsc2V7dmFyIGM9MDtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5sYXN0Vmlld0lEKXt2YXIgZT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dmlldyIpOwoJCW51bGwhPWUmJihjPWUpfWVsc2UgYz13aW5kb3cubGFzdFBhZ2VWaWV3SUQ7InVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jfHwwPT1jP2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGlkZW50aWZ5IGxhc3QgdmlldyBpZCIpOihlPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCksYz17c2lkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLGFjdGlvbjoiZXZlbnQiLHZpZXdpZDpjLGV2ZW50OmEsZWNhdGVnb3J5OmIsYWRkZWRJbmZvOiJ1bmRlZmluZWQiIT10eXBlb2YgZD9kOiIifSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLmFqYXgoe3VybDplKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJQT1NUIixkYXRhOmN9KSl9fX19LGxvZ1BhZ2VWaWV3RXg6ZnVuY3Rpb24oKXt0cnl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3KCkpe2lmKCEwPT09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGdldFVybFZhcnMmJihhPWdldFVybFZhcnMoKSk7Z2V0Q3VzdG9tVlJCPWZ1bmN0aW9uKGssdyl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21fdmFyaWFibGVzJiZudWxsIT1jdXN0b21fdmFyaWFibGVzKWZvcih2YXIgdSBpbiBjdXN0b21fdmFyaWFibGVzKXtpZih1Lm5hbWU9PWspcmV0dXJuIHUudmFsdWV9ZWxzZSByZXR1cm4gd307Z2V0Q0tWYWx1ZT1mdW5jdGlvbihrLHcpe3ZhciB1PWdldEN1c3RvbVZSQihrLG51bGwpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdSYmbnVsbCE9dSlyZXR1cm4gdTt1PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoayk7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiB1fHxudWxsPT11P251bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYVtrXT8idW5kZWZpbmVkIj09dHlwZW9mIHc\/CgkJIiI6dzphW2tdOnV9O2dldFVSTFZhbHVlPWZ1bmN0aW9uKGssdyl7az1rLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7az0obmV3IFJlZ0V4cCgiW1xcPyZdIitrKyI9KFteJiNdKikiKSkuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7az1udWxsPT1rP251bGw6a1sxXTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGt8fG51bGw9PWt8fDA9PWsudG9TdHJpbmcoKS5sZW5ndGg\/dzprfTt2YXIgYj0iIixkPTAsYz0iRlJFTkNIIixlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxoPWZ1bmN0aW9uKGspe3ZhciB3PXttYWtlOiIiLG1vZGVsOiIiLHllYXI6IiIscHJpY2U6MCxzaXRlaWQ6MCxkZWFsZXJpZDowLGxhbmd1YWdlOiJGUkVOQ0gifTtpZighaylyZXR1cm4gdztrPWsuc3BsaXQoL1s7Jl0vKTtmb3IodmFyIHU9MDt1PGsubGVuZ3RoO3UrKyl7dmFyIEI9a1t1XS5zcGxpdCgiPSIpO2lmKEImJjI9PUIubGVuZ3RoKXt2YXIgRT0KCQl1bmVzY2FwZShCWzBdKTtCPXVuZXNjYXBlKEJbMV0pO0I9Qi5yZXBsYWNlKC9cKy9nLCIgIik7d1tFXT1CfX1yZXR1cm4gd307aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBlJiZudWxsIT1lKWZvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgcT1lW2ZdO2lmKC0xIT1xLnNyYy5pbmRleE9mKCIvdXBsaWdodC5qcz8iKSl7dmFyIHA9cS5zcmMucmVwbGFjZSgvXlteXD9dK1w\/Py8sIiIpLHk9aChwKTt2YXIgbD15Lm1ha2U7dmFyIEM9eS5tb2RlbDtiPXkueWVhcjt2YXIgQT15LnNpdGVpZDt2YXIgej15LmRlYWxlcmlkO2Q9eS5wcmljZTtjPXkubGFuZ3VhZ2U7YnJlYWt9fXZhciBtPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpO2U9MDtpZigidW5kZWZpbmVkIj09bXx8MD09bSl7bT0wO3ZhciByPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWRfdG1wIik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxudWxsPT1yKXt2YXIgeD0KCQluZXcgRGF0ZTt4LnNldFRpbWUoeC5nZXRUaW1lKCkrNzJFNSk7dmFyIGc9IjsgZXhwaXJlcz0iK3gudG9HTVRTdHJpbmcoKTtkb2N1bWVudC5jb29raWU9InVzaWRfdG1wPTEiK2crIjsgcGF0aD0vIn1lbHNlIGU9ITB9dmFyIG49d2luZG93LmxvY2F0aW9uLmhyZWY7aWYoLTE8bi5pbmRleE9mKCJzdGVwPXJlc3VtZSIpKXt2YXIgdD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJzZXNzaWQiKTtuKz0iJnNlc3NpZD0iKygidW5kZWZpbmVkIiE9dHlwZW9mIHR8fG51bGwhPXQ\/dDoiTlVMTCIpfXZhciB2PXtzaWQ6bSx1dWlkOndpbmRvdy5hY3RpdmVQcm9maWxlSUQsc2l0ZWlkOkEsZGVhbGVyaWQ6eix1dG1Tb3VyY2U6Z2V0VVJMVmFsdWUoInV0bV9zb3VyY2UiLCIiKSx1dG1DYW1wYWlnbjpnZXRVUkxWYWx1ZSgidXRtX2NhbXBhaWduIiwib3JnYW5pYyIpLHV0bUtleXdvcmQ6Z2V0Q0tWYWx1ZSgidXRtX2tleXdvcmQiKSx1dG1MYW5kaW5nOmdldENLVmFsdWUoInV0bV9sYW5kaW5nIiksCgkJdXRtU291cmNlUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpLHV0bUNhbXBhaWduUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIiksbWFrZTpsLG1vZGVsOkMseWVhcjppc05hTihiKT8obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk6YixsYW5ndWFnZTpjLHBhZ2U6InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUGFnZT8iIjp3aW5kb3cuYWN0aXZlUGFnZSxwcmljZTpkLHNsb29rdXA6ZSxocmVmOm59LEQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTt2PUpTT04uc3RyaW5naWZ5KHYpO3Y9di5yZXBsYWNlQWxsKCIvIiwiXFwvIik7dGhpcy5hamF4TW5nLmFqYXgoe3VybDpEKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIixkYXRhOnYsZG9uZTpmdW5jdGlvbihrKXt0cnl7aWYoInN0cmluZyI9PXR5cGVvZiBrJiYoaz1KU09OLnBhcnNlKGspKSwidW5kZWZpbmVkIiE9dHlwZW9mIGsmJgoJCW51bGwhPWsmJihrLmNvbnN0cnVjdG9yPT1bXS5jb25zdHJ1Y3Rvcnx8ay5jb25zdHJ1Y3Rvcj09e30uY29uc3RydWN0b3IpKXttPWsuc2Vzc2lvbmlkO2xhc3RWaWV3SUQ9ay52aWV3aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX2xvYWRQcm9wZXJ0aWVzKGsucHJvcGVydGllcyk7d2luZG93LmFjdGl2ZVNlc3Npb25JRD1tO3dpbmRvdy5sYXN0UGFnZVZpZXdJRD1sYXN0Vmlld0lEO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1tO3ZhciB3PW5ldyBEYXRlO3cuc2V0VGltZSh3LmdldFRpbWUoKSs3MkU1KTt2YXIgdT0iOyBleHBpcmVzPSIrdy50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT0idXNpZD0iK20rdSsiOyBwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT0idXZpZXc9IitsYXN0Vmlld0lEK3UrIjsgcGF0aD0vIjthY3RpdmVVc2VyUHJvZmlsZU1uZy5fZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCl9fWNhdGNoKEIpe310cnl7bnVsbCE9CgkJc2l0ZVdlYnNvY2tldExpc3RlbmVyLnNpdGVpZCYmc2l0ZVdlYnNvY2tldExpc3RlbmVyLmNvbm5lY3QoKX1jYXRjaChCKXt9fX0pfX1jYXRjaChrKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzdGF0IHBhZ2UgZHVlIHRvIGVycm9yOiAiK2subWVzc2FnZSl9fSxsb2dQYWdlVmlldzpmdW5jdGlvbigpe3RyeXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXcoKSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZighMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSlyZXR1cm4gdGhpcy5sb2dQYWdlVmlld0V4KCk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSYmbnVsbCE9YSlmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKylpZigtMSE9CgkJYVtiXS5zcmMuaW5kZXhPZigiL3VwbGlnaHQuanM\/IikpcmV0dXJuIHRoaXMubG9nUGFnZVZpZXdFeCgpO3ZhciBkPW51bGw7InVuZGVmaW5lZCIhPXR5cGVvZiBnZXRVcmxWYXJzJiYoZD1nZXRVcmxWYXJzKCkpO2dldEN1c3RvbVZSQj1mdW5jdGlvbihnLG4pe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3VzdG9tX3ZhcmlhYmxlcyYmbnVsbCE9Y3VzdG9tX3ZhcmlhYmxlcylmb3IodmFyIHQgaW4gY3VzdG9tX3ZhcmlhYmxlcyl7aWYodC5uYW1lPT1nKXJldHVybiB0LnZhbHVlfWVsc2UgcmV0dXJuIG59O2dldENLVmFsdWU9ZnVuY3Rpb24oZyxuKXt2YXIgdD1udWxsO3RyeXt2YXIgdj1nZXRDdXN0b21WUkIoZyxudWxsKTsidW5kZWZpbmVkIiE9dHlwZW9mIHYmJm51bGwhPXYmJih0PXYpO2lmKG51bGw9PXQmJih0PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoZyksbnVsbD09dCkpe2lmKG51bGw9PWR8fCJ1bmRlZmluZWQiPT10eXBlb2YgZFtnXSlyZXR1cm4idW5kZWZpbmVkIj09Cgl0eXBlb2Ygbj8iIjpuO3Q9ZFtnXX19Y2F0Y2goRCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIHJldHJpZXZpbmcgY2tWYWx1ZSAtLSAlcyIsRC5tZXNzYWdlKX1yZXR1cm4gdH07Z2V0VVJMVmFsdWU9ZnVuY3Rpb24oZyxuKXtnPWcucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtnPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2crIj0oW14mI10qKSIpKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtnPW51bGw9PWc\/bnVsbDpnWzFdO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZ3x8bnVsbD09Z3x8MD09Zy50b1N0cmluZygpLmxlbmd0aD9uOmd9O2E9ZnVuY3Rpb24oKXtpZighMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSlyZXR1cm5bXTt2YXIgZz1bXTt0cnl7dmFyIG49W10sdD1mdW5jdGlvbihrLHcpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiIyIraykuYXR0cigiaWQiKSYmCgkoaz0kKCIjIitrKS52YWwoKSwic3RyaW5nIj09dHlwZW9mIGsmJjA8ay5sZW5ndGgmJi0xPT1rLmluZGV4T2YoIiMjIikpP2s6d307bi5wdXNoKCJwb3B1cCIpO24ucHVzaCgicGhvbmUiKTtuLnB1c2goImxhc3R2aWV3ZWQiKTtuLnB1c2goImV4cHJlc3NjYXIiKTtmb3IodmFyIHY9MDt2PG4ubGVuZ3RoO3YrKyl7dmFyIEQ9dChuW3ZdKyJtYWtlIixudWxsKTtpZihudWxsIT1EKXtnLnB1c2goRCk7Zy5wdXNoKHQoblt2XSsibW9kZWwiLG51bGwpKTtnLnB1c2godChuW3ZdKyJ5ZWFyIixudWxsKSk7YnJlYWt9fX1jYXRjaChrKXtnPVtdLGcucHVzaCgiIiksZy5wdXNoKCIiKSxnLnB1c2goIiIpfTA9PWcubGVuZ3RoJiZnLnB1c2goIiIpOzE9PWcubGVuZ3RoJiZnLnB1c2goIiIpOzI9PWcubGVuZ3RoJiZnLnB1c2goIiIpO3JldHVybiBnfTt2YXIgYz1iPSIiLGU9IiI7dHJ5e3ZhciBoPWEoKTtiPTA8aC5sZW5ndGg\/aFswXTpiO2M9MTxoLmxlbmd0aD9oWzFdOmM7ZT0yPGgubGVuZ3RoPwoJCWhbMl06ZX1jYXRjaChnKXtlPWM9Yj0iIn10cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hDcml0ZXJpYSYmbnVsbCE9c2VhcmNoQ3JpdGVyaWEpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09Ynx8MD09Yi5sZW5ndGgpYj0tMT09c2VhcmNoQ3JpdGVyaWEubWFrZT8iIjpzZWFyY2hDcml0ZXJpYS5tYWtlO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09Y3x8MD09Yy5sZW5ndGgpYz0tMT09c2VhcmNoQ3JpdGVyaWEubW9kZWw\/IiI6c2VhcmNoQ3JpdGVyaWEubW9kZWw7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlfHxudWxsPT1lfHwwPT1lLmxlbmd0aCllPS0xPT1zZWFyY2hDcml0ZXJpYS55ZWFyPyIiOnNlYXJjaENyaXRlcmlhLnllYXJ9aWYobnVsbD09Ynx8MD09Yi5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiBtYWtlJiZudWxsIT1tYWtlJiYwPG1ha2UubGVuZ3RoJiYiMCIhPW1ha2U\/Yj1tYWtlOihiPSQoIiNwb3B1cG1ha2UiKS52YWwoKSwidW5kZWZpbmVkIj09Cgl0eXBlb2YgYiYmKGI9JCgiI2FjdGl2ZU1ha2UiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0kKCIjY2FyTWFrZSIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPSQoJ2lucHV0W25hbWU9Im1ha2UiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPWdldENLVmFsdWUoIm1ha2UiLCIiKSkpO2lmKG51bGw9PWN8fDA9PWMubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWwmJm51bGwhPW1vZGVsJiYwPG1vZGVsLmxlbmd0aCYmIjAiIT1tb2RlbD9jPW1vZGVsOihjPSQoIiNwb3B1cG1vZGVsIikudmFsKCksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCIjYWN0aXZlTW9kZWwiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCIjY2FyTW9kZWwiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0kKCdpbnB1dFtuYW1lPSJtb2RlbCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9Z2V0Q0tWYWx1ZSgibW9kZWwiLAoJCSIiKSkpO2lmKG51bGw9PWV8fDA9PWUubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgeWVhciYmbnVsbCE9eWVhciYmIWlzTmFOKHllYXIpJiYwPHllYXIubGVuZ3RoJiYiMCIhPXllYXI\/ZT15ZWFyOihlPSQoIiNwb3B1cHllYXIiKS52YWwoKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoIiNhY3RpdmVZZWFyIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgiI2NhclllYXIiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCIjeWVhciIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoJ2lucHV0W25hbWU9InltYXhUZXh0Il0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCdpbnB1dFtuYW1lPSJ5bWluVGV4dCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9Z2V0Q0tWYWx1ZSgieWVhciIsKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpKSkpfWNhdGNoKGcpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiYKCWNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGlkZW50aWZ5aW5nIG1ha2UtbW9kZWwteWVhcjogIitnLm1lc3NhZ2UpLG51bGw9PWImJihiPSIiKSxudWxsPT1jJiYoYz0iIiksbnVsbD09ZSYmKGU9IiIpfXZhciBmPTA7aWYoITEhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmUpe2lmKCJVU0VEQ0FSUyI9PXdpbmRvdy5hY3RpdmVQYWdlKXt2YXIgcT0wOyQoImRpdi5ib3gxNzAgZGl2Lm1haW5fcGljYm94IGRpdi5ib3gyX2RldGFpbHNfbWlkIGRpdi5ib3gyX2RldGFpbHNfdGV4dCBzcGFuIikuZWFjaChmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudGV4dCgpOy0xIT1nLmluZGV4T2YoIiQiKSYmKHErKyxmKz1wYXJzZUludChnLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKX0pO2Y9MDxxP2YvcTowO2lzTmFOKGYpJiYoZj0wKX0wIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2N1cnJlbnRDYXJQcmljZSIpLmF0dHIoImlkIil8fAoJKGY9cGFyc2VJbnQoJCgiI2N1cnJlbnRDYXJQcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FyUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FyUHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNleHByZXNzY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjZXhwcmVzc2NhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PQoJdHlwZW9mICQoIiNjYXJwcm9vZmNhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhcnByb29mY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNzZWFyY2hSZXN1bHRzQXZnUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjc2VhcmNoUmVzdWx0c0F2Z1ByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCdpbnB1dFtuYW1lPSJwbWluIl0nKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCdpbnB1dFtuYW1lPSJwbWluIl0nKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoJ2lucHV0W25hbWU9InBtYXgiXScpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoJ2lucHV0W25hbWU9InBtYXgiXScpLnZhbCgpLnJlcGxhY2UoIiQiLAoJCSIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhclByaWNlIikuYXR0cigiaWQiKXx8KGY9JCgiI2NhclByaWNlIikuaGFzQ2xhc3MoImJveDJfZGV0YWlsc190ZXh0MjUiKT9wYXJzZUludCgkKCIjY2FyUHJpY2UiKS5jaGlsZHJlbigiOmZpcnN0IikudGV4dCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpOnBhcnNlSW50KCQoIiNjYXJQcmljZSIpLnRleHQoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7aXNOYU4oZikmJihmPTApO3ZhciBwPTAseT0wOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZVNpdGVJRCYmbnVsbCE9d2luZG93LmFjdGl2ZVNpdGVJRCYmMCE9d2luZG93LmFjdGl2ZVNpdGVJRD9wPXdpbmRvdy5hY3RpdmVTaXRlSUQ6KHA9JCgiI3NpdGVJRCIpLnZhbCgpLCJ1bmRlZmluZWQiPT10eXBlb2YgcCYmKHA9JCgiI3RvcHNpdGVpZCIpLnZhbCgpKSwidW5kZWZpbmVkIj09Cgl0eXBlb2YgcCYmKHA9MCkpOyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZURlYWxlcklEJiYoeT13aW5kb3cuYWN0aXZlU2l0ZUlEKTt2YXIgbD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxDPTA7aWYoInVuZGVmaW5lZCI9PWx8fDA9PWx8fCIwIj09bClpZihsPTAsInVuZGVmaW5lZCI9PXR5cGVvZiAkLmNvb2tpZSgidXNpZF90bXAiKSl7dmFyIEE9bmV3IERhdGU7QS5zZXRUaW1lKEEuZ2V0VGltZSgpKzcyRTUpO3ZhciB6PSI7IGV4cGlyZXM9IitBLnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPSJ1c2lkX3RtcD0xIit6KyI7IHBhdGg9LyJ9ZWxzZSBDPSEwO3ZhciBtPXdpbmRvdy5sb2NhdGlvbi5ocmVmOy0xPG0uaW5kZXhPZigic3RlcD1yZXN1bWUiKSYmKG0rPSImc2Vzc2lkPSIrKCJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWUoInNlc3NpZCIpPyQuY29va2llKCJzZXNzaWQiKToiTlVMTCIpKX12YXIgcj17c2lkOmwsdXVpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRBY3RpdmVQcm9maWxlaWQoKSwKCQlzaXRlaWQ6cCxkZWFsZXJpZDp5LHV0bVNvdXJjZTpnZXRVUkxWYWx1ZSgidXRtX3NvdXJjZSIsIiIpLHV0bUNhbXBhaWduOmdldFVSTFZhbHVlKCJ1dG1fY2FtcGFpZ24iLCJvcmdhbmljIiksdXRtS2V5d29yZDpnZXRDS1ZhbHVlKCJ1dG1fa2V5d29yZCIpLHV0bUxhbmRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2xhbmRpbmciKSx1dG1Tb3VyY2VSZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIiksdXRtQ2FtcGFpZ25SZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSxtYWtlOmIsbW9kZWw6Yyx5ZWFyOmlzTmFOKGUpPyhuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTplLGxhbmd1YWdlOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxwYWdlOiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVBhZ2U\/IiI6d2luZG93LmFjdGl2ZVBhZ2UscHJpY2U6ZixzbG9va3VwOkMsaHJlZjptfSx4PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7CgkJcj1KU09OLnN0cmluZ2lmeShyKTtyPXIucmVwbGFjZUFsbCgiLyIsIlxcLyIpO3RoaXMuYWpheE1uZy5hamF4KHt0eXBlOiJQT1NUIix1cmw6eCsic2VydmljZS9zZXNzaW9uTW5nLnBocCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiLGRhdGE6cixkb25lOmZ1bmN0aW9uKGcpeyJzdHJpbmciPT10eXBlb2YgZyYmKGc9SlNPTi5wYXJzZShnKSk7InVuZGVmaW5lZCI9PXR5cGVvZiBnfHxudWxsPT1nfHxnLmNvbnN0cnVjdG9yIT1bXS5jb25zdHJ1Y3RvciYmZy5jb25zdHJ1Y3RvciE9e30uY29uc3RydWN0b3J8fChsPWcuc2Vzc2lvbmlkLGxhc3RWaWV3SUQ9Zy52aWV3aWQsYWN0aXZlVXNlclByb2ZpbGVNbmcuX2xvYWRQcm9wZXJ0aWVzKGcucHJvcGVydGllcyksd2luZG93LmFjdGl2ZVNlc3Npb25JRD1sLHdpbmRvdy5sYXN0UGFnZVZpZXdJRD1sYXN0Vmlld0lELGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1sLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXNpZCIsCgkJCQlsLCIvIiwyKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV2aWV3IixsYXN0Vmlld0lELCIvIiwyKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5U2Vzc2lvbklEKCkpfSxmYWlsOmZ1bmN0aW9uKGcsbix0KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBsb2cgcGFnZSB2aWV3LiBFcnJvcjogIit0Lm1lc3NhZ2UpfSxhbHdheXM6ZnVuY3Rpb24oKXt9fSl9fWNhdGNoKGcpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHN0YXQgcGFnZSBkdWUgdG8gZXJyb3I6ICIrZy5tZXNzYWdlKX19LF9sb2FkUHJvcGVydGllczpmdW5jdGlvbihhKXt0cnl7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiZudWxsIT1hJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzPWEsYWN0aXZlVXNlclByb2ZpbGVNbmcucGFnZVZpZXdDb3VudD0KCQlhLnBhZ2V2aWV3cyl9Y2F0Y2goYil7fX0sZ2V0UHJvcGVydHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllc3x8bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzP251bGw6InVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXNbYV0\/InVuZGVmaW5lZCIhPXR5cGVvZiBiP2I6IiI6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzW2FdfSxhZGRQcm9wZXJ0eTpmdW5jdGlvbihhLGIsZCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwwPT1hLmxlbmd0aHx8InVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQpcmV0dXJuIG51bGw7InVuZGVmaW5lZCI9PXR5cGVvZiBkJiYoZD0iVVBEQVRFIik7YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTsKCQl0aGlzLmFqYXhNbmcuYWpheCh7dHlwZToiR0VUIixhY3Rpb246ImFkZHByb3BlcnR5Iix1dWlkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpLHNpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxwbmFtZTphLHB2YWx1ZTpiLHBtb2RlOmR9KTtyZXR1cm4hMH0sdGFnQnJvd3NlcjpmdW5jdGlvbihhLGIpe3RyeXt2YXIgZD1hLGM9dGhpcztpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YSlkPWZ1bmN0aW9uKGgpe3RyeXt2YXIgZj1uZXcgU3RyaW5nKGgpO2Y9Zi50cmltKCk7aWYoMDxmLmxlbmd0aCl7Yy5sb2dNc2coIlRhZ2dlZCB3aXRoIHV1aWQgPT4gIitmKTt2YXIgcT1jLmdldEFjdGl2ZVByb2ZpbGVpZCgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1mLnRyaW0oKTtudWxsIT1xJiYidW5kZWZpbmVkIiE9dHlwZW9mIHEubGVuZ3RoJiYKCTA8cS5sZW5ndGgmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCE9cSYmYy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfdjEiLHEsIi8iLDE4MCk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCwiLyIsNUUzKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF92bGQzIiwhMCwiLyIsNUUzKTtjLnNldEFjdGl2ZVByb2ZpbGVpZCgpfX1jYXRjaChwKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciByZXR1cm5lZCBmcm9tIHRhZ2dpbmc6ICIrcC5tZXNzYWdlKX19O3RoaXMubG9nTXNnKCJHZW5lcmF0aW5nIGZpbmdlcnByaW50Iik7dmFyIGU9dGhpcy5nZXRGUFVSSSgpO2MuYWpheE1uZy5nZXRTY3JpcHQoZSxmdW5jdGlvbigpe3RyeXt2YXIgaD1mdW5jdGlvbihsKXt0cnl7Yy5sb2dNc2coIkZpbmdlcnByaW50ZWQ6ICIrbCk7dmFyIEM9Yy5nZXRBY3RpdmVQcm9maWxlaWQoKSxBPWVuY29kZVVSSSh3aW5kb3cubG9jYXRpb24ub3JpZ2luKTsKCQlpZigidW5kZWZpbmVkIj09dHlwZW9mIGx8fG51bGw9PWwpcmV0dXJuITE7dmFyIHo9ITE7YWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlJiYzPT13aW5kb3cuYWN0aXZlU2l0ZUlEJiYoej0hMCk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1ZnAiLGwsIi8iLDVFMyk7dmFyIG09e2Q6QSxmcDE6bC5zdWJzdHJpbmcoMCw4KSxmcDI6bC5zdWJzdHJpbmcoOCwxNiksZnAzOmwuc3Vic3RyaW5nKDE2LDI0KSxmcDQ6bC5zdWJzdHJpbmcoMjQsMzIpLHVpZDpDLGFjdGlvbjoidXBncmFkZWZwIixkYm06eix2OmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcmVzZXRWfSxyPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7Yy5sb2dNc2cocisic2VydmljZS9kMmMudXBncmFkZS52Ni5mcC5qcyIpO2MubG9nTXNnKEpTT04uc3RyaW5naWZ5KG0pKTtjLmFqYXhNbmcuYWpheCh7dXJsOnIrInNlcnZpY2UvZDJjLnVwZ3JhZGUudjYuZnAuanMiLHR5cGU6IkdFVCIsZGF0YTptLAoJCQlkb25lOmZ1bmN0aW9uKHgpe3RyeXtjLmxvZ01zZygiVVVJRCBhZnRlciB1cHJvZmlsZSB1cGRhdGU6ICIreCksInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZudWxsIT1kP2QoeCk6Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWQiLHgsIi8iLDVFMyksInVuZGVmaW5lZCIhPXR5cGVvZiBiJiZudWxsIT1iJiZiKCl9Y2F0Y2goZyl7fX19KX1jYXRjaCh4KXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgdGFnTWUgc3RlcDogIit4Lm1lc3NhZ2UpfX0sZj0hMTt0cnl7bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJXaW4iKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTGludXgiKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkFuZHJvaWQiKSwtMSE9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJsaWtlIE1hYyIpJiYoZj0hMCksbG9jYXRpb24ucHJvdG9jb2wuaW5kZXhPZigiaHR0cHMiKX1jYXRjaChsKXt9dmFyIHE9CgkJe3ByZXByb2Nlc3NvcjpudWxsLGF1ZGlvOnt0aW1lb3V0OjFFMyxleGNsdWRlSU9TMTE6Zn0sZm9udHM6e3N3ZkNvbnRhaW5lcklkOiJkY3RrZGl2ZnAyIixzd2ZQYXRoOiJmbGFzaC9jb21waWxlZC9Gb250TGlzdC5zd2YiLHVzZXJEZWZpbmVkRm9udHM6W10sZXh0ZW5kZWRKc0ZvbnRzOiExfSxzY3JlZW46e2RldGVjdFNjcmVlbk9yaWVudGF0aW9uOiEwfSxwbHVnaW5zOntzb3J0UGx1Z2luc0ZvcjpbL3BhbGVtb29uL2ldLGV4Y2x1ZGVJRTohMX0sZXh0cmFDb21wb25lbnRzOltdLE5PVF9BVkFJTEFCTEU6Im5vdCBhdmFpbGFibGUiLEVSUk9SOiJlcnJvciIsRVhDTFVERUQ6ImV4Y2x1ZGVkIn0scD0hMTtudWxsIT13aW5kb3cmJm51bGwhPXdpbmRvdy5sb2NhdGlvbiYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cubG9jYXRpb24uaHJlZiYmKC0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImQyY2RlYnVnPTEiKXx8LTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNybTIuZDJjbWVkaWEuY2EiKSkmJgoJKHA9ITApO3ZhciB5PWZ1bmN0aW9uKGwpe3RyeXt2YXIgQz1mdW5jdGlvbih6KXt6PXoubWFwKGZ1bmN0aW9uKG0pe3ZhciByPSIiO3RyeXtzd2l0Y2gocCYmY29uc29sZS5sb2cobS5rZXkudG9Mb3dlckNhc2UoKSksbS5rZXkudG9Mb3dlckNhc2UoKSl7Y2FzZSAiY2FudmFzIjpjYXNlICJ3ZWJnbCI6Y2FzZSAiYWRibG9jayI6cj0iIjticmVhaztjYXNlICJ1c2VyYWdlbnQiOmlmKDA8bS52YWx1ZS5sZW5ndGgmJi0xIT1tLnZhbHVlLmluZGV4T2YoIiAiKSlmb3IodmFyIHg9bS52YWx1ZS5zcGxpdCgiICIpLGc9MDtnPHgubGVuZ3RoO2crKyl7dmFyIG49eFtnXTtpZigtMSE9bi5pbmRleE9mKCIvIikpe3ZhciB0PW4uc3BsaXQoIi8iKTtyKz10WzBdfWVsc2UtMT09bi5pbmRleE9mKCIuIikmJihyKz1uKX1wJiZjb25zb2xlLmxvZygiVXNlciBBZ2VudCAtLSAiK3IpO2JyZWFrO2RlZmF1bHQ6InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheS5pc0FycmF5JiZBcnJheS5pc0FycmF5KG0udmFsdWUpfHwKCW0udmFsdWUuY29uc3RydWN0b3I9PT1BcnJheT8obS52YWx1ZS5zb3J0KCkscj1tLnZhbHVlLmpvaW4oKSk6cj1tLnZhbHVlfX1jYXRjaCh2KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIkZQIEZhaWxlZCAtLSAlcyAtICVvIix2Lm1lc3NhZ2UsbSl9aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxudWxsPT1yKXI9IiI7cmV0dXJuIHJ9KTt6LnNvcnQoKTtyZXR1cm4gen0obCk7cCYmY29uc29sZS5sb2coInRvIGhhc2g6ICVvIixDKTt2YXIgQT1GaW5nZXJwcmludDIueDY0aGFzaDEyOChDLmpvaW4oIiIpLDMxKTtwJiZjb25zb2xlLmxvZygiRlAgPT4gJXMiLEEpO2goQSk7Yy5sb2dNc2coIkZpbmdlcnByaW50OiAiK0EpfWNhdGNoKHope2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiRlAyIEZhaWxlZCAtLSAlcyIsei5tZXNzYWdlKX19O3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrP3JlcXVlc3RJZGxlQ2FsbGJhY2soZnVuY3Rpb24oKXt0cnl7RmluZ2VycHJpbnQyLmdldChxLAoJCXkpfWNhdGNoKGwpe2MubG9nTXNnKCIxLlVuYWJsZSB0byBpbnN0YW50aWF0ZSBGUDIuIEVycm9yOiAiK2wubWVzc2FnZSl9fSk6c2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtGaW5nZXJwcmludDIuZ2V0KHEseSl9Y2F0Y2gobCl7Yy5sb2dNc2coIjIuVW5hYmxlIHRvIGluc3RhbnRpYXRlIEZQMi4gRXJyb3I6ICIrbC5tZXNzYWdlKX19LDUwMCl9Y2F0Y2gobCl7Yy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgZXhlY3V0aW5nIGZpcnN0IHN0ZXA6ICIrbC5tZXNzYWdlKX19KX1jYXRjaChoKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgZmlyc3Qgc3RlcDogIitoLm1lc3NhZ2UpfX0sdXBkYXRlRlA6ZnVuY3Rpb24oKXt0cnl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0aGlzLmxvZ01zZygiU3RhcnRpbmcgU2FmYXJpIFJ1biIpO2lmKCExPT09dGhpcy5yZXNldFNlY29uZFBhc3Mpe3RoaXMucmVzZXRTZWNvbmRQYXNzPQoJCSEwO3RoaXMubG9nTXNnKCJTdGFydGluZyBmaXJzdCBwYXNzIik7dmFyIGE9dGhpcy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIiksYj10aGlzLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfaW9zXzIiKTt0aGlzLmxvZ01zZygiVVVJRC4gIithKyIgLS0gSU9TUkVTRVQuICIrYik7bnVsbD09YXx8bnVsbD09Yj8odGhpcy5sb2dNc2coIkRyb3BwaW5nIHJlc2V0IGNvb2tpZSIpLHRoaXMuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX2lvc18yIiwxLCIvIiw1RTMpLHRoaXMudGFnQnJvd3NlcihudWxsKSk6KHRoaXMubG9nTXNnKCJTZWNvbmQgcGFzcywgbm90aGluZyB0byBkbyIpLHdpbmRvdy5fX19kMmNDVEtNZXRob2QoKSl9ZWxzZSB3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCl9Y2F0Y2goZCl7dGhpcy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgdXBkYXRpbmcgbW9iaWxlIGNvb2tpZTogIitkLm1lc3NhZ2UpfX19Owp3aW5kb3cuX19fZDJjQ1RLTWV0aG9kPWZ1bmN0aW9uKCl7dHJ5e2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSYmITAhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlPXdpbmRvdy5qUXVlcnk\/ITA6ITE7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcHNpdGVpZCIpO2lmKG51bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYS52YWx1ZXx8aXNOYU4oYS52YWx1ZSkpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nTXNnKCJMb2FkaW5nIGZwc3lzdGVtIG9uIG5vbiBkMmMgd2Vic2l0ZSIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZT0hMTtlbHNlIHRyeXt3aW5kb3cuYWN0aXZlU2l0ZUlEPXBhcnNlSW50KGEudmFsdWUpfWNhdGNoKHApe3dpbmRvdy5hY3RpdmVTaXRlSUQ9dm9pZCAwfXZhciBiPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNoZWNrU2NoZWR1bGVkUmVzZXQoKSxkPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWQiKTsKCWlmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVNlc3Npb25JRHx8bnVsbD09d2luZG93LmFjdGl2ZVNlc3Npb25JRCl3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPTA7bnVsbD09ZHx8aXNOYU4oZCl8fCh3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPWQpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfdmxkIik7dmFyIGM9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKSxlPWZ1bmN0aW9uKCl7dHJ5eyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LnN0YXRFeGVjdXRlZCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJm51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3PyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlldygpLHdpbmRvdy5zdGF0RXhlY3V0ZWQ9ITApOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmMrCgkJCSJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJHRVQiLGRhdGE6e2FjdGlvbjoidW5rbm93biIsbXNnOiIxLkVpdGhlciBhY3RpdmVVc2VyUHJvZmlsZU1uZyBpcyBub3QgZGVmaW5lZCBvciBsb2dQYWdlVmlldyBpcyBub3QgZGVmaW5lZCJ9fSkpfWNhdGNoKHApe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ01zZyhwLm1lc3NhZ2UpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmMrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IkdFVCIsZGF0YTp7YWN0aW9uOiJ1bmtub3duIixtc2c6cC5tZXNzYWdlfX0pfX0saD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIiksZj1udWxsPT1ofHwwPT1oLmxlbmd0aD8hMTohMDtoPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfdmxkMyIpO3ZhciBxPW51bGw9PWh8fDA9PWgubGVuZ3RoPyExOiEwO2lmKCFiJiZmJiYKCQlxKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlckNhbGxiYWNrKGUpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRHx8bnVsbD09d2luZG93LmFjdGl2ZVByb2ZpbGVJRCl3aW5kb3cuYWN0aXZlUHJvZmlsZUlEPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfWVsc2UgYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPW51bGwsd2luZG93LmFjdGl2ZVNlc3Npb25JRD1udWxsLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnRhZ0Jyb3dzZXIobnVsbCxmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2soZSl9KX19Y2F0Y2gocCl7Yz1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuX2dldChjKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwP2FjdGlvbj11bmtub3duJm1zZz0yLiIrCgllbmNvZGVVUklDb21wb25lbnQocC5tZXNzYWdlKSksY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCIxLiBVbmV4cGVjdGVkIGVycm9yIG9jY3VyZWQgbG9hZGluZyB1cHJvZmlsZS5maW5hbC5qcy4gRXJyb3I6ICIrcC5tZXNzYWdlKX19Owp0cnl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2Rpc2FibGVJbnRlcm5hbFNlc3Npb24iKTtpZihudWxsIT1hJiYiMSI9PWEudmFsdWUpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkPSEwO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1udWxsO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0b3BzaXRlaWQiKTtudWxsIT1iJiYoYj1wYXJzZUludChiLnZhbHVlKSk7aXNOYU4oYil8fDIzNSE9Yj8oYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfcnN0IiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV2aWV3IiksCglhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZF90bXAiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3YxIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF92bGQzIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVmcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfaW9zXzIiKSk6Y29uc29sZS5sb2coImJ5cGFzc2luZyBjb29raWUgcHVyZ2UiKX1lbHNlImxvYWRpbmciIT1kb2N1bWVudC5yZWFkeVN0YXRlP3dpbmRvdy5fX19kMmNDVEtNZXRob2QoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyP2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHdpbmRvdy5fX19kMmNDVEtNZXRob2QpOgoJZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rpb24oKXsiY29tcGxldGUiPT1kb2N1bWVudC5yZWFkeVN0YXRlJiZ3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCl9KX1jYXRjaChhKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIjUuIFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCBsb2FkaW5nIHVwcm9maWxlLmZpbmFsLmpzLiBFcnJvcjogIithLm1lc3NhZ2UpfTsKLyoqIC9qcy9jb250YWN0UG9wdXAuanMgKiovCnZhciBfX19kMmNfY29udGFjdFBvcHVwanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxMzo0NiI7J3VzZSBzdHJpY3QnO3ZhciBjb250YWN0UG9wdXA9e3BvcHVwOiQoIiNjb250YWN0cG9wdXAiKSxvcHRpb25zOnt0eXBlOiIifSxzZXRDb25maWc6ZnVuY3Rpb24oYSl7Y29udGFjdFBvcHVwLm9wdGlvbnM9JC5leHRlbmQoe30sY29udGFjdFBvcHVwLm9wdGlvbnMsYSk7cmV0dXJuIGNvbnRhY3RQb3B1cH0saW5pdDpmdW5jdGlvbigpe2NvbnRhY3RQb3B1cC5zZXRDb25maWcoe3R5cGU6c2VsZi5zZXR0aW5ncy5mb3JtLnR5cGV9KTtjb250YWN0UG9wdXAucG9wdXAucG9wdXBpemUoe29uQmVmb3JlU2VuZE1haWw6Y29udGFjdFBvcHVwLm9uQmVmb3JlU2VuZE1haWx9KS5vcGVuKCk7cmV0dXJuIGNvbnRhY3RQb3B1cH0sb25CZWZvcmVTZW5kTWFpbDpmdW5jdGlvbihhKXtjb250YWN0UG9wdXAuc2V0RW1haWxIYW5kbGVyRnJvbUFkZHJlc3NlcygpO2VtYWlsSGFuZGxlci5jb25kaXRpb249Y29udGFjdFBvcHVwLmdldENvbmRpdGlvbigpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PWNvbnRhY3RQb3B1cC5nZXRUeXBlKCkudG9VcHBlckNhc2UoKTsKIkJOUCI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYoZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Ik5FVyIpO2VtYWlsSGFuZGxlci5za2lwR2V0RGVwPSEwO2VtYWlsSGFuZGxlci5ib2R5PWVtYWlsSGFuZGxlci5ib2R5LnJlcGxhY2UoInskTkFNRX0iLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lKyIgIitlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lKX0sZ2V0Q29uZGl0aW9uOmZ1bmN0aW9uKCl7c3dpdGNoKGNvbnRhY3RQb3B1cC5nZXRUeXBlKCkpe2Nhc2UgImJucCI6Y2FzZSAibmV3IjpjYXNlICJtYW51ZmFjdHVyZXIiOnJldHVybiJuZXciO2RlZmF1bHQ6cmV0dXJuInVzZWQifX0sZ2V0VHlwZTpmdW5jdGlvbigpe3JldHVybiBjb250YWN0UG9wdXAub3B0aW9ucy50eXBlfSxzZXRFbWFpbEhhbmRsZXJGcm9tQWRkcmVzc2VzOmZ1bmN0aW9uKCl7dmFyIGE9Y29udGFjdFBvcHVwLmdldFR5cGUoKTt0cnl7dmFyIGI9Y29udGFjdFBvcHVwLmdldEVtYWlscyhhKTsiIj09PWIuc2VuZFRvJiYKIiI9PT1iLnNlbmRUb0FERiYmKGI9Y29udGFjdFBvcHVwLmdldEVtYWlscygidXNlZCIpKTt2YXIgYz1iLnNlbmRUbyxkPWIuc2VuZFRvQURGOyIiPT09YyYmIiI9PT1kJiZjb25zb2xlLmxvZygiV2FybmluZzogYm90aCBlbWFpbCBhbmQgQURGIGFkZHJlc3NlcyBhcmUgZW1wdHkhIik7aWYoJCgiI2N1c3RvbUZvcm1fb3JpZ2luYWxzZW5kdG8iKS5sZW5ndGgmJiJPdGhlciI9PSQoIiNjdXN0b21Gb3JtX29yaWdpbmFsc2VuZHRvIikudmFsKCkpe3ZhciBlPSQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLnZhbCgpLGY9JCgiI2N1c3RvbUZvcm1fc2VuZHRvQURGIikudmFsKCk7aWYoIiIhPT1lfHwiIiE9PWYpYz1lLGQ9Zn1lbWFpbEhhbmRsZXIuc2VuZFRvPWM7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1kfWNhdGNoKGcpe2NvbnNvbGUubG9nKGcpfXJldHVybiBjb250YWN0UG9wdXB9LGdldEVtYWlsczpmdW5jdGlvbihhKXt2YXIgYj0kKCIjaGlkZGVuQ29udGFjdHBvcHVwIik7CiJibnAiPT1hJiYoYT0ibmV3Iik7dmFyIGM9Yi5maW5kKCIjZW1haWxfIithKS52YWwoKTthPWIuZmluZCgiI2VtYWlsQURGXyIrYSkudmFsKCk7cmV0dXJue3NlbmRUbzpjLHNlbmRUb0FERjphfX19LGluaXRDb250YWN0cG9wdXA9ZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2NvbnRhY3RQb3B1cC5pbml0KCl9LGNvbnRhY3RQb3B1cFN1Ym1pdD1mdW5jdGlvbigpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLnN1Ym1pdCgpfSxjb250YWN0UG9wdXBDbG9zZT1mdW5jdGlvbigpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9OwovKiogL2pzL25lYkNhbC9uZWJEYXRlRm4uanMgKiovCnZhciBfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNDoyNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMTo1NyI7InVzZSBzdHJpY3QiO19fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDIzLTAxLTEyIDExOjMyOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDI6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyMS0xMi0xNSAxMjozODozOSI7InVzZSBzdHJpY3QiO2NvbnN0IG5lYkRhdGVGbj17fTsKJCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8kLm5lYkxhbmc9e21vbnRoTmFtZXM6IkphbnZpZXIgRiZlYWN1dGU7dnJpZXIgTWFycyBBdnJpbCBNYWkgSnVpbiBKdWlsbGV0IEFvJnVjaXJjO3QgU2VwdGVtYnJlIE9jdG9icmUgTm92ZW1icmUgRCZlYWN1dGU7Y2VtYnJlIi5zcGxpdCgiICIpLG1vbnRoTmFtZXNTaG9ydDoiSmFudi4gRiZlYWN1dGU7dnIuIE1hcnMgQXZyLiBNYWkgSnVpbiBKdWlsLiBBbyZ1Y2lyYzt0IFNlcHQuIE9jdC4gTm92LiBEJmVhY3V0ZTtjLiIuc3BsaXQoIiAiKSxkYXlOYW1lczoiRGltYW5jaGUgTHVuZGkgTWFyZGkgTWVyY3JlZGkgSmV1ZGkgVmVuZHJlZGkgU2FtZWRpIi5zcGxpdCgiICIpLGRheU5hbWVzU2hvcnQ6IkRpbSBMdW4gTWFyIE1lciBKZXUgVmVuIFNhbSIuc3BsaXQoIiAiKSxkYXlOYW1lc01pbjoiRGkgTHUgTWEgTWUgSmUgVmUgU2EiLnNwbGl0KCIgIiksd2Vla0hlYWRlcjoiU20iLGRhdGVGb3JtYXQ6InktTS1kIixmaXJzdERheToxLAppc1JUTDohMSxzaG93TW9udGhBZnRlclllYXI6ITEseWVhclN1ZmZpeDoiIixpbnZhbGlkRGF0ZUZvcm1hdDoiaW52YWxpZF9kYXRlIn06JC5uZWJMYW5nPXttb250aE5hbWVzOiJKYW51YXJ5IEZlYnJ1YXJ5IE1hcmNoIEFwcmlsIE1heSBKdW5lIEp1bHkgQXVndXN0IFNlcHRlbWJlciBPY3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpLG1vbnRoTmFtZXNTaG9ydDoiSmFuLiBGZWIuIE1hci4gQXByLiBNYXkgSnVuLiBKdWwuIEF1Zy4gU2VwdC4gT2N0LiBOb3YuIERlYy4iLnNwbGl0KCIgIiksZGF5TmFtZXM6IlN1bmRheSBNb25kYXkgVHVlc2RheSBXZWRuZXNkYXkgVGh1cnNkYXkgRnJpZGF5IFNhdHVyZGF5Ii5zcGxpdCgiICIpLGRheU5hbWVzU2hvcnQ6IlN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCIuc3BsaXQoIiAiKSxkYXlOYW1lc01pbjoiU3UgTW8gVHUgV2UgVGggRnIgU2EiLnNwbGl0KCIgIiksd2Vla0hlYWRlcjoiU20iLGRhdGVGb3JtYXQ6InktTS1kIiwKZmlyc3REYXk6MSxpc1JUTDohMSxzaG93TW9udGhBZnRlclllYXI6ITEseWVhclN1ZmZpeDoiIixpbnZhbGlkRGF0ZUZvcm1hdDoiaW52YWxpZF9kYXRlIn07RGF0ZS5MWj1mdW5jdGlvbihhKXtyZXR1cm4oMD5hfHw5PGE\/IiI6IjAiKSthfTtuZWJEYXRlRm4uTFo9ZnVuY3Rpb24oYSl7cmV0dXJuKDA+YXx8OTxhPyIiOiIwIikrYX07RGF0ZS5wcmVmZXJBbWVyaWNhbkZvcm1hdD0hMDtuZWJEYXRlRm4uY2xlYXJUaW1lPWZ1bmN0aW9uKGEpe2EgaW5zdGFuY2VvZiBEYXRlJiYoYS5zZXRIb3VycygwKSxhLnNldE1pbnV0ZXMoMCksYS5zZXRTZWNvbmRzKDApLGEuc2V0TWlsbGlzZWNvbmRzKDApKTtyZXR1cm4gYX07CkRhdGUucHJvdG90eXBlLnRvTXlzcWxGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGdWxsWWVhcigpKyItIitEYXRlLkxaKDErdGhpcy5nZXRNb250aCgpKSsiLSIrRGF0ZS5MWih0aGlzLmdldERhdGUoKSkrIiAiK0RhdGUuTFoodGhpcy5nZXRIb3VycygpKSsiOiIrRGF0ZS5MWih0aGlzLmdldE1pbnV0ZXMoKSkrIjoiK0RhdGUuTFoodGhpcy5nZXRTZWNvbmRzKCkpfTtEYXRlLnByb3RvdHlwZS5pc0xlYXBZZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIDI5PT0obmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLDEsMjkpKS5nZXREYXRlKCl9O0RhdGUucHJvdG90eXBlLmdldExhc3REYXlPZk1vbnRoQ2FsPWZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSx0aGlzLmdldE1vbnRoKCkrMSwwKSkuZ2V0RGF0ZSgpfTtEYXRlLnByb3RvdHlwZS5zZXREYXk9ZnVuY3Rpb24oYSl7dGhpcy5zZXREYXRlKGEpO3JldHVybiB0aGlzfTsKRGF0ZS5wcm90b3R5cGUuc2V0TW9uPWZ1bmN0aW9uKGEpe3RoaXMuc2V0TW9udGgoYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLnNldFllYXI9ZnVuY3Rpb24oYSl7dGhpcy5zZXRGdWxsWWVhcihhKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuYWRkRGF5PWZ1bmN0aW9uKGEpe3RoaXMuc2V0RGF0ZSh0aGlzLmdldERhdGUoKSthKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuYWRkTW9uPWZ1bmN0aW9uKGEpe3RoaXMuc2V0TW9udGgodGhpcy5nZXRNb250aCgpK2EpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5hZGRZZWFyPWZ1bmN0aW9uKGEpe3RoaXMuc2V0RnVsbFllYXIodGhpcy5nZXRGdWxsWWVhcigpK2EpO3JldHVybiB0aGlzfTtEYXRlLnBhcnNlRGF0ZVRpbWU9ZnVuY3Rpb24oYSl7YT1hLnNwbGl0KC9bLSA6XS8pO3JldHVybiBuZXcgRGF0ZShhWzBdLGFbMV0tMSxhWzJdLGFbM10sYVs0XSxhWzVdKX07Cm5lYkRhdGVGbi5wYXJzZVN0cmluZz1mdW5jdGlvbihhLGUpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGV8fG51bGw9PT1lfHwiIj09PWUpe2U9WyJNL2QveSIsIk0tZC15IiwiTS5kLnkiLCJNL2QiLCJNLWQiXTt2YXIgYz1bImQvTS95IiwiZC1NLXkiLCJkLk0ueSIsImQvTSIsImQtTSJdO2U9WyJ5LU0tZDtNTU0gZCwgeTtNTU0gZCx5O3ktTU1NLWQ7ZC1NTU0teTtNTU0gZDtNTU0tZDtkLU1NTSIuc3BsaXQoIjsiKSxEYXRlLnByZWZlckFtZXJpY2FuRm9ybWF0P2U6YyxEYXRlLnByZWZlckFtZXJpY2FuRm9ybWF0P2M6ZV07Zm9yKGM9MDtjPGUubGVuZ3RoO2MrKylmb3IodmFyIGg9ZVtjXSxrPTA7azxoLmxlbmd0aDtrKyspe3ZhciBuPW5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLGhba10pO2lmKG51bGwhPT1uKXJldHVybiBufXJldHVybiBudWxsfXRoaXMuaXNJbnRlZ2VyPWZ1bmN0aW9uKHUpe2Zvcih2YXIgcT0wO3E8dS5sZW5ndGg7cSsrKWlmKC0xPT0iMTIzNDU2Nzg5MCIuaW5kZXhPZih1LmNoYXJBdChxKSkpcmV0dXJuITE7CnJldHVybiEwfTt0aGlzLmdldEludD1mdW5jdGlvbih1LHEseSx3KXtmb3IoO3c+PXk7dy0tKXt2YXIgeD11LnN1YnN0cmluZyhxLHErdyk7aWYoeC5sZW5ndGg8eSlicmVhaztpZih0aGlzLmlzSW50ZWdlcih4KSlyZXR1cm4geH1yZXR1cm4gbnVsbH07YSs9IiI7ZSs9IiI7aD1jPTA7dmFyIG09IiIsYj0iIixsPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSxnPTEsZD0xLGY9MCxyPTAsdD0wLHY9IiI7bT1bXTtmb3IoYj0wO2g8ZS5sZW5ndGg7KXttPWUuY2hhckF0KGgpO2ZvcihiPSIiO2UuY2hhckF0KGgpPT1tJiZoPGUubGVuZ3RoOyliKz1lLmNoYXJBdChoKyspO2lmKCJ5eXl5Ij09Ynx8Inl5Ij09Ynx8InkiPT1iKXsieXl5eSI9PWImJihuPWs9NCk7Inl5Ij09YiYmKG49az0yKTsieSI9PWImJihrPTIsbj00KTtsPXRoaXMuZ2V0SW50KGEsYyxrLG4pO2lmKG51bGw9PT1sKXJldHVybiBudWxsO2MrPWwubGVuZ3RoOzI9PWwubGVuZ3RoJiYobD03MDxsPzE5MDArKGwtMCk6MkUzKwoobC0wKSl9ZWxzZSBpZigiTU1NIj09Ynx8Ik5OTiI9PWIpe2c9MDttPSJNTU0iPT1iPyQubmViTGFuZy5tb250aE5hbWVzLmNvbmNhdCgkLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0KTokLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0O2ZvcihiPTA7YjxtLmxlbmd0aDtiKyspe3ZhciBwPW1bYl07aWYoYS5zdWJzdHJpbmcoYyxjK3AubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT1wLnRvTG93ZXJDYXNlKCkpe2c9YiUxMisxO2MrPXAubGVuZ3RoO2JyZWFrfX1pZigxPmd8fDEyPGcpcmV0dXJuIG51bGx9ZWxzZSBpZigiRUUiPT1ifHwiRSI9PWIpZm9yKG09IkVFIj09Yj8kLm5lYkxhbmcuZGF5TmFtZXM6JC5uZWJMYW5nLmRheU5hbWVzU2hvcnQsYj0wO2I8bS5sZW5ndGg7YisrKXtpZihwPW1bYl0sYS5zdWJzdHJpbmcoYyxjK3AubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT1wLnRvTG93ZXJDYXNlKCkpe2MrPXAubGVuZ3RoO2JyZWFrfX1lbHNlIGlmKCJNTSI9PWJ8fCJNIj09Yil7Zz10aGlzLmdldEludChhLApjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1nfHwxPmd8fDEyPGcpcmV0dXJuIG51bGw7Yys9Zy5sZW5ndGh9ZWxzZSBpZigiZGQiPT1ifHwiZCI9PWIpe2Q9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1kfHwxPmR8fDMxPGQpcmV0dXJuIG51bGw7Yys9ZC5sZW5ndGh9ZWxzZSBpZigiaGgiPT1ifHwiaCI9PWIpe2Y9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwxPmZ8fDEyPGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGh9ZWxzZSBpZigiSEgiPT1ifHwiSCI9PWIpe2Y9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwwPmZ8fDIzPGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGh9ZWxzZSBpZigiS0siPT1ifHwiSyI9PWIpe2Y9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwwPmZ8fDExPGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGg7ZisrfWVsc2UgaWYoImtrIj09Ynx8ImsiPT1iKXtmPXRoaXMuZ2V0SW50KGEsCmMsYi5sZW5ndGgsMik7aWYobnVsbD09PWZ8fDE+Znx8MjQ8ZilyZXR1cm4gbnVsbDtjKz1mLmxlbmd0aDtmLS19ZWxzZSBpZigibW0iPT1ifHwibSI9PWIpe3I9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1yfHwwPnJ8fDU5PHIpcmV0dXJuIG51bGw7Yys9ci5sZW5ndGh9ZWxzZSBpZigic3MiPT1ifHwicyI9PWIpe3Q9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT10fHwwPnR8fDU5PHQpcmV0dXJuIG51bGw7Yys9dC5sZW5ndGh9ZWxzZSBpZigiYSI9PWIpe2lmKCJhbSI9PWEuc3Vic3RyaW5nKGMsYysyKS50b0xvd2VyQ2FzZSgpKXY9IkFNIjtlbHNlIGlmKCJwbSI9PWEuc3Vic3RyaW5nKGMsYysyKS50b0xvd2VyQ2FzZSgpKXY9IlBNIjtlbHNlIHJldHVybiBudWxsO2MrPTJ9ZWxzZXtpZihhLnN1YnN0cmluZyhjLGMrYi5sZW5ndGgpIT1iKXJldHVybiBudWxsO2MrPWIubGVuZ3RofX1pZihjIT1hLmxlbmd0aClyZXR1cm4gbnVsbDtpZigyPT0KZylpZigwPT09bCU0JiYwIT09bCUxMDB8fDA9PT1sJTQwMCl7aWYoMjk8ZClyZXR1cm4gbnVsbH1lbHNlIGlmKDI4PGQpcmV0dXJuIG51bGw7aWYoMzA8ZCYmKDQ9PWd8fDY9PWd8fDk9PWd8fDExPT1nKSlyZXR1cm4gbnVsbDsxMj5mJiYiUE0iPT12P2Y9Zi0wKzEyOjExPGYmJiJBTSI9PXYmJihmLT0xMik7cmV0dXJuIG5ldyBEYXRlKGwsZy0xLGQsZixyLHQpfTtEYXRlLmlzVmFsaWQ9ZnVuY3Rpb24oYSxlKXtyZXR1cm4gbnVsbCE9PW5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLGUpfTtEYXRlLnByb3RvdHlwZS5kaWZmPWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09YT8hMTp0aGlzLmdldFRpbWUoKT09YS5nZXRUaW1lKCk\/MDp0aGlzLmdldFRpbWUoKT5hLmdldFRpbWUoKT8tMToxfTsKRGF0ZS5wcm90b3R5cGUuZm9ybWF0PWZ1bmN0aW9uKGEpe2ErPSIiO3ZhciBlPSIiLGM9MCxoPXRoaXMuZ2V0RnVsbFllYXIoKSsiIixrPXRoaXMuZ2V0TW9udGgoKSsxLG49dGhpcy5nZXREYXRlKCksbT10aGlzLmdldERheSgpLGI9dGhpcy5nZXRIb3VycygpLGw9dGhpcy5nZXRNaW51dGVzKCksZz10aGlzLmdldFNlY29uZHMoKSxkPXt9OzQ+aC5sZW5ndGgmJihoPSIiKygraCsxOTAwKSk7ZC55PSIiK2g7ZC55eXl5PWg7ZC55eT1oLnN1YnN0cmluZygyLDQpO2QuTT1rO2QuTU09RGF0ZS5MWihrKTtkLk1NTT0kLm5lYkxhbmcubW9udGhOYW1lc1trLTFdO2QuTk5OPSQubmViTGFuZy5tb250aE5hbWVzU2hvcnRbay0xXTtkLmQ9bjtkLmRkPURhdGUuTFoobik7ZC5FPSQubmViTGFuZy5kYXlOYW1lc1Nob3J0W21dO2QuRUU9JC5uZWJMYW5nLmRheU5hbWVzW21dO2QuSD1iO2QuSEg9RGF0ZS5MWihiKTtkLmg9MD09PWI\/MTI6MTI8Yj9iLTEyOmI7ZC5oaD1EYXRlLkxaKGQuaCk7ZC5LPQpkLmgtMTtkLms9ZC5IKzE7ZC5LSz1EYXRlLkxaKGQuSyk7ZC5raz1EYXRlLkxaKGQuayk7ZC5hPTExPGI\/IlBNIjoiQU0iO2QubT1sO2QubW09RGF0ZS5MWihsKTtkLnM9Zztmb3IoZC5zcz1EYXRlLkxaKGcpO2M8YS5sZW5ndGg7KXtoPWEuY2hhckF0KGMpO2ZvcihrPSIiO2EuY2hhckF0KGMpPT1oJiZjPGEubGVuZ3RoOylrKz1hLmNoYXJBdChjKyspO2U9InVuZGVmaW5lZCIhPXR5cGVvZiBkW2tdP2UrZFtrXTplK2t9cmV0dXJuIGV9OwpEYXRlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxlKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBhfHxudWxsPT09YXx8InVuZGVmaW5lZCI9PT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIHRoaXM7ZT0rZTtpZigieSI9PWEpdGhpcy5zZXRGdWxsWWVhcih0aGlzLmdldEZ1bGxZZWFyKCkrZSk7ZWxzZSBpZigiTSI9PWEpdGhpcy5zZXRNb250aCh0aGlzLmdldE1vbnRoKCkrZSk7ZWxzZSBpZigiZCI9PWEpdGhpcy5zZXREYXRlKHRoaXMuZ2V0RGF0ZSgpK2UpO2Vsc2UgaWYoInciPT1hKWZvcihhPTA8ZT8xOi0xOzAhPT1lOyl7Zm9yKHRoaXMuYWRkKCJkIixhKTswPT09dGhpcy5nZXREYXkoKXx8Nj09PXRoaXMuZ2V0RGF5KCk7KXRoaXMuYWRkKCJkIixhKTtlLT1hfWVsc2UiaCI9PWE\/dGhpcy5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkrZSk6Im0iPT1hP3RoaXMuc2V0TWludXRlcyh0aGlzLmdldE1pbnV0ZXMoKStlKToicyI9PWEmJnRoaXMuc2V0U2Vjb25kcyh0aGlzLmdldFNlY29uZHMoKSsKZSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZ2V0VGltZSgpKX07Ci8qKiAvanMvbmViQ2FsL25lYkNhbC5qcyAqKi8KdmFyIF9fX2QyY19uZWJDYWxqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA0OjIyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19uZWJDYWxqc19jX29uPSIyMDI0LTA0LTE2IDExOjMwOjA3IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihlKXtlLm5lYkNhbD1mdW5jdGlvbihoLGcpe3ZhciBsPXtzbGlkZUR1cmF0aW9uOjUwMCxmYWRlRHVyYXRpb246MjAwLHRvZ2dsZUR1cmF0aW9uOjIwMCxwcmVmaWxsOiExLGRlZmF1bHREYXRlOnZvaWQgMCxsaW5rV2l0aElucHV0OiEwLGtleU5hdmlnYXRpb246ITAsdGhlbWU6ImRlZmF1bHQiLGRlZmF1bHRWaWV3OiJtb250aCIsc3RhcnRNb25kYXk6ITEsYWx3YXlzU2hvdzohMSxpbmplY3RJbnNpZGVUYXJnZXQ6ITEsZm9ybWF0OiJ5eXl5LU1NLWRkIixhbGlnblg6Im1pZGRsZSIsYWxpZ25ZOiJib3R0b20iLG9mZnNldFg6MjAsb2Zmc2V0WTowLHBvcnRyYWl0OiEwLHBpY2thYmxlOiEwLHRvZ2dsZXI6dm9pZCAwLGRpc2FsbG93VXNlcklucHV0OiExLG1pbkRhdGU6dm9pZCAwLG1heERhdGU6dm9pZCAwLGV4Y2x1ZGVkV2Vla2RheXM6dm9pZCAwLGV4Y2x1ZGVkRGF0ZXM6dm9pZCAwLGNyZWF0ZUhpZGRlbklucHV0OiExLGhpZGRlbklucHV0TmFtZToiZGF0ZSIsaGlkZGVuSW5wdXRGb3JtYXQ6IiV0IiwKb25TZWxlY3Q6ITEsb25WaWV3Q2hhbmdlOiExfSxhPXRoaXM7YS5vcHRpb25zPXt9O2EudGFyZ2V0PWUoaCk7YS5pbml0PWZ1bmN0aW9uKCl7YS5vcHRpb25zPWUuZXh0ZW5kKHt9LGwsZyk7YS50b2RheT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5ldyBEYXRlKTthLnRyYW5zaXRpb25pbmc9ITE7dm9pZCAwIT09YS5vcHRpb25zLmRlZmF1bHREYXRlP2Euc2VsZWN0ZWREYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEub3B0aW9ucy5kZWZhdWx0RGF0ZSkpOmEub3B0aW9ucy5saW5rV2l0aElucHV0JiZ2b2lkIDAhPT1hLnRhcmdldC52YWwoKSYmMCE9PWEudGFyZ2V0LnZhbCgpJiYoYS5zZWxlY3RlZERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS50YXJnZXQudmFsKCkpKSk7aWYodm9pZCAwPT09YS5zZWxlY3RlZERhdGV8fG51bGw9PT1hLnNlbGVjdGVkRGF0ZSlhLnNlbGVjdGVkRGF0ZT1hLnRvZGF5LmNsb25lKCk7CmEuZWxlbWVudD1lKCc8ZGl2IGNsYXNzPSJuZWJDYWwgJythLm9wdGlvbnMudGhlbWUrJyIgc3R5bGU9ImRpc3BsYXk6ICcrKGEub3B0aW9ucy5hbHdheXNTaG93PyJibG9jayI6Im5vbmUiKSsnIj48ZGl2IGNsYXNzPSJjYWwtd3JhcHBlciI+PGRpdiBjbGFzcz0iY2FsLWhlYWRlciI+PGRpdiBjbGFzcz0iY2FsLWFycm93LWxlZnQiPjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1hcnJvdy1yaWdodCI+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWxhYmVsIGNhbC1jbGlja2FibGUiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1ib2R5Ij48ZGl2IGNsYXNzPSJjYWwtaW5uZXIiPjxkaXYgY2xhc3M9ImNhbC1jb250YWluZXIgYSI+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWNvbnRhaW5lciBiIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtZm9vdGVyIj48L2Rpdj48L2Rpdj48L2Rpdj4nKTthLm9wdGlvbnMuaW5qZWN0SW5zaWRlVGFyZ2V0PyhhLmVsZW1lbnQuYWRkQ2xhc3MoImlubGluZSIpLAphLmVsZW1lbnQuYXBwZW5kVG8oYS50YXJnZXQpKTooYS5lbGVtZW50LmFwcGVuZFRvKGUoImJvZHkiKSksYS5wb3NpdGlvbigpLGUod2luZG93KS5vbigicmVzaXplIixhLnBvc2l0aW9uKSk7YS5jdXJyZW50Q29udGFpbmVyPWEuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5hIikuY3NzKCJ6LWluZGV4Iiw5OTkpO2EudGVtcENvbnRhaW5lcj1hLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYiIpLmNzcygiei1pbmRleCIsOTk4KTthLmhlYWRlcj1hLmVsZW1lbnQuZmluZCgiLmNhbC1oZWFkZXIiKTthLmxhYmVsPWEuaGVhZGVyLmZpbmQoIi5jYWwtbGFiZWwiKTthLmFycm93TGVmdD1hLmhlYWRlci5maW5kKCIuY2FsLWFycm93LWxlZnQiKTthLmFycm93UmlnaHQ9YS5oZWFkZXIuZmluZCgiLmNhbC1hcnJvdy1yaWdodCIpO2EubGFiZWwub24oImNsaWNrIixhLmxldmVsVXApO2EuYXJyb3dMZWZ0Lm9uKCJjbGljayIsYS5zbGlkZUxlZnQpO2EuYXJyb3dSaWdodC5vbigiY2xpY2siLAphLnNsaWRlUmlnaHQpO3ZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiYoYS5vcHRpb25zLm1pbkRhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS5vcHRpb25zLm1pbkRhdGUpKSk7dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJihhLm9wdGlvbnMubWF4RGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLm9wdGlvbnMubWF4RGF0ZSkpKTtpZih2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWREYXRlcyl7dmFyIGI9W107YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMuZWFjaChmdW5jdGlvbihjKXtiLmluY2x1ZGUoYS5mb3JtYXQobmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYykpLCIldCIpKX0pO2Eub3B0aW9ucy5leGNsdWRlZERhdGVzPWJ9YS5vcHRpb25zLmNyZWF0ZUhpZGRlbklucHV0JiYoYS5oaWRkZW5JbnB1dD0obmV3IEVsZW1lbnQoImlucHV0Iix7dHlwZToiaGlkZGVuIiwKbmFtZTphLm9wdGlvbnMuaGlkZGVuSW5wdXROYW1lfSkpLmFwcGVuZFRvKGEudGFyZ2V0KSk7IWEub3B0aW9ucy5kaXNhbGxvd1VzZXJJbnB1dCYmYS5vcHRpb25zLmxpbmtXaXRoSW5wdXQmJiJpbnB1dCI9PWEudGFyZ2V0LmF0dHIoInRhZyIpJiZhLnRhcmdldC5hZGRFdmVudCgia2V5dXAiLGZ1bmN0aW9uKCl7YS5zZXREYXRlKGEudGFyZ2V0LmF0dHIoInZhbHVlIiksITEpfSk7dm9pZCAwIT09YS5vcHRpb25zLnRvZ2dsZXImJihhLm9wdGlvbnMudG9nZ2xlcj1lKGEub3B0aW9ucy50b2dnbGVyKSk7KHZvaWQgMCE9PWEub3B0aW9ucy50b2dnbGVyP2Eub3B0aW9ucy50b2dnbGVyOmEudGFyZ2V0KS5vbigiZm9jdXMiLGEuc2hvdykub24oImNsaWNrIixhLnNob3cpO2lmKCFhLm9wdGlvbnMuYWx3YXlzU2hvdyllKGRvY3VtZW50KS5vbigibW91c2Vkb3duIixhLm91dHNpZGVDbGljayk7IklOUFVUIj09YS50YXJnZXQucHJvcCgidGFnTmFtZSIpJiYoYS50YXJnZXQudHJpZ2dlcigia2V5ZG93biIsCmEub25LZXlEb3duKSxhLnRhcmdldC50cmlnZ2VyKCJrZXl1cCIsYS5vbktleVVwKSxhLm9wdGlvbnMuZGlzYWxsb3dVc2VySW5wdXQmJmEudGFyZ2V0LmFkZEV2ZW50KCJjb250ZXh0bWVudSIsJGxhbWJkYSghMSkpKTthLnNlbGVjdGVkRGF0ZT1hLmNvcnJlY3REYXRlKGEuc2VsZWN0ZWREYXRlKTthLm9wdGlvbnMucHJlZmlsbCYmYS5waWNrKCk7YS52aWV3RGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKGEuc2VsZWN0ZWREYXRlLmNsb25lKCkuc2V0RGF5KDEpKTthLnZpZXc9YS5vcHRpb25zLmRlZmF1bHRWaWV3O2EucmVuZGVyKCl9O2EucmVuZGVyPWZ1bmN0aW9uKCl7YS5jdXJyZW50Q29udGFpbmVyLmVtcHR5KCk7c3dpdGNoKGEudmlldyl7Y2FzZSAiZGVjYWRlIjphLnJlbmRlckRlY2FkZSgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpO2JyZWFrO2RlZmF1bHQ6YS5yZW5kZXJNb250aCgpfXJldHVybiBhfTthLnJlbmRlck1vbnRoPWZ1bmN0aW9uKCl7YS52aWV3PQoibW9udGgiO2EuY3VycmVudENvbnRhaW5lci5lbXB0eSgpLmFkZENsYXNzKCJjYWwtbW9udGgiKTthLm9wdGlvbnMucGlja2FibGUmJmEuY3VycmVudENvbnRhaW5lci5hZGRDbGFzcygiY2FsLXBpY2thYmxlIik7dmFyIGI9ZS5uZWJMYW5nLGM9YS52aWV3RGF0ZS5nZXREYXkoKS0oYS5vcHRpb25zLnN0YXJ0TW9uZGF5PzE6MCk7LTE9PWMmJihjPTYpO2EubGFiZWwuaHRtbChiLm1vbnRoTmFtZXNbYS52aWV3RGF0ZS5nZXRNb250aCgpXSsiICIrYS52aWV3RGF0ZS5mb3JtYXQoInl5eXkiKSk7Zm9yKHZhciBkPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpLGY9YS5vcHRpb25zLnN0YXJ0TW9uZGF5PzE6MDtmPChhLm9wdGlvbnMuc3RhcnRNb25kYXk\/ODo3KTtmKyspe3ZhciBrPWUoIjxkaXY+PC9kaXY+IikuaHRtbChiLmRheU5hbWVzU2hvcnRbYS5vcHRpb25zLnN0YXJ0TW9uZGF5JiY3PT1mPzA6Zl0pLmFwcGVuZFRvKGQpOwprLmh0bWwoay5odG1sKCkpfWQ9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lcik7Yj1hLnZpZXdEYXRlLmNsb25lKCkuYWRkKCJNIiwtMSkuZ2V0TGFzdERheU9mTW9udGhDYWwoKTtmb3IoZj0wO2Y8YztmKyspYS5pbmplY3REYXkoZCxhLnZpZXdEYXRlLmNsb25lKCkuYWRkKCJNIiwtMSkuc2V0RGF5KGItKGMtZikrMSksITApO2ZvcihmPTE7Zjw9YS52aWV3RGF0ZS5nZXRMYXN0RGF5T2ZNb250aENhbCgpO2YrKylhLmluamVjdERheShkLGEudmlld0RhdGUuY2xvbmUoKS5zZXREYXkoZikpLDc9PWQuY2hpbGRyZW4oKS5sZW5ndGgmJihkPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpKTtiPTgtZC5jaGlsZHJlbigpLmxlbmd0aDtjPWEudmlld0RhdGUuY2xvbmUoKS5hZGQoIk0iLDEpLnNldERheSgxKTtmb3IoZj0xO2Y8YjtmKyspYS5pbmplY3REYXkoZCwKYy5jbG9uZSgpLnNldERheShmKSwhMCk7Zm9yKGI9YS5jdXJyZW50Q29udGFpbmVyLmZpbmQoIi5jYWwtcm93IikubGVuZ3RoOzc+YjtiKyspZm9yKGQ9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lciksaz0wOzc+aztrKyspYS5pbmplY3REYXkoZCxjLmNsb25lKCkuc2V0RGF5KGYpLCEwKSxmKys7YS5yZW5kZXJBZnRlcigpfTthLmluamVjdERheT1mdW5jdGlvbihiLGMsZCl7Yj1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoYy5nZXREYXRlKCkpLmFwcGVuZFRvKGIpO2IuZGF0YSgiZGF0ZSIsYyk7ZCYmYi5hZGRDbGFzcygiY2FsLW91dHNpZGUiKTtpZih2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmYS5vcHRpb25zLm1pbkRhdGU+Y3x8dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJmEub3B0aW9ucy5tYXhEYXRlPGN8fHZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZFdlZWtkYXlzJiZhLm9wdGlvbnMuZXhjbHVkZWRXZWVrZGF5cy5jb250YWlucyhjLmZvcm1hdCgiRSIpLnRvSW50KCkpfHwKdm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMmJmEub3B0aW9ucy5leGNsdWRlZERhdGVzLmNvbnRhaW5zKGEuZm9ybWF0KGMsIiV0IikpKWIuYWRkQ2xhc3MoImNhbC1ub24tc2VsZWN0YWJsZSIpO2Vsc2UgaWYoYS5vcHRpb25zLnBpY2thYmxlKWIub24oImNsaWNrIixhLnBpY2spO2MuZm9ybWF0KCJkIik9PWEudG9kYXkuZm9ybWF0KCJkIikmJmIuYWRkQ2xhc3MoImNhbC10b2RheSIpO2R8fGMuZm9ybWF0KCJkIikhPWEuc2VsZWN0ZWREYXRlLmZvcm1hdCgiZCIpfHxiLmFkZENsYXNzKCJjYWwtc2VsZWN0ZWQiKX07YS5yZW5kZXJZZWFyPWZ1bmN0aW9uKCl7YS52aWV3PSJ5ZWFyIjthLmN1cnJlbnRDb250YWluZXIuYWRkQ2xhc3MoImNhbC15ZWFyLWRlY2FkZSAiKyhhLm9wdGlvbnMucG9ydHJhaXQ\/ImNhbC1wb3J0cmFpdCI6ImNhbC1sYW5kc2NhcGUiKSk7dmFyIGI9ZS5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydDthLmxhYmVsLmh0bWwoYS52aWV3RGF0ZS5mb3JtYXQoInl5eXkiKSk7CmZvcih2YXIgYz1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSxkPTE7MTM+ZDtkKyspe3ZhciBmPWUoIjxkaXY+PC9kaXY+IikuaHRtbChiW2QtMV0pLmFwcGVuZFRvKGMpLGs9YS52aWV3RGF0ZS5jbG9uZSgpLnNldE1vbihkLTEpO2YuZGF0YSgiZGF0ZSIsayk7aWYodm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJmEub3B0aW9ucy5taW5EYXRlLmNsb25lKCkuc2V0RGF5KDEpPmt8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiZhLm9wdGlvbnMubWF4RGF0ZS5jbG9uZSgpLnNldERheSgxKTxrKWYuYWRkQ2xhc3MoImNhbC1ub24tc2VsZWN0YWJsZSIpO2Vsc2UgZi5vbigiY2xpY2siLGEubGV2ZWxEb3duKTtkLTE9PWEudG9kYXkuZ2V0TW9udGgoKSYmYS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpPT1hLnRvZGF5LmdldEZ1bGxZZWFyKCkmJmYuYWRkQ2xhc3MoImNhbC10b2RheSIpO2QtMT09YS5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSYmCmEudmlld0RhdGUuZ2V0RnVsbFllYXIoKT09YS5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSYmZi5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIik7ZCUoYS5vcHRpb25zLnBvcnRyYWl0PzM6NCl8fDEyPT1kfHwoYz1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSl9YS5yZW5kZXJBZnRlcigpfTthLnJlbmRlckRlY2FkZT1mdW5jdGlvbigpe2EubGFiZWwucmVtb3ZlQ2xhc3MoImNhbC1jbGlja2FibGUiKTthLnZpZXc9ImRlY2FkZSI7YS5jdXJyZW50Q29udGFpbmVyLmFkZENsYXNzKCJjYWwteWVhci1kZWNhZGUgIisoYS5vcHRpb25zLnBvcnRyYWl0PyJjYWwtcG9ydHJhaXQiOiJjYWwtbGFuZHNjYXBlIikpO3ZhciBiO2ZvcihiPXBhcnNlSW50KGEudmlld0RhdGUuZm9ybWF0KCJ5eXl5IikpO2IlMTI7KWItLTthLmxhYmVsLmh0bWwoYisiICYjMTUwOyAiKyhiKzExKSk7Zm9yKHZhciBjPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpLApkPWI7ZDxiKzEyO2QrKyl7dmFyIGY9ZSgiPGRpdj48L2Rpdj4iKS5odG1sKGQpLmFwcGVuZFRvKGMpLGs9YS52aWV3RGF0ZS5jbG9uZSgpLnNldFllYXIoZCk7Zi5kYXRhKCJkYXRlIixrKTtpZih2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmYS5vcHRpb25zLm1pbkRhdGUuZ2V0RnVsbFllYXIoKT5kfHx2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmYS5vcHRpb25zLm1heERhdGUuZ2V0RnVsbFllYXIoKTxkKWYuYWRkQ2xhc3MoImNhbC1ub24tc2VsZWN0YWJsZSIpO2Vsc2UgZi5vbigiY2xpY2siLGEubGV2ZWxEb3duKTtkPT1hLnRvZGF5LmdldEZ1bGxZZWFyKCkmJmYuYWRkQ2xhc3MoImNhbC10b2RheSIpO2Q9PWEuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkmJmYuYWRkQ2xhc3MoImNhbC1zZWxlY3RlZCIpOyhkKzEpJShhLm9wdGlvbnMucG9ydHJhaXQ\/Mzo0KXx8ZD09YisxMXx8KGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lcikpfWEucmVuZGVyQWZ0ZXIoKX07CmEucmVuZGVyQWZ0ZXI9ZnVuY3Rpb24oKXtmb3IodmFyIGI9YS5jdXJyZW50Q29udGFpbmVyLmZpbmQoIi5jYWwtcm93IiksYz0wO2M8Yi5sZW5ndGg7YysrKWUoYltjXSkuYWRkQ2xhc3MoImNhbC1yb3cgIisiYWJjZGVmZyIuc3BsaXQoIiIpW2NdKyIgIisoYyUyPyJjYWwtZXZlbiI6ImNhbC1vZGQiKSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEub3B0aW9ucy5vblZpZXdDaGFuZ2UpYS5vcHRpb25zLm9uVmlld0NoYW5nZShhLnZpZXcsYS5zZWxlY3RlZERhdGUsYS52aWV3RGF0ZSl9O2Euc2xpZGVMZWZ0PWZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nJiYoYS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuc3RvcCgpLGEudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLnN0b3AoKSxhLnRyYW5zaXRpb25pbmc9ITEpO2Euc3dpdGNoQ29udGFpbmVycygpO3N3aXRjaChhLnZpZXcpe2Nhc2UgIm1vbnRoIjphLnZpZXdEYXRlLmFkZCgiTSIsLTEpO2JyZWFrO2Nhc2UgInllYXIiOmEudmlld0RhdGUuYWRkKCJ5IiwKLTEpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS52aWV3RGF0ZS5zZXRGdWxsWWVhcihhLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCktMTIpfWEucmVuZGVyKCk7YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5jc3Moe2xlZnQ6LWEuY3VycmVudENvbnRhaW5lci53aWR0aCgpfSkuYW5pbWF0ZSh7bGVmdDowfSxhLm9wdGlvbnMuc2xpZGVEdXJhdGlvbik7YS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuYW5pbWF0ZSh7bGVmdDphLnRlbXBDb250YWluZXIud2lkdGgoKX0sYS5vcHRpb25zLnNsaWRlRHVyYXRpb24sZnVuY3Rpb24oKXtlKHRoaXMpLmNzcyh7bGVmdDowfSk7YS50cmFuc2l0aW9uaW5nPSExfSl9O2Euc2xpZGVSaWdodD1mdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZyYmKGEudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLnN0b3AoKSxhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50cmFuc2l0aW9uaW5nPSExKTthLnN3aXRjaENvbnRhaW5lcnMoKTsKc3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEudmlld0RhdGUuYWRkKCJNIiwxKTticmVhaztjYXNlICJ5ZWFyIjphLnZpZXdEYXRlLmFkZCgieSIsMSk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnZpZXdEYXRlLnNldEZ1bGxZZWFyKGEudmlld0RhdGUuZ2V0RnVsbFllYXIoKSsxMil9YS5yZW5kZXIoKTthLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmNzcyh7bGVmdDphLmN1cnJlbnRDb250YWluZXIud2lkdGgoKX0pLmFuaW1hdGUoe2xlZnQ6MH0sYS5vcHRpb25zLnNsaWRlRHVyYXRpb24pO2EudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLmFuaW1hdGUoe2xlZnQ6LWEudGVtcENvbnRhaW5lci53aWR0aCgpfSxhLm9wdGlvbnMuc2xpZGVEdXJhdGlvbixmdW5jdGlvbigpe2UodGhpcykuY3NzKHtsZWZ0OjB9KTthLnRyYW5zaXRpb25pbmc9ITF9KX07YS5sZXZlbERvd249ZnVuY3Rpb24oYil7aWYoIWEudHJhbnNpdGlvbmluZyl7YS5zd2l0Y2hDb250YWluZXJzKCk7CmEudmlld0RhdGU9ZShiLnRhcmdldCkuZGF0YSgiZGF0ZSIpO3N3aXRjaChhLnZpZXcpe2Nhc2UgInllYXIiOmEucmVuZGVyTW9udGgoKTticmVhaztjYXNlICJkZWNhZGUiOmEucmVuZGVyWWVhcigpfWEudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuZmFkZUluKGEub3B0aW9ucy5mYWRlRHVyYXRpb24sZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmc9ITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2EubGV2ZWxVcD1mdW5jdGlvbigpe2lmKCJkZWNhZGUiIT1hLnZpZXcmJiFhLnRyYW5zaXRpb25pbmcpe2Euc3dpdGNoQ29udGFpbmVycygpO3N3aXRjaChhLnZpZXcpe2Nhc2UgIm1vbnRoIjphLnJlbmRlclllYXIoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlckRlY2FkZSgpfWEudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuZmFkZUluKGEub3B0aW9ucy5mYWRlRHVyYXRpb24sZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmc9CiExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLmNoYW5nZVZpZXc9ZnVuY3Rpb24oYil7aWYoIWEudHJhbnNpdGlvbmluZyYmYiE9YS52aWV3KXthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYil7Y2FzZSAibW9udGgiOmEucmVuZGVyTW9udGgoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlclllYXIoKTticmVhaztjYXNlICJkZWNhZGUiOmEucmVuZGVyRGVjYWRlKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0hMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS51cGRhdGVNaW5EYXRlPWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcmJihiPW5lYkRhdGVGbi5wYXJzZVN0cmluZyhiKSxudWxsIT09Yikpe2Eub3B0aW9ucy5taW5EYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUoYik7CmEuc3dpdGNoQ29udGFpbmVycygpO3N3aXRjaChhLnZpZXcpe2Nhc2UgIm1vbnRoIjphLnJlbmRlck1vbnRoKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlckRlY2FkZSgpfWEudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuZmFkZUluKGEub3B0aW9ucy5mYWRlRHVyYXRpb24sZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmc9ITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2EudXBkYXRlTWF4RGF0ZT1mdW5jdGlvbihiKXtpZighYS50cmFuc2l0aW9uaW5nJiYoYj1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYiksbnVsbCE9PWIpKXthLm9wdGlvbnMubWF4RGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKGIpO2Euc3dpdGNoQ29udGFpbmVycygpO3N3aXRjaChhLnZpZXcpe2Nhc2UgIm1vbnRoIjphLnJlbmRlck1vbnRoKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJZZWFyKCk7CmJyZWFrO2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLnN3aXRjaENvbnRhaW5lcnM9ZnVuY3Rpb24oKXthLmN1cnJlbnRDb250YWluZXI9YS5jdXJyZW50Q29udGFpbmVyLmhhc0NsYXNzKCJhIik\/YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmIiKTphLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYSIpO2EudGVtcENvbnRhaW5lcj1hLnRlbXBDb250YWluZXIuaGFzQ2xhc3MoImEiKT9hLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYiIpOmEuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5hIik7YS5jdXJyZW50Q29udGFpbmVyLmVtcHR5KCkucmVtb3ZlQ2xhc3MoImNhbC1tb250aCBjYWwteWVhci1kZWNhZGUgIisKKGEub3B0aW9ucy5wb3J0cmFpdD8iY2FsLXBvcnRyYWl0IjoiY2FsLWxhbmRzY2FwZSIpKS5jc3Moe29wYWNpdHk6MSxkaXNwbGF5OiJibG9jayIsInotaW5kZXgiOjk5OX0pO2EudGVtcENvbnRhaW5lci5jc3MoInotaW5kZXgiLDk5OCk7YS5sYWJlbC5hZGRDbGFzcygiY2FsLWNsaWNrYWJsZSIpO2EuYXJyb3dMZWZ0LmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKTthLmFycm93UmlnaHQuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpfTthLnBvc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIGI9YS50YXJnZXQuZ2V0Q29vcmRpbmF0ZXMoKTtzd2l0Y2goYS5vcHRpb25zLmFsaWduWCl7Y2FzZSAibGVmdCI6dmFyIGM9Yi5sZWZ0O2JyZWFrO2Nhc2UgIm1pZGRsZSI6Yz1iLmxlZnQrYi53aWR0aC8yLWEuZWxlbWVudC53aWR0aCgpLzI7YnJlYWs7ZGVmYXVsdDpjYXNlICJyaWdodCI6Yz1iLmxlZnQrYi53aWR0aH1zd2l0Y2goYS5vcHRpb25zLmFsaWduWSl7Y2FzZSAiYm90dG9tIjpiPWIudG9wKwpiLmhlaWdodDticmVhaztjYXNlICJ0b3AiOmI9Yi50b3AtYS5lbGVtZW50LmdldEhlaWdodCgpO2JyZWFrO2RlZmF1bHQ6Y2FzZSAiY2VpbGluZyI6Yj1iLnRvcH1jKz1wYXJzZUludChhLm9wdGlvbnMub2Zmc2V0WCk7Yis9cGFyc2VJbnQoYS5vcHRpb25zLm9mZnNldFkpO2EuZWxlbWVudC5jc3Moe3RvcDpiLGxlZnQ6Y30pfTthLnNob3c9ZnVuY3Rpb24oKXthLnZpc2libGV8fGEub3B0aW9ucy5hbHdheXNTaG93fHwoYS52aXNpYmxlPSEwLGEuZWxlbWVudC5mYWRlSW4oYS5vcHRpb25zLnRvZ2dsZUR1cmF0aW9uKSxhLnBvc2l0aW9uKCkpfTthLmhpZGU9ZnVuY3Rpb24oKXthLnZpc2libGUmJiFhLm9wdGlvbnMuYWx3YXlzU2hvdyYmKGEudmlzaWJsZT0hMSxhLmVsZW1lbnQuZmFkZU91dChhLm9wdGlvbnMudG9nZ2xlRHVyYXRpb24pKX07YS50b2dnbGU9ZnVuY3Rpb24oKXthLnZpc2libGU\/YS5oaWRlKCk6YS5zaG93KCl9O2Eub3V0c2lkZUNsaWNrPWZ1bmN0aW9uKGIpe2lmKGEudmlzaWJsZSl7dmFyIGM9CmEuZWxlbWVudC5nZXRDb29yZGluYXRlcygpLGQ9YS50YXJnZXQuZ2V0Q29vcmRpbmF0ZXMoKTsoYi5wYWdlWDxjLmxlZnR8fGIucGFnZVg+Yy5sZWZ0K2Mud2lkdGh8fGIucGFnZVk8Yy50b3B8fGIucGFnZVk+Yy50b3ArYy5oZWlnaHQpJiYoYi5wYWdlWDxkLmxlZnR8fGIucGFnZVg+ZC5sZWZ0K2Qud2lkdGh8fGIucGFnZVk8ZC50b3B8fGIucGFnZVk+ZC50b3ArZC5oZWlnaHQpJiZhLmhpZGUoKX19O2EucGljaz1mdW5jdGlvbihiKXt2b2lkIDAhPT1iJiYoYS5zZWxlY3RlZERhdGU9ZShiLnRhcmdldCkuZGF0YSgiZGF0ZSIpLGEuZWxlbWVudC5maW5kKCIuY2FsLXNlbGVjdGVkIikucmVtb3ZlQ2xhc3MoImNhbC1zZWxlY3RlZCIpLGUoYi50YXJnZXQpLmFkZENsYXNzKCJjYWwtc2VsZWN0ZWQiKSxlKGIudGFyZ2V0KS5oYXNDbGFzcygiY2FsLW91dHNpZGUiKT9hLm9wdGlvbnMuYWx3YXlzU2hvdz8wPGEuc2VsZWN0ZWREYXRlLmRpZmYoYS52aWV3RGF0ZSk\/YS5zbGlkZUxlZnQoKToKYS5zbGlkZVJpZ2h0KCk6KGEudmlld0RhdGU9YS5zZWxlY3RlZERhdGUuY2xvbmUoKS5zZXREYXkoMSksc2V0VGltZW91dChhLnJlbmRlciwzMDApKTpzZXRUaW1lb3V0KGEuaGlkZSwxNTApKTtiPWEuZm9ybWF0KGEuc2VsZWN0ZWREYXRlKTtiPWUoIjx0ZXh0YXJlYSAvPiIpLmh0bWwoYikudGV4dCgpO2lmKCFhLm9wdGlvbnMuaW5qZWN0SW5zaWRlVGFyZ2V0KXN3aXRjaChhLnRhcmdldC5wcm9wKCJ0YWdOYW1lIikudG9Mb3dlckNhc2UoKSl7Y2FzZSAiaW5wdXQiOmEudGFyZ2V0LnZhbChiKTticmVhaztkZWZhdWx0OmEudGFyZ2V0Lmh0bWwoYil9dm9pZCAwIT09YS5oaWRkZW5JbnB1dCYmYS5oaWRkZW5JbnB1dC5zZXQoInZhbHVlIixhLmZvcm1hdChhLnNlbGVjdGVkRGF0ZSxhLm9wdGlvbnMuaGlkZGVuSW5wdXRGb3JtYXQpKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5vcHRpb25zLm9uU2VsZWN0KWEub3B0aW9ucy5vblNlbGVjdChhLnNlbGVjdGVkRGF0ZSk7cmV0dXJuIGF9OwphLmZvcm1hdD1mdW5jdGlvbihiLGMpe3ZvaWQgMD09PWMmJihjPXRoaXMub3B0aW9ucy5mb3JtYXQpO2lmKHZvaWQgMCE9PWIpcmV0dXJuIGM9Yy5yZXBsYWNlKC8lKFthLXolXSkvZ2ksZnVuY3Rpb24oZCxmKXtzd2l0Y2goZil7Y2FzZSAiRCI6cmV0dXJuIGIuZ2V0KCJkYXRlIik7Y2FzZSAibiI6cmV0dXJuIGIuZ2V0KCJtbyIpKzE7Y2FzZSAidCI6cmV0dXJuIHBhcnNlSW50KGIuZ2V0VGltZSgpLzFFMyl9cmV0dXJuIiUiK2Z9KSxiLmZvcm1hdChjKX07YS5vbktleURvd249ZnVuY3Rpb24oYil7aWYoYS5vcHRpb25zLmtleU5hdmlnYXRpb24pe3ZhciBjPWEuc2VsZWN0ZWREYXRlLmNsb25lKCksZD0hMCxmPSExO3N3aXRjaChiLndoaWNoKXtjYXNlIDM3OmMuYWRkKCJkIiwtMSk7Zj0hMDtkPSExO2JyZWFrO2Nhc2UgMzk6Yy5hZGQoImQiLDEpO2Y9ITA7YnJlYWs7Y2FzZSAzODpjLmFkZCgiTSIsLTEpO2Y9ITA7ZD0hMTticmVhaztjYXNlIDQwOmMuYWRkKCJNIiwxKTtmPSEwO2JyZWFrOwpjYXNlIDk6c2V0VGltZW91dChhLmhpZGUsMTUwKX1mJiYoYz1hLmNvcnJlY3REYXRlKGMsZCksMCE9PWEuc2VsZWN0ZWREYXRlLmRpZmYoYykmJmEuc2V0RGF0ZShjKSl9aWYoYS5vcHRpb25zLmRpc2FsbG93VXNlcklucHV0KXJldHVybiExfTthLm9uS2V5VXA9ZnVuY3Rpb24oKXsvXlxkezR9LVxkezJ9LVxkezJ9JC8udGVzdChhLnRhcmdldC52YWwoKSkmJihhLnNldERhdGUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEudGFyZ2V0LnZhbCgpKSksYS50YXJnZXQucmVtb3ZlQ2xhc3MoImludmFsaWRJbnB1dCB0b29sdGlwIikucmVtb3ZlQXR0cigidGl0bGUiKSk7L15cZHsyfS0vLnRlc3QoYS50YXJnZXQudmFsKCkpfHwvXlxkezR9LSgxWzMtOV18KFsyLTldWzAtOV0pKS8udGVzdChhLnRhcmdldC52YWwoKSk\/YS50YXJnZXQuYWRkQ2xhc3MoImludmFsaWRJbnB1dCIpLmF0dHIoInRpdGxlIixlLm5lYkxhbmcuaW52YWxpZERhdGVGb3JtYXQpLnRvb2x0aXAoe3Rvb2x0aXBDbGFzczoiYWxidW1fdG9vbHRpcCIsCnBvc2l0aW9uOntteToiY2VudGVyIHRvcCszMCIsYXQ6IiJ9LHNob3c6e2VmZmVjdDoiZmFkZUluIixkdXJhdGlvbjo1MDB9LGNsb3NlOmZ1bmN0aW9uKCl7ZSh0aGlzKS5yZW1vdmUoKX19KTphLnRhcmdldC5yZW1vdmVDbGFzcygiaW52YWxpZElucHV0IHRvb2x0aXAiKS5yZW1vdmVBdHRyKCJ0aXRsZSIpfTthLmNvcnJlY3REYXRlPWZ1bmN0aW9uKGIsYyl7dm9pZCAwPT09YyYmKGM9ITApO3ZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiYwPGIuZGlmZihhLm9wdGlvbnMubWluRGF0ZSk\/Yj1hLm9wdGlvbnMubWluRGF0ZS5jbG9uZSgpOnZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiYwPmIuZGlmZihhLm9wdGlvbnMubWF4RGF0ZSkmJihiPWEub3B0aW9ucy5tYXhEYXRlLmNsb25lKCkpO2Zvcih2YXIgZD0wO3ZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZFdlZWtkYXlzJiZhLm9wdGlvbnMuZXhjbHVkZWRXZWVrZGF5cy5jb250YWlucyhiLmZvcm1hdCgiRSIpLnRvSW50KCkpfHwKdm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJjA8Yi5kaWZmKGEub3B0aW9ucy5taW5EYXRlKXx8dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJjA+Yi5kaWZmKGEub3B0aW9ucy5tYXhEYXRlKXx8dm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMmJmEub3B0aW9ucy5leGNsdWRlZERhdGVzLmNvbnRhaW5zKGEuZm9ybWF0KGIsIiV0IikpOyl7aWYoMzE9PWQpYz0hYztlbHNlIGlmKDYyPT1kKXtiPWEub3B0aW9ucy5taW5EYXRlLmNsb25lKCk7YnJlYWt9Yz9iLmFkZCgiZCIsMSk6Yi5hZGQoImQiLC0xKTtkKyt9cmV0dXJuIGJ9O2Euc2V0RGF0ZT1mdW5jdGlvbihiLGMpe3ZvaWQgMD09PWMmJihjPSEwKTtiPW5lYkRhdGVGbi5jbGVhclRpbWUoImRhdGUiPT10eXBlb2YgYj9iOm5lYkRhdGVGbi5wYXJzZVN0cmluZyhiKSk7bnVsbCE9PWImJihhLnNlbGVjdGVkRGF0ZT1hLmNvcnJlY3REYXRlKGIpLGEudmlld0RhdGU9YS5zZWxlY3RlZERhdGUuY2xvbmUoKS5zZXREYXkoMSksCmEucmVuZGVyKCksYyYmYS5waWNrKCkpO3JldHVybiBhfTthLmdldERhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5zZWxlY3RlZERhdGV9O2EuaW5pdCgpfTtlLmZuLm5lYkNhbD1mdW5jdGlvbihoLGcpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih2b2lkIDA9PT1lKHRoaXMpLmRhdGEoIm5lYkNhbCIpKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGh8fCJvYmplY3QiPT10eXBlb2YgaCl7dmFyIGw9bmV3IGUubmViQ2FsKHRoaXMsaCk7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiLGwpfX1lbHNlIHN3aXRjaChoKXtjYXNlICJjaGFuZ2VWaWV3IjppZigidW5kZWZpbmVkIj09dHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS5jaGFuZ2VWaWV3KGcpO2JyZWFrO2Nhc2UgIm1pbkRhdGUiOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnVwZGF0ZU1pbkRhdGUoZyk7YnJlYWs7Y2FzZSAibWF4RGF0ZSI6aWYoInVuZGVmaW5lZCI9PQp0eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnVwZGF0ZU1heERhdGUoZyk7YnJlYWs7Y2FzZSAic2V0RGF0ZSI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikuc2V0RGF0ZShnKTticmVhaztjYXNlICJyZXBvc2l0aW9uIjplKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnBvc2l0aW9uKCl9fSl9O2UuZm4uZ2V0Q29vcmRpbmF0ZXM9ZnVuY3Rpb24oaCl7aD1lKHRoaXMpLm9mZnNldCgpO3ZhciBnPWUodGhpcykud2lkdGgoKSxsPWUodGhpcykuaGVpZ2h0KCksYT1lKHdpbmRvdykud2lkdGgoKS1oLmxlZnQtZyxiPWUod2luZG93KS5oZWlnaHQoKS1oLnRvcC1sO3JldHVybnt0b3A6aC50b3AsbGVmdDpoLmxlZnQsd2lkdGg6ZyxoZWlnaHQ6bCxyaWdodDphLGJvdHRvbTpifX19KShqUXVlcnkpOwovKiogL2pzL3Z1ZS92dWUubWluLmpzICoqLwovKiENCiAqIFZ1ZS5qcyB2Mi42LjExDQogKiAoYykgMjAxNC0yMDE5IEV2YW4gWW91DQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuDQogKi8NCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKHQpOihlPWV8fHNlbGYpLlZ1ZT10KCl9KHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9T2JqZWN0LmZyZWV6ZSh7fSk7ZnVuY3Rpb24gdChlKXtyZXR1cm4gbnVsbD09ZX1mdW5jdGlvbiBuKGUpe3JldHVybiBudWxsIT1lfWZ1bmN0aW9uIHIoZSl7cmV0dXJuITA9PT1lfWZ1bmN0aW9uIGkoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwibnVtYmVyIj09dHlwZW9mIGV8fCJzeW1ib2wiPT10eXBlb2YgZXx8ImJvb2xlYW4iPT10eXBlb2YgZX1mdW5jdGlvbiBvKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfXZhciBhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gcyhlKXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PWEuY2FsbChlKX1mdW5jdGlvbiBjKGUpe3ZhciB0PXBhcnNlRmxvYXQoU3RyaW5nKGUpKTtyZXR1cm4gdD49MCYmTWF0aC5mbG9vcih0KT09PXQmJmlzRmluaXRlKGUpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIG4oZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnRoZW4mJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNhdGNofWZ1bmN0aW9uIGwoZSl7cmV0dXJuIG51bGw9PWU\/IiI6QXJyYXkuaXNBcnJheShlKXx8cyhlKSYmZS50b1N0cmluZz09PWE\/SlNPTi5zdHJpbmdpZnkoZSxudWxsLDIpOlN0cmluZyhlKX1mdW5jdGlvbiBmKGUpe3ZhciB0PXBhcnNlRmxvYXQoZSk7cmV0dXJuIGlzTmFOKHQpP2U6dH1mdW5jdGlvbiBwKGUsdCl7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUobnVsbCkscj1lLnNwbGl0KCIsIiksaT0wO2k8ci5sZW5ndGg7aSsrKW5bcltpXV09ITA7cmV0dXJuIHQ\/ZnVuY3Rpb24oZSl7cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXX06ZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV19fXZhciBkPXAoInNsb3QsY29tcG9uZW50IiwhMCksdj1wKCJrZXkscmVmLHNsb3Qsc2xvdC1zY29wZSxpcyIpO2Z1bmN0aW9uIGgoZSx0KXtpZihlLmxlbmd0aCl7dmFyIG49ZS5pbmRleE9mKHQpO2lmKG4+LTEpcmV0dXJuIGUuc3BsaWNlKG4sMSl9fXZhciBtPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24geShlLHQpe3JldHVybiBtLmNhbGwoZSx0KX1mdW5jdGlvbiBnKGUpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0W25dfHwodFtuXT1lKG4pKX19dmFyIF89Ly0oXHcpL2csYj1nKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoXyxmdW5jdGlvbihlLHQpe3JldHVybiB0P3QudG9VcHBlckNhc2UoKToiIn0pfSksJD1nKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9KSx3PS9cQihbQS1aXSkvZyxDPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSh3LCItJDEiKS50b0xvd2VyQ2FzZSgpfSk7dmFyIHg9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ\/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5iaW5kKHQpfTpmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gcj9yPjE\/ZS5hcHBseSh0LGFyZ3VtZW50cyk6ZS5jYWxsKHQsbik6ZS5jYWxsKHQpfXJldHVybiBuLl9sZW5ndGg9ZS5sZW5ndGgsbn07ZnVuY3Rpb24gayhlLHQpe3Q9dHx8MDtmb3IodmFyIG49ZS5sZW5ndGgtdCxyPW5ldyBBcnJheShuKTtuLS07KXJbbl09ZVtuK3RdO3JldHVybiByfWZ1bmN0aW9uIEEoZSx0KXtmb3IodmFyIG4gaW4gdCllW25dPXRbbl07cmV0dXJuIGV9ZnVuY3Rpb24gTyhlKXtmb3IodmFyIHQ9e30sbj0wO248ZS5sZW5ndGg7bisrKWVbbl0mJkEodCxlW25dKTtyZXR1cm4gdH1mdW5jdGlvbiBTKGUsdCxuKXt9dmFyIFQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiExfSxFPWZ1bmN0aW9uKGUpe3JldHVybiBlfTtmdW5jdGlvbiBOKGUsdCl7aWYoZT09PXQpcmV0dXJuITA7dmFyIG49byhlKSxyPW8odCk7aWYoIW58fCFyKXJldHVybiFuJiYhciYmU3RyaW5nKGUpPT09U3RyaW5nKHQpO3RyeXt2YXIgaT1BcnJheS5pc0FycmF5KGUpLGE9QXJyYXkuaXNBcnJheSh0KTtpZihpJiZhKXJldHVybiBlLmxlbmd0aD09PXQubGVuZ3RoJiZlLmV2ZXJ5KGZ1bmN0aW9uKGUsbil7cmV0dXJuIE4oZSx0W25dKX0pO2lmKGUgaW5zdGFuY2VvZiBEYXRlJiZ0IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gZS5nZXRUaW1lKCk9PT10LmdldFRpbWUoKTtpZihpfHxhKXJldHVybiExO3ZhciBzPU9iamVjdC5rZXlzKGUpLGM9T2JqZWN0LmtleXModCk7cmV0dXJuIHMubGVuZ3RoPT09Yy5sZW5ndGgmJnMuZXZlcnkoZnVuY3Rpb24obil7cmV0dXJuIE4oZVtuXSx0W25dKX0pfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBqKGUsdCl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoTihlW25dLHQpKXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIEQoZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX12YXIgTD0iZGF0YS1zZXJ2ZXItcmVuZGVyZWQiLE09WyJjb21wb25lbnQiLCJkaXJlY3RpdmUiLCJmaWx0ZXIiXSxJPVsiYmVmb3JlQ3JlYXRlIiwiY3JlYXRlZCIsImJlZm9yZU1vdW50IiwibW91bnRlZCIsImJlZm9yZVVwZGF0ZSIsInVwZGF0ZWQiLCJiZWZvcmVEZXN0cm95IiwiZGVzdHJveWVkIiwiYWN0aXZhdGVkIiwiZGVhY3RpdmF0ZWQiLCJlcnJvckNhcHR1cmVkIiwic2VydmVyUHJlZmV0Y2giXSxGPXtvcHRpb25NZXJnZVN0cmF0ZWdpZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxzaWxlbnQ6ITEscHJvZHVjdGlvblRpcDohMSxkZXZ0b29sczohMSxwZXJmb3JtYW5jZTohMSxlcnJvckhhbmRsZXI6bnVsbCx3YXJuSGFuZGxlcjpudWxsLGlnbm9yZWRFbGVtZW50czpbXSxrZXlDb2RlczpPYmplY3QuY3JlYXRlKG51bGwpLGlzUmVzZXJ2ZWRUYWc6VCxpc1Jlc2VydmVkQXR0cjpULGlzVW5rbm93bkVsZW1lbnQ6VCxnZXRUYWdOYW1lc3BhY2U6UyxwYXJzZVBsYXRmb3JtVGFnTmFtZTpFLG11c3RVc2VQcm9wOlQsYXN5bmM6ITAsX2xpZmVjeWNsZUhvb2tzOkl9LFA9L2EtekEtWlx1MDBCN1x1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDM3RFx1MDM3Ri1cdTFGRkZcdTIwMEMtXHUyMDBEXHUyMDNGLVx1MjA0MFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZELztmdW5jdGlvbiBSKGUsdCxuLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohIXIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9dmFyIEg9bmV3IFJlZ0V4cCgiW14iK1Auc291cmNlKyIuJF9cXGRdIik7dmFyIEIsVT0iX19wcm90b19fImlue30sej0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyxWPSJ1bmRlZmluZWQiIT10eXBlb2YgV1hFbnZpcm9ubWVudCYmISFXWEVudmlyb25tZW50LnBsYXRmb3JtLEs9ViYmV1hFbnZpcm9ubWVudC5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpLEo9eiYmd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSxxPUomJi9tc2llfHRyaWRlbnQvLnRlc3QoSiksVz1KJiZKLmluZGV4T2YoIm1zaWUgOS4wIik+MCxaPUomJkouaW5kZXhPZigiZWRnZS8iKT4wLEc9KEomJkouaW5kZXhPZigiYW5kcm9pZCIpLEomJi9pcGhvbmV8aXBhZHxpcG9kfGlvcy8udGVzdChKKXx8ImlvcyI9PT1LKSxYPShKJiYvY2hyb21lXC9cZCsvLnRlc3QoSiksSiYmL3BoYW50b21qcy8udGVzdChKKSxKJiZKLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pKSxZPXt9LndhdGNoLFE9ITE7aWYoeil0cnl7dmFyIGVlPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlZSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe1E9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QtcGFzc2l2ZSIsbnVsbCxlZSl9Y2F0Y2goZSl7fXZhciB0ZT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1CJiYoQj0heiYmIVYmJiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsJiYoZ2xvYmFsLnByb2Nlc3MmJiJzZXJ2ZXIiPT09Z2xvYmFsLnByb2Nlc3MuZW52LlZVRV9FTlYpKSxCfSxuZT16JiZ3aW5kb3cuX19WVUVfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztmdW5jdGlvbiByZShlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmL25hdGl2ZSBjb2RlLy50ZXN0KGUudG9TdHJpbmcoKSl9dmFyIGllLG9lPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZyZShTeW1ib2wpJiYidW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJnJlKFJlZmxlY3Qub3duS2V5cyk7aWU9InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQmJnJlKFNldCk\/U2V0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuc2V0PU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIGUucHJvdG90eXBlLmhhcz1mdW5jdGlvbihlKXtyZXR1cm4hMD09PXRoaXMuc2V0W2VdfSxlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7dGhpcy5zZXRbZV09ITB9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zZXQ9T2JqZWN0LmNyZWF0ZShudWxsKX0sZX0oKTt2YXIgYWU9UyxzZT0wLGNlPWZ1bmN0aW9uKCl7dGhpcy5pZD1zZSsrLHRoaXMuc3Vicz1bXX07Y2UucHJvdG90eXBlLmFkZFN1Yj1mdW5jdGlvbihlKXt0aGlzLnN1YnMucHVzaChlKX0sY2UucHJvdG90eXBlLnJlbW92ZVN1Yj1mdW5jdGlvbihlKXtoKHRoaXMuc3VicyxlKX0sY2UucHJvdG90eXBlLmRlcGVuZD1mdW5jdGlvbigpe2NlLnRhcmdldCYmY2UudGFyZ2V0LmFkZERlcCh0aGlzKX0sY2UucHJvdG90eXBlLm5vdGlmeT1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLnN1YnMuc2xpY2UoKSx0PTAsbj1lLmxlbmd0aDt0PG47dCsrKWVbdF0udXBkYXRlKCl9LGNlLnRhcmdldD1udWxsO3ZhciB1ZT1bXTtmdW5jdGlvbiBsZShlKXt1ZS5wdXNoKGUpLGNlLnRhcmdldD1lfWZ1bmN0aW9uIGZlKCl7dWUucG9wKCksY2UudGFyZ2V0PXVlW3VlLmxlbmd0aC0xXX12YXIgcGU9ZnVuY3Rpb24oZSx0LG4scixpLG8sYSxzKXt0aGlzLnRhZz1lLHRoaXMuZGF0YT10LHRoaXMuY2hpbGRyZW49bix0aGlzLnRleHQ9cix0aGlzLmVsbT1pLHRoaXMubnM9dm9pZCAwLHRoaXMuY29udGV4dD1vLHRoaXMuZm5Db250ZXh0PXZvaWQgMCx0aGlzLmZuT3B0aW9ucz12b2lkIDAsdGhpcy5mblNjb3BlSWQ9dm9pZCAwLHRoaXMua2V5PXQmJnQua2V5LHRoaXMuY29tcG9uZW50T3B0aW9ucz1hLHRoaXMuY29tcG9uZW50SW5zdGFuY2U9dm9pZCAwLHRoaXMucGFyZW50PXZvaWQgMCx0aGlzLnJhdz0hMSx0aGlzLmlzU3RhdGljPSExLHRoaXMuaXNSb290SW5zZXJ0PSEwLHRoaXMuaXNDb21tZW50PSExLHRoaXMuaXNDbG9uZWQ9ITEsdGhpcy5pc09uY2U9ITEsdGhpcy5hc3luY0ZhY3Rvcnk9cyx0aGlzLmFzeW5jTWV0YT12b2lkIDAsdGhpcy5pc0FzeW5jUGxhY2Vob2xkZXI9ITF9LGRlPXtjaGlsZDp7Y29uZmlndXJhYmxlOiEwfX07ZGUuY2hpbGQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29tcG9uZW50SW5zdGFuY2V9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHBlLnByb3RvdHlwZSxkZSk7dmFyIHZlPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPSIiKTt2YXIgdD1uZXcgcGU7cmV0dXJuIHQudGV4dD1lLHQuaXNDb21tZW50PSEwLHR9O2Z1bmN0aW9uIGhlKGUpe3JldHVybiBuZXcgcGUodm9pZCAwLHZvaWQgMCx2b2lkIDAsU3RyaW5nKGUpKX1mdW5jdGlvbiBtZShlKXt2YXIgdD1uZXcgcGUoZS50YWcsZS5kYXRhLGUuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc2xpY2UoKSxlLnRleHQsZS5lbG0sZS5jb250ZXh0LGUuY29tcG9uZW50T3B0aW9ucyxlLmFzeW5jRmFjdG9yeSk7cmV0dXJuIHQubnM9ZS5ucyx0LmlzU3RhdGljPWUuaXNTdGF0aWMsdC5rZXk9ZS5rZXksdC5pc0NvbW1lbnQ9ZS5pc0NvbW1lbnQsdC5mbkNvbnRleHQ9ZS5mbkNvbnRleHQsdC5mbk9wdGlvbnM9ZS5mbk9wdGlvbnMsdC5mblNjb3BlSWQ9ZS5mblNjb3BlSWQsdC5hc3luY01ldGE9ZS5hc3luY01ldGEsdC5pc0Nsb25lZD0hMCx0fXZhciB5ZT1BcnJheS5wcm90b3R5cGUsZ2U9T2JqZWN0LmNyZWF0ZSh5ZSk7WyJwdXNoIiwicG9wIiwic2hpZnQiLCJ1bnNoaWZ0Iiwic3BsaWNlIiwic29ydCIsInJldmVyc2UiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXllW2VdO1IoZ2UsZSxmdW5jdGlvbigpe2Zvcih2YXIgbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyluW3JdPWFyZ3VtZW50c1tyXTt2YXIgaSxvPXQuYXBwbHkodGhpcyxuKSxhPXRoaXMuX19vYl9fO3N3aXRjaChlKXtjYXNlInB1c2giOmNhc2UidW5zaGlmdCI6aT1uO2JyZWFrO2Nhc2Uic3BsaWNlIjppPW4uc2xpY2UoMil9cmV0dXJuIGkmJmEub2JzZXJ2ZUFycmF5KGkpLGEuZGVwLm5vdGlmeSgpLG99KX0pO3ZhciBfZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhnZSksYmU9ITA7ZnVuY3Rpb24gJGUoZSl7YmU9ZX12YXIgd2U9ZnVuY3Rpb24oZSl7dmFyIHQ7dGhpcy52YWx1ZT1lLHRoaXMuZGVwPW5ldyBjZSx0aGlzLnZtQ291bnQ9MCxSKGUsIl9fb2JfXyIsdGhpcyksQXJyYXkuaXNBcnJheShlKT8oVT8odD1nZSxlLl9fcHJvdG9fXz10KTpmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1uW3JdO1IoZSxvLHRbb10pfX0oZSxnZSxfZSksdGhpcy5vYnNlcnZlQXJyYXkoZSkpOnRoaXMud2FsayhlKX07ZnVuY3Rpb24gQ2UoZSx0KXt2YXIgbjtpZihvKGUpJiYhKGUgaW5zdGFuY2VvZiBwZSkpcmV0dXJuIHkoZSwiX19vYl9fIikmJmUuX19vYl9fIGluc3RhbmNlb2Ygd2U\/bj1lLl9fb2JfXzpiZSYmIXRlKCkmJihBcnJheS5pc0FycmF5KGUpfHxzKGUpKSYmT2JqZWN0LmlzRXh0ZW5zaWJsZShlKSYmIWUuX2lzVnVlJiYobj1uZXcgd2UoZSkpLHQmJm4mJm4udm1Db3VudCsrLG59ZnVuY3Rpb24geGUoZSx0LG4scixpKXt2YXIgbz1uZXcgY2UsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYoIWF8fCExIT09YS5jb25maWd1cmFibGUpe3ZhciBzPWEmJmEuZ2V0LGM9YSYmYS5zZXQ7cyYmIWN8fDIhPT1hcmd1bWVudHMubGVuZ3RofHwobj1lW3RdKTt2YXIgdT0haSYmQ2Uobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9cz9zLmNhbGwoZSk6bjtyZXR1cm4gY2UudGFyZ2V0JiYoby5kZXBlbmQoKSx1JiYodS5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheSh0KSYmZnVuY3Rpb24gZSh0KXtmb3IodmFyIG49dm9pZCAwLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspKG49dFtyXSkmJm4uX19vYl9fJiZuLl9fb2JfXy5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheShuKSYmZShuKX0odCkpKSx0fSxzZXQ6ZnVuY3Rpb24odCl7dmFyIHI9cz9zLmNhbGwoZSk6bjt0PT09cnx8dCE9dCYmciE9cnx8cyYmIWN8fChjP2MuY2FsbChlLHQpOm49dCx1PSFpJiZDZSh0KSxvLm5vdGlmeSgpKX19KX19ZnVuY3Rpb24ga2UoZSx0LG4pe2lmKEFycmF5LmlzQXJyYXkoZSkmJmModCkpcmV0dXJuIGUubGVuZ3RoPU1hdGgubWF4KGUubGVuZ3RoLHQpLGUuc3BsaWNlKHQsMSxuKSxuO2lmKHQgaW4gZSYmISh0IGluIE9iamVjdC5wcm90b3R5cGUpKXJldHVybiBlW3RdPW4sbjt2YXIgcj1lLl9fb2JfXztyZXR1cm4gZS5faXNWdWV8fHImJnIudm1Db3VudD9uOnI\/KHhlKHIudmFsdWUsdCxuKSxyLmRlcC5ub3RpZnkoKSxuKTooZVt0XT1uLG4pfWZ1bmN0aW9uIEFlKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSYmYyh0KSllLnNwbGljZSh0LDEpO2Vsc2V7dmFyIG49ZS5fX29iX187ZS5faXNWdWV8fG4mJm4udm1Db3VudHx8eShlLHQpJiYoZGVsZXRlIGVbdF0sbiYmbi5kZXAubm90aWZ5KCkpfX13ZS5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj0wO248dC5sZW5ndGg7bisrKXhlKGUsdFtuXSl9LHdlLnByb3RvdHlwZS5vYnNlcnZlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKUNlKGVbdF0pfTt2YXIgT2U9Ri5vcHRpb25NZXJnZVN0cmF0ZWdpZXM7ZnVuY3Rpb24gU2UoZSx0KXtpZighdClyZXR1cm4gZTtmb3IodmFyIG4scixpLG89b2U\/UmVmbGVjdC5vd25LZXlzKHQpOk9iamVjdC5rZXlzKHQpLGE9MDthPG8ubGVuZ3RoO2ErKykiX19vYl9fIiE9PShuPW9bYV0pJiYocj1lW25dLGk9dFtuXSx5KGUsbik\/ciE9PWkmJnMocikmJnMoaSkmJlNlKHIsaSk6a2UoZSxuLGkpKTtyZXR1cm4gZX1mdW5jdGlvbiBUZShlLHQsbil7cmV0dXJuIG4\/ZnVuY3Rpb24oKXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgdD90LmNhbGwobixuKTp0LGk9ImZ1bmN0aW9uIj09dHlwZW9mIGU\/ZS5jYWxsKG4sbik6ZTtyZXR1cm4gcj9TZShyLGkpOml9OnQ\/ZT9mdW5jdGlvbigpe3JldHVybiBTZSgiZnVuY3Rpb24iPT10eXBlb2YgdD90LmNhbGwodGhpcyx0aGlzKTp0LCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuY2FsbCh0aGlzLHRoaXMpOmUpfTp0OmV9ZnVuY3Rpb24gRWUoZSx0KXt2YXIgbj10P2U\/ZS5jb25jYXQodCk6QXJyYXkuaXNBcnJheSh0KT90Olt0XTplO3JldHVybiBuP2Z1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDtuKyspLTE9PT10LmluZGV4T2YoZVtuXSkmJnQucHVzaChlW25dKTtyZXR1cm4gdH0obik6bn1mdW5jdGlvbiBOZShlLHQsbixyKXt2YXIgaT1PYmplY3QuY3JlYXRlKGV8fG51bGwpO3JldHVybiB0P0EoaSx0KTppfU9lLmRhdGE9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuP1RlKGUsdCxuKTp0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOlRlKGUsdCl9LEkuZm9yRWFjaChmdW5jdGlvbihlKXtPZVtlXT1FZX0pLE0uZm9yRWFjaChmdW5jdGlvbihlKXtPZVtlKyJzIl09TmV9KSxPZS53YXRjaD1mdW5jdGlvbihlLHQsbixyKXtpZihlPT09WSYmKGU9dm9pZCAwKSx0PT09WSYmKHQ9dm9pZCAwKSwhdClyZXR1cm4gT2JqZWN0LmNyZWF0ZShlfHxudWxsKTtpZighZSlyZXR1cm4gdDt2YXIgaT17fTtmb3IodmFyIG8gaW4gQShpLGUpLHQpe3ZhciBhPWlbb10scz10W29dO2EmJiFBcnJheS5pc0FycmF5KGEpJiYoYT1bYV0pLGlbb109YT9hLmNvbmNhdChzKTpBcnJheS5pc0FycmF5KHMpP3M6W3NdfXJldHVybiBpfSxPZS5wcm9wcz1PZS5tZXRob2RzPU9lLmluamVjdD1PZS5jb21wdXRlZD1mdW5jdGlvbihlLHQsbixyKXtpZighZSlyZXR1cm4gdDt2YXIgaT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBBKGksZSksdCYmQShpLHQpLGl9LE9lLnByb3ZpZGU9VGU7dmFyIGplPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ\/ZTp0fTtmdW5jdGlvbiBEZShlLHQsbil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQmJih0PXQub3B0aW9ucyksZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnByb3BzO2lmKG4pe3ZhciByLGksbz17fTtpZihBcnJheS5pc0FycmF5KG4pKWZvcihyPW4ubGVuZ3RoO3ItLTspInN0cmluZyI9PXR5cGVvZihpPW5bcl0pJiYob1tiKGkpXT17dHlwZTpudWxsfSk7ZWxzZSBpZihzKG4pKWZvcih2YXIgYSBpbiBuKWk9blthXSxvW2IoYSldPXMoaSk\/aTp7dHlwZTppfTtlLnByb3BzPW99fSh0KSxmdW5jdGlvbihlLHQpe3ZhciBuPWUuaW5qZWN0O2lmKG4pe3ZhciByPWUuaW5qZWN0PXt9O2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspcltuW2ldXT17ZnJvbTpuW2ldfTtlbHNlIGlmKHMobikpZm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb107cltvXT1zKGEpP0Eoe2Zyb206b30sYSk6e2Zyb206YX19fX0odCksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kaXJlY3RpdmVzO2lmKHQpZm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07ImZ1bmN0aW9uIj09dHlwZW9mIHImJih0W25dPXtiaW5kOnIsdXBkYXRlOnJ9KX19KHQpLCF0Ll9iYXNlJiYodC5leHRlbmRzJiYoZT1EZShlLHQuZXh0ZW5kcyxuKSksdC5taXhpbnMpKWZvcih2YXIgcj0wLGk9dC5taXhpbnMubGVuZ3RoO3I8aTtyKyspZT1EZShlLHQubWl4aW5zW3JdLG4pO3ZhciBvLGE9e307Zm9yKG8gaW4gZSljKG8pO2ZvcihvIGluIHQpeShlLG8pfHxjKG8pO2Z1bmN0aW9uIGMocil7dmFyIGk9T2Vbcl18fGplO2Fbcl09aShlW3JdLHRbcl0sbixyKX1yZXR1cm4gYX1mdW5jdGlvbiBMZShlLHQsbixyKXtpZigic3RyaW5nIj09dHlwZW9mIG4pe3ZhciBpPWVbdF07aWYoeShpLG4pKXJldHVybiBpW25dO3ZhciBvPWIobik7aWYoeShpLG8pKXJldHVybiBpW29dO3ZhciBhPSQobyk7cmV0dXJuIHkoaSxhKT9pW2FdOmlbbl18fGlbb118fGlbYV19fWZ1bmN0aW9uIE1lKGUsdCxuLHIpe3ZhciBpPXRbZV0sbz0heShuLGUpLGE9bltlXSxzPVBlKEJvb2xlYW4saS50eXBlKTtpZihzPi0xKWlmKG8mJiF5KGksImRlZmF1bHQiKSlhPSExO2Vsc2UgaWYoIiI9PT1hfHxhPT09QyhlKSl7dmFyIGM9UGUoU3RyaW5nLGkudHlwZSk7KGM8MHx8czxjKSYmKGE9ITApfWlmKHZvaWQgMD09PWEpe2E9ZnVuY3Rpb24oZSx0LG4pe2lmKCF5KHQsImRlZmF1bHQiKSlyZXR1cm47dmFyIHI9dC5kZWZhdWx0O2lmKGUmJmUuJG9wdGlvbnMucHJvcHNEYXRhJiZ2b2lkIDA9PT1lLiRvcHRpb25zLnByb3BzRGF0YVtuXSYmdm9pZCAwIT09ZS5fcHJvcHNbbl0pcmV0dXJuIGUuX3Byb3BzW25dO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByJiYiRnVuY3Rpb24iIT09SWUodC50eXBlKT9yLmNhbGwoZSk6cn0ocixpLGUpO3ZhciB1PWJlOyRlKCEwKSxDZShhKSwkZSh1KX1yZXR1cm4gYX1mdW5jdGlvbiBJZShlKXt2YXIgdD1lJiZlLnRvU3RyaW5nKCkubWF0Y2goL15ccypmdW5jdGlvbiAoXHcrKS8pO3JldHVybiB0P3RbMV06IiJ9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm4gSWUoZSk9PT1JZSh0KX1mdW5jdGlvbiBQZShlLHQpe2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiBGZSh0LGUpPzA6LTE7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7bisrKWlmKEZlKHRbbl0sZSkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gUmUoZSx0LG4pe2xlKCk7dHJ5e2lmKHQpZm9yKHZhciByPXQ7cj1yLiRwYXJlbnQ7KXt2YXIgaT1yLiRvcHRpb25zLmVycm9yQ2FwdHVyZWQ7aWYoaSlmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyl0cnl7aWYoITE9PT1pW29dLmNhbGwocixlLHQsbikpcmV0dXJufWNhdGNoKGUpe0JlKGUsciwiZXJyb3JDYXB0dXJlZCBob29rIil9fUJlKGUsdCxuKX1maW5hbGx5e2ZlKCl9fWZ1bmN0aW9uIEhlKGUsdCxuLHIsaSl7dmFyIG87dHJ5eyhvPW4\/ZS5hcHBseSh0LG4pOmUuY2FsbCh0KSkmJiFvLl9pc1Z1ZSYmdShvKSYmIW8uX2hhbmRsZWQmJihvLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiBSZShlLHIsaSsiIChQcm9taXNlL2FzeW5jKSIpfSksby5faGFuZGxlZD0hMCl9Y2F0Y2goZSl7UmUoZSxyLGkpfXJldHVybiBvfWZ1bmN0aW9uIEJlKGUsdCxuKXtpZihGLmVycm9ySGFuZGxlcil0cnl7cmV0dXJuIEYuZXJyb3JIYW5kbGVyLmNhbGwobnVsbCxlLHQsbil9Y2F0Y2godCl7dCE9PWUmJlVlKHQsbnVsbCwiY29uZmlnLmVycm9ySGFuZGxlciIpfVVlKGUsdCxuKX1mdW5jdGlvbiBVZShlLHQsbil7aWYoIXomJiFWfHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGUpdGhyb3cgZTtjb25zb2xlLmVycm9yKGUpfXZhciB6ZSxWZT0hMSxLZT1bXSxKZT0hMTtmdW5jdGlvbiBxZSgpe0plPSExO3ZhciBlPUtlLnNsaWNlKDApO0tlLmxlbmd0aD0wO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0oKX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UmJnJlKFByb21pc2UpKXt2YXIgV2U9UHJvbWlzZS5yZXNvbHZlKCk7emU9ZnVuY3Rpb24oKXtXZS50aGVuKHFlKSxHJiZzZXRUaW1lb3V0KFMpfSxWZT0hMH1lbHNlIGlmKHF8fCJ1bmRlZmluZWQiPT10eXBlb2YgTXV0YXRpb25PYnNlcnZlcnx8IXJlKE11dGF0aW9uT2JzZXJ2ZXIpJiYiW29iamVjdCBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3JdIiE9PU11dGF0aW9uT2JzZXJ2ZXIudG9TdHJpbmcoKSl6ZT0idW5kZWZpbmVkIiE9dHlwZW9mIHNldEltbWVkaWF0ZSYmcmUoc2V0SW1tZWRpYXRlKT9mdW5jdGlvbigpe3NldEltbWVkaWF0ZShxZSl9OmZ1bmN0aW9uKCl7c2V0VGltZW91dChxZSwwKX07ZWxzZXt2YXIgWmU9MSxHZT1uZXcgTXV0YXRpb25PYnNlcnZlcihxZSksWGU9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKFplKSk7R2Uub2JzZXJ2ZShYZSx7Y2hhcmFjdGVyRGF0YTohMH0pLHplPWZ1bmN0aW9uKCl7WmU9KFplKzEpJTIsWGUuZGF0YT1TdHJpbmcoWmUpfSxWZT0hMH1mdW5jdGlvbiBZZShlLHQpe3ZhciBuO2lmKEtlLnB1c2goZnVuY3Rpb24oKXtpZihlKXRyeXtlLmNhbGwodCl9Y2F0Y2goZSl7UmUoZSx0LCJuZXh0VGljayIpfWVsc2UgbiYmbih0KX0pLEplfHwoSmU9ITAsemUoKSksIWUmJiJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSlyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7bj1lfSl9dmFyIFFlPW5ldyBpZTtmdW5jdGlvbiBldChlKXshZnVuY3Rpb24gZSh0LG4pe3ZhciByLGk7dmFyIGE9QXJyYXkuaXNBcnJheSh0KTtpZighYSYmIW8odCl8fE9iamVjdC5pc0Zyb3plbih0KXx8dCBpbnN0YW5jZW9mIHBlKXJldHVybjtpZih0Ll9fb2JfXyl7dmFyIHM9dC5fX29iX18uZGVwLmlkO2lmKG4uaGFzKHMpKXJldHVybjtuLmFkZChzKX1pZihhKWZvcihyPXQubGVuZ3RoO3ItLTspZSh0W3JdLG4pO2Vsc2UgZm9yKGk9T2JqZWN0LmtleXModCkscj1pLmxlbmd0aDtyLS07KWUodFtpW3JdXSxuKX0oZSxRZSksUWUuY2xlYXIoKX12YXIgdHQ9ZyhmdW5jdGlvbihlKXt2YXIgdD0iJiI9PT1lLmNoYXJBdCgwKSxuPSJ+Ij09PShlPXQ\/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCkscj0iISI9PT0oZT1uP2Uuc2xpY2UoMSk6ZSkuY2hhckF0KDApO3JldHVybntuYW1lOmU9cj9lLnNsaWNlKDEpOmUsb25jZTpuLGNhcHR1cmU6cixwYXNzaXZlOnR9fSk7ZnVuY3Rpb24gbnQoZSx0KXtmdW5jdGlvbiBuKCl7dmFyIGU9YXJndW1lbnRzLHI9bi5mbnM7aWYoIUFycmF5LmlzQXJyYXkocikpcmV0dXJuIEhlKHIsbnVsbCxhcmd1bWVudHMsdCwidi1vbiBoYW5kbGVyIik7Zm9yKHZhciBpPXIuc2xpY2UoKSxvPTA7bzxpLmxlbmd0aDtvKyspSGUoaVtvXSxudWxsLGUsdCwidi1vbiBoYW5kbGVyIil9cmV0dXJuIG4uZm5zPWUsbn1mdW5jdGlvbiBydChlLG4saSxvLGEscyl7dmFyIGMsdSxsLGY7Zm9yKGMgaW4gZSl1PWVbY10sbD1uW2NdLGY9dHQoYyksdCh1KXx8KHQobCk\/KHQodS5mbnMpJiYodT1lW2NdPW50KHUscykpLHIoZi5vbmNlKSYmKHU9ZVtjXT1hKGYubmFtZSx1LGYuY2FwdHVyZSkpLGkoZi5uYW1lLHUsZi5jYXB0dXJlLGYucGFzc2l2ZSxmLnBhcmFtcykpOnUhPT1sJiYobC5mbnM9dSxlW2NdPWwpKTtmb3IoYyBpbiBuKXQoZVtjXSkmJm8oKGY9dHQoYykpLm5hbWUsbltjXSxmLmNhcHR1cmUpfWZ1bmN0aW9uIGl0KGUsaSxvKXt2YXIgYTtlIGluc3RhbmNlb2YgcGUmJihlPWUuZGF0YS5ob29rfHwoZS5kYXRhLmhvb2s9e30pKTt2YXIgcz1lW2ldO2Z1bmN0aW9uIGMoKXtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxoKGEuZm5zLGMpfXQocyk\/YT1udChbY10pOm4ocy5mbnMpJiZyKHMubWVyZ2VkKT8oYT1zKS5mbnMucHVzaChjKTphPW50KFtzLGNdKSxhLm1lcmdlZD0hMCxlW2ldPWF9ZnVuY3Rpb24gb3QoZSx0LHIsaSxvKXtpZihuKHQpKXtpZih5KHQscikpcmV0dXJuIGVbcl09dFtyXSxvfHxkZWxldGUgdFtyXSwhMDtpZih5KHQsaSkpcmV0dXJuIGVbcl09dFtpXSxvfHxkZWxldGUgdFtpXSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBhdChlKXtyZXR1cm4gaShlKT9baGUoZSldOkFycmF5LmlzQXJyYXkoZSk\/ZnVuY3Rpb24gZShvLGEpe3ZhciBzPVtdO3ZhciBjLHUsbCxmO2ZvcihjPTA7YzxvLmxlbmd0aDtjKyspdCh1PW9bY10pfHwiYm9vbGVhbiI9PXR5cGVvZiB1fHwobD1zLmxlbmd0aC0xLGY9c1tsXSxBcnJheS5pc0FycmF5KHUpP3UubGVuZ3RoPjAmJihzdCgodT1lKHUsKGF8fCIiKSsiXyIrYykpWzBdKSYmc3QoZikmJihzW2xdPWhlKGYudGV4dCt1WzBdLnRleHQpLHUuc2hpZnQoKSkscy5wdXNoLmFwcGx5KHMsdSkpOmkodSk\/c3QoZik\/c1tsXT1oZShmLnRleHQrdSk6IiIhPT11JiZzLnB1c2goaGUodSkpOnN0KHUpJiZzdChmKT9zW2xdPWhlKGYudGV4dCt1LnRleHQpOihyKG8uX2lzVkxpc3QpJiZuKHUudGFnKSYmdCh1LmtleSkmJm4oYSkmJih1LmtleT0iX192bGlzdCIrYSsiXyIrYysiX18iKSxzLnB1c2godSkpKTtyZXR1cm4gc30oZSk6dm9pZCAwfWZ1bmN0aW9uIHN0KGUpe3JldHVybiBuKGUpJiZuKGUudGV4dCkmJiExPT09ZS5pc0NvbW1lbnR9ZnVuY3Rpb24gY3QoZSx0KXtpZihlKXtmb3IodmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPW9lP1JlZmxlY3Qub3duS2V5cyhlKTpPYmplY3Qua2V5cyhlKSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07aWYoIl9fb2JfXyIhPT1vKXtmb3IodmFyIGE9ZVtvXS5mcm9tLHM9dDtzOyl7aWYocy5fcHJvdmlkZWQmJnkocy5fcHJvdmlkZWQsYSkpe25bb109cy5fcHJvdmlkZWRbYV07YnJlYWt9cz1zLiRwYXJlbnR9aWYoIXMmJiJkZWZhdWx0ImluIGVbb10pe3ZhciBjPWVbb10uZGVmYXVsdDtuW29dPSJmdW5jdGlvbiI9PXR5cGVvZiBjP2MuY2FsbCh0KTpjfX19cmV0dXJuIG59fWZ1bmN0aW9uIHV0KGUsdCl7aWYoIWV8fCFlLmxlbmd0aClyZXR1cm57fTtmb3IodmFyIG49e30scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyl7dmFyIG89ZVtyXSxhPW8uZGF0YTtpZihhJiZhLmF0dHJzJiZhLmF0dHJzLnNsb3QmJmRlbGV0ZSBhLmF0dHJzLnNsb3Qsby5jb250ZXh0IT09dCYmby5mbkNvbnRleHQhPT10fHwhYXx8bnVsbD09YS5zbG90KShuLmRlZmF1bHR8fChuLmRlZmF1bHQ9W10pKS5wdXNoKG8pO2Vsc2V7dmFyIHM9YS5zbG90LGM9bltzXXx8KG5bc109W10pOyJ0ZW1wbGF0ZSI9PT1vLnRhZz9jLnB1c2guYXBwbHkoYyxvLmNoaWxkcmVufHxbXSk6Yy5wdXNoKG8pfX1mb3IodmFyIHUgaW4gbiluW3VdLmV2ZXJ5KGx0KSYmZGVsZXRlIG5bdV07cmV0dXJuIG59ZnVuY3Rpb24gbHQoZSl7cmV0dXJuIGUuaXNDb21tZW50JiYhZS5hc3luY0ZhY3Rvcnl8fCIgIj09PWUudGV4dH1mdW5jdGlvbiBmdCh0LG4scil7dmFyIGksbz1PYmplY3Qua2V5cyhuKS5sZW5ndGg+MCxhPXQ\/ISF0LiRzdGFibGU6IW8scz10JiZ0LiRrZXk7aWYodCl7aWYodC5fbm9ybWFsaXplZClyZXR1cm4gdC5fbm9ybWFsaXplZDtpZihhJiZyJiZyIT09ZSYmcz09PXIuJGtleSYmIW8mJiFyLiRoYXNOb3JtYWwpcmV0dXJuIHI7Zm9yKHZhciBjIGluIGk9e30sdCl0W2NdJiYiJCIhPT1jWzBdJiYoaVtjXT1wdChuLGMsdFtjXSkpfWVsc2UgaT17fTtmb3IodmFyIHUgaW4gbil1IGluIGl8fChpW3VdPWR0KG4sdSkpO3JldHVybiB0JiZPYmplY3QuaXNFeHRlbnNpYmxlKHQpJiYodC5fbm9ybWFsaXplZD1pKSxSKGksIiRzdGFibGUiLGEpLFIoaSwiJGtleSIscyksUihpLCIkaGFzTm9ybWFsIixvKSxpfWZ1bmN0aW9uIHB0KGUsdCxuKXt2YXIgcj1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg\/bi5hcHBseShudWxsLGFyZ3VtZW50cyk6bih7fSk7cmV0dXJuKGU9ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYhQXJyYXkuaXNBcnJheShlKT9bZV06YXQoZSkpJiYoMD09PWUubGVuZ3RofHwxPT09ZS5sZW5ndGgmJmVbMF0uaXNDb21tZW50KT92b2lkIDA6ZX07cmV0dXJuIG4ucHJveHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2dldDpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSkscn1mdW5jdGlvbiBkdChlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlW3RdfX1mdW5jdGlvbiB2dChlLHQpe3ZhciByLGksYSxzLGM7aWYoQXJyYXkuaXNBcnJheShlKXx8InN0cmluZyI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlLmxlbmd0aCksaT0wLGE9ZS5sZW5ndGg7aTxhO2krKylyW2ldPXQoZVtpXSxpKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZSlmb3Iocj1uZXcgQXJyYXkoZSksaT0wO2k8ZTtpKyspcltpXT10KGkrMSxpKTtlbHNlIGlmKG8oZSkpaWYob2UmJmVbU3ltYm9sLml0ZXJhdG9yXSl7cj1bXTtmb3IodmFyIHU9ZVtTeW1ib2wuaXRlcmF0b3JdKCksbD11Lm5leHQoKTshbC5kb25lOylyLnB1c2godChsLnZhbHVlLHIubGVuZ3RoKSksbD11Lm5leHQoKX1lbHNlIGZvcihzPU9iamVjdC5rZXlzKGUpLHI9bmV3IEFycmF5KHMubGVuZ3RoKSxpPTAsYT1zLmxlbmd0aDtpPGE7aSsrKWM9c1tpXSxyW2ldPXQoZVtjXSxjLGkpO3JldHVybiBuKHIpfHwocj1bXSksci5faXNWTGlzdD0hMCxyfWZ1bmN0aW9uIGh0KGUsdCxuLHIpe3ZhciBpLG89dGhpcy4kc2NvcGVkU2xvdHNbZV07bz8obj1ufHx7fSxyJiYobj1BKEEoe30sciksbikpLGk9byhuKXx8dCk6aT10aGlzLiRzbG90c1tlXXx8dDt2YXIgYT1uJiZuLnNsb3Q7cmV0dXJuIGE\/dGhpcy4kY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiLHtzbG90OmF9LGkpOml9ZnVuY3Rpb24gbXQoZSl7cmV0dXJuIExlKHRoaXMuJG9wdGlvbnMsImZpbHRlcnMiLGUpfHxFfWZ1bmN0aW9uIHl0KGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/LTE9PT1lLmluZGV4T2YodCk6ZSE9PXR9ZnVuY3Rpb24gZ3QoZSx0LG4scixpKXt2YXIgbz1GLmtleUNvZGVzW3RdfHxuO3JldHVybiBpJiZyJiYhRi5rZXlDb2Rlc1t0XT95dChpLHIpOm8\/eXQobyxlKTpyP0MocikhPT10OnZvaWQgMH1mdW5jdGlvbiBfdChlLHQsbixyLGkpe2lmKG4paWYobyhuKSl7dmFyIGE7QXJyYXkuaXNBcnJheShuKSYmKG49TyhuKSk7dmFyIHM9ZnVuY3Rpb24obyl7aWYoImNsYXNzIj09PW98fCJzdHlsZSI9PT1vfHx2KG8pKWE9ZTtlbHNle3ZhciBzPWUuYXR0cnMmJmUuYXR0cnMudHlwZTthPXJ8fEYubXVzdFVzZVByb3AodCxzLG8pP2UuZG9tUHJvcHN8fChlLmRvbVByb3BzPXt9KTplLmF0dHJzfHwoZS5hdHRycz17fSl9dmFyIGM9YihvKSx1PUMobyk7YyBpbiBhfHx1IGluIGF8fChhW29dPW5bb10saSYmKChlLm9ufHwoZS5vbj17fSkpWyJ1cGRhdGU6IitvXT1mdW5jdGlvbihlKXtuW29dPWV9KSl9O2Zvcih2YXIgYyBpbiBuKXMoYyl9ZWxzZTtyZXR1cm4gZX1mdW5jdGlvbiBidChlLHQpe3ZhciBuPXRoaXMuX3N0YXRpY1RyZWVzfHwodGhpcy5fc3RhdGljVHJlZXM9W10pLHI9bltlXTtyZXR1cm4gciYmIXQ\/cjood3Qocj1uW2VdPXRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW2VdLmNhbGwodGhpcy5fcmVuZGVyUHJveHksbnVsbCx0aGlzKSwiX19zdGF0aWNfXyIrZSwhMSkscil9ZnVuY3Rpb24gJHQoZSx0LG4pe3JldHVybiB3dChlLCJfX29uY2VfXyIrdCsobj8iXyIrbjoiIiksITApLGV9ZnVuY3Rpb24gd3QoZSx0LG4pe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXSYmInN0cmluZyIhPXR5cGVvZiBlW3JdJiZDdChlW3JdLHQrIl8iK3Isbik7ZWxzZSBDdChlLHQsbil9ZnVuY3Rpb24gQ3QoZSx0LG4pe2UuaXNTdGF0aWM9ITAsZS5rZXk9dCxlLmlzT25jZT1ufWZ1bmN0aW9uIHh0KGUsdCl7aWYodClpZihzKHQpKXt2YXIgbj1lLm9uPWUub24\/QSh7fSxlLm9uKTp7fTtmb3IodmFyIHIgaW4gdCl7dmFyIGk9bltyXSxvPXRbcl07bltyXT1pP1tdLmNvbmNhdChpLG8pOm99fWVsc2U7cmV0dXJuIGV9ZnVuY3Rpb24ga3QoZSx0LG4scil7dD10fHx7JHN0YWJsZTohbn07Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPWVbaV07QXJyYXkuaXNBcnJheShvKT9rdChvLHQsbik6byYmKG8ucHJveHkmJihvLmZuLnByb3h5PSEwKSx0W28ua2V5XT1vLmZuKX1yZXR1cm4gciYmKHQuJGtleT1yKSx0fWZ1bmN0aW9uIEF0KGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKz0yKXt2YXIgcj10W25dOyJzdHJpbmciPT10eXBlb2YgciYmciYmKGVbdFtuXV09dFtuKzFdKX1yZXR1cm4gZX1mdW5jdGlvbiBPdChlLHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZT90K2U6ZX1mdW5jdGlvbiBTdChlKXtlLl9vPSR0LGUuX249ZixlLl9zPWwsZS5fbD12dCxlLl90PWh0LGUuX3E9TixlLl9pPWosZS5fbT1idCxlLl9mPW10LGUuX2s9Z3QsZS5fYj1fdCxlLl92PWhlLGUuX2U9dmUsZS5fdT1rdCxlLl9nPXh0LGUuX2Q9QXQsZS5fcD1PdH1mdW5jdGlvbiBUdCh0LG4saSxvLGEpe3ZhciBzLGM9dGhpcyx1PWEub3B0aW9uczt5KG8sIl91aWQiKT8ocz1PYmplY3QuY3JlYXRlKG8pKS5fb3JpZ2luYWw9bzoocz1vLG89by5fb3JpZ2luYWwpO3ZhciBsPXIodS5fY29tcGlsZWQpLGY9IWw7dGhpcy5kYXRhPXQsdGhpcy5wcm9wcz1uLHRoaXMuY2hpbGRyZW49aSx0aGlzLnBhcmVudD1vLHRoaXMubGlzdGVuZXJzPXQub258fGUsdGhpcy5pbmplY3Rpb25zPWN0KHUuaW5qZWN0LG8pLHRoaXMuc2xvdHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy4kc2xvdHN8fGZ0KHQuc2NvcGVkU2xvdHMsYy4kc2xvdHM9dXQoaSxvKSksYy4kc2xvdHN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzY29wZWRTbG90cyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ0KHQuc2NvcGVkU2xvdHMsdGhpcy5zbG90cygpKX19KSxsJiYodGhpcy4kb3B0aW9ucz11LHRoaXMuJHNsb3RzPXRoaXMuc2xvdHMoKSx0aGlzLiRzY29wZWRTbG90cz1mdCh0LnNjb3BlZFNsb3RzLHRoaXMuJHNsb3RzKSksdS5fc2NvcGVJZD90aGlzLl9jPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPVB0KHMsZSx0LG4scixmKTtyZXR1cm4gaSYmIUFycmF5LmlzQXJyYXkoaSkmJihpLmZuU2NvcGVJZD11Ll9zY29wZUlkLGkuZm5Db250ZXh0PW8pLGl9OnRoaXMuX2M9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIFB0KHMsZSx0LG4scixmKX19ZnVuY3Rpb24gRXQoZSx0LG4scixpKXt2YXIgbz1tZShlKTtyZXR1cm4gby5mbkNvbnRleHQ9bixvLmZuT3B0aW9ucz1yLHQuc2xvdCYmKChvLmRhdGF8fChvLmRhdGE9e30pKS5zbG90PXQuc2xvdCksb31mdW5jdGlvbiBOdChlLHQpe2Zvcih2YXIgbiBpbiB0KWVbYihuKV09dFtuXX1TdChUdC5wcm90b3R5cGUpO3ZhciBqdD17aW5pdDpmdW5jdGlvbihlLHQpe2lmKGUuY29tcG9uZW50SW5zdGFuY2UmJiFlLmNvbXBvbmVudEluc3RhbmNlLl9pc0Rlc3Ryb3llZCYmZS5kYXRhLmtlZXBBbGl2ZSl7dmFyIHI9ZTtqdC5wcmVwYXRjaChyLHIpfWVsc2V7KGUuY29tcG9uZW50SW5zdGFuY2U9ZnVuY3Rpb24oZSx0KXt2YXIgcj17X2lzQ29tcG9uZW50OiEwLF9wYXJlbnRWbm9kZTplLHBhcmVudDp0fSxpPWUuZGF0YS5pbmxpbmVUZW1wbGF0ZTtuKGkpJiYoci5yZW5kZXI9aS5yZW5kZXIsci5zdGF0aWNSZW5kZXJGbnM9aS5zdGF0aWNSZW5kZXJGbnMpO3JldHVybiBuZXcgZS5jb21wb25lbnRPcHRpb25zLkN0b3Iocil9KGUsV3QpKS4kbW91bnQodD9lLmVsbTp2b2lkIDAsdCl9fSxwcmVwYXRjaDpmdW5jdGlvbih0LG4pe3ZhciByPW4uY29tcG9uZW50T3B0aW9uczshZnVuY3Rpb24odCxuLHIsaSxvKXt2YXIgYT1pLmRhdGEuc2NvcGVkU2xvdHMscz10LiRzY29wZWRTbG90cyxjPSEhKGEmJiFhLiRzdGFibGV8fHMhPT1lJiYhcy4kc3RhYmxlfHxhJiZ0LiRzY29wZWRTbG90cy4ka2V5IT09YS4ka2V5KSx1PSEhKG98fHQuJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVufHxjKTt0LiRvcHRpb25zLl9wYXJlbnRWbm9kZT1pLHQuJHZub2RlPWksdC5fdm5vZGUmJih0Ll92bm9kZS5wYXJlbnQ9aSk7aWYodC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW49byx0LiRhdHRycz1pLmRhdGEuYXR0cnN8fGUsdC4kbGlzdGVuZXJzPXJ8fGUsbiYmdC4kb3B0aW9ucy5wcm9wcyl7JGUoITEpO2Zvcih2YXIgbD10Ll9wcm9wcyxmPXQuJG9wdGlvbnMuX3Byb3BLZXlzfHxbXSxwPTA7cDxmLmxlbmd0aDtwKyspe3ZhciBkPWZbcF0sdj10LiRvcHRpb25zLnByb3BzO2xbZF09TWUoZCx2LG4sdCl9JGUoITApLHQuJG9wdGlvbnMucHJvcHNEYXRhPW59cj1yfHxlO3ZhciBoPXQuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVyczt0LiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM9cixxdCh0LHIsaCksdSYmKHQuJHNsb3RzPXV0KG8saS5jb250ZXh0KSx0LiRmb3JjZVVwZGF0ZSgpKX0obi5jb21wb25lbnRJbnN0YW5jZT10LmNvbXBvbmVudEluc3RhbmNlLHIucHJvcHNEYXRhLHIubGlzdGVuZXJzLG4sci5jaGlsZHJlbil9LGluc2VydDpmdW5jdGlvbihlKXt2YXIgdCxuPWUuY29udGV4dCxyPWUuY29tcG9uZW50SW5zdGFuY2U7ci5faXNNb3VudGVkfHwoci5faXNNb3VudGVkPSEwLFl0KHIsIm1vdW50ZWQiKSksZS5kYXRhLmtlZXBBbGl2ZSYmKG4uX2lzTW91bnRlZD8oKHQ9cikuX2luYWN0aXZlPSExLGVuLnB1c2godCkpOlh0KHIsITApKX0sZGVzdHJveTpmdW5jdGlvbihlKXt2YXIgdD1lLmNvbXBvbmVudEluc3RhbmNlO3QuX2lzRGVzdHJveWVkfHwoZS5kYXRhLmtlZXBBbGl2ZT9mdW5jdGlvbiBlKHQsbil7aWYobiYmKHQuX2RpcmVjdEluYWN0aXZlPSEwLEd0KHQpKSlyZXR1cm47aWYoIXQuX2luYWN0aXZlKXt0Ll9pbmFjdGl2ZT0hMDtmb3IodmFyIHI9MDtyPHQuJGNoaWxkcmVuLmxlbmd0aDtyKyspZSh0LiRjaGlsZHJlbltyXSk7WXQodCwiZGVhY3RpdmF0ZWQiKX19KHQsITApOnQuJGRlc3Ryb3koKSl9fSxEdD1PYmplY3Qua2V5cyhqdCk7ZnVuY3Rpb24gTHQoaSxhLHMsYyxsKXtpZighdChpKSl7dmFyIGY9cy4kb3B0aW9ucy5fYmFzZTtpZihvKGkpJiYoaT1mLmV4dGVuZChpKSksImZ1bmN0aW9uIj09dHlwZW9mIGkpe3ZhciBwO2lmKHQoaS5jaWQpJiZ2b2lkIDA9PT0oaT1mdW5jdGlvbihlLGkpe2lmKHIoZS5lcnJvcikmJm4oZS5lcnJvckNvbXApKXJldHVybiBlLmVycm9yQ29tcDtpZihuKGUucmVzb2x2ZWQpKXJldHVybiBlLnJlc29sdmVkO3ZhciBhPUh0O2EmJm4oZS5vd25lcnMpJiYtMT09PWUub3duZXJzLmluZGV4T2YoYSkmJmUub3duZXJzLnB1c2goYSk7aWYocihlLmxvYWRpbmcpJiZuKGUubG9hZGluZ0NvbXApKXJldHVybiBlLmxvYWRpbmdDb21wO2lmKGEmJiFuKGUub3duZXJzKSl7dmFyIHM9ZS5vd25lcnM9W2FdLGM9ITAsbD1udWxsLGY9bnVsbDthLiRvbigiaG9vazpkZXN0cm95ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGgocyxhKX0pO3ZhciBwPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49cy5sZW5ndGg7dDxuO3QrKylzW3RdLiRmb3JjZVVwZGF0ZSgpO2UmJihzLmxlbmd0aD0wLG51bGwhPT1sJiYoY2xlYXJUaW1lb3V0KGwpLGw9bnVsbCksbnVsbCE9PWYmJihjbGVhclRpbWVvdXQoZiksZj1udWxsKSl9LGQ9RChmdW5jdGlvbih0KXtlLnJlc29sdmVkPUJ0KHQsaSksYz9zLmxlbmd0aD0wOnAoITApfSksdj1EKGZ1bmN0aW9uKHQpe24oZS5lcnJvckNvbXApJiYoZS5lcnJvcj0hMCxwKCEwKSl9KSxtPWUoZCx2KTtyZXR1cm4gbyhtKSYmKHUobSk\/dChlLnJlc29sdmVkKSYmbS50aGVuKGQsdik6dShtLmNvbXBvbmVudCkmJihtLmNvbXBvbmVudC50aGVuKGQsdiksbihtLmVycm9yKSYmKGUuZXJyb3JDb21wPUJ0KG0uZXJyb3IsaSkpLG4obS5sb2FkaW5nKSYmKGUubG9hZGluZ0NvbXA9QnQobS5sb2FkaW5nLGkpLDA9PT1tLmRlbGF5P2UubG9hZGluZz0hMDpsPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtsPW51bGwsdChlLnJlc29sdmVkKSYmdChlLmVycm9yKSYmKGUubG9hZGluZz0hMCxwKCExKSl9LG0uZGVsYXl8fDIwMCkpLG4obS50aW1lb3V0KSYmKGY9c2V0VGltZW91dChmdW5jdGlvbigpe2Y9bnVsbCx0KGUucmVzb2x2ZWQpJiZ2KG51bGwpfSxtLnRpbWVvdXQpKSkpLGM9ITEsZS5sb2FkaW5nP2UubG9hZGluZ0NvbXA6ZS5yZXNvbHZlZH19KHA9aSxmKSkpcmV0dXJuIGZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG89dmUoKTtyZXR1cm4gby5hc3luY0ZhY3Rvcnk9ZSxvLmFzeW5jTWV0YT17ZGF0YTp0LGNvbnRleHQ6bixjaGlsZHJlbjpyLHRhZzppfSxvfShwLGEscyxjLGwpO2E9YXx8e30sJG4oaSksbihhLm1vZGVsKSYmZnVuY3Rpb24oZSx0KXt2YXIgcj1lLm1vZGVsJiZlLm1vZGVsLnByb3B8fCJ2YWx1ZSIsaT1lLm1vZGVsJiZlLm1vZGVsLmV2ZW50fHwiaW5wdXQiOyh0LmF0dHJzfHwodC5hdHRycz17fSkpW3JdPXQubW9kZWwudmFsdWU7dmFyIG89dC5vbnx8KHQub249e30pLGE9b1tpXSxzPXQubW9kZWwuY2FsbGJhY2s7bihhKT8oQXJyYXkuaXNBcnJheShhKT8tMT09PWEuaW5kZXhPZihzKTphIT09cykmJihvW2ldPVtzXS5jb25jYXQoYSkpOm9baV09c30oaS5vcHRpb25zLGEpO3ZhciBkPWZ1bmN0aW9uKGUscixpKXt2YXIgbz1yLm9wdGlvbnMucHJvcHM7aWYoIXQobykpe3ZhciBhPXt9LHM9ZS5hdHRycyxjPWUucHJvcHM7aWYobihzKXx8bihjKSlmb3IodmFyIHUgaW4gbyl7dmFyIGw9Qyh1KTtvdChhLGMsdSxsLCEwKXx8b3QoYSxzLHUsbCwhMSl9cmV0dXJuIGF9fShhLGkpO2lmKHIoaS5vcHRpb25zLmZ1bmN0aW9uYWwpKXJldHVybiBmdW5jdGlvbih0LHIsaSxvLGEpe3ZhciBzPXQub3B0aW9ucyxjPXt9LHU9cy5wcm9wcztpZihuKHUpKWZvcih2YXIgbCBpbiB1KWNbbF09TWUobCx1LHJ8fGUpO2Vsc2UgbihpLmF0dHJzKSYmTnQoYyxpLmF0dHJzKSxuKGkucHJvcHMpJiZOdChjLGkucHJvcHMpO3ZhciBmPW5ldyBUdChpLGMsYSxvLHQpLHA9cy5yZW5kZXIuY2FsbChudWxsLGYuX2MsZik7aWYocCBpbnN0YW5jZW9mIHBlKXJldHVybiBFdChwLGksZi5wYXJlbnQscyk7aWYoQXJyYXkuaXNBcnJheShwKSl7Zm9yKHZhciBkPWF0KHApfHxbXSx2PW5ldyBBcnJheShkLmxlbmd0aCksaD0wO2g8ZC5sZW5ndGg7aCsrKXZbaF09RXQoZFtoXSxpLGYucGFyZW50LHMpO3JldHVybiB2fX0oaSxkLGEscyxjKTt2YXIgdj1hLm9uO2lmKGEub249YS5uYXRpdmVPbixyKGkub3B0aW9ucy5hYnN0cmFjdCkpe3ZhciBtPWEuc2xvdDthPXt9LG0mJihhLnNsb3Q9bSl9IWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmhvb2t8fChlLmhvb2s9e30pLG49MDtuPER0Lmxlbmd0aDtuKyspe3ZhciByPUR0W25dLGk9dFtyXSxvPWp0W3JdO2k9PT1vfHxpJiZpLl9tZXJnZWR8fCh0W3JdPWk\/TXQobyxpKTpvKX19KGEpO3ZhciB5PWkub3B0aW9ucy5uYW1lfHxsO3JldHVybiBuZXcgcGUoInZ1ZS1jb21wb25lbnQtIitpLmNpZCsoeT8iLSIreToiIiksYSx2b2lkIDAsdm9pZCAwLHZvaWQgMCxzLHtDdG9yOmkscHJvcHNEYXRhOmQsbGlzdGVuZXJzOnYsdGFnOmwsY2hpbGRyZW46Y30scCl9fX1mdW5jdGlvbiBNdChlLHQpe3ZhciBuPWZ1bmN0aW9uKG4scil7ZShuLHIpLHQobixyKX07cmV0dXJuIG4uX21lcmdlZD0hMCxufXZhciBJdD0xLEZ0PTI7ZnVuY3Rpb24gUHQoZSxhLHMsYyx1LGwpe3JldHVybihBcnJheS5pc0FycmF5KHMpfHxpKHMpKSYmKHU9YyxjPXMscz12b2lkIDApLHIobCkmJih1PUZ0KSxmdW5jdGlvbihlLGksYSxzLGMpe2lmKG4oYSkmJm4oYS5fX29iX18pKXJldHVybiB2ZSgpO24oYSkmJm4oYS5pcykmJihpPWEuaXMpO2lmKCFpKXJldHVybiB2ZSgpO0FycmF5LmlzQXJyYXkocykmJiJmdW5jdGlvbiI9PXR5cGVvZiBzWzBdJiYoKGE9YXx8e30pLnNjb3BlZFNsb3RzPXtkZWZhdWx0OnNbMF19LHMubGVuZ3RoPTApO2M9PT1GdD9zPWF0KHMpOmM9PT1JdCYmKHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspaWYoQXJyYXkuaXNBcnJheShlW3RdKSlyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxlKTtyZXR1cm4gZX0ocykpO3ZhciB1LGw7aWYoInN0cmluZyI9PXR5cGVvZiBpKXt2YXIgZjtsPWUuJHZub2RlJiZlLiR2bm9kZS5uc3x8Ri5nZXRUYWdOYW1lc3BhY2UoaSksdT1GLmlzUmVzZXJ2ZWRUYWcoaSk\/bmV3IHBlKEYucGFyc2VQbGF0Zm9ybVRhZ05hbWUoaSksYSxzLHZvaWQgMCx2b2lkIDAsZSk6YSYmYS5wcmV8fCFuKGY9TGUoZS4kb3B0aW9ucywiY29tcG9uZW50cyIsaSkpP25ldyBwZShpLGEscyx2b2lkIDAsdm9pZCAwLGUpOkx0KGYsYSxlLHMsaSl9ZWxzZSB1PUx0KGksYSxlLHMpO3JldHVybiBBcnJheS5pc0FycmF5KHUpP3U6bih1KT8obihsKSYmZnVuY3Rpb24gZShpLG8sYSl7aS5ucz1vOyJmb3JlaWduT2JqZWN0Ij09PWkudGFnJiYobz12b2lkIDAsYT0hMCk7aWYobihpLmNoaWxkcmVuKSlmb3IodmFyIHM9MCxjPWkuY2hpbGRyZW4ubGVuZ3RoO3M8YztzKyspe3ZhciB1PWkuY2hpbGRyZW5bc107bih1LnRhZykmJih0KHUubnMpfHxyKGEpJiYic3ZnIiE9PXUudGFnKSYmZSh1LG8sYSl9fSh1LGwpLG4oYSkmJmZ1bmN0aW9uKGUpe28oZS5zdHlsZSkmJmV0KGUuc3R5bGUpO28oZS5jbGFzcykmJmV0KGUuY2xhc3MpfShhKSx1KTp2ZSgpfShlLGEscyxjLHUpfXZhciBSdCxIdD1udWxsO2Z1bmN0aW9uIEJ0KGUsdCl7cmV0dXJuKGUuX19lc01vZHVsZXx8b2UmJiJNb2R1bGUiPT09ZVtTeW1ib2wudG9TdHJpbmdUYWddKSYmKGU9ZS5kZWZhdWx0KSxvKGUpP3QuZXh0ZW5kKGUpOmV9ZnVuY3Rpb24gVXQoZSl7cmV0dXJuIGUuaXNDb21tZW50JiZlLmFzeW5jRmFjdG9yeX1mdW5jdGlvbiB6dChlKXtpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgcj1lW3RdO2lmKG4ocikmJihuKHIuY29tcG9uZW50T3B0aW9ucyl8fFV0KHIpKSlyZXR1cm4gcn19ZnVuY3Rpb24gVnQoZSx0KXtSdC4kb24oZSx0KX1mdW5jdGlvbiBLdChlLHQpe1J0LiRvZmYoZSx0KX1mdW5jdGlvbiBKdChlLHQpe3ZhciBuPVJ0O3JldHVybiBmdW5jdGlvbiByKCl7bnVsbCE9PXQuYXBwbHkobnVsbCxhcmd1bWVudHMpJiZuLiRvZmYoZSxyKX19ZnVuY3Rpb24gcXQoZSx0LG4pe1J0PWUscnQodCxufHx7fSxWdCxLdCxKdCxlKSxSdD12b2lkIDB9dmFyIFd0PW51bGw7ZnVuY3Rpb24gWnQoZSl7dmFyIHQ9V3Q7cmV0dXJuIFd0PWUsZnVuY3Rpb24oKXtXdD10fX1mdW5jdGlvbiBHdChlKXtmb3IoO2UmJihlPWUuJHBhcmVudCk7KWlmKGUuX2luYWN0aXZlKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFh0KGUsdCl7aWYodCl7aWYoZS5fZGlyZWN0SW5hY3RpdmU9ITEsR3QoZSkpcmV0dXJufWVsc2UgaWYoZS5fZGlyZWN0SW5hY3RpdmUpcmV0dXJuO2lmKGUuX2luYWN0aXZlfHxudWxsPT09ZS5faW5hY3RpdmUpe2UuX2luYWN0aXZlPSExO2Zvcih2YXIgbj0wO248ZS4kY2hpbGRyZW4ubGVuZ3RoO24rKylYdChlLiRjaGlsZHJlbltuXSk7WXQoZSwiYWN0aXZhdGVkIil9fWZ1bmN0aW9uIFl0KGUsdCl7bGUoKTt2YXIgbj1lLiRvcHRpb25zW3RdLHI9dCsiIGhvb2siO2lmKG4pZm9yKHZhciBpPTAsbz1uLmxlbmd0aDtpPG87aSsrKUhlKG5baV0sZSxudWxsLGUscik7ZS5faGFzSG9va0V2ZW50JiZlLiRlbWl0KCJob29rOiIrdCksZmUoKX12YXIgUXQ9W10sZW49W10sdG49e30sbm49ITEscm49ITEsb249MDt2YXIgYW49MCxzbj1EYXRlLm5vdztpZih6JiYhcSl7dmFyIGNuPXdpbmRvdy5wZXJmb3JtYW5jZTtjbiYmImZ1bmN0aW9uIj09dHlwZW9mIGNuLm5vdyYmc24oKT5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKS50aW1lU3RhbXAmJihzbj1mdW5jdGlvbigpe3JldHVybiBjbi5ub3coKX0pfWZ1bmN0aW9uIHVuKCl7dmFyIGUsdDtmb3IoYW49c24oKSxybj0hMCxRdC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaWQtdC5pZH0pLG9uPTA7b248UXQubGVuZ3RoO29uKyspKGU9UXRbb25dKS5iZWZvcmUmJmUuYmVmb3JlKCksdD1lLmlkLHRuW3RdPW51bGwsZS5ydW4oKTt2YXIgbj1lbi5zbGljZSgpLHI9UXQuc2xpY2UoKTtvbj1RdC5sZW5ndGg9ZW4ubGVuZ3RoPTAsdG49e30sbm49cm49ITEsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5faW5hY3RpdmU9ITAsWHQoZVt0XSwhMCl9KG4pLGZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoO2Zvcig7dC0tOyl7dmFyIG49ZVt0XSxyPW4udm07ci5fd2F0Y2hlcj09PW4mJnIuX2lzTW91bnRlZCYmIXIuX2lzRGVzdHJveWVkJiZZdChyLCJ1cGRhdGVkIil9fShyKSxuZSYmRi5kZXZ0b29scyYmbmUuZW1pdCgiZmx1c2giKX12YXIgbG49MCxmbj1mdW5jdGlvbihlLHQsbixyLGkpe3RoaXMudm09ZSxpJiYoZS5fd2F0Y2hlcj10aGlzKSxlLl93YXRjaGVycy5wdXNoKHRoaXMpLHI\/KHRoaXMuZGVlcD0hIXIuZGVlcCx0aGlzLnVzZXI9ISFyLnVzZXIsdGhpcy5sYXp5PSEhci5sYXp5LHRoaXMuc3luYz0hIXIuc3luYyx0aGlzLmJlZm9yZT1yLmJlZm9yZSk6dGhpcy5kZWVwPXRoaXMudXNlcj10aGlzLmxhenk9dGhpcy5zeW5jPSExLHRoaXMuY2I9bix0aGlzLmlkPSsrbG4sdGhpcy5hY3RpdmU9ITAsdGhpcy5kaXJ0eT10aGlzLmxhenksdGhpcy5kZXBzPVtdLHRoaXMubmV3RGVwcz1bXSx0aGlzLmRlcElkcz1uZXcgaWUsdGhpcy5uZXdEZXBJZHM9bmV3IGllLHRoaXMuZXhwcmVzc2lvbj0iIiwiZnVuY3Rpb24iPT10eXBlb2YgdD90aGlzLmdldHRlcj10Oih0aGlzLmdldHRlcj1mdW5jdGlvbihlKXtpZighSC50ZXN0KGUpKXt2YXIgdD1lLnNwbGl0KCIuIik7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXtpZighZSlyZXR1cm47ZT1lW3Rbbl1dfXJldHVybiBlfX19KHQpLHRoaXMuZ2V0dGVyfHwodGhpcy5nZXR0ZXI9UykpLHRoaXMudmFsdWU9dGhpcy5sYXp5P3ZvaWQgMDp0aGlzLmdldCgpfTtmbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7dmFyIGU7bGUodGhpcyk7dmFyIHQ9dGhpcy52bTt0cnl7ZT10aGlzLmdldHRlci5jYWxsKHQsdCl9Y2F0Y2goZSl7aWYoIXRoaXMudXNlcil0aHJvdyBlO1JlKGUsdCwnZ2V0dGVyIGZvciB3YXRjaGVyICInK3RoaXMuZXhwcmVzc2lvbisnIicpfWZpbmFsbHl7dGhpcy5kZWVwJiZldChlKSxmZSgpLHRoaXMuY2xlYW51cERlcHMoKX1yZXR1cm4gZX0sZm4ucHJvdG90eXBlLmFkZERlcD1mdW5jdGlvbihlKXt2YXIgdD1lLmlkO3RoaXMubmV3RGVwSWRzLmhhcyh0KXx8KHRoaXMubmV3RGVwSWRzLmFkZCh0KSx0aGlzLm5ld0RlcHMucHVzaChlKSx0aGlzLmRlcElkcy5oYXModCl8fGUuYWRkU3ViKHRoaXMpKX0sZm4ucHJvdG90eXBlLmNsZWFudXBEZXBzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl7dmFyIHQ9dGhpcy5kZXBzW2VdO3RoaXMubmV3RGVwSWRzLmhhcyh0LmlkKXx8dC5yZW1vdmVTdWIodGhpcyl9dmFyIG49dGhpcy5kZXBJZHM7dGhpcy5kZXBJZHM9dGhpcy5uZXdEZXBJZHMsdGhpcy5uZXdEZXBJZHM9bix0aGlzLm5ld0RlcElkcy5jbGVhcigpLG49dGhpcy5kZXBzLHRoaXMuZGVwcz10aGlzLm5ld0RlcHMsdGhpcy5uZXdEZXBzPW4sdGhpcy5uZXdEZXBzLmxlbmd0aD0wfSxmbi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5sYXp5P3RoaXMuZGlydHk9ITA6dGhpcy5zeW5jP3RoaXMucnVuKCk6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pZDtpZihudWxsPT10blt0XSl7aWYodG5bdF09ITAscm4pe2Zvcih2YXIgbj1RdC5sZW5ndGgtMTtuPm9uJiZRdFtuXS5pZD5lLmlkOyluLS07UXQuc3BsaWNlKG4rMSwwLGUpfWVsc2UgUXQucHVzaChlKTtubnx8KG5uPSEwLFllKHVuKSl9fSh0aGlzKX0sZm4ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt2YXIgZT10aGlzLmdldCgpO2lmKGUhPT10aGlzLnZhbHVlfHxvKGUpfHx0aGlzLmRlZXApe3ZhciB0PXRoaXMudmFsdWU7aWYodGhpcy52YWx1ZT1lLHRoaXMudXNlcil0cnl7dGhpcy5jYi5jYWxsKHRoaXMudm0sZSx0KX1jYXRjaChlKXtSZShlLHRoaXMudm0sJ2NhbGxiYWNrIGZvciB3YXRjaGVyICInK3RoaXMuZXhwcmVzc2lvbisnIicpfWVsc2UgdGhpcy5jYi5jYWxsKHRoaXMudm0sZSx0KX19fSxmbi5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXRoaXMuZ2V0KCksdGhpcy5kaXJ0eT0hMX0sZm4ucHJvdG90eXBlLmRlcGVuZD1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmRlcHMubGVuZ3RoO2UtLTspdGhpcy5kZXBzW2VdLmRlcGVuZCgpfSxmbi5wcm90b3R5cGUudGVhcmRvd249ZnVuY3Rpb24oKXtpZih0aGlzLmFjdGl2ZSl7dGhpcy52bS5faXNCZWluZ0Rlc3Ryb3llZHx8aCh0aGlzLnZtLl93YXRjaGVycyx0aGlzKTtmb3IodmFyIGU9dGhpcy5kZXBzLmxlbmd0aDtlLS07KXRoaXMuZGVwc1tlXS5yZW1vdmVTdWIodGhpcyk7dGhpcy5hY3RpdmU9ITF9fTt2YXIgcG49e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpTLHNldDpTfTtmdW5jdGlvbiBkbihlLHQsbil7cG4uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbdF1bbl19LHBuLnNldD1mdW5jdGlvbihlKXt0aGlzW3RdW25dPWV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4scG4pfWZ1bmN0aW9uIHZuKGUpe2UuX3dhdGNoZXJzPVtdO3ZhciB0PWUuJG9wdGlvbnM7dC5wcm9wcyYmZnVuY3Rpb24oZSx0KXt2YXIgbj1lLiRvcHRpb25zLnByb3BzRGF0YXx8e30scj1lLl9wcm9wcz17fSxpPWUuJG9wdGlvbnMuX3Byb3BLZXlzPVtdO2UuJHBhcmVudCYmJGUoITEpO3ZhciBvPWZ1bmN0aW9uKG8pe2kucHVzaChvKTt2YXIgYT1NZShvLHQsbixlKTt4ZShyLG8sYSksbyBpbiBlfHxkbihlLCJfcHJvcHMiLG8pfTtmb3IodmFyIGEgaW4gdClvKGEpOyRlKCEwKX0oZSx0LnByb3BzKSx0Lm1ldGhvZHMmJmZ1bmN0aW9uKGUsdCl7ZS4kb3B0aW9ucy5wcm9wcztmb3IodmFyIG4gaW4gdCllW25dPSJmdW5jdGlvbiIhPXR5cGVvZiB0W25dP1M6eCh0W25dLGUpfShlLHQubWV0aG9kcyksdC5kYXRhP2Z1bmN0aW9uKGUpe3ZhciB0PWUuJG9wdGlvbnMuZGF0YTtzKHQ9ZS5fZGF0YT0iZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbihlLHQpe2xlKCk7dHJ5e3JldHVybiBlLmNhbGwodCx0KX1jYXRjaChlKXtyZXR1cm4gUmUoZSx0LCJkYXRhKCkiKSx7fX1maW5hbGx5e2ZlKCl9fSh0LGUpOnR8fHt9KXx8KHQ9e30pO3ZhciBuPU9iamVjdC5rZXlzKHQpLHI9ZS4kb3B0aW9ucy5wcm9wcyxpPShlLiRvcHRpb25zLm1ldGhvZHMsbi5sZW5ndGgpO2Zvcig7aS0tOyl7dmFyIG89bltpXTtyJiZ5KHIsbyl8fChhPXZvaWQgMCwzNiE9PShhPShvKyIiKS5jaGFyQ29kZUF0KDApKSYmOTUhPT1hJiZkbihlLCJfZGF0YSIsbykpfXZhciBhO0NlKHQsITApfShlKTpDZShlLl9kYXRhPXt9LCEwKSx0LmNvbXB1dGVkJiZmdW5jdGlvbihlLHQpe3ZhciBuPWUuX2NvbXB1dGVkV2F0Y2hlcnM9T2JqZWN0LmNyZWF0ZShudWxsKSxyPXRlKCk7Zm9yKHZhciBpIGluIHQpe3ZhciBvPXRbaV0sYT0iZnVuY3Rpb24iPT10eXBlb2Ygbz9vOm8uZ2V0O3J8fChuW2ldPW5ldyBmbihlLGF8fFMsUyxobikpLGkgaW4gZXx8bW4oZSxpLG8pfX0oZSx0LmNvbXB1dGVkKSx0LndhdGNoJiZ0LndhdGNoIT09WSYmZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdCl7dmFyIHI9dFtuXTtpZihBcnJheS5pc0FycmF5KHIpKWZvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKV9uKGUsbixyW2ldKTtlbHNlIF9uKGUsbixyKX19KGUsdC53YXRjaCl9dmFyIGhuPXtsYXp5OiEwfTtmdW5jdGlvbiBtbihlLHQsbil7dmFyIHI9IXRlKCk7ImZ1bmN0aW9uIj09dHlwZW9mIG4\/KHBuLmdldD1yP3luKHQpOmduKG4pLHBuLnNldD1TKToocG4uZ2V0PW4uZ2V0P3ImJiExIT09bi5jYWNoZT95bih0KTpnbihuLmdldCk6Uyxwbi5zZXQ9bi5zZXR8fFMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQscG4pfWZ1bmN0aW9uIHluKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbXB1dGVkV2F0Y2hlcnMmJnRoaXMuX2NvbXB1dGVkV2F0Y2hlcnNbZV07aWYodClyZXR1cm4gdC5kaXJ0eSYmdC5ldmFsdWF0ZSgpLGNlLnRhcmdldCYmdC5kZXBlbmQoKSx0LnZhbHVlfX1mdW5jdGlvbiBnbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMsdGhpcyl9fWZ1bmN0aW9uIF9uKGUsdCxuLHIpe3JldHVybiBzKG4pJiYocj1uLG49bi5oYW5kbGVyKSwic3RyaW5nIj09dHlwZW9mIG4mJihuPWVbbl0pLGUuJHdhdGNoKHQsbixyKX12YXIgYm49MDtmdW5jdGlvbiAkbihlKXt2YXIgdD1lLm9wdGlvbnM7aWYoZS5zdXBlcil7dmFyIG49JG4oZS5zdXBlcik7aWYobiE9PWUuc3VwZXJPcHRpb25zKXtlLnN1cGVyT3B0aW9ucz1uO3ZhciByPWZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5vcHRpb25zLHI9ZS5zZWFsZWRPcHRpb25zO2Zvcih2YXIgaSBpbiBuKW5baV0hPT1yW2ldJiYodHx8KHQ9e30pLHRbaV09bltpXSk7cmV0dXJuIHR9KGUpO3ImJkEoZS5leHRlbmRPcHRpb25zLHIpLCh0PWUub3B0aW9ucz1EZShuLGUuZXh0ZW5kT3B0aW9ucykpLm5hbWUmJih0LmNvbXBvbmVudHNbdC5uYW1lXT1lKX19cmV0dXJuIHR9ZnVuY3Rpb24gd24oZSl7dGhpcy5faW5pdChlKX1mdW5jdGlvbiBDbihlKXtlLmNpZD0wO3ZhciB0PTE7ZS5leHRlbmQ9ZnVuY3Rpb24oZSl7ZT1lfHx7fTt2YXIgbj10aGlzLHI9bi5jaWQsaT1lLl9DdG9yfHwoZS5fQ3Rvcj17fSk7aWYoaVtyXSlyZXR1cm4gaVtyXTt2YXIgbz1lLm5hbWV8fG4ub3B0aW9ucy5uYW1lLGE9ZnVuY3Rpb24oZSl7dGhpcy5faW5pdChlKX07cmV0dXJuKGEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1hLGEuY2lkPXQrKyxhLm9wdGlvbnM9RGUobi5vcHRpb25zLGUpLGEuc3VwZXI9bixhLm9wdGlvbnMucHJvcHMmJmZ1bmN0aW9uKGUpe3ZhciB0PWUub3B0aW9ucy5wcm9wcztmb3IodmFyIG4gaW4gdClkbihlLnByb3RvdHlwZSwiX3Byb3BzIixuKX0oYSksYS5vcHRpb25zLmNvbXB1dGVkJiZmdW5jdGlvbihlKXt2YXIgdD1lLm9wdGlvbnMuY29tcHV0ZWQ7Zm9yKHZhciBuIGluIHQpbW4oZS5wcm90b3R5cGUsbix0W25dKX0oYSksYS5leHRlbmQ9bi5leHRlbmQsYS5taXhpbj1uLm1peGluLGEudXNlPW4udXNlLE0uZm9yRWFjaChmdW5jdGlvbihlKXthW2VdPW5bZV19KSxvJiYoYS5vcHRpb25zLmNvbXBvbmVudHNbb109YSksYS5zdXBlck9wdGlvbnM9bi5vcHRpb25zLGEuZXh0ZW5kT3B0aW9ucz1lLGEuc2VhbGVkT3B0aW9ucz1BKHt9LGEub3B0aW9ucyksaVtyXT1hLGF9fWZ1bmN0aW9uIHhuKGUpe3JldHVybiBlJiYoZS5DdG9yLm9wdGlvbnMubmFtZXx8ZS50YWcpfWZ1bmN0aW9uIGtuKGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/ZS5pbmRleE9mKHQpPi0xOiJzdHJpbmciPT10eXBlb2YgZT9lLnNwbGl0KCIsIikuaW5kZXhPZih0KT4tMToobj1lLCJbb2JqZWN0IFJlZ0V4cF0iPT09YS5jYWxsKG4pJiZlLnRlc3QodCkpO3ZhciBufWZ1bmN0aW9uIEFuKGUsdCl7dmFyIG49ZS5jYWNoZSxyPWUua2V5cyxpPWUuX3Zub2RlO2Zvcih2YXIgbyBpbiBuKXt2YXIgYT1uW29dO2lmKGEpe3ZhciBzPXhuKGEuY29tcG9uZW50T3B0aW9ucyk7cyYmIXQocykmJk9uKG4sbyxyLGkpfX19ZnVuY3Rpb24gT24oZSx0LG4scil7dmFyIGk9ZVt0XTshaXx8ciYmaS50YWc9PT1yLnRhZ3x8aS5jb21wb25lbnRJbnN0YW5jZS4kZGVzdHJveSgpLGVbdF09bnVsbCxoKG4sdCl9IWZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7bi5fdWlkPWJuKyssbi5faXNWdWU9ITAsdCYmdC5faXNDb21wb25lbnQ\/ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLiRvcHRpb25zPU9iamVjdC5jcmVhdGUoZS5jb25zdHJ1Y3Rvci5vcHRpb25zKSxyPXQuX3BhcmVudFZub2RlO24ucGFyZW50PXQucGFyZW50LG4uX3BhcmVudFZub2RlPXI7dmFyIGk9ci5jb21wb25lbnRPcHRpb25zO24ucHJvcHNEYXRhPWkucHJvcHNEYXRhLG4uX3BhcmVudExpc3RlbmVycz1pLmxpc3RlbmVycyxuLl9yZW5kZXJDaGlsZHJlbj1pLmNoaWxkcmVuLG4uX2NvbXBvbmVudFRhZz1pLnRhZyx0LnJlbmRlciYmKG4ucmVuZGVyPXQucmVuZGVyLG4uc3RhdGljUmVuZGVyRm5zPXQuc3RhdGljUmVuZGVyRm5zKX0obix0KTpuLiRvcHRpb25zPURlKCRuKG4uY29uc3RydWN0b3IpLHR8fHt9LG4pLG4uX3JlbmRlclByb3h5PW4sbi5fc2VsZj1uLGZ1bmN0aW9uKGUpe3ZhciB0PWUuJG9wdGlvbnMsbj10LnBhcmVudDtpZihuJiYhdC5hYnN0cmFjdCl7Zm9yKDtuLiRvcHRpb25zLmFic3RyYWN0JiZuLiRwYXJlbnQ7KW49bi4kcGFyZW50O24uJGNoaWxkcmVuLnB1c2goZSl9ZS4kcGFyZW50PW4sZS4kcm9vdD1uP24uJHJvb3Q6ZSxlLiRjaGlsZHJlbj1bXSxlLiRyZWZzPXt9LGUuX3dhdGNoZXI9bnVsbCxlLl9pbmFjdGl2ZT1udWxsLGUuX2RpcmVjdEluYWN0aXZlPSExLGUuX2lzTW91bnRlZD0hMSxlLl9pc0Rlc3Ryb3llZD0hMSxlLl9pc0JlaW5nRGVzdHJveWVkPSExfShuKSxmdW5jdGlvbihlKXtlLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxlLl9oYXNIb29rRXZlbnQ9ITE7dmFyIHQ9ZS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO3QmJnF0KGUsdCl9KG4pLGZ1bmN0aW9uKHQpe3QuX3Zub2RlPW51bGwsdC5fc3RhdGljVHJlZXM9bnVsbDt2YXIgbj10LiRvcHRpb25zLHI9dC4kdm5vZGU9bi5fcGFyZW50Vm5vZGUsaT1yJiZyLmNvbnRleHQ7dC4kc2xvdHM9dXQobi5fcmVuZGVyQ2hpbGRyZW4saSksdC4kc2NvcGVkU2xvdHM9ZSx0Ll9jPWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBQdCh0LGUsbixyLGksITEpfSx0LiRjcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBQdCh0LGUsbixyLGksITApfTt2YXIgbz1yJiZyLmRhdGE7eGUodCwiJGF0dHJzIixvJiZvLmF0dHJzfHxlLG51bGwsITApLHhlKHQsIiRsaXN0ZW5lcnMiLG4uX3BhcmVudExpc3RlbmVyc3x8ZSxudWxsLCEwKX0obiksWXQobiwiYmVmb3JlQ3JlYXRlIiksZnVuY3Rpb24oZSl7dmFyIHQ9Y3QoZS4kb3B0aW9ucy5pbmplY3QsZSk7dCYmKCRlKCExKSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3hlKGUsbix0W25dKX0pLCRlKCEwKSl9KG4pLHZuKG4pLGZ1bmN0aW9uKGUpe3ZhciB0PWUuJG9wdGlvbnMucHJvdmlkZTt0JiYoZS5fcHJvdmlkZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIHQ\/dC5jYWxsKGUpOnQpfShuKSxZdChuLCJjcmVhdGVkIiksbi4kb3B0aW9ucy5lbCYmbi4kbW91bnQobi4kb3B0aW9ucy5lbCl9fSh3biksZnVuY3Rpb24oZSl7dmFyIHQ9e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kYXRhfX0sbj17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Byb3BzfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCIkZGF0YSIsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCIkcHJvcHMiLG4pLGUucHJvdG90eXBlLiRzZXQ9a2UsZS5wcm90b3R5cGUuJGRlbGV0ZT1BZSxlLnByb3RvdHlwZS4kd2F0Y2g9ZnVuY3Rpb24oZSx0LG4pe2lmKHModCkpcmV0dXJuIF9uKHRoaXMsZSx0LG4pOyhuPW58fHt9KS51c2VyPSEwO3ZhciByPW5ldyBmbih0aGlzLGUsdCxuKTtpZihuLmltbWVkaWF0ZSl0cnl7dC5jYWxsKHRoaXMsci52YWx1ZSl9Y2F0Y2goZSl7UmUoZSx0aGlzLCdjYWxsYmFjayBmb3IgaW1tZWRpYXRlIHdhdGNoZXIgIicrci5leHByZXNzaW9uKyciJyl9cmV0dXJuIGZ1bmN0aW9uKCl7ci50ZWFyZG93bigpfX19KHduKSxmdW5jdGlvbihlKXt2YXIgdD0vXmhvb2s6LztlLnByb3RvdHlwZS4kb249ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciBpPTAsbz1lLmxlbmd0aDtpPG87aSsrKXIuJG9uKGVbaV0sbik7ZWxzZShyLl9ldmVudHNbZV18fChyLl9ldmVudHNbZV09W10pKS5wdXNoKG4pLHQudGVzdChlKSYmKHIuX2hhc0hvb2tFdmVudD0hMCk7cmV0dXJuIHJ9LGUucHJvdG90eXBlLiRvbmNlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztmdW5jdGlvbiByKCl7bi4kb2ZmKGUsciksdC5hcHBseShuLGFyZ3VtZW50cyl9cmV0dXJuIHIuZm49dCxuLiRvbihlLHIpLG59LGUucHJvdG90eXBlLiRvZmY9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBuLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxuO2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgcj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluLiRvZmYoZVtyXSx0KTtyZXR1cm4gbn12YXIgbyxhPW4uX2V2ZW50c1tlXTtpZighYSlyZXR1cm4gbjtpZighdClyZXR1cm4gbi5fZXZlbnRzW2VdPW51bGwsbjtmb3IodmFyIHM9YS5sZW5ndGg7cy0tOylpZigobz1hW3NdKT09PXR8fG8uZm49PT10KXthLnNwbGljZShzLDEpO2JyZWFrfXJldHVybiBufSxlLnByb3RvdHlwZS4kZW1pdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9ldmVudHNbZV07aWYodCl7dD10Lmxlbmd0aD4xP2sodCk6dDtmb3IodmFyIG49ayhhcmd1bWVudHMsMSkscj0nZXZlbnQgaGFuZGxlciBmb3IgIicrZSsnIicsaT0wLG89dC5sZW5ndGg7aTxvO2krKylIZSh0W2ldLHRoaXMsbix0aGlzLHIpfXJldHVybiB0aGlzfX0od24pLGZ1bmN0aW9uKGUpe2UucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9bi4kZWwsaT1uLl92bm9kZSxvPVp0KG4pO24uX3Zub2RlPWUsbi4kZWw9aT9uLl9fcGF0Y2hfXyhpLGUpOm4uX19wYXRjaF9fKG4uJGVsLGUsdCwhMSksbygpLHImJihyLl9fdnVlX189bnVsbCksbi4kZWwmJihuLiRlbC5fX3Z1ZV9fPW4pLG4uJHZub2RlJiZuLiRwYXJlbnQmJm4uJHZub2RlPT09bi4kcGFyZW50Ll92bm9kZSYmKG4uJHBhcmVudC4kZWw9bi4kZWwpfSxlLnByb3RvdHlwZS4kZm9yY2VVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl93YXRjaGVyJiZ0aGlzLl93YXRjaGVyLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS4kZGVzdHJveT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIWUuX2lzQmVpbmdEZXN0cm95ZWQpe1l0KGUsImJlZm9yZURlc3Ryb3kiKSxlLl9pc0JlaW5nRGVzdHJveWVkPSEwO3ZhciB0PWUuJHBhcmVudDshdHx8dC5faXNCZWluZ0Rlc3Ryb3llZHx8ZS4kb3B0aW9ucy5hYnN0cmFjdHx8aCh0LiRjaGlsZHJlbixlKSxlLl93YXRjaGVyJiZlLl93YXRjaGVyLnRlYXJkb3duKCk7Zm9yKHZhciBuPWUuX3dhdGNoZXJzLmxlbmd0aDtuLS07KWUuX3dhdGNoZXJzW25dLnRlYXJkb3duKCk7ZS5fZGF0YS5fX29iX18mJmUuX2RhdGEuX19vYl9fLnZtQ291bnQtLSxlLl9pc0Rlc3Ryb3llZD0hMCxlLl9fcGF0Y2hfXyhlLl92bm9kZSxudWxsKSxZdChlLCJkZXN0cm95ZWQiKSxlLiRvZmYoKSxlLiRlbCYmKGUuJGVsLl9fdnVlX189bnVsbCksZS4kdm5vZGUmJihlLiR2bm9kZS5wYXJlbnQ9bnVsbCl9fX0od24pLGZ1bmN0aW9uKGUpe1N0KGUucHJvdG90eXBlKSxlLnByb3RvdHlwZS4kbmV4dFRpY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIFllKGUsdGhpcyl9LGUucHJvdG90eXBlLl9yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMsbj10LiRvcHRpb25zLHI9bi5yZW5kZXIsaT1uLl9wYXJlbnRWbm9kZTtpJiYodC4kc2NvcGVkU2xvdHM9ZnQoaS5kYXRhLnNjb3BlZFNsb3RzLHQuJHNsb3RzLHQuJHNjb3BlZFNsb3RzKSksdC4kdm5vZGU9aTt0cnl7SHQ9dCxlPXIuY2FsbCh0Ll9yZW5kZXJQcm94eSx0LiRjcmVhdGVFbGVtZW50KX1jYXRjaChuKXtSZShuLHQsInJlbmRlciIpLGU9dC5fdm5vZGV9ZmluYWxseXtIdD1udWxsfXJldHVybiBBcnJheS5pc0FycmF5KGUpJiYxPT09ZS5sZW5ndGgmJihlPWVbMF0pLGUgaW5zdGFuY2VvZiBwZXx8KGU9dmUoKSksZS5wYXJlbnQ9aSxlfX0od24pO3ZhciBTbj1bU3RyaW5nLFJlZ0V4cCxBcnJheV0sVG49e0tlZXBBbGl2ZTp7bmFtZToia2VlcC1hbGl2ZSIsYWJzdHJhY3Q6ITAscHJvcHM6e2luY2x1ZGU6U24sZXhjbHVkZTpTbixtYXg6W1N0cmluZyxOdW1iZXJdfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMua2V5cz1bXX0sZGVzdHJveWVkOmZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuY2FjaGUpT24odGhpcy5jYWNoZSxlLHRoaXMua2V5cyl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuJHdhdGNoKCJpbmNsdWRlIixmdW5jdGlvbih0KXtBbihlLGZ1bmN0aW9uKGUpe3JldHVybiBrbih0LGUpfSl9KSx0aGlzLiR3YXRjaCgiZXhjbHVkZSIsZnVuY3Rpb24odCl7QW4oZSxmdW5jdGlvbihlKXtyZXR1cm4ha24odCxlKX0pfSl9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuJHNsb3RzLmRlZmF1bHQsdD16dChlKSxuPXQmJnQuY29tcG9uZW50T3B0aW9ucztpZihuKXt2YXIgcj14bihuKSxpPXRoaXMuaW5jbHVkZSxvPXRoaXMuZXhjbHVkZTtpZihpJiYoIXJ8fCFrbihpLHIpKXx8byYmciYma24obyxyKSlyZXR1cm4gdDt2YXIgYT10aGlzLmNhY2hlLHM9dGhpcy5rZXlzLGM9bnVsbD09dC5rZXk\/bi5DdG9yLmNpZCsobi50YWc\/Ijo6IituLnRhZzoiIik6dC5rZXk7YVtjXT8odC5jb21wb25lbnRJbnN0YW5jZT1hW2NdLmNvbXBvbmVudEluc3RhbmNlLGgocyxjKSxzLnB1c2goYykpOihhW2NdPXQscy5wdXNoKGMpLHRoaXMubWF4JiZzLmxlbmd0aD5wYXJzZUludCh0aGlzLm1heCkmJk9uKGEsc1swXSxzLHRoaXMuX3Zub2RlKSksdC5kYXRhLmtlZXBBbGl2ZT0hMH1yZXR1cm4gdHx8ZSYmZVswXX19fTshZnVuY3Rpb24oZSl7dmFyIHQ9e2dldDpmdW5jdGlvbigpe3JldHVybiBGfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImNvbmZpZyIsdCksZS51dGlsPXt3YXJuOmFlLGV4dGVuZDpBLG1lcmdlT3B0aW9uczpEZSxkZWZpbmVSZWFjdGl2ZTp4ZX0sZS5zZXQ9a2UsZS5kZWxldGU9QWUsZS5uZXh0VGljaz1ZZSxlLm9ic2VydmFibGU9ZnVuY3Rpb24oZSl7cmV0dXJuIENlKGUpLGV9LGUub3B0aW9ucz1PYmplY3QuY3JlYXRlKG51bGwpLE0uZm9yRWFjaChmdW5jdGlvbih0KXtlLm9wdGlvbnNbdCsicyJdPU9iamVjdC5jcmVhdGUobnVsbCl9KSxlLm9wdGlvbnMuX2Jhc2U9ZSxBKGUub3B0aW9ucy5jb21wb25lbnRzLFRuKSxmdW5jdGlvbihlKXtlLnVzZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pbnN0YWxsZWRQbHVnaW5zfHwodGhpcy5faW5zdGFsbGVkUGx1Z2lucz1bXSk7aWYodC5pbmRleE9mKGUpPi0xKXJldHVybiB0aGlzO3ZhciBuPWsoYXJndW1lbnRzLDEpO3JldHVybiBuLnVuc2hpZnQodGhpcyksImZ1bmN0aW9uIj09dHlwZW9mIGUuaW5zdGFsbD9lLmluc3RhbGwuYXBwbHkoZSxuKToiZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5hcHBseShudWxsLG4pLHQucHVzaChlKSx0aGlzfX0oZSksZnVuY3Rpb24oZSl7ZS5taXhpbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vcHRpb25zPURlKHRoaXMub3B0aW9ucyxlKSx0aGlzfX0oZSksQ24oZSksZnVuY3Rpb24oZSl7TS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2VbdF09ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbj8oImNvbXBvbmVudCI9PT10JiZzKG4pJiYobi5uYW1lPW4ubmFtZXx8ZSxuPXRoaXMub3B0aW9ucy5fYmFzZS5leHRlbmQobikpLCJkaXJlY3RpdmUiPT09dCYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJihuPXtiaW5kOm4sdXBkYXRlOm59KSx0aGlzLm9wdGlvbnNbdCsicyJdW2VdPW4sbik6dGhpcy5vcHRpb25zW3QrInMiXVtlXX19KX0oZSl9KHduKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod24ucHJvdG90eXBlLCIkaXNTZXJ2ZXIiLHtnZXQ6dGV9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkod24ucHJvdG90eXBlLCIkc3NyQ29udGV4dCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiR2bm9kZSYmdGhpcy4kdm5vZGUuc3NyQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkod24sIkZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0Iix7dmFsdWU6VHR9KSx3bi52ZXJzaW9uPSIyLjYuMTEiO3ZhciBFbj1wKCJzdHlsZSxjbGFzcyIpLE5uPXAoImlucHV0LHRleHRhcmVhLG9wdGlvbixzZWxlY3QscHJvZ3Jlc3MiKSxqbj1mdW5jdGlvbihlLHQsbil7cmV0dXJuInZhbHVlIj09PW4mJk5uKGUpJiYiYnV0dG9uIiE9PXR8fCJzZWxlY3RlZCI9PT1uJiYib3B0aW9uIj09PWV8fCJjaGVja2VkIj09PW4mJiJpbnB1dCI9PT1lfHwibXV0ZWQiPT09biYmInZpZGVvIj09PWV9LERuPXAoImNvbnRlbnRlZGl0YWJsZSxkcmFnZ2FibGUsc3BlbGxjaGVjayIpLExuPXAoImV2ZW50cyxjYXJldCx0eXBpbmcscGxhaW50ZXh0LW9ubHkiKSxNbj1mdW5jdGlvbihlLHQpe3JldHVybiBIbih0KXx8ImZhbHNlIj09PXQ\/ImZhbHNlIjoiY29udGVudGVkaXRhYmxlIj09PWUmJkxuKHQpP3Q6InRydWUifSxJbj1wKCJhbGxvd2Z1bGxzY3JlZW4sYXN5bmMsYXV0b2ZvY3VzLGF1dG9wbGF5LGNoZWNrZWQsY29tcGFjdCxjb250cm9scyxkZWNsYXJlLGRlZmF1bHQsZGVmYXVsdGNoZWNrZWQsZGVmYXVsdG11dGVkLGRlZmF1bHRzZWxlY3RlZCxkZWZlcixkaXNhYmxlZCxlbmFibGVkLGZvcm1ub3ZhbGlkYXRlLGhpZGRlbixpbmRldGVybWluYXRlLGluZXJ0LGlzbWFwLGl0ZW1zY29wZSxsb29wLG11bHRpcGxlLG11dGVkLG5vaHJlZixub3Jlc2l6ZSxub3NoYWRlLG5vdmFsaWRhdGUsbm93cmFwLG9wZW4scGF1c2VvbmV4aXQscmVhZG9ubHkscmVxdWlyZWQscmV2ZXJzZWQsc2NvcGVkLHNlYW1sZXNzLHNlbGVjdGVkLHNvcnRhYmxlLHRyYW5zbGF0ZSx0cnVlc3BlZWQsdHlwZW11c3RtYXRjaCx2aXNpYmxlIiksRm49Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLFBuPWZ1bmN0aW9uKGUpe3JldHVybiI6Ij09PWUuY2hhckF0KDUpJiYieGxpbmsiPT09ZS5zbGljZSgwLDUpfSxSbj1mdW5jdGlvbihlKXtyZXR1cm4gUG4oZSk\/ZS5zbGljZSg2LGUubGVuZ3RoKToiIn0sSG49ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWV8fCExPT09ZX07ZnVuY3Rpb24gQm4oZSl7Zm9yKHZhciB0PWUuZGF0YSxyPWUsaT1lO24oaS5jb21wb25lbnRJbnN0YW5jZSk7KShpPWkuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlKSYmaS5kYXRhJiYodD1VbihpLmRhdGEsdCkpO2Zvcig7bihyPXIucGFyZW50KTspciYmci5kYXRhJiYodD1Vbih0LHIuZGF0YSkpO3JldHVybiBmdW5jdGlvbihlLHQpe2lmKG4oZSl8fG4odCkpcmV0dXJuIHpuKGUsVm4odCkpO3JldHVybiIifSh0LnN0YXRpY0NsYXNzLHQuY2xhc3MpfWZ1bmN0aW9uIFVuKGUsdCl7cmV0dXJue3N0YXRpY0NsYXNzOnpuKGUuc3RhdGljQ2xhc3MsdC5zdGF0aWNDbGFzcyksY2xhc3M6bihlLmNsYXNzKT9bZS5jbGFzcyx0LmNsYXNzXTp0LmNsYXNzfX1mdW5jdGlvbiB6bihlLHQpe3JldHVybiBlP3Q\/ZSsiICIrdDplOnR8fCIifWZ1bmN0aW9uIFZuKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2Z1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPSIiLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspbih0PVZuKGVbaV0pKSYmIiIhPT10JiYociYmKHIrPSIgIikscis9dCk7cmV0dXJuIHJ9KGUpOm8oZSk\/ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7Zm9yKHZhciBuIGluIGUpZVtuXSYmKHQmJih0Kz0iICIpLHQrPW4pO3JldHVybiB0fShlKToic3RyaW5nIj09dHlwZW9mIGU\/ZToiIn12YXIgS249e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwifSxKbj1wKCJodG1sLGJvZHksYmFzZSxoZWFkLGxpbmssbWV0YSxzdHlsZSx0aXRsZSxhZGRyZXNzLGFydGljbGUsYXNpZGUsZm9vdGVyLGhlYWRlcixoMSxoMixoMyxoNCxoNSxoNixoZ3JvdXAsbmF2LHNlY3Rpb24sZGl2LGRkLGRsLGR0LGZpZ2NhcHRpb24sZmlndXJlLHBpY3R1cmUsaHIsaW1nLGxpLG1haW4sb2wscCxwcmUsdWwsYSxiLGFiYnIsYmRpLGJkbyxicixjaXRlLGNvZGUsZGF0YSxkZm4sZW0saSxrYmQsbWFyayxxLHJwLHJ0LHJ0YyxydWJ5LHMsc2FtcCxzbWFsbCxzcGFuLHN0cm9uZyxzdWIsc3VwLHRpbWUsdSx2YXIsd2JyLGFyZWEsYXVkaW8sbWFwLHRyYWNrLHZpZGVvLGVtYmVkLG9iamVjdCxwYXJhbSxzb3VyY2UsY2FudmFzLHNjcmlwdCxub3NjcmlwdCxkZWwsaW5zLGNhcHRpb24sY29sLGNvbGdyb3VwLHRhYmxlLHRoZWFkLHRib2R5LHRkLHRoLHRyLGJ1dHRvbixkYXRhbGlzdCxmaWVsZHNldCxmb3JtLGlucHV0LGxhYmVsLGxlZ2VuZCxtZXRlcixvcHRncm91cCxvcHRpb24sb3V0cHV0LHByb2dyZXNzLHNlbGVjdCx0ZXh0YXJlYSxkZXRhaWxzLGRpYWxvZyxtZW51LG1lbnVpdGVtLHN1bW1hcnksY29udGVudCxlbGVtZW50LHNoYWRvdyx0ZW1wbGF0ZSxibG9ja3F1b3RlLGlmcmFtZSx0Zm9vdCIpLHFuPXAoInN2ZyxhbmltYXRlLGNpcmNsZSxjbGlwcGF0aCxjdXJzb3IsZGVmcyxkZXNjLGVsbGlwc2UsZmlsdGVyLGZvbnQtZmFjZSxmb3JlaWduT2JqZWN0LGcsZ2x5cGgsaW1hZ2UsbGluZSxtYXJrZXIsbWFzayxtaXNzaW5nLWdseXBoLHBhdGgscGF0dGVybixwb2x5Z29uLHBvbHlsaW5lLHJlY3Qsc3dpdGNoLHN5bWJvbCx0ZXh0LHRleHRwYXRoLHRzcGFuLHVzZSx2aWV3IiwhMCksV249ZnVuY3Rpb24oZSl7cmV0dXJuIEpuKGUpfHxxbihlKX07ZnVuY3Rpb24gWm4oZSl7cmV0dXJuIHFuKGUpPyJzdmciOiJtYXRoIj09PWU\/Im1hdGgiOnZvaWQgMH12YXIgR249T2JqZWN0LmNyZWF0ZShudWxsKTt2YXIgWG49cCgidGV4dCxudW1iZXIscGFzc3dvcmQsc2VhcmNoLGVtYWlsLHRlbCx1cmwiKTtmdW5jdGlvbiBZbihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk7cmV0dXJuIHR8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpfXJldHVybiBlfXZhciBRbj1PYmplY3QuZnJlZXplKHtjcmVhdGVFbGVtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4ic2VsZWN0IiE9PWU\/bjoodC5kYXRhJiZ0LmRhdGEuYXR0cnMmJnZvaWQgMCE9PXQuZGF0YS5hdHRycy5tdWx0aXBsZSYmbi5zZXRBdHRyaWJ1dGUoIm11bHRpcGxlIiwibXVsdGlwbGUiKSxuKX0sY3JlYXRlRWxlbWVudE5TOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhLbltlXSx0KX0sY3JlYXRlVGV4dE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpfSxjcmVhdGVDb21tZW50OmZ1bmN0aW9uKGUpe3JldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KGUpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oZSx0LG4pe2UuaW5zZXJ0QmVmb3JlKHQsbil9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKGUsdCl7ZS5yZW1vdmVDaGlsZCh0KX0sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24oZSx0KXtlLmFwcGVuZENoaWxkKHQpfSxwYXJlbnROb2RlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnBhcmVudE5vZGV9LG5leHRTaWJsaW5nOmZ1bmN0aW9uKGUpe3JldHVybiBlLm5leHRTaWJsaW5nfSx0YWdOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRhZ05hbWV9LHNldFRleHRDb250ZW50OmZ1bmN0aW9uKGUsdCl7ZS50ZXh0Q29udGVudD10fSxzZXRTdHlsZVNjb3BlOmZ1bmN0aW9uKGUsdCl7ZS5zZXRBdHRyaWJ1dGUodCwiIil9fSksZXI9e2NyZWF0ZTpmdW5jdGlvbihlLHQpe3RyKHQpfSx1cGRhdGU6ZnVuY3Rpb24oZSx0KXtlLmRhdGEucmVmIT09dC5kYXRhLnJlZiYmKHRyKGUsITApLHRyKHQpKX0sZGVzdHJveTpmdW5jdGlvbihlKXt0cihlLCEwKX19O2Z1bmN0aW9uIHRyKGUsdCl7dmFyIHI9ZS5kYXRhLnJlZjtpZihuKHIpKXt2YXIgaT1lLmNvbnRleHQsbz1lLmNvbXBvbmVudEluc3RhbmNlfHxlLmVsbSxhPWkuJHJlZnM7dD9BcnJheS5pc0FycmF5KGFbcl0pP2goYVtyXSxvKTphW3JdPT09byYmKGFbcl09dm9pZCAwKTplLmRhdGEucmVmSW5Gb3I\/QXJyYXkuaXNBcnJheShhW3JdKT9hW3JdLmluZGV4T2Yobyk8MCYmYVtyXS5wdXNoKG8pOmFbcl09W29dOmFbcl09b319dmFyIG5yPW5ldyBwZSgiIix7fSxbXSkscnI9WyJjcmVhdGUiLCJhY3RpdmF0ZSIsInVwZGF0ZSIsInJlbW92ZSIsImRlc3Ryb3kiXTtmdW5jdGlvbiBpcihlLGkpe3JldHVybiBlLmtleT09PWkua2V5JiYoZS50YWc9PT1pLnRhZyYmZS5pc0NvbW1lbnQ9PT1pLmlzQ29tbWVudCYmbihlLmRhdGEpPT09bihpLmRhdGEpJiZmdW5jdGlvbihlLHQpe2lmKCJpbnB1dCIhPT1lLnRhZylyZXR1cm4hMDt2YXIgcixpPW4ocj1lLmRhdGEpJiZuKHI9ci5hdHRycykmJnIudHlwZSxvPW4ocj10LmRhdGEpJiZuKHI9ci5hdHRycykmJnIudHlwZTtyZXR1cm4gaT09PW98fFhuKGkpJiZYbihvKX0oZSxpKXx8cihlLmlzQXN5bmNQbGFjZWhvbGRlcikmJmUuYXN5bmNGYWN0b3J5PT09aS5hc3luY0ZhY3RvcnkmJnQoaS5hc3luY0ZhY3RvcnkuZXJyb3IpKX1mdW5jdGlvbiBvcihlLHQscil7dmFyIGksbyxhPXt9O2ZvcihpPXQ7aTw9cjsrK2kpbihvPWVbaV0ua2V5KSYmKGFbb109aSk7cmV0dXJuIGF9dmFyIGFyPXtjcmVhdGU6c3IsdXBkYXRlOnNyLGRlc3Ryb3k6ZnVuY3Rpb24oZSl7c3IoZSxucil9fTtmdW5jdGlvbiBzcihlLHQpeyhlLmRhdGEuZGlyZWN0aXZlc3x8dC5kYXRhLmRpcmVjdGl2ZXMpJiZmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvPWU9PT1ucixhPXQ9PT1ucixzPXVyKGUuZGF0YS5kaXJlY3RpdmVzLGUuY29udGV4dCksYz11cih0LmRhdGEuZGlyZWN0aXZlcyx0LmNvbnRleHQpLHU9W10sbD1bXTtmb3IobiBpbiBjKXI9c1tuXSxpPWNbbl0scj8oaS5vbGRWYWx1ZT1yLnZhbHVlLGkub2xkQXJnPXIuYXJnLGZyKGksInVwZGF0ZSIsdCxlKSxpLmRlZiYmaS5kZWYuY29tcG9uZW50VXBkYXRlZCYmbC5wdXNoKGkpKTooZnIoaSwiYmluZCIsdCxlKSxpLmRlZiYmaS5kZWYuaW5zZXJ0ZWQmJnUucHVzaChpKSk7aWYodS5sZW5ndGgpe3ZhciBmPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPTA7bjx1Lmxlbmd0aDtuKyspZnIodVtuXSwiaW5zZXJ0ZWQiLHQsZSl9O28\/aXQodCwiaW5zZXJ0IixmKTpmKCl9bC5sZW5ndGgmJml0KHQsInBvc3RwYXRjaCIsZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPGwubGVuZ3RoO24rKylmcihsW25dLCJjb21wb25lbnRVcGRhdGVkIix0LGUpfSk7aWYoIW8pZm9yKG4gaW4gcyljW25dfHxmcihzW25dLCJ1bmJpbmQiLGUsZSxhKX0oZSx0KX12YXIgY3I9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiB1cihlLHQpe3ZhciBuLHIsaT1PYmplY3QuY3JlYXRlKG51bGwpO2lmKCFlKXJldHVybiBpO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspKHI9ZVtuXSkubW9kaWZpZXJzfHwoci5tb2RpZmllcnM9Y3IpLGlbbHIocildPXIsci5kZWY9TGUodC4kb3B0aW9ucywiZGlyZWN0aXZlcyIsci5uYW1lKTtyZXR1cm4gaX1mdW5jdGlvbiBscihlKXtyZXR1cm4gZS5yYXdOYW1lfHxlLm5hbWUrIi4iK09iamVjdC5rZXlzKGUubW9kaWZpZXJzfHx7fSkuam9pbigiLiIpfWZ1bmN0aW9uIGZyKGUsdCxuLHIsaSl7dmFyIG89ZS5kZWYmJmUuZGVmW3RdO2lmKG8pdHJ5e28obi5lbG0sZSxuLHIsaSl9Y2F0Y2gocil7UmUocixuLmNvbnRleHQsImRpcmVjdGl2ZSAiK2UubmFtZSsiICIrdCsiIGhvb2siKX19dmFyIHByPVtlcixhcl07ZnVuY3Rpb24gZHIoZSxyKXt2YXIgaT1yLmNvbXBvbmVudE9wdGlvbnM7aWYoIShuKGkpJiYhMT09PWkuQ3Rvci5vcHRpb25zLmluaGVyaXRBdHRyc3x8dChlLmRhdGEuYXR0cnMpJiZ0KHIuZGF0YS5hdHRycykpKXt2YXIgbyxhLHM9ci5lbG0sYz1lLmRhdGEuYXR0cnN8fHt9LHU9ci5kYXRhLmF0dHJzfHx7fTtmb3IobyBpbiBuKHUuX19vYl9fKSYmKHU9ci5kYXRhLmF0dHJzPUEoe30sdSkpLHUpYT11W29dLGNbb10hPT1hJiZ2cihzLG8sYSk7Zm9yKG8gaW4ocXx8WikmJnUudmFsdWUhPT1jLnZhbHVlJiZ2cihzLCJ2YWx1ZSIsdS52YWx1ZSksYyl0KHVbb10pJiYoUG4obyk\/cy5yZW1vdmVBdHRyaWJ1dGVOUyhGbixSbihvKSk6RG4obyl8fHMucmVtb3ZlQXR0cmlidXRlKG8pKX19ZnVuY3Rpb24gdnIoZSx0LG4pe2UudGFnTmFtZS5pbmRleE9mKCItIik+LTE\/aHIoZSx0LG4pOkluKHQpP0huKG4pP2UucmVtb3ZlQXR0cmlidXRlKHQpOihuPSJhbGxvd2Z1bGxzY3JlZW4iPT09dCYmIkVNQkVEIj09PWUudGFnTmFtZT8idHJ1ZSI6dCxlLnNldEF0dHJpYnV0ZSh0LG4pKTpEbih0KT9lLnNldEF0dHJpYnV0ZSh0LE1uKHQsbikpOlBuKHQpP0huKG4pP2UucmVtb3ZlQXR0cmlidXRlTlMoRm4sUm4odCkpOmUuc2V0QXR0cmlidXRlTlMoRm4sdCxuKTpocihlLHQsbil9ZnVuY3Rpb24gaHIoZSx0LG4pe2lmKEhuKG4pKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7aWYocSYmIVcmJiJURVhUQVJFQSI9PT1lLnRhZ05hbWUmJiJwbGFjZWhvbGRlciI9PT10JiYiIiE9PW4mJiFlLl9faWVwaCl7dmFyIHI9ZnVuY3Rpb24odCl7dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImlucHV0IixyKX07ZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsciksZS5fX2llcGg9ITB9ZS5zZXRBdHRyaWJ1dGUodCxuKX19dmFyIG1yPXtjcmVhdGU6ZHIsdXBkYXRlOmRyfTtmdW5jdGlvbiB5cihlLHIpe3ZhciBpPXIuZWxtLG89ci5kYXRhLGE9ZS5kYXRhO2lmKCEodChvLnN0YXRpY0NsYXNzKSYmdChvLmNsYXNzKSYmKHQoYSl8fHQoYS5zdGF0aWNDbGFzcykmJnQoYS5jbGFzcykpKSl7dmFyIHM9Qm4ociksYz1pLl90cmFuc2l0aW9uQ2xhc3NlcztuKGMpJiYocz16bihzLFZuKGMpKSkscyE9PWkuX3ByZXZDbGFzcyYmKGkuc2V0QXR0cmlidXRlKCJjbGFzcyIscyksaS5fcHJldkNsYXNzPXMpfX12YXIgZ3IsX3IsYnIsJHIsd3IsQ3IseHI9e2NyZWF0ZTp5cix1cGRhdGU6eXJ9LGtyPS9bXHcpLitcLV8kXF1dLztmdW5jdGlvbiBBcihlKXt2YXIgdCxuLHIsaSxvLGE9ITEscz0hMSxjPSExLHU9ITEsbD0wLGY9MCxwPTAsZD0wO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspaWYobj10LHQ9ZS5jaGFyQ29kZUF0KHIpLGEpMzk9PT10JiY5MiE9PW4mJihhPSExKTtlbHNlIGlmKHMpMzQ9PT10JiY5MiE9PW4mJihzPSExKTtlbHNlIGlmKGMpOTY9PT10JiY5MiE9PW4mJihjPSExKTtlbHNlIGlmKHUpNDc9PT10JiY5MiE9PW4mJih1PSExKTtlbHNlIGlmKDEyNCE9PXR8fDEyND09PWUuY2hhckNvZGVBdChyKzEpfHwxMjQ9PT1lLmNoYXJDb2RlQXQoci0xKXx8bHx8Znx8cCl7c3dpdGNoKHQpe2Nhc2UgMzQ6cz0hMDticmVhaztjYXNlIDM5OmE9ITA7YnJlYWs7Y2FzZSA5NjpjPSEwO2JyZWFrO2Nhc2UgNDA6cCsrO2JyZWFrO2Nhc2UgNDE6cC0tO2JyZWFrO2Nhc2UgOTE6ZisrO2JyZWFrO2Nhc2UgOTM6Zi0tO2JyZWFrO2Nhc2UgMTIzOmwrKzticmVhaztjYXNlIDEyNTpsLS19aWYoNDc9PT10KXtmb3IodmFyIHY9ci0xLGg9dm9pZCAwO3Y+PTAmJiIgIj09PShoPWUuY2hhckF0KHYpKTt2LS0pO2gmJmtyLnRlc3QoaCl8fCh1PSEwKX19ZWxzZSB2b2lkIDA9PT1pPyhkPXIrMSxpPWUuc2xpY2UoMCxyKS50cmltKCkpOm0oKTtmdW5jdGlvbiBtKCl7KG98fChvPVtdKSkucHVzaChlLnNsaWNlKGQscikudHJpbSgpKSxkPXIrMX1pZih2b2lkIDA9PT1pP2k9ZS5zbGljZSgwLHIpLnRyaW0oKTowIT09ZCYmbSgpLG8pZm9yKHI9MDtyPG8ubGVuZ3RoO3IrKylpPU9yKGksb1tyXSk7cmV0dXJuIGl9ZnVuY3Rpb24gT3IoZSx0KXt2YXIgbj10LmluZGV4T2YoIigiKTtpZihuPDApcmV0dXJuJ19mKCInK3QrJyIpKCcrZSsiKSI7dmFyIHI9dC5zbGljZSgwLG4pLGk9dC5zbGljZShuKzEpO3JldHVybidfZigiJytyKyciKSgnK2UrKCIpIiE9PWk\/IiwiK2k6aSl9ZnVuY3Rpb24gU3IoZSx0KXtjb25zb2xlLmVycm9yKCJbVnVlIGNvbXBpbGVyXTogIitlKX1mdW5jdGlvbiBUcihlLHQpe3JldHVybiBlP2UubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlW3RdfSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSk6W119ZnVuY3Rpb24gRXIoZSx0LG4scixpKXsoZS5wcm9wc3x8KGUucHJvcHM9W10pKS5wdXNoKFJyKHtuYW1lOnQsdmFsdWU6bixkeW5hbWljOml9LHIpKSxlLnBsYWluPSExfWZ1bmN0aW9uIE5yKGUsdCxuLHIsaSl7KGk\/ZS5keW5hbWljQXR0cnN8fChlLmR5bmFtaWNBdHRycz1bXSk6ZS5hdHRyc3x8KGUuYXR0cnM9W10pKS5wdXNoKFJyKHtuYW1lOnQsdmFsdWU6bixkeW5hbWljOml9LHIpKSxlLnBsYWluPSExfWZ1bmN0aW9uIGpyKGUsdCxuLHIpe2UuYXR0cnNNYXBbdF09bixlLmF0dHJzTGlzdC5wdXNoKFJyKHtuYW1lOnQsdmFsdWU6bn0scikpfWZ1bmN0aW9uIERyKGUsdCxuLHIsaSxvLGEscyl7KGUuZGlyZWN0aXZlc3x8KGUuZGlyZWN0aXZlcz1bXSkpLnB1c2goUnIoe25hbWU6dCxyYXdOYW1lOm4sdmFsdWU6cixhcmc6aSxpc0R5bmFtaWNBcmc6byxtb2RpZmllcnM6YX0scykpLGUucGxhaW49ITF9ZnVuY3Rpb24gTHIoZSx0LG4pe3JldHVybiBuPyJfcCgiK3QrJywiJytlKyciKSc6ZSt0fWZ1bmN0aW9uIE1yKHQsbixyLGksbyxhLHMsYyl7dmFyIHU7KGk9aXx8ZSkucmlnaHQ\/Yz9uPSIoIituKyIpPT09J2NsaWNrJz8nY29udGV4dG1lbnUnOigiK24rIikiOiJjbGljayI9PT1uJiYobj0iY29udGV4dG1lbnUiLGRlbGV0ZSBpLnJpZ2h0KTppLm1pZGRsZSYmKGM\/bj0iKCIrbisiKT09PSdjbGljayc\/J21vdXNldXAnOigiK24rIikiOiJjbGljayI9PT1uJiYobj0ibW91c2V1cCIpKSxpLmNhcHR1cmUmJihkZWxldGUgaS5jYXB0dXJlLG49THIoIiEiLG4sYykpLGkub25jZSYmKGRlbGV0ZSBpLm9uY2Usbj1McigifiIsbixjKSksaS5wYXNzaXZlJiYoZGVsZXRlIGkucGFzc2l2ZSxuPUxyKCImIixuLGMpKSxpLm5hdGl2ZT8oZGVsZXRlIGkubmF0aXZlLHU9dC5uYXRpdmVFdmVudHN8fCh0Lm5hdGl2ZUV2ZW50cz17fSkpOnU9dC5ldmVudHN8fCh0LmV2ZW50cz17fSk7dmFyIGw9UnIoe3ZhbHVlOnIudHJpbSgpLGR5bmFtaWM6Y30scyk7aSE9PWUmJihsLm1vZGlmaWVycz1pKTt2YXIgZj11W25dO0FycmF5LmlzQXJyYXkoZik\/bz9mLnVuc2hpZnQobCk6Zi5wdXNoKGwpOnVbbl09Zj9vP1tsLGZdOltmLGxdOmwsdC5wbGFpbj0hMX1mdW5jdGlvbiBJcihlLHQsbil7dmFyIHI9RnIoZSwiOiIrdCl8fEZyKGUsInYtYmluZDoiK3QpO2lmKG51bGwhPXIpcmV0dXJuIEFyKHIpO2lmKCExIT09bil7dmFyIGk9RnIoZSx0KTtpZihudWxsIT1pKXJldHVybiBKU09OLnN0cmluZ2lmeShpKX19ZnVuY3Rpb24gRnIoZSx0LG4pe3ZhciByO2lmKG51bGwhPShyPWUuYXR0cnNNYXBbdF0pKWZvcih2YXIgaT1lLmF0dHJzTGlzdCxvPTAsYT1pLmxlbmd0aDtvPGE7bysrKWlmKGlbb10ubmFtZT09PXQpe2kuc3BsaWNlKG8sMSk7YnJlYWt9cmV0dXJuIG4mJmRlbGV0ZSBlLmF0dHJzTWFwW3RdLHJ9ZnVuY3Rpb24gUHIoZSx0KXtmb3IodmFyIG49ZS5hdHRyc0xpc3Qscj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl7dmFyIG89bltyXTtpZih0LnRlc3Qoby5uYW1lKSlyZXR1cm4gbi5zcGxpY2UociwxKSxvfX1mdW5jdGlvbiBScihlLHQpe3JldHVybiB0JiYobnVsbCE9dC5zdGFydCYmKGUuc3RhcnQ9dC5zdGFydCksbnVsbCE9dC5lbmQmJihlLmVuZD10LmVuZCkpLGV9ZnVuY3Rpb24gSHIoZSx0LG4pe3ZhciByPW58fHt9LGk9ci5udW1iZXIsbz0iJCR2IjtyLnRyaW0mJihvPSIodHlwZW9mICQkdiA9PT0gJ3N0cmluZyc\/ICQkdi50cmltKCk6ICQkdikiKSxpJiYobz0iX24oIitvKyIpIik7dmFyIGE9QnIodCxvKTtlLm1vZGVsPXt2YWx1ZToiKCIrdCsiKSIsZXhwcmVzc2lvbjpKU09OLnN0cmluZ2lmeSh0KSxjYWxsYmFjazoiZnVuY3Rpb24gKCQkdikgeyIrYSsifSJ9fWZ1bmN0aW9uIEJyKGUsdCl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoZT1lLnRyaW0oKSxncj1lLmxlbmd0aCxlLmluZGV4T2YoIlsiKTwwfHxlLmxhc3RJbmRleE9mKCJdIik8Z3ItMSlyZXR1cm4oJHI9ZS5sYXN0SW5kZXhPZigiLiIpKT4tMT97ZXhwOmUuc2xpY2UoMCwkciksa2V5OiciJytlLnNsaWNlKCRyKzEpKyciJ306e2V4cDplLGtleTpudWxsfTtfcj1lLCRyPXdyPUNyPTA7Zm9yKDshenIoKTspVnIoYnI9VXIoKSk\/SnIoYnIpOjkxPT09YnImJktyKGJyKTtyZXR1cm57ZXhwOmUuc2xpY2UoMCx3ciksa2V5OmUuc2xpY2Uod3IrMSxDcil9fShlKTtyZXR1cm4gbnVsbD09PW4ua2V5P2UrIj0iK3Q6IiRzZXQoIituLmV4cCsiLCAiK24ua2V5KyIsICIrdCsiKSJ9ZnVuY3Rpb24gVXIoKXtyZXR1cm4gX3IuY2hhckNvZGVBdCgrKyRyKX1mdW5jdGlvbiB6cigpe3JldHVybiAkcj49Z3J9ZnVuY3Rpb24gVnIoZSl7cmV0dXJuIDM0PT09ZXx8Mzk9PT1lfWZ1bmN0aW9uIEtyKGUpe3ZhciB0PTE7Zm9yKHdyPSRyOyF6cigpOylpZihWcihlPVVyKCkpKUpyKGUpO2Vsc2UgaWYoOTE9PT1lJiZ0KyssOTM9PT1lJiZ0LS0sMD09PXQpe0NyPSRyO2JyZWFrfX1mdW5jdGlvbiBKcihlKXtmb3IodmFyIHQ9ZTshenIoKSYmKGU9VXIoKSkhPT10Oyk7fXZhciBxcixXcj0iX19yIixacj0iX19jIjtmdW5jdGlvbiBHcihlLHQsbil7dmFyIHI9cXI7cmV0dXJuIGZ1bmN0aW9uIGkoKXtudWxsIT09dC5hcHBseShudWxsLGFyZ3VtZW50cykmJlFyKGUsaSxuLHIpfX12YXIgWHI9VmUmJiEoWCYmTnVtYmVyKFhbMV0pPD01Myk7ZnVuY3Rpb24gWXIoZSx0LG4scil7aWYoWHIpe3ZhciBpPWFuLG89dDt0PW8uX3dyYXBwZXI9ZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQ9PT1lLmN1cnJlbnRUYXJnZXR8fGUudGltZVN0YW1wPj1pfHxlLnRpbWVTdGFtcDw9MHx8ZS50YXJnZXQub3duZXJEb2N1bWVudCE9PWRvY3VtZW50KXJldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19cXIuYWRkRXZlbnRMaXN0ZW5lcihlLHQsUT97Y2FwdHVyZTpuLHBhc3NpdmU6cn06bil9ZnVuY3Rpb24gUXIoZSx0LG4scil7KHJ8fHFyKS5yZW1vdmVFdmVudExpc3RlbmVyKGUsdC5fd3JhcHBlcnx8dCxuKX1mdW5jdGlvbiBlaShlLHIpe2lmKCF0KGUuZGF0YS5vbil8fCF0KHIuZGF0YS5vbikpe3ZhciBpPXIuZGF0YS5vbnx8e30sbz1lLmRhdGEub258fHt9O3FyPXIuZWxtLGZ1bmN0aW9uKGUpe2lmKG4oZVtXcl0pKXt2YXIgdD1xPyJjaGFuZ2UiOiJpbnB1dCI7ZVt0XT1bXS5jb25jYXQoZVtXcl0sZVt0XXx8W10pLGRlbGV0ZSBlW1dyXX1uKGVbWnJdKSYmKGUuY2hhbmdlPVtdLmNvbmNhdChlW1pyXSxlLmNoYW5nZXx8W10pLGRlbGV0ZSBlW1pyXSl9KGkpLHJ0KGksbyxZcixRcixHcixyLmNvbnRleHQpLHFyPXZvaWQgMH19dmFyIHRpLG5pPXtjcmVhdGU6ZWksdXBkYXRlOmVpfTtmdW5jdGlvbiByaShlLHIpe2lmKCF0KGUuZGF0YS5kb21Qcm9wcyl8fCF0KHIuZGF0YS5kb21Qcm9wcykpe3ZhciBpLG8sYT1yLmVsbSxzPWUuZGF0YS5kb21Qcm9wc3x8e30sYz1yLmRhdGEuZG9tUHJvcHN8fHt9O2ZvcihpIGluIG4oYy5fX29iX18pJiYoYz1yLmRhdGEuZG9tUHJvcHM9QSh7fSxjKSkscylpIGluIGN8fChhW2ldPSIiKTtmb3IoaSBpbiBjKXtpZihvPWNbaV0sInRleHRDb250ZW50Ij09PWl8fCJpbm5lckhUTUwiPT09aSl7aWYoci5jaGlsZHJlbiYmKHIuY2hpbGRyZW4ubGVuZ3RoPTApLG89PT1zW2ldKWNvbnRpbnVlOzE9PT1hLmNoaWxkTm9kZXMubGVuZ3RoJiZhLnJlbW92ZUNoaWxkKGEuY2hpbGROb2Rlc1swXSl9aWYoInZhbHVlIj09PWkmJiJQUk9HUkVTUyIhPT1hLnRhZ05hbWUpe2EuX3ZhbHVlPW87dmFyIHU9dChvKT8iIjpTdHJpbmcobyk7aWkoYSx1KSYmKGEudmFsdWU9dSl9ZWxzZSBpZigiaW5uZXJIVE1MIj09PWkmJnFuKGEudGFnTmFtZSkmJnQoYS5pbm5lckhUTUwpKXsodGk9dGl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9Ijxzdmc+IitvKyI8L3N2Zz4iO2Zvcih2YXIgbD10aS5maXJzdENoaWxkO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Zvcig7bC5maXJzdENoaWxkOylhLmFwcGVuZENoaWxkKGwuZmlyc3RDaGlsZCl9ZWxzZSBpZihvIT09c1tpXSl0cnl7YVtpXT1vfWNhdGNoKGUpe319fX1mdW5jdGlvbiBpaShlLHQpe3JldHVybiFlLmNvbXBvc2luZyYmKCJPUFRJT04iPT09ZS50YWdOYW1lfHxmdW5jdGlvbihlLHQpe3ZhciBuPSEwO3RyeXtuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1lfWNhdGNoKGUpe31yZXR1cm4gbiYmZS52YWx1ZSE9PXR9KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS52YWx1ZSxpPWUuX3ZNb2RpZmllcnM7aWYobihpKSl7aWYoaS5udW1iZXIpcmV0dXJuIGYocikhPT1mKHQpO2lmKGkudHJpbSlyZXR1cm4gci50cmltKCkhPT10LnRyaW0oKX1yZXR1cm4gciE9PXR9KGUsdCkpfXZhciBvaT17Y3JlYXRlOnJpLHVwZGF0ZTpyaX0sYWk9ZyhmdW5jdGlvbihlKXt2YXIgdD17fSxuPS86KC4rKS87cmV0dXJuIGUuc3BsaXQoLzsoPyFbXihdKlwpKS9nKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUpe3ZhciByPWUuc3BsaXQobik7ci5sZW5ndGg+MSYmKHRbclswXS50cmltKCldPXJbMV0udHJpbSgpKX19KSx0fSk7ZnVuY3Rpb24gc2koZSl7dmFyIHQ9Y2koZS5zdHlsZSk7cmV0dXJuIGUuc3RhdGljU3R5bGU\/QShlLnN0YXRpY1N0eWxlLHQpOnR9ZnVuY3Rpb24gY2koZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/TyhlKToic3RyaW5nIj09dHlwZW9mIGU\/YWkoZSk6ZX12YXIgdWksbGk9L14tLS8sZmk9L1xzKiFpbXBvcnRhbnQkLyxwaT1mdW5jdGlvbihlLHQsbil7aWYobGkudGVzdCh0KSllLnN0eWxlLnNldFByb3BlcnR5KHQsbik7ZWxzZSBpZihmaS50ZXN0KG4pKWUuc3R5bGUuc2V0UHJvcGVydHkoQyh0KSxuLnJlcGxhY2UoZmksIiIpLCJpbXBvcnRhbnQiKTtlbHNle3ZhciByPXZpKHQpO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBpPTAsbz1uLmxlbmd0aDtpPG87aSsrKWUuc3R5bGVbcl09bltpXTtlbHNlIGUuc3R5bGVbcl09bn19LGRpPVsiV2Via2l0IiwiTW96IiwibXMiXSx2aT1nKGZ1bmN0aW9uKGUpe2lmKHVpPXVpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSwiZmlsdGVyIiE9PShlPWIoZSkpJiZlIGluIHVpKXJldHVybiBlO2Zvcih2YXIgdD1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248ZGkubGVuZ3RoO24rKyl7dmFyIHI9ZGlbbl0rdDtpZihyIGluIHVpKXJldHVybiByfX0pO2Z1bmN0aW9uIGhpKGUscil7dmFyIGk9ci5kYXRhLG89ZS5kYXRhO2lmKCEodChpLnN0YXRpY1N0eWxlKSYmdChpLnN0eWxlKSYmdChvLnN0YXRpY1N0eWxlKSYmdChvLnN0eWxlKSkpe3ZhciBhLHMsYz1yLmVsbSx1PW8uc3RhdGljU3R5bGUsbD1vLm5vcm1hbGl6ZWRTdHlsZXx8by5zdHlsZXx8e30sZj11fHxsLHA9Y2koci5kYXRhLnN0eWxlKXx8e307ci5kYXRhLm5vcm1hbGl6ZWRTdHlsZT1uKHAuX19vYl9fKT9BKHt9LHApOnA7dmFyIGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPXt9O2lmKHQpZm9yKHZhciBpPWU7aS5jb21wb25lbnRJbnN0YW5jZTspKGk9aS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpJiZpLmRhdGEmJihuPXNpKGkuZGF0YSkpJiZBKHIsbik7KG49c2koZS5kYXRhKSkmJkEocixuKTtmb3IodmFyIG89ZTtvPW8ucGFyZW50OylvLmRhdGEmJihuPXNpKG8uZGF0YSkpJiZBKHIsbik7cmV0dXJuIHJ9KHIsITApO2ZvcihzIGluIGYpdChkW3NdKSYmcGkoYyxzLCIiKTtmb3IocyBpbiBkKShhPWRbc10pIT09ZltzXSYmcGkoYyxzLG51bGw9PWE\/IiI6YSl9fXZhciBtaT17Y3JlYXRlOmhpLHVwZGF0ZTpoaX0seWk9L1xzKy87ZnVuY3Rpb24gZ2koZSx0KXtpZih0JiYodD10LnRyaW0oKSkpaWYoZS5jbGFzc0xpc3QpdC5pbmRleE9mKCIgIik+LTE\/dC5zcGxpdCh5aSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKHQpfSk6ZS5jbGFzc0xpc3QuYWRkKHQpO2Vsc2V7dmFyIG49IiAiKyhlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpKyIgIjtuLmluZGV4T2YoIiAiK3QrIiAiKTwwJiZlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLChuK3QpLnRyaW0oKSl9fWZ1bmN0aW9uIF9pKGUsdCl7aWYodCYmKHQ9dC50cmltKCkpKWlmKGUuY2xhc3NMaXN0KXQuaW5kZXhPZigiICIpPi0xP3Quc3BsaXQoeWkpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUuY2xhc3NMaXN0LnJlbW92ZSh0KX0pOmUuY2xhc3NMaXN0LnJlbW92ZSh0KSxlLmNsYXNzTGlzdC5sZW5ndGh8fGUucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpO2Vsc2V7Zm9yKHZhciBuPSIgIisoZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKSsiICIscj0iICIrdCsiICI7bi5pbmRleE9mKHIpPj0wOyluPW4ucmVwbGFjZShyLCIgIik7KG49bi50cmltKCkpP2Uuc2V0QXR0cmlidXRlKCJjbGFzcyIsbik6ZS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIil9fWZ1bmN0aW9uIGJpKGUpe2lmKGUpe2lmKCJvYmplY3QiPT10eXBlb2YgZSl7dmFyIHQ9e307cmV0dXJuITEhPT1lLmNzcyYmQSh0LCRpKGUubmFtZXx8InYiKSksQSh0LGUpLHR9cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlPyRpKGUpOnZvaWQgMH19dmFyICRpPWcoZnVuY3Rpb24oZSl7cmV0dXJue2VudGVyQ2xhc3M6ZSsiLWVudGVyIixlbnRlclRvQ2xhc3M6ZSsiLWVudGVyLXRvIixlbnRlckFjdGl2ZUNsYXNzOmUrIi1lbnRlci1hY3RpdmUiLGxlYXZlQ2xhc3M6ZSsiLWxlYXZlIixsZWF2ZVRvQ2xhc3M6ZSsiLWxlYXZlLXRvIixsZWF2ZUFjdGl2ZUNsYXNzOmUrIi1sZWF2ZS1hY3RpdmUifX0pLHdpPXomJiFXLENpPSJ0cmFuc2l0aW9uIix4aT0iYW5pbWF0aW9uIixraT0idHJhbnNpdGlvbiIsQWk9InRyYW5zaXRpb25lbmQiLE9pPSJhbmltYXRpb24iLFNpPSJhbmltYXRpb25lbmQiO3dpJiYodm9pZCAwPT09d2luZG93Lm9udHJhbnNpdGlvbmVuZCYmdm9pZCAwIT09d2luZG93Lm9ud2Via2l0dHJhbnNpdGlvbmVuZCYmKGtpPSJXZWJraXRUcmFuc2l0aW9uIixBaT0id2Via2l0VHJhbnNpdGlvbkVuZCIpLHZvaWQgMD09PXdpbmRvdy5vbmFuaW1hdGlvbmVuZCYmdm9pZCAwIT09d2luZG93Lm9ud2Via2l0YW5pbWF0aW9uZW5kJiYoT2k9IldlYmtpdEFuaW1hdGlvbiIsU2k9IndlYmtpdEFuaW1hdGlvbkVuZCIpKTt2YXIgVGk9ej93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOnNldFRpbWVvdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX07ZnVuY3Rpb24gRWkoZSl7VGkoZnVuY3Rpb24oKXtUaShlKX0pfWZ1bmN0aW9uIE5pKGUsdCl7dmFyIG49ZS5fdHJhbnNpdGlvbkNsYXNzZXN8fChlLl90cmFuc2l0aW9uQ2xhc3Nlcz1bXSk7bi5pbmRleE9mKHQpPDAmJihuLnB1c2godCksZ2koZSx0KSl9ZnVuY3Rpb24gamkoZSx0KXtlLl90cmFuc2l0aW9uQ2xhc3NlcyYmaChlLl90cmFuc2l0aW9uQ2xhc3Nlcyx0KSxfaShlLHQpfWZ1bmN0aW9uIERpKGUsdCxuKXt2YXIgcj1NaShlLHQpLGk9ci50eXBlLG89ci50aW1lb3V0LGE9ci5wcm9wQ291bnQ7aWYoIWkpcmV0dXJuIG4oKTt2YXIgcz1pPT09Q2k\/QWk6U2ksYz0wLHU9ZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxsKSxuKCl9LGw9ZnVuY3Rpb24odCl7dC50YXJnZXQ9PT1lJiYrK2M+PWEmJnUoKX07c2V0VGltZW91dChmdW5jdGlvbigpe2M8YSYmdSgpfSxvKzEpLGUuYWRkRXZlbnRMaXN0ZW5lcihzLGwpfXZhciBMaT0vXGIodHJhbnNmb3JtfGFsbCkoLHwkKS87ZnVuY3Rpb24gTWkoZSx0KXt2YXIgbixyPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLGk9KHJba2krIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxvPShyW2tpKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksYT1JaShpLG8pLHM9KHJbT2krIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxjPShyW09pKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksdT1JaShzLGMpLGw9MCxmPTA7cmV0dXJuIHQ9PT1DaT9hPjAmJihuPUNpLGw9YSxmPW8ubGVuZ3RoKTp0PT09eGk\/dT4wJiYobj14aSxsPXUsZj1jLmxlbmd0aCk6Zj0obj0obD1NYXRoLm1heChhLHUpKT4wP2E+dT9DaTp4aTpudWxsKT9uPT09Q2k\/by5sZW5ndGg6Yy5sZW5ndGg6MCx7dHlwZTpuLHRpbWVvdXQ6bCxwcm9wQ291bnQ6ZixoYXNUcmFuc2Zvcm06bj09PUNpJiZMaS50ZXN0KHJba2krIlByb3BlcnR5Il0pfX1mdW5jdGlvbiBJaShlLHQpe2Zvcig7ZS5sZW5ndGg8dC5sZW5ndGg7KWU9ZS5jb25jYXQoZSk7cmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4gRmkodCkrRmkoZVtuXSl9KSl9ZnVuY3Rpb24gRmkoZSl7cmV0dXJuIDFlMypOdW1iZXIoZS5zbGljZSgwLC0xKS5yZXBsYWNlKCIsIiwiLiIpKX1mdW5jdGlvbiBQaShlLHIpe3ZhciBpPWUuZWxtO24oaS5fbGVhdmVDYikmJihpLl9sZWF2ZUNiLmNhbmNlbGxlZD0hMCxpLl9sZWF2ZUNiKCkpO3ZhciBhPWJpKGUuZGF0YS50cmFuc2l0aW9uKTtpZighdChhKSYmIW4oaS5fZW50ZXJDYikmJjE9PT1pLm5vZGVUeXBlKXtmb3IodmFyIHM9YS5jc3MsYz1hLnR5cGUsdT1hLmVudGVyQ2xhc3MsbD1hLmVudGVyVG9DbGFzcyxwPWEuZW50ZXJBY3RpdmVDbGFzcyxkPWEuYXBwZWFyQ2xhc3Msdj1hLmFwcGVhclRvQ2xhc3MsaD1hLmFwcGVhckFjdGl2ZUNsYXNzLG09YS5iZWZvcmVFbnRlcix5PWEuZW50ZXIsZz1hLmFmdGVyRW50ZXIsXz1hLmVudGVyQ2FuY2VsbGVkLGI9YS5iZWZvcmVBcHBlYXIsJD1hLmFwcGVhcix3PWEuYWZ0ZXJBcHBlYXIsQz1hLmFwcGVhckNhbmNlbGxlZCx4PWEuZHVyYXRpb24saz1XdCxBPVd0LiR2bm9kZTtBJiZBLnBhcmVudDspaz1BLmNvbnRleHQsQT1BLnBhcmVudDt2YXIgTz0hay5faXNNb3VudGVkfHwhZS5pc1Jvb3RJbnNlcnQ7aWYoIU98fCR8fCIiPT09JCl7dmFyIFM9TyYmZD9kOnUsVD1PJiZoP2g6cCxFPU8mJnY\/djpsLE49TyYmYnx8bSxqPU8mJiJmdW5jdGlvbiI9PXR5cGVvZiAkPyQ6eSxMPU8mJnd8fGcsTT1PJiZDfHxfLEk9ZihvKHgpP3guZW50ZXI6eCksRj0hMSE9PXMmJiFXLFA9QmkoaiksUj1pLl9lbnRlckNiPUQoZnVuY3Rpb24oKXtGJiYoamkoaSxFKSxqaShpLFQpKSxSLmNhbmNlbGxlZD8oRiYmamkoaSxTKSxNJiZNKGkpKTpMJiZMKGkpLGkuX2VudGVyQ2I9bnVsbH0pO2UuZGF0YS5zaG93fHxpdChlLCJpbnNlcnQiLGZ1bmN0aW9uKCl7dmFyIHQ9aS5wYXJlbnROb2RlLG49dCYmdC5fcGVuZGluZyYmdC5fcGVuZGluZ1tlLmtleV07biYmbi50YWc9PT1lLnRhZyYmbi5lbG0uX2xlYXZlQ2ImJm4uZWxtLl9sZWF2ZUNiKCksaiYmaihpLFIpfSksTiYmTihpKSxGJiYoTmkoaSxTKSxOaShpLFQpLEVpKGZ1bmN0aW9uKCl7amkoaSxTKSxSLmNhbmNlbGxlZHx8KE5pKGksRSksUHx8KEhpKEkpP3NldFRpbWVvdXQoUixJKTpEaShpLGMsUikpKX0pKSxlLmRhdGEuc2hvdyYmKHImJnIoKSxqJiZqKGksUikpLEZ8fFB8fFIoKX19fWZ1bmN0aW9uIFJpKGUscil7dmFyIGk9ZS5lbG07bihpLl9lbnRlckNiKSYmKGkuX2VudGVyQ2IuY2FuY2VsbGVkPSEwLGkuX2VudGVyQ2IoKSk7dmFyIGE9YmkoZS5kYXRhLnRyYW5zaXRpb24pO2lmKHQoYSl8fDEhPT1pLm5vZGVUeXBlKXJldHVybiByKCk7aWYoIW4oaS5fbGVhdmVDYikpe3ZhciBzPWEuY3NzLGM9YS50eXBlLHU9YS5sZWF2ZUNsYXNzLGw9YS5sZWF2ZVRvQ2xhc3MscD1hLmxlYXZlQWN0aXZlQ2xhc3MsZD1hLmJlZm9yZUxlYXZlLHY9YS5sZWF2ZSxoPWEuYWZ0ZXJMZWF2ZSxtPWEubGVhdmVDYW5jZWxsZWQseT1hLmRlbGF5TGVhdmUsZz1hLmR1cmF0aW9uLF89ITEhPT1zJiYhVyxiPUJpKHYpLCQ9ZihvKGcpP2cubGVhdmU6Zyksdz1pLl9sZWF2ZUNiPUQoZnVuY3Rpb24oKXtpLnBhcmVudE5vZGUmJmkucGFyZW50Tm9kZS5fcGVuZGluZyYmKGkucGFyZW50Tm9kZS5fcGVuZGluZ1tlLmtleV09bnVsbCksXyYmKGppKGksbCksamkoaSxwKSksdy5jYW5jZWxsZWQ\/KF8mJmppKGksdSksbSYmbShpKSk6KHIoKSxoJiZoKGkpKSxpLl9sZWF2ZUNiPW51bGx9KTt5P3koQyk6QygpfWZ1bmN0aW9uIEMoKXt3LmNhbmNlbGxlZHx8KCFlLmRhdGEuc2hvdyYmaS5wYXJlbnROb2RlJiYoKGkucGFyZW50Tm9kZS5fcGVuZGluZ3x8KGkucGFyZW50Tm9kZS5fcGVuZGluZz17fSkpW2Uua2V5XT1lKSxkJiZkKGkpLF8mJihOaShpLHUpLE5pKGkscCksRWkoZnVuY3Rpb24oKXtqaShpLHUpLHcuY2FuY2VsbGVkfHwoTmkoaSxsKSxifHwoSGkoJCk\/c2V0VGltZW91dCh3LCQpOkRpKGksYyx3KSkpfSkpLHYmJnYoaSx3KSxffHxifHx3KCkpfX1mdW5jdGlvbiBIaShlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJiFpc05hTihlKX1mdW5jdGlvbiBCaShlKXtpZih0KGUpKXJldHVybiExO3ZhciByPWUuZm5zO3JldHVybiBuKHIpP0JpKEFycmF5LmlzQXJyYXkocik\/clswXTpyKTooZS5fbGVuZ3RofHxlLmxlbmd0aCk+MX1mdW5jdGlvbiBVaShlLHQpeyEwIT09dC5kYXRhLnNob3cmJlBpKHQpfXZhciB6aT1mdW5jdGlvbihlKXt2YXIgbyxhLHM9e30sYz1lLm1vZHVsZXMsdT1lLm5vZGVPcHM7Zm9yKG89MDtvPHJyLmxlbmd0aDsrK28pZm9yKHNbcnJbb11dPVtdLGE9MDthPGMubGVuZ3RoOysrYSluKGNbYV1bcnJbb11dKSYmc1tycltvXV0ucHVzaChjW2FdW3JyW29dXSk7ZnVuY3Rpb24gbChlKXt2YXIgdD11LnBhcmVudE5vZGUoZSk7bih0KSYmdS5yZW1vdmVDaGlsZCh0LGUpfWZ1bmN0aW9uIGYoZSx0LGksbyxhLGMsbCl7aWYobihlLmVsbSkmJm4oYykmJihlPWNbbF09bWUoZSkpLGUuaXNSb290SW5zZXJ0PSFhLCFmdW5jdGlvbihlLHQsaSxvKXt2YXIgYT1lLmRhdGE7aWYobihhKSl7dmFyIGM9bihlLmNvbXBvbmVudEluc3RhbmNlKSYmYS5rZWVwQWxpdmU7aWYobihhPWEuaG9vaykmJm4oYT1hLmluaXQpJiZhKGUsITEpLG4oZS5jb21wb25lbnRJbnN0YW5jZSkpcmV0dXJuIGQoZSx0KSx2KGksZS5lbG0sbykscihjKSYmZnVuY3Rpb24oZSx0LHIsaSl7Zm9yKHZhciBvLGE9ZTthLmNvbXBvbmVudEluc3RhbmNlOylpZihhPWEuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLG4obz1hLmRhdGEpJiZuKG89by50cmFuc2l0aW9uKSl7Zm9yKG89MDtvPHMuYWN0aXZhdGUubGVuZ3RoOysrbylzLmFjdGl2YXRlW29dKG5yLGEpO3QucHVzaChhKTticmVha312KHIsZS5lbG0saSl9KGUsdCxpLG8pLCEwfX0oZSx0LGksbykpe3ZhciBmPWUuZGF0YSxwPWUuY2hpbGRyZW4sbT1lLnRhZztuKG0pPyhlLmVsbT1lLm5zP3UuY3JlYXRlRWxlbWVudE5TKGUubnMsbSk6dS5jcmVhdGVFbGVtZW50KG0sZSksZyhlKSxoKGUscCx0KSxuKGYpJiZ5KGUsdCksdihpLGUuZWxtLG8pKTpyKGUuaXNDb21tZW50KT8oZS5lbG09dS5jcmVhdGVDb21tZW50KGUudGV4dCksdihpLGUuZWxtLG8pKTooZS5lbG09dS5jcmVhdGVUZXh0Tm9kZShlLnRleHQpLHYoaSxlLmVsbSxvKSl9fWZ1bmN0aW9uIGQoZSx0KXtuKGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSYmKHQucHVzaC5hcHBseSh0LGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSxlLmRhdGEucGVuZGluZ0luc2VydD1udWxsKSxlLmVsbT1lLmNvbXBvbmVudEluc3RhbmNlLiRlbCxtKGUpPyh5KGUsdCksZyhlKSk6KHRyKGUpLHQucHVzaChlKSl9ZnVuY3Rpb24gdihlLHQscil7bihlKSYmKG4ocik\/dS5wYXJlbnROb2RlKHIpPT09ZSYmdS5pbnNlcnRCZWZvcmUoZSx0LHIpOnUuYXBwZW5kQ2hpbGQoZSx0KSl9ZnVuY3Rpb24gaChlLHQsbil7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilmKHRbcl0sbixlLmVsbSxudWxsLCEwLHQscik7ZWxzZSBpKGUudGV4dCkmJnUuYXBwZW5kQ2hpbGQoZS5lbG0sdS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoZS50ZXh0KSkpfWZ1bmN0aW9uIG0oZSl7Zm9yKDtlLmNvbXBvbmVudEluc3RhbmNlOyllPWUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO3JldHVybiBuKGUudGFnKX1mdW5jdGlvbiB5KGUsdCl7Zm9yKHZhciByPTA7cjxzLmNyZWF0ZS5sZW5ndGg7KytyKXMuY3JlYXRlW3JdKG5yLGUpO24obz1lLmRhdGEuaG9vaykmJihuKG8uY3JlYXRlKSYmby5jcmVhdGUobnIsZSksbihvLmluc2VydCkmJnQucHVzaChlKSl9ZnVuY3Rpb24gZyhlKXt2YXIgdDtpZihuKHQ9ZS5mblNjb3BlSWQpKXUuc2V0U3R5bGVTY29wZShlLmVsbSx0KTtlbHNlIGZvcih2YXIgcj1lO3I7KW4odD1yLmNvbnRleHQpJiZuKHQ9dC4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZShlLmVsbSx0KSxyPXIucGFyZW50O24odD1XdCkmJnQhPT1lLmNvbnRleHQmJnQhPT1lLmZuQ29udGV4dCYmbih0PXQuJG9wdGlvbnMuX3Njb3BlSWQpJiZ1LnNldFN0eWxlU2NvcGUoZS5lbG0sdCl9ZnVuY3Rpb24gXyhlLHQsbixyLGksbyl7Zm9yKDtyPD1pOysrcilmKG5bcl0sbyxlLHQsITEsbixyKX1mdW5jdGlvbiBiKGUpe3ZhciB0LHIsaT1lLmRhdGE7aWYobihpKSlmb3Iobih0PWkuaG9vaykmJm4odD10LmRlc3Ryb3kpJiZ0KGUpLHQ9MDt0PHMuZGVzdHJveS5sZW5ndGg7Kyt0KXMuZGVzdHJveVt0XShlKTtpZihuKHQ9ZS5jaGlsZHJlbikpZm9yKHI9MDtyPGUuY2hpbGRyZW4ubGVuZ3RoOysrciliKGUuY2hpbGRyZW5bcl0pfWZ1bmN0aW9uICQoZSx0LHIpe2Zvcig7dDw9cjsrK3Qpe3ZhciBpPWVbdF07bihpKSYmKG4oaS50YWcpPyh3KGkpLGIoaSkpOmwoaS5lbG0pKX19ZnVuY3Rpb24gdyhlLHQpe2lmKG4odCl8fG4oZS5kYXRhKSl7dmFyIHIsaT1zLnJlbW92ZS5sZW5ndGgrMTtmb3Iobih0KT90Lmxpc3RlbmVycys9aTp0PWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpezA9PS0tbi5saXN0ZW5lcnMmJmwoZSl9cmV0dXJuIG4ubGlzdGVuZXJzPXQsbn0oZS5lbG0saSksbihyPWUuY29tcG9uZW50SW5zdGFuY2UpJiZuKHI9ci5fdm5vZGUpJiZuKHIuZGF0YSkmJncocix0KSxyPTA7cjxzLnJlbW92ZS5sZW5ndGg7KytyKXMucmVtb3ZlW3JdKGUsdCk7bihyPWUuZGF0YS5ob29rKSYmbihyPXIucmVtb3ZlKT9yKGUsdCk6dCgpfWVsc2UgbChlLmVsbSl9ZnVuY3Rpb24gQyhlLHQscixpKXtmb3IodmFyIG89cjtvPGk7bysrKXt2YXIgYT10W29dO2lmKG4oYSkmJmlyKGUsYSkpcmV0dXJuIG99fWZ1bmN0aW9uIHgoZSxpLG8sYSxjLGwpe2lmKGUhPT1pKXtuKGkuZWxtKSYmbihhKSYmKGk9YVtjXT1tZShpKSk7dmFyIHA9aS5lbG09ZS5lbG07aWYocihlLmlzQXN5bmNQbGFjZWhvbGRlcikpbihpLmFzeW5jRmFjdG9yeS5yZXNvbHZlZCk\/TyhlLmVsbSxpLG8pOmkuaXNBc3luY1BsYWNlaG9sZGVyPSEwO2Vsc2UgaWYocihpLmlzU3RhdGljKSYmcihlLmlzU3RhdGljKSYmaS5rZXk9PT1lLmtleSYmKHIoaS5pc0Nsb25lZCl8fHIoaS5pc09uY2UpKSlpLmNvbXBvbmVudEluc3RhbmNlPWUuY29tcG9uZW50SW5zdGFuY2U7ZWxzZXt2YXIgZCx2PWkuZGF0YTtuKHYpJiZuKGQ9di5ob29rKSYmbihkPWQucHJlcGF0Y2gpJiZkKGUsaSk7dmFyIGg9ZS5jaGlsZHJlbix5PWkuY2hpbGRyZW47aWYobih2KSYmbShpKSl7Zm9yKGQ9MDtkPHMudXBkYXRlLmxlbmd0aDsrK2Qpcy51cGRhdGVbZF0oZSxpKTtuKGQ9di5ob29rKSYmbihkPWQudXBkYXRlKSYmZChlLGkpfXQoaS50ZXh0KT9uKGgpJiZuKHkpP2ghPT15JiZmdW5jdGlvbihlLHIsaSxvLGEpe2Zvcih2YXIgcyxjLGwscD0wLGQ9MCx2PXIubGVuZ3RoLTEsaD1yWzBdLG09clt2XSx5PWkubGVuZ3RoLTEsZz1pWzBdLGI9aVt5XSx3PSFhO3A8PXYmJmQ8PXk7KXQoaCk\/aD1yWysrcF06dChtKT9tPXJbLS12XTppcihoLGcpPyh4KGgsZyxvLGksZCksaD1yWysrcF0sZz1pWysrZF0pOmlyKG0sYik\/KHgobSxiLG8saSx5KSxtPXJbLS12XSxiPWlbLS15XSk6aXIoaCxiKT8oeChoLGIsbyxpLHkpLHcmJnUuaW5zZXJ0QmVmb3JlKGUsaC5lbG0sdS5uZXh0U2libGluZyhtLmVsbSkpLGg9clsrK3BdLGI9aVstLXldKTppcihtLGcpPyh4KG0sZyxvLGksZCksdyYmdS5pbnNlcnRCZWZvcmUoZSxtLmVsbSxoLmVsbSksbT1yWy0tdl0sZz1pWysrZF0pOih0KHMpJiYocz1vcihyLHAsdikpLHQoYz1uKGcua2V5KT9zW2cua2V5XTpDKGcscixwLHYpKT9mKGcsbyxlLGguZWxtLCExLGksZCk6aXIobD1yW2NdLGcpPyh4KGwsZyxvLGksZCkscltjXT12b2lkIDAsdyYmdS5pbnNlcnRCZWZvcmUoZSxsLmVsbSxoLmVsbSkpOmYoZyxvLGUsaC5lbG0sITEsaSxkKSxnPWlbKytkXSk7cD52P18oZSx0KGlbeSsxXSk\/bnVsbDppW3krMV0uZWxtLGksZCx5LG8pOmQ+eSYmJChyLHAsdil9KHAsaCx5LG8sbCk6bih5KT8obihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsIiIpLF8ocCxudWxsLHksMCx5Lmxlbmd0aC0xLG8pKTpuKGgpPyQoaCwwLGgubGVuZ3RoLTEpOm4oZS50ZXh0KSYmdS5zZXRUZXh0Q29udGVudChwLCIiKTplLnRleHQhPT1pLnRleHQmJnUuc2V0VGV4dENvbnRlbnQocCxpLnRleHQpLG4odikmJm4oZD12Lmhvb2spJiZuKGQ9ZC5wb3N0cGF0Y2gpJiZkKGUsaSl9fX1mdW5jdGlvbiBrKGUsdCxpKXtpZihyKGkpJiZuKGUucGFyZW50KSllLnBhcmVudC5kYXRhLnBlbmRpbmdJbnNlcnQ9dDtlbHNlIGZvcih2YXIgbz0wO288dC5sZW5ndGg7KytvKXRbb10uZGF0YS5ob29rLmluc2VydCh0W29dKX12YXIgQT1wKCJhdHRycyxjbGFzcyxzdGF0aWNDbGFzcyxzdGF0aWNTdHlsZSxrZXkiKTtmdW5jdGlvbiBPKGUsdCxpLG8pe3ZhciBhLHM9dC50YWcsYz10LmRhdGEsdT10LmNoaWxkcmVuO2lmKG89b3x8YyYmYy5wcmUsdC5lbG09ZSxyKHQuaXNDb21tZW50KSYmbih0LmFzeW5jRmFjdG9yeSkpcmV0dXJuIHQuaXNBc3luY1BsYWNlaG9sZGVyPSEwLCEwO2lmKG4oYykmJihuKGE9Yy5ob29rKSYmbihhPWEuaW5pdCkmJmEodCwhMCksbihhPXQuY29tcG9uZW50SW5zdGFuY2UpKSlyZXR1cm4gZCh0LGkpLCEwO2lmKG4ocykpe2lmKG4odSkpaWYoZS5oYXNDaGlsZE5vZGVzKCkpaWYobihhPWMpJiZuKGE9YS5kb21Qcm9wcykmJm4oYT1hLmlubmVySFRNTCkpe2lmKGEhPT1lLmlubmVySFRNTClyZXR1cm4hMX1lbHNle2Zvcih2YXIgbD0hMCxmPWUuZmlyc3RDaGlsZCxwPTA7cDx1Lmxlbmd0aDtwKyspe2lmKCFmfHwhTyhmLHVbcF0saSxvKSl7bD0hMTticmVha31mPWYubmV4dFNpYmxpbmd9aWYoIWx8fGYpcmV0dXJuITF9ZWxzZSBoKHQsdSxpKTtpZihuKGMpKXt2YXIgdj0hMTtmb3IodmFyIG0gaW4gYylpZighQShtKSl7dj0hMCx5KHQsaSk7YnJlYWt9IXYmJmMuY2xhc3MmJmV0KGMuY2xhc3MpfX1lbHNlIGUuZGF0YSE9PXQudGV4dCYmKGUuZGF0YT10LnRleHQpO3JldHVybiEwfXJldHVybiBmdW5jdGlvbihlLGksbyxhKXtpZighdChpKSl7dmFyIGMsbD0hMSxwPVtdO2lmKHQoZSkpbD0hMCxmKGkscCk7ZWxzZXt2YXIgZD1uKGUubm9kZVR5cGUpO2lmKCFkJiZpcihlLGkpKXgoZSxpLHAsbnVsbCxudWxsLGEpO2Vsc2V7aWYoZCl7aWYoMT09PWUubm9kZVR5cGUmJmUuaGFzQXR0cmlidXRlKEwpJiYoZS5yZW1vdmVBdHRyaWJ1dGUoTCksbz0hMCkscihvKSYmTyhlLGkscCkpcmV0dXJuIGsoaSxwLCEwKSxlO2M9ZSxlPW5ldyBwZSh1LnRhZ05hbWUoYykudG9Mb3dlckNhc2UoKSx7fSxbXSx2b2lkIDAsYyl9dmFyIHY9ZS5lbG0saD11LnBhcmVudE5vZGUodik7aWYoZihpLHAsdi5fbGVhdmVDYj9udWxsOmgsdS5uZXh0U2libGluZyh2KSksbihpLnBhcmVudCkpZm9yKHZhciB5PWkucGFyZW50LGc9bShpKTt5Oyl7Zm9yKHZhciBfPTA7XzxzLmRlc3Ryb3kubGVuZ3RoOysrXylzLmRlc3Ryb3lbX10oeSk7aWYoeS5lbG09aS5lbG0sZyl7Zm9yKHZhciB3PTA7dzxzLmNyZWF0ZS5sZW5ndGg7Kyt3KXMuY3JlYXRlW3ddKG5yLHkpO3ZhciBDPXkuZGF0YS5ob29rLmluc2VydDtpZihDLm1lcmdlZClmb3IodmFyIEE9MTtBPEMuZm5zLmxlbmd0aDtBKyspQy5mbnNbQV0oKX1lbHNlIHRyKHkpO3k9eS5wYXJlbnR9bihoKT8kKFtlXSwwLDApOm4oZS50YWcpJiZiKGUpfX1yZXR1cm4gayhpLHAsbCksaS5lbG19bihlKSYmYihlKX19KHtub2RlT3BzOlFuLG1vZHVsZXM6W21yLHhyLG5pLG9pLG1pLHo\/e2NyZWF0ZTpVaSxhY3RpdmF0ZTpVaSxyZW1vdmU6ZnVuY3Rpb24oZSx0KXshMCE9PWUuZGF0YS5zaG93P1JpKGUsdCk6dCgpfX06e31dLmNvbmNhdChwcil9KTtXJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtlJiZlLnZtb2RlbCYmWGkoZSwiaW5wdXQiKX0pO3ZhciBWaT17aW5zZXJ0ZWQ6ZnVuY3Rpb24oZSx0LG4scil7InNlbGVjdCI9PT1uLnRhZz8oci5lbG0mJiFyLmVsbS5fdk9wdGlvbnM\/aXQobiwicG9zdHBhdGNoIixmdW5jdGlvbigpe1ZpLmNvbXBvbmVudFVwZGF0ZWQoZSx0LG4pfSk6S2koZSx0LG4uY29udGV4dCksZS5fdk9wdGlvbnM9W10ubWFwLmNhbGwoZS5vcHRpb25zLFdpKSk6KCJ0ZXh0YXJlYSI9PT1uLnRhZ3x8WG4oZS50eXBlKSkmJihlLl92TW9kaWZpZXJzPXQubW9kaWZpZXJzLHQubW9kaWZpZXJzLmxhenl8fChlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLFppKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIixHaSksZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLEdpKSxXJiYoZS52bW9kZWw9ITApKSl9LGNvbXBvbmVudFVwZGF0ZWQ6ZnVuY3Rpb24oZSx0LG4pe2lmKCJzZWxlY3QiPT09bi50YWcpe0tpKGUsdCxuLmNvbnRleHQpO3ZhciByPWUuX3ZPcHRpb25zLGk9ZS5fdk9wdGlvbnM9W10ubWFwLmNhbGwoZS5vcHRpb25zLFdpKTtpZihpLnNvbWUoZnVuY3Rpb24oZSx0KXtyZXR1cm4hTihlLHJbdF0pfSkpKGUubXVsdGlwbGU\/dC52YWx1ZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBxaShlLGkpfSk6dC52YWx1ZSE9PXQub2xkVmFsdWUmJnFpKHQudmFsdWUsaSkpJiZYaShlLCJjaGFuZ2UiKX19fTtmdW5jdGlvbiBLaShlLHQsbil7SmkoZSx0LG4pLChxfHxaKSYmc2V0VGltZW91dChmdW5jdGlvbigpe0ppKGUsdCxuKX0sMCl9ZnVuY3Rpb24gSmkoZSx0LG4pe3ZhciByPXQudmFsdWUsaT1lLm11bHRpcGxlO2lmKCFpfHxBcnJheS5pc0FycmF5KHIpKXtmb3IodmFyIG8sYSxzPTAsYz1lLm9wdGlvbnMubGVuZ3RoO3M8YztzKyspaWYoYT1lLm9wdGlvbnNbc10saSlvPWoocixXaShhKSk+LTEsYS5zZWxlY3RlZCE9PW8mJihhLnNlbGVjdGVkPW8pO2Vsc2UgaWYoTihXaShhKSxyKSlyZXR1cm4gdm9pZChlLnNlbGVjdGVkSW5kZXghPT1zJiYoZS5zZWxlY3RlZEluZGV4PXMpKTtpfHwoZS5zZWxlY3RlZEluZGV4PS0xKX19ZnVuY3Rpb24gcWkoZSx0KXtyZXR1cm4gdC5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm4hTih0LGUpfSl9ZnVuY3Rpb24gV2koZSl7cmV0dXJuIl92YWx1ZSJpbiBlP2UuX3ZhbHVlOmUudmFsdWV9ZnVuY3Rpb24gWmkoZSl7ZS50YXJnZXQuY29tcG9zaW5nPSEwfWZ1bmN0aW9uIEdpKGUpe2UudGFyZ2V0LmNvbXBvc2luZyYmKGUudGFyZ2V0LmNvbXBvc2luZz0hMSxYaShlLnRhcmdldCwiaW5wdXQiKSl9ZnVuY3Rpb24gWGkoZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpO24uaW5pdEV2ZW50KHQsITAsITApLGUuZGlzcGF0Y2hFdmVudChuKX1mdW5jdGlvbiBZaShlKXtyZXR1cm4hZS5jb21wb25lbnRJbnN0YW5jZXx8ZS5kYXRhJiZlLmRhdGEudHJhbnNpdGlvbj9lOllpKGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlKX12YXIgUWk9e21vZGVsOlZpLHNob3c6e2JpbmQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQudmFsdWUsaT0obj1ZaShuKSkuZGF0YSYmbi5kYXRhLnRyYW5zaXRpb24sbz1lLl9fdk9yaWdpbmFsRGlzcGxheT0ibm9uZSI9PT1lLnN0eWxlLmRpc3BsYXk\/IiI6ZS5zdHlsZS5kaXNwbGF5O3ImJmk\/KG4uZGF0YS5zaG93PSEwLFBpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9b30pKTplLnN0eWxlLmRpc3BsYXk9cj9vOiJub25lIn0sdXBkYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LnZhbHVlOyFyIT0hdC5vbGRWYWx1ZSYmKChuPVlpKG4pKS5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbj8obi5kYXRhLnNob3c9ITAscj9QaShuLGZ1bmN0aW9uKCl7ZS5zdHlsZS5kaXNwbGF5PWUuX192T3JpZ2luYWxEaXNwbGF5fSk6UmkobixmdW5jdGlvbigpe2Uuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KSk6ZS5zdHlsZS5kaXNwbGF5PXI\/ZS5fX3ZPcmlnaW5hbERpc3BsYXk6Im5vbmUiKX0sdW5iaW5kOmZ1bmN0aW9uKGUsdCxuLHIsaSl7aXx8KGUuc3R5bGUuZGlzcGxheT1lLl9fdk9yaWdpbmFsRGlzcGxheSl9fX0sZW89e25hbWU6U3RyaW5nLGFwcGVhcjpCb29sZWFuLGNzczpCb29sZWFuLG1vZGU6U3RyaW5nLHR5cGU6U3RyaW5nLGVudGVyQ2xhc3M6U3RyaW5nLGxlYXZlQ2xhc3M6U3RyaW5nLGVudGVyVG9DbGFzczpTdHJpbmcsbGVhdmVUb0NsYXNzOlN0cmluZyxlbnRlckFjdGl2ZUNsYXNzOlN0cmluZyxsZWF2ZUFjdGl2ZUNsYXNzOlN0cmluZyxhcHBlYXJDbGFzczpTdHJpbmcsYXBwZWFyQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhclRvQ2xhc3M6U3RyaW5nLGR1cmF0aW9uOltOdW1iZXIsU3RyaW5nLE9iamVjdF19O2Z1bmN0aW9uIHRvKGUpe3ZhciB0PWUmJmUuY29tcG9uZW50T3B0aW9ucztyZXR1cm4gdCYmdC5DdG9yLm9wdGlvbnMuYWJzdHJhY3Q\/dG8oenQodC5jaGlsZHJlbikpOmV9ZnVuY3Rpb24gbm8oZSl7dmFyIHQ9e30sbj1lLiRvcHRpb25zO2Zvcih2YXIgciBpbiBuLnByb3BzRGF0YSl0W3JdPWVbcl07dmFyIGk9bi5fcGFyZW50TGlzdGVuZXJzO2Zvcih2YXIgbyBpbiBpKXRbYihvKV09aVtvXTtyZXR1cm4gdH1mdW5jdGlvbiBybyhlLHQpe2lmKC9cZC1rZWVwLWFsaXZlJC8udGVzdCh0LnRhZykpcmV0dXJuIGUoImtlZXAtYWxpdmUiLHtwcm9wczp0LmNvbXBvbmVudE9wdGlvbnMucHJvcHNEYXRhfSl9dmFyIGlvPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRhZ3x8VXQoZSl9LG9vPWZ1bmN0aW9uKGUpe3JldHVybiJzaG93Ij09PWUubmFtZX0sYW89e25hbWU6InRyYW5zaXRpb24iLHByb3BzOmVvLGFic3RyYWN0OiEwLHJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGhpcy4kc2xvdHMuZGVmYXVsdDtpZihuJiYobj1uLmZpbHRlcihpbykpLmxlbmd0aCl7dmFyIHI9dGhpcy5tb2RlLG89blswXTtpZihmdW5jdGlvbihlKXtmb3IoO2U9ZS5wYXJlbnQ7KWlmKGUuZGF0YS50cmFuc2l0aW9uKXJldHVybiEwfSh0aGlzLiR2bm9kZSkpcmV0dXJuIG87dmFyIGE9dG8obyk7aWYoIWEpcmV0dXJuIG87aWYodGhpcy5fbGVhdmluZylyZXR1cm4gcm8oZSxvKTt2YXIgcz0iX190cmFuc2l0aW9uLSIrdGhpcy5fdWlkKyItIjthLmtleT1udWxsPT1hLmtleT9hLmlzQ29tbWVudD9zKyJjb21tZW50IjpzK2EudGFnOmkoYS5rZXkpPzA9PT1TdHJpbmcoYS5rZXkpLmluZGV4T2Yocyk\/YS5rZXk6cythLmtleTphLmtleTt2YXIgYz0oYS5kYXRhfHwoYS5kYXRhPXt9KSkudHJhbnNpdGlvbj1ubyh0aGlzKSx1PXRoaXMuX3Zub2RlLGw9dG8odSk7aWYoYS5kYXRhLmRpcmVjdGl2ZXMmJmEuZGF0YS5kaXJlY3RpdmVzLnNvbWUob28pJiYoYS5kYXRhLnNob3c9ITApLGwmJmwuZGF0YSYmIWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQua2V5PT09ZS5rZXkmJnQudGFnPT09ZS50YWd9KGEsbCkmJiFVdChsKSYmKCFsLmNvbXBvbmVudEluc3RhbmNlfHwhbC5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUuaXNDb21tZW50KSl7dmFyIGY9bC5kYXRhLnRyYW5zaXRpb249QSh7fSxjKTtpZigib3V0LWluIj09PXIpcmV0dXJuIHRoaXMuX2xlYXZpbmc9ITAsaXQoZiwiYWZ0ZXJMZWF2ZSIsZnVuY3Rpb24oKXt0Ll9sZWF2aW5nPSExLHQuJGZvcmNlVXBkYXRlKCl9KSxybyhlLG8pO2lmKCJpbi1vdXQiPT09cil7aWYoVXQoYSkpcmV0dXJuIHU7dmFyIHAsZD1mdW5jdGlvbigpe3AoKX07aXQoYywiYWZ0ZXJFbnRlciIsZCksaXQoYywiZW50ZXJDYW5jZWxsZWQiLGQpLGl0KGYsImRlbGF5TGVhdmUiLGZ1bmN0aW9uKGUpe3A9ZX0pfX1yZXR1cm4gb319fSxzbz1BKHt0YWc6U3RyaW5nLG1vdmVDbGFzczpTdHJpbmd9LGVvKTtmdW5jdGlvbiBjbyhlKXtlLmVsbS5fbW92ZUNiJiZlLmVsbS5fbW92ZUNiKCksZS5lbG0uX2VudGVyQ2ImJmUuZWxtLl9lbnRlckNiKCl9ZnVuY3Rpb24gdW8oZSl7ZS5kYXRhLm5ld1Bvcz1lLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1mdW5jdGlvbiBsbyhlKXt2YXIgdD1lLmRhdGEucG9zLG49ZS5kYXRhLm5ld1BvcyxyPXQubGVmdC1uLmxlZnQsaT10LnRvcC1uLnRvcDtpZihyfHxpKXtlLmRhdGEubW92ZWQ9ITA7dmFyIG89ZS5lbG0uc3R5bGU7by50cmFuc2Zvcm09by5XZWJraXRUcmFuc2Zvcm09InRyYW5zbGF0ZSgiK3IrInB4LCIraSsicHgpIixvLnRyYW5zaXRpb25EdXJhdGlvbj0iMHMifX1kZWxldGUgc28ubW9kZTt2YXIgZm89e1RyYW5zaXRpb246YW8sVHJhbnNpdGlvbkdyb3VwOntwcm9wczpzbyxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl91cGRhdGU7dGhpcy5fdXBkYXRlPWZ1bmN0aW9uKG4scil7dmFyIGk9WnQoZSk7ZS5fX3BhdGNoX18oZS5fdm5vZGUsZS5rZXB0LCExLCEwKSxlLl92bm9kZT1lLmtlcHQsaSgpLHQuY2FsbChlLG4scil9fSxyZW5kZXI6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudGFnfHx0aGlzLiR2bm9kZS5kYXRhLnRhZ3x8InNwYW4iLG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPXRoaXMucHJldkNoaWxkcmVuPXRoaXMuY2hpbGRyZW4saT10aGlzLiRzbG90cy5kZWZhdWx0fHxbXSxvPXRoaXMuY2hpbGRyZW49W10sYT1ubyh0aGlzKSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBjPWlbc107Yy50YWcmJm51bGwhPWMua2V5JiYwIT09U3RyaW5nKGMua2V5KS5pbmRleE9mKCJfX3ZsaXN0IikmJihvLnB1c2goYyksbltjLmtleV09YywoYy5kYXRhfHwoYy5kYXRhPXt9KSkudHJhbnNpdGlvbj1hKX1pZihyKXtmb3IodmFyIHU9W10sbD1bXSxmPTA7ZjxyLmxlbmd0aDtmKyspe3ZhciBwPXJbZl07cC5kYXRhLnRyYW5zaXRpb249YSxwLmRhdGEucG9zPXAuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG5bcC5rZXldP3UucHVzaChwKTpsLnB1c2gocCl9dGhpcy5rZXB0PWUodCxudWxsLHUpLHRoaXMucmVtb3ZlZD1sfXJldHVybiBlKHQsbnVsbCxvKX0sdXBkYXRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucHJldkNoaWxkcmVuLHQ9dGhpcy5tb3ZlQ2xhc3N8fCh0aGlzLm5hbWV8fCJ2IikrIi1tb3ZlIjtlLmxlbmd0aCYmdGhpcy5oYXNNb3ZlKGVbMF0uZWxtLHQpJiYoZS5mb3JFYWNoKGNvKSxlLmZvckVhY2godW8pLGUuZm9yRWFjaChsbyksdGhpcy5fcmVmbG93PWRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LGUuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlLmRhdGEubW92ZWQpe3ZhciBuPWUuZWxtLHI9bi5zdHlsZTtOaShuLHQpLHIudHJhbnNmb3JtPXIuV2Via2l0VHJhbnNmb3JtPXIudHJhbnNpdGlvbkR1cmF0aW9uPSIiLG4uYWRkRXZlbnRMaXN0ZW5lcihBaSxuLl9tb3ZlQ2I9ZnVuY3Rpb24gZShyKXtyJiZyLnRhcmdldCE9PW58fHImJiEvdHJhbnNmb3JtJC8udGVzdChyLnByb3BlcnR5TmFtZSl8fChuLnJlbW92ZUV2ZW50TGlzdGVuZXIoQWksZSksbi5fbW92ZUNiPW51bGwsamkobix0KSl9KX19KSl9LG1ldGhvZHM6e2hhc01vdmU6ZnVuY3Rpb24oZSx0KXtpZighd2kpcmV0dXJuITE7aWYodGhpcy5faGFzTW92ZSlyZXR1cm4gdGhpcy5faGFzTW92ZTt2YXIgbj1lLmNsb25lTm9kZSgpO2UuX3RyYW5zaXRpb25DbGFzc2VzJiZlLl90cmFuc2l0aW9uQ2xhc3Nlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe19pKG4sZSl9KSxnaShuLHQpLG4uc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy4kZWwuYXBwZW5kQ2hpbGQobik7dmFyIHI9TWkobik7cmV0dXJuIHRoaXMuJGVsLnJlbW92ZUNoaWxkKG4pLHRoaXMuX2hhc01vdmU9ci5oYXNUcmFuc2Zvcm19fX19O3duLmNvbmZpZy5tdXN0VXNlUHJvcD1qbix3bi5jb25maWcuaXNSZXNlcnZlZFRhZz1Xbix3bi5jb25maWcuaXNSZXNlcnZlZEF0dHI9RW4sd24uY29uZmlnLmdldFRhZ05hbWVzcGFjZT1abix3bi5jb25maWcuaXNVbmtub3duRWxlbWVudD1mdW5jdGlvbihlKXtpZigheilyZXR1cm4hMDtpZihXbihlKSlyZXR1cm4hMTtpZihlPWUudG9Mb3dlckNhc2UoKSxudWxsIT1HbltlXSlyZXR1cm4gR25bZV07dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gZS5pbmRleE9mKCItIik+LTE\/R25bZV09dC5jb25zdHJ1Y3Rvcj09PXdpbmRvdy5IVE1MVW5rbm93bkVsZW1lbnR8fHQuY29uc3RydWN0b3I9PT13aW5kb3cuSFRNTEVsZW1lbnQ6R25bZV09L0hUTUxVbmtub3duRWxlbWVudC8udGVzdCh0LnRvU3RyaW5nKCkpfSxBKHduLm9wdGlvbnMuZGlyZWN0aXZlcyxRaSksQSh3bi5vcHRpb25zLmNvbXBvbmVudHMsZm8pLHduLnByb3RvdHlwZS5fX3BhdGNoX189ej96aTpTLHduLnByb3RvdHlwZS4kbW91bnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiBlLiRlbD10LGUuJG9wdGlvbnMucmVuZGVyfHwoZS4kb3B0aW9ucy5yZW5kZXI9dmUpLFl0KGUsImJlZm9yZU1vdW50Iikscj1mdW5jdGlvbigpe2UuX3VwZGF0ZShlLl9yZW5kZXIoKSxuKX0sbmV3IGZuKGUscixTLHtiZWZvcmU6ZnVuY3Rpb24oKXtlLl9pc01vdW50ZWQmJiFlLl9pc0Rlc3Ryb3llZCYmWXQoZSwiYmVmb3JlVXBkYXRlIil9fSwhMCksbj0hMSxudWxsPT1lLiR2bm9kZSYmKGUuX2lzTW91bnRlZD0hMCxZdChlLCJtb3VudGVkIikpLGV9KHRoaXMsZT1lJiZ6P1luKGUpOnZvaWQgMCx0KX0seiYmc2V0VGltZW91dChmdW5jdGlvbigpe0YuZGV2dG9vbHMmJm5lJiZuZS5lbWl0KCJpbml0Iix3bil9LDApO3ZhciBwbz0vXHtceygoPzoufFxyP1xuKSs\/KVx9XH0vZyx2bz0vWy0uKis\/XiR7fSgpfFtcXVwvXFxdL2csaG89ZyhmdW5jdGlvbihlKXt2YXIgdD1lWzBdLnJlcGxhY2Uodm8sIlxcJCYiKSxuPWVbMV0ucmVwbGFjZSh2bywiXFwkJiIpO3JldHVybiBuZXcgUmVnRXhwKHQrIigoPzoufFxcbikrPykiK24sImciKX0pO3ZhciBtbz17c3RhdGljS2V5czpbInN0YXRpY0NsYXNzIl0sdHJhbnNmb3JtTm9kZTpmdW5jdGlvbihlLHQpe3Qud2Fybjt2YXIgbj1GcihlLCJjbGFzcyIpO24mJihlLnN0YXRpY0NsYXNzPUpTT04uc3RyaW5naWZ5KG4pKTt2YXIgcj1JcihlLCJjbGFzcyIsITEpO3ImJihlLmNsYXNzQmluZGluZz1yKX0sZ2VuRGF0YTpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZS5zdGF0aWNDbGFzcyYmKHQrPSJzdGF0aWNDbGFzczoiK2Uuc3RhdGljQ2xhc3MrIiwiKSxlLmNsYXNzQmluZGluZyYmKHQrPSJjbGFzczoiK2UuY2xhc3NCaW5kaW5nKyIsIiksdH19O3ZhciB5byxnbz17c3RhdGljS2V5czpbInN0YXRpY1N0eWxlIl0sdHJhbnNmb3JtTm9kZTpmdW5jdGlvbihlLHQpe3Qud2Fybjt2YXIgbj1GcihlLCJzdHlsZSIpO24mJihlLnN0YXRpY1N0eWxlPUpTT04uc3RyaW5naWZ5KGFpKG4pKSk7dmFyIHI9SXIoZSwic3R5bGUiLCExKTtyJiYoZS5zdHlsZUJpbmRpbmc9cil9LGdlbkRhdGE6ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7cmV0dXJuIGUuc3RhdGljU3R5bGUmJih0Kz0ic3RhdGljU3R5bGU6IitlLnN0YXRpY1N0eWxlKyIsIiksZS5zdHlsZUJpbmRpbmcmJih0Kz0ic3R5bGU6KCIrZS5zdHlsZUJpbmRpbmcrIiksIiksdH19LF9vPWZ1bmN0aW9uKGUpe3JldHVybih5bz15b3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD1lLHlvLnRleHRDb250ZW50fSxibz1wKCJhcmVhLGJhc2UsYnIsY29sLGVtYmVkLGZyYW1lLGhyLGltZyxpbnB1dCxpc2luZGV4LGtleWdlbixsaW5rLG1ldGEscGFyYW0sc291cmNlLHRyYWNrLHdiciIpLCRvPXAoImNvbGdyb3VwLGRkLGR0LGxpLG9wdGlvbnMscCx0ZCx0Zm9vdCx0aCx0aGVhZCx0cixzb3VyY2UiKSx3bz1wKCJhZGRyZXNzLGFydGljbGUsYXNpZGUsYmFzZSxibG9ja3F1b3RlLGJvZHksY2FwdGlvbixjb2wsY29sZ3JvdXAsZGQsZGV0YWlscyxkaWFsb2csZGl2LGRsLGR0LGZpZWxkc2V0LGZpZ2NhcHRpb24sZmlndXJlLGZvb3Rlcixmb3JtLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWQsaGVhZGVyLGhncm91cCxocixodG1sLGxlZ2VuZCxsaSxtZW51aXRlbSxtZXRhLG9wdGdyb3VwLG9wdGlvbixwYXJhbSxycCxydCxzb3VyY2Usc3R5bGUsc3VtbWFyeSx0Ym9keSx0ZCx0Zm9vdCx0aCx0aGVhZCx0aXRsZSx0cix0cmFjayIpLENvPS9eXHMqKFteXHMiJzw+XC89XSspKD86XHMqKD0pXHMqKD86IihbXiJdKikiK3wnKFteJ10qKScrfChbXlxzIic9PD5gXSspKSk\/Lyx4bz0vXlxzKigoPzp2LVtcdy1dKzp8QHw6fCMpXFtbXj1dK1xdW15ccyInPD5cLz1dKikoPzpccyooPSlccyooPzoiKFteIl0qKSIrfCcoW14nXSopJyt8KFteXHMiJz08PmBdKykpKT8vLGtvPSJbYS16QS1aX11bXFwtXFwuMC05X2EtekEtWiIrUC5zb3VyY2UrIl0qIixBbz0iKCg\/OiIra28rIlxcOik\/IitrbysiKSIsT289bmV3IFJlZ0V4cCgiXjwiK0FvKSxTbz0vXlxzKihcLz8pPi8sVG89bmV3IFJlZ0V4cCgiXjxcXC8iK0FvKyJbXj5dKj4iKSxFbz0vXjwhRE9DVFlQRSBbXj5dKz4vaSxObz0vXjwhXC0tLyxqbz0vXjwhXFsvLERvPXAoInNjcmlwdCxzdHlsZSx0ZXh0YXJlYSIsITApLExvPXt9LE1vPXsiJmx0OyI6IjwiLCImZ3Q7IjoiPiIsIiZxdW90OyI6JyInLCImYW1wOyI6IiYiLCImIzEwOyI6IlxuIiwiJiM5OyI6Ilx0IiwiJiMzOTsiOiInIn0sSW89LyYoPzpsdHxndHxxdW90fGFtcHwjMzkpOy9nLEZvPS8mKD86bHR8Z3R8cXVvdHxhbXB8IzM5fCMxMHwjOSk7L2csUG89cCgicHJlLHRleHRhcmVhIiwhMCksUm89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmUG8oZSkmJiJcbiI9PT10WzBdfTtmdW5jdGlvbiBIbyhlLHQpe3ZhciBuPXQ\/Rm86SW87cmV0dXJuIGUucmVwbGFjZShuLGZ1bmN0aW9uKGUpe3JldHVybiBNb1tlXX0pfXZhciBCbyxVbyx6byxWbyxLbyxKbyxxbyxXbyxabz0vXkB8XnYtb246LyxHbz0vXnYtfF5AfF46fF4jLyxYbz0vKFtcc1xTXSo\/KVxzKyg\/OmlufG9mKVxzKyhbXHNcU10qKS8sWW89LywoW14sXH1cXV0qKSg\/OiwoW14sXH1cXV0qKSk\/JC8sUW89L15cKHxcKSQvZyxlYT0vXlxbLipcXSQvLHRhPS86KC4qKSQvLG5hPS9eOnxeXC58XnYtYmluZDovLHJhPS9cLlteLlxdXSsoPz1bXlxdXSokKS9nLGlhPS9edi1zbG90KDp8JCl8XiMvLG9hPS9bXHJcbl0vLGFhPS9ccysvZyxzYT1nKF9vKSxjYT0iX2VtcHR5XyI7ZnVuY3Rpb24gdWEoZSx0LG4pe3JldHVybnt0eXBlOjEsdGFnOmUsYXR0cnNMaXN0OnQsYXR0cnNNYXA6bWEodCkscmF3QXR0cnNNYXA6e30scGFyZW50Om4sY2hpbGRyZW46W119fWZ1bmN0aW9uIGxhKGUsdCl7Qm89dC53YXJufHxTcixKbz10LmlzUHJlVGFnfHxULHFvPXQubXVzdFVzZVByb3B8fFQsV289dC5nZXRUYWdOYW1lc3BhY2V8fFQ7dC5pc1Jlc2VydmVkVGFnO3pvPVRyKHQubW9kdWxlcywidHJhbnNmb3JtTm9kZSIpLFZvPVRyKHQubW9kdWxlcywicHJlVHJhbnNmb3JtTm9kZSIpLEtvPVRyKHQubW9kdWxlcywicG9zdFRyYW5zZm9ybU5vZGUiKSxVbz10LmRlbGltaXRlcnM7dmFyIG4scixpPVtdLG89ITEhPT10LnByZXNlcnZlV2hpdGVzcGFjZSxhPXQud2hpdGVzcGFjZSxzPSExLGM9ITE7ZnVuY3Rpb24gdShlKXtpZihsKGUpLHN8fGUucHJvY2Vzc2VkfHwoZT1mYShlLHQpKSxpLmxlbmd0aHx8ZT09PW58fG4uaWYmJihlLmVsc2VpZnx8ZS5lbHNlKSYmZGEobix7ZXhwOmUuZWxzZWlmLGJsb2NrOmV9KSxyJiYhZS5mb3JiaWRkZW4paWYoZS5lbHNlaWZ8fGUuZWxzZSlhPWUsKHU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7Zm9yKDt0LS07KXtpZigxPT09ZVt0XS50eXBlKXJldHVybiBlW3RdO2UucG9wKCl9fShyLmNoaWxkcmVuKSkmJnUuaWYmJmRhKHUse2V4cDphLmVsc2VpZixibG9jazphfSk7ZWxzZXtpZihlLnNsb3RTY29wZSl7dmFyIG89ZS5zbG90VGFyZ2V0fHwnImRlZmF1bHQiJzsoci5zY29wZWRTbG90c3x8KHIuc2NvcGVkU2xvdHM9e30pKVtvXT1lfXIuY2hpbGRyZW4ucHVzaChlKSxlLnBhcmVudD1yfXZhciBhLHU7ZS5jaGlsZHJlbj1lLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5zbG90U2NvcGV9KSxsKGUpLGUucHJlJiYocz0hMSksSm8oZS50YWcpJiYoYz0hMSk7Zm9yKHZhciBmPTA7ZjxLby5sZW5ndGg7ZisrKUtvW2ZdKGUsdCl9ZnVuY3Rpb24gbChlKXtpZighYylmb3IodmFyIHQ7KHQ9ZS5jaGlsZHJlbltlLmNoaWxkcmVuLmxlbmd0aC0xXSkmJjM9PT10LnR5cGUmJiIgIj09PXQudGV4dDspZS5jaGlsZHJlbi5wb3AoKX1yZXR1cm4gZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4scixpPVtdLG89dC5leHBlY3RIVE1MLGE9dC5pc1VuYXJ5VGFnfHxULHM9dC5jYW5CZUxlZnRPcGVuVGFnfHxULGM9MDtlOyl7aWYobj1lLHImJkRvKHIpKXt2YXIgdT0wLGw9ci50b0xvd2VyQ2FzZSgpLGY9TG9bbF18fChMb1tsXT1uZXcgUmVnRXhwKCIoW1xcc1xcU10qPykoPC8iK2wrIltePl0qPikiLCJpIikpLHA9ZS5yZXBsYWNlKGYsZnVuY3Rpb24oZSxuLHIpe3JldHVybiB1PXIubGVuZ3RoLERvKGwpfHwibm9zY3JpcHQiPT09bHx8KG49bi5yZXBsYWNlKC88IVwtLShbXHNcU10qPyktLT4vZywiJDEiKS5yZXBsYWNlKC88IVxbQ0RBVEFcWyhbXHNcU10qPyldXT4vZywiJDEiKSksUm8obCxuKSYmKG49bi5zbGljZSgxKSksdC5jaGFycyYmdC5jaGFycyhuKSwiIn0pO2MrPWUubGVuZ3RoLXAubGVuZ3RoLGU9cCxBKGwsYy11LGMpfWVsc2V7dmFyIGQ9ZS5pbmRleE9mKCI8Iik7aWYoMD09PWQpe2lmKE5vLnRlc3QoZSkpe3ZhciB2PWUuaW5kZXhPZigiLS1ceDNlIik7aWYodj49MCl7dC5zaG91bGRLZWVwQ29tbWVudCYmdC5jb21tZW50KGUuc3Vic3RyaW5nKDQsdiksYyxjK3YrMyksQyh2KzMpO2NvbnRpbnVlfX1pZihqby50ZXN0KGUpKXt2YXIgaD1lLmluZGV4T2YoIl0+Iik7aWYoaD49MCl7QyhoKzIpO2NvbnRpbnVlfX12YXIgbT1lLm1hdGNoKEVvKTtpZihtKXtDKG1bMF0ubGVuZ3RoKTtjb250aW51ZX12YXIgeT1lLm1hdGNoKFRvKTtpZih5KXt2YXIgZz1jO0MoeVswXS5sZW5ndGgpLEEoeVsxXSxnLGMpO2NvbnRpbnVlfXZhciBfPXgoKTtpZihfKXtrKF8pLFJvKF8udGFnTmFtZSxlKSYmQygxKTtjb250aW51ZX19dmFyIGI9dm9pZCAwLCQ9dm9pZCAwLHc9dm9pZCAwO2lmKGQ+PTApe2ZvcigkPWUuc2xpY2UoZCk7IShUby50ZXN0KCQpfHxPby50ZXN0KCQpfHxOby50ZXN0KCQpfHxqby50ZXN0KCQpfHwodz0kLmluZGV4T2YoIjwiLDEpKTwwKTspZCs9dywkPWUuc2xpY2UoZCk7Yj1lLnN1YnN0cmluZygwLGQpfWQ8MCYmKGI9ZSksYiYmQyhiLmxlbmd0aCksdC5jaGFycyYmYiYmdC5jaGFycyhiLGMtYi5sZW5ndGgsYyl9aWYoZT09PW4pe3QuY2hhcnMmJnQuY2hhcnMoZSk7YnJlYWt9fWZ1bmN0aW9uIEModCl7Yys9dCxlPWUuc3Vic3RyaW5nKHQpfWZ1bmN0aW9uIHgoKXt2YXIgdD1lLm1hdGNoKE9vKTtpZih0KXt2YXIgbixyLGk9e3RhZ05hbWU6dFsxXSxhdHRyczpbXSxzdGFydDpjfTtmb3IoQyh0WzBdLmxlbmd0aCk7IShuPWUubWF0Y2goU28pKSYmKHI9ZS5tYXRjaCh4byl8fGUubWF0Y2goQ28pKTspci5zdGFydD1jLEMoclswXS5sZW5ndGgpLHIuZW5kPWMsaS5hdHRycy5wdXNoKHIpO2lmKG4pcmV0dXJuIGkudW5hcnlTbGFzaD1uWzFdLEMoblswXS5sZW5ndGgpLGkuZW5kPWMsaX19ZnVuY3Rpb24gayhlKXt2YXIgbj1lLnRhZ05hbWUsYz1lLnVuYXJ5U2xhc2g7byYmKCJwIj09PXImJndvKG4pJiZBKHIpLHMobikmJnI9PT1uJiZBKG4pKTtmb3IodmFyIHU9YShuKXx8ISFjLGw9ZS5hdHRycy5sZW5ndGgsZj1uZXcgQXJyYXkobCkscD0wO3A8bDtwKyspe3ZhciBkPWUuYXR0cnNbcF0sdj1kWzNdfHxkWzRdfHxkWzVdfHwiIixoPSJhIj09PW4mJiJocmVmIj09PWRbMV0\/dC5zaG91bGREZWNvZGVOZXdsaW5lc0ZvckhyZWY6dC5zaG91bGREZWNvZGVOZXdsaW5lcztmW3BdPXtuYW1lOmRbMV0sdmFsdWU6SG8odixoKX19dXx8KGkucHVzaCh7dGFnOm4sbG93ZXJDYXNlZFRhZzpuLnRvTG93ZXJDYXNlKCksYXR0cnM6ZixzdGFydDplLnN0YXJ0LGVuZDplLmVuZH0pLHI9biksdC5zdGFydCYmdC5zdGFydChuLGYsdSxlLnN0YXJ0LGUuZW5kKX1mdW5jdGlvbiBBKGUsbixvKXt2YXIgYSxzO2lmKG51bGw9PW4mJihuPWMpLG51bGw9PW8mJihvPWMpLGUpZm9yKHM9ZS50b0xvd2VyQ2FzZSgpLGE9aS5sZW5ndGgtMTthPj0wJiZpW2FdLmxvd2VyQ2FzZWRUYWchPT1zO2EtLSk7ZWxzZSBhPTA7aWYoYT49MCl7Zm9yKHZhciB1PWkubGVuZ3RoLTE7dT49YTt1LS0pdC5lbmQmJnQuZW5kKGlbdV0udGFnLG4sbyk7aS5sZW5ndGg9YSxyPWEmJmlbYS0xXS50YWd9ZWxzZSJiciI9PT1zP3Quc3RhcnQmJnQuc3RhcnQoZSxbXSwhMCxuLG8pOiJwIj09PXMmJih0LnN0YXJ0JiZ0LnN0YXJ0KGUsW10sITEsbixvKSx0LmVuZCYmdC5lbmQoZSxuLG8pKX1BKCl9KGUse3dhcm46Qm8sZXhwZWN0SFRNTDp0LmV4cGVjdEhUTUwsaXNVbmFyeVRhZzp0LmlzVW5hcnlUYWcsY2FuQmVMZWZ0T3BlblRhZzp0LmNhbkJlTGVmdE9wZW5UYWcsc2hvdWxkRGVjb2RlTmV3bGluZXM6dC5zaG91bGREZWNvZGVOZXdsaW5lcyxzaG91bGREZWNvZGVOZXdsaW5lc0ZvckhyZWY6dC5zaG91bGREZWNvZGVOZXdsaW5lc0ZvckhyZWYsc2hvdWxkS2VlcENvbW1lbnQ6dC5jb21tZW50cyxvdXRwdXRTb3VyY2VSYW5nZTp0Lm91dHB1dFNvdXJjZVJhbmdlLHN0YXJ0OmZ1bmN0aW9uKGUsbyxhLGwsZil7dmFyIHA9ciYmci5uc3x8V28oZSk7cSYmInN2ZyI9PT1wJiYobz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3lhLnRlc3Qoci5uYW1lKXx8KHIubmFtZT1yLm5hbWUucmVwbGFjZShnYSwiIiksdC5wdXNoKHIpKX1yZXR1cm4gdH0obykpO3ZhciBkLHY9dWEoZSxvLHIpO3AmJih2Lm5zPXApLCJzdHlsZSIhPT0oZD12KS50YWcmJigic2NyaXB0IiE9PWQudGFnfHxkLmF0dHJzTWFwLnR5cGUmJiJ0ZXh0L2phdmFzY3JpcHQiIT09ZC5hdHRyc01hcC50eXBlKXx8dGUoKXx8KHYuZm9yYmlkZGVuPSEwKTtmb3IodmFyIGg9MDtoPFZvLmxlbmd0aDtoKyspdj1Wb1toXSh2LHQpfHx2O3N8fCghZnVuY3Rpb24oZSl7bnVsbCE9RnIoZSwidi1wcmUiKSYmKGUucHJlPSEwKX0odiksdi5wcmUmJihzPSEwKSksSm8odi50YWcpJiYoYz0hMCkscz9mdW5jdGlvbihlKXt2YXIgdD1lLmF0dHJzTGlzdCxuPXQubGVuZ3RoO2lmKG4pZm9yKHZhciByPWUuYXR0cnM9bmV3IEFycmF5KG4pLGk9MDtpPG47aSsrKXJbaV09e25hbWU6dFtpXS5uYW1lLHZhbHVlOkpTT04uc3RyaW5naWZ5KHRbaV0udmFsdWUpfSxudWxsIT10W2ldLnN0YXJ0JiYocltpXS5zdGFydD10W2ldLnN0YXJ0LHJbaV0uZW5kPXRbaV0uZW5kKTtlbHNlIGUucHJlfHwoZS5wbGFpbj0hMCl9KHYpOnYucHJvY2Vzc2VkfHwocGEodiksZnVuY3Rpb24oZSl7dmFyIHQ9RnIoZSwidi1pZiIpO2lmKHQpZS5pZj10LGRhKGUse2V4cDp0LGJsb2NrOmV9KTtlbHNle251bGwhPUZyKGUsInYtZWxzZSIpJiYoZS5lbHNlPSEwKTt2YXIgbj1GcihlLCJ2LWVsc2UtaWYiKTtuJiYoZS5lbHNlaWY9bil9fSh2KSxmdW5jdGlvbihlKXtudWxsIT1GcihlLCJ2LW9uY2UiKSYmKGUub25jZT0hMCl9KHYpKSxufHwobj12KSxhP3Uodik6KHI9dixpLnB1c2godikpfSxlbmQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPWlbaS5sZW5ndGgtMV07aS5sZW5ndGgtPTEscj1pW2kubGVuZ3RoLTFdLHUobyl9LGNoYXJzOmZ1bmN0aW9uKGUsdCxuKXtpZihyJiYoIXF8fCJ0ZXh0YXJlYSIhPT1yLnRhZ3x8ci5hdHRyc01hcC5wbGFjZWhvbGRlciE9PWUpKXt2YXIgaSx1LGwsZj1yLmNoaWxkcmVuO2lmKGU9Y3x8ZS50cmltKCk\/InNjcmlwdCI9PT0oaT1yKS50YWd8fCJzdHlsZSI9PT1pLnRhZz9lOnNhKGUpOmYubGVuZ3RoP2E\/ImNvbmRlbnNlIj09PWEmJm9hLnRlc3QoZSk\/IiI6IiAiOm8\/IiAiOiIiOiIiKWN8fCJjb25kZW5zZSIhPT1hfHwoZT1lLnJlcGxhY2UoYWEsIiAiKSksIXMmJiIgIiE9PWUmJih1PWZ1bmN0aW9uKGUsdCl7dmFyIG49dD9obyh0KTpwbztpZihuLnRlc3QoZSkpe2Zvcih2YXIgcixpLG8sYT1bXSxzPVtdLGM9bi5sYXN0SW5kZXg9MDtyPW4uZXhlYyhlKTspeyhpPXIuaW5kZXgpPmMmJihzLnB1c2gobz1lLnNsaWNlKGMsaSkpLGEucHVzaChKU09OLnN0cmluZ2lmeShvKSkpO3ZhciB1PUFyKHJbMV0udHJpbSgpKTthLnB1c2goIl9zKCIrdSsiKSIpLHMucHVzaCh7IkBiaW5kaW5nIjp1fSksYz1pK3JbMF0ubGVuZ3RofXJldHVybiBjPGUubGVuZ3RoJiYocy5wdXNoKG89ZS5zbGljZShjKSksYS5wdXNoKEpTT04uc3RyaW5naWZ5KG8pKSkse2V4cHJlc3Npb246YS5qb2luKCIrIiksdG9rZW5zOnN9fX0oZSxVbykpP2w9e3R5cGU6MixleHByZXNzaW9uOnUuZXhwcmVzc2lvbix0b2tlbnM6dS50b2tlbnMsdGV4dDplfToiICI9PT1lJiZmLmxlbmd0aCYmIiAiPT09ZltmLmxlbmd0aC0xXS50ZXh0fHwobD17dHlwZTozLHRleHQ6ZX0pLGwmJmYucHVzaChsKX19LGNvbW1lbnQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHIpe3ZhciBpPXt0eXBlOjMsdGV4dDplLGlzQ29tbWVudDohMH07ci5jaGlsZHJlbi5wdXNoKGkpfX19KSxufWZ1bmN0aW9uIGZhKGUsdCl7dmFyIG4scjsocj1JcihuPWUsImtleSIpKSYmKG4ua2V5PXIpLGUucGxhaW49IWUua2V5JiYhZS5zY29wZWRTbG90cyYmIWUuYXR0cnNMaXN0Lmxlbmd0aCxmdW5jdGlvbihlKXt2YXIgdD1JcihlLCJyZWYiKTt0JiYoZS5yZWY9dCxlLnJlZkluRm9yPWZ1bmN0aW9uKGUpe3ZhciB0PWU7Zm9yKDt0Oyl7aWYodm9pZCAwIT09dC5mb3IpcmV0dXJuITA7dD10LnBhcmVudH1yZXR1cm4hMX0oZSkpfShlKSxmdW5jdGlvbihlKXt2YXIgdDsidGVtcGxhdGUiPT09ZS50YWc\/KHQ9RnIoZSwic2NvcGUiKSxlLnNsb3RTY29wZT10fHxGcihlLCJzbG90LXNjb3BlIikpOih0PUZyKGUsInNsb3Qtc2NvcGUiKSkmJihlLnNsb3RTY29wZT10KTt2YXIgbj1JcihlLCJzbG90Iik7biYmKGUuc2xvdFRhcmdldD0nIiInPT09bj8nImRlZmF1bHQiJzpuLGUuc2xvdFRhcmdldER5bmFtaWM9ISghZS5hdHRyc01hcFsiOnNsb3QiXSYmIWUuYXR0cnNNYXBbInYtYmluZDpzbG90Il0pLCJ0ZW1wbGF0ZSI9PT1lLnRhZ3x8ZS5zbG90U2NvcGV8fE5yKGUsInNsb3QiLG4sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yYXdBdHRyc01hcFsiOiIrdF18fGUucmF3QXR0cnNNYXBbInYtYmluZDoiK3RdfHxlLnJhd0F0dHJzTWFwW3RdfShlLCJzbG90IikpKTtpZigidGVtcGxhdGUiPT09ZS50YWcpe3ZhciByPVByKGUsaWEpO2lmKHIpe3ZhciBpPXZhKHIpLG89aS5uYW1lLGE9aS5keW5hbWljO2Uuc2xvdFRhcmdldD1vLGUuc2xvdFRhcmdldER5bmFtaWM9YSxlLnNsb3RTY29wZT1yLnZhbHVlfHxjYX19ZWxzZXt2YXIgcz1QcihlLGlhKTtpZihzKXt2YXIgYz1lLnNjb3BlZFNsb3RzfHwoZS5zY29wZWRTbG90cz17fSksdT12YShzKSxsPXUubmFtZSxmPXUuZHluYW1pYyxwPWNbbF09dWEoInRlbXBsYXRlIixbXSxlKTtwLnNsb3RUYXJnZXQ9bCxwLnNsb3RUYXJnZXREeW5hbWljPWYscC5jaGlsZHJlbj1lLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihlKXtpZighZS5zbG90U2NvcGUpcmV0dXJuIGUucGFyZW50PXAsITB9KSxwLnNsb3RTY29wZT1zLnZhbHVlfHxjYSxlLmNoaWxkcmVuPVtdLGUucGxhaW49ITF9fX0oZSksZnVuY3Rpb24oZSl7InNsb3QiPT09ZS50YWcmJihlLnNsb3ROYW1lPUlyKGUsIm5hbWUiKSl9KGUpLGZ1bmN0aW9uKGUpe3ZhciB0Oyh0PUlyKGUsImlzIikpJiYoZS5jb21wb25lbnQ9dCk7bnVsbCE9RnIoZSwiaW5saW5lLXRlbXBsYXRlIikmJihlLmlubGluZVRlbXBsYXRlPSEwKX0oZSk7Zm9yKHZhciBpPTA7aTx6by5sZW5ndGg7aSsrKWU9em9baV0oZSx0KXx8ZTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHMsYyx1PWUuYXR0cnNMaXN0O2Zvcih0PTAsbj11Lmxlbmd0aDt0PG47dCsrKWlmKHI9aT11W3RdLm5hbWUsbz11W3RdLnZhbHVlLEdvLnRlc3QocikpaWYoZS5oYXNCaW5kaW5ncz0hMCwoYT1oYShyLnJlcGxhY2UoR28sIiIpKSkmJihyPXIucmVwbGFjZShyYSwiIikpLG5hLnRlc3Qocikpcj1yLnJlcGxhY2UobmEsIiIpLG89QXIobyksKGM9ZWEudGVzdChyKSkmJihyPXIuc2xpY2UoMSwtMSkpLGEmJihhLnByb3AmJiFjJiYiaW5uZXJIdG1sIj09PShyPWIocikpJiYocj0iaW5uZXJIVE1MIiksYS5jYW1lbCYmIWMmJihyPWIocikpLGEuc3luYyYmKHM9QnIobywiJGV2ZW50IiksYz9NcihlLCcidXBkYXRlOiIrKCcrcisiKSIscyxudWxsLCExLDAsdVt0XSwhMCk6KE1yKGUsInVwZGF0ZToiK2IocikscyxudWxsLCExLDAsdVt0XSksQyhyKSE9PWIocikmJk1yKGUsInVwZGF0ZToiK0MocikscyxudWxsLCExLDAsdVt0XSkpKSksYSYmYS5wcm9wfHwhZS5jb21wb25lbnQmJnFvKGUudGFnLGUuYXR0cnNNYXAudHlwZSxyKT9FcihlLHIsbyx1W3RdLGMpOk5yKGUscixvLHVbdF0sYyk7ZWxzZSBpZihaby50ZXN0KHIpKXI9ci5yZXBsYWNlKFpvLCIiKSwoYz1lYS50ZXN0KHIpKSYmKHI9ci5zbGljZSgxLC0xKSksTXIoZSxyLG8sYSwhMSwwLHVbdF0sYyk7ZWxzZXt2YXIgbD0ocj1yLnJlcGxhY2UoR28sIiIpKS5tYXRjaCh0YSksZj1sJiZsWzFdO2M9ITEsZiYmKHI9ci5zbGljZSgwLC0oZi5sZW5ndGgrMSkpLGVhLnRlc3QoZikmJihmPWYuc2xpY2UoMSwtMSksYz0hMCkpLERyKGUscixpLG8sZixjLGEsdVt0XSl9ZWxzZSBOcihlLHIsSlNPTi5zdHJpbmdpZnkobyksdVt0XSksIWUuY29tcG9uZW50JiYibXV0ZWQiPT09ciYmcW8oZS50YWcsZS5hdHRyc01hcC50eXBlLHIpJiZFcihlLHIsInRydWUiLHVbdF0pfShlKSxlfWZ1bmN0aW9uIHBhKGUpe3ZhciB0O2lmKHQ9RnIoZSwidi1mb3IiKSl7dmFyIG49ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaChYbyk7aWYoIXQpcmV0dXJuO3ZhciBuPXt9O24uZm9yPXRbMl0udHJpbSgpO3ZhciByPXRbMV0udHJpbSgpLnJlcGxhY2UoUW8sIiIpLGk9ci5tYXRjaChZbyk7aT8obi5hbGlhcz1yLnJlcGxhY2UoWW8sIiIpLnRyaW0oKSxuLml0ZXJhdG9yMT1pWzFdLnRyaW0oKSxpWzJdJiYobi5pdGVyYXRvcjI9aVsyXS50cmltKCkpKTpuLmFsaWFzPXI7cmV0dXJuIG59KHQpO24mJkEoZSxuKX19ZnVuY3Rpb24gZGEoZSx0KXtlLmlmQ29uZGl0aW9uc3x8KGUuaWZDb25kaXRpb25zPVtdKSxlLmlmQ29uZGl0aW9ucy5wdXNoKHQpfWZ1bmN0aW9uIHZhKGUpe3ZhciB0PWUubmFtZS5yZXBsYWNlKGlhLCIiKTtyZXR1cm4gdHx8IiMiIT09ZS5uYW1lWzBdJiYodD0iZGVmYXVsdCIpLGVhLnRlc3QodCk\/e25hbWU6dC5zbGljZSgxLC0xKSxkeW5hbWljOiEwfTp7bmFtZTonIicrdCsnIicsZHluYW1pYzohMX19ZnVuY3Rpb24gaGEoZSl7dmFyIHQ9ZS5tYXRjaChyYSk7aWYodCl7dmFyIG49e307cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXtuW2Uuc2xpY2UoMSldPSEwfSksbn19ZnVuY3Rpb24gbWEoZSl7Zm9yKHZhciB0PXt9LG49MCxyPWUubGVuZ3RoO248cjtuKyspdFtlW25dLm5hbWVdPWVbbl0udmFsdWU7cmV0dXJuIHR9dmFyIHlhPS9eeG1sbnM6TlNcZCsvLGdhPS9eTlNcZCs6LztmdW5jdGlvbiBfYShlKXtyZXR1cm4gdWEoZS50YWcsZS5hdHRyc0xpc3Quc2xpY2UoKSxlLnBhcmVudCl9dmFyIGJhPVttbyxnbyx7cHJlVHJhbnNmb3JtTm9kZTpmdW5jdGlvbihlLHQpe2lmKCJpbnB1dCI9PT1lLnRhZyl7dmFyIG4scj1lLmF0dHJzTWFwO2lmKCFyWyJ2LW1vZGVsIl0pcmV0dXJuO2lmKChyWyI6dHlwZSJdfHxyWyJ2LWJpbmQ6dHlwZSJdKSYmKG49SXIoZSwidHlwZSIpKSxyLnR5cGV8fG58fCFyWyJ2LWJpbmQiXXx8KG49IigiK3JbInYtYmluZCJdKyIpLnR5cGUiKSxuKXt2YXIgaT1GcihlLCJ2LWlmIiwhMCksbz1pPyImJigiK2krIikiOiIiLGE9bnVsbCE9RnIoZSwidi1lbHNlIiwhMCkscz1GcihlLCJ2LWVsc2UtaWYiLCEwKSxjPV9hKGUpO3BhKGMpLGpyKGMsInR5cGUiLCJjaGVja2JveCIpLGZhKGMsdCksYy5wcm9jZXNzZWQ9ITAsYy5pZj0iKCIrbisiKT09PSdjaGVja2JveCciK28sZGEoYyx7ZXhwOmMuaWYsYmxvY2s6Y30pO3ZhciB1PV9hKGUpO0ZyKHUsInYtZm9yIiwhMCksanIodSwidHlwZSIsInJhZGlvIiksZmEodSx0KSxkYShjLHtleHA6IigiK24rIik9PT0ncmFkaW8nIitvLGJsb2NrOnV9KTt2YXIgbD1fYShlKTtyZXR1cm4gRnIobCwidi1mb3IiLCEwKSxqcihsLCI6dHlwZSIsbiksZmEobCx0KSxkYShjLHtleHA6aSxibG9jazpsfSksYT9jLmVsc2U9ITA6cyYmKGMuZWxzZWlmPXMpLGN9fX19XTt2YXIgJGEsd2EsQ2E9e2V4cGVjdEhUTUw6ITAsbW9kdWxlczpiYSxkaXJlY3RpdmVzOnttb2RlbDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPXQubW9kaWZpZXJzLG89ZS50YWcsYT1lLmF0dHJzTWFwLnR5cGU7aWYoZS5jb21wb25lbnQpcmV0dXJuIEhyKGUscixpKSwhMTtpZigic2VsZWN0Ij09PW8pIWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0ndmFyICQkc2VsZWN0ZWRWYWwgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoJGV2ZW50LnRhcmdldC5vcHRpb25zLGZ1bmN0aW9uKG8pe3JldHVybiBvLnNlbGVjdGVkfSkubWFwKGZ1bmN0aW9uKG8pe3ZhciB2YWwgPSAiX3ZhbHVlIiBpbiBvID8gby5fdmFsdWUgOiBvLnZhbHVlO3JldHVybiAnKyhuJiZuLm51bWJlcj8iX24odmFsKSI6InZhbCIpKyJ9KTsiO3I9cisiICIrQnIodCwiJGV2ZW50LnRhcmdldC5tdWx0aXBsZSA\/ICQkc2VsZWN0ZWRWYWwgOiAkJHNlbGVjdGVkVmFsWzBdIiksTXIoZSwiY2hhbmdlIixyLG51bGwsITApfShlLHIsaSk7ZWxzZSBpZigiaW5wdXQiPT09byYmImNoZWNrYm94Ij09PWEpIWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uJiZuLm51bWJlcixpPUlyKGUsInZhbHVlIil8fCJudWxsIixvPUlyKGUsInRydWUtdmFsdWUiKXx8InRydWUiLGE9SXIoZSwiZmFsc2UtdmFsdWUiKXx8ImZhbHNlIjtFcihlLCJjaGVja2VkIiwiQXJyYXkuaXNBcnJheSgiK3QrIik\/X2koIit0KyIsIitpKyIpPi0xIisoInRydWUiPT09bz8iOigiK3QrIikiOiI6X3EoIit0KyIsIitvKyIpIikpLE1yKGUsImNoYW5nZSIsInZhciAkJGE9Iit0KyIsJCRlbD0kZXZlbnQudGFyZ2V0LCQkYz0kJGVsLmNoZWNrZWQ\/KCIrbysiKTooIithKyIpO2lmKEFycmF5LmlzQXJyYXkoJCRhKSl7dmFyICQkdj0iKyhyPyJfbigiK2krIikiOmkpKyIsJCRpPV9pKCQkYSwkJHYpO2lmKCQkZWwuY2hlY2tlZCl7JCRpPDAmJigiK0JyKHQsIiQkYS5jb25jYXQoWyQkdl0pIikrIil9ZWxzZXskJGk+LTEmJigiK0JyKHQsIiQkYS5zbGljZSgwLCQkaSkuY29uY2F0KCQkYS5zbGljZSgkJGkrMSkpIikrIil9fWVsc2V7IitCcih0LCIkJGMiKSsifSIsbnVsbCwhMCl9KGUscixpKTtlbHNlIGlmKCJpbnB1dCI9PT1vJiYicmFkaW8iPT09YSkhZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4mJm4ubnVtYmVyLGk9SXIoZSwidmFsdWUiKXx8Im51bGwiO0VyKGUsImNoZWNrZWQiLCJfcSgiK3QrIiwiKyhpPXI\/Il9uKCIraSsiKSI6aSkrIikiKSxNcihlLCJjaGFuZ2UiLEJyKHQsaSksbnVsbCwhMCl9KGUscixpKTtlbHNlIGlmKCJpbnB1dCI9PT1vfHwidGV4dGFyZWEiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYXR0cnNNYXAudHlwZSxpPW58fHt9LG89aS5sYXp5LGE9aS5udW1iZXIscz1pLnRyaW0sYz0hbyYmInJhbmdlIiE9PXIsdT1vPyJjaGFuZ2UiOiJyYW5nZSI9PT1yP1dyOiJpbnB1dCIsbD0iJGV2ZW50LnRhcmdldC52YWx1ZSI7cyYmKGw9IiRldmVudC50YXJnZXQudmFsdWUudHJpbSgpIiksYSYmKGw9Il9uKCIrbCsiKSIpO3ZhciBmPUJyKHQsbCk7YyYmKGY9ImlmKCRldmVudC50YXJnZXQuY29tcG9zaW5nKXJldHVybjsiK2YpLEVyKGUsInZhbHVlIiwiKCIrdCsiKSIpLE1yKGUsdSxmLG51bGwsITApLChzfHxhKSYmTXIoZSwiYmx1ciIsIiRmb3JjZVVwZGF0ZSgpIil9KGUscixpKTtlbHNlIGlmKCFGLmlzUmVzZXJ2ZWRUYWcobykpcmV0dXJuIEhyKGUscixpKSwhMTtyZXR1cm4hMH0sdGV4dDpmdW5jdGlvbihlLHQpe3QudmFsdWUmJkVyKGUsInRleHRDb250ZW50IiwiX3MoIit0LnZhbHVlKyIpIix0KX0saHRtbDpmdW5jdGlvbihlLHQpe3QudmFsdWUmJkVyKGUsImlubmVySFRNTCIsIl9zKCIrdC52YWx1ZSsiKSIsdCl9fSxpc1ByZVRhZzpmdW5jdGlvbihlKXtyZXR1cm4icHJlIj09PWV9LGlzVW5hcnlUYWc6Ym8sbXVzdFVzZVByb3A6am4sY2FuQmVMZWZ0T3BlblRhZzokbyxpc1Jlc2VydmVkVGFnOlduLGdldFRhZ05hbWVzcGFjZTpabixzdGF0aWNLZXlzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLmNvbmNhdCh0LnN0YXRpY0tleXN8fFtdKX0sW10pLmpvaW4oIiwiKX0oYmEpfSx4YT1nKGZ1bmN0aW9uKGUpe3JldHVybiBwKCJ0eXBlLHRhZyxhdHRyc0xpc3QsYXR0cnNNYXAscGxhaW4scGFyZW50LGNoaWxkcmVuLGF0dHJzLHN0YXJ0LGVuZCxyYXdBdHRyc01hcCIrKGU\/IiwiK2U6IiIpKX0pO2Z1bmN0aW9uIGthKGUsdCl7ZSYmKCRhPXhhKHQuc3RhdGljS2V5c3x8IiIpLHdhPXQuaXNSZXNlcnZlZFRhZ3x8VCxmdW5jdGlvbiBlKHQpe3Quc3RhdGljPWZ1bmN0aW9uKGUpe2lmKDI9PT1lLnR5cGUpcmV0dXJuITE7aWYoMz09PWUudHlwZSlyZXR1cm4hMDtyZXR1cm4hKCFlLnByZSYmKGUuaGFzQmluZGluZ3N8fGUuaWZ8fGUuZm9yfHxkKGUudGFnKXx8IXdhKGUudGFnKXx8ZnVuY3Rpb24oZSl7Zm9yKDtlLnBhcmVudDspe2lmKCJ0ZW1wbGF0ZSIhPT0oZT1lLnBhcmVudCkudGFnKXJldHVybiExO2lmKGUuZm9yKXJldHVybiEwfXJldHVybiExfShlKXx8IU9iamVjdC5rZXlzKGUpLmV2ZXJ5KCRhKSkpfSh0KTtpZigxPT09dC50eXBlKXtpZighd2EodC50YWcpJiYic2xvdCIhPT10LnRhZyYmbnVsbD09dC5hdHRyc01hcFsiaW5saW5lLXRlbXBsYXRlIl0pcmV0dXJuO2Zvcih2YXIgbj0wLHI9dC5jaGlsZHJlbi5sZW5ndGg7bjxyO24rKyl7dmFyIGk9dC5jaGlsZHJlbltuXTtlKGkpLGkuc3RhdGljfHwodC5zdGF0aWM9ITEpfWlmKHQuaWZDb25kaXRpb25zKWZvcih2YXIgbz0xLGE9dC5pZkNvbmRpdGlvbnMubGVuZ3RoO288YTtvKyspe3ZhciBzPXQuaWZDb25kaXRpb25zW29dLmJsb2NrO2Uocykscy5zdGF0aWN8fCh0LnN0YXRpYz0hMSl9fX0oZSksZnVuY3Rpb24gZSh0LG4pe2lmKDE9PT10LnR5cGUpe2lmKCh0LnN0YXRpY3x8dC5vbmNlKSYmKHQuc3RhdGljSW5Gb3I9biksdC5zdGF0aWMmJnQuY2hpbGRyZW4ubGVuZ3RoJiYoMSE9PXQuY2hpbGRyZW4ubGVuZ3RofHwzIT09dC5jaGlsZHJlblswXS50eXBlKSlyZXR1cm4gdm9pZCh0LnN0YXRpY1Jvb3Q9ITApO2lmKHQuc3RhdGljUm9vdD0hMSx0LmNoaWxkcmVuKWZvcih2YXIgcj0wLGk9dC5jaGlsZHJlbi5sZW5ndGg7cjxpO3IrKyllKHQuY2hpbGRyZW5bcl0sbnx8ISF0LmZvcik7aWYodC5pZkNvbmRpdGlvbnMpZm9yKHZhciBvPTEsYT10LmlmQ29uZGl0aW9ucy5sZW5ndGg7bzxhO28rKyllKHQuaWZDb25kaXRpb25zW29dLmJsb2NrLG4pfX0oZSwhMSkpfXZhciBBYT0vXihbXHckX10rfFwoW14pXSo\/XCkpXHMqPT58XmZ1bmN0aW9uKD86XHMrW1x3JF0rKT9ccypcKC8sT2E9L1woW14pXSo\/XCk7KiQvLFNhPS9eW0EtWmEtel8kXVtcdyRdKig\/OlwuW0EtWmEtel8kXVtcdyRdKnxcWydbXiddKj8nXXxcWyJbXiJdKj8iXXxcW1xkK118XFtbQS1aYS16XyRdW1x3JF0qXSkqJC8sVGE9e2VzYzoyNyx0YWI6OSxlbnRlcjoxMyxzcGFjZTozMix1cDozOCxsZWZ0OjM3LHJpZ2h0OjM5LGRvd246NDAsZGVsZXRlOls4LDQ2XX0sRWE9e2VzYzpbIkVzYyIsIkVzY2FwZSJdLHRhYjoiVGFiIixlbnRlcjoiRW50ZXIiLHNwYWNlOlsiICIsIlNwYWNlYmFyIl0sdXA6WyJVcCIsIkFycm93VXAiXSxsZWZ0OlsiTGVmdCIsIkFycm93TGVmdCJdLHJpZ2h0OlsiUmlnaHQiLCJBcnJvd1JpZ2h0Il0sZG93bjpbIkRvd24iLCJBcnJvd0Rvd24iXSxkZWxldGU6WyJCYWNrc3BhY2UiLCJEZWxldGUiLCJEZWwiXX0sTmE9ZnVuY3Rpb24oZSl7cmV0dXJuImlmKCIrZSsiKXJldHVybiBudWxsOyJ9LGphPXtzdG9wOiIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IixwcmV2ZW50OiIkZXZlbnQucHJldmVudERlZmF1bHQoKTsiLHNlbGY6TmEoIiRldmVudC50YXJnZXQgIT09ICRldmVudC5jdXJyZW50VGFyZ2V0IiksY3RybDpOYSgiISRldmVudC5jdHJsS2V5Iiksc2hpZnQ6TmEoIiEkZXZlbnQuc2hpZnRLZXkiKSxhbHQ6TmEoIiEkZXZlbnQuYWx0S2V5IiksbWV0YTpOYSgiISRldmVudC5tZXRhS2V5IiksbGVmdDpOYSgiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDAiKSxtaWRkbGU6TmEoIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAxIikscmlnaHQ6TmEoIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAyIil9O2Z1bmN0aW9uIERhKGUsdCl7dmFyIG49dD8ibmF0aXZlT246Ijoib246IixyPSIiLGk9IiI7Zm9yKHZhciBvIGluIGUpe3ZhciBhPUxhKGVbb10pO2Vbb10mJmVbb10uZHluYW1pYz9pKz1vKyIsIithKyIsIjpyKz0nIicrbysnIjonK2ErIiwifXJldHVybiByPSJ7IityLnNsaWNlKDAsLTEpKyJ9IixpP24rIl9kKCIrcisiLFsiK2kuc2xpY2UoMCwtMSkrIl0pIjpuK3J9ZnVuY3Rpb24gTGEoZSl7aWYoIWUpcmV0dXJuImZ1bmN0aW9uKCl7fSI7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4iWyIrZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIExhKGUpfSkuam9pbigiLCIpKyJdIjt2YXIgdD1TYS50ZXN0KGUudmFsdWUpLG49QWEudGVzdChlLnZhbHVlKSxyPVNhLnRlc3QoZS52YWx1ZS5yZXBsYWNlKE9hLCIiKSk7aWYoZS5tb2RpZmllcnMpe3ZhciBpPSIiLG89IiIsYT1bXTtmb3IodmFyIHMgaW4gZS5tb2RpZmllcnMpaWYoamFbc10pbys9amFbc10sVGFbc10mJmEucHVzaChzKTtlbHNlIGlmKCJleGFjdCI9PT1zKXt2YXIgYz1lLm1vZGlmaWVycztvKz1OYShbImN0cmwiLCJzaGlmdCIsImFsdCIsIm1ldGEiXS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWNbZV19KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIiRldmVudC4iK2UrIktleSJ9KS5qb2luKCJ8fCIpKX1lbHNlIGEucHVzaChzKTtyZXR1cm4gYS5sZW5ndGgmJihpKz1mdW5jdGlvbihlKXtyZXR1cm4iaWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiYiK2UubWFwKE1hKS5qb2luKCImJiIpKyIpcmV0dXJuIG51bGw7In0oYSkpLG8mJihpKz1vKSwiZnVuY3Rpb24oJGV2ZW50KXsiK2krKHQ\/InJldHVybiAiK2UudmFsdWUrIigkZXZlbnQpIjpuPyJyZXR1cm4gKCIrZS52YWx1ZSsiKSgkZXZlbnQpIjpyPyJyZXR1cm4gIitlLnZhbHVlOmUudmFsdWUpKyJ9In1yZXR1cm4gdHx8bj9lLnZhbHVlOiJmdW5jdGlvbigkZXZlbnQpeyIrKHI\/InJldHVybiAiK2UudmFsdWU6ZS52YWx1ZSkrIn0ifWZ1bmN0aW9uIE1hKGUpe3ZhciB0PXBhcnNlSW50KGUsMTApO2lmKHQpcmV0dXJuIiRldmVudC5rZXlDb2RlIT09Iit0O3ZhciBuPVRhW2VdLHI9RWFbZV07cmV0dXJuIl9rKCRldmVudC5rZXlDb2RlLCIrSlNPTi5zdHJpbmdpZnkoZSkrIiwiK0pTT04uc3RyaW5naWZ5KG4pKyIsJGV2ZW50LmtleSwiK0pTT04uc3RyaW5naWZ5KHIpKyIpIn12YXIgSWE9e29uOmZ1bmN0aW9uKGUsdCl7ZS53cmFwTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybiJfZygiK2UrIiwiK3QudmFsdWUrIikifX0sYmluZDpmdW5jdGlvbihlLHQpe2Uud3JhcERhdGE9ZnVuY3Rpb24obil7cmV0dXJuIl9iKCIrbisiLCciK2UudGFnKyInLCIrdC52YWx1ZSsiLCIrKHQubW9kaWZpZXJzJiZ0Lm1vZGlmaWVycy5wcm9wPyJ0cnVlIjoiZmFsc2UiKSsodC5tb2RpZmllcnMmJnQubW9kaWZpZXJzLnN5bmM\/Iix0cnVlIjoiIikrIikifX0sY2xvYWs6U30sRmE9ZnVuY3Rpb24oZSl7dGhpcy5vcHRpb25zPWUsdGhpcy53YXJuPWUud2Fybnx8U3IsdGhpcy50cmFuc2Zvcm1zPVRyKGUubW9kdWxlcywidHJhbnNmb3JtQ29kZSIpLHRoaXMuZGF0YUdlbkZucz1UcihlLm1vZHVsZXMsImdlbkRhdGEiKSx0aGlzLmRpcmVjdGl2ZXM9QShBKHt9LElhKSxlLmRpcmVjdGl2ZXMpO3ZhciB0PWUuaXNSZXNlcnZlZFRhZ3x8VDt0aGlzLm1heWJlQ29tcG9uZW50PWZ1bmN0aW9uKGUpe3JldHVybiEhZS5jb21wb25lbnR8fCF0KGUudGFnKX0sdGhpcy5vbmNlSWQ9MCx0aGlzLnN0YXRpY1JlbmRlckZucz1bXSx0aGlzLnByZT0hMX07ZnVuY3Rpb24gUGEoZSx0KXt2YXIgbj1uZXcgRmEodCk7cmV0dXJue3JlbmRlcjoid2l0aCh0aGlzKXtyZXR1cm4gIisoZT9SYShlLG4pOidfYygiZGl2IiknKSsifSIsc3RhdGljUmVuZGVyRm5zOm4uc3RhdGljUmVuZGVyRm5zfX1mdW5jdGlvbiBSYShlLHQpe2lmKGUucGFyZW50JiYoZS5wcmU9ZS5wcmV8fGUucGFyZW50LnByZSksZS5zdGF0aWNSb290JiYhZS5zdGF0aWNQcm9jZXNzZWQpcmV0dXJuIEhhKGUsdCk7aWYoZS5vbmNlJiYhZS5vbmNlUHJvY2Vzc2VkKXJldHVybiBCYShlLHQpO2lmKGUuZm9yJiYhZS5mb3JQcm9jZXNzZWQpcmV0dXJuIHphKGUsdCk7aWYoZS5pZiYmIWUuaWZQcm9jZXNzZWQpcmV0dXJuIFVhKGUsdCk7aWYoInRlbXBsYXRlIiE9PWUudGFnfHxlLnNsb3RUYXJnZXR8fHQucHJlKXtpZigic2xvdCI9PT1lLnRhZylyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnNsb3ROYW1lfHwnImRlZmF1bHQiJyxyPXFhKGUsdCksaT0iX3QoIituKyhyPyIsIityOiIiKSxvPWUuYXR0cnN8fGUuZHluYW1pY0F0dHJzP0dhKChlLmF0dHJzfHxbXSkuY29uY2F0KGUuZHluYW1pY0F0dHJzfHxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOmIoZS5uYW1lKSx2YWx1ZTplLnZhbHVlLGR5bmFtaWM6ZS5keW5hbWljfX0pKTpudWxsLGE9ZS5hdHRyc01hcFsidi1iaW5kIl07IW8mJiFhfHxyfHwoaSs9IixudWxsIik7byYmKGkrPSIsIitvKTthJiYoaSs9KG8\/IiI6IixudWxsIikrIiwiK2EpO3JldHVybiBpKyIpIn0oZSx0KTt2YXIgbjtpZihlLmNvbXBvbmVudCluPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LmlubGluZVRlbXBsYXRlP251bGw6cWEodCxuLCEwKTtyZXR1cm4iX2MoIitlKyIsIitWYSh0LG4pKyhyPyIsIityOiIiKSsiKSJ9KGUuY29tcG9uZW50LGUsdCk7ZWxzZXt2YXIgcjsoIWUucGxhaW58fGUucHJlJiZ0Lm1heWJlQ29tcG9uZW50KGUpKSYmKHI9VmEoZSx0KSk7dmFyIGk9ZS5pbmxpbmVUZW1wbGF0ZT9udWxsOnFhKGUsdCwhMCk7bj0iX2MoJyIrZS50YWcrIiciKyhyPyIsIityOiIiKSsoaT8iLCIraToiIikrIikifWZvcih2YXIgbz0wO288dC50cmFuc2Zvcm1zLmxlbmd0aDtvKyspbj10LnRyYW5zZm9ybXNbb10oZSxuKTtyZXR1cm4gbn1yZXR1cm4gcWEoZSx0KXx8InZvaWQgMCJ9ZnVuY3Rpb24gSGEoZSx0KXtlLnN0YXRpY1Byb2Nlc3NlZD0hMDt2YXIgbj10LnByZTtyZXR1cm4gZS5wcmUmJih0LnByZT1lLnByZSksdC5zdGF0aWNSZW5kZXJGbnMucHVzaCgid2l0aCh0aGlzKXtyZXR1cm4gIitSYShlLHQpKyJ9IiksdC5wcmU9biwiX20oIisodC5zdGF0aWNSZW5kZXJGbnMubGVuZ3RoLTEpKyhlLnN0YXRpY0luRm9yPyIsdHJ1ZSI6IiIpKyIpIn1mdW5jdGlvbiBCYShlLHQpe2lmKGUub25jZVByb2Nlc3NlZD0hMCxlLmlmJiYhZS5pZlByb2Nlc3NlZClyZXR1cm4gVWEoZSx0KTtpZihlLnN0YXRpY0luRm9yKXtmb3IodmFyIG49IiIscj1lLnBhcmVudDtyOyl7aWYoci5mb3Ipe249ci5rZXk7YnJlYWt9cj1yLnBhcmVudH1yZXR1cm4gbj8iX28oIitSYShlLHQpKyIsIit0Lm9uY2VJZCsrKyIsIituKyIpIjpSYShlLHQpfXJldHVybiBIYShlLHQpfWZ1bmN0aW9uIFVhKGUsdCxuLHIpe3JldHVybiBlLmlmUHJvY2Vzc2VkPSEwLGZ1bmN0aW9uIGUodCxuLHIsaSl7aWYoIXQubGVuZ3RoKXJldHVybiBpfHwiX2UoKSI7dmFyIG89dC5zaGlmdCgpO3JldHVybiBvLmV4cD8iKCIrby5leHArIik\/IithKG8uYmxvY2spKyI6IitlKHQsbixyLGkpOiIiK2Eoby5ibG9jayk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gcj9yKGUsbik6ZS5vbmNlP0JhKGUsbik6UmEoZSxuKX19KGUuaWZDb25kaXRpb25zLnNsaWNlKCksdCxuLHIpfWZ1bmN0aW9uIHphKGUsdCxuLHIpe3ZhciBpPWUuZm9yLG89ZS5hbGlhcyxhPWUuaXRlcmF0b3IxPyIsIitlLml0ZXJhdG9yMToiIixzPWUuaXRlcmF0b3IyPyIsIitlLml0ZXJhdG9yMjoiIjtyZXR1cm4gZS5mb3JQcm9jZXNzZWQ9ITAsKHJ8fCJfbCIpKyIoKCIraSsiKSxmdW5jdGlvbigiK28rYStzKyIpe3JldHVybiAiKyhufHxSYSkoZSx0KSsifSkifWZ1bmN0aW9uIFZhKGUsdCl7dmFyIG49InsiLHI9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmRpcmVjdGl2ZXM7aWYoIW4pcmV0dXJuO3ZhciByLGksbyxhLHM9ImRpcmVjdGl2ZXM6WyIsYz0hMTtmb3Iocj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl7bz1uW3JdLGE9ITA7dmFyIHU9dC5kaXJlY3RpdmVzW28ubmFtZV07dSYmKGE9ISF1KGUsbyx0Lndhcm4pKSxhJiYoYz0hMCxzKz0ne25hbWU6Iicrby5uYW1lKyciLHJhd05hbWU6Iicrby5yYXdOYW1lKyciJysoby52YWx1ZT8iLHZhbHVlOigiK28udmFsdWUrIiksZXhwcmVzc2lvbjoiK0pTT04uc3RyaW5naWZ5KG8udmFsdWUpOiIiKSsoby5hcmc\/Iixhcmc6Iisoby5pc0R5bmFtaWNBcmc\/by5hcmc6JyInK28uYXJnKyciJyk6IiIpKyhvLm1vZGlmaWVycz8iLG1vZGlmaWVyczoiK0pTT04uc3RyaW5naWZ5KG8ubW9kaWZpZXJzKToiIikrIn0sIil9aWYoYylyZXR1cm4gcy5zbGljZSgwLC0xKSsiXSJ9KGUsdCk7ciYmKG4rPXIrIiwiKSxlLmtleSYmKG4rPSJrZXk6IitlLmtleSsiLCIpLGUucmVmJiYobis9InJlZjoiK2UucmVmKyIsIiksZS5yZWZJbkZvciYmKG4rPSJyZWZJbkZvcjp0cnVlLCIpLGUucHJlJiYobis9InByZTp0cnVlLCIpLGUuY29tcG9uZW50JiYobis9J3RhZzoiJytlLnRhZysnIiwnKTtmb3IodmFyIGk9MDtpPHQuZGF0YUdlbkZucy5sZW5ndGg7aSsrKW4rPXQuZGF0YUdlbkZuc1tpXShlKTtpZihlLmF0dHJzJiYobis9ImF0dHJzOiIrR2EoZS5hdHRycykrIiwiKSxlLnByb3BzJiYobis9ImRvbVByb3BzOiIrR2EoZS5wcm9wcykrIiwiKSxlLmV2ZW50cyYmKG4rPURhKGUuZXZlbnRzLCExKSsiLCIpLGUubmF0aXZlRXZlbnRzJiYobis9RGEoZS5uYXRpdmVFdmVudHMsITApKyIsIiksZS5zbG90VGFyZ2V0JiYhZS5zbG90U2NvcGUmJihuKz0ic2xvdDoiK2Uuc2xvdFRhcmdldCsiLCIpLGUuc2NvcGVkU2xvdHMmJihuKz1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5mb3J8fE9iamVjdC5rZXlzKHQpLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG49dFtlXTtyZXR1cm4gbi5zbG90VGFyZ2V0RHluYW1pY3x8bi5pZnx8bi5mb3J8fEthKG4pfSksaT0hIWUuaWY7aWYoIXIpZm9yKHZhciBvPWUucGFyZW50O287KXtpZihvLnNsb3RTY29wZSYmby5zbG90U2NvcGUhPT1jYXx8by5mb3Ipe3I9ITA7YnJlYWt9by5pZiYmKGk9ITApLG89by5wYXJlbnR9dmFyIGE9T2JqZWN0LmtleXModCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBKYSh0W2VdLG4pfSkuam9pbigiLCIpO3JldHVybiJzY29wZWRTbG90czpfdShbIithKyJdIisocj8iLG51bGwsdHJ1ZSI6IiIpKyghciYmaT8iLG51bGwsZmFsc2UsIitmdW5jdGlvbihlKXt2YXIgdD01MzgxLG49ZS5sZW5ndGg7Zm9yKDtuOyl0PTMzKnReZS5jaGFyQ29kZUF0KC0tbik7cmV0dXJuIHQ+Pj4wfShhKToiIikrIikifShlLGUuc2NvcGVkU2xvdHMsdCkrIiwiKSxlLm1vZGVsJiYobis9Im1vZGVsOnt2YWx1ZToiK2UubW9kZWwudmFsdWUrIixjYWxsYmFjazoiK2UubW9kZWwuY2FsbGJhY2srIixleHByZXNzaW9uOiIrZS5tb2RlbC5leHByZXNzaW9uKyJ9LCIpLGUuaW5saW5lVGVtcGxhdGUpe3ZhciBvPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jaGlsZHJlblswXTtpZihuJiYxPT09bi50eXBlKXt2YXIgcj1QYShuLHQub3B0aW9ucyk7cmV0dXJuImlubGluZVRlbXBsYXRlOntyZW5kZXI6ZnVuY3Rpb24oKXsiK3IucmVuZGVyKyJ9LHN0YXRpY1JlbmRlckZuczpbIityLnN0YXRpY1JlbmRlckZucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uKCl7IitlKyJ9In0pLmpvaW4oIiwiKSsiXX0ifX0oZSx0KTtvJiYobis9bysiLCIpfXJldHVybiBuPW4ucmVwbGFjZSgvLCQvLCIiKSsifSIsZS5keW5hbWljQXR0cnMmJihuPSJfYigiK24rJywiJytlLnRhZysnIiwnK0dhKGUuZHluYW1pY0F0dHJzKSsiKSIpLGUud3JhcERhdGEmJihuPWUud3JhcERhdGEobikpLGUud3JhcExpc3RlbmVycyYmKG49ZS53cmFwTGlzdGVuZXJzKG4pKSxufWZ1bmN0aW9uIEthKGUpe3JldHVybiAxPT09ZS50eXBlJiYoInNsb3QiPT09ZS50YWd8fGUuY2hpbGRyZW4uc29tZShLYSkpfWZ1bmN0aW9uIEphKGUsdCl7dmFyIG49ZS5hdHRyc01hcFsic2xvdC1zY29wZSJdO2lmKGUuaWYmJiFlLmlmUHJvY2Vzc2VkJiYhbilyZXR1cm4gVWEoZSx0LEphLCJudWxsIik7aWYoZS5mb3ImJiFlLmZvclByb2Nlc3NlZClyZXR1cm4gemEoZSx0LEphKTt2YXIgcj1lLnNsb3RTY29wZT09PWNhPyIiOlN0cmluZyhlLnNsb3RTY29wZSksaT0iZnVuY3Rpb24oIityKyIpe3JldHVybiAiKygidGVtcGxhdGUiPT09ZS50YWc\/ZS5pZiYmbj8iKCIrZS5pZisiKT8iKyhxYShlLHQpfHwidW5kZWZpbmVkIikrIjp1bmRlZmluZWQiOnFhKGUsdCl8fCJ1bmRlZmluZWQiOlJhKGUsdCkpKyJ9IixvPXI\/IiI6Iixwcm94eTp0cnVlIjtyZXR1cm4ie2tleToiKyhlLnNsb3RUYXJnZXR8fCciZGVmYXVsdCInKSsiLGZuOiIraStvKyJ9In1mdW5jdGlvbiBxYShlLHQsbixyLGkpe3ZhciBvPWUuY2hpbGRyZW47aWYoby5sZW5ndGgpe3ZhciBhPW9bMF07aWYoMT09PW8ubGVuZ3RoJiZhLmZvciYmInRlbXBsYXRlIiE9PWEudGFnJiYic2xvdCIhPT1hLnRhZyl7dmFyIHM9bj90Lm1heWJlQ29tcG9uZW50KGEpPyIsMSI6IiwwIjoiIjtyZXR1cm4iIisocnx8UmEpKGEsdCkrc312YXIgYz1uP2Z1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdO2lmKDE9PT1pLnR5cGUpe2lmKFdhKGkpfHxpLmlmQ29uZGl0aW9ucyYmaS5pZkNvbmRpdGlvbnMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gV2EoZS5ibG9jayl9KSl7bj0yO2JyZWFrfSh0KGkpfHxpLmlmQ29uZGl0aW9ucyYmaS5pZkNvbmRpdGlvbnMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gdChlLmJsb2NrKX0pKSYmKG49MSl9fXJldHVybiBufShvLHQubWF5YmVDb21wb25lbnQpOjAsdT1pfHxaYTtyZXR1cm4iWyIrby5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSx0KX0pLmpvaW4oIiwiKSsiXSIrKGM\/IiwiK2M6IiIpfX1mdW5jdGlvbiBXYShlKXtyZXR1cm4gdm9pZCAwIT09ZS5mb3J8fCJ0ZW1wbGF0ZSI9PT1lLnRhZ3x8InNsb3QiPT09ZS50YWd9ZnVuY3Rpb24gWmEoZSx0KXtyZXR1cm4gMT09PWUudHlwZT9SYShlLHQpOjM9PT1lLnR5cGUmJmUuaXNDb21tZW50PyhyPWUsIl9lKCIrSlNPTi5zdHJpbmdpZnkoci50ZXh0KSsiKSIpOiJfdigiKygyPT09KG49ZSkudHlwZT9uLmV4cHJlc3Npb246WGEoSlNPTi5zdHJpbmdpZnkobi50ZXh0KSkpKyIpIjt2YXIgbixyfWZ1bmN0aW9uIEdhKGUpe2Zvcih2YXIgdD0iIixuPSIiLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXSxvPVhhKGkudmFsdWUpO2kuZHluYW1pYz9uKz1pLm5hbWUrIiwiK28rIiwiOnQrPSciJytpLm5hbWUrJyI6JytvKyIsIn1yZXR1cm4gdD0ieyIrdC5zbGljZSgwLC0xKSsifSIsbj8iX2QoIit0KyIsWyIrbi5zbGljZSgwLC0xKSsiXSkiOnR9ZnVuY3Rpb24gWGEoZSl7cmV0dXJuIGUucmVwbGFjZSgvXHUyMDI4L2csIlxcdTIwMjgiKS5yZXBsYWNlKC9cdTIwMjkvZywiXFx1MjAyOSIpfW5ldyBSZWdFeHAoIlxcYiIrImRvLGlmLGZvcixsZXQsbmV3LHRyeSx2YXIsY2FzZSxlbHNlLHdpdGgsYXdhaXQsYnJlYWssY2F0Y2gsY2xhc3MsY29uc3Qsc3VwZXIsdGhyb3csd2hpbGUseWllbGQsZGVsZXRlLGV4cG9ydCxpbXBvcnQscmV0dXJuLHN3aXRjaCxkZWZhdWx0LGV4dGVuZHMsZmluYWxseSxjb250aW51ZSxkZWJ1Z2dlcixmdW5jdGlvbixhcmd1bWVudHMiLnNwbGl0KCIsIikuam9pbigiXFxifFxcYiIpKyJcXGIiKTtmdW5jdGlvbiBZYShlLHQpe3RyeXtyZXR1cm4gbmV3IEZ1bmN0aW9uKGUpfWNhdGNoKG4pe3JldHVybiB0LnB1c2goe2VycjpuLGNvZGU6ZX0pLFN9fWZ1bmN0aW9uIFFhKGUpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKG4scixpKXsocj1BKHt9LHIpKS53YXJuO2RlbGV0ZSByLndhcm47dmFyIG89ci5kZWxpbWl0ZXJzP1N0cmluZyhyLmRlbGltaXRlcnMpK246bjtpZih0W29dKXJldHVybiB0W29dO3ZhciBhPWUobixyKSxzPXt9LGM9W107cmV0dXJuIHMucmVuZGVyPVlhKGEucmVuZGVyLGMpLHMuc3RhdGljUmVuZGVyRm5zPWEuc3RhdGljUmVuZGVyRm5zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gWWEoZSxjKX0pLHRbb109c319dmFyIGVzLHRzLG5zPShlcz1mdW5jdGlvbihlLHQpe3ZhciBuPWxhKGUudHJpbSgpLHQpOyExIT09dC5vcHRpbWl6ZSYma2Eobix0KTt2YXIgcj1QYShuLHQpO3JldHVybnthc3Q6bixyZW5kZXI6ci5yZW5kZXIsc3RhdGljUmVuZGVyRm5zOnIuc3RhdGljUmVuZGVyRm5zfX0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4pe3ZhciByPU9iamVjdC5jcmVhdGUoZSksaT1bXSxvPVtdO2lmKG4pZm9yKHZhciBhIGluIG4ubW9kdWxlcyYmKHIubW9kdWxlcz0oZS5tb2R1bGVzfHxbXSkuY29uY2F0KG4ubW9kdWxlcykpLG4uZGlyZWN0aXZlcyYmKHIuZGlyZWN0aXZlcz1BKE9iamVjdC5jcmVhdGUoZS5kaXJlY3RpdmVzfHxudWxsKSxuLmRpcmVjdGl2ZXMpKSxuKSJtb2R1bGVzIiE9PWEmJiJkaXJlY3RpdmVzIiE9PWEmJihyW2FdPW5bYV0pO3Iud2Fybj1mdW5jdGlvbihlLHQsbil7KG4\/bzppKS5wdXNoKGUpfTt2YXIgcz1lcyh0LnRyaW0oKSxyKTtyZXR1cm4gcy5lcnJvcnM9aSxzLnRpcHM9byxzfXJldHVybntjb21waWxlOnQsY29tcGlsZVRvRnVuY3Rpb25zOlFhKHQpfX0pKENhKSxycz0obnMuY29tcGlsZSxucy5jb21waWxlVG9GdW5jdGlvbnMpO2Z1bmN0aW9uIGlzKGUpe3JldHVybih0cz10c3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD1lPyc8YSBocmVmPSJcbiIvPic6JzxkaXYgYT0iXG4iLz4nLHRzLmlubmVySFRNTC5pbmRleE9mKCImIzEwOyIpPjB9dmFyIG9zPSEheiYmaXMoITEpLGFzPSEheiYmaXMoITApLHNzPWcoZnVuY3Rpb24oZSl7dmFyIHQ9WW4oZSk7cmV0dXJuIHQmJnQuaW5uZXJIVE1MfSksY3M9d24ucHJvdG90eXBlLiRtb3VudDtyZXR1cm4gd24ucHJvdG90eXBlLiRtb3VudD1mdW5jdGlvbihlLHQpe2lmKChlPWUmJlluKGUpKT09PWRvY3VtZW50LmJvZHl8fGU9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpcmV0dXJuIHRoaXM7dmFyIG49dGhpcy4kb3B0aW9ucztpZighbi5yZW5kZXIpe3ZhciByPW4udGVtcGxhdGU7aWYocilpZigic3RyaW5nIj09dHlwZW9mIHIpIiMiPT09ci5jaGFyQXQoMCkmJihyPXNzKHIpKTtlbHNle2lmKCFyLm5vZGVUeXBlKXJldHVybiB0aGlzO3I9ci5pbm5lckhUTUx9ZWxzZSBlJiYocj1mdW5jdGlvbihlKXtpZihlLm91dGVySFRNTClyZXR1cm4gZS5vdXRlckhUTUw7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuYXBwZW5kQ2hpbGQoZS5jbG9uZU5vZGUoITApKSx0LmlubmVySFRNTH0oZSkpO2lmKHIpe3ZhciBpPXJzKHIse291dHB1dFNvdXJjZVJhbmdlOiExLHNob3VsZERlY29kZU5ld2xpbmVzOm9zLHNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjphcyxkZWxpbWl0ZXJzOm4uZGVsaW1pdGVycyxjb21tZW50czpuLmNvbW1lbnRzfSx0aGlzKSxvPWkucmVuZGVyLGE9aS5zdGF0aWNSZW5kZXJGbnM7bi5yZW5kZXI9byxuLnN0YXRpY1JlbmRlckZucz1hfX1yZXR1cm4gY3MuY2FsbCh0aGlzLGUsdCl9LHduLmNvbXBpbGU9cnMsd259KTsKLyoqIC9qcy92dWUvdnVlLXRoZS1tYXNrLmpzICoqLwp2YXIgX19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjM4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyNC0wMS0zMSAxNDozMzoxNSI7InVzZSBzdHJpY3QiO19fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyMy0wMS0xMiAxMTo0MDo1NSI7InVzZSBzdHJpY3QiO19fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MDo0MSI7InVzZSBzdHJpY3QiO19fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyMS0xMi0xNSAxMjo1MToyNCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oaCxjKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWMoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSxjKToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM\/ZXhwb3J0cy5WdWVUaGVNYXNrPWMoKTpoLlZ1ZVRoZU1hc2s9YygpfSkodGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihoKXtmdW5jdGlvbiBjKGQpe2lmKGFbZF0pcmV0dXJuIGFbZF0uZXhwb3J0czt2YXIgZT1hW2RdPXtpOmQsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gaFtkXS5jYWxsKGUuZXhwb3J0cyxlLGUuZXhwb3J0cyxjKSxlLmw9ITAsZS5leHBvcnRzfXZhciBhPXt9O3JldHVybiBjLm09aCxjLmM9YSxjLmk9ZnVuY3Rpb24oZCl7cmV0dXJuIGR9LGMuZD1mdW5jdGlvbihkLGUsbCl7Yy5vKGQsZSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGUse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLApnZXQ6bH0pfSxjLm49ZnVuY3Rpb24oZCl7dmFyIGU9ZCYmZC5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGQuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZH07cmV0dXJuIGMuZChlLCJhIixlKSxlfSxjLm89ZnVuY3Rpb24oZCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZSl9LGMucD0iLiIsYyhjLnM9MTApfShbZnVuY3Rpb24oaCxjKXtoLmV4cG9ydHM9eyIjIjp7cGF0dGVybjovXGQvfSxYOntwYXR0ZXJuOi9bMC05YS16QS1aXS99LFM6e3BhdHRlcm46L1thLXpBLVpdL30sQTp7cGF0dGVybjovW2EtekEtWl0vLHRyYW5zZm9ybTpmdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvY2FsZVVwcGVyQ2FzZSgpfX0sYTp7cGF0dGVybjovW2EtekEtWl0vLHRyYW5zZm9ybTpmdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvY2FsZUxvd2VyQ2FzZSgpfX0sIiEiOntlc2NhcGU6ITB9fX0sZnVuY3Rpb24oaCxjLGEpe2Z1bmN0aW9uIGQoYil7dmFyIGY9CmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO3JldHVybiBmLmluaXRFdmVudChiLCEwLCEwKSxmfXZhciBlPWEoMik7aD1hKDApO3ZhciBsPWEubihoKTtjLmE9ZnVuY3Rpb24oYixmKXt2YXIgZz1mLnZhbHVlO2lmKChBcnJheS5pc0FycmF5KGcpfHwic3RyaW5nIj09dHlwZW9mIGcpJiYoZz17bWFzazpnLHRva2VuczpsLmF9KSwiSU5QVVQiIT09Yi50YWdOYW1lLnRvTG9jYWxlVXBwZXJDYXNlKCkpe2Y9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKTtpZigxIT09Zi5sZW5ndGgpdGhyb3cgRXJyb3IoInYtbWFzayBkaXJlY3RpdmUgcmVxdWlyZXMgMSBpbnB1dCwgZm91bmQgIitmLmxlbmd0aCk7Yj1mWzBdfWIub25pbnB1dD1mdW5jdGlvbihtKXtpZihtLmlzVHJ1c3RlZCl7dmFyIGs9Yi5zZWxlY3Rpb25FbmQ7bT1iLnZhbHVlW2stMV07Zm9yKGIudmFsdWU9YS5pKGUuYSkoYi52YWx1ZSxnLm1hc2ssITAsZy50b2tlbnMpO2s8Yi52YWx1ZS5sZW5ndGgmJmIudmFsdWUuY2hhckF0KGstCjEpIT09bTspaysrO2I9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50JiYoYi5zZXRTZWxlY3Rpb25SYW5nZShrLGspLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLnNldFNlbGVjdGlvblJhbmdlKGssayl9LDApKTtiLmRpc3BhdGNoRXZlbnQoZCgiaW5wdXQiKSl9fTtmPWEuaShlLmEpKGIudmFsdWUsZy5tYXNrLCEwLGcudG9rZW5zKTtmIT09Yi52YWx1ZSYmKGIudmFsdWU9ZixiLmRpc3BhdGNoRXZlbnQoZCgiaW5wdXQiKSkpfX0sZnVuY3Rpb24oaCxjLGEpe3ZhciBkPWEoNiksZT1hKDUpO2MuYT1mdW5jdGlvbihsLGIpe3ZhciBmPSEoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sZz1hcmd1bWVudHNbM107cmV0dXJuIEFycmF5LmlzQXJyYXkoYik\/YS5pKGUuYSkoZC5hLGIsZykobCxiLGYsZyk6YS5pKGQuYSkobCxiLGYsZyl9fSxmdW5jdGlvbihoLGMsYSl7ZnVuY3Rpb24gZChnKXtnLmNvbXBvbmVudChiLmEubmFtZSxiLmEpOwpnLmRpcmVjdGl2ZSgibWFzayIsbC5hKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7aD1hKDApO3ZhciBlPWEubihoKSxsPWEoMSk7aD1hKDcpO3ZhciBiPWEubihoKTthLmQoYywiVGhlTWFzayIsZnVuY3Rpb24oKXtyZXR1cm4gYi5hfSk7YS5kKGMsIm1hc2siLGZ1bmN0aW9uKCl7cmV0dXJuIGwuYX0pO2EuZChjLCJ0b2tlbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuYX0pO2EuZChjLCJ2ZXJzaW9uIixmdW5jdGlvbigpe3JldHVybiBmfSk7dmFyIGY9IjAuMTEuMSI7Yy5kZWZhdWx0PWQ7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5WdWUmJndpbmRvdy5WdWUudXNlKGQpfSxmdW5jdGlvbihoLGMsYSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2g9YSgxKTt2YXIgZD1hKDApLGU9YS5uKGQpLGw9YSgyKTtjLmRlZmF1bHQ9e25hbWU6IlRoZU1hc2siLHByb3BzOnt2YWx1ZTpbU3RyaW5nLApOdW1iZXJdLG1hc2s6e3R5cGU6W1N0cmluZyxBcnJheV0scmVxdWlyZWQ6ITB9LG1hc2tlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHRva2Vuczp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBlLmF9fX0sZGlyZWN0aXZlczp7bWFzazpoLmF9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bGFzdFZhbHVlOm51bGwsZGlzcGxheTp0aGlzLnZhbHVlfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKGIpe2IhPT10aGlzLmxhc3RWYWx1ZSYmKHRoaXMuZGlzcGxheT1iKX0sbWFza2VkOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZGlzcGxheSl9fSxjb21wdXRlZDp7Y29uZmlnOmZ1bmN0aW9uKCl7cmV0dXJue21hc2s6dGhpcy5tYXNrLHRva2Vuczp0aGlzLnRva2VucyxtYXNrZWQ6dGhpcy5tYXNrZWR9fX0sbWV0aG9kczp7b25JbnB1dDpmdW5jdGlvbihiKXtiLmlzVHJ1c3RlZHx8dGhpcy5yZWZyZXNoKGIudGFyZ2V0LnZhbHVlKX0scmVmcmVzaDpmdW5jdGlvbihiKXt0aGlzLmRpc3BsYXk9CmI7Yj1hLmkobC5hKShiLHRoaXMubWFzayx0aGlzLm1hc2tlZCx0aGlzLnRva2Vucyk7YiE9PXRoaXMubGFzdFZhbHVlJiYodGhpcy5sYXN0VmFsdWU9Yix0aGlzLiRlbWl0KCJpbnB1dCIsYikpfX19fSxmdW5jdGlvbihoLGMsYSl7Yy5hPWZ1bmN0aW9uKGQsZSxsKXtyZXR1cm4gZT1lLnNvcnQoZnVuY3Rpb24oYixmKXtyZXR1cm4gYi5sZW5ndGgtZi5sZW5ndGh9KSxmdW5jdGlvbihiLGYpe2Zvcih2YXIgZz0hKDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLG09MDttPGUubGVuZ3RoOyl7dmFyIGs9ZVttXTttKys7dmFyIG49ZVttXTtpZighKG4mJmQoYixuLCEwLGwpLmxlbmd0aD5rLmxlbmd0aCkpcmV0dXJuIGQoYixrLGcsbCl9cmV0dXJuIiJ9fX0sZnVuY3Rpb24oaCxjLGEpe2MuYT1mdW5jdGlvbihkLGUpe3ZhciBsPSEoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sYj0KYXJndW1lbnRzWzNdO2Q9ZHx8IiI7ZT1lfHwiIjtmb3IodmFyIGY9MCxnPTAsbT0iIjtmPGUubGVuZ3RoJiZnPGQubGVuZ3RoOyl7dmFyIGs9ZVtmXSxuPWJba10scD1kW2ddO24mJiFuLmVzY2FwZT8obi5wYXR0ZXJuLnRlc3QocCkmJihtKz1uLnRyYW5zZm9ybT9uLnRyYW5zZm9ybShwKTpwLGYrKyksZysrKToobiYmbi5lc2NhcGUmJihmKyssaz1lW2ZdKSxsJiYobSs9aykscD09PWsmJmcrKyxmKyspfWZvcihnPSIiO2Y8ZS5sZW5ndGgmJmw7KXtrPWVbZl07aWYoYltrXSl7Zz0iIjticmVha31nKz1rO2YrK31yZXR1cm4gbStnfX0sZnVuY3Rpb24oaCxjLGEpe2M9YSg4KShhKDQpLGEoOSksbnVsbCxudWxsKTtoLmV4cG9ydHM9Yy5leHBvcnRzfSxmdW5jdGlvbihoLGMpe2guZXhwb3J0cz1mdW5jdGlvbihhLGQsZSxsKXt2YXIgYixmPWE9YXx8e30sZz10eXBlb2YgYS5kZWZhdWx0OyJvYmplY3QiIT09ZyYmImZ1bmN0aW9uIiE9PWd8fChiPWEsZj1hLmRlZmF1bHQpO2E9ImZ1bmN0aW9uIj09CnR5cGVvZiBmP2Yub3B0aW9uczpmO2lmKGQmJihhLnJlbmRlcj1kLnJlbmRlcixhLnN0YXRpY1JlbmRlckZucz1kLnN0YXRpY1JlbmRlckZucyksZSYmKGEuX3Njb3BlSWQ9ZSksbCl7dmFyIG09YS5jb21wdXRlZHx8KGEuY29tcHV0ZWQ9e30pO09iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oayl7dmFyIG49bFtrXTttW2tdPWZ1bmN0aW9uKCl7cmV0dXJuIG59fSl9cmV0dXJue2VzTW9kdWxlOmIsZXhwb3J0czpmLG9wdGlvbnM6YX19fSxmdW5jdGlvbihoLGMpe2guZXhwb3J0cz17cmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kY3JlYXRlRWxlbWVudDtyZXR1cm4odGhpcy5fc2VsZi5fY3x8YSkoImlucHV0Iix7ZGlyZWN0aXZlczpbe25hbWU6Im1hc2siLHJhd05hbWU6InYtbWFzayIsdmFsdWU6dGhpcy5jb25maWcsZXhwcmVzc2lvbjoiY29uZmlnIn1dLGF0dHJzOnt0eXBlOiJ0ZXh0In0sZG9tUHJvcHM6e3ZhbHVlOnRoaXMuZGlzcGxheX0sb246e2lucHV0OnRoaXMub25JbnB1dH19KX0sCnN0YXRpY1JlbmRlckZuczpbXX19LGZ1bmN0aW9uKGgsYyxhKXtoLmV4cG9ydHM9YSgzKX1dKX0pOwovKiogL2pzL2ZpbmFuY2VfbXVsdGlzdGVwLmpzICoqLwp2YXIgX19fZDJjX2ZpbmFuY2VtdWx0aXN0ZXBqc19jX29uPSIyMDI2LTA0LTEzIDA5OjMwOjA3IjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGIsaCxtKXtpZihiPT1BcnJheS5wcm90b3R5cGV8fGI9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGI7YltoXT1tLnZhbHVlO3JldHVybiBifTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYil7Yj1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGIsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBoPTA7aDxiLmxlbmd0aDsrK2gpe3ZhciBtPWJbaF07aWYobSYmbS5NYXRoPT1NYXRoKXJldHVybiBtfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYixoKXt2YXIgbT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXTtpZihudWxsPT1tKXJldHVybiBiW2hdO209YlttXTtyZXR1cm4gdm9pZCAwIT09bT9tOmJbaF19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYixoLG0sbil7aCYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGIsaCxtLG4pOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGIsaCxtLG4pKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGIsaCxtLG4pe209JGpzY29tcC5nbG9iYWw7Yj1iLnNwbGl0KCIuIik7Zm9yKG49MDtuPGIubGVuZ3RoLTE7bisrKXt2YXIgcT1iW25dO2lmKCEocSBpbiBtKSlyZXR1cm47bT1tW3FdfWI9YltiLmxlbmd0aC0xXTtuPW1bYl07aD1oKG4pO2ghPW4mJm51bGwhPWgmJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkobSxiLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGIsaCxtLG4pe3ZhciBxPWIuc3BsaXQoIi4iKTtiPTE9PT1xLmxlbmd0aDtuPXFbMF07bj0hYiYmbiBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIHY9MDt2PHEubGVuZ3RoLTE7disrKXt2YXIgeT1xW3ZdO2lmKCEoeSBpbiBuKSlyZXR1cm47bj1uW3ldfXE9cVtxLmxlbmd0aC0xXTttPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1tP25bcV06bnVsbDtoPWgobSk7bnVsbCE9aCYmKGI\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxxLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pOmghPT1tJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcV0mJihtPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtxXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChxKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCttKyIkIitxKSwkanNjb21wLmRlZmluZVByb3BlcnR5KG4sJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBiPXthOiEwfSxoPXt9O3RyeXtyZXR1cm4gaC5fX3Byb3RvX189YixoLmF9Y2F0Y2gobSl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihiLGgpe2IuX19wcm90b19fPWg7aWYoYi5fX3Byb3RvX18hPT1oKXRocm93IG5ldyBUeXBlRXJyb3IoYisiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGJ9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihiKXt2YXIgaD0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBoPGIubGVuZ3RoP3tkb25lOiExLHZhbHVlOmJbaCsrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYil9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYil7dmFyIGg9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYltTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBoP2guY2FsbChiKTokanNjb21wLmFycmF5SXRlcmF0b3IoYil9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGIpe2lmKCEoYiBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYisiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy55aWVsZFJlc3VsdD1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmIsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmJ9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYil7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmJ9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGIsaCl7dGhpcy5uZXh0QWRkcmVzcz1oO3JldHVybnt2YWx1ZTpifX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYixoKXtiPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGIpO3ZhciBtPWIubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKG0pO2lmKG0uZG9uZSl0aGlzLnlpZWxkUmVzdWx0PW0udmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1oO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89Yix0aGlzLnlpZWxkKG0udmFsdWUsaCl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYil7dGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiLGgpe3RoaXMuY2F0Y2hBZGRyZXNzXz1iO3ZvaWQgMCE9aCYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihiLGgpe3RoaXMubmV4dEFkZHJlc3M9Yjt0aGlzLmNhdGNoQWRkcmVzc189aHx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MDtiPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYixoLG0pe20\/dGhpcy5maW5hbGx5Q29udGV4dHNfW21dPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ofHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYixoKXtoPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoaHx8MClbMF07aWYoaD10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGgpe2lmKGguaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9aC5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGguanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWguanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYil7dGhpcy5vYmplY3RfPWI7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGggaW4gYil0aGlzLnByb3BlcnRpZXNfLnB1c2goaCk7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBiPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYiBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGJ9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWJ9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBoPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoaClyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gaD9oWyJyZXR1cm4iXTpmdW5jdGlvbihtKXtyZXR1cm57dmFsdWU6bSxkb25lOiEwfX0sYix0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihiLGgsbSl7dHJ5e3ZhciBuPWIuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKG4pO2lmKCFuLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxuO3ZhciBxPW4udmFsdWV9Y2F0Y2godil7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93Xyh2KSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDttLmNhbGwodGhpcy5jb250ZXh0XyxxKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBiPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYilyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGgpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGgpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXtiPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGIuaXNFeGNlcHRpb24pdGhyb3cgYi5leGNlcHRpb247cmV0dXJue3ZhbHVlOmIucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGIpe3RoaXMubmV4dD1mdW5jdGlvbihoKXtyZXR1cm4gYi5uZXh0XyhoKX07dGhpcy50aHJvdz1mdW5jdGlvbihoKXtyZXR1cm4gYi50aHJvd18oaCl9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGgpe3JldHVybiBiLnJldHVybl8oaCl9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGIsaCl7aD1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhoKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYi5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoaCxiLnByb3RvdHlwZSk7cmV0dXJuIGh9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gaChuKXtyZXR1cm4gYi5uZXh0KG4pfWZ1bmN0aW9uIG0obil7cmV0dXJuIGIudGhyb3cobil9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scSl7ZnVuY3Rpb24gdih5KXt5LmRvbmU\/bih5LnZhbHVlKTpQcm9taXNlLnJlc29sdmUoeS52YWx1ZSkudGhlbihoLG0pLnRoZW4odixxKX12KGIubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGIoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSkpfTsKZnVuY3Rpb24gaW5pdGlhbGl6ZUZpbmFuY2VNdWx0aVN0ZXAoYil7ZnVuY3Rpb24gaChkKXtzd2l0Y2goZCl7Y2FzZSAiRW1haWwgcHJvdmlkZWQiOmNhc2UgIlBob25lIHByb3ZpZGVkIjpPfHwoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnRyaWdnZXIoInBvcHVwaXplci5zdWJtaXR0ZWQiKSxPPSEwKX0iZnVuY3Rpb24iPT09dHlwZW9mIGdhVHJhY2smJmdhVHJhY2soIl90cmFja0V2ZW50IiwiVXNlZC1TUlAtRmluYW5jZS1Qb3B1cCIsZCx3aW5kb3cubG9jYXRpb24uaHJlZiwxKX1mdW5jdGlvbiBtKGQpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRCYW5uZXJTZWFyY2hCYXJNYWtlcz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnt0eXBlOmQudG9Mb3dlckNhc2UoKX0sc3VjY2VzczpmdW5jdGlvbihjKXskKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIG9wdGlvbjpmaXJzdCIsCmIpWzBdLm91dGVySFRNTCk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskLmVhY2goYyxmdW5jdGlvbihlLGYpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2YubWFrZSsnIj4nK2YudGl0bGUyKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIG4oZCxjKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0QmFubmVyU2VhcmNoQmFyTW9kZWxzP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e21ha2U6YnRvYShjKSx0eXBlOmQudG9Mb3dlckNhc2UoKX0sc3VjY2VzczpmdW5jdGlvbihlKXskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIiwKYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskLmVhY2goZSxmdW5jdGlvbihmLGcpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLmFwcGVuZCgnPG9wdGlvbiBkYXRhLW1vZGVsPSInK2cubW9kZWxOYW1lKyciIGRhdGEteWVhcj0iJytnLnllYXIrJyIgdmFsdWU9IicrZy50aXRsZTIrJyI+JytnLnRpdGxlMisiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiBxKGQsYyxlKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0TmV3VHJpbXM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7bWFrZTpkLG1vZGVsOmMseWVhcjplfSxzdWNjZXNzOmZ1bmN0aW9uKGYpeyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsCmIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskLmVhY2goZixmdW5jdGlvbihnLGwpeyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtcHJpY2U9IicrbC5wcmljZSsnIiBkYXRhLXN0eWxlaWQ9IicrbC5zdHlsZWlkKyciIHZhbHVlPSInK2wudHJpbSsnIj4nK2wudHJpbSsiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiB2KGQsYyl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEludmVudG9yeVRyaW1zP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e21ha2U6ZCxtb2RlbDpjfSxzdWNjZXNzOmZ1bmN0aW9uKGUpeyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChlLGZ1bmN0aW9uKGYsZyl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIiwKYikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtcHJpY2U9IicrZy5vcmlnaW5hbHByaWNlKyciIGRhdGEtdmVoaWNsZWlkPSInK2cudmVoaWNsZWlkKyciIGRhdGEteWVhcj0iJytnLnllYXIrJyIgZGF0YS1pc25ldz0iJytnLmlzbmV3KyciIGRhdGEtaXNkZW1vPSInK2cuZGVtbysnIiBkYXRhLXN0b2NrbnVtYmVyPSInK2cuc3RvY2tudW1iZXIrJyIgZGF0YS1taWxlYWdlPSInK2cubWlsZWFnZSsnIiBkYXRhLXN0eWxlaWQ9IicrZy5zdHlsZWlkKyciIHZhbHVlPSInK2cudHJpbSsnIj4nK2cudGl0bGUrIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24geShkKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0VXNlZENhbGN1bGF0b3JIVE1MP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e2NhcmlkOmR9LHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7Yy52YWxpZD8oJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciIsYikuaHRtbChjLmh0bWwpLAokKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5maW5kKCIuY2FsYy1mb3JtIikuZmluZCgiLnVzZWRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5hZnRlcigkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yVHJhZGVJbiIsYikuaHRtbCgpKSxXKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoYS5mb3JtZGF0YS50cmFkZUluVmFsdWUpLCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikuYXR0cigibWF4IixhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciIsYikuc2hvdygpKTooYS5mb3JtZGF0YS5ub1BheW1lbnQ9ITAsJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciIsYikuaGlkZSgpLGEubmV4dCghMCkpfX0pfWZ1bmN0aW9uIFcoKXskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIpLm9uKCJibHVyIiwKZnVuY3Rpb24oKXtDKCl9KTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5ub09mTW9udGhzIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZD0kKHRoaXMpLmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmludGVyZXN0cmF0ZSIpLnZhbChkLmF0dHIoImRhdGEtcmF0ZSIpKTtDKCl9KTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50RnJlcXVlbmN5Iikub24oImNoYW5nZSIsZnVuY3Rpb24oKXtDKCl9KTtDKCl9ZnVuY3Rpb24gQygpe3ZhciBkPXBhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW50ZXJlc3RyYXRlIixiKS52YWwoKS5yZXBsYWNlKCIsIiwiLiIpKS50b0ZpeGVkKDIpLzEwMCxjPXBhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubm9PZk1vbnRocyIsYikudmFsKCkpLzEyLGU9cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5sb2FuYW1vdW50IiwKYikudmFsKCkpLnRvRml4ZWQoMik7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZmVlYW1vdW50IixiKS5sZW5ndGgmJihlPXBhcnNlRmxvYXQoZSkrcGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5mZWVhbW91bnQiLGIpLnZhbCgpLnJlcGxhY2UoIiwiLCIiKSkpOzE9PSQoIiN1c2V0YXhlcyIsYikudmFsKCkmJihlKj1wYXJzZUZsb2F0KCQoIiN0YXhlcyIpLnZhbCgpKS50b0ZpeGVkKDIpLzEwMCsxKTswPCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50IixiKS52YWwoKSYmKGUtPXBhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiLGIpLnZhbCgpKS50b0ZpeGVkKDIpKTt2YXIgZj0iIixnPTEyO3N3aXRjaCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50RnJlcXVlbmN5IixiKS52YWwoKSl7Y2FzZSAid2VlayI6Zz0KNTI7Zj0kKCIjd2Vla1RleHQiKS52YWwoKTticmVhaztjYXNlICIyd2Vla3MiOmc9MjY7Zj0kKCIjMndlZWtzVGV4dCIpLnZhbCgpO2JyZWFrO2Nhc2UgIm1vbnRobHkiOmY9JCgiI21vbnRobHlUZXh0IikudmFsKCk7Zz0xMjticmVhaztjYXNlICJiaW1vbnRobHkiOmY9JCgiI2JpbW9udGhseVRleHQiKS52YWwoKSxnPTI0fWMqPWc7MDxkPyhkLz1nLGc9TWF0aC5wb3coZCsxLGMpLGUqPWQqZy8oZy0xKSk6ZS89YztlPU1hdGgucm91bmQoMTAwKmUpLzEwMDtpc05hTihlKSYmKGU9MCk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAub3V0cHV0cHJpY2UiLGIpLnZhbCgiJCIrZSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAub3V0cHV0cHJpY2UtdHh0IixiKS5odG1sKCIkIitlKTtmPSQoIiNlc3RpbWRhdGVkUGF5bWVudFRleHQiLGIpLnZhbCgpLnJlcGxhY2UoIiMjRlJFUVVFTkNZIyMiLGYpOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmVzdGltYXRlZFRleHQiLApiKS5odG1sKCI8c3Ryb25nPiIrZisiPC9zdHJvbmc+Iik7Zj0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJGaW5hbmNlbWVudCI6IkZpbmFuY2luZyI7YS5mb3JtZGF0YS5wYXltZW50VHlwZT1mO2EuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsPSJmaW5hbmNpbmciO2EuZm9ybWRhdGEucGF5bWVudFRlcm09JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubm9PZk1vbnRocyIsYikudmFsKCk7YS5mb3JtZGF0YS5wYXltZW50VmFsdWU9ZTthLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIsYikudmFsKCl8fDA7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudEZyZXF1ZW5jeSIsYikudmFsKCk7YS5mb3JtZGF0YS5wYXltZW50UmF0ZT0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnRlcmVzdHJhdGUiLApiKS52YWwoKTthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9cGFyc2VJbnQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubG9hbmFtb3VudCIsYikudmFsKCkpO2Y9cGFyc2VJbnQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZmVlYW1vdW50IixiKS52YWwoKS5yZXBsYWNlKCIsIiwiIikpO2EuZm9ybWRhdGEudmVoaWNsZUZpbmFsUHJpY2U9cGFyc2VJbnQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubG9hbmFtb3VudCIsYikudmFsKCkpK2Y7YS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9ZjtrLmNoZWNrVmFsaWRpdHkoKX1mdW5jdGlvbiBQKCl7IjEiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNJbnN0YW50IixiKS52YWwoKSYmKCQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRpdGxlIikuaGlkZSgpLCQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRleHQiKS5zaG93KCksJChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5odG1sKCIiKSwKJChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5oaWRlKCkpO2lmKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiKSYmIiI9PSQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLnZhbCgpKXt2YXIgZD1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiKSk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikudmFsKGQubWFrZSk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1vZGVsXSIpLnZhbChkLm1vZGVsKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluWWVhcl0iKS52YWwoZC55ZWFyKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVHJpbV0iKS52YWwoZC50cmltKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVmFsdWVdIikudmFsKGQudmFsdWUpO19sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpJiYoZD1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpKSwKJCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblZhbHVlXSIpLmF0dHIoImRhdGEtY3VycmVudCIsZC52YWx1ZSkpfWEuc2hvd0Vycm9yPSExO2EucHVzaFBhcnRpYWw9ITE7ay5zZXREZXBhcnRtZW50KCk7ay5zZXRUcmFkZUluKCk7aWYoay51c2VySWQoKSkkLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0RmluYW5jZU11bHRpc3RlcFVzZXJJZEFuZERhdGE\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTp7dXNlcklkOmsudXNlcklkKCksZG9tYWluOlEsc2l0ZUlkOiQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGxhbmc6JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLGVtYWlsSGFuZGxlckpzb25PYmplY3Q6SlNPTi5zdHJpbmdpZnkoSil9LHN1Y2Nlc3M6ZnVuY3Rpb24oZyl7Zy5JRHx8KGcuSUQ9LTEpO2sudXNlcklkKGcuSUQpO2cuZGF0YSYmKGEuZm9ybWRhdGE9SlNPTi5wYXJzZShnLmRhdGEpKTsKIiIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJmEuZm9ybWRhdGEuZmlyc3ROYW1lIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmKGEuZm9ybWRhdGEuZmlyc3ROYW1lPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lKTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJmEuZm9ybWRhdGEubGFzdE5hbWUhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJihhLmZvcm1kYXRhLmxhc3ROYW1lPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJihhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcz1lbWFpbEhhbmRsZXIudXNlckVtYWlsKTsKIiIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiZhLmZvcm1kYXRhLnBob25lTnVtYmVyIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYoYS5mb3JtZGF0YS5waG9uZU51bWJlcj1lbWFpbEhhbmRsZXIudXNlclBob25lLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsKGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlKXtsZXQgbDthLmZvcm1kYXRhLmZpcnN0TmFtZT1udWxsIT0obD1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJmaXJzdG5hbWUiKSk\/bDphLmZvcm1kYXRhLmZpcnN0TmFtZTtsZXQgcDthLmZvcm1kYXRhLmxhc3ROYW1lPW51bGwhPShwPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImxhc3RuYW1lIikpP3A6YS5mb3JtZGF0YS5sYXN0TmFtZTtsZXQgcjthLmZvcm1kYXRhLmVtYWlsQWRkcmVzcz0KbnVsbCE9KHI9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiKSk\/cjphLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztsZXQgdDthLmZvcm1kYXRhLnBob25lTnVtYmVyPW51bGwhPSh0PWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIikpP3Q6YS5mb3JtZGF0YS5waG9uZU51bWJlcjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKX0wPT1hLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMmJjA9PWEuZm9ybWRhdGEuYWRkcmVzc19tb250aHMmJihhLmZvcm1kYXRhLmFkZHJlc3M9IiIpO2cuc3RlcCYmKGEuc3RlcD1OdW1iZXIoZy5zdGVwKSxhLm5leHRTdGVwPWEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzWyJzdGVwIitnLnN0ZXBdKTskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwLnNob3ciKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuc2hvdygpOwprLnNldEN1cnJlbnRNYWtlTW9kZWxZZWFyKCk7ay5vblNob3dGdW5jdGlvblRvUnVuKCk7YS5maXJzdFN0ZXA9ITF9LGNvbXBsZXRlOmZ1bmN0aW9uKGcpe2lmKCFnLmRhdGEpcmV0dXJuIGsudXNlcklkKC0xKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKSxQKCl9fSk7ZWxzZXthLnB1c2hQYXJ0aWFsPSExOyIiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYoYS5mb3JtZGF0YS5maXJzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmKGEuZm9ybWRhdGEubGFzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYKKGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzPWVtYWlsSGFuZGxlci51c2VyRW1haWwpOyIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmKGEuZm9ybWRhdGEucGhvbmVOdW1iZXI9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSl7dmFyIGM7YS5mb3JtZGF0YS5maXJzdE5hbWU9bnVsbCE9KGM9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIikpP2M6YS5mb3JtZGF0YS5maXJzdE5hbWU7dmFyIGU7YS5mb3JtZGF0YS5sYXN0TmFtZT1udWxsIT0oZT1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIpKT9lOmEuZm9ybWRhdGEubGFzdE5hbWU7dmFyIGY7YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9Cm51bGwhPShmPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImVtYWlsIikpP2Y6YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M7bGV0IGc7YS5mb3JtZGF0YS5waG9uZU51bWJlcj1udWxsIT0oZz1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJwaG9uZSIpKT9nOmEuZm9ybWRhdGEucGhvbmVOdW1iZXI7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcil9JCgnI21pbmlmb3JtIFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS5sZW5ndGgmJiIiIT0kKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLnZhbCgpJiYoYS5mb3JtZGF0YS5tdWx0aUZyb21NaW5pPSEwKTskKCIjbWF4X2J1ZGdldCIpLmxlbmd0aCYmKGEucHVzaFBhcnRpYWw9ITAsYz0iIixlPXBhcnNlRmxvYXQoJCgiI21heF9idWRnZXQiKS52YWwoKS5yZXBsYWNlKC9bXjAtOS4tXSsvZywiIikpLApjPWsuZ2V0Q3VycmVudEJ1ZGdldChlKSwiMSI9PXUmJmlzTmFOKGUpJiYoYz0iIiksYS5mb3JtZGF0YS5idWRnZXQ9Yyk7JCgiLnRyYWNrLXByb2dyZXNzIikubGVuZ3RoJiYobG9jYWxTdG9yYWdlLmdldEl0ZW0oInRyYWRlaW5fc3VibWl0X2RhdGEiKSYmKGEuZm9ybWRhdGEuY3VycmVudGx5RHJpdmluZz0iRklOQU5DRV9GT1JNX0FMUkVBRFlfRFJJVklOR19UUkFERSIpLGM9bG9jYWxTdG9yYWdlLmdldEl0ZW0oInJldGFpbF90cmFja19kYXRhIiksKGM9SlNPTi5wYXJzZShjKSkmJmMudmFsdWUmJihjPUpTT04ucGFyc2UoYy52YWx1ZSkpJiZjLnBheW1lbnQmJmMucGF5bWVudC5wYXltZW50VmFsdWUmJihlPWMucGF5bWVudC5wYXltZW50VmFsdWUsYz1lWzBdLGU9ZVszXSxmPSIiLGM9Im1vbnRobHkiPT1lP3BhcnNlRmxvYXQoYyk6IndlZWtseSI9PWU\/NTIqcGFyc2VGbG9hdChjKS8xMjoic2VtaW1vbnRobHkiPT1lPzI0KnBhcnNlRmxvYXQoYykvMTI6MjYqcGFyc2VGbG9hdChjKS8KMTIsZj1rLmdldEN1cnJlbnRCdWRnZXQoYyksYS5mb3JtZGF0YS5idWRnZXQ9ZikpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tuYW1lPSJidWRnZXQiXStsYWJlbCcpLmZvckVhY2goZz0+e2cuaW5uZXJIVE1MPWcuaW5uZXJIVE1MLnJlcGxhY2UoLyhcJFxkezMsNH18XGR7Myw0fVwkKS9nLGw9PkQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGwucmVwbGFjZSgvXCQvZywiIikpKX0pOyQoZG9jdW1lbnQpLnRyaWdnZXIoImNyZWRpdC5tdWx0aXN0ZXAuc2hvdyIpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5zaG93KCk7MD09YS5zdGVwJiYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4iLGIpLmhpZGUoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikub2ZmKCJjbGljay5ub0J1dHRvbiIsImlucHV0W3R5cGU9cmFkaW9dIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9uKCJjbGljay5ub0J1dHRvbiIsImlucHV0W3R5cGU9cmFkaW9dIiwKZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5uZXh0KCl9LDFFMyl9KSk7ay5zZXRDdXJyZW50TWFrZU1vZGVsWWVhcigpfX12YXIgej0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fQ0hFQ0siKS52YWwoKSxLPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9TRUxFQ1QiKS52YWwoKSxEPSQoIiNBRE1JTl9NQU5EQVRPUllfQ1JFRElUX0JVUkVBVV9DSEVDSyIpLnZhbCgpLEE9JCgiI0FTS19GT1JfU0lOX0NIRUNLIikudmFsKCksTz0hMSx1PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc1NlY29uZENoYW5jZSIsYikudmFsKCkseD0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNJbnN0YW50IixiKS52YWwoKSxFPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc1Z3RFIiLGIpLnZhbCgpLEw9MSxNPVsxLDIsMyw2LDcsMTMsMTQsMTVdLEY9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9XSxSPVtdLFM9Clt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImZpcnN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToibGFzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOYW1lIix2YWx1ZToiIn1dLFQ9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiYWRkcmVzcyJ9XSxVPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InJlbnRPck93biJ9LHtmdW5jOiJ2YWxpZGF0ZUlzTnVtYmVyIix2YWx1ZToibW9udGhseVBheW1lbnQifSx7ZnVuYzoidmFsaWRhdGVNb250aGx5UGF5bWVudCIsdmFsdWU6Im1vbnRobHlQYXltZW50In1dLEI9e3N0ZXAwOjEsc3RlcDE6MixzdGVwMjozLHN0ZXAzOiIwIj09ej80OiJiZWZvcmUiPT1LPzE5OjQsc3RlcDQ6IjAiPT16PzU6ImJlZm9yZSI9PUs\/NToxOSxzdGVwNTo2LHN0ZXA2Ojcsc3RlcDc6OCxzdGVwODo5LHN0ZXA5OjExLHN0ZXAxMDoxMSxzdGVwMTE6MTIsc3RlcDEyOjEzLHN0ZXAxMzoxNixzdGVwMTQ6MTYsc3RlcDE1OjE2LApzdGVwMTY6MTcsc3RlcDE3OiIwIj09ej8xOTowPT1EPyIwIj09QT8iMSI9PXU\/MjM6ImRvbmUiOjIyOjIwLHN0ZXAxODoiMCI9PXo\/MD09RD8iMCI9PUE\/IjEiPT11PzIzOiJkb25lIjoyMjoyMDoiYmVmb3JlIj09Sz80OjUsc3RlcDE5OjE4LHN0ZXAyMDoiMCI9PUE\/IjEiPT11PzIzOiJkb25lIjoyMixzdGVwMjI6IjEiPT11PzIzOiJkb25lIixzdGVwMjM6ImRvbmUifTtvcHRpb25hbFN0ZXBzPVtdOyIxIj09dSYmKG9wdGlvbmFsU3RlcHM9WzIzXSwiMCI9PUEmJihvcHRpb25hbFN0ZXBzPVsyMiwyM10pLE09WzEsMiwzLDYsNywxNCwxNV0sRj1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWUiLHZhbHVlOiIifV0sCkI9e3N0ZXAwOjEsc3RlcDE6MixzdGVwMjozLHN0ZXAzOjE4LHN0ZXA0OjE5LHN0ZXA1OjYsc3RlcDY6NyxzdGVwNzo4LHN0ZXA4Ojksc3RlcDk6MjIsc3RlcDEwOjExLHN0ZXAxMToxMixzdGVwMTI6MTMsc3RlcDEzOjE2LHN0ZXAxNDoxNixzdGVwMTU6MTYsc3RlcDE2OjIzLHN0ZXAxODo1LHN0ZXAxOToxMSxzdGVwMjA6ImRvbmUiLHN0ZXAyMjo0LHN0ZXAyMzowPT1EPyJkb25lIjoyMH0pOyIxIj09eCYmKG9wdGlvbmFsU3RlcHM9WzIyXSxMPTI0LE09WzEsMiwzLDYsNywxNCwxNV0sRj1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mbyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8ifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm8iLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZSIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZUFkZHJlc3NFbXBsb3llciIsCnZhbHVlOiJhZGRyZXNzRW1wbG95ZXIifV0sUj1be2Z1bmM6InZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mbyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8yIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvMiIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lMiIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZUFkZHJlc3NFbXBsb3llcjIiLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIyIn1dLFM9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZmlyc3ROYW1lIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJsYXN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToidGl0bGUifSx7ZnVuYzoidmFsaWRhdGVOYW1lIix2YWx1ZToiIn1dLFQ9W3tmdW5jOiJ2YWxpZGF0ZUFkZHJlc3MiLHZhbHVlOiJhZGRyZXNzIn1dLEI9e3N0ZXAwOjI0LHN0ZXAyNDoyNSxzdGVwMjU6NCxzdGVwNDoxOSxzdGVwMTk6MTgsCnN0ZXAxODo1LHN0ZXA1Ojgsc3RlcDg6OSxzdGVwOToxMSxzdGVwMTE6MTIsc3RlcDEyOjEzLHN0ZXAyNzoyOCxzdGVwMjg6MTMsc3RlcDEzOjE2LHN0ZXAxNDoxNixzdGVwMTU6MTYsc3RlcDE2OjE3LHN0ZXAxNzoyMixzdGVwMjk6MjIsc3RlcDIyOjA9PUQ\/MjY6MjAsc3RlcDIwOjI2LHN0ZXAyNjoiZG9uZSJ9LCIxIj09RSYmKEY9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm9WVyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8ifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm9WVyIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lVlciLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXJWVyIsdmFsdWU6ImFkZHJlc3NFbXBsb3llciJ9XSxCLnN0ZXAyMj0zMCxCLnN0ZXAzMD0iZG9uZSIsIlFDIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIiwKYikudmFsKCkmJihVPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InJlbnRPck93biJ9LHtmdW5jOiJ2YWxpZGF0ZUlzTnVtYmVyIix2YWx1ZToibW9udGhseVBheW1lbnQifSx7ZnVuYzoidmFsaWRhdGVNb250aGx5UGF5bWVudCIsdmFsdWU6Im1vbnRobHlQYXltZW50In0se2Z1bmM6InZhbGlkYXRlSXNOdW1iZXIiLHZhbHVlOiJtb250aGx5RGlzYnVyc2VtZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseVBheW1lbnQiLHZhbHVlOiJtb250aGx5RGlzYnVyc2VtZW50In1dKSkpO3ZhciBhPW5ldyBWdWUoe2VsOiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKVswXSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2NvbnRleHQ6YixhamF4UHJvY2VzczohMSx1c2VySWQ6IiIsY29udmVyc2lvblN1Ym1pdHRlZDohMSxzaG93SWNvbjohMCxwdXNoUGFydGlhbDohMSxjdXJyZW50RGVwdDoiTkVXIixpbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0OiEwLHN0ZXA6MCxuZXh0U3RlcDpMLApmaXJzdFN0ZXA6ITAsY2FsY3VsYXRvckZ1bmN0aW9uczoiIixjcmVkaXREZWNpc2lvbkhUTUw6IiIsZm9ybWRhdGE6e3ZlaGljbGVUeXBlOiIiLGJ1ZGdldDoiIixjdXJyZW50bHlEcml2aW5nOiIiLGVtYWlsQWRkcmVzczoiIixjcmVkaXRSYXRpbmc6IiIsZG93bk9wdGlvbnM6IiIsYmlydGhkYXRlWWVhcjoiIixiaXJ0aGRhdGVNb250aDoiIixiaXJ0aGRhdGVEYXk6IiIsYWRkcmVzczoiIixzcGxpdEFkZHJlc3M6W10sYWRkcmVzc195ZWFyczowLGFkZHJlc3NfbW9udGhzOjAsYWRkcmVzczI6IiIsc3BsaXRBZGRyZXNzMjpbXSxhZGRyZXNzMl95ZWFyczowLGFkZHJlc3MyX21vbnRoczowLGFkZHJlc3NFbXBsb3llcjoiIixzcGxpdEFkZHJlc3NFbXBsb3llcjpbXSxyZW50T3JPd246IiIsbW9udGhseVBheW1lbnQ6MCxtb250aGx5RGlzYnVyc2VtZW50OjAsZW1wbG95bWVudFN0YXR1czoiIixlbXBsb3ltZW50QWRkZWRJbmZvOiIiLGVtcGxveWVyTmFtZToiIixlbXBsb3llclBob25lOiIiLAplbXBsb3ltZW50U3RhdHVzWWVhcjowLGVtcGxveW1lbnRTdGF0dXNNb250aDowLGVtcGxveW1lbnRBZGRlZEluZm8yOiIiLGVtcGxveWVyTmFtZTI6IiIsZW1wbG95ZXJQaG9uZTI6IiIsZW1wbG95bWVudFN0YXR1c1llYXIyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoMjowLGFkZHJlc3NFbXBsb3llcjI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXIyOltdLHdvcmtpbmdXaGlsZUluU2Nob29sOiIiLG90aGVyRW1wbG95bWVudFN0YXR1czoiIixtb250aGx5SW5jb21lOjAsbW9udGhseUluY29tZV95ZWFyczowLG1vbnRobHlJbmNvbWVfbW9udGhzOjAsdGl0bGU6IiIsZmlyc3ROYW1lOiIiLGxhc3ROYW1lOiIiLHBob25lTnVtYmVyOiIiLGN1cnJlbnRNYWtlOiIiLGN1cnJlbnRNb2RlbDoiIixjdXJyZW50TW9kZWxUZXh0OiIiLGN1cnJlbnRZZWFyOiIiLGN1cnJlbnRTdG9ja051bWJlcjoiIixjdXJyZW50TWlsZWFnZToxMCxjdXJyZW50VHJpbToiIixjdXJyZW50U3R5bGVpZDoiIixjdXJyZW50Q2FySWQ6IiIsCnBheW1lbnRUeXBlOiIiLHBheW1lbnRUeXBlUmVhbDoiIixwYXltZW50VGVybToiIixwYXltZW50UmF0ZVR5cGU6IiIscGF5bWVudFZhbHVlOiIiLGJhc2VwYXltZW50OiIiLHBheW1lbnRUb3RhbEluY2VudGl2ZTowLHBheW1lbnRUb3RhbEZlZTowLHBheW1lbnRHU1Q6MCxwYXltZW50SFNUOjAscGF5bWVudFBTVDowLHBheW1lbnREb3duUGF5bWVudDowLHBheW1lbnRLbUFsbG93YW5jZTowLHBheW1lbnRJbnRlcnZhbDoiIixwYXltZW50UmF0ZToiIixwYXltZW50UmVzaWR1YWxWYWx1ZTowLG5vUGF5bWVudDohMSxtdWx0aV9kZWFsZXJfc2VuZFRvOiIiLGNyZWRpdEJ1cmVhdUNyZWRpdDoiTk8iLFNJTjoiIixhZGRlZEluZm86IiIsdmVoaWNsZVNhbGVzRGVwdDoib3RoZXIiLHZlaGljbGVQcmljZToiIix2ZWhpY2xlVHJhbnNtaXNzaW9uOiIiLHZlaGljbGVUcmltOiIiLHZlaGljbGVDb2xvcjoiIixpbml0aWFsVGl0bGVTaG93OiEwLG11bHRpRnJvbU1pbmk6ITEsdHJhZGVJbk1ha2U6IiIsCnRyYWRlSW5Nb2RlbDoiIix0cmFkZUluWWVhcjoiIix0cmFkZUluVHJpbToiIix0cmFkZUluVmFsdWU6IiIsdmVoaWNsZUluaXRpYWxQcmljZToiIix2ZWhpY2xlRmluYWxQcmljZToiIixwYXltZW50RmVlc0xpc3Q6W10scGF5bWVudEluY2VudGl2ZXNMaXN0OltdLGNyZWRpdEFwcGxpY2F0aW9uSWQ6IiIsY29uc2VudEFjY291bnRNb25pdG9yaW5nOiIiLGNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50OiIiLGNvbnNlbnRQaXBlZGE6IiIsY29uc2VudENhc2w6IiIsY29uc2VudFZXOiIifSxuZXh0U3RlcERlZmF1bHRWYWx1ZXM6Qix2YWxpZGF0aW9uUnVsZXM6e3N0ZXAxOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InZlaGljbGVUeXBlIn1dLHN0ZXAyOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImJ1ZGdldCJ9XSxzdGVwMzpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJjdXJyZW50bHlEcml2aW5nIn1dLHN0ZXA0Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsCnZhbHVlOiJlbWFpbEFkZHJlc3MifSx7ZnVuYzoidmFsaWRhdGVFbWFpbCIsdmFsdWU6ImVtYWlsQWRkcmVzcyJ9XSxzdGVwNTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJtdWx0aV9kZWFsZXJfc2VuZFRvIn1dLHN0ZXA2Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImNyZWRpdFJhdGluZyJ9XSxzdGVwNzpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJkb3duT3B0aW9ucyJ9XSxzdGVwODpbe2Z1bmM6InZhbGlkYXRlQmlydGhkYXRlIix2YWx1ZToiIn1dLHN0ZXA5OlQsc3RlcDExOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUFkZHJlc3NUaW1lIix2YWx1ZToiIn1dLHN0ZXAxMjpVLHN0ZXAxMzpGLHN0ZXAxNDpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJ3b3JraW5nV2hpbGVJblNjaG9vbCJ9XSxzdGVwMTU6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToib3RoZXJFbXBsb3ltZW50U3RhdHVzIn1dLHN0ZXAxNjpbe2Z1bmM6InZhbGlkYXRlTW9yZVRoYW5aZXJvIiwKdmFsdWU6Im1vbnRobHlJbmNvbWUifSx7ZnVuYzoidmFsaWRhdGVNb250aGx5SW5jb21lIix2YWx1ZToibW9udGhseUluY29tZSJ9XSxzdGVwMTc6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5TW9udGhseUluY29tZVRpbWUiLHZhbHVlOiIifV0sc3RlcDE4OlMsc3RlcDE5Olt7ZnVuYzoidmFsaWRhdGVQaG9uZU51bWJlciIsdmFsdWU6InBob25lTnVtYmVyIn1dLHN0ZXAyMDpbe2Z1bmM6InZhbGlkYXRlQ2hlY2tlZENyZWRpdEJ1cmVhdSIsdmFsdWU6ImNyZWRpdEJ1cmVhdUNyZWRpdCJ9XSxzdGVwMjI6W3tmdW5jOiJ2YWxpZGF0ZVNJTiIsdmFsdWU6IlNJTiJ9XSxzdGVwMjQ6W3tmdW5jOiJ2YWxpZGF0ZVZlaGljbGUiLHZhbHVlOiIifV0sc3RlcDI1Olt7ZnVuYzoidmFsaWRhdGVQYXltZW50Iix2YWx1ZToiIn1dLHN0ZXAyNjpbe2Z1bmM6InZhbGlkYXRlQ29uc2VudCIsdmFsdWU6IiJ9XSxzdGVwMjc6W3tmdW5jOiJ2YWxpZGF0ZUFkZHJlc3MyIix2YWx1ZToiYWRkcmVzczIifV0sCnN0ZXAyODpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHlBZGRyZXNzMlRpbWUiLHZhbHVlOiIifV0sc3RlcDI5OlIsc3RlcDMwOlt7ZnVuYzoidmFsaWRhdGVDb25zZW50cyIsdmFsdWU6IiJ9XX0sb25TaG93RnVuY3Rpb246e3N0ZXAyOlt7ZnVuYzoic3RlcDJWaWV3ZWRUcmFjayJ9XSxzdGVwNDpbe2Z1bmM6ImVtYWlsU3RlcFZpZXdlZFRyYWNrIn0se2Z1bmM6ImluaXRFbWFpbCJ9XSxzdGVwNjpbXSxzdGVwNzpbXSxzdGVwODpbe2Z1bmM6ImluaXRCaXJ0aGRhdGVDaGFuZ2UifV0sc3RlcDk6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlIn1dLHN0ZXAyNzpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGUyIn1dLHN0ZXAxMzpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llciJ9XSxzdGVwNTpbe2Z1bmM6ImluaXRTZWxlY3RNdWx0aURlYWxlciJ9XSxzdGVwMTk6W3tmdW5jOiJwaG9uZVN0ZXBWaWV3ZWRUcmFjayJ9LHtmdW5jOiJpbml0UGhvbmUifV0sc3RlcDI0Olt7ZnVuYzoiaW5pdFZlaGljbGVTZWxlY3Rpb24ifV0sCnN0ZXAyNTpbe2Z1bmM6ImluaXRDYWxjdWxhdG9yIn1dLHN0ZXAyNjpbe2Z1bmM6ImluaXRDb25zZW50In1dLHN0ZXAyOTpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjIifV19LG5vQ29uZmlybUJ1dHRvblN0ZXBzOk0sc2hvd0Vycm9yOiEwLHNlY29uZENoYW5jZVN0ZXBUb1NraXA6WzEsMiwzLDYsN10sb3B0aW9uYWxTdGVwOm9wdGlvbmFsU3RlcHN9fSxtZXRob2RzOntuZXh0OmZ1bmN0aW9uKGQpe2R8fCh0aGlzLnNob3dFcnJvcj0hMCx0aGlzLmZvcm1kYXRhLmluaXRpYWxUaXRsZVNob3c9ITEsdGhpcy5wdXNoUGFydGlhbD0hMCk7aWYodGhpcy52YWxpZGF0aW9uUnVsZXMuaGFzT3duUHJvcGVydHkoInN0ZXAiK3RoaXMuc3RlcCkpZm9yKHZhciBjPTA7Yzx0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXS5sZW5ndGg7YysrKWlmKGtbdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bY10uZnVuY10odGhpcy5mb3JtZGF0YVt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrCnRoaXMuc3RlcF1bY10udmFsdWVdKSkkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIiksJCgnW25hbWU9IicrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bY10udmFsdWUrJyJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpO2Vsc2V7dGhpcy5zaG93RXJyb3ImJigkKCIjIit0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtjXS52YWx1ZSsiRXJyb3JNc2ciLGIpLmxlbmd0aCYmJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiIyIrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bY10udmFsdWUrIkVycm9yTXNnIixiKS52YWwoKSksJCgnW25hbWU9IicrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bY10udmFsdWUrJyJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsInZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKSIpKTtyZXR1cm59Zm9yKHRoaXMuc2hvd0Vycm9yPQohMTtrLmlzTmV4dFN0ZXBGaWxsZWQoKTspO2lmKDIxIT10aGlzLnN0ZXApezQ9PXRoaXMuc3RlcCYmIiIhPWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiZrLmVtYWlsUHJvdmlkZWRUcmFjaygpOzE5PT10aGlzLnN0ZXAmJiIiIT1hLmZvcm1kYXRhLnBob25lTnVtYmVyJiZrLnBob25lUHJvdmlkZWRUcmFjaygpO2lmKDk9PXRoaXMuc3RlcCl0cnl7dmFyIGU9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbbmFtZT0iYWRkcmVzcyJdJyxiKSxmPWUuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksZz0idW5kZWZpbmVkIiE9PXR5cGVvZiBmLnBvc3RhbC5sb25nX25hbWU\/Zi5wb3N0YWwubG9uZ19uYW1lOmUudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWw9ZzsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJiIiIT1nJiYoInVuZGVmaW5lZCIhPT0KdHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixnLCJVc2VyRm9ybS5wb3N0YWwiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGcsIlVzZXJGb3JtLnBvc3RhbCIpKX1jYXRjaChsKXtjb25zb2xlLmxvZyhsKX00PD10aGlzLnN0ZXAmJiF0aGlzLmNvbnZlcnNpb25TdWJtaXR0ZWQmJih0aGlzLmNvbnZlcnNpb25TdWJtaXR0ZWQ9ITAsYz0kKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyX2NvbmZpcm0iKSwwPT09Yy5sZW5ndGgmJihjPSQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpKSxjLmZpbmQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoJCh0aGlzLmNvbnRleHQpLmZpbmQoIi5lbWFpbFN1YmplY3QiKS50ZXh0KCkucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksYy5maW5kKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbCgiRklOQU5DRSIpLGMuZmluZCgnaW5wdXRbbmFtZT0icGFnZUlEIl0nKS52YWwoJCgiI1BBR0VJRCIpLnZhbCgpKSwKYy5maW5kKCdpbnB1dFtuYW1lPSJjdXJyZW50VVJMIl0nKS52YWwod2luZG93LmxvY2F0aW9uLmhyZWYpLGMuZmluZCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpLGMuZmluZCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpLGMuZmluZCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSksYy5maW5kKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKSxjLnRyaWdnZXIoInN1Ym1pdCIpLCJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LnRyYWNrQ29udmVyc2lvbiYmd2luZG93LnRyYWNrQ29udmVyc2lvbigpKTswIT10aGlzLnN0ZXAmJih0aGlzLnNob3dJY29uPSExKTt0aGlzLnN0ZXA9dGhpcy5uZXh0U3RlcDtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGFzdF9zdGVwIik7CmR8fChhLmZpcnN0U3RlcD9hLmZpcnN0U3RlcD0hMTprLnN0ZXBUcmlnZ2VyKCEwKSk7KCIiIT10aGlzLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmKCIwIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCl8fCJhZnRlciI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9TRUxFQ1QiKS52YWwoKSl8fCIiIT10aGlzLmZvcm1kYXRhLnBob25lTnVtYmVyJiYiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9DSEVDSyIpLnZhbCgpJiYiYmVmb3JlIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpKSYmay5tdWx0aURlYWxlckZvcm1TdGF0dXMoKSYmdGhpcy5wdXNoUGFydGlhbCYmKCIxIj09JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI09QRU5FREZST01JTUFHRVBPUFVQIixiKS52YWwoKT8kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLApiKS52YWwoIjAiKTprLnB1c2hEYXRhVG9TZXJ2ZXIoKSk7ay5zZXRDbGllbnRTdG9yYWdlRGF0YVZhbHVlcygpO3RoaXMubmV4dFN0ZXA9dGhpcy5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK3RoaXMuc3RlcF07MDw9dGhpcy5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLnN0ZXApPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKTokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24iLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7ay5vblNob3dGdW5jdGlvblRvUnVuKCk7MDw9dGhpcy5ub0NvbmZpcm1CdXR0b25TdGVwcy5pbmRleE9mKHRoaXMuc3RlcCk\/KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5oaWRlKCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIiwKYikub24oImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2EubmV4dCgpfSwxRTMpfSkpOigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuc2hvdygpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vZmYoImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iKSk7ImRvbmUiPT10aGlzLnN0ZXAmJigiMSI9PXg\/IjEiPT1FP2suY3JlZGl0QXBwU3VtaXNzaW9uKCk6ay5yb3V0ZU9uZUNhbGwoKTprLnNlbmRFbWFpbCgpKX19LGdldExpbmVhcnN0ZXA6ZnVuY3Rpb24oZCl7dmFyIGM9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIik7Yz1wYXJzZUludChjP2M6MCk7aWYoMD09Y3x8aXNOYU4oYykpYz0xO2QmJihjKz0xLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIsYykpO3JldHVybiBjfX19KSwKdz0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciIsSj1lbWFpbEhhbmRsZXIuZ2V0SnNvbk9iamVjdCgpO3o9d2luZG93LmxvY2F0aW9uO3ZhciBRPXoucHJvdG9jb2wrIi8vIit6Lmhvc3Qsaz17aXNOZXh0U3RlcEZpbGxlZDpmdW5jdGlvbigpe2lmKCIxIj09eCYmIjEiPT1FJiZbMTksNCwzMF0uaW5jbHVkZXMoYS5uZXh0U3RlcCkpcmV0dXJuITE7aWYoIjEiPT11JiYwPD1hLnNlY29uZENoYW5jZVN0ZXBUb1NraXAuaW5kZXhPZihhLm5leHRTdGVwKSlyZXR1cm4gYS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrYS5uZXh0U3RlcF0sITA7aWYoKCIxIj09dXx8IjEiPT14KSYmMDw9YS5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLm5leHRTdGVwKSlyZXR1cm4hMTtpZihhLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5uZXh0U3RlcCkpe2Zvcih2YXIgZD0wO2Q8YS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiKwphLm5leHRTdGVwXS5sZW5ndGg7ZCsrKWlmKCFrW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLm5leHRTdGVwXVtkXS5mdW5jXShhLmZvcm1kYXRhW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLm5leHRTdGVwXVtkXS52YWx1ZV0pKXJldHVybiExO2EubmV4dFN0ZXA9YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK2EubmV4dFN0ZXBdO3JldHVybiEwfX0sdmFsaWRhdGVOb3RFbXB0eTpmdW5jdGlvbihkKXtyZXR1cm4iIiE9ZCYmInVuZGVmaW5lZCIhPT10eXBlb2YgZH0sdmFsaWRhdGVOYW1lOmZ1bmN0aW9uKCl7dmFyIGQ9L15bQS16XHUwMEJGLVx1MUZGRlx1MkMwMC1cdUQ3RkYgJy1dKyQvO2xldCBjPWQudGVzdChhLmZvcm1kYXRhLmZpcnN0TmFtZSk7ZD1kLnRlc3QoYS5mb3JtZGF0YS5sYXN0TmFtZSk7YyYmZD8oJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJmaXJzdE5hbWUiXScsYikuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOihjfHwoJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpKSxkfHwoJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2ZpcnN0TmFtZUVycm9yTXNnIikudmFsKCkpKTtyZXR1cm4gYyYmZH0sdmFsaWRhdGVJc051bWJlcjpmdW5jdGlvbihkKXtyZXR1cm4gMDw9CmR9LHZhbGlkYXRlTW9udGhseUluY29tZTpmdW5jdGlvbihkKXtyZXR1cm4gOTk5OTk5Pj1kfSx2YWxpZGF0ZU1vbnRobHlQYXltZW50OmZ1bmN0aW9uKGQpe3JldHVybiA5OTk5OT49ZH0sdmFsaWRhdGVBZGRyZXNzOmZ1bmN0aW9uKGQpe3JldHVybiAwPGEuZm9ybWRhdGEuYWRkcmVzc195ZWFyc3x8MDxhLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzPyEwOiIiIT1kJiYoZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKSwiIiE9ZC5jaXR5JiYiIiE9ZC5zdHJlZXQpPyhhLmZvcm1kYXRhLnNwbGl0QWRkcmVzcz1kLCEwKTohMX0sdmFsaWRhdGVBZGRyZXNzMjpmdW5jdGlvbihkKXtyZXR1cm4gMDxhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzfHwwPGEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzPyEwOiIiIT1kJiYoZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsCmIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1kLmNpdHkmJiIiIT1kLnN0cmVldCk\/KGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzMj1kLCEwKTohMX0sdmFsaWRhdGVBZGRyZXNzRW1wbG95ZXI6ZnVuY3Rpb24oZCl7aWYoIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRCIhPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cylyZXR1cm4hMDtpZigiIiE9ZCl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiZudWxsIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIiIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIoKTtkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsCmIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpO2lmKCIiIT1kLmNpdHkmJiIiIT1kLnN0cmVldClyZXR1cm4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcj1kLCEwfXJldHVybiExfSx2YWxpZGF0ZUFkZHJlc3NFbXBsb3llclZXOmZ1bmN0aW9uKGQpe3ZhciBjPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztpZigiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX0ZVTEwiIT1jJiYiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX1BBUlQiIT1jKXJldHVybiEwO2lmKCIiIT1kKXtpZigidW5kZWZpbmVkIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiY2l0eSJpbiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIuY2l0eSlyZXR1cm4hMDsKay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIoKTtkPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIik7aWYoIiIhPWQuY2l0eSYmIiIhPWQuc3RyZWV0KXJldHVybiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyPWQsITB9cmV0dXJuITF9LHZhbGlkYXRlQWRkcmVzc0VtcGxveWVyMjpmdW5jdGlvbihkKXtpZigiIiE9ZCl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmbnVsbCE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJiIiIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjIuY2l0eSlyZXR1cm4hMDsKay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIyKCk7ZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKTtpZigiIiE9ZC5jaXR5JiYiIiE9ZC5zdHJlZXQpcmV0dXJuIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyPWQsITB9cmV0dXJuITF9LHZhbGlkYXRlU3RhdHVzVGltZTpmdW5jdGlvbihkKXtpZigiIiE9ZCYmMTA9PWQubGVuZ3RoKXJldHVybiBkPWQuc3BsaXQoIi8iKSxuZXcgRGF0ZSgrZFsyXSxkWzFdLTEsK2RbMF0pPG5ldyBEYXRlfSx2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm86ZnVuY3Rpb24oZCl7dmFyIGM9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiPT1jfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NFTEZFTVBMT1lFRCI9PQpjfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NUVURFTlQiPT1jfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX09USEVSIj09Yz8iIiE9PWQmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGQ6ITB9LHZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mb1ZXOmZ1bmN0aW9uKGQpe3ZhciBjPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztyZXR1cm4iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX0ZVTEwiPT1jfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX1BBUlQiPT1jfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1JFVElSRUQiPT1jfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NFTEZFTVBMT1lFRCI9PWM\/IiIhPT1kJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBkOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mbzpmdW5jdGlvbigpe3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiPT0KYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzPyIiIT09YS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lJiZrLnZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcihhLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUpOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mb1ZXOmZ1bmN0aW9uKCl7dmFyIGQ9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfRlVMTCI9PWR8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfUEFSVCI9PWQ\/IiIhPT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyKGEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZSk6ITB9LHZhbGlkYXRlRW1wbG95ZXJJbmZvMjpmdW5jdGlvbigpe3JldHVybiIiIT09CmEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMiYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUyJiZrLnZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcjIoYS5mb3JtZGF0YS5lbXBsb3llclBob25lMil9LHZhbGlkYXRlRW1haWw6ZnVuY3Rpb24oZCl7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToiY3NzT25seSIsc2Nyb2xsVG86ITF9KS5zdGFydCgpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJlbWFpbEFkZHJlc3MiXScpLnZhbGlkRW1haWxBZGRyZXNzKCk7cmV0dXJuICQudmFsaWRpdHkuZW5kKCkudmFsaWR9LHZhbGlkYXRlQmlydGhkYXRlOmZ1bmN0aW9uKCl7dmFyIGQ9YS5mb3JtZGF0YS5iaXJ0aGRhdGVZZWFyLGM9YS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCxlPWEuZm9ybWRhdGEuYmlydGhkYXRlRGF5O2lmKDMxPGV8fDEyPGN8fDE5MDA+ZHx8MD49ZXx8MD49Y3x8IiI9PWR8fCIiPT1jfHwiIj09CmV8fDQ+ZC5sZW5ndGgpcmV0dXJuITE7ZD0xODw9ay5jYWxjdWxhdGVBZ2UobmV3IERhdGUoZCxjLTEsZSksbmV3IERhdGUpO2Euc2hvd0Vycm9yJiYoZD8kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIik6JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2JpcnRoZGF0ZUVycm9yTXNnIikudmFsKCkpKTtyZXR1cm4gZH0sY2FsY3VsYXRlQWdlOmZ1bmN0aW9uKGQsYyl7dmFyIGU9Yy5nZXRGdWxsWWVhcigpLGY9Yy5nZXRNb250aCgpO2M9Yy5nZXREYXRlKCk7dmFyIGc9ZC5nZXRGdWxsWWVhcigpLGw9ZC5nZXRNb250aCgpO2Q9ZC5nZXREYXRlKCk7ZS09ZztmLT1sO2lmKDA+Znx8MD09ZiYmMD5jLWQpZT1wYXJzZUludChlKS0xO3JldHVybiBlfSxoYXNVc2VyOmZ1bmN0aW9uKCl7cmV0dXJuISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKX0sdXNlcklkOmZ1bmN0aW9uKGQpe2QmJgooLTE9PWQ\/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpLGEudXNlcklkPSExKToobG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIixkKSxhLnVzZXJJZD1kKSk7YS51c2VySWR8fChhLnVzZXJJZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKSk7cmV0dXJuIGEudXNlcklkfSxwdXNoRGF0YVRvU2VydmVyOmZ1bmN0aW9uKCl7aWYoIWEuYWpheFByb2Nlc3Mpe2EuYWpheFByb2Nlc3M9ITA7ay5zZXRUcmFkZUluKCk7dmFyIGQ9YS5mb3JtZGF0YSxjPWEuc3RlcCxlPSQoYikuZmluZCgiLmVtYWlsU3ViamVjdCIpLGY9JChiKS5maW5kKCIuZW1haWxCb2R5Iik7ZT1lLnRleHQoKT9lLnRleHQoKToiIjtmPWYuaHRtbCgpP2YuaHRtbCgpOiIiO3ZhciBnPSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk7ZW1haWxIYW5kbGVyLmJvZHk9ZjtlbWFpbEhhbmRsZXIuc3ViamVjdD0KZTtrLnNldEVtYWlsSGFuZGxlclNlbmQoKTtlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IjsiMSI9PXUmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIik7IjEiPT14JiYoZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iRklOQU5DRSI7ZW1haWxIYW5kbGVyLmlzbW9iaWxlc2l0ZT0xPT0kKCIjaXNtb2JpbGUiKS52YWwoKT8iWUVTIjoiTk8iO2VtYWlsSGFuZGxlci5jb25kaXRpb249InVuZGVmaW5lZCI9PXR5cGVvZiBnPyJ1c2VkIjpnLnRvTG93ZXJDYXNlKCk7ZW1haWxIYW5kbGVyLmNyZWRpdERhdGE9ZDtKPWVtYWlsSGFuZGxlci5nZXRKc29uT2JqZWN0KCk7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L3NldEZpbmFuY2VNdWx0aXN0ZXBEYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLAp0eXBlOiJQT1NUIixkYXRhOnt1c2VySWQ6ay51c2VySWQoKSxmb3JtZGF0YTpkLHN0ZXA6Yyxkb21haW46USxzaXRlSWQ6JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksZW1haWxIYW5kbGVySnNvbk9iamVjdDpKU09OLnN0cmluZ2lmeShKKX0sc3VjY2VzczpmdW5jdGlvbihsKXtsLklEJiZsLmlkQ2hhbmdlZCYmay51c2VySWQobC5JRCl9LGNvbXBsZXRlOmZ1bmN0aW9uKGwpe2EuYWpheFByb2Nlc3M9ITF9fSl9fSxvblNob3dGdW5jdGlvblRvUnVuOmZ1bmN0aW9uKCl7aWYoYS5vblNob3dGdW5jdGlvbi5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5zdGVwKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBhLm9uU2hvd0Z1bmN0aW9uWyJzdGVwIithLnN0ZXBdLmxlbmd0aClmb3IodmFyIGQ9MDtkPGEub25TaG93RnVuY3Rpb25bInN0ZXAiK2Euc3RlcF0ubGVuZ3RoO2QrKylrW2Eub25TaG93RnVuY3Rpb25bInN0ZXAiKwphLnN0ZXBdW2RdLmZ1bmNdKCl9LGluaXRHb29nbGVBdXRvY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKVswXSxjPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7Yy5kaXNjb25uZWN0KCk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtjLm9ic2VydmUoZCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2Q9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7ZD17bGF0OmQsbG9uZzplLHJhZGl1czoyRTV9OwokKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5nb29nbGVQbGFjZXMoZCl9LGluaXRHb29nbGVBdXRvY29tcGxldGUyOmZ1bmN0aW9uKCl7dmFyIGQ9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MyIl0nLGIpWzBdLGM9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtjLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtjLm9ic2VydmUoZCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2Q9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpOwp2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2Q9e2xhdDpkLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsYikuZ29vZ2xlUGxhY2VzKGQpfSxpbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXI6ZnVuY3Rpb24oKXt2YXIgZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpWzBdLGM9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtjLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7CmMub2JzZXJ2ZShkLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImF1dG9jb21wbGV0ZSJdfSk7ZD0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTGF0IikudmFsKCk7dmFyIGU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxvbmciKS52YWwoKTtkPXtsYXQ6ZCxsb25nOmUscmFkaXVzOjJFNX07JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJyxiKS5nb29nbGVQbGFjZXMoZCl9LGluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjI6ZnVuY3Rpb24oKXt2YXIgZD0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKVswXSxjPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7Yy5kaXNjb25uZWN0KCk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llcjIiXScsCmIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7Yy5vYnNlcnZlKGQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtkPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2Q9e2xhdDpkLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKS5nb29nbGVQbGFjZXMoZCl9LGluaXRCaXJ0aGRhdGVDaGFuZ2U6ZnVuY3Rpb24oKXskKCIuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBpbnB1dCIpLm9uKCJrZXl1cCIsZnVuY3Rpb24oKXskKHRoaXMpLnZhbCgpLmxlbmd0aD09JCh0aGlzKS5hdHRyKCJtYXhsZW5ndGgiKSYmJCh0aGlzKS5wYXJlbnQoKS5uZXh0KCIuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiIpLmZpbmQoImlucHV0IikudHJpZ2dlcigiZm9jdXMiKX0pfSwKdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhciYmMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksCiExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDYwPjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpK3BhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9Mjk6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDE3PTIyKTtyZXR1cm4hMH0sdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZVZXOmZ1bmN0aW9uKCl7aWYoIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19VTkVNUExPWUVEIj09CmEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c3x8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19TVFVERU5UIj09YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzKXJldHVybiEwO2lmKDcwPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksCiQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhciYmMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDYwPjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpK3BhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9CjI5OmEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxNz0yMik7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWUyOmZ1bmN0aW9uKCl7aWYoNzA8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcjIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aDIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyMiYmMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgyKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwKITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5QWRkcmVzc1RpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuYWRkcmVzc195ZWFycyYmMD49YS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsCiIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmCigyND4xMipwYXJzZUludChhLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMpK3BhcnNlSW50KGEuZm9ybWRhdGEuYWRkcmVzc19tb250aHMpP2EubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxMj0yNzphLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTI9MTMpO3JldHVybiEwfSx2YWxpZGF0ZUNvbnNlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuKCJRQyIhPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9EZWFsZXJQcm92aW5jZSIsYikudmFsKCl8fGEuZm9ybWRhdGEuY29uc2VudEFjY291bnRNb25pdG9yaW5nJiZhLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50KSYmYS5mb3JtZGF0YS5jb25zZW50Vlc\/ITA6ITF9LHZhbGlkYXRlTm90RW1wdHlBZGRyZXNzMlRpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMmJjA+PWEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLAoiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3MyVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7CnJldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5TW9udGhseUluY29tZVRpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfeWVhcnMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEubW9udGhseUluY29tZV95ZWFycyYmMD49YS5mb3JtZGF0YS5tb250aGx5SW5jb21lX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLAohMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZVBob25lTnVtYmVyOmZ1bmN0aW9uKGQpe3JldHVybiBkJiYocGhvbmU9ZC5yZXBsYWNlKCIoIiwiIikucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIiAiLCIiKS5yZXBsYWNlKCItIiwiIiksMTA9PXBob25lLmxlbmd0aCk\/KCQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIixzY3JvbGxUbzohMX0pLnN0YXJ0KCksCiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsaWRhdGVQaG9uZSgpLCQudmFsaWRpdHkuZW5kKCkudmFsaWQpOiExfSx2YWxpZGF0ZVBob25lTnVtYmVyRW1wbG95ZXI6ZnVuY3Rpb24oZCl7cmV0dXJuIGQmJihwaG9uZT1kLnJlcGxhY2UoIigiLCIiKS5yZXBsYWNlKCIpIiwiIikucmVwbGFjZSgiICIsIiIpLnJlcGxhY2UoIi0iLCIiKSwxMD09cGhvbmUubGVuZ3RoKT8oJC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgiaW5wdXQuZW1wbG95ZXJQaG9uZSIpLnZhbGlkYXRlUGhvbmUoKSwkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKTohMX0sdmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyMjpmdW5jdGlvbihkKXtyZXR1cm4gZCYmKHBob25lPWQucmVwbGFjZSgiKCIsIiIpLnJlcGxhY2UoIikiLAoiIikucmVwbGFjZSgiICIsIiIpLnJlcGxhY2UoIi0iLCIiKSwxMD09cGhvbmUubGVuZ3RoKT8oJC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgiaW5wdXQuZW1wbG95ZXJQaG9uZTIiKS52YWxpZGF0ZVBob25lKCksJC52YWxpZGl0eS5lbmQoKS52YWxpZCk6ITF9LHZhbGlkYXRlU0lOOmZ1bmN0aW9uKGQpe3JldHVybigiMSI9PXUmJiIwIj09QXx8IjEiPT14KSYmIiI9PWQmJjA8PWEub3B0aW9uYWxTdGVwLmluZGV4T2YoMjIpfHxkJiYoc2luPWQucmVwbGFjZUFsbCgiICIsIiIpLDk9PXNpbi5sZW5ndGgpPyEwOiExfSx2YWxpZGF0ZVZlaGljbGU6ZnVuY3Rpb24oKXt2YXIgZD0hMTtzd2l0Y2goYS5jdXJyZW50RGVwdCl7Y2FzZSAiVVNFRCI6ZD0iIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhciYmCiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW0mJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZDticmVhaztjYXNlICJORVdJTlYiOmQ9IiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW0mJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ7YnJlYWs7Y2FzZSAiTkVXIjpkPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW19cmV0dXJuIGR9LGluaXRWZWhpY2xlU2VsZWN0aW9uOmZ1bmN0aW9uKCl7YS5pbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0JiYKKCQoJ2lucHV0W25hbWU9ImZpbmFuY2VNdWx0aXN0ZXBEZXB0Il0nLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7bGV0IGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlaGljbGVTZWxlY3Rpb25XcmFwcGVyIik7ZC5yZXBsYWNlV2l0aChkLmNsb25lTm9kZSghMCkpO2suaW5pdFZlaGljbGVTZWxlY3Rpb24oKX0pLGEuaW5pdFZlaGljbGVTZWxlY3Rpb25GaXJzdD0hMSk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5vZmYoImNoYW5nZSIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9mZigiY2hhbmdlIik7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vZmYoImNoYW5nZSIpOyJVU0VEIj09YS5jdXJyZW50RGVwdHx8Ik5FV0lOViI9PWEuY3VycmVudERlcHQ\/KG0oIm5ld2ludiIpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudE1vZGVsPQoiIixhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbFRleHQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9IiIsYS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9IiIsYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxrLmNoZWNrVmFsaWRpdHkoKSxuKCJuZXdpbnYiLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJiIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPQoiIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0iIixhLmZvcm1kYXRhLmN1cnJlbnRDYXJJZD0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwLGsuY2hlY2tWYWxpZGl0eSgpLHYoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1tb2RlbCIpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIik7YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudFllYXI9CiQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEteWVhciIpO2EuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdHlsZWlkIik7YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1wcmljZSIpO2EuZm9ybWRhdGEuY3VycmVudENhcklkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtdmVoaWNsZWlkIik7YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdG9ja251bWJlciIpO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsCmIpLmF0dHIoImRhdGEtbWlsZWFnZSIpO3ZhciBkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtaXNuZXciKSxjPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtaXNkZW1vIikmJiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9ERU1PQVNORVciXScsYikudmFsKCk7YS5jdXJyZW50RGVwdD0iMSI9PWR8fGM\/Ik5FV0lOViI6IlVTRUQiO2suY2hlY2tWYWxpZGl0eSgpfSkpOihtKGEuY3VycmVudERlcHQpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudE1vZGVsPSIiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dD0iIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0KMTAsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0iIixrLmNoZWNrVmFsaWRpdHkoKSxuKGEuY3VycmVudERlcHQsJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmIiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLnZhbCgpJiYoYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0iIixrLmNoZWNrVmFsaWRpdHkoKSxxKCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLW1vZGVsIiksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEteWVhciIpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIik7YS5mb3JtZGF0YS5jdXJyZW50WWVhcj0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS15ZWFyIik7YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTA7YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIiwKYikuYXR0cigiZGF0YS1zdHlsZWlkIik7YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1wcmljZSIpO2suY2hlY2tWYWxpZGl0eSgpfSkpfSx2YWxpZGF0ZVBheW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4iIiE9YS5mb3JtZGF0YS5wYXltZW50VHlwZSYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFRlcm0mJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbCYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFZhbHVlJiYiIiE9YS5mb3JtZGF0YS5wYXltZW50UmF0ZXx8YS5mb3JtZGF0YS5ub1BheW1lbnR9LGluaXRDYWxjdWxhdG9yOmZ1bmN0aW9uKCl7dmFyIGQ9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iIHN1ciBjZSAiK2EuZm9ybWRhdGEuY3VycmVudE1ha2UrIiAiK2EuZm9ybWRhdGEuY3VycmVudE1vZGVsKyIgIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyOiIgb24gdGhpcyAiK2EuZm9ybWRhdGEuY3VycmVudFllYXIrCiIgIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlKyIgIithLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubXVsdGlzdGVwUGF5bWVudFZlaGljbGUiLGIpLnRleHQoZCk7aWYoIk5FVyI9PWEuY3VycmVudERlcHR8fCJORVdJTlYiPT1hLmN1cnJlbnREZXB0KXskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIik7YS5jYWxjdWxhdG9yRnVuY3Rpb25zPW5ldyBjYWxjdWxhdG9yRnVuY3Rpb25zKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKTtkPSJORVdJTlYiPT1hLmN1cnJlbnREZXB0O2xldCBlPSJmaW5hbmNpbmciLGY9MCxnPTAsbD0kKCdpbnB1dFtuYW1lPSJBRE1JTl9TSE9XX0xPV0VTVF9QQVlNRU5UX0lOVEVSVkFMIl0nKS52YWwoKTt2YXIgYz0yRTQ7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJihjPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksCmU9InVuZGVmaW5lZCIhPWNbMF0\/Y1swXTplLGY9Y1sxXSxnPXBhcnNlSW50KGNbNF0pfHwwLGw9Y1syXSxjPWNbM10pO2EuY2FsY3VsYXRvckZ1bmN0aW9ucy5pbml0KGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQsZSxnLDAsbCxjLGQsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXIpOyQoImJvZHkiKS5vZmYoImNoYW5nZSIsIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjJytiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScpOyQoImJvZHkiKS5vZmYoIm5vUGF5bWVudCIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpOyQoImJvZHkiKS5vZmYoInBheW1lbnRzUmVhZHkiLCIjIitiWzBdLmlkKwoiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIik7JCgiYm9keSIpLm9uKCJub1BheW1lbnQiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5ub1BheW1lbnQ9ITA7YS5uZXh0KCEwKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIiwiIyIrYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICMnK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyxmdW5jdGlvbigpe3ZhciBwPSJmaW5hbmNpbmciPT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU\/JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iRmluYW5jZW1lbnQiOiJGaW5hbmNpbmciOiJsZWFzaW5nIj09CmEuY2FsY3VsYXRvckZ1bmN0aW9ucy5wYXltZW50VHlwZT8kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJMb2NhdGlvbiI6IkxlYXNpbmciOiIiO2EuZm9ybWRhdGEucGF5bWVudFR5cGU9cDthLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU7YS5mb3JtZGF0YS5wYXltZW50VGVybT0kKHRoaXMpLnZhbCgpO2EuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpO3A9JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IiKS5maW5kKCcucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2EuZm9ybWRhdGEucGF5bWVudFRlcm0rJyJdW2RhdGEtcmF0ZXR5cGU9IicrYS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGUrJyJdJyk7dmFyIHI7YS5mb3JtZGF0YS5wYXltZW50UmVzaWR1YWxWYWx1ZT0KbnVsbCE9KHI9cC5hdHRyKCJkYXRhLXJlc2lkdWFsIikpP3I6JCh0aGlzKS5hdHRyKCJkYXRhLXJlc2lkdWFsIik7dmFyIHQ7YS5mb3JtZGF0YS5wYXltZW50VmFsdWU9bnVsbCE9KHQ9cC5hdHRyKCJkYXRhLXJlYWxwYXltZW50IikpP3Q6JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7dmFyIEc7YS5mb3JtZGF0YS5iYXNlcGF5bWVudD1udWxsIT0oRz1wLmF0dHIoImRhdGEtYmFzZXBheW1lbnQiKSk\/RzokKHRoaXMpLmF0dHIoImRhdGEtYmFzZXBheW1lbnQiKTthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEluY2VudGl2ZT1wLmF0dHIoImRhdGEtdG90YWxpbmNlbnRpdmUiKTthLmZvcm1kYXRhLnBheW1lbnRHU1Q9cC5hdHRyKCJkYXRhLWdzdCIpO2EuZm9ybWRhdGEucGF5bWVudEhTVD1wLmF0dHIoImRhdGEtaHN0Iik7YS5mb3JtZGF0YS5wYXltZW50UFNUPXAuYXR0cigiZGF0YS1wc3QiKTthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9cC5hdHRyKCJkYXRhLWluaXRpYWxQcmljZSIpOwphLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPXAuYXR0cigiZGF0YS1maW5hbFByaWNlIik7dmFyIEg7YS5mb3JtZGF0YS5wYXltZW50RmVlc0xpc3Q9bnVsbCE9KEg9SlNPTi5wYXJzZShhdG9iKHAuYXR0cigiZGF0YS1mZWVzTGlzdCIpKSkpP0g6W107cj0wO2Zvcih2YXIgTiBvZiBhLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdClyKz1OLmFtb3VudHx8MDthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT1yO3ZhciBJO2EuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PW51bGwhPShJPUpTT04ucGFyc2UoYXRvYihwLmF0dHIoImRhdGEtaW5jZW50aXZlc0xpc3QiKSkpKT9JOltdO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5kb3ducGF5bWVudHx8MDthLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMua21BbGxvd2FuY2U7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRGcmVxdWVuY3k7CmEuZm9ybWRhdGEucGF5bWVudFJhdGU9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGUiKTthLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMudHJhZGVJblZhbHVlO3I9KHBhcnNlSW50KGEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50KXx8MCkrKHBhcnNlSW50KGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKXx8MCk7Q29va2llcy5zZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixhLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbCsiLSIrYS5mb3JtZGF0YS5wYXltZW50VGVybSsiLSIrYS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwrIi0iK2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlKyItIityLG51bGwsIi8iKTsiTkVXQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJVU0VEQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBjaGFuZ2VQYWdlUGF5bWVudFZhbHVlJiYKKEk9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50IiksTj0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxpbnRlcmVzdCIpLHA9JCh0aGlzKS5hdHRyKCJkYXRhLWx1eGVUYXhBbW91bnQiKSxyPXIudG9GaXhlZCgwKSx0PSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpLEc9JCh0aGlzKS5hdHRyKCJkYXRhLWVmZmVjdGl2ZVJhdGUiKSxIPSQodGhpcykuYXR0cigiZGF0YS10b3RhbENvc3QiKSxjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHtjdXJyZW50UGF5bWVudDpJLGN1cnJlbnRSYXRlOmEuZm9ybWRhdGEucGF5bWVudFJhdGUscGF5bWVudFRlcm06YS5mb3JtZGF0YS5wYXltZW50VGVybSxwYXltZW50VHlwZTphLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbCxwYXltZW50SW50ZXJ2YWw6YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwscGF5bWVudERvd25QYXltZW50OnIsdG90YWxJbnRlcmVzdDpOLGx1eGVUYXhBbW91bnQ6cCxyYXRlVHlwZTp0LGVmZmVjdGl2ZVJhdGU6Ryx0b3RhbENvc3Q6SH0pLAokKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKS50cmlnZ2VyKCJwYXltZW50Q2hhbmdlZCIpKTtrLmNoZWNrVmFsaWRpdHkoKX0pOyQoImJvZHkiKS5vbigicGF5bWVudHNSZWFkeSIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsZnVuY3Rpb24oKXtmPWEuZm9ybWRhdGEucGF5bWVudFRlcm0\/YS5mb3JtZGF0YS5wYXltZW50VGVybTpmP2Y6MDswIT1mJiYwPCQoIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2YrJyJdJykubGVuZ3RoPyQoIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2YrJyJdJykuYXR0cigiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKToKKGEuZm9ybWRhdGEucGF5bWVudFR5cGU9IiIsYS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9IiIsYS5mb3JtZGF0YS5wYXltZW50VGVybT0iIixhLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0iIixhLmZvcm1kYXRhLnBheW1lbnRSZXNpZHVhbFZhbHVlPSIiLGEuZm9ybWRhdGEucGF5bWVudFZhbHVlPSIiLGEuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT0iIixhLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPSIiLGEuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PVtdLGEuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PVtdLGEuZm9ybWRhdGEuYmFzZXBheW1lbnQ9IiIsYS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9MCxhLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT0wLGEuZm9ybWRhdGEucGF5bWVudEdTVD0wLGEuZm9ybWRhdGEucGF5bWVudEhTVD0wLGEuZm9ybWRhdGEucGF5bWVudFBTVD0wLGEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PTAsCmEuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlPTAsYS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9IiIsYS5mb3JtZGF0YS5wYXltZW50UmF0ZT0iIixhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT0iIixrLmNoZWNrVmFsaWRpdHkoKSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIixiKS5zaG93KCl9KTtzZXRUaW1lb3V0KCgpPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBDdGFUcmFjayYmQ3RhVHJhY2suZ2V0VHJhY2tTdGVwKCJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIpKXtsZXQgcD1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIsZm9yY2VVcGRhdGU6ITAsb25Db21wbGV0ZTpyPT57ci5kYXRhc2V0LmNvbXBsX3R4dF9mcj1yLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZnIucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RnJbMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLApjdGFQYXltZW50VGV4dEZyWzFdKTtyLmRhdGFzZXQuY29tcGxfdHh0X2VuPXIuZGF0YXNldC5pbml0X2NvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRFblswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRFblsxXSk7cj17cGF5bWVudDp7fX07X2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSYmKHI9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpKSk7bGV0IHQ9IkZSRU5DSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Y3RhUGF5bWVudFRleHRGcjpjdGFQYXltZW50VGV4dEVuO3IucGF5bWVudD17bGlzdFByaWNlOnRbMl18fCIiLHBheW1lbnQ6dFswXXx8IiIscmF0ZTp0WzFdfHwiIixwYXltZW50VmFsdWU6Y3RhUGF5bWVudFZhbHVlc3x8W119O19sb2NhbFN0b3JhZ2VTZXQoInJldGFpbF90cmFja19kYXRhIixKU09OLnN0cmluZ2lmeShyKSwKMzApO0Nvb2tpZXMuc2V0KCJjdGFfZGF0YV92YWxpZCIsMSwxLCIvIil9fX0pOyQoIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpLm9uKCJwYXltZW50Q2hhbmdlZCIsZnVuY3Rpb24oKXtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHApfSl9fSwxMDApfWVsc2UgJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpLHkoYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQpfSxpbml0RW1haWw6ZnVuY3Rpb24oKXtrLmNoZWNrVmFsaWRpdHkoKX0saW5pdFBob25lOmZ1bmN0aW9uKCl7ay5jaGVja1ZhbGlkaXR5KCl9LGluaXRDb25zZW50OmZ1bmN0aW9uKCl7bGV0IGQ9Ii8iK3crIi9tdWx0aXN0ZXBJbnN0YW50Q29uc2VudC5odG1sIjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfY29uc2VudF90ZXh0X2RpdiIsYikuYXR0cigic3JjIixkKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oYyl7KGMub3JpZ2luPXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pJiYKImNvbnNlbnRJZnJhbWVCb3R0b20iPT09Yy5kYXRhJiYkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50IixiKS5hZGRDbGFzcygiaXNWYWxpZCIpfSwhMSl9LHZhbGlkYXRlQ29uc2VudDpmdW5jdGlvbigpe2lmKCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uX2NvbnNlbnQiLGIpLmhhc0NsYXNzKCJpc1ZhbGlkIikpcmV0dXJuIGEuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF95ZXMiLGIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIiksITA7YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX25vIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpO3JldHVybiExfSx2YWxpZGF0ZUNoZWNrZWRDcmVkaXRCdXJlYXU6ZnVuY3Rpb24oZCl7aWYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLApiKS5maW5kKCdpbnB1dFtuYW1lPSJjcmVkaXRCdXJlYXVDb25zZW50Il0nKS5pcygiOmNoZWNrZWQiKSlyZXR1cm4gYS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX3llcyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKSwhMDthLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0kKCIjd29ya2luZ1doaWxlSW5TY2hvb2xfbm8iLGIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik7cmV0dXJuITF9LHZhbGlkYXRlTW9yZVRoYW5aZXJvOmZ1bmN0aW9uKGQpe3JldHVybiAwPGR9LHNlbmRFbWFpbDpmdW5jdGlvbigpe3ZhciBkPSQoYikuZmluZCgiLmVtYWlsU3ViamVjdCIpLGM9JChiKS5maW5kKCIuZW1haWxCb2R5Iik7ZD1kLnRleHQoKT9kLnRleHQoKToiIjtjPWMuaHRtbCgpP2MuaHRtbCgpOiIiO2lmKGQmJmMpe3ZhciBlPSQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOwoiIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvJiYoZSs9IiAoIithLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8rIikiKTtjPWMucmVwbGFjZSgieyRCT0RZVFlQRX0iLGEuZm9ybWRhdGEudmVoaWNsZVR5cGU\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEudmVoaWNsZVR5cGUrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JFRJVExFfSIsYS5mb3JtZGF0YS50aXRsZT9hLmZvcm1kYXRhLnRpdGxlOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JEZJUlNUTkFNRX0iLGEuZm9ybWRhdGEuZmlyc3ROYW1lKTtjPWMucmVwbGFjZSgieyRMQVNUTkFNRX0iLGEuZm9ybWRhdGEubGFzdE5hbWUpO2M9Yy5yZXBsYWNlKCJ7JEVNQUlMfSIsYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MpO2M9Yy5yZXBsYWNlKCJ7JFBIT05FTlVNQkVSfSIsYS5mb3JtZGF0YS5waG9uZU51bWJlcik7Yz1jLnJlcGxhY2UoInskQklSVEhEQVl9IiwKYS5mb3JtZGF0YS5iaXJ0aGRhdGVEYXkrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlTW9udGgrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlWWVhcik7Yz1jLnJlcGxhY2UoInskQlVER0VUfSIsYS5mb3JtZGF0YS5idWRnZXQ\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuYnVkZ2V0KyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UTFlEUklWSU5HfSIsYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nPyQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLmN1cnJlbnRseURyaXZpbmcrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRFU1RJTUFURURDUkVESVRSQVRJTkd9IixhLmZvcm1kYXRhLmNyZWRpdFJhdGluZz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5jcmVkaXRSYXRpbmcrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpOwpjPWMucmVwbGFjZSgieyRJTlRFUkVTVEVERE9XTk9QVElPTn0iLGEuZm9ybWRhdGEuZG93bk9wdGlvbnM\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuZG93bk9wdGlvbnMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRBRERSRVNTfSIsYS5mb3JtZGF0YS5hZGRyZXNzKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UUkVTSURFTkNFVFlQRX0iLCQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLnJlbnRPck93bisnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIikpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRPQ0NVUEFUSU9OTEVOR1RIfSIsYS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX0FERFJFU1NfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX01PTlRIUyIpLnZhbCgpKTsKdmFyIGY9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKTtjPUUmJiJRQyI9PWY\/Yy5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZUkVOVH0iLCIkIithLmZvcm1kYXRhLm1vbnRobHlQYXltZW50KyIgLS0gRGlzYnVyc2VtZW50OiAkIithLmZvcm1kYXRhLm1vbnRobHlEaXNidXJzZW1lbnQpOmMucmVwbGFjZSgieyRDVVJSRU5UTU9OVEhMWVJFTlR9IiwiJCIrYS5mb3JtZGF0YS5tb250aGx5UGF5bWVudCk7Yz1jLnJlcGxhY2UoInskQ1VSUkVOVE9DQ1VQQVRJT059IixlKTtjPWMucmVwbGFjZSgieyRXT1JLSU5HV0hJTEVJTlNDSE9PTH0iLCIiIT1hLmZvcm1kYXRhLndvcmtpbmdXaGlsZUluU2Nob29sPyQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLndvcmtpbmdXaGlsZUluU2Nob29sKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDVVJSRU5USU5DT01FU09VUkNFfSIsIiIhPWEuZm9ybWRhdGEub3RoZXJFbXBsb3ltZW50U3RhdHVzPwokKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5vdGhlckVtcGxveW1lbnRTdGF0dXMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRNT05UTFlJTkNPTUV9IiwiJCIrYS5mb3JtZGF0YS5tb250aGx5SW5jb21lKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UTU9OVEhMWUlOQ09NRUxFTkdUSH0iLGEuZm9ybWRhdGEubW9udGhseUluY29tZV95ZWFycysiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfbW9udGhzKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX01PTlRIUyIpLnZhbCgpKTsiIiE9YS5mb3JtZGF0YS5hZGRyZXNzMj8oYz1jLnJlcGxhY2UoInskUFJFVklPVVNBRERSRVNTfSIsYS5mb3JtZGF0YS5hZGRyZXNzMiksYz1jLnJlcGxhY2UoInskUFJFVklPVVNPQ0NVUEFUSU9OTEVOR1RIfSIsCmEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX01PTlRIUyIpLnZhbCgpKSxjPWMucmVwbGFjZSgiIyNQUkVWSU9VU0FERFJFU1NJTkZPU1RBUlQjIyIsIiIpLGM9Yy5yZXBsYWNlKCIjI1BSRVZJT1VTQUREUkVTU0lORk9FTkQjIyIsIiIpKTpjPWMucmVwbGFjZSgvIyNQUkVWSU9VU0FERFJFU1NJTkZPU1RBUlQjI1tcc1xTXSojI1BSRVZJT1VTQUREUkVTU0lORk9FTkQjIy8sIiIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRNQUtFfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2U\/YS5mb3JtZGF0YS5jdXJyZW50TWFrZToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UTU9ERUx9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw\/YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw6CiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENVUlJFTlRZRUFSfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXI\/YS5mb3JtZGF0YS5jdXJyZW50WWVhcjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDVVJSRU5UU1RPQ0tOVU1CRVJ9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI\/YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskY3JlZGl0QnVyZWF1Q3JlZGl0fSIsIiIhPWEuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0P2EuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0OiJOTyIpO2M9Yy5yZXBsYWNlKCJ7JFNJTn0iLCIiIT1hLmZvcm1kYXRhLlNJTj9hLmZvcm1kYXRhLlNJTjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRBRERFRElORk99IiwiIiE9YS5mb3JtZGF0YS5hZGRlZEluZm8\/YS5mb3JtZGF0YS5hZGRlZEluZm86InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskRU1QTE9ZRVJ9IiwKIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lP2EuZm9ybWRhdGEuZW1wbG95ZXJOYW1lOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JEVNUExPWUVSUEhPTkV9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llclBob25lP2EuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRFTVBMT1lFTUVOVFNUQVRVU1RJTUV9IixhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX01PTlRIUyIpLnZhbCgpKTtjPWMucmVwbGFjZSgieyRFTVBMT1lFUkFERFJFU1N9IiwiIiE9YS5mb3JtZGF0YS5hZGRyZXNzRW1wbG95ZXI\/YS5mb3JtZGF0YS5hZGRyZXNzRW1wbG95ZXI6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskQ09OU0VOVEFDQ09VTlRNT05JVE9SSU5HfSIsCiIiIT1hLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZz8xPT1hLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZz8iWUVTIjoiTk8iOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENPTlNFTlRDUkVESVRBU1NFU1NNRU5UfSIsIiIhPWEuZm9ybWRhdGEuY29uc2VudENyZWRpdEFzc2Vzc21lbnQ\/MT09YS5mb3JtZGF0YS5jb25zZW50Q3JlZGl0QXNzZXNzbWVudD8iWUVTIjoiTk8iOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENPTlNFTlRQSVBFREF9IiwiIiE9YS5mb3JtZGF0YS5jb25zZW50UGlwZWRhPzE9PWEuZm9ybWRhdGEuY29uc2VudFBpcGVkYT8iWUVTIjoiTk8iOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JENPTlNFTlRDQVNMfSIsIiIhPWEuZm9ybWRhdGEuY29uc2VudENhc2w\/MT09YS5mb3JtZGF0YS5jb25zZW50Q2FzbD8iWUVTIjoiTk8iOiJyZW1vdmVlbXB0eSIpOyIiIT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZTI\/KGU9CiQoJ1t2YWx1ZT0iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIl0nKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCIiIT1hLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8yJiYoZSs9IiAoIithLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8yKyIpIiksYz1jLnJlcGxhY2UoInskUFJFVklPVVNPQ0NVUEFUSU9OfSIsZSksYz1jLnJlcGxhY2UoInskUFJFVklPVVNFTVBMT1lFUn0iLCIiIT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZTI\/YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyOiJyZW1vdmVlbXB0eSIpLGM9Yy5yZXBsYWNlKCJ7JFBSRVZJT1VTRU1QTE9ZRVJQSE9ORX0iLCIiIT1hLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUyP2EuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZTI6InJlbW92ZWVtcHR5IiksYz1jLnJlcGxhY2UoInskUFJFVklPVVNFTVBMT1lFTUVOVFNUQVRVU1RJTUV9IixhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyMisiICIrCiQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgyKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX01PTlRIUyIpLnZhbCgpKSxjPWMucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSQUREUkVTU30iLCIiIT1hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcjI\/YS5mb3JtZGF0YS5hZGRyZXNzRW1wbG95ZXIyOiJyZW1vdmVlbXB0eSIpLGM9Yy5yZXBsYWNlKCIjI1BSRVZJT1VTT0NDVVBBVElPTlNUQVJUIyMiLCIiKSxjPWMucmVwbGFjZSgiIyNQUkVWSU9VU09DQ1VQQVRJT05FTkQjIyIsIiIpKTpjPWMucmVwbGFjZSgvIyNQUkVWSU9VU09DQ1VQQVRJT05TVEFSVCMjW1xzXFNdKiMjUFJFVklPVVNPQ0NVUEFUSU9ORU5EIyMvLCIiKTtjPWMucmVwbGFjZSgieyRQQVlNRU5UVFlQRX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRUeXBlP2EuZm9ybWRhdGEucGF5bWVudFR5cGU6CiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JFBBWU1FTlRURVJNfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFRlcm0\/YS5mb3JtZGF0YS5wYXltZW50VGVybToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRQQVlNRU5URE9XTlBBWU1FTlR9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ\/YS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ6InJlbW92ZWVtcHR5Iik7Yz1jLnJlcGxhY2UoInskUEFZTUVOVElOVEVSVkFMfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudEludGVydmFsP2EuZm9ybWRhdGEucGF5bWVudEludGVydmFsOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JFBBWU1FTlRLTUFMTE9XQU5DRX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT9hLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRQQVlNRU5UVkFMVUV9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50VmFsdWU\/CmEuZm9ybWRhdGEucGF5bWVudFZhbHVlOiJyZW1vdmVlbXB0eSIpO2M9Yy5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFJhdGU\/YS5mb3JtZGF0YS5wYXltZW50UmF0ZToicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyROT1BBWU1FTlR9IixhLmZvcm1kYXRhLm5vUGF5bWVudD8iIjoicmVtb3ZlZW1wdHkiKTtjPWMucmVwbGFjZSgieyRDUkVESVRERUNJU0lPTn0iLGEuY3JlZGl0RGVjaXNpb25IVE1MP2EuY3JlZGl0RGVjaXNpb25IVE1MOiJyZW1vdmVlbXB0eSIpOyIiIT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT8oYz1jLnJlcGxhY2UoInskVFJBREVNQUtFfSIsYS5mb3JtZGF0YS50cmFkZUluTWFrZSksYz1jLnJlcGxhY2UoInskVFJBREVNT0RFTH0iLGEuZm9ybWRhdGEudHJhZGVJbk1vZGVsKSxjPWMucmVwbGFjZSgieyRUUkFERVlFQVJ9IixhLmZvcm1kYXRhLnRyYWRlSW5UcmltKSxjPWMucmVwbGFjZSgieyRUUkFERVRSSU19IixhLmZvcm1kYXRhLnRyYWRlSW5ZZWFyKSwKYz1jLnJlcGxhY2UoInskVFJBREVWQUxVRX0iLGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSxjPWMucmVwbGFjZSgiIyNUUkFERUlOSU5GT1NUQVJUIyMiLCIiKSxjPWMucmVwbGFjZSgiIyNUUkFERUlOSU5GT0VORCMjIiwiIikpOmM9Yy5yZXBsYWNlKC8jI1RSQURFSU5JTkZPU1RBUlQjI1tcc1xTXSojI1RSQURFSU5JTkZPRU5EIyMvLCIiKTtjPWsuZW1haWxCb2R5Rm9yTXVsdGlEZWFsZXIoYyk7Ym9keUxvd2VyPWMudG9Mb3dlckNhc2UoKTtmb3IoZT0wOy0xPGJvZHlMb3dlci5pbmRleE9mKCJyZW1vdmVlbXB0eSIpOyl7cG9zPWJvZHlMb3dlci5pbmRleE9mKCJyZW1vdmVlbXB0eSIpO2lmKC0xPT1wb3MpYnJlYWs7cnBsRW5kPWJvZHlMb3dlci5pbmRleE9mKCI8YnI+Iixwb3MpO3JwbFN0YXJ0PWJvZHlMb3dlci5sYXN0SW5kZXhPZigiPGJyPiIscG9zKTtpZigtMT09cnBsRW5kfHwtMT09cnBsU3RhcnQpYnJlYWs7cnBsU3RyaW5nPWMuc3Vic3RyaW5nKHJwbFN0YXJ0LHJwbEVuZCk7CmM9Yy5yZXBsYWNlKHJwbFN0cmluZywiIik7Ym9keUxvd2VyPWMudG9Mb3dlckNhc2UoKTtlKys7aWYoNTA8ZSlicmVha31lbWFpbEhhbmRsZXIuc3ViamVjdD1kO2VtYWlsSGFuZGxlci5ib2R5PWM7ay5zZXRFbWFpbEhhbmRsZXJTZW5kKCk7ZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI7IjEiPT11JiYoZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSIpOyIxIj09eCYmKGVtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3RJbnN0YW50Iik7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9IkZJTkFOQ0UiO2VtYWlsSGFuZGxlci5pc21vYmlsZXNpdGU9MT09JCgiI2lzbW9iaWxlIik\/IllFUyI6Ik5PIjtlbWFpbEhhbmRsZXIudXNlckVtYWlsPWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWEuZm9ybWRhdGEuZmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9CmEuZm9ybWRhdGEubGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1hLmZvcm1kYXRhLnBob25lTnVtYmVyO2VtYWlsSGFuZGxlci5jb250YWN0QWRkcmVzcz1hLmZvcm1kYXRhLmFkZHJlc3M7ZW1haWxIYW5kbGVyLmNvbnRhY3RCaXJ0aD1hLmZvcm1kYXRhLmJpcnRoZGF0ZURheSsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVZZWFyO2VtYWlsSGFuZGxlci5zYWxlc0RlcHQ9YS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0O2VtYWlsSGFuZGxlci5tYWtlPWEuZm9ybWRhdGEuY3VycmVudE1ha2U7ZW1haWxIYW5kbGVyLm1vZGVsPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsO2VtYWlsSGFuZGxlci55ZWFyPWEuZm9ybWRhdGEuY3VycmVudFllYXI7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50QnlTdG9jaz0hMTtlbWFpbEhhbmRsZXIuc2tpcEdlb0xvYz0KITA7ZW1haWxIYW5kbGVyLnBhcnRpYWw9ITE7ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKGcpe2c\/ay5zZXRGaW5hbmNlRm9ybVN0YXR1c1RvU2VudCgpOmNvbnNvbGUubG9nKGcpfTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoITEpfX0sc2V0RmluYW5jZUZvcm1TdGF0dXNUb1NlbnQ6ZnVuY3Rpb24oKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvc2V0RmluYW5jZU11bHRpc3RlcERhdGFTdGF0dXNUb1NlbnQ\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTp7dXNlcklkOmsudXNlcklkKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7bGV0IGM9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiRmluYW5jZUFjdGlvbkJveCJ9fSk7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChjKTtpZigiU1VDQ0VTUyI9PWR8fG51bGw9PT1kKWEuc3RlcD0yMSxrLnVzZXJJZCgtMSksbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIiksCiQoZG9jdW1lbnQuYm9keSkudHJpZ2dlcigibXVsdGlGb3JtRmluYW5jZVN1Ym1pdCIpfX0pfSxyZXNldEZvcm06ZnVuY3Rpb24oKXthLmZvcm1kYXRhPXt2ZWhpY2xlVHlwZToiIixidWRnZXQ6IiIsY3VycmVudGx5RHJpdmluZzoiIixlbWFpbEFkZHJlc3M6IiIsY3JlZGl0UmF0aW5nOiIiLGRvd25PcHRpb25zOiIiLGJpcnRoZGF0ZVllYXI6IiIsYmlydGhkYXRlTW9udGg6IiIsYmlydGhkYXRlRGF5OiIiLGFkZHJlc3M6IiIsc3BsaXRBZGRyZXNzOltdLGFkZHJlc3NfeWVhcnM6MCxhZGRyZXNzX21vbnRoczowLGFkZHJlc3MyOiIiLHNwbGl0QWRkcmVzczI6W10sYWRkcmVzczJfeWVhcnM6MCxhZGRyZXNzMl9tb250aHM6MCxhZGRyZXNzRW1wbG95ZXI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXI6W10scmVudE9yT3duOiIiLG1vbnRobHlQYXltZW50OjAsbW9udGhseURpc2J1cnNlbWVudDowLGVtcGxveW1lbnRTdGF0dXM6IiIsZW1wbG95bWVudEFkZGVkSW5mbzoiIixlbXBsb3llck5hbWU6IiIsCmVtcGxveWVyUGhvbmU6IiIsZW1wbG95bWVudFN0YXR1c1llYXI6MCxlbXBsb3ltZW50U3RhdHVzTW9udGg6MCxlbXBsb3ltZW50QWRkZWRJbmZvMjoiIixlbXBsb3llck5hbWUyOiIiLGVtcGxveWVyUGhvbmUyOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyMjowLGVtcGxveW1lbnRTdGF0dXNNb250aDI6MCxhZGRyZXNzRW1wbG95ZXIyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyMjpbXSx3b3JraW5nV2hpbGVJblNjaG9vbDoiIixvdGhlckVtcGxveW1lbnRTdGF0dXM6IiIsbW9udGhseUluY29tZTowLG1vbnRobHlJbmNvbWVfeWVhcnM6MCxtb250aGx5SW5jb21lX21vbnRoczowLHRpdGxlOiIiLGZpcnN0TmFtZToiIixsYXN0TmFtZToiIixwaG9uZU51bWJlcjoiIixjdXJyZW50TWFrZToiIixjdXJyZW50TW9kZWw6IiIsY3VycmVudE1vZGVsVGV4dDoiIixjdXJyZW50WWVhcjoiIixjdXJyZW50U3RvY2tOdW1iZXI6IiIsY3VycmVudE1pbGVhZ2U6MTAsY3VycmVudFRyaW06IiIsY3VycmVudFN0eWxlaWQ6IiIsCmN1cnJlbnRDYXJJZDoiIixwYXltZW50VHlwZToiIixwYXltZW50VHlwZVJlYWw6IiIscGF5bWVudFRlcm06IiIscGF5bWVudFJhdGVUeXBlOiIiLHBheW1lbnRWYWx1ZToiIixiYXNlcGF5bWVudDoiIixwYXltZW50VG90YWxJbmNlbnRpdmU6MCxwYXltZW50VG90YWxGZWU6MCxwYXltZW50R1NUOjAscGF5bWVudEhTVDowLHBheW1lbnRQU1Q6MCxwYXltZW50RG93blBheW1lbnQ6MCxwYXltZW50S21BbGxvd2FuY2U6MCxwYXltZW50SW50ZXJ2YWw6IiIscGF5bWVudFJhdGU6IiIscGF5bWVudFJlc2lkdWFsVmFsdWU6MCxub1BheW1lbnQ6ITEsbXVsdGlfZGVhbGVyX3NlbmRUbzoiIixjcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIixTSU46IiIsYWRkZWRJbmZvOiIiLHZlaGljbGVTYWxlc0RlcHQ6Im90aGVyIix2ZWhpY2xlUHJpY2U6IiIsdmVoaWNsZVRyYW5zbWlzc2lvbjoiIix2ZWhpY2xlVHJpbToiIix2ZWhpY2xlQ29sb3I6IiIsaW5pdGlhbFRpdGxlU2hvdzohMCxtdWx0aUZyb21NaW5pOiExLAp0cmFkZUluTWFrZToiIix0cmFkZUluTW9kZWw6IiIsdHJhZGVJblllYXI6IiIsdHJhZGVJblRyaW06IiIsdHJhZGVJblZhbHVlOiIifX0sY3JlZGl0QXBwU3VtaXNzaW9uOmZ1bmN0aW9uKCl7dmFyIGQ9YS5mb3JtZGF0YSxjPSQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpO2Quc2l0ZUlkPWM7ZC5jdXJyZW50RGVwdD1hLmN1cnJlbnREZXB0OyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLnNob3coKTthLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0iWUVTIjthLnN0ZXA9MjE7JC5hamF4KHt1cmw6Ii8iK3crYC9hamF4L3N1Ym1pdENyZWRpdEFwcGxpY2F0aW9uP3dzd2lkdGg9JHtlbmNvZGVVUklDb21wb25lbnQoIjAiKX1gLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOmQsc3VjY2VzczpmdW5jdGlvbihlKXtsZXQgZixnLGw9ZS5hcHBsaWNhdGlvbklkO2lmKGUuZXJyb3IpZj0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1ZXRVJST1JfTVNHX1VTRVIiLApiKS52YWwoKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX0xFQUQiLGIpLnZhbCgpLGEuY3JlZGl0RGVjaXNpb25IVE1MPWc7ZWxzZSBpZihsKXtpZihmPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfQVBQUk9WQUxfTVNHIixiKS52YWwoKSsiPGJyPjxicj4iK2wsZj1mLnJlcGxhY2UoIiMjVVNFUkVNQUlMIyMiLGQuZW1haWxBZGRyZXNzKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfU1VDQ0VTU19NU0dfTEVBRCIsYikudmFsKCkrIjxzdHJvbmc+IitsKyI8L3N0cm9uZz4iLGEuY3JlZGl0RGVjaXNpb25IVE1MPWcsYS5jcmVkaXRBcHBsaWNhdGlvbklkPWwsZS5hcHBsaWNhdGlvblN0YXR1cyYmZS5hcHBsaWNhdGlvblN0YXR1cy5zdGF0dXMpc3dpdGNoKGUuYXBwbGljYXRpb25TdGF0dXMuc3RhdHVzKXtjYXNlICJBcHByb3ZlZCI6JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpO2JyZWFrO2Nhc2UgIlBlbmRpbmciOiQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfUEVORElOR19NU0ciLApiKS52YWwoKTticmVhaztkZWZhdWx0OiQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfTk9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpfX1lbHNlIGY9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9WV0VSUk9SX01TR19VU0VSIixiKS52YWwoKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX0xFQUQiLGIpLnZhbCgpLGEuY3JlZGl0RGVjaXNpb25IVE1MPWc7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCk7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLmhpZGUoKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmh0bWwoZik7JChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5zaG93KCk7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9fSl9LHJvdXRlT25lQ2FsbDpmdW5jdGlvbigpe3ZhciBkPWEuZm9ybWRhdGEsYz0kKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKTsKZC5zaXRlSWQ9YztkLmN1cnJlbnREZXB0PWEuY3VycmVudERlcHQ7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuc2hvdygpO2Euc3RlcD0yMTsoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmLGcpPT4kanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtlPWUrIj9jYj0iKzIwMzgzNDc0OTMqTWF0aC5yYW5kb20oKTtsZXQgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtsLnNldEF0dHJpYnV0ZSgic3JjIixlKTtsLnNldEF0dHJpYnV0ZSgiYXN5bmMiLCJmYWxzZSIpO2xldCBwPWRvY3VtZW50LmhlYWQ7cC5pbnNlcnRCZWZvcmUobCxwLmZpcnN0RWxlbWVudENoaWxkKTtsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57ZigpfSwhMSl9KSl9KSgiL2pzL3JvdXRlMUhhbmRsZXIuanMiKS50aGVuKCgpPT57bGV0IGU9bmV3IHJvdXRlMUV2ZW50SGFuZGxlcighMSk7ZS5vbigiY29ubmVjdGVkIiwoZiwKZyk9Pntjb25zb2xlLmxvZygiQ29ubmVjdGVkIil9KTtlLm9uKCJyZWFkeSIsKGYsZyk9Pntjb25zb2xlLmxvZygiUmVhZHkiKTtlLnJlcXVlc3RDcmVkaXRDaGVjayhkKX0pO2Uub24oImVycm9yIiwoZixnKT0+e2NvbnNvbGUubG9nKCJFcnJvcjogJW8iLGYpO2UuY2xvc2UoKTtrLnNldENyZWRpdERlY2lzaW9uKGYubWVzc2FnZSk7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9KTtlLm9uKCJjcmVkaXRDaGVja0NvbXBsZXRlIiwoZixnKT0+e2NvbnNvbGUubG9nKCJDcmVkaXQgQ2hlY2sgQ29tcGxldGU6ICVvIixmKTtlLmNsb3NlKCk7ay5zZXRDcmVkaXREZWNpc2lvbihmKTskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5oaWRlKCk7ay5zZW5kRW1haWwoKX0pO2Uub24oIndhaXRpbmdPblJvdXRlMSIsKGYsZyk9Pntjb25zb2xlLmxvZygiV2FpdGluZyBvbiBSb3V0ZSAxOiAlbyIsZil9KX0pfSxzZXRDcmVkaXREZWNpc2lvbjpmdW5jdGlvbihkKXt2YXIgYywKZT0iIjtpZihkLmpzb24pe3ZhciBmPSJhcHByb3ZlZCI9PWQuanNvbi5zdGF0dXM\/IkFwcHJvdmVkIjoiRGVuaWVkIjt2YXIgZz1udWxsIT0oYz1kLmpzb24uaWQpP2M6IiI7dmFyIGw7Yz1udWxsIT0obD1kLmpzb24ubGVuZGVyKT9sOiIiO2QuanNvbi5lcnJvcm1zZyYmIk5vIHBheW1lbnQiPT1kLmpzb24uZXJyb3Jtc2cmJihmPWQuanNvbi5lcnJvcm1zZyxjPWc9IiIpO2U9ZC5qc29uLmVycm9ybXNnfWVsc2UgaWYoZC5zdGF0ZSl7Zj0iRGVuaWVkIjt2YXIgcDtnPW51bGwhPShwPWQuc3RhdGUuaWQpP3A6IiI7Yz0iIjtkLmVycm9ybXNnJiYiTm8gcGF5bWVudCI9PWQuZXJyb3Jtc2cmJihmPWQuZXJyb3Jtc2csYz1nPSIiKTtlPWQuZXJyb3Jtc2c\/ZC5lcnJvcm1zZzpkLmVycm9yfWVsc2UgZj0iRGVuaWVkIixjPWc9IiI7IkFwcHJvdmVkIiE9Zj8obD0kKCIjRklOQU5DRV9GT1JNX1JPVVRFT05FX05PQVBQUk9WQUxfTVNHIikudmFsKCksIk5vIHBheW1lbnQiPT1mPyhmPSJFTkdMSVNIIj09CiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT9mOiJQYXMgZGUgcGFpZW1lbnQiLGw9bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsIiIpLnJlcGxhY2UoIiRFcnJvckNvZGUiLGYpKTpsPWc\/bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsZykucmVwbGFjZSgiJEVycm9yQ29kZSIsZSk6bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsIiIpLnJlcGxhY2UoIiRFcnJvckNvZGUiLGUpKToobD0kKCIjRklOQU5DRV9GT1JNX1JPVVRFT05FX0FQUFJPVkFMX01TRyIpLnZhbCgpLGw9bC5yZXBsYWNlKCIkTWFrZSIsYS5mb3JtZGF0YS5jdXJyZW50TWFrZSksbD1sLnJlcGxhY2UoIiRNb2RlbCIsYS5mb3JtZGF0YS5jdXJyZW50TW9kZWxUZXh0KSxsPWwucmVwbGFjZSgiJFllYXIiLGEuZm9ybWRhdGEuY3VycmVudFllYXIpLGw9bC5yZXBsYWNlKCIkVmVyc2lvbiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbSksbD1sLnJlcGxhY2UoIiRMZW5kZXIiLGMpLGw9bC5yZXBsYWNlKCIkUmVmZXJlbmNlSUQiLApnKSxmPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCk6IiIscD0iIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKTokKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpLGY9ZiE9cCYmIiIhPWY\/ZjpwLGw9bC5yZXBsYWNlKCIkRGVhbGVyTmFtZSIsZiksbD0iIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI\/bC5yZXBsYWNlKCIkU3RvY2siLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyKTpsLnJlcGxhY2UoIihTdG9jayAkU3RvY2spIiwiIiksZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8KIkFwcHJvdmVkIjoiQXBwcm91dsOpIik7YyYmKGYrPSIgIitjKTtnJiYoZis9IiAoIitnKyIpIik7ZSYmKGYrPSJcbiIrZSk7Zz1bXTtkLnJvdXRlMWlkJiZnLnB1c2goZC5yb3V0ZTFpZCk7ZC5zdGF0ZSYmZC5zdGF0ZS5pZCYmZy5wdXNoKGQuc3RhdGUuaWQpO2lmKGQuaGlzdG9yeSlmb3IoZT0wO2U8ZC5oaXN0b3J5Lmxlbmd0aDtlKyspZC5oaXN0b3J5W2VdLmlkJiZnLnB1c2goZC5oaXN0b3J5W2VdLmlkKTtlbWFpbEhhbmRsZXIub25BZnRlckxlYWRDcmVhdGVkPXthY3Rpb246IlJPVVRFT05FIixjb252ZXJzYXRpb25JZHM6Z307YS5jcmVkaXREZWNpc2lvbkhUTUw9ZjskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UaXRsZSIpLmhpZGUoKTskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UZXh0IikuaGlkZSgpOyQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikudGV4dChsKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLnNob3coKX0sc2V0Q3VycmVudE1ha2VNb2RlbFllYXI6ZnVuY3Rpb24oKXtpZigiMSI9PQokKCIjRklOQU5DRV9NVUxUSVNURVBfaXNJbnN0YW50IixiKS52YWwoKSl7YS5zdGVwPTA7YS5uZXh0U3RlcD1MO2EuZm9ybWRhdGEubm9QYXltZW50PSExO2EuY2FsY3VsYXRvckZ1bmN0aW9ucz1udWxsO2EuZm9ybWRhdGEucGF5bWVudFR5cGU9IiI7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9IiI7YS5mb3JtZGF0YS5wYXltZW50VGVybT0iIjthLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0iIjthLmZvcm1kYXRhLnBheW1lbnRSZXNpZHVhbFZhbHVlPSIiO2EuZm9ybWRhdGEucGF5bWVudFZhbHVlPSIiO2EuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT0iIjthLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPSIiO2EuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PVtdO2EuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PVtdO2EuZm9ybWRhdGEuYmFzZXBheW1lbnQ9IiI7YS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9MDthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT0KMDthLmZvcm1kYXRhLnBheW1lbnRHU1Q9MDthLmZvcm1kYXRhLnBheW1lbnRIU1Q9MDthLmZvcm1kYXRhLnBheW1lbnRQU1Q9MDthLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD0wO2EuZm9ybWRhdGEudHJhZGVJblZhbHVlPSIiO2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlPTA7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9IiI7YS5mb3JtZGF0YS5wYXltZW50UmF0ZT0iIjt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IiKTtkLnJlcGxhY2VXaXRoKGQuY2xvbmVOb2RlKCEwKSl9YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLmxlbmd0aD8kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1ha2U7YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw9JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikubGVuZ3RoPyQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgpOgphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDthLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikubGVuZ3RoJiYwIT0kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgpPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50WWVhcjthLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj0kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS5sZW5ndGg\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI7dmFyIGM9JCgiI3RvcGNhcmlkTXVsdGlzdGVwRm9ybSIpLnZhbCgpOzA9PXBhcnNlSW50KGMpJiYoYz0iIik7aWYoIiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXJ8fCIiIT1jKWlmKGMpJC5nZXRKU09OKCIvanMvanNvbi8iKwpjKyIuanNvbiIsZnVuY3Rpb24oZil7YS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJ1c2VkIjthLmN1cnJlbnREZXB0PSJVU0VEIjtpZihmLmlzbmV3fHxmLmRlbW8mJiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9ERU1PQVNORVciXScsYikudmFsKCkpYS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJuZXciLGEuY3VycmVudERlcHQ9Ik5FV0lOViIsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD1mLnN0eWxlSWQ7MDxmLm1ha2VjZXJ0JiYoYS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJjcG8iKTt2YXIgZz0oZi50cmFuc21pc3Npb25FTisiIikubWF0Y2goLyhhdXRvbWF0aWN8bWFudWFsKS9pKTtnPWc\/Z1swXToiIjthLmZvcm1kYXRhLnZlaGljbGVDb2xvcj1mLmNvbG9yRU47YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9Zi5vcmlnaW5hbFByaWNlO2EuZm9ybWRhdGEudmVoaWNsZVRhbnNtaXNzaW9uPWc7YS5mb3JtZGF0YS52ZWhpY2xlVHJpbT1mLnZlcnNpb247YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0KZi52ZXJzaW9uO2EuZm9ybWRhdGEuY3VycmVudENhcklkPWM7YS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT1mLm1pbGVzO3N3aXRjaChmLmJvZHlUeXBlSUQpe2Nhc2UgIlNVViI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfU1VWIjticmVhaztjYXNlICJUUlVDSyI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfVFJVQ0siO2JyZWFrO2Nhc2UgIk1JTklWQU4iOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX01JTklWQU4iO2JyZWFrO2RlZmF1bHQ6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfQ0FSIn0wPT1hLnN0ZXAmJmEubmV4dCghMCk7ay5wb3B1cExhdW5jaGVkVHJhY2soKX0pO2Vsc2V7YS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJuZXciO2Q9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii1lbiI6Ii1mciI7dXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsCiJfIikucmVwbGFjZSgiICIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50TW9kZWwucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2QrIi5qc29uIjtpZigiQk1XIj09YS5mb3JtZGF0YS5jdXJyZW50TWFrZXx8Ik1lcmNlZGVzLUJlbnoiPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlKXt2YXIgZT0kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS5sZW5ndGgmJiQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLnZhbCgpLmxlbmd0aD8kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDt1cmw9Ii9qc29uLyIrYS5mb3JtZGF0YS5jdXJyZW50TWFrZS5yZXBsYWNlKCItIiwiXyIpLnJlcGxhY2UoIiAiLCJfIikrIi0iK2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2QrIi5qc29uIn0wPD1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbC5pbmRleE9mKCJoeWJyaWQiKSYmCihlPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIl0nKS52YWwoKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsLHVybD0iL2pzb24vIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlLnJlcGxhY2UoIi0iLCJfIikrIi0iK2UucmVwbGFjZSgiLSIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcitkKyIuanNvbiIpOyQoIi5wYXltZW50Q2FsY3VsYXRvclZEUCIpLmxlbmd0aD9hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIi5wYXltZW50Q2FsY3VsYXRvclZEUCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpOiQoIi5wYXltZW50Q2FsY0J0biIpLmxlbmd0aD9hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIi5wYXltZW50Q2FsY0J0biIpLmF0dHIoImRhdGEtc3R5bGVpZCIpOiQoIiNhY3RpdmVTdHlsZUlEIikubGVuZ3RoJiYKKGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoKSk7JC5nZXRKU09OKHVybCkuZG9uZShmdW5jdGlvbihmKXtpZihmKXtzd2l0Y2goZi5zZWN0aW9uKXtjYXNlICJzdXYiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX1NVViI7YnJlYWs7Y2FzZSAidHJ1Y2tzIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9UUlVDSyI7YnJlYWs7Y2FzZSAibWluaXZhbnMiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX01JTklWQU4iO2JyZWFrO2RlZmF1bHQ6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfQ0FSIn0iIiE9YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmZi5zdHlsZXMuZm9yRWFjaChmdW5jdGlvbihnKXtnLmlkPT1hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkJiYoYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIiE9Zy50cmltP2cudHJpbTpnLkNGU3R5bGVOYW1lLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPQpnLm1zcnBBbGxJbil9KX19KS5hbHdheXMoZnVuY3Rpb24oKXswPT1hLnN0ZXAmJihhLm5leHQoITApLGsucG9wdXBMYXVuY2hlZFRyYWNrKCkpfSl9ZWxzZSIiIT1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmMjEhPWEuc3RlcCYmIjEiIT0kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLGIpLnZhbCgpJiZhLnB1c2hQYXJ0aWFsJiZrLnB1c2hEYXRhVG9TZXJ2ZXIoKSwtMT09YS5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLnN0ZXApJiZhLm5leHQoITApLGsucG9wdXBMYXVuY2hlZFRyYWNrKCl9LGdldENsaWVudFN0b3JhZ2VEYXRhOmZ1bmN0aW9uKGQpe2xldCBjPSIiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJihjPWNsaWVudFN0b3JhZ2UuZ2V0KGQpKTtyZXR1cm4gY30sc2V0Q2xpZW50U3RvcmFnZURhdGE6ZnVuY3Rpb24oZCxjKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiZjbGllbnRTdG9yYWdlLnNldChkLApjKX0sc2V0Q2xpZW50U3RvcmFnZURhdGFWYWx1ZXM6ZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiYoIiIhPT1hLmZvcm1kYXRhLmZpcnN0TmFtZSYmay5zZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIixhLmZvcm1kYXRhLmZpcnN0TmFtZSksIiIhPT1hLmZvcm1kYXRhLmxhc3ROYW1lJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIsYS5mb3JtZGF0YS5sYXN0TmFtZSksIiIhPT1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmay5zZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiLGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzKSwiIiE9PWEuZm9ybWRhdGEucGhvbmVOdW1iZXImJmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIixhLmZvcm1kYXRhLnBob25lTnVtYmVyKSl9LHNldERlcGFydG1lbnQ6ZnVuY3Rpb24oKXt2YXIgZD1lbWFpbEhhbmRsZXIuZ2V0RGVwKCk7aWYoIk5FVyIhPWR8fCJORVdJTlYiIT1kfHwiVVNFRCIhPQpkKWQ9Ik5FVyI7YS5jdXJyZW50RGVwdD1kOyJORVciIT1kfHwiY2FyZGV0YWlsLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkmJiJ1c2VkY2Fycy5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpfHwoYS5jdXJyZW50RGVwdD0iTkVXSU5WIil9LHNldFRyYWRlSW46ZnVuY3Rpb24oKXthLmZvcm1kYXRhLnRyYWRlSW5NYWtlPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5NYWtlIl0nKS52YWwoKTthLmZvcm1kYXRhLnRyYWRlSW5Nb2RlbD0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluTW9kZWwiXScpLnZhbCgpO2EuZm9ybWRhdGEudHJhZGVJblllYXI9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblllYXIiXScpLnZhbCgpO2EuZm9ybWRhdGEudHJhZGVJblRyaW09JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblRyaW0iXScpLnZhbCgpO2xldCBkPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5WYWx1ZSJdJykudmFsKCksCmM9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblZhbHVlIl0nKS5hdHRyKCJkYXRhLWN1cnJlbnQiKTtjJiYiIj09YS5mb3JtZGF0YS50cmFkZUluVmFsdWU\/YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9YzoiIj09YS5mb3JtZGF0YS50cmFkZUluVmFsdWUmJihhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1kKTsiIiE9YS5mb3JtZGF0YS50cmFkZUluVmFsdWUmJigkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLGIpLnZhbChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIixiKS5hdHRyKCJtYXgiLGQpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIsYikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5Jbml0aWFsIixiKS5oaWRlKCkpfSxnZXRDdXJyZW50QnVkZ2V0OmZ1bmN0aW9uKGQpe3JldHVybiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9NVUxUSVNURVBfSElHSF9CVURHRVRfQ0hFQ0siXScpLnZhbCgpPwo1MDA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfNTAwIjo2NzY8PWQmJjg1MD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzY3Nl9BTkRfODUwIjo4NTE8PWQmJjExMDA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl84NTFfQU5EXzExMDAiOjEzNTA8ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzEzNTEiOjUwMTw9ZCYmNjc1Pj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNTAxX0FORF82NzUiOiJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTEwMV9BTkRfMTM1MCI6IjEiPT0kKCdpbnB1dFtuYW1lPSJGSU5BTkNFX01VTFRJU1RFUF9WRVJZSElHSF9CVURHRVRfQ0hFQ0siXScpLnZhbCgpPzkwMD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl85MDAiOjExNTE8PWQmJjE0MDA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xMTUxX0FORF8xNDAwIjoxNDAxPD1kJiYxNjUwPj1kPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTQwMV9BTkRfMTY1MCI6CjE5MDA8ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzE5MDEiOjkwMTw9ZCYmMTE1MD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzkwMV9BTkRfMTE1MCI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xNjUxX0FORF8xOTAwIjozNTA+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfMzUwIjo2MDE8PWQmJjc1MD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzYwMV9BTkRfNzUwIjo3NTE8PWQmJjkwMD49ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzc1MV9BTkRfOTAwIjo5MDA8ZD8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzkwMSI6MzUxPD1kJiY0NzU+PWQ\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8zNTFfQU5EXzQ3NSI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl80NzZfQU5EXzYwMCJ9LHNldEVtYWlsSGFuZGxlclNlbmQ6ZnVuY3Rpb24oKXtpZigwPT1hLmZvcm1kYXRhLm11bHRpRnJvbU1pbml8fCJmYWxzZSI9PQphLmZvcm1kYXRhLm11bHRpRnJvbU1pbmkpZW1haWxIYW5kbGVyLnNlbmRUbz0kKCIjRklOQU5DRV9GT1JNX1NFTkRUT19FTUFJTCIsYikudmFsKCksZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD0kKCIjRklOQU5DRV9GT1JNX1NFTkRUT0FERl9FTUFJTCIsYikudmFsKCksZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9IiIhPSQoIiNGSU5BTkNFX0ZPUk1fREVBTEVSTkFNRSIsYikudmFsKCk\/JCgiI0ZJTkFOQ0VfRk9STV9ERUFMRVJOQU1FIixiKS52YWwoKTplbWFpbEhhbmRsZXIuZGVhbGVyTmFtZTtlbWFpbEhhbmRsZXIudmVoaWNsZVR5cGU9YS5mb3JtZGF0YS52ZWhpY2xlVHlwZTtlbWFpbEhhbmRsZXIuY2FyaWQ9YS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ7aWYoLTE9PT1bLTEsIi0xIiwiIl0uaW5kZXhPZihhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG8pKXt2YXIgZD0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0IikuZmluZCgiOnNlbGVjdGVkIik7CmVtYWlsSGFuZGxlci5zZW5kVG89ZC5kYXRhKCJlbWFpbGZpbmFuY2UiKXx8ZC5kYXRhKCJlbWFpbCIpO2VtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUbz1kLmRhdGEoImVtYWlsZmluYW5jZSIpfHxkLmRhdGEoImVtYWlsIik7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1kLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfHxkLmRhdGEoImVtYWlsYWRmIik7ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PWQuZGF0YSgiZW1haWxhZGZmaW5hbmNlIil8fGQuZGF0YSgiZW1haWxhZGYiKTtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT1kLnRleHQoKTtlbWFpbEhhbmRsZXIuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITB9fSxpbml0U2VsZWN0TXVsdGlEZWFsZXI6ZnVuY3Rpb24oKXt2YXIgZD0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIik7aWYoMD09PWQubGVuZ3RoKWEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0tMSxhLm5leHQoITApO2Vsc2V7dmFyIGM9CiQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS5sZW5ndGg\/JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIpLnZhbCgpOiJsb2NhdGlvbiI7KDA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJiJDQVJERVRBSUxTIj09PSQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCIiIT0kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoKSYmIjEiPT0kKCIjRklOQU5DRV9GT1JNX0FETUlOX1NIT1dQSFlTSUNBTEFERFJFU1NfQ0hFQ0siKS52YWwoKSkmJiJsb2NhdGlvbiI9PWM\/KGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0tMSxhLm5leHQoITApKToiIj09PSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS50ZXh0KCkudHJpbSgpJiYoJCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmFwcGVuZChkLmh0bWwoKSksIiIhPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtdWx0aURlYWxlclNlbGVjdCYmCihkPSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS5maW5kKCJzZWxlY3QiKSxtdWx0aURlYWxlclNlbGVjdC5maWx0ZXIoZCkuYnlNYWtlKGEuZm9ybWRhdGEuY3VycmVudE1ha2UpKSwkKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0Iikub24oImNoYW5nZSIsZnVuY3Rpb24oKXskKHRoaXMpLmNzcygiYm9yZGVyLWNvbG9yIiwiIik7YS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPSQodGhpcykudmFsKCk7ay5jaGVja1ZhbGlkaXR5KCl9KSl9fSxtdWx0aURlYWxlckZvcm1TdGF0dXM6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKS5sZW5ndGg\/ITA6IiIhPT1hLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG99LGVtYWlsQm9keUZvck11bHRpRGVhbGVyOmZ1bmN0aW9uKGQpe2lmKDA9PT0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIikubGVuZ3RoKXJldHVybiBkO3ZhciBjPSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIiwKYikuZmluZCgic2VsZWN0IDpzZWxlY3RlZCIpLGU9JCgiI3Bvc3RMZWFkTGFiZWwiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiZjLmxlbmd0aD8oZT1lLnJlcGxhY2UoInskTVVMVElERUFMRVJOQU1FfSIsYy50ZXh0KCkpLnJlcGxhY2UoInskUE9TVF9MRUFEX0VNQUlMU30iLCIiKSxkPWQucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsZSkpOiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoJiYiIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKT8oYz0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJDb25jZXNzaW9uIG\/vv70gZXN0IHNpdHXvv70gbGUgdu+\/vWhpY3VsZTogIjoKIkRlYWxlciB3aGVyZSB0aGUgdmVoaWNsZSBpcyBsb2NhdGVkOiAiLGMrPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCksZD1kLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGMpKTpkPWQucmVwbGFjZSgvPGJyXHM\/XC8+e1wkREVBTEVSX1NFTkRUT30oYnJccz9cLyk\/LywiIikucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsIiIpO3JldHVybiBkfSxjaGVja1ZhbGlkaXR5OmZ1bmN0aW9uKCl7aWYoYS52YWxpZGF0aW9uUnVsZXMuaGFzT3duUHJvcGVydHkoInN0ZXAiK2Euc3RlcCkpZm9yKHZhciBkPTA7ZDxhLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrYS5zdGVwXS5sZW5ndGg7ZCsrKWlmKGtbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2Euc3RlcF1bZF0uZnVuY10oYS5mb3JtZGF0YVthLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrYS5zdGVwXVtkXS52YWx1ZV0pKSQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uIiwKYikuYWRkQ2xhc3MoImlzVmFsaWQiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50VlciLGIpLmFkZENsYXNzKCJpc1ZhbGlkIik7ZWxzZXskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikucmVtb3ZlQ2xhc3MoImlzVmFsaWQiKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50VlciLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7YnJlYWt9ZWxzZSAkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50VlciLApiKS5hZGRDbGFzcygiaXNWYWxpZCIpfSxwb3B1cExhdW5jaGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQb3B1cCBsYXVuY2hlZCIpOyFrLnVzZXJJZCgpJiZhLmZpcnN0U3RlcCYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIiwxKTtrLnN0ZXBUcmlnZ2VyKCExKX0sc3RlcDJWaWV3ZWRUcmFjazpmdW5jdGlvbigpe2goIlN0ZXAgMiB2aWV3ZWQiKX0sZW1haWxTdGVwVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJFbWFpbCBzdGVwIHZpZXdlZCIpfSxwaG9uZVN0ZXBWaWV3ZWRUcmFjazpmdW5jdGlvbigpe2goIlBob25lIHN0ZXAgdmlld2VkIil9LGVtYWlsUHJvdmlkZWRUcmFjazpmdW5jdGlvbigpe2goIkVtYWlsIHByb3ZpZGVkIil9LHBob25lUHJvdmlkZWRUcmFjazpmdW5jdGlvbigpe2goIlBob25lIHByb3ZpZGVkIil9LHN0ZXBUcmlnZ2VyOmZ1bmN0aW9uKGQpe2Q9e3N0ZXA6YS5nZXRMaW5lYXJzdGVwKGQpLG1ha2U6YS5mb3JtZGF0YS5jdXJyZW50TWFrZSwKbW9kZWw6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwseWVhcjphLmZvcm1kYXRhLmN1cnJlbnRZZWFyLGJvZHlUeXBlOmEuZm9ybWRhdGEudmVoaWNsZVR5cGUsc2FsZXNEZXB0OmEuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdCx2ZWhpY2xlQ29sb3I6YS5mb3JtZGF0YS52ZWhpY2xlQ29sb3IsdmVoaWNsZVByaWNlOmEuZm9ybWRhdGEudmVoaWNsZVByaWNlLHZlaGljbGVUYW5zbWlzc2lvbjphLmZvcm1kYXRhLnZlaGljbGVUYW5zbWlzc2lvbix2ZWhpY2xlVHJpbTphLmZvcm1kYXRhLnZlaGljbGVUcmltfTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikudHJpZ2dlcigiZm9ybS5zdGVwIixkKTthLmZpcnN0U3RlcD0hMX19O3dpbmRvdy5hcHBUZXN0PWE7dmFyIFY7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNlbGVjdCwgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gdGV4dGFyZWEiKS5vbigiY2hhbmdlIGlucHV0IixmdW5jdGlvbigpe2NsZWFyVGltZW91dChWKTsKVj1zZXRUaW1lb3V0KGsuY2hlY2tWYWxpZGl0eSw1MDApfSk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl0nKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJzZWxlY3QiKX0pO3JldHVybntzdGFydDpQLGhhc1VzZXI6ay5oYXNVc2VyfX0KJChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9uKCJyZXZlYWw6b3BlbiIsIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiLGZ1bmN0aW9uKCl7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0Iil9KTskKGRvY3VtZW50KS5vbigicmV2ZWFsOm9wZW4iLCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIsZnVuY3Rpb24oKXskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQiKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyICNkclZpZXdEaXNjbGFpbWVyTGluayIsZnVuY3Rpb24oKXskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuc2hvdygpOyQoIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5hZGRDbGFzcygib3BlbiIpfSk7CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciIsZnVuY3Rpb24oKXskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKTskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuaGlkZSgpfSl9KTsKLyoqIC9qcy9jYWxjdWxhdG9yRnVuY3Rpb25zLmpzICoqLwp2YXIgX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTAyLTIwIDExOjMwOjE4IjsndXNlIHN0cmljdCc7Y2xhc3MgY2FsY3VsYXRvckZ1bmN0aW9uc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnBhcmVudD1hO3RoaXMucGFyZW50TmFtZT10aGlzLnBhcmVudC5yZXBsYWNlKCIjIiwiIik7dGhpcy5zZXRUcmlnZ2VycygpfWluaXQoYSxlLGIsZixtLGcsaCxwLG4pe3ZhciBxPXRoaXMucGFyZW50O3RoaXMuc3R5bGVpZD1hO3RoaXMucGF5bWVudFR5cGU9ZTt0aGlzLnRyYWRlSW5WYWx1ZT0kKHErIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoKT9wYXJzZUludCgkKHErIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoKSk6MDt0aGlzLmRvd25wYXltZW50PTA+Yi10aGlzLnRyYWRlSW5WYWx1ZT8wOmItdGhpcy50cmFkZUluVmFsdWU7dGhpcy5vcHRpb25zQW1vdW50PWY7dGhpcy5wYXltZW50RnJlcXVlbmN5PW07dGhpcy5rbUFsbG93YW5jZT1nO3RoaXMuaXNJbnZlbnRvcnk9aD9oOiExO3RoaXMuc249cD9wOiIiO3RoaXMudmluPW4\/Cm46IiI7dGhpcy5sb2FkUGF5bWVudHMoITApfXNldEluaXRpYWxWaWV3KGEpe3ZhciBlPXRoaXMucGFyZW50LGI9dGhpczskKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSBvcHRpb24iKS5yZW1vdmUoKTskKGUrIiAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCh0aGlzLmRvd25wYXltZW50KTskKGUrIiAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbChhLmN1cnJlbnRQYXltZW50WzBdLmludGVydmFsKTtsZXQgZj0ibGVhc2UiPT1hLmN1cnJlbnRQYXltZW50WzBdLnR5cGU\/ImxlYXNpbmciOiJmaW5hbmNpbmciOyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSciK2YrIiddIikuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7MD09YS5maW5hbmNlLmxlbmd0aD8kKGUrCiIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuaGlkZSgpOiQoZSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLnNob3coKTtpZigwPT1hLmxlYXNlLmxlbmd0aCkkKGUrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuaGlkZSgpO2Vsc2V7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLnNob3coKTtsZXQgZz1bXTthLmxlYXNlLmZvckVhY2goZnVuY3Rpb24oaCl7LTE9PSQuaW5BcnJheShoLmttX2FsbG93YW5jZSxnKSYmZy5wdXNoKGgua21fYWxsb3dhbmNlKX0pO2cuZm9yRWFjaChmdW5jdGlvbihoKXtsZXQgcD1iLnBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGgudG9GaXhlZCgwKSk7JChlKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5hcHBlbmQobmV3IE9wdGlvbihwKyIga20iLGgpKX0pO3ZhciBtPTJFNDthLmN1cnJlbnRQYXltZW50WzBdJiYidW5kZWZpbmVkIiE9PQp0eXBlb2YgYS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2UmJihtPTA8YS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U\/YS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U6MkU0KTskKGUrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChtKX10aGlzLmttQWxsb3dhbmNlPSQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCk7ImxlYXNpbmciPT1mPyQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoZSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpOyQoImJvZHkiKS5vbigiY2xpY2sgdGFwIixlKyIgLmZpbmFuY2luZy1vcHRpb24ucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAqIixmdW5jdGlvbigpeyQodGhpcykuZmluZCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nKS5wcm9wKCJjaGVja2VkIiwiY2hlY2tlZCIpLnRyaWdnZXIoImNoYW5nZSIpfSk7CiQoImJvZHkiKS5vbigiY2hhbmdlIixlKycgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS52YWwoKSxoPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoZSsiIC5maW5hbmNpbmctb3B0aW9uIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrZysnIl1bZGF0YS1yYXRldHlwZT0iJytoKyciXScpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrZysnIl1bZGF0YS1yYXRldHlwZT0iJytoKyciXScpLnByb3AoImNoZWNrZWQiLCEwKTskKHRoaXMpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIil9KTskKCJib2R5Iikub24oImNoYW5nZSIsZSsnIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJywKZnVuY3Rpb24oKXt2YXIgZz0kKHRoaXMpLnZhbCgpLGg9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JChlKyIgLmZpbmFuY2luZy1vcHRpb24iKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2grJyJdJykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2grJyJdJykucHJvcCgiY2hlY2tlZCIsITApOyQodGhpcykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKX0pfXNldFRyaWdnZXJzKCl7dmFyIGE9dGhpcy5wYXJlbnQsZT10aGlzOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikub2ZmKCJjbGljayIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLm9mZigiY2hhbmdlIik7CiQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIikub2ZmKCJjaGFuZ2UiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLm9mZigiY2hhbmdlIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5vZmYoImJsdXIiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS5vZmYoImJsdXIiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQodGhpcykuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7ZS5wYXltZW50VHlwZT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOyJsZWFzaW5nIj09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKT8kKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKToKJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7ZS5sb2FkUGF5bWVudHMoKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKT8oJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuc2hvdygpKTooJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLnRyaWdnZXIoImNoYW5nZSIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXtlLnBheW1lbnRGcmVxdWVuY3k9CiQodGhpcykudmFsKCk7ZS5sb2FkUGF5bWVudHMoKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXtlLmttQWxsb3dhbmNlPSQodGhpcykudmFsKCk7ZS5sb2FkUGF5bWVudHMoKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Iikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGI9cGFyc2VJbnQoJCh0aGlzKS52YWwoKSk\/cGFyc2VJbnQoJCh0aGlzKS52YWwoKSk6MDtlLmRvd25wYXltZW50PWI7ZS5sb2FkUGF5bWVudHMoKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLm9uKCJibHVyIixmdW5jdGlvbigpe2xldCBiPXBhcnNlSW50KCQodGhpcykuYXR0cigibWF4IikpfHwwLGY9cGFyc2VJbnQoJCh0aGlzKS52YWwoKSl8fDA7Zj1mPmI\/YjpmOyQodGhpcykudmFsKGYpO2UudHJhZGVJblZhbHVlPWY7X2xvY2FsU3RvcmFnZVNldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIiwKSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOmZ9KSwxKTtlLmxvYWRQYXltZW50cygpfSl9bG9hZFBheW1lbnRzKGEpe2E9YT9hOiExO2xldCBlPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiO3ZhciBiPXRoaXM7Yi50cmFkZUluVmFsdWU9cGFyc2VJbnQoJChiLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpPyQoYi5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoKTowKTskLmFqYXgoe3VybDplLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmIuc3R5bGVpZCxwYXltZW50VHlwZTpiLnBheW1lbnRUeXBlLGRvd25wYXltZW50OmIuZG93bnBheW1lbnQrYi50cmFkZUluVmFsdWUsb3B0aW9uc0Ftb3VudDpiLm9wdGlvbnNBbW91bnQscGF5bWVudEZyZXF1ZW5jeTpiLnBheW1lbnRGcmVxdWVuY3ksCmttQWxsb3dhbmNlOmIua21BbGxvd2FuY2Usb3B0aW9uczpiLm9wdGlvbnNBbW91bnQsaXNJbnZlbnRvcnk6Yi5pc0ludmVudG9yeSxzbjpiLnNuLHZpbjpiLnZpbixmb3JjZVRheGVzOiEwfSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2YuY3VycmVudFBheW1lbnQmJmYuY3VycmVudFBheW1lbnQubGVuZ3RoPyhhJiZiLnNldEluaXRpYWxWaWV3KGYpLCJ1bmRlZmluZWQiIT09dHlwZW9mIGNhbGNDdXJQYXltZW50JiYoY2FsY0N1clBheW1lbnQ9ZiksYi5zaG93UGF5bWVudHMoZi5jdXJyZW50UGF5bWVudCxmLnBheW1lbnRGZWVzLGYubWFrZWlkLGYpLCQoImJvZHkgIitiLnBhcmVudCkudHJpZ2dlcigicGF5bWVudHNSZWFkeSIpKTokKCJib2R5ICIrYi5wYXJlbnQpLnRyaWdnZXIoIm5vUGF5bWVudCIpfX0pfXNob3dQYXltZW50cyhhLGUsYixmKXt2YXIgbT10aGlzOyQobS5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaHRtbCgiIik7JChtLnBhcmVudCsKIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaHRtbCgiIik7bGV0IGc9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JSb3VuZFBheW1lbnQiKS52YWwoKT8wOjI7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJiQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKTtsZXQgaD1bXSxwPSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCl8fDA7NTxhLmxlbmd0aD9hLmZvckVhY2goZnVuY3Rpb24oayl7KDA9PWsudGVybSUxMnx8NjQ9PWsudGVybXx8NDA9PWImJjUxPT1rLnRlcm18fDIwPT1iJiZbMjcsMzAsMzksNDJdLmluY2x1ZGVzKGsudGVybSl8fFsxNiwyMV0uaW5jbHVkZXMoYil8fDQyPT1rLnRlcm0mJjEwMTQ9PXB8fFszMCw0Ml0uaW5jbHVkZXMoay50ZXJtKSYmWzQ3MTU2Miw0NzE1NjMsNDcxNTY0XS5pbmNsdWRlcyhwYXJzZUludChzZXR0aW5ncy5zdHlsZWlkKSl8fAoyNz09ay50ZXJtJiYyNz09Ynx8NTI9PWsudGVybSYmMzk9PWIpJiZoLnB1c2goayl9KTpoPWE7dmFyIG49e30scT0hMTtoLmZvckVhY2goZnVuY3Rpb24oayxsKXtPYmplY3QuaGFzT3duKG4say50ZXJtKT9xPSEwOm5bay50ZXJtXT17fTtuW2sudGVybV1bay5yYXRlX3R5cGVdPWx9KTt2YXIgSD1bXTthWzBdJiYibGVhc2UiPT1hWzBdLnR5cGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGFbMF0ua21fYWxsb3dhbmNlJiYoYT0wPGFbMF0ua21fYWxsb3dhbmNlP2FbMF0ua21fYWxsb3dhbmNlOjJFNCwkKG0ucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoYSksdGhpcy5rbUFsbG93YW5jZT0kKG0ucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKSk7bGV0IEk9Zi50b3RhbEluY2VudGl2ZSxKPXE\/JCgiI0xPV0VTVFBBWU1FTlRfTEFCRUwiKS52YWwoKToiIixLPXE\/JCgiI0xPV0VTVFJBVEVfTEFCRUwiKS52YWwoKToiIiwKVj0wOyQuZWFjaChoLGZ1bmN0aW9uKGssbCl7aWYoIUguaW5jbHVkZXMobC50ZXJtKSl7SC5wdXNoKGwudGVybSk7dmFyIGQ9InN0YW5kYXJkIj09bC5yYXRlX3R5cGV8fDI+T2JqZWN0LmtleXMobltsLnRlcm1dKS5sZW5ndGg\/bDpoW25bbC50ZXJtXS5zdGFuZGFyZF0sYz0yPT1PYmplY3Qua2V5cyhuW2wudGVybV0pLmxlbmd0aD9oW25bbC50ZXJtXS5zdWJ2ZW50ZWRdOiExLHg9Mj09T2JqZWN0LmtleXMobltsLnRlcm1dKS5sZW5ndGg\/bltsLnRlcm1dLnN1YnZlbnRlZDohMSx2PWwudGVybSx5PWwuZG93bnBheW1lbnQudG9GaXhlZCgwKSxCPWQucGF5bWVudC50b0ZpeGVkKGcpLFc9ZC5wYXltZW50LnRvRml4ZWQoZyk7Qj1CLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKEMsdyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK3crIjwvc3VwPiJ9KTtsPWQucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO3ZhciBYPWQucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO2w9CmwucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oQyx3KXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrdysiPC9zdXA+In0pO3ZhciBMPWQucmF0ZSxZPSJwYXltZW50IitrO2s9InBheW1lbnQiK2srIndpdGhUYXhlcyI7dj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iPHNwYW4+Iit2KyI8L3NwYW4+IG1vbnRoIjoiPHNwYW4+Iit2KyI8L3NwYW4+IG1vaXMiO3k9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7eX08L3NwYW4+YCsoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiBkb3duIHBheW1lbnQiOiIgY29tcHRhbnQiKTt2YXIgTT0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8iPGRpdj4iKyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCkrIjwvZGl2PiI6Iit0eCIsej1kLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2QuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxEPSIiOzA8cGFyc2VGbG9hdCh6KS1kLnJhdGUmJihEKz0KbS5mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dENhbGMoeiwiIiwnY2xhc3M9Ii1mczEwIicpKTt2YXIgTj1kLnRvdGFsT2JsaWdhdGlvbkFtb3VudD9kLnRvdGFsT2JsaWdhdGlvbkFtb3VudDowLE89J2RhdGEtdG9vbHRpcD0iJytkLnRvb2x0aXArJyInLFA9J2RhdGEtdG9vbHRpcD0iJytkLnRvb2x0aXBXaXRoVGF4ZXMrJyInLHIsWj1udWxsIT0ocj1kLm0yZF9maW5hbmNlKT9yOkk7cj0ic2luZ2xlLWNvbHVtbiI7dmFyIEU9InNtYWxsLWJveCIsdD0iIix1PSIiO2lmKGMpe3I9ImxlZnQtc2VjdGlvbiI7RT0iIjt0PWMucGF5bWVudC50b0ZpeGVkKGcpO2xldCBDPWMucGF5bWVudC50b0ZpeGVkKGcpO3Q9dC5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihhYSxGKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRisiPC9zdXA+In0pO3U9Yy5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZyk7bGV0IHc9Yy5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZyk7dT11LnJlcGxhY2UoL1wuKFswLTldKikvLApmdW5jdGlvbihhYSxGKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRisiPC9zdXA+In0pO3ZhciBRPWMucmF0ZS50b0ZpeGVkKDIpLGJhPSJwYXltZW50Iit4O3g9InBheW1lbnQiK3grIndpdGhUYXhlcyI7bGV0IEE9Yy5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9jLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOjAsRz0iIjswPHBhcnNlRmxvYXQoQSktYy5yYXRlJiYoRys9bS5mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dENhbGMoQSwiIiwnY2xhc3M9Ii1mczEwIicpKTtsZXQgUj1jLnRvdGFsT2JsaWdhdGlvbkFtb3VudD9jLnRvdGFsT2JsaWdhdGlvbkFtb3VudDowLFM9J2RhdGEtdG9vbHRpcD0iJytjLnRvb2x0aXArJyInLFQ9J2RhdGEtdG9vbHRpcD0iJytjLnRvb2x0aXBXaXRoVGF4ZXMrJyInLFU9Yy5tMmRfZmluYW5jZTt0PSdcdDxkaXYgaWQ9IicrYmErJyIgY2xhc3M9InJpZ2h0LXNlY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytTKyc+XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1yYXRlIj4nKwpRKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytTKyI+PC9pPiIrRysnPC9kaXY+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK3QrJzwvc3Bhbj48L2Rpdj5cdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JytNKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2MudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2MucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2MucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2MucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJysKQysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2MucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2MudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrYy5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytBKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1IrJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2MucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytjLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrVSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrYy5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytjLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmZlZXNMaXN0KSkrCiciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5pbmNlbnRpdmVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0PGxhYmVsIGNsYXNzPSJmaW5hbmNlQ2FsYyI+JytLKyI8L2xhYmVsPlx0XHQ8L2Rpdj5cdDwvZGl2PiI7dT0nXHQ8ZGl2IGlkPSInK3grJyIgY2xhc3M9InJpZ2h0LXNlY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytUKyc+XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1yYXRlIj4nK1ErJyUgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgcmlnaHRUb29sdGlwIiAnK1QrIj48L2k+IitHKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrCnUrJzwvc3Bhbj48L2Rpdj5cdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInK2MudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2MucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2MucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2MucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJyt3KyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrYy50b3RhbEludGVyZXN0V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytjLmx1eGVUYXhBbW91bnQrCiciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytBKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1IrJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2MucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytjLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrVSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrYy5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytjLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmZlZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2MuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJysKYy5oc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSInK2MucHN0KyciXHRcdFx0XHQ+XHRcdFx0PGxhYmVsIGNsYXNzPSJmaW5hbmNlQ2FsYyI+JytLKyI8L2xhYmVsPlx0XHQ8L2Rpdj5cdDwvZGl2PiJ9Yz0nPGRpdiBjbGFzcz0iZmluYW5jaW5nLW9wdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICcrRSsnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrdisnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJkb3duLXBheW1lbnQiPicreSsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJzZXBhcmF0b3JQYXkiPjwvZGl2Plx0PGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPlx0XHQ8ZGl2IGlkPSInK1krJyIgY2xhc3M9IicrcisnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrTysnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0IrJzwvc3Bhbj4gPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrCk8rJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JytNKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcmF0ZSI+JytMKyIlICIrRCsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50Ilx0XHRcdFx0XHR2YWx1ZT0iJytkLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytkLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytkLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytkLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrVysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInKwpkLnRvdGFsSW50ZXJlc3QrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2QubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicreisnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytOKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytkLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrZC5yZXNpZHVhbFZhbHVlKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK1orJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2QuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrZC5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5mZWVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5pbmNlbnRpdmVzTGlzdCkpKwonIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsIGNsYXNzPSJmaW5hbmNlQ2FsYyI+JytKKyI8L2xhYmVsPlx0XHRcdDwvZGl2Plx0XHQ8L2Rpdj4iK3QrIlx0PC9kaXY+PC9kaXY+IjtkPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJytFKyciPlx0PGRpdiBjbGFzcz0idGVybSI+Jyt2Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+Jyt5Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicraysnIiBjbGFzcz0iJytyKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytQKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrCmwrJzwvc3Bhbj4gPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrUCsnPjwvaT48L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcmF0ZSI+JytMKyIlICIrRCsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytkLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytkLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytkLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytkLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrWCsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInKwpkLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytkLnRvdGFsSW50ZXJlc3QrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2QubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicreisnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytOKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytkLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrZC5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK0krJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2QuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrZC5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5mZWVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInKwpidG9hKEpTT04uc3RyaW5naWZ5KGQuaW5jZW50aXZlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IicrZC5nc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSInK2QuaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytkLnBzdCsnIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsIGNsYXNzPSJmaW5hbmNlQ2FsYyI+JytKKyI8L2xhYmVsPlx0XHRcdDwvZGl2Plx0XHQ8L2Rpdj4iK3UrIlx0PC9kaXY+PC9kaXY+IjskKG0ucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmFwcGVuZChjKTskKG0ucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmFwcGVuZChkKTtWKyt9fSk7bS5zZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpfXNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl7dmFyIGE9dGhpcy5wYXJlbnQsZT10aGlzLnBhcmVudE5hbWU7aWYoIjEiPT0KJCgiI2lzbW9iaWxlIikudmFsKCkpJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIgLnBheW1lbnRUb29sdGlwIikuZWFjaChmdW5jdGlvbihmKXt0cnl7dmFyIG09JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKSxnPSQodGhpcykuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/Indlc3QiOiJlYXN0IjskKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50Om0sZ3Jhdml0eTpnLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGgpe319KTtlbHNle2Zvcih2YXIgYj0wOzU+YjtiKyspJCgiI2Rhcmt0b29sdGlwLSIrZSsicGF5bWVudCIrYikubGVuZ3RoJiYoJCgiI2Rhcmt0b29sdGlwLSIrZSsicGF5bWVudCIrYikucmVtb3ZlKCksJCgiI2Rhcmt0b29sdGlwLSIrZSsicGF5bWVudCIrYisid2l0aFRheGVzIikucmVtb3ZlKCkpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIikuZWFjaChmdW5jdGlvbigpe3RyeXt2YXIgZj0KJCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTskKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmYsZ3Jhdml0eToibm9ydGgiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoibm9uZSJ9KX1jYXRjaChtKXt9fSl9fXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGEpe3JldHVybiBhLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csIiwiKX1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dENhbGMoYSxlLGIpe2I9dm9pZCAwPT09Yj8iIjpiO2E9IjxzcGFuICIrZSsiPiIrYSsiPC9zcGFuPiUiO2E9IkVOR0xJU0giPT1hY3RpdmVMYW5nP2ErIiBBUFIiOiJUYXV4ICIrYTtyZXR1cm4gJCgiI2lzbW9iaWxlIikudmFsKCk\/Ijxici8+PGRpdiAiK2IrIj4oIithKyIpPC9kaXY+IjoiIDxkaXYgIitiKyI+KCAiK2ErIiApPC9kaXY+In19OwovKiogL2pzL2pxdWVyeS5leGl0TGlzdGVuZXIuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5ZXhpdExpc3RlbmVyanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDoyMSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5ZXhpdExpc3RlbmVyanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjoyOCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnlleGl0TGlzdGVuZXJqc19jX29uPSIyMDIzLTAxLTEyIDExOjQyOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWV4aXRMaXN0ZW5lcmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NTI6MDAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5ZXhpdExpc3RlbmVyanNfY19vbj0iMjAyMS0xMi0xNSAxMjo1MzowMCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYyl7Yy5leGl0TGlzdGVuZXI9ZnVuY3Rpb24oZil7ZnVuY3Rpb24gZChhLGcpe2EmJiJmdW5jdGlvbiI9PXR5cGVvZiBhJiYoYS5jYWxsKG51bGwsZyksZT0hMCxiLmNvb2tpZSYmYy5jb29raWUoYi5jb29raWVOYW1lLCJ0Iix7cGF0aDoiLyJ9KSl9ZnVuY3Rpb24gaCgpeyFlJiZiLmNvb2tpZSYmKGU9InQiPT1jLmNvb2tpZShiLmNvb2tpZU5hbWUpKTtyZXR1cm4gZX12YXIgYj1jLmV4dGVuZCh7fSx7Y29va2llOiExLGNvb2tpZU5hbWU6ImV4aXRfdHJpZ2dlciIsZGVsYXk6MCxvbkxlYXZlVG9wOiExLG9uTGVhdmVCb3R0b206ITEsb25MZWF2ZUxlZnQ6ITEsb25MZWF2ZVJpZ2h0OiExfSxmKSxlPSExLG09KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoIWgoKSljKGRvY3VtZW50KS5vbigibW91c2VsZWF2ZSIsZnVuY3Rpb24oYSl7KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoIShmLmRlbGF5JiZmLmRlbGF5PihuZXcgRGF0ZSkuZ2V0VGltZSgpLW18fGgoKSkpe3ZhciBnPQpjKHdpbmRvdykud2lkdGgoKSxuPWMod2luZG93KS5oZWlnaHQoKTtzd2l0Y2goYS50eXBlKXtjYXNlICJtb3VzZWxlYXZlIjp2YXIgaz1hLm9mZnNldFgsbD1hLm9mZnNldFl9aWYoMD49bClyZXR1cm4gZChiLm9uTGVhdmVUb3AsYSk7aWYobD49bilyZXR1cm4gZChiLm9uTGVhdmVCb3R0b20sYSk7aWYoMD49aylyZXR1cm4gZChiLm9uTGVhdmVMZWZ0LGEpO2lmKGs+PWcpcmV0dXJuIGQoYi5vbkxlYXZlUmlnaHQsYSl9fSl9fSkoalF1ZXJ5KTsKLyoqIC9qcy9wYXltZW50Q2FsY3VsYXRvci5qcyAqKi8KdmFyIF9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDQtMDYgMTI6MzA6MDMiOyd1c2Ugc3RyaWN0JztmdW5jdGlvbiBwb3B1cENhbGN1bGF0b3JJbml0aWFsaXplZCgpe2Z1bmN0aW9uIGEoKXtjJiZjLmFib3J0KCk7Y2FsY1VwZGF0ZVBheW1lbnRYaHImJihjYWxjVXBkYXRlUGF5bWVudFhoci5hYm9ydCgpLGNhbGNVcGRhdGVQYXltZW50WGhyPW51bGwpO3ZhciBkPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiLGI9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksZz1nZXRPcHRpb25zQW1vdW50KGIpLHI9Z2V0QWNjZXNzb3JpZXNBbW91bnQoYik7bGV0IG09Z2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhiKTt2YXIgbj1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYikscD1iLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1iLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fAoiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCksdz1iLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP2Iuc3RvY2tOdW1iZXI6IiIseT1iLmhhc093blByb3BlcnR5KCJ2aW4iKT9iLnZpbjoiIix0PXBhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApO2lmKHAmJiF3KXt2YXIgdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO3YmJih3PXYudmFsdWV8fCIiKX1wJiYheSYmKHY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoeT12LnZhbHVlfHwiIik7cCYmIWIuc3R5bGVpZCYmKHY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihiLnN0eWxlaWQ9di52YWx1ZXx8Yi5zdHlsZWlkKTtpZigiY2FzaCI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpKWVuYWJsZUNhc2hPcHRpb24oKTsKZWxzZXt2PXBhcnNlSW50KCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpfHwwKSt0O3ZhciBBPVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKHEpe3EuY2hlY2tlZCYmKHE9cS5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZBLnB1c2gocSl9KTt2YXIgeD1udWxsO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoeD1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpKTt2YXIgej0kKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpOyF6JiZ4JiZ4WzNdJiYoej14WzNdKTt2YXIgZj0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKTshZiYmeCYmCnhbMF0mJihmPXhbMF0pOyEkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpJiZ4JiZ4WzJdJiYkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCh4WzJdKTtjPSQuYWpheCh7dXJsOmQsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6Yi5zdHlsZWlkLHBheW1lbnRUeXBlOmYsZG93bnBheW1lbnQ6dixvcHRpb25zQW1vdW50OmcscGF5bWVudEZyZXF1ZW5jeTokKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLGttQWxsb3dhbmNlOnosb3B0aW9uczpnLGlzSW52ZW50b3J5OnAsc246dyx2aW46eSxjb25kaXRpb25hbFJlYmF0ZUlkczpBLmpvaW4oIiwiKSxhY2Nlc3NvcmllczpyLHNlbGVjdGVkQWNjZXNzb3JpZXM6bSxwcm90ZWN0aW9uUGxhbnM6bn0sc3VjY2VzczpmdW5jdGlvbihxKXtxLmN1cnJlbnRQYXltZW50JiZxLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKHQpLApmPSJsZWFzZSI9PT1mPyJsZWFzaW5nIjoiZmluYW5jZSI9PT1mPyJmaW5hbmNpbmciOmYsImNhc2giPT09ZiYmKCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSkscS5jdXJyZW50UGF5bWVudCYmMCE9PXEuY3VycmVudFBheW1lbnQubGVuZ3RofHwiY2FzaCI9PT1mPygkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsCiExKSxxLmN1cnJlbnRQYXltZW50JiYwPHEuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwocS5jdXJyZW50UGF5bWVudFswXS5pbnRlcnZhbCksZj1mfHwoImxlYXNlIj09PXEuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyIpKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuc2hvdygpKSxzaG93SGlkZVBheW1lbnRTZWN0aW9uKHEsZiksMD49JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2Ugb3B0aW9uIikubGVuZ3RoJiYKcG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd24ocSksImxlYXNpbmciPT1mPyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpLGdldENhc2hQcmljZUJsb2NrKHEpLCJjYXNoIj09PWY\/ZW5hYmxlQ2FzaE9wdGlvbigpOihxLmN1cnJlbnRQYXltZW50JiZxLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmc2hvd1BheW1lbnRzKHEuY3VycmVudFBheW1lbnQscS5wYXltZW50RmVlcyxxLm1ha2VpZCxxKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGs9JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdOmNoZWNrZWQnKTtrLmxlbmd0aCYmIk5FV0NBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYoaz17Y3VycmVudFBheW1lbnQ6ay5hdHRyKCJkYXRhLXJlYWxwYXltZW50IiksCmN1cnJlbnRSYXRlOmsuYXR0cigiZGF0YS1yYXRlIikscGF5bWVudFRlcm06ay52YWwoKSxwYXltZW50VHlwZTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKSxwYXltZW50SW50ZXJ2YWw6JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSxwYXltZW50RG93blBheW1lbnQ6cGFyc2VJbnQoJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCl8fDApK3BhcnNlSW50KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCl8fDApLHRvdGFsSW50ZXJlc3Q6ay5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKSxsdXhlVGF4QW1vdW50OmsuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50IikscmF0ZVR5cGU6ay5hdHRyKCJkYXRhLXJhdGV0eXBlIiksZWZmZWN0aXZlUmF0ZTprLmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpLHRvdGFsQ29zdDprLmF0dHIoImRhdGEtdG90YWxDb3N0Iil9LApjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKGspKX0sMjUwKSkpfSxlcnJvcjpmdW5jdGlvbihxLGssdSl7Y29uc29sZS5lcnJvcigibG9hZFBheW1lbnRzOjogUGF5bWVudCBjYWxjdWxhdGlvbiBlcnJvcjoiLGssdSl9fSl9fXZhciBjPW51bGw7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2EoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikub24oImNsaWNrIixmdW5jdGlvbihkKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY2FsYy1wYXltZW50LWNhc2giKTskKHRoaXMpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpO3N3aXRjaCghMCl7Y2FzZSAibGVhc2luZyI9PT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOmIuaGlkZGVuPQohMDskKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLnNob3coKTticmVhaztjYXNlICJmaW5hbmNpbmciPT09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTpiLmhpZGRlbj0hMDskKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLnNob3coKTticmVhaztjYXNlICJjYXNoIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6Yi5oaWRkZW49ITEsJCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLG51bGwhPT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmCihiPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksYlswXT0iY2FzaCIsQ29va2llcy5zZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixiLmpvaW4oIi0iKSxudWxsLCIvIikpLHdpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMCwidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5zZXRCTlBWaWV3JiZtb2RlbENvbmZpZy5zZXRCTlBWaWV3KCEwLCJjYXNoIil9bGV0IGc7MSE9KG51bGw9PWQ\/dm9pZCAwOm51bGw9PShnPWQuZGV0YWlsKT92b2lkIDA6Zy5pc0ZpcnN0UnVuKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS50cmlnZ2VyKCJibHVyIil9KTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YSgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5vbigiYmx1ciIsCmZ1bmN0aW9uKCl7bGV0IGQ9cGFyc2VJbnQoJCh0aGlzKS52YWwoKS5yZXBsYWNlKC9bXlxkXS9nLCIiKSl8fDA7aWYoImxlYXNpbmciPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIikpe3ZhciBiPXBhcnNlSW50KCQoIiNtYXhEb3duUGF5bWVudEZvclRyaW0iKS52YWwoKSl8fDA7MDxiJiZkPmImJihkPWIpfWVsc2UgYj1wYXJzZUludCgkKCIjbWF4RG93blBheW1lbnRGaW5hbmNlRm9yVHJpbSIpLnZhbCgpKXx8MCwwPGImJmQ+YiYmKGQ9Yik7JCh0aGlzKS52YWwoZCk7YSgpfSk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGQ9cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJtYXgiKSl8fDAsYj1wYXJzZUludCgkKHRoaXMpLnZhbCgpKXx8MDtiPWI+ZD9kOmI7JCh0aGlzKS52YWwoYik7X2xvY2FsU3RvcmFnZVNldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIiwKSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOmJ9KSwxKTthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLmhpZGUoKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5zaG93KCkpfSk7CiQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikub24oImNsaWNrIixmdW5jdGlvbigpe2dldFBvcENvbnRhaW5TZXR0aW5ncygpLmFscmVhZHlJbml0PSEwO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQ9ITApO3dpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMTt2b2lkIDAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJm1vZGVsQ29uZmlnLmNoYW5nZVBheW1lbnRQbGFuUG9wdXAoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuY2xvc2UoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIC5jbG9zZS1yZXZlYWwtbW9kYWwiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dm9pZCAwIT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIikmJgoidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuY2hhbmdlUGF5bWVudFBsYW5Qb3B1cCgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGQ9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7ZC5zdHlsZWlkPSQodGhpcykudmFsKCk7JCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGgmJiQoIiNhY3RpdmVTdHlsZUlEIikudmFsKGQuc3R5bGVpZCk7cGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKTt1cGRhdGVVcmwoZCl9KTskKCJib2R5Iikub24oImNsaWNrIHRhcCIsIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICoiLGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIil9KTsKJCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGQ9JCh0aGlzKS52YWwoKSxiPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2QrJyJdW2RhdGEtcmF0ZXR5cGU9IicrYisnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrZCsnIl1bZGF0YS1yYXRldHlwZT0iJytiKyciXScpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIik7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSk7CiQoImJvZHkiKS5vbigiY2hhbmdlIiwnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyxmdW5jdGlvbigpe3ZhciBkPSQodGhpcykudmFsKCksYj0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytkKyciXVtkYXRhLXJhdGV0eXBlPSInK2IrJyJdJykucHJvcCgiY2hlY2tlZCIsITApLnRyaWdnZXIoImNoYW5nZSIpfSk7dmFyIGU9ITE7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGQ9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksYj0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKSxnPSQodGhpcykudmFsKCkscj0kKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLAptPSQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCksbj0kKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpPyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCk6MCxwPSQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpPyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpOjA7bj1wYXJzZUludChuKStwYXJzZUludChwKTtuPW4udG9GaXhlZCgwKTtwPWIrIi0iK2crIi0iK3IrIi0iK20rIi0iK247cCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJm51bGwhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYod2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSEwLHZvaWQgMCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKVswXSYmInVuZGVmaW5lZCIhPQp0eXBlb2YgbW9kZWxDb25maWcmJnZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYoZT0hMCxtb2RlbENvbmZpZy5zZXRCTlBWaWV3KGUsYikpLG51bGwhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiZDb29raWVzLnNldCgicHJldmlvdXNwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsQ29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIiksbnVsbCwiLyIpKTtlfHwidW5kZWZpbmVkIj09dHlwZW9mIG1vZGVsQ29uZmlnfHwidW5kZWZpbmVkIj09PXR5cGVvZiBtb2RlbENvbmZpZ3x8dm9pZCAwPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIil8fG1vZGVsQ29uZmlnLnNob3VsZFJlbG9hZEJOUFZpZXdPblBheW1lbnRDaGFuZ2UoZSxiKTtDb29raWVzLnNldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiLApwLG51bGwsIi8iKTt2YXIgdz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8ibW9udGhzIjoibW9pcyIseT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iJCIrbisiIGRvd24gcGF5bWVudCI6bisiICQgY29tcHRhbnQiO3A9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciB3ZWVrIGZvciI6InBhciBzZW1haW5lIHBvdXIiO3N3aXRjaChyKXtjYXNlICJ3ZWVrbHkiOnA9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciB3ZWVrIGZvciI6InBhciBzZW1haW5lIHBvdXIiO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjpwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJwZXIgMiB3ZWVrcyBmb3IiOiJwYXIgMiBzZW1haW5lcyBwb3VyIjticmVhaztjYXNlICJzZW1pbW9udGhseSI6cD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8idHdpY2UgYSBtb250aCBmb3IiOiIyIGZvaXMgcGFyIG1vaXMgcG91ciI7YnJlYWs7Y2FzZSAibW9udGhseSI6cD0KJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciBtb250aCBmb3IiOiJwYXIgbW9pcyBwb3VyIn1tPSJsZWFzaW5nIj09PWI\/bSsia20iOiIiO3ZhciB0PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJsZWFzaW5nIj09PWI\/IkxlYXNpbmciOiJGaW5hbmNpbmciOiJsZWFzaW5nIj09PWI\/IkxvY2F0aW9uIjoiRmluYW5jZW1lbnQiO2QudmVoaWNsZUluZm8mJihlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU9ZC52ZWhpY2xlSW5mby5tYWtlKyIgIisoZC52ZWhpY2xlSW5mby5tb2RlbHx8ZC52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSkrIiAiK2QudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUsZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2QudmVoaWNsZUluZm8ueWVhcisiICIrZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlOmVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZSsiICIrZC52ZWhpY2xlSW5mby55ZWFyLAplbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGUrPSIoIit0KyIgIitwKyIgIitnKyIgIit3KyIuICIreSsiLiAiK20rIikiLGVtYWlsSGFuZGxlci5tYWtlPWQudmVoaWNsZUluZm8ubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9ZC52ZWhpY2xlSW5mby5tb2RlbHx8ZC52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSxlbWFpbEhhbmRsZXIudHJpbT1kLnZlaGljbGVJbmZvLkNGU3R5bGVOYW1lLGVtYWlsSGFuZGxlci55ZWFyPWQudmVoaWNsZUluZm8ueWVhcik7aWYoIk5FV0NBUlMiIT09KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSYmIlVTRURDQVJTIiE9PSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkpe3A9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7ZD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO209JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKTt3PSQodGhpcykuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50Iik7eT0kKHRoaXMpLmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpOwp0PSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpO3ZhciB2PSQodGhpcykuYXR0cigiZGF0YS10b3RhbENvc3QiKTtjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHtjdXJyZW50UGF5bWVudDpwLGN1cnJlbnRSYXRlOmQscGF5bWVudFRlcm06ZyxwYXltZW50VHlwZTpiLHBheW1lbnRJbnRlcnZhbDpyLHBheW1lbnREb3duUGF5bWVudDpuLHRvdGFsSW50ZXJlc3Q6bSxsdXhlVGF4QW1vdW50OncscmF0ZVR5cGU6dCxlZmZlY3RpdmVSYXRlOnksdG90YWxDb3N0OnZ9KX15PSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk6Iit0eCI7aWYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmxlbmd0aCl7dz0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giO3A9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7ZD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO209IjEiPT0kKCIjcm91bmRQYXltZW50IikudmFsKCk\/CjA6Mjt0PXBhcnNlRmxvYXQocCkudG9GaXhlZChtKTt0PXQucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oQSx4KXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicreCsiPC9zdXA+In0pO3A9JCgiI0lOVEVSVkFMX1NIT1JUX1dFRUtMWSIpLnZhbCgpO209NTI7c3dpdGNoKHIpe2Nhc2UgIndlZWtseSI6cD0kKCIjSU5URVJWQUxfU0hPUlRfV0VFS0xZIikudmFsKCk7bT01MjticmVhaztjYXNlICJiaXdlZWtseSI6cD0kKCIjSU5URVJWQUxfU0hPUlRfQklXRUVLTFkiKS52YWwoKTttPTI2O2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjpwPSQoIiNJTlRFUlZBTF9TSE9SVF9TRU1JTU9OVEhMWSIpLnZhbCgpO209MjQ7YnJlYWs7Y2FzZSAibW9udGhseSI6cD0kKCIjSU5URVJWQUxfU0hPUlRfTU9OVEhMWSIpLnZhbCgpLG09MTJ9cj15KyIvIitwOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYiYmx1ciI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCkmJgoodD0nPHNwYW4gY2xhc3M9ImJsdXItcHJpY2UiPicrdCsiPC9zcGFuPiIpO3A9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UodCk7bj1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShuKSsoIkVOR0xJU0giPT09dz8iIGRvd24iOiIgY29tcHRhbnQiKTtiPSJmaW5hbmNpbmciPT09Yj8iRU5HTElTSCI9PT13P2crIiBtb250aHMgZmluLiI6IkZpbi4gIitnKyIgbW9pcyI6IkVOR0xJU0giPT09dz9nKyIgbW9udGhzIGxlYXNlIjoiTG9jLiAiK2crIiBtb2lzIjtkPXBhcnNlRmxvYXQoZCkudG9GaXhlZCgyKSsiJSI7dz1iKyIgLyAiK24rIiBAICIrZCsiOiI7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYoZz1wYXJzZUludChwYXJzZUludChnKS8xMiptKSxtPXN0b3JlLmdldCgiaTE4biIpLlBBWU1FTlRTLnRvTG93ZXJDYXNlKCksdz1iKyIgLyAiK2crIiAiK20rIiAvICIrbisiIEAgIitkKyI6Iik7JCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtcGF5bWVudC1kZXNjIikuaHRtbCh3KTsKJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtcGF5bWVudC1hbW91bnQiKS5odG1sKHApOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIgLmJwLXRheC10eHQiKS50ZXh0KHIpO2c9JCh0aGlzKS5jbG9zZXN0KCIucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpOyIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkmJihnPSQodGhpcykuY2xvc2VzdCgiLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKSk7Zz1nLmF0dHIoImRhdGEtdG9vbHRpcCIpO2c9U3RyaW5nKGcpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpO2NoYW5nZUJuUFRvb2xUaXBNZXNzYWdlKGcpOyJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZGVsQ29uZmlnJiYobW9kZWxDb25maWcuc2F2ZUNvbmZpZygpLG1vZGVsQ29uZmlnLmNhbGN1bGF0ZUFjY1BheW1lbnRzKCkpfX0pOwokKCJib2R5Iikub24oImNoYW5nZSIsIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giLGZ1bmN0aW9uKCl7aWYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5pcygiOnZpc2libGUiKXx8JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIikpImNhc2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik\/Y2FsY1VwZGF0ZVBheW1lbnRJbmZvKCk6YSgpfSl9ZnVuY3Rpb24gZXNjYXBlSFRNTChhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKX0KdmFyIGN0YVBheW1lbnRUZXh0RnI9W10sY3RhUGF5bWVudFRleHRFbj1bXSxjYWxjQ3VyUGF5bWVudD17fSxjdGFQYXltZW50VmFsdWVzPVtdLGNhc2hQcmljZUZvclBhZ2U9bnVsbCxjYWxjVXBkYXRlUGF5bWVudFhocj1udWxsOwpmdW5jdGlvbiB1cGRhdGVVcmwoYSl7dHJ5e2lmKCFhLnZlaGljbGVJbmZvKXJldHVybjt2YXIgYz1hLnZlaGljbGVJbmZvLGU9InVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzP25ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc3R5bGVzOmMubW9kZWxKU09OLnN0eWxlcyxkPXdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5zcGxpdCgiLyIpLnNsaWNlKDAsLTEpLmpvaW4oIi8iKSxiPWUuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiBnLmlkPT1hLnN0eWxlaWR9KS5wb3AoKX1jYXRjaChnKXtjb25zb2xlLmVycm9yKGcpO3JldHVybn1iJiYoZT1iLmVuZ2xpc2hUcmltfHwiIixjPWdldEN1cnJlbnRWZWhpY2xlUGF0aChjKSsiLSIrZS5yZXBsYWNlKC9cc3wtL2csIiAiKSxlLmxlbmd0aCYmd2luZG93LnBhcmVudC5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwiIixkKyIvIitjKyIuaHRtbCIpKX0KZnVuY3Rpb24gY2hhbmdlQm5QVG9vbFRpcE1lc3NhZ2UoYSl7YT0nPHNwYW4gY2xhc3M9InBheW1lbnRUb29sdGlwIGZhbCBmYS1pbmZvLWNpcmNsZSIgZGF0YS10b29sdGlwPSInK2ErJyI+PC9zcGFuPic7JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIikuaHRtbChhKTt0cnl7dmFyIGM9JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIC5wYXltZW50VG9vbHRpcCIpLmF0dHIoImRhdGEtdG9vbHRpcCIpOyQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCAucGF5bWVudFRvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Y29udGVudDpjLGdyYXZpdHk6InNvdXRoIix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZhZGVJbiJ9KX1jYXRjaChlKXt9fQpmdW5jdGlvbiBwb3B1cGl6ZXJPbkNsb3NlKGEsYyl7InBheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiIT09YS5jdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQuaWQmJih3aW5kb3cudGVtcFBheW1lbnRTZWxlY3RDaGFuZ2VkJiYod2luZG93LnRlbXBQYXltZW50U2VsZWN0Q2hhbmdlZD0hMSx3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITApLCQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5vcGVuKDEpLCQoIi5yZXZlYWwtbW9kYWwiKS5vZmYoInBvcHVwaXplci5jbG9zZSIscG9wdXBpemVyT25DbG9zZSkpfQpmdW5jdGlvbiBnZXRQb3BDb250YWluU2V0dGluZ3MoKXt2YXIgYT0kKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLmRhdGEoInBvcHVwU2V0dGluZ3MiKTthLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSExO2Eubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0hMTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBhKXJldHVybiExOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRGV0YWlscyYmc2VhcmNoRGV0YWlscy52ZWhpY2xlPyhhLnBheW1lbnRUeXBlPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50c3x8ITEpPyJmaW5hbmNlIjphLnBheW1lbnRUeXBlLGEucGF5bWVudFR5cGU9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRQYXltZW50fHwhMSk\/ImxlYXNlIjphLnBheW1lbnRUeXBlLGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHM9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzfHwKITEpPyEwOiExLGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodFBheW1lbnR8fCExKT8hMDohMSk6KGEucGF5bWVudFR5cGU9IjEiPT0oYS5ub0xlYXNlfHwhMSk\/ImZpbmFuY2UiOmEucGF5bWVudFR5cGUsYS5wYXltZW50VHlwZT0iMSI9PShhLm5vRmluYW5jZXx8ITEpPyJsZWFzZSI6YS5wYXltZW50VHlwZSxhLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSIxIj09KGEubm9MZWFzZXx8ITEpPyEwOiExLGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0iMSI9PShhLm5vRmluYW5jZXx8ITEpPyEwOiExKTtyZXR1cm4gYX0KZnVuY3Rpb24gY2hhbmdlUGFnZVBheW1lbnRWYWx1ZShhKXt2YXIgYz1hLmN1cnJlbnRQYXltZW50LGU9YS5jdXJyZW50UmF0ZSxkPWEucGF5bWVudFRlcm0sYj1hLnBheW1lbnRUeXBlLGc9YS5wYXltZW50SW50ZXJ2YWwscj1hLnBheW1lbnREb3duUGF5bWVudCxtPWEudG90YWxJbnRlcmVzdCxuPWEubHV4ZVRheEFtb3VudCxwPWEucmF0ZVR5cGUsdz1hLmVmZmVjdGl2ZVJhdGUseT1hLnRvdGFsQ29zdCx0PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIix2PWdldFBvcENvbnRhaW5TZXR0aW5ncygpLEE9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JSb3VuZFBheW1lbnQiKS52YWwoKT8wOjIseD0yPT1BP01hdGguZmxvb3IocGFyc2VGbG9hdChjKSkudG9GaXhlZCgwKTpwYXJzZUZsb2F0KGMpLnRvRml4ZWQoMCk7Yz1wYXJzZUZsb2F0KGMpLnRvRml4ZWQoQSk7QT1jLnNwbGl0KCIuIilbMV18fCIiO2M9Yy5yZXBsYWNlKC9cLihbMC05XSopLywKZnVuY3Rpb24oQixFKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRSsiPC9zdXA+In0pOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYiYmx1ciI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCkmJihjPSc8c3BhbiBjbGFzcz0iYmx1ci1wcmljZSI+JytjKyI8L3NwYW4+Iik7dmFyIHo9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UoYyksZj1jKyIkIixxPSIkIitjLGs9ImxlYXNpbmciPT09Yj8iTG9jYXRpb24iOiJGaW5hbmNlbWVudCIsdT0ibGVhc2luZyI9PT1iPyJMZWFzaW5nIjoiRmluYW5jaW5nIixsPWUrIiUiLGg9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK3R4IixEPWgrIi9tb2lzIixDPWgrIi9tdGgiO3N3aXRjaChnKXtjYXNlICJ3ZWVrbHkiOkQ9aCsiL3NlbSI7Qz1oKyIvd2VlayI7YnJlYWs7Y2FzZSAiYml3ZWVrbHkiOkQ9CmgrIi8yc2VtIjtDPWgrIi8yd2VlayI7YnJlYWs7Y2FzZSAic2VtaW1vbnRobHkiOkQ9aCsiL2JpbWVuc3VlbCI7Qz1oKyIvc2VtaW1vbnRobHkiO2JyZWFrO2RlZmF1bHQ6RD1oKyIvbW9pcyIsQz1oKyIvbW9udGgifXZhciBGPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpPyJzY3JhdGNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKT8ic3RyaWtlLXByaWNlLWJsYWNrIjoiIjoiIjtoPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHIpKyIgY29tcHRhbnQiO3ZhciBKPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHIpKyIgZG93biBwYXltZW50IjtyPWsrIiAiK2QrIiBtb2lzIjt1PXUrIiAiK2QrIiBtb250aHMiO3o9JzxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCAnK0YrJyI+Jyt6Kyc8L3NwYW4+IEAgPHNwYW4gY2xhc3M9InR4dC1wYXltZW50Ij4nK2wrIjwvc3Bhbj4iOzA8dy1lJiYoeis9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQodywKJyBjbGFzcz0idHh0LXBheW1lbnQiICcpKTt3PSgiRU5HTElTSCI9PT10P0M6RCkrIiAiKygiRU5HTElTSCI9PT10P0o6aCkrKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCk\/IiI6JyA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwMDA7IiBjbGFzcz0idmRwSW5mb1Rvb2x0aXAgZmFyIGZhLWluZm8tY2lyY2xlIj48L3NwYW4+Jyk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTIsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUxIikuaHRtbCgiRU5HTElTSCI9PT10P3U6cik7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTEsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUyIikuaHRtbCh6KTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMywgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTMiKS5odG1sKHcpO2g9ej0iIjtjYWxjQ3VyUGF5bWVudC5jdXJyZW50UGF5bWVudCYmCmNhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKGg9Y2FsY0N1clBheW1lbnQuY3VycmVudFBheW1lbnRbMF0udG90YWwsej1gQWZmaWNow4PCqSDDg8KgICR7aH0kYCxoPWBMaXN0ZWQgYXQgJCR7aH1gKTtjdGFQYXltZW50VGV4dEZyPVtgJHtmfSAke0R9YCxgJHtyfSBAICR7bH1gLGAke3p9YF07Y3RhUGF5bWVudFRleHRFbj1bYCR7cX0gJHtDfWAsYCR7dX0gQCAke2x9YCxgJHtofWBdO2N0YVBheW1lbnRWYWx1ZXM9W2EuY3VycmVudFBheW1lbnQsZSxkLGddO3dpbmRvdy5wYXJlbnQuQU1QJiZ3aW5kb3cucGFyZW50LkFNUC5zZXRTdGF0ZSh7U1NSX1NUQVRFOntsZWFzZVRlcm1UZXh0OiJFTkdMSVNIIj09PXQ\/dTpyLGxlYXNlUGF5bWVudFR4dDp4LGxlYXNlUGF5bWVudERlY2ltYWw6QSxsZWFzZVJhdGU6bCxsZWFzZVRheFRleHQ6d319KTtjYWxjQ3VyUGF5bWVudC5jdXJUZXJtPWQ7Y2FsY0N1clBheW1lbnQuY3VyUmF0ZT1lO2NhbGNDdXJQYXltZW50LmN1ckludGVydmFsPQpnO2NhbGNDdXJQYXltZW50LnRheFRleHRGcj1EO2NhbGNDdXJQYXltZW50LnRheFRleHRFbj1DO2E9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudFRvb2x0aXBCeVN0eWxlSUQ\/d3N3aWR0aD0wIjtiPSJsZWFzaW5nIj09Yj8ibGVhc2UiOiJmaW5hbmNlIjt0PWdldE9wdGlvbnNBbW91bnQodik7eD12Lmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT12Lm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT09JCgiI1BBR0VJRCIpLnZhbCgpO0E9di5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT92LnN0b2NrTnVtYmVyOiIiO2Y9di5oYXNPd25Qcm9wZXJ0eSgidmluIik\/di52aW46IiI7cT1nZXRBY2Nlc3Nvcmllc0Ftb3VudCh2KTtsPWdldFNlbGVjdGVkQWNjZXNzb3JpZXModik7RD1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQodik7CmxldCBMPVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKEIpe0IuY2hlY2tlZCYmKEI9Qi5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZMLnB1c2goQil9KTt4JiYhQSYmKEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25lc3RvY2tudW1iZXIiKSkmJihBPUMudmFsdWV8fCIiKTt4JiYhZiYmKEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoZj1DLnZhbHVlfHwiIik7JC5hamF4KHt1cmw6YSx0eXBlOiJQT1NUIixkYXRhVHlwZToiSFRNTCIsZGF0YTp7c3R5bGVpZDp2LnN0eWxlaWQsdHlwZTpiLHBheW1lbnQ6cGFyc2VGbG9hdChjKSx0ZXJtOnBhcnNlSW50KGQpLHJhdGU6cGFyc2VGbG9hdChlKSxpbnRlcnZhbDpnLG9wdGlvbnM6dCx0b3RhbEludGVyZXN0Om0saXNJbnZlbnRvcnk6eCxzbjpBLHZpbjpmLGx1eGVUYXhBbW91bnQ6biwKcmF0ZV90eXBlOnAsdG90YWxDb3N0OnksY29uZGl0aW9uYWxSZWJhdGVJZHM6TC5qb2luKCIsIiksYWNjZXNzb3JpZXM6cSxzZWxlY3RlZEFjY2Vzc29yaWVzOmwscHJvdGVjdGlvblBsYW5zOkR9LGJlZm9yZVNlbmQ6ZnVuY3Rpb24oQil7dHJ5e2xldCBFPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO0UubGVuZ3RoJiZCLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixFLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goRSl7Y29uc29sZS5lcnJvcihCKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oQil7JCgiI2Rhcmt0b29sdGlwLXBheW1lbnRXcmFwcGVyLCAjZGFya3Rvb2x0aXAtdmRwUGF5bWVudFRvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBJbmZvVG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcFVzZWRJbmZvVG9vbHRpcCIpLnJlbW92ZSgpO3ZhciBFPSQoIi5uZXdWZHBBY3Rpb25zIikuaGFzQ2xhc3MoIndlc3QiKT8id2VzdCI6JCgiLnVzZWRWZHBBY3Rpb25zIikuaGFzQ2xhc3MoIndlc3QiKT8KIndlc3QiOiJlYXN0IjskKCIudmRwUGF5bWVudFRvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwSW5mb1Rvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwVXNlZEluZm9Ub29sdGlwIikuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6QixncmF2aXR5OkUsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9fSl9CmZ1bmN0aW9uIGdldEN1cnJlbnRWZWhpY2xlUGF0aChhKXt2YXIgYz1bZDJjbWVkaWEudXJsLnNhbml0aXplKGEubWFrZSksZDJjbWVkaWEudXJsLnNhbml0aXplKGEubW9kZWwpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLnllYXIpXS5qb2luKCItIik7IkVOR0xJU0giPT09KCQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCIpJiYoYz1bZDJjbWVkaWEudXJsLnNhbml0aXplKGEubWFrZSksZDJjbWVkaWEudXJsLnNhbml0aXplKGEubW9kZWwpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLnllYXIpXS5qb2luKCItIikpO3JldHVybiBjfQpmdW5jdGlvbiBzaG93UGF5bWVudHMoYSxjLGUsZCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmh0bWwoIiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5odG1sKCIiKTt2YXIgYj0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6MjsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpO3ZhciBnPVtdLHI9JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8MDsiZmluYW5jZSI9PWFbMF0udHlwZSYmYVswXS5kb3ducGF5bWVudD5kLm1heERvd25GaW5hbmNlPygkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5zaG93KCksCiQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApKToibGVhc2UiPT1hWzBdLnR5cGUmJmFbMF0uZG93bnBheW1lbnQ+ZC5tYXhEb3duPygkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksCiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSksJCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSkpOwo1PGEubGVuZ3RoP2EuZm9yRWFjaChmdW5jdGlvbihrKXsoMD09ay50ZXJtJTEyfHw2ND09ay50ZXJtfHw0MD09ZSYmNTE9PWsudGVybXx8MjA9PWUmJlsyNywzMCwzOSw0Ml0uaW5jbHVkZXMoay50ZXJtKXx8WzE2LDIxXS5pbmNsdWRlcyhlKXx8NDI9PWsudGVybSYmMTAxND09cnx8WzMwLDQyXS5pbmNsdWRlcyhrLnRlcm0pJiZbNDcxNTYyLDQ3MTU2Myw0NzE1NjRdLmluY2x1ZGVzKHBhcnNlSW50KHNldHRpbmdzLnN0eWxlaWQpKXx8Mjc9PWsudGVybSYmMjc9PWV8fDUyPT1rLnRlcm0mJjM5PT1lKSYmZy5wdXNoKGspfSk6Zz1hO3ZhciBtPXt9LG49ITE7Zy5mb3JFYWNoKGZ1bmN0aW9uKGssdSl7T2JqZWN0Lmhhc093bihtLGsudGVybSk\/bj0hMDptW2sudGVybV09e307bVtrLnRlcm1dW2sucmF0ZV90eXBlXT11fSk7dmFyIHA9W10sdz0hMSx5PSExO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYodz1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzFdfHwKITEseT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzBdfHwhMSk7aWYoYVswXSYmImxlYXNlIj09YVswXS50eXBlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhWzBdLmttX2FsbG93YW5jZSl7dmFyIHQ9MDxkLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9kLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQ7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwodCl9bGV0IHY9ZC50b3RhbEluY2VudGl2ZSxBPW4\/JCgiI0xPV0VTVFBBWU1FTlRfTEFCRUwiKS52YWwoKToiIix4PW4\/JCgiI0xPV0VTVFJBVEVfTEFCRUwiKS52YWwoKToiIjt2YXIgej0wOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciAuanMtdGVtcEttQWxsb3dlZCIpLnJlbW92ZSgpOyQuZWFjaChnLGZ1bmN0aW9uKGssdSl7aWYoIXAuaW5jbHVkZXModS50ZXJtKSl7cC5wdXNoKHUudGVybSk7dmFyIGw9CiJzdGFuZGFyZCI9PXUucmF0ZV90eXBlfHwyPk9iamVjdC5rZXlzKG1bdS50ZXJtXSkubGVuZ3RoP3U6Z1ttW3UudGVybV0uc3RhbmRhcmRdLGg9Mj09T2JqZWN0LmtleXMobVt1LnRlcm1dKS5sZW5ndGg\/Z1ttW3UudGVybV0uc3VidmVudGVkXTohMSxEPTI9PU9iamVjdC5rZXlzKG1bdS50ZXJtXSkubGVuZ3RoP21bdS50ZXJtXS5zdWJ2ZW50ZWQ6ITEsQz11LnRlcm0sRj11LmRvd25wYXltZW50LnRvRml4ZWQoMCksSj1sLnBheW1lbnQudG9GaXhlZChiKSxMPWwucGF5bWVudC50b0ZpeGVkKGIpO0o9Si5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihPLEspe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytLKyI8L3N1cD4ifSk7dmFyIEI9bC5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoYiksRT1sLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChiKTtCPUIucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oTyxLKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrSysiPC9zdXA+In0pOwp2YXIgVD1sLnJhdGUsZGE9InBheW1lbnQiK2s7az0icGF5bWVudCIraysid2l0aFRheGVzIjtDPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyI8c3Bhbj4iK0MrIjwvc3Bhbj4gbW9udGgiOiI8c3Bhbj4iK0MrIjwvc3Bhbj4gbW9pcyI7Rj1gPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHtGfTwvc3Bhbj5gKygkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iIGRvd24gcGF5bWVudCI6IiBjb21wdGFudCIpO3ZhciBVPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyI8ZGl2PiIrJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKSsiPC9kaXY+IjoiK3R4IixNPWwuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/bC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLFA9IiI7MDxwYXJzZUZsb2F0KE0pLWwucmF0ZSYmKFArPWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KE0sIiIsJ2NsYXNzPSItZnMxMCInKSk7dmFyIFY9bC50b3RhbE9ibGlnYXRpb25BbW91bnQ\/CmwudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsVz0nZGF0YS10b29sdGlwPSInK2wudG9vbHRpcCsnIicsWD0nZGF0YS10b29sdGlwPSInK2wudG9vbHRpcFdpdGhUYXhlcysnIicsRyxlYT1udWxsIT0oRz1sLm0yZF9maW5hbmNlKT9HOnY7Rz0ic2luZ2xlLWNvbHVtbiI7dT13JiZ3PT11LnRlcm0mJnkmJnk9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpPyJjaGVja2VkIjoiIjt2YXIgUT0ic21hbGwtYm94IixIPSIiLEk9IiI7aWYoaCl7Rz0ibGVmdC1zZWN0aW9uIjtRPSIiO0g9aC5wYXltZW50LnRvRml4ZWQoYik7bGV0IE89aC5wYXltZW50LnRvRml4ZWQoYik7SD1ILnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGZhLFIpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytSKyI8L3N1cD4ifSk7ST1oLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChiKTtsZXQgSz1oLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChiKTsKST1JLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGZhLFIpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytSKyI8L3N1cD4ifSk7dmFyIFk9aC5yYXRlLnRvRml4ZWQoMiksaGE9InBheW1lbnQiK0Q7RD0icGF5bWVudCIrRCsid2l0aFRheGVzIjtsZXQgTj1oLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2guY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxTPSIiOzA8cGFyc2VGbG9hdChOKS1oLnJhdGUmJihTKz1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dChOLCIiLCdjbGFzcz0iLWZzMTAiJykpO2xldCBaPWgudG90YWxPYmxpZ2F0aW9uQW1vdW50P2gudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsYWE9J2RhdGEtdG9vbHRpcD0iJytoLnRvb2x0aXArJyInLGJhPSdkYXRhLXRvb2x0aXA9IicraC50b29sdGlwV2l0aFRheGVzKyciJyxjYT1oLm0yZF9maW5hbmNlO0g9J1x0PGRpdiBpZD0iJytoYSsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnKwphYSsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytZKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJythYSsiPjwvaT4iK1MrJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytIKyc8L3NwYW4+PC9kaXY+XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrVSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2gudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2gucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2gucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2gucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJysKTysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2gucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2gudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicraC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytOKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1orJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2gucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytoLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrY2ErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHQ8bGFiZWw+Jyt4KyI8L2xhYmVsPlx0XHQ8L2Rpdj5cdDwvZGl2PiI7ST0nXHQ8ZGl2IGlkPSInK0QrCiciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrYmErJz5cdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXJhdGUiPicrWSsnJSA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrYmErIj48L2k+IitTKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrSSsnPC9zcGFuPjwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytoLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytoLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytoLnBheW1lbnRXaXRoVGF4ZXMrCiciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicraC5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK0srJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytoLnJlc2lkdWFsV2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytoLnRvdGFsSW50ZXJlc3RXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2gubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrTisnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytaKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytoLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicraC5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK2NhKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytoLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrCmguaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytoLnBzdCsnIlx0XHRcdFx0Plx0XHRcdDxsYWJlbD4nK3grIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+In1oPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJytRKyciPlx0PGRpdiBjbGFzcz0idGVybSI+JytDKyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+JytGKyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrZGErJyIgY2xhc3M9IicrRysnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrVysnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0orJzwvc3Bhbj4gPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrClcrJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JytVKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcmF0ZSI+JytUKyIlICIrUCsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdCcrdSsnXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrbC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrbC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrbC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrbC5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK0wrJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytsLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytsLnRvdGFsSW50ZXJlc3QrCiciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytsLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK00rJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrVisnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrbC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2wucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytlYSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsPicrQSsiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+IitIKyJcdDwvZGl2PjwvZGl2PiI7Qj0nPGRpdiBjbGFzcz0iZmluYW5jaW5nLW9wdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICcrUSsnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrCkMrJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK0YrJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJytrKyciIGNsYXNzPSInK0crJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1grJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytCKyc8L3NwYW4+IDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1grJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrVCsiJSAiK1ArJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0XHQ8aW5wdXQgXHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHQnK3UrJ1x0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInKwpsLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytsLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytsLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytsLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrRSsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2wucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2wudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrbC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytNKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1YrJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2wucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytsLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrCnYrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2wuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytsLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrbC5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbD4nK0ErIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrSSsiXHQ8L2Rpdj48L2Rpdj4iOzA9PWwucGF5bWVudFdpdGhUYXhlcyYmKEI9IiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQoaCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmFwcGVuZChCKTt6Kyt9fSk7dD0kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bY2hlY2tlZF0nKS5sZW5ndGg\/JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW2NoZWNrZWRdJylbMF06JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykubGFzdCgpWzBdOwokKHQpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIik7dD1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhWzBdLnRvdGFsLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVRvdGFsIikudGV4dCh0KTsibGVhc2UiPT1hWzBdLnR5cGU\/KHQ9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYVswXS5rbV9hbGxvd2FuY2UudG9GaXhlZCgwKSksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlS00iKS50ZXh0KHQpLCQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuaGlkZSgpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITApLAokKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VGaW5hbmNlIikuc2hvdygpKTskKCIucGF5bWVudENhbGN1bGF0b3JDb21tb25Ob3RpY2UiKS5zaG93KCk7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5oaWRlKCkpOigkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5oaWRlKCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuc2hvdygpKTswPGM\/KGM9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYy50b0ZpeGVkKDApKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VGZWVzIikudGV4dChjKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZEZlZXMiKS5zaG93KCkpOiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLmhpZGUoKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyAjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzTGlzdCIpLmVtcHR5KCk7aWYoZC5jdXN0b21GZWVzLmxlbmd0aCl7dmFyIGY9Ijx1bD4iOyQuZWFjaChkLmN1c3RvbUZlZXMsZnVuY3Rpb24oayx1KXtrPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyhuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYih1LmRlc2NFbiksbD0+bC5jaGFyQ29kZUF0KDApKSk6KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKHUuZGVzY0ZyKSxsPT5sLmNoYXJDb2RlQXQoMCkpKTt1PXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKHUuYW1vdW50LnRvRml4ZWQoMCkpO3U9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UodSk7Zis9IjxsaT4iK2srIiA6ICIrdSsiPC9saT4ifSk7Zis9IjwvdWw+IjskKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzICNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXNMaXN0IikuYXBwZW5kKGYpOwokKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzIikuc2hvdygpfWVsc2UgJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLmhpZGUoKTtjPSJsZWFzZSI9PWFbMF0udHlwZT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yTGVhc2VUZXh0IikudmFsKCl8fCIiKS50b0xvd2VyQ2FzZSgpOigkKCIjcGF5bWVudENhbGN1bGF0b3JGaW5hbmNlVGV4dCIpLnZhbCgpfHwiIikudG9Mb3dlckNhc2UoKTskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VUeXBlIikudGV4dChjKTswPGFbMF0ucmViYXRlPyhhPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIkIithWzBdLnJlYmF0ZTphWzBdLnJlYmF0ZSsiICQiLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVJlYmF0ZSIpLnRleHQoYSksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRSZWJhdGVzIikuc2hvdygpKTokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZFJlYmF0ZXMiKS5oaWRlKCk7aWYoZC5jb25kaXRpb25hbFJlYmF0ZXMmJgowPGQuY29uZGl0aW9uYWxSZWJhdGVzLmxlbmd0aCl7dmFyIHE9IiI7ZC5jb25kaXRpb25hbFJlYmF0ZXMuZm9yRWFjaChmdW5jdGlvbihrKXt2YXIgdT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihrLmFtb3VudC50b1N0cmluZygpKTtxKz0iPGxpPiIray5uYW1lKyI6IC0iK0QyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHUpKyI8L2xpPiJ9KTtxJiYkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZFJlYmF0ZXMiKS5hZnRlcignPGRpdiBpZD0icGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb25kaXRpb25hbFJlYmF0ZXMiIGNsYXNzPSJwYXltZW50Q2FsY3VsYXRvck5vdGljZVNlY3Rpb24iPjxzdHJvbmc+JysoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IlNlbGVjdGVkIENvbmRpdGlvbmFsIFJlYmF0ZXM6IjoiUmFiYWlzIGNvbmRpdGlvbm5lbHMgc8ODwqlsZWN0aW9ubsODwqlzOiIpKyI8L3N0cm9uZz48dWw+IitxKyI8L3VsPjwvZGl2PiIpfWVsc2UgJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29uZGl0aW9uYWxSZWJhdGVzIikucmVtb3ZlKCk7CnNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl9CmZ1bmN0aW9uIHNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl7aWYoIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKSkkKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIgLnBheW1lbnRUb29sdGlwIikuZWFjaChmdW5jdGlvbihjKXt0cnl7dmFyIGU9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKSxkPSQodGhpcykuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/Indlc3QiOiJlYXN0IjskKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmUsZ3Jhdml0eTpkLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGIpe319KTtlbHNle2Zvcih2YXIgYT0wOzU+YTthKyspJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2EpLmxlbmd0aCYmKCQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKS5yZW1vdmUoKSwKJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2ErIndpdGhUYXhlcyIpLnJlbW92ZSgpKTskKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBjPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksZT0kKHRoaXMpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpLGQ9ImVhc3QiO2UuaGFzQ2xhc3MoImxlZnRUb29sdGlwIik\/ZD0id2VzdCI6ZS5oYXNDbGFzcygicmlnaHRUb29sdGlwIikmJihkPSJlYXN0Iik7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpjLGdyYXZpdHk6ZCx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIn0pfWNhdGNoKGIpe319KX19CmZ1bmN0aW9uIHNldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oYSl7dmFyIGM9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7Yy52ZWhpY2xlSW5mbz1hOyQoIiNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvWWVhciIpLnRleHQoYS55ZWFyKTt2YXIgZT1hLkNGTW9kZWxOYW1lfHxhLm1vZGVsLGQ9YS5tYWtlLnRvVXBwZXJDYXNlKCkrIiAiK2UudG9VcHBlckNhc2UoKTsiTUVSQ0VERVMtQkVOWiIhPWEubWFrZS50b1VwcGVyQ2FzZSgpfHwvXGJzcHJpbnRlclxiL2kudGVzdChlKXx8KGQ9YS5tYWtlLnRvVXBwZXJDYXNlKCkpO2lmKCJidWlsZGFuZHByaWNlLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fGMuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWMubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpKWQrPSIgIithLkNGU3R5bGVOYW1lLnRvVXBwZXJDYXNlKCksCiQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm9NYWtlTW9kZWxUcmltIikudGV4dChkKTtlPWEubWFrZSsifHx8IitlKyJ8fHwiK2EueWVhcjtjLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpJiYoZSs9Inx8fChTdG9jazoiK2Muc3RvY2tOdW1iZXIrIikiKTtDb29raWVzLnNldCgibGFzdHZpZXdlZHZlaGljbGUiLGUsbnVsbCwiLyIpO2EuaW1hZ2VzWzBdJiYoZT0oYS5pbWFnZXNbMF0rIiIpLnJlcGxhY2UoL2h0dHAocz8pOlwvXC9tZWRpYS4oY2hyb21lZGF0YXxjYXJib29rKS5jb21cL01lZGlhR2FsbGVyeVwvbWVkaWFcLy8sIi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcnMvY2IlQ0IvJU1BS0UvJU1PREVMLyVZRUFSLyIpLnJlcGxhY2UoIiVDQiIsTWF0aC5yb3VuZCg5OSpNYXRoLnJhbmRvbSgpKSsxRTUpLnJlcGxhY2UoIiVNQUtFIixhLm1ha2UucmVwbGFjZSgiLSIsIl8iKSkucmVwbGFjZSgiJU1PREVMIiwKYS5tb2RlbC5yZXBsYWNlKCItIiwiXyIpKS5yZXBsYWNlKCIlWUVBUiIsYS55ZWFyKSwkKCIjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2VEaXYiKS5odG1sKCc8aW1nIGlkPSJwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZSIgc3JjPSInK2UucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzAzOTsiKSsnIiBjbGFzcz0icGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2UiPicpKTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IG9wdGlvbiIpLnJlbW92ZSgpOygidW5kZWZpbmVkIiE9dHlwZW9mIG5ld2NhckRldGFpbHM\/bmV3Y2FyRGV0YWlscy5hbGxTdHlsZXM6YS5tb2RlbEpTT04uc3R5bGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGIpeyQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS5hcHBlbmQobmV3IE9wdGlvbihiLkNGU3R5bGVOYW1lLApiLmlkKSl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikudmFsKGMuc3R5bGVpZCk7Y2FsY1VwZGF0ZVBheW1lbnRJbmZvKCl9CmZ1bmN0aW9uIGNhbGNVcGRhdGVTdHlsZUluZm8oYSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzJiZuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsKXt2YXIgYz1uZXdjYXJEZXRhaWxzLmFsbFN0eWxlcy5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWQ9PWF9KVswXTtjPWN8fG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc3R5bGVzWzBdO2MubWFrZT1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLm1ha2U7Yy5tb2RlbD1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLm1vZGVsO2MuaW1hZ2VzPW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuaW1hZ2VzO3NldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oYyl9ZWxzZXtjPXNldHRpbmdzLmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP3NldHRpbmdzLnN0b2NrTnVtYmVyOiIiO3ZhciBlPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFZlaGljbGVKc29uQnlTdHlsZUlEP3dzd2lkdGg9MCI7CiQuYWpheCh7dXJsOmUsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6YSx2ZWhpY2xlaWQ6Y30sc3VjY2VzczpmdW5jdGlvbihkKXtzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGQpfX0pfX0KZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvcklzTmV3UG9wdXBFbmFibGVkIikudmFsKCk7IiIhPWEucHJvbW9CdXR0b25UZXh0JiYiMSIhPT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIikmJiQoIiNwYXltZW50Q2FsY3VsYXRvcklzTmV3UG9wdXBFbmFibGVkIikudmFsKCk\/KC0xIT09YS5wcm9tb0J1dHRvblRleHQuaW5kZXhPZigiPGJyIikmJihhLnByb21vQnV0dG9uVGV4dD1hLnByb21vQnV0dG9uVGV4dC5zdWJzdHIoMCxhLnByb21vQnV0dG9uVGV4dC5pbmRleE9mKCI8YnIiKSkpLCQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIikuaHRtbChhLnByb21vQnV0dG9uVGV4dCksJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuc2hvdygpKToKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuaGlkZSgpO2xldCBjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0ibGVhc2luZyJdJyksZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImZpbmFuY2luZyJdJyksZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImNhc2giXScpO2MuaGlkZGVuPSIxIj09KGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fCExKTtlLmhpZGRlbj0iMSI9PShhLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHN8fCExKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIikuaGlkZGVuPSEwO3NldFRpbWVvdXQoKCk9PntpZihfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJgoiIj09JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl7dmFyIGI9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikpOyQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKGIudmFsdWUpO19sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpJiYoYj1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fY3VycmVudF92YWx1ZSIpKSwkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLmF0dHIoImRhdGEtY3VycmVudCIsYi52YWx1ZSkpfWlmKCIiIT0kKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpJiYwPCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkpe2I9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl8fDA7dmFyIGc9cGFyc2VJbnQoJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS5hdHRyKCJkYXRhLWN1cnJlbnQiKSl8fGI7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKGcpOwokKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS5hdHRyKCJtYXgiLGIpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b24iKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuc2hvdygpfWVsc2UgJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCIiKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluQnV0dG9uIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS50cmlnZ2VyKCJibHVyIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBDdGFUcmFjayYmQ3RhVHJhY2suZ2V0VHJhY2tTdGVwKCJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIpKXtsZXQgcj1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIsZm9yY2VVcGRhdGU6ITAsCm9uQ29tcGxldGU6bj0+e24uZGF0YXNldC5jb21wbF90eHRfZnI9bi5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEZyWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IixjdGFQYXltZW50VGV4dEZyWzFdKTtuLmRhdGFzZXQuY29tcGxfdHh0X2VuPW4uZGF0YXNldC5pbml0X2NvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRFblswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRFblsxXSk7bj17cGF5bWVudDp7fX07X2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSYmKG49SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpKSk7bGV0IHA9IkZSRU5DSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Y3RhUGF5bWVudFRleHRGcjpjdGFQYXltZW50VGV4dEVuO24ucGF5bWVudD17bGlzdFByaWNlOnBbMl18fAoiIixwYXltZW50OnBbMF18fCIiLHJhdGU6cFsxXXx8IiIscGF5bWVudFZhbHVlOmN0YVBheW1lbnRWYWx1ZXN8fFtdfTtfbG9jYWxTdG9yYWdlU2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIsSlNPTi5zdHJpbmdpZnkobiksMzApO0Nvb2tpZXMuc2V0KCJjdGFfZGF0YV92YWxpZCIsMSwxLCIvIil9fX0pO2I9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEiKTtiLmlubmVyVGV4dD0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iQ29uZmlybSI6IkNvbmZpcm1lciI7Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e24ucHJldmVudERlZmF1bHQoKTtuPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYKIW58fGRvY3VtZW50LmRpc3BhdGNoRXZlbnQocik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9KTtnPW49PntuPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYhbnx8ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChyKX07bGV0IG09YS5wYXltZW50VHlwZTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGI9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxtPSJ1bmRlZmluZWQiIT1iWzBdP2JbMF06bSxtPSJsZWFzaW5nIj09PW0\/ImxlYXNlIjoiZmluYW5jaW5nIj09PW0\/ImZpbmFuY2UiOm0pOyJsZWFzZSI9PW0mJmM\/Yy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2siLAp7ZGV0YWlsOntpc0ZpcnN0UnVuOiEwfX0pKToiZmluYW5jZSI9PW0mJmU\/ZS5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2siLHtkZXRhaWw6e2lzRmlyc3RSdW46ITB9fSkpOmQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrIix7ZGV0YWlsOntpc0ZpcnN0UnVuOiEwfX0pKTskKCIucmV2ZWFsLW1vZGFsIikub2ZmKCJwb3B1cGl6ZXIuY2xvc2UiLGcpLm9uKCJwb3B1cGl6ZXIuY2xvc2UiLGcpOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLnNob3coKX19LDEwMCk7Y2FsY1VwZGF0ZVN0eWxlSW5mbyhhLnN0eWxlaWQpfQpmdW5jdGlvbiBjYWxjVXBkYXRlUGF5bWVudEluZm8oKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxjPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiLGU9YS5wYXltZW50VHlwZSxkPTAsYj1wYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8MCksZz1udWxsLHI9bnVsbCxtPWdldE9wdGlvbnNBbW91bnQoYSksbj1nZXRBY2Nlc3Nvcmllc0Ftb3VudChhKSxwPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoYSksdz1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYSkseT1hLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1hLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSwKdD0hMSx2PWEuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/YS5zdG9ja051bWJlcjoiIixBPWEuaGFzT3duUHJvcGVydHkoInZpbiIpP2EudmluOiIiO2lmKHkmJiF2KXt2YXIgeD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO3gmJih2PXgudmFsdWV8fCIiKX15JiYhQSYmKHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoQT14LnZhbHVlfHwiIik7eSYmIWEuc3R5bGVpZCYmKHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihhLnN0eWxlaWQ9eC52YWx1ZXx8YS5zdHlsZWlkKTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKHI9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxlPSJ1bmRlZmluZWQiIT1yWzBdP3JbMF06ZSx0PXJbMV0sZD1wYXJzZUludChyWzRdKS1iLGQ9MD5kPzA6ZCxnPQpyWzJdLHI9clszXSk7YS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cyYmImxlYXNlIj09ZSYmKGU9ImZpbmFuY2UiLHQ9ITEsZD0wLHI9Zz1udWxsKTthLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHMmJlsiZmluYW5jZSIsImZpbmFuY2luZyJdLmluY2x1ZGVzKGUpJiYoZT0ibGVhc2UiLHQ9ITEsZD0wLHI9Zz1udWxsKTtsZXQgej1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihmKXtmLmNoZWNrZWQmJihmPWYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmei5wdXNoKGYpfSk7Y2FsY1VwZGF0ZVBheW1lbnRYaHI9JC5hamF4KHt1cmw6Yyx0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDphLnN0eWxlaWQscGF5bWVudFR5cGU6ZSxkb3ducGF5bWVudDpiK2Qsb3B0aW9uc0Ftb3VudDptLHBheW1lbnRGcmVxdWVuY3k6ZyxrbUFsbG93YW5jZTpyLAppc0ludmVudG9yeTp5LG9wdGlvbnM6bSxzbjp2LHZpbjpBLGNvbmRpdGlvbmFsUmViYXRlSWRzOnouam9pbigiLCIpLGFjY2Vzc29yaWVzOm4sc2VsZWN0ZWRBY2Nlc3NvcmllczpwLHByb3RlY3Rpb25QbGFuczp3fSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2Yuc2VsZWN0ZWRUZXJtPXQ7JCgiI21heERvd25QYXltZW50Rm9yVHJpbSIpLnZhbChmLm1heERvd24pOyQoIiNtYXhEb3duUGF5bWVudEZpbmFuY2VGb3JUcmltIikudmFsKGYubWF4RG93bkZpbmFuY2UpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKGQpO2U9ImxlYXNlIj09PWU\/ImxlYXNpbmciOiJmaW5hbmNlIj09PWU\/ImZpbmFuY2luZyI6ZTsiY2FzaCI9PT1lJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpKTsKZi5jdXJyZW50UGF5bWVudCYmMCE9PWYuY3VycmVudFBheW1lbnQubGVuZ3RofHwiY2FzaCI9PT1lPygkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpLGYuY3VycmVudFBheW1lbnQmJjA8Zi5jdXJyZW50UGF5bWVudC5sZW5ndGgmJigkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbChmLmN1cnJlbnRQYXltZW50WzBdLmludGVydmFsKSxlPWV8fCgibGVhc2UiPT09CmYuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyIpKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuc2hvdygpKTtzaG93SGlkZVBheW1lbnRTZWN0aW9uKGYsZSk7cG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd24oZik7ImxlYXNpbmciPT1lPyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpO2dldENhc2hQcmljZUJsb2NrKGYpOwoiY2FzaCI9PT1lP2VuYWJsZUNhc2hPcHRpb24oKTpmLmN1cnJlbnRQYXltZW50JiZmLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKGNhbGNDdXJQYXltZW50PWYsc2hvd1BheW1lbnRzKGYuY3VycmVudFBheW1lbnQsZi5wYXltZW50RmVlcyxmLm1ha2VpZCxmKSl9LGVycm9yOmZ1bmN0aW9uKGYscSxrKXsiYWJvcnQiIT09cSYmY29uc29sZS5lcnJvcigiY2FsY1VwZGF0ZVBheW1lbnRJbmZvOjogUGF5bWVudCBjYWxjdWxhdGlvbiBlcnJvcjoiLHEsayl9fSl9CmZ1bmN0aW9uIGVuYWJsZUNhc2hPcHRpb24oKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nY2FzaCddIikuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUxlYXNlIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUZpbmFuY2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JDb21tb25Ob3RpY2UiKS5oaWRlKCk7CiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDYXNoIikucHJvcCgiaGlkZGVuIiwhMSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLnNob3coKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIikuaGlkZGVuPSExOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpOwoxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJmNoYW5nZVBhZ2VDYXNoVmFsdWUoKX0KZnVuY3Rpb24gY2hhbmdlUGFnZUNhc2hWYWx1ZSgpe2lmKG51bGwhPT1jYXNoUHJpY2VGb3JQYWdlKXt2YXIgYT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCIsYz1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihjYXNoUHJpY2VGb3JQYWdlLnRvU3RyaW5nKCkpLGU9c3RvcmUuZ2V0KCJpMThuIikuREVGQVVMVF9QQVlNRU5UX0NBU0gsZD0nPHNwYW4gY2xhc3M9InR4dC1wYXltZW50IGZvcm1hdC1wcmljZSI+JytjKyI8L3NwYW4+IixiPXN0b3JlLmdldCgiaTE4biIpLkxBQkVMX0JFRk9SRV9UQVhFUy50b0xvd2VyQ2FzZSgpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUyLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMSIpLmh0bWwoZSk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTEsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUyIikuaHRtbChkKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMywgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTMiKS5odG1sKGIpOwphPSJFTkdMSVNIIj09PWE\/IiQiK2M6YysiICQiO2N0YVBheW1lbnRUZXh0RnI9W2EsIkNvbXB0YW50IiwiIl07Y3RhUGF5bWVudFRleHRFbj1bYSwiQ2FzaCIsIiJdO2N0YVBheW1lbnRWYWx1ZXM9W2Nhc2hQcmljZUZvclBhZ2UsMCwwLCJjYXNoIl07JCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmxlbmd0aCYmKCQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5oaWRlKCksJCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIikuaGlkZSgpKTskKCIjZGFya3Rvb2x0aXAtcGF5bWVudFdyYXBwZXIsICNkYXJrdG9vbHRpcC12ZHBQYXltZW50VG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcEluZm9Ub29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwVXNlZEluZm9Ub29sdGlwIikucmVtb3ZlKCk7JCgiLnZkcFBheW1lbnRUb29sdGlwLCAucGF5bWVudFdyYXBwZXIgLnZkcEluZm9Ub29sdGlwLCAucGF5bWVudFdyYXBwZXIgLnZkcFVzZWRJbmZvVG9vbHRpcCIpLmRhcmtUb29sdGlwKHtvcGFjaXR5OjB9KX19CmZ1bmN0aW9uIGdldENhc2hQcmljZUJsb2NrKGEpe3ZhciBjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIiksZT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxkPWUuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYidHJ1ZSI9PWUubm9UcmltU2VsZWN0fHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpLGI9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwiRlJFTkNIIjtsZXQgZz1wYXJzZUludChhLm9yaWdpbmFsUHJpY2V8fGUudmVoaWNsZUluZm8mJmUudmVoaWNsZUluZm8ubXNycEFsbElufHwwKTt2YXIgcj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihnLnRvU3RyaW5nKCkpO2xldCBtPWMucXVlcnlTZWxlY3RvcigiLmNhbGMtcGF5bWVudC1jYXNoIik7dmFyIG49IjEiPT1jLnF1ZXJ5U2VsZWN0b3IoIiNkaXNwbGF5QnJlYWtkb3duIikudmFsdWU7CmxldCBwPSIxIj09Yy5xdWVyeVNlbGVjdG9yKCIjaGlkZVJlYmF0ZXMiKS52YWx1ZTt2YXIgdz0iMSI9PWMucXVlcnlTZWxlY3RvcigiI3NjcmF0Y2hPcmlnaW5hbFByaWNlIikudmFsdWU7bGV0IHk9IkVOR0xJU0giPT1iPyJTdGFydGluZyBhdCI6IsOAIHBhcnRpciBkZSI7Yz0iRU5HTElTSCI9PWI\/IllvdXIgcHJpY2UiOiJWb3RyZSBwcml4IjtkJiYoeT0kKCIjTkVXSU5WX1BSSUNFX0xBQkVMX09SSUdJTkFMIikudmFsKCksYz0kKCIjTkVXSU5WX1BSSUNFX0xBQkVMX0ZJTkFMIikudmFsKCksZS52ZWhpY2xlSW5mbyYmeS5yZXBsYWNlKCJ7JE1BS0V9IixlLnZlaGljbGVJbmZvLm1ha2UpLnJlcGxhY2UoInskTU9ERUx9IixlLnZlaGljbGVJbmZvLkNGTW9kZWxOYW1lKS5yZXBsYWNlKCJ7JFZFUlNJT059IixlLnZlaGljbGVJbmZvLkNGU3R5bGVOYW1lKS5yZXBsYWNlKCJ7JFlFQVJ9IixlLnZlaGljbGVJbmZvLnllYXIpKTtsZXQgdD0iRU5HTElTSCI9PWI\/ImRlc2NFbiI6ImRlc2NGciI7CiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVRvdGFsIikuaHRtbChnKTtlPXcmJmEucHJpY2VBbWVuZGVtZW50cyYmMD5hLnByaWNlQW1lbmRlbWVudHMudG90YWw\/InN0cmlrZS1wcmljZSI6IiI7cj1gCgkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke24mJiFwP2M6eX08L3NwYW4+CgkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSAke2V9Ij4ke3J9PC9zcGFuPgoJCTwvZGl2PmA7aWYoMD09KGEucHJpY2VBbWVuZGVtZW50c3x8W10pLmxlbmd0aCltLmlubmVySFRNTD1yO2Vsc2V7dz0oYS5wcmljZUFtZW5kZW1lbnRzLmZlZXNMaXN0fHxbXSkucmVkdWNlKCh6LGYpPT57aWYoMD09Zi5hbW91bnQpcmV0dXJuIHo7bGV0IHE9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZi5hbW91bnQudG9TdHJpbmcoKSk7cmV0dXJuIHorPWAKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHsobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoZlt0XSksaz0+ay5jaGFyQ29kZUF0KDApKSl9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9Ij4ke3F9PC9zcGFuPgoJCQk8L2Rpdj4KCQlgfSwiIik7dmFyIHY9KGEucHJpY2VBbWVuZGVtZW50cy5pbmNlbnRpdmVzTGlzdHx8W10pLnJlZHVjZSgoeixmKT0+e2lmKDA9PWYuYW1vdW50KXJldHVybiB6O2xldCBxPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGYuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiB6Kz1gCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGZbdF0pLGs9PmsuY2hhckNvZGVBdCgwKSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+LSR7cX08L3NwYW4+CgkJCTwvZGl2PgoJCWB9LCIiKTtkPShhLnByaWNlQW1lbmRlbWVudHMucG9zdFRheEluY2VudGl2ZXNMaXN0fHxbXSkucmVkdWNlKCh6LGYpPT57aWYoMD09Zi5hbW91bnQpcmV0dXJuIHo7bGV0IHE9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZi5hbW91bnQudG9TdHJpbmcoKSk7cmV0dXJuIHorPWAKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHsobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoZlt0XSksaz0+ay5jaGFyQ29kZUF0KDApKSl9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9Ij4tJHtxfTwvc3Bhbj4KCQkJPC9kaXY+CgkJYH0sIiIpO3ZhciBBPWctKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbEZlZXx8MCkrKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbFJlYmF0ZXx8MCkseD0wPChhLnByaWNlQW1lbmRlbWVudHMuY29uZGl0aW9uYWxSZWJhdGVzVG90YWx8fDApO2I9eCYmYS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U\/YS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U6ZztbIk5FV0NBUlMiLCJORVdDQVJERVRBSUxTIl0uaW5jbHVkZXMoc2l0ZVBhZ2UubmFtZSl8fChBPWctKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbEZlZXx8MCkrKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbFJlYmF0ZXx8MCksYj14JiZhLnByaWNlQW1lbmRlbWVudHMuZmluYWxQcmljZT9hLnByaWNlQW1lbmRlbWVudHMuZmluYWxQcmljZTpnKTtjYXNoUHJpY2VGb3JQYWdlPWI7QT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihBLnRvU3RyaW5nKCkpO2I9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYi50b1N0cmluZygpKTsKYT13Lmxlbmd0aHx8di5sZW5ndGg7bj1uJiYhcCYmYT9gCgkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke3l9PC9zcGFuPgoJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0gJHtlfSI+JHtBfTwvc3Bhbj4KCQk8L2Rpdj5gK3crdjoiIjthJiYocj1gCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7Y308L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0iJHsiIiE9bj8icHJpY2VGaW5hbCI6IiJ9ICR7ImZvcm1hdC1wcmljZSJ9Ij4ke2J9PC9zcGFuPgoJCQk8L2Rpdj5gKTttLmlubmVySFRNTD1uK3IrZH19CmZ1bmN0aW9uIGdldE9wdGlvbnNBbW91bnQoYSl7dmFyIGM9YS5wYXltZW50T3B0aW9ucz9hLnBheW1lbnRPcHRpb25zOjA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJiJ0cnVlIj09YS5ub1RyaW1TZWxlY3R8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTtpZihlfHxhJiZlKWM9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkT3B0aW9uc1RvdGFsLGE9cGFyc2VJbnQobW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLmRlZmF1bHRPcHRpb25BbW91bnQpLDA8YSYmKGMtPWEsYz1NYXRoLm1heCgwLGMpKTtyZXR1cm4gY3x8MH0KZnVuY3Rpb24gZ2V0QWNjZXNzb3JpZXNBbW91bnQoYSl7dmFyIGM9MDthLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1hLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCQoIiNQQUdFSUQiKS52YWwoKTthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhlfHxhJiZlKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NUb3RhbCYmKGM9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjVG90YWwpO3JldHVybiBjfHwwfQpmdW5jdGlvbiBnZXRTZWxlY3RlZEFjY2Vzc29yaWVzKGEpe3ZhciBjPSIiO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7KGV8fGEmJmUpJiZ2b2lkIDAhPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY0lkcyYmKGM9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjSWRzLmpvaW4oIiwiKSk7cmV0dXJuIGN8fCIifQpmdW5jdGlvbiBnZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYSl7dmFyIGM9MDthLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmInRydWUiPT1hLm5vVHJpbVNlbGVjdHx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCQoIiNQQUdFSUQiKS52YWwoKTthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhlfHxhJiZlKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRQcm90ZWN0aW9uUGxhblRvdGFsJiYoYz1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRQcm90ZWN0aW9uUGxhblRvdGFsKTtyZXR1cm4gY3x8MH0KZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYSl7cmV0dXJuIGEucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZywiLCIpfWZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZFRyaWdnZXIoYSxjKXskKGEpLnRyaWdnZXIoInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIix7b3JpZ0V2ZW50OmN9KTthPW5ldyBFdmVudCgicGF5bWVudENhbGN1bGF0b3IuY2xpY2siKTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGEpfWZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZE5ld1ZEUFRyaWdnZXIoYSxjKXt2YXIgZT0kKCIjcG9wdXBtYWtlIikudmFsKCksZD0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLGI9JCgiI3BvcHVweWVhciIpLnZhbCgpO2dhVHJhY2soIl90cmFja0V2ZW50IiwiTmV3LVZEUC1PdXRib3VuZC1jbGlja3MiLCJDYWxjdWxhdHJpY2UiLGUrIi0iK2QrIi0iK2IpO3BheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZFRyaWdnZXIoYSxjKX0KZnVuY3Rpb24gZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQoYSxjLGUpe2U9dm9pZCAwPT09ZT8iIjplO2E9IjxzcGFuICIrYysiPiIrYSsiPC9zcGFuPiUiO2E9IkVOR0xJU0giPT1hY3RpdmVMYW5nP2ErIiBBUFIiOiJUYXV4ICIrYTtyZXR1cm4gJCgiI2lzbW9iaWxlIikudmFsKCk\/Ijxici8+PGRpdiAiK2UrIj4oIithKyIpPC9kaXY+IjoiIDxkaXYgIitlKyI+KCAiK2ErIiApPC9kaXY+In0KZnVuY3Rpb24gcG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd24oYSl7dHJ5e2lmKGEubGVhc2UmJjA8YS5sZWFzZS5sZW5ndGgpe3ZhciBjPVtdO2EubGVhc2UuZm9yRWFjaChmdW5jdGlvbihkKXstMT09JC5pbkFycmF5KGQua21fYWxsb3dhbmNlLGMpJiZjLnB1c2goZC5rbV9hbGxvd2FuY2UpfSk7Yy5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBiPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGQudG9GaXhlZCgwKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5hcHBlbmQobmV3IE9wdGlvbihiKyIga20iLGQpKX0pO3ZhciBlPTJFNDthLmN1cnJlbnRQYXltZW50WzBdJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZSYmKGU9MDxhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9hLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKGUpfX1jYXRjaChkKXtjb25zb2xlLmVycm9yKCJFcnJvciBwb3B1bGF0aW5nIGxlYXNlIGttIGFsbG93YW5jZSBkcm9wZG93biBpbiB0aGUgZnVuY3Rpb24gcG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd246ICIsCmQpfX0KZnVuY3Rpb24gc2hvd0hpZGVQYXltZW50U2VjdGlvbihhLGMpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7MDwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrYysiJ10iKS5sZW5ndGgmJiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nIitjKyInXSIpLmFkZENsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyJjYXNoIiE9PWMmJih2b2lkIDAhPWEuZmluYW5jZSYmMD09PWEuZmluYW5jZS5sZW5ndGg\/JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuaGlkZSgpOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLnNob3coKSx2b2lkIDAhPWEubGVhc2UmJjA9PT1hLmxlYXNlLmxlbmd0aD8kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuaGlkZSgpOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5zaG93KCkpfTsKLyoqIC9qcy92YW5pbGxhanMvbW9kYWwuanMgKiovCnZhciBfX19kMmNfbW9kYWxqc19jX29uPSIyMDI2LTAyLTI3IDE1OjMwOjAzIjsndXNlIHN0cmljdCc7Y29uc3QgTW9kYWxzPXt9LE1vZGFsPWZ1bmN0aW9uKGgsYil7bGV0IGM9e307Y29uc3Qgbj17dGl0bGU6aCxjb250ZW50VHlwZToibm9kZSIsY29udGVudFNyYzoiIixhZnRlckluaXQ6KCk9Pnt9fTtsZXQgaz0iIjtjb25zdCBlPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPjwvZGl2PicpLGw9ZnVuY3Rpb24oYSl7YS5vbmNsaWNrPSgpPT5mKCJjYW5jZWwiKX0scD1mdW5jdGlvbigpeyhjLnF1ZXJ5U2VsZWN0b3IoIi5va2F5Iil8fCExKS5vbmNsaWNrPSgpPT5mKCJva2F5Iik7Y29uc3QgYT1jLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jYW5jZWwiKXx8ITE7MTxhLmxlbmd0aD8kLmVhY2goYSxmdW5jdGlvbihkLGcpe2woZyl9KTphJiZsKGFbMF0pfSxtPWZ1bmN0aW9uKGEpeyJFc2NhcGUiPT1hLmtleSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIiwKbSx7Y2FwdHVyZTohMH0pLGYoKSl9LGY9YT0+e2E9YXx8IiI7c3dpdGNoKGEpe2Nhc2UgImNhbmNlbCI6ImZ1bmN0aW9uIj09dHlwZW9mIGIub25CZWZvcmVDYW5jZWwmJmIub25CZWZvcmVDYW5jZWwuY2FsbCgpO2JyZWFrO2Nhc2UgIm9rYXkiOiJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlU2F2ZSYmYi5vbkJlZm9yZVNhdmUuY2FsbCgpfSJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlQ2xvc2UmJmIub25CZWZvcmVDbG9zZS5jYWxsKGEpO2RvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dZPSJhdXRvIjtjLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsITEpO2UucGFyZW50Tm9kZSYmKGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxrLmZvY3VzKCkpfTtiPU9iamVjdC5hc3NpZ24obixiKTsoZnVuY3Rpb24oKXtjb25zdCBhPStuZXcgRGF0ZTt2YXIgZD0iIjtzd2l0Y2goYi5jb250ZW50VHlwZSl7Y2FzZSAibm9kZSI6ZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiLmNvbnRlbnRTcmMpOwpkLmhpZGRlbj0hMTticmVhaztjYXNlICJpZnJhbWUiOmQ9aHRtbFRvTm9kZShgPGRpdiBjbGFzcz0iaWZyYW1lLXdyYXBwZXIiPgoJCQkJCQkJCTxpZnJhbWUKCQkJCQkJCQkJc3JjPSIke2IuY29udGVudFNyY30iCgkJCQkJCQkJCWZyYW1lYm9yZGVyPSIwIgoJCQkJCQkJCQlhbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJCXdlYmtpdGFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQkJbW96YWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCT48L2lmcmFtZT4KCQkJCQkJCTwvZGl2PmApfWxldCBnPSIiO2Iuc2hvd1llc05vQnV0dG9ucyYmKGc9YDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciAtcCAtLXM1IGZsZXgtYmV0d2VlbiI+CgkJCQk8ZGl2PgoJCQkJCTxzcGFuIGNsYXNzPSIgLW10MiBtYWluVGV4dCAtYm9sZCI+JHtiLmJ1dHRvblRleHR8fCIifTwvc3Bhbj4KCQkJCTwvZGl2PgoJCQkJPGRpdj4KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBjYW5jZWwiIGRhdGEtZGlzbWlzcz0ibW9kYWwiPiR7Yi5ub0J1dHRvbnx8Ik5vIn08L2J1dHRvbj4KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tbWFpbjIgb2theSIgZGF0YS1kaXNtaXNzPSJtb2RhbCI+JHtiLnllc0J1dHRvbnx8IlllcyJ9PC9idXR0b24+CgkJCQk8L2Rpdj5gKTtjPWh0bWxUb05vZGUoYAoJCQk8Ym94LWxjIGNsYXNzPSJtb2RhbC13cmFwcGVyIC1iZy13aGl0ZSAtLXMwIj4KCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMCI+CgkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIGZsZXgtYmV0d2VlbiAtcCAtLXM1Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibW9kYWwtdGl0bGUgdHh0LXVwcGVyIC1mcy1sIC1ib2xkIj4KCQkJCQkJCSR7Yi50aXRsZX0KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWNvbnRyb2wiPgoJCQkJCQkJPGJ1dHRvbiB0aXRsZT0iY2xvc2UiIGNsYXNzPSJ4LWNsb3NlIGNhbmNlbCI+PC9idXR0b24+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiIGlkPSJxLSR7YX0iPgoKCQkJCQk8L2Rpdj4KCQkJCQkke2d9CgkJCQk8L3N0YWNrLWxjPgoJCQk8L2JveC1sYz4KCQlgKTtjLmlkPWBtb2RhbCR7aH1gO2Muc2V0QXR0cmlidXRlKCJyb2xlIiwiZGlhbG9nIik7Yy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsYHEtJHthfWApO2MucXVlcnlTZWxlY3RvcigiLm1vZGFsLWJvZHkiKS5hcHBlbmRDaGlsZChkKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpO2RvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iO2IuYWZ0ZXJJbml0KCk7cCgpfSkoKTtyZXR1cm57ZGlzcGxheTpmdW5jdGlvbigpe2s9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixtLHtjYXB0dXJlOiEwfSk7c2V0VGltZW91dChmdW5jdGlvbigpe2MuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtYWN0aXZlIiwhMCl9LDEpfSxjbG9zZTpmfX07Ci8qKiAvanMvdmFuaWxsYWpzL2xlYWQuanMgKiovCnZhciBfX19kMmNfbGVhZGpzX2Nfb249IjIwMjYtMDQtMDIgMTM6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYixhLGMpe2lmKGI9PUFycmF5LnByb3RvdHlwZXx8Yj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYjtiW2FdPWMudmFsdWU7cmV0dXJuIGJ9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihiKXtiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYiwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGE9MDthPGIubGVuZ3RoOysrYSl7dmFyIGM9YlthXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihiLGEpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2FdO2lmKG51bGw9PWMpcmV0dXJuIGJbYV07Yz1iW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YlthXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihiLGEsYyxlKXthJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYixhLGMsZSk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYixhLGMsZSkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYixhLGMsZSl7Yz0kanNjb21wLmdsb2JhbDtiPWIuc3BsaXQoIi4iKTtmb3IoZT0wO2U8Yi5sZW5ndGgtMTtlKyspe3ZhciBoPWJbZV07aWYoIShoIGluIGMpKXJldHVybjtjPWNbaF19Yj1iW2IubGVuZ3RoLTFdO2U9Y1tiXTthPWEoZSk7YSE9ZSYmbnVsbCE9YSYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYixhLGMsZSl7dmFyIGg9Yi5zcGxpdCgiLiIpO2I9MT09PWgubGVuZ3RoO2U9aFswXTtlPSFiJiZlIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgcT0wO3E8aC5sZW5ndGgtMTtxKyspe3ZhciByPWhbcV07aWYoIShyIGluIGUpKXJldHVybjtlPWVbcl19aD1oW2gubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZVtoXTpudWxsO2E9YShjKTtudWxsIT1hJiYoYj8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSk6YSE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGgpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2gpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZSwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGI9e2E6ITB9LGE9e307dHJ5e3JldHVybiBhLl9fcHJvdG9fXz1iLGEuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGIsYSl7Yi5fX3Byb3RvX189YTtpZihiLl9fcHJvdG9fXyE9PWEpdGhyb3cgbmV3IFR5cGVFcnJvcihiKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYn06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGIpe3ZhciBhPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGE8Yi5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YlthKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYil7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChiKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihiKXt2YXIgYT0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGE\/YS5jYWxsKGIpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihiKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYil7aWYoIShiIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitiKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLnlpZWxkUmVzdWx0PWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246Yixpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYixhKXt0aGlzLm5leHRBZGRyZXNzPWE7cmV0dXJue3ZhbHVlOmJ9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihiLGEpe2I9JGpzY29tcC5tYWtlSXRlcmF0b3IoYik7dmFyIGM9Yi5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWE7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1iLHRoaXMueWllbGQoYy52YWx1ZSxhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihiKXt0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIsYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWI7dm9pZCAwIT1hJiYodGhpcy5maW5hbGx5QWRkcmVzc189YSl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGIsYSl7dGhpcy5uZXh0QWRkcmVzcz1iO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO2I9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGEsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGEpe2E9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShhfHwwKVswXTtpZihhPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8YSl7aWYoYS5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1hLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188YS5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9YS5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihiKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihiKXt0aGlzLm9iamVjdF89Yjt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYSBpbiBiKXRoaXMucHJvcGVydGllc18ucHVzaChhKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGI9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihiIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYn1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89Yn07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGE9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihhKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBhP2FbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxiLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGIsYSxjKXt0cnl7dmFyIGU9Yi5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYSk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZSk7aWYoIWUuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGU7dmFyIGg9ZS52YWx1ZX1jYXRjaChxKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKHEpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGgpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGI9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihiKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goYSl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYSl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2I9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYi5pc0V4Y2VwdGlvbil0aHJvdyBiLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6Yi5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWZ1bmN0aW9uKGEpe3JldHVybiBiLm5leHRfKGEpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGEpe3JldHVybiBiLnRocm93XyhhKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYSl7cmV0dXJuIGIucmV0dXJuXyhhKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYixhKXthPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZiLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihhLGIucHJvdG90eXBlKTtyZXR1cm4gYX07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihiKXtmdW5jdGlvbiBhKGUpe3JldHVybiBiLm5leHQoZSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gYi50aHJvdyhlKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxoKXtmdW5jdGlvbiBxKHIpe3IuZG9uZT9lKHIudmFsdWUpOlByb21pc2UucmVzb2x2ZShyLnZhbHVlKS50aGVuKGEsYykudGhlbihxLGgpfXEoYi5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYigpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKSl9Owpjb25zdCBMZWFkPWZ1bmN0aW9uKGIpe2NvbnN0IGE9T2JqZWN0LmFzc2lnbih7fSxiKSxjPWEubGVhZElkfHxhLm5hbWU7Yj1hLmxlYWROb2RlO2NvbnN0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iK2MpO2xldCBoPSExLHE9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLXN1YmplY3RdIikuaW5uZXJUZXh0LHI9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLWJvZHldIikuaW5uZXJIVE1MLHo9YS50cmlnZ2VyLGs9e307Y29uc3QgQT0oKT0+e0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO3N3aXRjaCghMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSAiZW1haWwiPT0KZi50b0xvd2VyQ2FzZSgpOmNhc2UgImRhdGEiPT1mOmJyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmNhc2UgInRlbCI9PWQudHlwZTpJTWFzayhkLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSl9fX0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO3N3aXRjaCghMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOnZhciBnO2Y9bnVsbCE9KGc9Y2xpZW50U3RvcmFnZS5nZXQoImZpcnN0bmFtZSIpKT9nOiIiO3ZhciBsO2c9bnVsbCE9KGw9Y2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIikpP2w6IiI7bD1mKygiIiE9Zz8iICIrY2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIik6CiIiKTtkLnZhbHVlPWw7YnJlYWs7Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bGV0IG07ZC52YWx1ZT1udWxsIT0obT1jbGllbnRTdG9yYWdlLmdldCgiZmlyc3RuYW1lIikpP206IiI7YnJlYWs7Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpsZXQgbjtkLnZhbHVlPW51bGwhPShuPWNsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpKT9uOiIiO2JyZWFrO2Nhc2UgImVtYWlsIj09Zi50b0xvd2VyQ2FzZSgpOmxldCBwO2QudmFsdWU9bnVsbCE9KHA9Y2xpZW50U3RvcmFnZS5nZXQoImVtYWlsIikpP3A6IiI7YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6bGV0IHU7ZC52YWx1ZT1udWxsIT0odT1jbGllbnRTdG9yYWdlLmdldCgicGhvbmUiKSk\/dToiIn19fSl9LEU9KCk9PntpZihoKXJldHVybiExO2g9ITA7QigpLnRoZW4oZD0+e2lmKCFkKXJldHVybiB2KCJwb3B1cC52YWxpZGF0aW9uRmFpbGVkIiksCmg9ITE7YS52YWxpZGF0ZWQ9ITA7QygpO0QoKX0pfSxDPSgpPT57QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7aWYoZilzd2l0Y2goa1tmXT1kLnZhbHVlLCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6ZD1kLnZhbHVlLnNwbGl0KCIgIik7ay51c2VyRmlyc3ROYW1lKz1kLnNoaWZ0KCk7ay51c2VyTGFzdE5hbWUrPWQuam9pbigiICIpO2JyZWFrO2Nhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmsudXNlckZpcnN0TmFtZSs9ZC52YWx1ZTticmVhaztjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmsudXNlckxhc3ROYW1lKz1kLnZhbHVlO2JyZWFrO2Nhc2UgImVtYWlsIj09Zi50b0xvd2VyQ2FzZSgpOmsudXNlckVtYWlsPQpkLnZhbHVlO2JyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmNhc2UgInRlbCI9PWQudHlwZTpJTWFzayhkLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSk7ay51c2VyUGhvbmU9ZC52YWx1ZTticmVhaztjYXNlICJkYXRhIj09Zjpmb3IobGV0IGcgaW4gZC5kYXRhc2V0KWtbZy5yZXBsYWNlKC8tLi9nLGw9PmxbMV0udG9VcHBlckNhc2UoKSldPWQuZGF0YXNldFtnXX19fSl9LEQ9KCk9PntpZighMT09PWEub25CZWZvcmVTdWJtaXQoYSkpcmV0dXJuIGEuY2xvc2VPblN1Ym1pdCYmdCgpLCExO3ZhciBkPXgod2luZG93LmxvY2F0aW9uLmhyZWYpO2lmKENvb2tpZXMuZ2V0KGEubGVhZElkK2QpKXJldHVybiBoPSExLHkoITApLCExO0YoKTt2KCJwb3B1cC5zdWJtaXQiKTtsZXQgZjtpZigiRGlnaXRhbFJldGFpbCI9PShudWxsPT0oZj1rKT92b2lkIDA6Zi5pbnZva2VyKSl7ZD1jbGllbnRTdG9yYWdlLmdldCgiY2xpZW50U3RvcmFnZSIpfHwKe307bGV0IG4scDtrLmxlYWRJbnZva2VyU0lEPUcoKG51bGw9PWQ\/dm9pZCAwOm51bGw9PShuPWQuY29udGFjdCk\/dm9pZCAwOm4uZW1haWwpKyhudWxsPT1kP3ZvaWQgMDpudWxsPT0ocD1kLmNvbnRhY3QpP3ZvaWQgMDpwLnBob25lKSk7ZW1haWxIYW5kbGVyLmxlYWRJbnZva2VyPSJEaWdpdGFsUmV0YWlsIjtlbWFpbEhhbmRsZXIuZGlnaXRhbFJldGFpbFNJRD1rLmxlYWRJbnZva2VyU0lEfXZhciBnO3E9KG51bGw9PShnPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1zdWJqZWN0XSIpKT92b2lkIDA6Zy5pbm5lclRleHQpfHxxO2xldCBsO3I9KG51bGw9PShsPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1ib2R5XSIpKT92b2lkIDA6bC5pbm5lckhUTUwpfHxyO2VtYWlsSGFuZGxlci5ib2R5PUgoKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1xO09iamVjdC5hc3NpZ24oZW1haWxIYW5kbGVyLGspOyJzdHJpbmciPT10eXBlb2YgZW1haWxIYW5kbGVyLnVzZXJOYW1lJiYKKGc9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zy5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zy5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD1mdW5jdGlvbihuKXtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkR1cGxpY2F0ZVNlbmQ9ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKX07ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKG4pe3ZhciBwPSExO2Euc2hvd0VtYWlsQ29uZmlybWF0aW9uJiYocD1nZXRNYWlsU2VudEhhbmRsZXIoIl8iK2EubmFtZSkscC50aW1lb3V0Q2FsbGJhY2s9ZnVuY3Rpb24oKXtlLnJlc2V0KCl9KTsKaWYobil2KCJwb3B1cC5sZWFkX3NlbnQiKSwiZnVuY3Rpb24iPT10eXBlb2Ygb3JpZ2luYWxDYWxsYmFjayYmb3JpZ2luYWxDYWxsYmFjay5jYWxsKCksIm9uU3VibWl0Ij09YS5jb29raWVDcmVhdGUmJkNvb2tpZXMuc2V0KGEuY29va2llTmFtZSwiMSIsYS5jb29raWVEdXJhdGlvbiwiLyIpLGEuc3VibWl0RmxhZyYmQ29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDEsIi8iKSxhLmNsb3NlT25TdWJtaXQmJnQoIkNPTlNFTlQiKSxwP3Auc2hvd1N1Y2Nlc3MoKTowPCQoYGZvcm0jZm9ybSR7YS5uYW1lfV9jb25maXJtYCkubGVuZ3RoJiYkKGBmb3JtI2Zvcm0ke2EubmFtZX1fY29uZmlybWApLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7cHx8KHA9Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtwLnNob3dGYWlsKCl9Y2F0Y2godSl7fX15KG4pO3coKTtzZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyk7biYmKG49eCh3aW5kb3cubG9jYXRpb24uaHJlZiksCkNvb2tpZXMuc2V0KGEubGVhZElkK24sIjEiLDEsIi8iKSl9O2Euc3VibWl0dGVkPSEwO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQmVmb3JlU2VuZE1haWwmJjA9PWEub25CZWZvcmVTZW5kTWFpbC5jYWxsKCkpcmV0dXJuITE7bGV0IG09e307ImZ1bmN0aW9uIj09dHlwZW9mIGEub25BREYmJihtPWEub25BREYuY2FsbCgpKTsibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpLmZvckVhY2gobj0+e2VtYWlsSGFuZGxlcltuXT1tW25dfHxlbWFpbEhhbmRsZXJbbl19KTthLnB1cmNoYXNlSW50ZW50UG9wdXB8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfSx3PSgpPT57az17dXNlckZpcnN0TmFtZToiIix1c2VyTGFzdE5hbWU6IiIsdXNlckVtYWlsOiIiLHVzZXJQaG9uZToiIn07aD0hMX0sQj1mdW5jdGlvbigpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtpZihhLnNraXBWYWxpZGF0aW9uKXJldHVybiEwOwpjb25zdCBkPW5ldyBQcmlzdGluZShlLHtjbGFzc1RvOiJmb3JtLWxhYmVsIixlcnJvckNsYXNzOiJpbnZhbGlkIn0sITEpO2xldCBmPWUucXVlcnlTZWxlY3RvcignW25hbWU9InBob25lbnVtIl0nKSxnPSEwLGw9ITA7aWYoZi5yZXF1aXJlZHx8Zi52YWx1ZSlnPW51bGwsZz15aWVsZCBJKGYudmFsdWUpO251bGw9PT1nPyhkLmFkZFZhbGlkYXRvcihmLGZ1bmN0aW9uKG0pe209bS5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKTsiMSI9PW1bMF0mJihtPW0uc3Vic3RyaW5nKDEpKTttPXBhcnNlSW50KG0uc3Vic3RyaW5nKDAsMykpO3JldHVybiBnPVs0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiw1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLDYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMl0uaW5jbHVkZXMobSl9LCJFbnRlciBhIHZhbGlkIHBob25lIG51bWJlciIsNSwhMSksbD1kLnZhbGlkYXRlKCkpOihsPWQudmFsaWRhdGUoKSYmZyxmLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW52YWxpZCIsCiFnKSk7Zi5yZXF1aXJlZCYmIWcmJiJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiYoZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKyssZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PSEwKTtyZXR1cm4gbH0pfSxJPWQ9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2xldCBmPW51bGw7ZD1kLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpO3lpZWxkIGF4aW9zLmdldCgiL3Byb3h5X3JkMmMvc2l0ZXMvc3ZjL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwIix7dGltZW91dDoyRTMsZGF0YVR5cGU6Impzb24iLHBhcmFtczp7cGhvbmU6ZH0scmVzcG9uc2VUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oZyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZy5kYXRhLmlzT2smJihmPWcuZGF0YS5waG9uZU51bWJlcklzVmFsaWQpfSkuY2F0Y2goZnVuY3Rpb24oZyl7fSk7cmV0dXJuIGZ9KSxGPSgpPT57Y29uc3QgZD0KZG9jdW1lbnQuZm9ybXMuZW1haWxtc2dmcm18fCExO2lmKCFkKXJldHVybiExO2QucXVlcnlTZWxlY3RvcignW25hbWU9ImxhYmVsIicpLnZhbHVlPWAke2EudHlwZX0gKCR7ay5jb25kaXRpb259KWA7ZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0ic2VjdGlvbiInKS52YWx1ZT1rLmNvbmRpdGlvbn0seD1kPT5bLi4uZF0ucmVkdWNlKChmLGcpPT5NYXRoLmltdWwoMzEsZikrZy5jaGFyQ29kZUF0KDApfDAsMCksSD1mdW5jdGlvbigpe2xldCBkPXIsZj17bmFtZTpbIk1OQU1FIl0scGhvbmVudW06WyJNUEhPTkUiLCJQSE9ORSJdLGVtYWlsOlsiTU1BSUwiXX07T2JqZWN0LmtleXMoaykuZm9yRWFjaChnPT57dmFyIGw9bmV3IFJlZ0V4cCgie1xcJCIrZy50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpO2Q9ZC5yZXBsYWNlKGwsa1tnXSk7ZltnXSYmKGw9bmV3IFJlZ0V4cCgie1xcJCgiK2ZbZ10uam9pbigifCIpKyIpfSIsImciKSxkPWQucmVwbGFjZShsLGtbZ10pKX0pO3JldHVybiBkfSx2PWZ1bmN0aW9uKGQpe3ZhciBmPQphLnR5cGU7aWYoIWQpcmV0dXJuITE7aWYoInBvcHVwLmxlYWRfc2VudCI9PWQpe3ZhciBnPSJjbGljayIucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihtKXtyZXR1cm4gbS50b1VwcGVyQ2FzZSgpfSksbD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZyxsLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGQsZixzZWxmKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGQsZikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsZCxmKX0sdD0oKT0+e2Eub25CZWZvcmVDbG9zZShhKTt3KCk7TW9kYWxzW2NdJiZNb2RhbHNbY10uY2xvc2UoKX0sCnk9ZD0+e2Eub25BZnRlclN1Ym1pdChhLGQpO2EuY2xvc2VPblN1Ym1pdCYmZCYmdCgpO2QmJmUucmVzZXQoKX0sRz1kPT57bGV0IGY9MDtpZigwPT1kLmxlbmd0aClyZXR1cm4gZjtmb3IobGV0IGc9MCxsPWQubGVuZ3RoO2c8bDtnKyspe2xldCBtPWQuY2hhckNvZGVBdChnKTtmPShmPDw1KS1mK207Znw9MH1yZXR1cm4gTWF0aC5hYnMoZil9OygoKT0+eyQoZSkudHJpZ2dlcigicG9wdXBpemVyLm9uT3BlbiIsJChlKSk7dygpO0EoKTtlLm9uc3VibWl0PWQ9PntkLnByZXZlbnREZWZhdWx0KCk7RSgpfTthLm9uQmVmb3JlT3BlbihhKX0pKCk7cmV0dXJue2xlYWRJZDpjLGxlYWROb2RlOmIsdHJpZ2dlcjp6LGRpc3BsYXk6KCk9PnthLmRpc3BsYXk\/YS5kaXNwbGF5KGEpOihhLmNvbnRlbnRTcmM9YGxlYWQke2N9YCxNb2RhbHNbY118fChNb2RhbHNbY109bmV3IE1vZGFsKGMsYSkpLE1vZGFsc1tjXS5kaXNwbGF5KCkpfSxjbG9zZTp0fX0sTGVhZEhhbmRsZXI9ZnVuY3Rpb24oKXtjb25zdCBiPQp7b25CZWZvcmVPcGVuOigpPT57fSxvbkJlZm9yZVZhbGlkYXRpb246KCk9Pnt9LG9uQmVmb3JlU3VibWl0OigpPT57fSxvbkFmdGVyU3VibWl0OigpPT57fSxvbkJlZm9yZUNhbmNlbDooKT0+e30sb25CZWZvcmVDbG9zZTooKT0+e30sb25DbG9zZTooKT0+e30sZm9ybTp7ZW1haWxpZDpudWxsLG9mZmVydHlwZTpudWxsLG5hbWU6bnVsbCxzZW5kVG86bnVsbCxzZW5kVG9BREY6bnVsbCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMSxmcm9tQUE6ITF9LGdldElkU3VmZml4OmE9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpEYXRlLm5vdygpKSxtb2RlOiJzdGF0aWMiLHRyaWdnZXI6ImF1dG8iLGRlbGF5OiExLGRpc3BsYXk6ITEsc3VibWl0dGVkOiExLGNsb3NlT25TdWJtaXQ6ITAsc3VibWl0RmxhZzohMSxieXBhc3NDb25zZW50OiExLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMCxwdXJjaGFzZUludGVudFBvcHVwOiExfTsKaW5pdD0oKT0+eyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3QmJihuZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJWaWV3RGlzY292ZXJCdG5IYW5kbGVyIn0pKS5hZGRVc2VkU3JwRXZlbnRPYnNlcnZlcigiY29udGVudCIsYWRkTGVhZEV2ZW50cykuaW5pdFVzZWRTcnBPYnNlcnZlcigpO2FkZExlYWRFdmVudHMoKX07YWRkTGVhZEV2ZW50cz0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWxlYWQtdHJpZ2dlcl0iKS5mb3JFYWNoKGE9Pnt0aGlzLmluaXRMZWFkVHJpZ2dlcihhKX0pfTt0aGlzLmluaXRMZWFkVHJpZ2dlcj1hPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYz0+e2Muc3RvcFByb3BhZ2F0aW9uKCk7Yz1hLmRhdGFzZXQubGVhZFRyaWdnZXI7bGV0IGU9YS5kYXRhc2V0LmxlYWRpZHx8ITE7TGVhZENvbmZpZ3NbY10udHJpZ2dlcj1hO2M9dGhpcy5nZXRMZWFkKGMsZSk7Yy5kaXNwbGF5KCk7CmEuZGF0YXNldC5sZWFkaWQ9Yy5sZWFkSWR9KX07dGhpcy5nZXRMZWFkPShhLGMpPT57aWYoIShjPUxlYWRzW2N8fGFdKSl7e2M9YTtsZXQgZT1PYmplY3QuYXNzaWduKHt9LGIpO09iamVjdC5hc3NpZ24oZSxMZWFkQ29uZmlnc1thXSk7Y29uc3QgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbGVhZCR7YX1gKTtoPyhhPWgsInN0YXRpYyIhPWUubW9kZSYmKGM9YCR7ZS5uYW1lfV8ke2UuZ2V0SWRTdWZmaXgoZSl9YCxhPWguY2xvbmVOb2RlKCEwKSxhLnNldEF0dHJpYnV0ZSgiaWQiLCJsZWFkIitjKSxhLnF1ZXJ5U2VsZWN0b3IoImZvcm0iKS5zZXRBdHRyaWJ1dGUoImlkIiwiZm9ybSIrYyksZG9jdW1lbnQuYm9keS5hcHBlbmQoYSkpLGUubGVhZElkPWMsZS5sZWFkTm9kZT1hLExlYWRzW2NdPW5ldyBMZWFkKGUpLGM9TGVhZHNbY10pOmM9ITF9fXJldHVybiBjfTtyZXR1cm57aW5pdCxpbml0TGVhZFRyaWdnZXIsZ2V0TGVhZH19O3ZhciBMZWFkcz1MZWFkc3x8e307ZG9jUmVhZHlBcnIucHVzaChMZWFkSGFuZGxlcigpLmluaXQpOwovKiogL2pzL3ZhbmlsbGFqcy9heGlvcy5taW4uanMgKiovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFtdLHQpOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLmF4aW9zPXQoKTplLmF4aW9zPXQoKX0odGhpcywoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9e307ZnVuY3Rpb24gbihyKXtpZih0W3JdKXJldHVybiB0W3JdLmV4cG9ydHM7dmFyIG89dFtyXT17aTpyLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIGVbcl0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsbiksby5sPSEwLG8uZXhwb3J0c31yZXR1cm4gbi5tPWUsbi5jPXQsbi5kPWZ1bmN0aW9uKGUsdCxyKXtuLm8oZSx0KXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6cn0pfSxuLnI9ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sbi50PWZ1bmN0aW9uKGUsdCl7aWYoMSZ0JiYoZT1uKGUpKSw4JnQpcmV0dXJuIGU7aWYoNCZ0JiYib2JqZWN0Ij09dHlwZW9mIGUmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgcj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKG4ucihyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6ZX0pLDImdCYmInN0cmluZyIhPXR5cGVvZiBlKWZvcih2YXIgbyBpbiBlKW4uZChyLG8sZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19LmJpbmQobnVsbCxvKSk7cmV0dXJuIHJ9LG4ubj1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLl9fZXNNb2R1bGU\/ZnVuY3Rpb24oKXtyZXR1cm4gZS5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBlfTtyZXR1cm4gbi5kKHQsImEiLHQpLHR9LG4ubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sbi5wPSIiLG4obi5zPTExKX0oW2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigzKSxvPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gaShlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09by5jYWxsKGUpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIHZvaWQgMD09PWV9ZnVuY3Rpb24gYShlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZX1mdW5jdGlvbiB1KGUpe2lmKCJbb2JqZWN0IE9iamVjdF0iIT09by5jYWxsKGUpKXJldHVybiExO3ZhciB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gbnVsbD09PXR8fHQ9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIltvYmplY3QgRnVuY3Rpb25dIj09PW8uY2FsbChlKX1mdW5jdGlvbiBmKGUsdCl7aWYobnVsbCE9ZSlpZigib2JqZWN0IiE9dHlwZW9mIGUmJihlPVtlXSksaShlKSlmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspdC5jYWxsKG51bGwsZVtuXSxuLGUpO2Vsc2UgZm9yKHZhciBvIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbykmJnQuY2FsbChudWxsLGVbb10sbyxlKX1lLmV4cG9ydHM9e2lzQXJyYXk6aSxpc0FycmF5QnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEFycmF5QnVmZmVyXSI9PT1vLmNhbGwoZSl9LGlzQnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZSYmIXMoZSkmJm51bGwhPT1lLmNvbnN0cnVjdG9yJiYhcyhlLmNvbnN0cnVjdG9yKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uc3RydWN0b3IuaXNCdWZmZXImJmUuY29uc3RydWN0b3IuaXNCdWZmZXIoZSl9LGlzRm9ybURhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBGb3JtRGF0YSYmZSBpbnN0YW5jZW9mIEZvcm1EYXRhfSxpc0FycmF5QnVmZmVyVmlldzpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZBcnJheUJ1ZmZlci5pc1ZpZXc\/QXJyYXlCdWZmZXIuaXNWaWV3KGUpOmUmJmUuYnVmZmVyJiZlLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfSxpc1N0cmluZzpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9LGlzTnVtYmVyOmZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZX0saXNPYmplY3Q6YSxpc1BsYWluT2JqZWN0OnUsaXNVbmRlZmluZWQ6cyxpc0RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRGF0ZV0iPT09by5jYWxsKGUpfSxpc0ZpbGU6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRmlsZV0iPT09by5jYWxsKGUpfSxpc0Jsb2I6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQmxvYl0iPT09by5jYWxsKGUpfSxpc0Z1bmN0aW9uOmMsaXNTdHJlYW06ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSkmJmMoZS5waXBlKX0saXNVUkxTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXMmJmUgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXN9LGlzU3RhbmRhcmRCcm93c2VyRW52OmZ1bmN0aW9uKCl7cmV0dXJuKCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yfHwiUmVhY3ROYXRpdmUiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOYXRpdmVTY3JpcHQiIT09bmF2aWdhdG9yLnByb2R1Y3QmJiJOUyIhPT1uYXZpZ2F0b3IucHJvZHVjdCkmJigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCl9LGZvckVhY2g6ZixtZXJnZTpmdW5jdGlvbiBlKCl7dmFyIHQ9e307ZnVuY3Rpb24gbihuLHIpe3UodFtyXSkmJnUobik\/dFtyXT1lKHRbcl0sbik6dShuKT90W3JdPWUoe30sbik6aShuKT90W3JdPW4uc2xpY2UoKTp0W3JdPW59Zm9yKHZhciByPTAsbz1hcmd1bWVudHMubGVuZ3RoO3I8bztyKyspZihhcmd1bWVudHNbcl0sbik7cmV0dXJuIHR9LGV4dGVuZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGYodCwoZnVuY3Rpb24odCxvKXtlW29dPW4mJiJmdW5jdGlvbiI9PXR5cGVvZiB0P3IodCxuKTp0fSkpLGV9LHRyaW06ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbT9lLnRyaW0oKTplLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sc3RyaXBCT006ZnVuY3Rpb24oZSl7cmV0dXJuIDY1Mjc5PT09ZS5jaGFyQ29kZUF0KDApJiYoZT1lLnNsaWNlKDEpKSxlfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMTcpLGk9big1KSxzPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn07ZnVuY3Rpb24gYShlLHQpeyFyLmlzVW5kZWZpbmVkKGUpJiZyLmlzVW5kZWZpbmVkKGVbIkNvbnRlbnQtVHlwZSJdKSYmKGVbIkNvbnRlbnQtVHlwZSJdPXQpfXZhciB1LGM9e3RyYW5zaXRpb25hbDp7c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX0sYWRhcHRlcjooKCJ1bmRlZmluZWQiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3R8fCJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpKSYmKHU9big2KSksdSksdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyh0LCJBY2NlcHQiKSxvKHQsIkNvbnRlbnQtVHlwZSIpLHIuaXNGb3JtRGF0YShlKXx8ci5pc0FycmF5QnVmZmVyKGUpfHxyLmlzQnVmZmVyKGUpfHxyLmlzU3RyZWFtKGUpfHxyLmlzRmlsZShlKXx8ci5pc0Jsb2IoZSk\/ZTpyLmlzQXJyYXlCdWZmZXJWaWV3KGUpP2UuYnVmZmVyOnIuaXNVUkxTZWFyY2hQYXJhbXMoZSk\/KGEodCwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKSxlLnRvU3RyaW5nKCkpOnIuaXNPYmplY3QoZSl8fHQmJiJhcHBsaWNhdGlvbi9qc29uIj09PXRbIkNvbnRlbnQtVHlwZSJdPyhhKHQsImFwcGxpY2F0aW9uL2pzb24iKSxmdW5jdGlvbihlLHQsbil7aWYoci5pc1N0cmluZyhlKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKGUpLHIudHJpbShlKX1jYXRjaChlKXtpZigiU3ludGF4RXJyb3IiIT09ZS5uYW1lKXRocm93IGV9cmV0dXJuKG58fEpTT04uc3RyaW5naWZ5KShlKX0oZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy50cmFuc2l0aW9uYWx8fGMudHJhbnNpdGlvbmFsLG49dCYmdC5zaWxlbnRKU09OUGFyc2luZyxvPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcscz0hbiYmImpzb24iPT09dGhpcy5yZXNwb25zZVR5cGU7aWYoc3x8byYmci5pc1N0cmluZyhlKSYmZS5sZW5ndGgpdHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKGUpe2lmKHMpe2lmKCJTeW50YXhFcnJvciI9PT1lLm5hbWUpdGhyb3cgaShlLHRoaXMsIkVfSlNPTl9QQVJTRSIpO3Rocm93IGV9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoifX19O3IuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSwoZnVuY3Rpb24oZSl7Yy5oZWFkZXJzW2VdPXt9fSkpLHIuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbihlKXtjLmhlYWRlcnNbZV09ci5tZXJnZShzKX0pKSxlLmV4cG9ydHM9Y30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3RoaXMubWVzc2FnZT1lfXIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkNhbmNlbCIrKHRoaXMubWVzc2FnZT8iOiAiK3RoaXMubWVzc2FnZToiIil9LHIucHJvdG90eXBlLl9fQ0FOQ0VMX189ITAsZS5leHBvcnRzPXJ9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxyPTA7cjxuLmxlbmd0aDtyKyspbltyXT1hcmd1bWVudHNbcl07cmV0dXJuIGUuYXBwbHkodCxuKX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGUpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKS5yZXBsYWNlKC8lNUIvZ2ksIlsiKS5yZXBsYWNlKC8lNUQvZ2ksIl0iKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2lmKCF0KXJldHVybiBlO3ZhciBpO2lmKG4paT1uKHQpO2Vsc2UgaWYoci5pc1VSTFNlYXJjaFBhcmFtcyh0KSlpPXQudG9TdHJpbmcoKTtlbHNle3ZhciBzPVtdO3IuZm9yRWFjaCh0LChmdW5jdGlvbihlLHQpe251bGwhPWUmJihyLmlzQXJyYXkoZSk\/dCs9IltdIjplPVtlXSxyLmZvckVhY2goZSwoZnVuY3Rpb24oZSl7ci5pc0RhdGUoZSk\/ZT1lLnRvSVNPU3RyaW5nKCk6ci5pc09iamVjdChlKSYmKGU9SlNPTi5zdHJpbmdpZnkoZSkpLHMucHVzaChvKHQpKyI9IitvKGUpKX0pKSl9KSksaT1zLmpvaW4oIiYiKX1pZihpKXt2YXIgYT1lLmluZGV4T2YoIiMiKTstMSE9PWEmJihlPWUuc2xpY2UoMCxhKSksZSs9KC0xPT09ZS5pbmRleE9mKCI\/Iik\/Ij8iOiImIikraX1yZXR1cm4gZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIGUuY29uZmlnPXQsbiYmKGUuY29kZT1uKSxlLnJlcXVlc3Q9cixlLnJlc3BvbnNlPW8sZS5pc0F4aW9zRXJyb3I9ITAsZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fSxlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxOCksaT1uKDE5KSxzPW4oNCksYT1uKDIwKSx1PW4oMjMpLGM9bigyNCksZj1uKDcpLGw9bigxKSxwPW4oMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxuKXt2YXIgZCxoPWUuZGF0YSxtPWUuaGVhZGVycyx2PWUucmVzcG9uc2VUeXBlO2Z1bmN0aW9uIHkoKXtlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKGQpLGUuc2lnbmFsJiZlLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZCl9ci5pc0Zvcm1EYXRhKGgpJiZkZWxldGUgbVsiQ29udGVudC1UeXBlIl07dmFyIGc9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKGUuYXV0aCl7dmFyIGI9ZS5hdXRoLnVzZXJuYW1lfHwiIix4PWUuYXV0aC5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZS5hdXRoLnBhc3N3b3JkKSk6IiI7bS5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EoYisiOiIreCl9dmFyIHc9YShlLmJhc2VVUkwsZS51cmwpO2Z1bmN0aW9uIEUoKXtpZihnKXt2YXIgcj0iZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGc\/dShnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTpudWxsLGk9e2RhdGE6diYmInRleHQiIT09diYmImpzb24iIT09dj9nLnJlc3BvbnNlOmcucmVzcG9uc2VUZXh0LHN0YXR1czpnLnN0YXR1cyxzdGF0dXNUZXh0Omcuc3RhdHVzVGV4dCxoZWFkZXJzOnIsY29uZmlnOmUscmVxdWVzdDpnfTtvKChmdW5jdGlvbihlKXt0KGUpLHkoKX0pLChmdW5jdGlvbihlKXtuKGUpLHkoKX0pLGkpLGc9bnVsbH19aWYoZy5vcGVuKGUubWV0aG9kLnRvVXBwZXJDYXNlKCkscyh3LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplciksITApLGcudGltZW91dD1lLnRpbWVvdXQsIm9ubG9hZGVuZCJpbiBnP2cub25sb2FkZW5kPUU6Zy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtnJiY0PT09Zy5yZWFkeVN0YXRlJiYoMCE9PWcuc3RhdHVzfHxnLnJlc3BvbnNlVVJMJiYwPT09Zy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpKSYmc2V0VGltZW91dChFKX0sZy5vbmFib3J0PWZ1bmN0aW9uKCl7ZyYmKG4oZigiUmVxdWVzdCBhYm9ydGVkIixlLCJFQ09OTkFCT1JURUQiLGcpKSxnPW51bGwpfSxnLm9uZXJyb3I9ZnVuY3Rpb24oKXtuKGYoIk5ldHdvcmsgRXJyb3IiLGUsbnVsbCxnKSksZz1udWxsfSxnLm9udGltZW91dD1mdW5jdGlvbigpe3ZhciB0PWUudGltZW91dD8idGltZW91dCBvZiAiK2UudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixyPWUudHJhbnNpdGlvbmFsfHxsLnRyYW5zaXRpb25hbDtlLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih0PWUudGltZW91dEVycm9yTWVzc2FnZSksbihmKHQsZSxyLmNsYXJpZnlUaW1lb3V0RXJyb3I\/IkVUSU1FRE9VVCI6IkVDT05OQUJPUlRFRCIsZykpLGc9bnVsbH0sci5pc1N0YW5kYXJkQnJvd3NlckVudigpKXt2YXIgUz0oZS53aXRoQ3JlZGVudGlhbHN8fGModykpJiZlLnhzcmZDb29raWVOYW1lP2kucmVhZChlLnhzcmZDb29raWVOYW1lKTp2b2lkIDA7UyYmKG1bZS54c3JmSGVhZGVyTmFtZV09Uyl9InNldFJlcXVlc3RIZWFkZXIiaW4gZyYmci5mb3JFYWNoKG0sKGZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09aCYmImNvbnRlbnQtdHlwZSI9PT10LnRvTG93ZXJDYXNlKCk\/ZGVsZXRlIG1bdF06Zy5zZXRSZXF1ZXN0SGVhZGVyKHQsZSl9KSksci5pc1VuZGVmaW5lZChlLndpdGhDcmVkZW50aWFscyl8fChnLndpdGhDcmVkZW50aWFscz0hIWUud2l0aENyZWRlbnRpYWxzKSx2JiYianNvbiIhPT12JiYoZy5yZXNwb25zZVR5cGU9ZS5yZXNwb25zZVR5cGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uRG93bmxvYWRQcm9ncmVzcyYmZy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZS5vbkRvd25sb2FkUHJvZ3Jlc3MpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uVXBsb2FkUHJvZ3Jlc3MmJmcudXBsb2FkJiZnLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZS5vblVwbG9hZFByb2dyZXNzKSwoZS5jYW5jZWxUb2tlbnx8ZS5zaWduYWwpJiYoZD1mdW5jdGlvbihlKXtnJiYobighZXx8ZSYmZS50eXBlP25ldyBwKCJjYW5jZWxlZCIpOmUpLGcuYWJvcnQoKSxnPW51bGwpfSxlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnN1YnNjcmliZShkKSxlLnNpZ25hbCYmKGUuc2lnbmFsLmFib3J0ZWQ\/ZCgpOmUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixkKSkpLGh8fChoPW51bGwpLGcuc2VuZChoKX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4sbyxpKXt2YXIgcz1uZXcgRXJyb3IoZSk7cmV0dXJuIHIocyx0LG4sbyxpKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiEoIWV8fCFlLl9fQ0FOQ0VMX18pfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIG49e307ZnVuY3Rpb24gbyhlLHQpe3JldHVybiByLmlzUGxhaW5PYmplY3QoZSkmJnIuaXNQbGFpbk9iamVjdCh0KT9yLm1lcmdlKGUsdCk6ci5pc1BsYWluT2JqZWN0KHQpP3IubWVyZ2Uoe30sdCk6ci5pc0FycmF5KHQpP3Quc2xpY2UoKTp0fWZ1bmN0aW9uIGkobil7cmV0dXJuIHIuaXNVbmRlZmluZWQodFtuXSk\/ci5pc1VuZGVmaW5lZChlW25dKT92b2lkIDA6byh2b2lkIDAsZVtuXSk6byhlW25dLHRbbl0pfWZ1bmN0aW9uIHMoZSl7aWYoIXIuaXNVbmRlZmluZWQodFtlXSkpcmV0dXJuIG8odm9pZCAwLHRbZV0pfWZ1bmN0aW9uIGEobil7cmV0dXJuIHIuaXNVbmRlZmluZWQodFtuXSk\/ci5pc1VuZGVmaW5lZChlW25dKT92b2lkIDA6byh2b2lkIDAsZVtuXSk6byh2b2lkIDAsdFtuXSl9ZnVuY3Rpb24gdShuKXtyZXR1cm4gbiBpbiB0P28oZVtuXSx0W25dKTpuIGluIGU\/byh2b2lkIDAsZVtuXSk6dm9pZCAwfXZhciBjPXt1cmw6cyxtZXRob2Q6cyxkYXRhOnMsYmFzZVVSTDphLHRyYW5zZm9ybVJlcXVlc3Q6YSx0cmFuc2Zvcm1SZXNwb25zZTphLHBhcmFtc1NlcmlhbGl6ZXI6YSx0aW1lb3V0OmEsdGltZW91dE1lc3NhZ2U6YSx3aXRoQ3JlZGVudGlhbHM6YSxhZGFwdGVyOmEscmVzcG9uc2VUeXBlOmEseHNyZkNvb2tpZU5hbWU6YSx4c3JmSGVhZGVyTmFtZTphLG9uVXBsb2FkUHJvZ3Jlc3M6YSxvbkRvd25sb2FkUHJvZ3Jlc3M6YSxkZWNvbXByZXNzOmEsbWF4Q29udGVudExlbmd0aDphLG1heEJvZHlMZW5ndGg6YSx0cmFuc3BvcnQ6YSxodHRwQWdlbnQ6YSxodHRwc0FnZW50OmEsY2FuY2VsVG9rZW46YSxzb2NrZXRQYXRoOmEscmVzcG9uc2VFbmNvZGluZzphLHZhbGlkYXRlU3RhdHVzOnV9O3JldHVybiByLmZvckVhY2goT2JqZWN0LmtleXMoZSkuY29uY2F0KE9iamVjdC5rZXlzKHQpKSwoZnVuY3Rpb24oZSl7dmFyIHQ9Y1tlXXx8aSxvPXQoZSk7ci5pc1VuZGVmaW5lZChvKSYmdCE9PXV8fChuW2VdPW8pfSkpLG59fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz17dmVyc2lvbjoiMC4yNC4wIn19LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigxMil9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPW4oMyksaT1uKDEzKSxzPW4oOSk7dmFyIGE9ZnVuY3Rpb24gZSh0KXt2YXIgbj1uZXcgaSh0KSxhPW8oaS5wcm90b3R5cGUucmVxdWVzdCxuKTtyZXR1cm4gci5leHRlbmQoYSxpLnByb3RvdHlwZSxuKSxyLmV4dGVuZChhLG4pLGEuY3JlYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBlKHModCxuKSl9LGF9KG4oMSkpO2EuQXhpb3M9aSxhLkNhbmNlbD1uKDIpLGEuQ2FuY2VsVG9rZW49bigyNiksYS5pc0NhbmNlbD1uKDgpLGEuVkVSU0lPTj1uKDEwKS52ZXJzaW9uLGEuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX0sYS5zcHJlYWQ9bigyNyksYS5pc0F4aW9zRXJyb3I9bigyOCksZS5leHBvcnRzPWEsZS5leHBvcnRzLmRlZmF1bHQ9YX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89big0KSxpPW4oMTQpLHM9bigxNSksYT1uKDkpLHU9bigyNSksYz11LnZhbGlkYXRvcnM7ZnVuY3Rpb24gZihlKXt0aGlzLmRlZmF1bHRzPWUsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IGkscmVzcG9uc2U6bmV3IGl9fWYucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24oZSl7InN0cmluZyI9PXR5cGVvZiBlPyhlPWFyZ3VtZW50c1sxXXx8e30pLnVybD1hcmd1bWVudHNbMF06ZT1lfHx7fSwoZT1hKHRoaXMuZGVmYXVsdHMsZSkpLm1ldGhvZD9lLm1ldGhvZD1lLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnRoaXMuZGVmYXVsdHMubWV0aG9kP2UubWV0aG9kPXRoaXMuZGVmYXVsdHMubWV0aG9kLnRvTG93ZXJDYXNlKCk6ZS5tZXRob2Q9ImdldCI7dmFyIHQ9ZS50cmFuc2l0aW9uYWw7dm9pZCAwIT09dCYmdS5hc3NlcnRPcHRpb25zKHQse3NpbGVudEpTT05QYXJzaW5nOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmMudHJhbnNpdGlvbmFsKGMuYm9vbGVhbil9LCExKTt2YXIgbj1bXSxyPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ImZ1bmN0aW9uIj09dHlwZW9mIHQucnVuV2hlbiYmITE9PT10LnJ1bldoZW4oZSl8fChyPXImJnQuc3luY2hyb25vdXMsbi51bnNoaWZ0KHQuZnVsZmlsbGVkLHQucmVqZWN0ZWQpKX0pKTt2YXIgbyxpPVtdO2lmKHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2kucHVzaChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKX0pKSwhcil7dmFyIGY9W3Msdm9pZCAwXTtmb3IoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkoZixuKSxmPWYuY29uY2F0KGkpLG89UHJvbWlzZS5yZXNvbHZlKGUpO2YubGVuZ3RoOylvPW8udGhlbihmLnNoaWZ0KCksZi5zaGlmdCgpKTtyZXR1cm4gb31mb3IodmFyIGw9ZTtuLmxlbmd0aDspe3ZhciBwPW4uc2hpZnQoKSxkPW4uc2hpZnQoKTt0cnl7bD1wKGwpfWNhdGNoKGUpe2QoZSk7YnJlYWt9fXRyeXtvPXMobCl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfWZvcig7aS5sZW5ndGg7KW89by50aGVuKGkuc2hpZnQoKSxpLnNoaWZ0KCkpO3JldHVybiBvfSxmLnByb3RvdHlwZS5nZXRVcmk9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9YSh0aGlzLmRlZmF1bHRzLGUpLG8oZS51cmwsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKS5yZXBsYWNlKC9eXD8vLCIiKX0sci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSwoZnVuY3Rpb24oZSl7Zi5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGEobnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KG58fHt9KS5kYXRhfSkpfX0pKSxyLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSwoZnVuY3Rpb24oZSl7Zi5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxuLHIpe3JldHVybiB0aGlzLnJlcXVlc3QoYShyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTpufSkpfX0pKSxlLmV4cG9ydHM9Zn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2Z1bmN0aW9uIG8oKXt0aGlzLmhhbmRsZXJzPVtdfW8ucHJvdG90eXBlLnVzZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czohIW4mJm4uc3luY2hyb25vdXMscnVuV2hlbjpuP24ucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX0sby5wcm90b3R5cGUuZWplY3Q9ZnVuY3Rpb24oZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9LG8ucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSl7ci5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsKGZ1bmN0aW9uKHQpe251bGwhPT10JiZlKHQpfSkpfSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxNiksaT1uKDgpLHM9bigxKSxhPW4oMik7ZnVuY3Rpb24gdShlKXtpZihlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxlLnNpZ25hbCYmZS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgYSgiY2FuY2VsZWQiKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSksZS5oZWFkZXJzPWUuaGVhZGVyc3x8e30sZS5kYXRhPW8uY2FsbChlLGUuZGF0YSxlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXF1ZXN0KSxlLmhlYWRlcnM9ci5tZXJnZShlLmhlYWRlcnMuY29tbW9ufHx7fSxlLmhlYWRlcnNbZS5tZXRob2RdfHx7fSxlLmhlYWRlcnMpLHIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSwoZnVuY3Rpb24odCl7ZGVsZXRlIGUuaGVhZGVyc1t0XX0pKSwoZS5hZGFwdGVyfHxzLmFkYXB0ZXIpKGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB1KGUpLHQuZGF0YT1vLmNhbGwoZSx0LmRhdGEsdC5oZWFkZXJzLGUudHJhbnNmb3JtUmVzcG9uc2UpLHR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIGkodCl8fCh1KGUpLHQmJnQucmVzcG9uc2UmJih0LnJlc3BvbnNlLmRhdGE9by5jYWxsKGUsdC5yZXNwb25zZS5kYXRhLHQucmVzcG9uc2UuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSkpLFByb21pc2UucmVqZWN0KHQpfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXN8fG87cmV0dXJuIHIuZm9yRWFjaChuLChmdW5jdGlvbihuKXtlPW4uY2FsbChpLGUsdCl9KSksZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyLmZvckVhY2goZSwoZnVuY3Rpb24obixyKXtyIT09dCYmci50b1VwcGVyQ2FzZSgpPT09dC50b1VwcGVyQ2FzZSgpJiYoZVt0XT1uLGRlbGV0ZSBlW3JdKX0pKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4uY29uZmlnLnZhbGlkYXRlU3RhdHVzO24uc3RhdHVzJiZvJiYhbyhuLnN0YXR1cyk\/dChyKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrbi5zdGF0dXMsbi5jb25maWcsbnVsbCxuLnJlcXVlc3QsbikpOmUobil9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPXIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT97d3JpdGU6ZnVuY3Rpb24oZSx0LG4sbyxpLHMpe3ZhciBhPVtdO2EucHVzaChlKyI9IitlbmNvZGVVUklDb21wb25lbnQodCkpLHIuaXNOdW1iZXIobikmJmEucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKG4pLnRvR01UU3RyaW5nKCkpLHIuaXNTdHJpbmcobykmJmEucHVzaCgicGF0aD0iK28pLHIuaXNTdHJpbmcoaSkmJmEucHVzaCgiZG9tYWluPSIraSksITA9PT1zJiZhLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1hLmpvaW4oIjsgIil9LHJlYWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK2UrIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlOmZ1bmN0aW9uKGUpe3RoaXMud3JpdGUoZSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZTpmdW5jdGlvbigpe30scmVhZDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxyZW1vdmU6ZnVuY3Rpb24oKXt9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIxKSxvPW4oMjIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiYhcih0KT9vKGUsdCk6dH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybi9eKFthLXpdW2EtelxkXCtcLVwuXSo6KT9cL1wvL2kudGVzdChlKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/ZS5yZXBsYWNlKC9cLyskLywiIikrIi8iK3QucmVwbGFjZSgvXlwvKy8sIiIpOmV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1bImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdCxuLGkscz17fTtyZXR1cm4gZT8oci5mb3JFYWNoKGUuc3BsaXQoIlxuIiksKGZ1bmN0aW9uKGUpe2lmKGk9ZS5pbmRleE9mKCI6IiksdD1yLnRyaW0oZS5zdWJzdHIoMCxpKSkudG9Mb3dlckNhc2UoKSxuPXIudHJpbShlLnN1YnN0cihpKzEpKSx0KXtpZihzW3RdJiZvLmluZGV4T2YodCk+PTApcmV0dXJuO3NbdF09InNldC1jb29raWUiPT09dD8oc1t0XT9zW3RdOltdKS5jb25jYXQoW25dKTpzW3RdP3NbdF0rIiwgIituOm59fSkpLHMpOnN9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPXIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3ZhciBlLHQ9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBvKGUpe3ZhciByPWU7cmV0dXJuIHQmJihuLnNldEF0dHJpYnV0ZSgiaHJlZiIscikscj1uLmhyZWYpLG4uc2V0QXR0cmlidXRlKCJocmVmIixyKSx7aHJlZjpuLmhyZWYscHJvdG9jb2w6bi5wcm90b2NvbD9uLnByb3RvY29sLnJlcGxhY2UoLzokLywiIik6IiIsaG9zdDpuLmhvc3Qsc2VhcmNoOm4uc2VhcmNoP24uc2VhcmNoLnJlcGxhY2UoL15cPy8sIiIpOiIiLGhhc2g6bi5oYXNoP24uaGFzaC5yZXBsYWNlKC9eIy8sIiIpOiIiLGhvc3RuYW1lOm4uaG9zdG5hbWUscG9ydDpuLnBvcnQscGF0aG5hbWU6Ii8iPT09bi5wYXRobmFtZS5jaGFyQXQoMCk\/bi5wYXRobmFtZToiLyIrbi5wYXRobmFtZX19cmV0dXJuIGU9byh3aW5kb3cubG9jYXRpb24uaHJlZiksZnVuY3Rpb24odCl7dmFyIG49ci5pc1N0cmluZyh0KT9vKHQpOnQ7cmV0dXJuIG4ucHJvdG9jb2w9PT1lLnByb3RvY29sJiZuLmhvc3Q9PT1lLmhvc3R9fSgpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMTApLnZlcnNpb24sbz17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7b1tlXT1mdW5jdGlvbihuKXtyZXR1cm4gdHlwZW9mIG49PT1lfHwiYSIrKHQ8MT8ibiAiOiIgIikrZX19KSk7dmFyIGk9e307by50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4iW0F4aW9zIHYiK3IrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitlKyInIit0KyhuPyIuICIrbjoiIil9cmV0dXJuIGZ1bmN0aW9uKG4scixzKXtpZighMT09PWUpdGhyb3cgbmV3IEVycm9yKG8ociwiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSkpO3JldHVybiB0JiYhaVtyXSYmKGlbcl09ITAsY29uc29sZS53YXJuKG8ociwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSwhZXx8ZShuLHIscyl9fSxlLmV4cG9ydHM9e2Fzc2VydE9wdGlvbnM6ZnVuY3Rpb24oZSx0LG4pe2lmKCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciByPU9iamVjdC5rZXlzKGUpLG89ci5sZW5ndGg7by0tID4wOyl7dmFyIGk9cltvXSxzPXRbaV07aWYocyl7dmFyIGE9ZVtpXSx1PXZvaWQgMD09PWF8fHMoYSxpLGUpO2lmKCEwIT09dSl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK3UpfWVsc2UgaWYoITAhPT1uKXRocm93IEVycm9yKCJVbmtub3duIG9wdGlvbiAiK2kpfX0sdmFsaWRhdG9yczpvfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIpO2Z1bmN0aW9uIG8oZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO3ZhciB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dD1lfSkpO3ZhciBuPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKG4uX2xpc3RlbmVycyl7dmFyIHQscj1uLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcih0PTA7dDxyO3QrKyluLl9saXN0ZW5lcnNbdF0oZSk7bi5fbGlzdGVuZXJzPW51bGx9fSkpLHRoaXMucHJvbWlzZS50aGVuPWZ1bmN0aW9uKGUpe3ZhciB0LHI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe24uc3Vic2NyaWJlKGUpLHQ9ZX0pKS50aGVuKGUpO3JldHVybiByLmNhbmNlbD1mdW5jdGlvbigpe24udW5zdWJzY3JpYmUodCl9LHJ9LGUoKGZ1bmN0aW9uKGUpe24ucmVhc29ufHwobi5yZWFzb249bmV3IHIoZSksdChuLnJlYXNvbikpfSkpfW8ucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn0sby5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe3RoaXMucmVhc29uP2UodGhpcy5yZWFzb24pOnRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfSxvLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihlKXtpZih0aGlzLl9saXN0ZW5lcnMpe3ZhciB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpOy0xIT09dCYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfX0sby5zb3VyY2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm57dG9rZW46bmV3IG8oKGZ1bmN0aW9uKHQpe2U9dH0pKSxjYW5jZWw6ZX19LGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkobnVsbCx0KX19fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJiEwPT09ZS5pc0F4aW9zRXJyb3J9fV0pfSkpOwovLyMgc291cmNlTWFwcGluZ1VSTD1heGlvcy5taW4ubWFwOwovKiogL2pzL3ZhbmlsbGFqcy9wcmlzdGluZS5taW4uanMgKiovCiFmdW5jdGlvbihlLHIpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9cigpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKHIpOihlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLlByaXN0aW5lPXIoKX0odGhpcywoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9e2VuOntyZXF1aXJlZDoiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIsZW1haWw6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSB2YWxpZCBlLW1haWwgYWRkcmVzcyIsbnVtYmVyOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgbnVtYmVyIixpbnRlZ2VyOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGFuIGludGVnZXIgdmFsdWUiLHVybDoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIHZhbGlkIHdlYnNpdGUgVVJMIix0ZWw6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSB2YWxpZCB0ZWxlcGhvbmUgbnVtYmVyIixtYXhsZW5ndGg6IlRoaXMgZmllbGRzIGxlbmd0aCBtdXN0IGJlIDwgJHsxfSIsbWlubGVuZ3RoOiJUaGlzIGZpZWxkcyBsZW5ndGggbXVzdCBiZSA+ICR7MX0iLG1pbjoiTWluaW11bSB2YWx1ZSBmb3IgdGhpcyBmaWVsZCBpcyAkezF9IixtYXg6Ik1heGltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQgaXMgJHsxfSIscGF0dGVybjoiUGxlYXNlIG1hdGNoIHRoZSByZXF1ZXN0ZWQgZm9ybWF0IixlcXVhbHM6IlRoZSB0d28gZmllbGRzIGRvIG5vdCBtYXRjaCJ9fTtmdW5jdGlvbiByKGUpe3ZhciByPWFyZ3VtZW50cztyZXR1cm4gdGhpcy5yZXBsYWNlKC9cJHsoW157fV0qKX0vZywoZnVuY3Rpb24oZSx0KXtyZXR1cm4gclt0XX0pKX1mdW5jdGlvbiB0KGUpe3JldHVybiBlLnByaXN0aW5lLnNlbGYuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPSInK2UuZ2V0QXR0cmlidXRlKCJuYW1lIikrJyJdOmNoZWNrZWQnKS5sZW5ndGh9dmFyIG49e2NsYXNzVG86ImZvcm0tZ3JvdXAiLGVycm9yQ2xhc3M6Imhhcy1kYW5nZXIiLHN1Y2Nlc3NDbGFzczoiaGFzLXN1Y2Nlc3MiLGVycm9yVGV4dFBhcmVudDoiZm9ybS1ncm91cCIsZXJyb3JUZXh0VGFnOiJkaXYiLGVycm9yVGV4dENsYXNzOiJ0ZXh0LWhlbHAifSxpPVsicmVxdWlyZWQiLCJtaW4iLCJtYXgiLCJtaW5sZW5ndGgiLCJtYXhsZW5ndGgiLCJwYXR0ZXJuIl0scz0vXigoW148PigpXFtcXVxcLiw7OlxzQCJdKyhcLltePD4oKVxbXF1cXC4sOzpcc0AiXSspKil8KCIuKyIpKUAoKFxbWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfVwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlwtMC05XStcLikrW2EtekEtWl17Mix9KSkkLyxhPS8tbWVzc2FnZSg\/Oi0oW2Etel17Mn0oPzpfW0EtWl17Mn0pPykpPy8sbz0iZW4iLGw9e30sdT1mdW5jdGlvbihlLHIpe3IubmFtZT1lLHZvaWQgMD09PXIucHJpb3JpdHkmJihyLnByaW9yaXR5PTEpLGxbZV09cn07ZnVuY3Rpb24gZih0LHMsdSl7dmFyIGY9dGhpcztmdW5jdGlvbiBjKGUscix0LG4pe3ZhciBpPWxbdF07aWYoaSYmKGUucHVzaChpKSxuKSl7dmFyIHM9InBhdHRlcm4iPT09dD9bbl06bi5zcGxpdCgiLCIpO3MudW5zaGlmdChudWxsKSxyW3RdPXN9fWZ1bmN0aW9uIHAodCl7Zm9yKHZhciBuPVtdLGk9ITAscz0wO3QudmFsaWRhdG9yc1tzXTtzKyspe3ZhciBhPXQudmFsaWRhdG9yc1tzXSxsPXQucGFyYW1zW2EubmFtZV0\/dC5wYXJhbXNbYS5uYW1lXTpbXTtpZihsWzBdPXQuaW5wdXQudmFsdWUsIWEuZm4uYXBwbHkodC5pbnB1dCxsKSYmKGk9ITEsImZ1bmN0aW9uIj09dHlwZW9mIGEubXNnP24ucHVzaChhLm1zZyh0LmlucHV0LnZhbHVlLGwpKToic3RyaW5nIj09dHlwZW9mIGEubXNnP24ucHVzaChyLmFwcGx5KGEubXNnLGwpKTphLm1zZz09PU9iamVjdChhLm1zZykmJmEubXNnW29dP24ucHVzaChyLmFwcGx5KGEubXNnW29dLGwpKTp0Lm1lc3NhZ2VzW29dJiZ0Lm1lc3NhZ2VzW29dW2EubmFtZV0\/bi5wdXNoKHIuYXBwbHkodC5tZXNzYWdlc1tvXVthLm5hbWVdLGwpKTplW29dJiZlW29dW2EubmFtZV0mJm4ucHVzaChyLmFwcGx5KGVbb11bYS5uYW1lXSxsKSksITA9PT1hLmhhbHQpKWJyZWFrfXJldHVybiB0LmVycm9ycz1uLGl9ZnVuY3Rpb24gbShlKXtpZihlLmVycm9yRWxlbWVudHMpcmV0dXJuIGUuZXJyb3JFbGVtZW50czt2YXIgcj1mdW5jdGlvbihlLHIpe2Zvcig7KGU9ZS5wYXJlbnRFbGVtZW50KSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKHIpOyk7cmV0dXJuIGV9KGUuaW5wdXQsZi5jb25maWcuY2xhc3NUbyksdD1udWxsLG49bnVsbDtyZXR1cm4odD1mLmNvbmZpZy5jbGFzc1RvPT09Zi5jb25maWcuZXJyb3JUZXh0UGFyZW50P3I6ci5xdWVyeVNlbGVjdG9yKCIuIitmLmNvbmZpZy5lcnJvclRleHRQYXJlbnQpKSYmKChuPXQucXVlcnlTZWxlY3RvcigiLnByaXN0aW5lLWVycm9yIikpfHwoKG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChmLmNvbmZpZy5lcnJvclRleHRUYWcpKS5jbGFzc05hbWU9InByaXN0aW5lLWVycm9yICIrZi5jb25maWcuZXJyb3JUZXh0Q2xhc3MsdC5hcHBlbmRDaGlsZChuKSxuLnByaXN0aW5lRGlzcGxheT1uLnN0eWxlLmRpc3BsYXkpKSxlLmVycm9yRWxlbWVudHM9W3Isbl19ZnVuY3Rpb24gZChlKXt2YXIgcj1tKGUpLHQ9clswXSxuPXJbMV07dCYmKHQuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpLHQuY2xhc3NMaXN0LmFkZChmLmNvbmZpZy5lcnJvckNsYXNzKSksbiYmKG4uaW5uZXJIVE1MPWUuZXJyb3JzLmpvaW4oIjxici8+Iiksbi5zdHlsZS5kaXNwbGF5PW4ucHJpc3RpbmVEaXNwbGF5fHwiIil9ZnVuY3Rpb24gaChlKXt2YXIgcj1mdW5jdGlvbihlKXt2YXIgcj1tKGUpLHQ9clswXSxuPXJbMV07cmV0dXJuIHQmJih0LmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuZXJyb3JDbGFzcyksdC5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcykpLG4mJihuLmlubmVySFRNTD0iIixuLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxyfShlKVswXTtyJiZyLmNsYXNzTGlzdC5hZGQoZi5jb25maWcuc3VjY2Vzc0NsYXNzKX1yZXR1cm4gZnVuY3Rpb24oZSxyLHQpe2Uuc2V0QXR0cmlidXRlKCJub3ZhbGlkYXRlIiwidHJ1ZSIpLGYuZm9ybT1lLGYuY29uZmlnPWZ1bmN0aW9uKGUscil7Zm9yKHZhciB0IGluIHIpdCBpbiBlfHwoZVt0XT1yW3RdKTtyZXR1cm4gZX0ocnx8e30sbiksZi5saXZlPSEoITE9PT10KSxmLmZpZWxkcz1BcnJheS5mcm9tKGUucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQ6bm90KFt0eXBlXj1oaWRkZW5dKTpub3QoW3R5cGVePXN1Ym1pdF0pLCBzZWxlY3QsIHRleHRhcmVhIikpLm1hcChmdW5jdGlvbihlKXt2YXIgcj1bXSx0PXt9LG49e307cmV0dXJuW10uZm9yRWFjaC5jYWxsKGUuYXR0cmlidXRlcywoZnVuY3Rpb24oZSl7aWYoL15kYXRhLXByaXN0aW5lLS8udGVzdChlLm5hbWUpKXt2YXIgcz1lLm5hbWUuc3Vic3RyKDE0KSxvPXMubWF0Y2goYSk7aWYobnVsbCE9PW8pe3ZhciBsPXZvaWQgMD09PW9bMV0\/ImVuIjpvWzFdO3JldHVybiBuLmhhc093blByb3BlcnR5KGwpfHwobltsXT17fSksdm9pZChuW2xdW3Muc2xpY2UoMCxzLmxlbmd0aC1vWzBdLmxlbmd0aCldPWUudmFsdWUpfSJ0eXBlIj09PXMmJihzPWUudmFsdWUpLGMocix0LHMsZS52YWx1ZSl9ZWxzZX5pLmluZGV4T2YoZS5uYW1lKT9jKHIsdCxlLm5hbWUsZS52YWx1ZSk6InR5cGUiPT09ZS5uYW1lJiZjKHIsdCxlLnZhbHVlKX0pKSxyLnNvcnQoKGZ1bmN0aW9uKGUscil7cmV0dXJuIHIucHJpb3JpdHktZS5wcmlvcml0eX0pKSxmLmxpdmUmJmUuYWRkRXZlbnRMaXN0ZW5lcih+WyJyYWRpbyIsImNoZWNrYm94Il0uaW5kZXhPZihlLmdldEF0dHJpYnV0ZSgidHlwZSIpKT8iY2hhbmdlIjoiaW5wdXQiLGZ1bmN0aW9uKGUpe2YudmFsaWRhdGUoZS50YXJnZXQpfS5iaW5kKGYpKSxlLnByaXN0aW5lPXtpbnB1dDplLHZhbGlkYXRvcnM6cixwYXJhbXM6dCxtZXNzYWdlczpuLHNlbGY6Zn19LmJpbmQoZikpfSh0LHMsdSksZi52YWxpZGF0ZT1mdW5jdGlvbihlLHIpe3I9ZSYmITA9PT1yfHwhMD09PWU7dmFyIHQ9Zi5maWVsZHM7ITAhPT1lJiYhMSE9PWUmJihlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ\/dD1bZS5wcmlzdGluZV06KGUgaW5zdGFuY2VvZiBOb2RlTGlzdHx8ZSBpbnN0YW5jZW9mKHdpbmRvdy4kfHxBcnJheSl8fGUgaW5zdGFuY2VvZiBBcnJheSkmJih0PUFycmF5LmZyb20oZSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wcmlzdGluZX0pKSkpO2Zvcih2YXIgbj0hMCxpPTA7dFtpXTtpKyspe3ZhciBzPXRbaV07cChzKT8hciYmaChzKToobj0hMSwhciYmZChzKSl9cmV0dXJuIG59LGYuZ2V0RXJyb3JzPWZ1bmN0aW9uKGUpe2lmKCFlKXtmb3IodmFyIHI9W10sdD0wO3Q8Zi5maWVsZHMubGVuZ3RoO3QrKyl7dmFyIG49Zi5maWVsZHNbdF07bi5lcnJvcnMubGVuZ3RoJiZyLnB1c2goe2lucHV0Om4uaW5wdXQsZXJyb3JzOm4uZXJyb3JzfSl9cmV0dXJuIHJ9cmV0dXJuIGUudGFnTmFtZSYmInNlbGVjdCI9PT1lLnRhZ05hbWUudG9Mb3dlckNhc2UoKT9lLnByaXN0aW5lLmVycm9yczplLmxlbmd0aD9lWzBdLnByaXN0aW5lLmVycm9yczplLnByaXN0aW5lLmVycm9yc30sZi5hZGRWYWxpZGF0b3I9ZnVuY3Rpb24oZSxyLHQsbixpKXtlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ\/KGUucHJpc3RpbmUudmFsaWRhdG9ycy5wdXNoKHtmbjpyLG1zZzp0LHByaW9yaXR5Om4saGFsdDppfSksZS5wcmlzdGluZS52YWxpZGF0b3JzLnNvcnQoKGZ1bmN0aW9uKGUscil7cmV0dXJuIHIucHJpb3JpdHktZS5wcmlvcml0eX0pKSk6Y29uc29sZS53YXJuKCJUaGUgcGFyYW1ldGVyIGVsZW0gbXVzdCBiZSBhIGRvbSBlbGVtZW50Iil9LGYuYWRkRXJyb3I9ZnVuY3Rpb24oZSxyKXsoZT1lLmxlbmd0aD9lWzBdOmUpLnByaXN0aW5lLmVycm9ycy5wdXNoKHIpLGQoZS5wcmlzdGluZSl9LGYucmVzZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtmLmZpZWxkc1tlXTtlKyspZi5maWVsZHNbZV0uZXJyb3JFbGVtZW50cz1udWxsO0FycmF5LmZyb20oZi5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcmlzdGluZS1lcnJvciIpKS5tYXAoKGZ1bmN0aW9uKGUpe2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pKSxBcnJheS5mcm9tKGYuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIuIitmLmNvbmZpZy5jbGFzc1RvKSkubWFwKChmdW5jdGlvbihlKXtlLmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuc3VjY2Vzc0NsYXNzKSxlLmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuZXJyb3JDbGFzcyl9KSl9LGYuZGVzdHJveT1mdW5jdGlvbigpe2YucmVzZXQoKSxmLmZpZWxkcy5mb3JFYWNoKChmdW5jdGlvbihlKXtkZWxldGUgZS5pbnB1dC5wcmlzdGluZX0pKSxmLmZpZWxkcz1bXX0sZi5zZXRHbG9iYWxDb25maWc9ZnVuY3Rpb24oZSl7bj1lfSxmfXJldHVybiB1KCJ0ZXh0Iix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuITB9LHByaW9yaXR5OjB9KSx1KCJyZXF1aXJlZCIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiJyYWRpbyI9PT10aGlzLnR5cGV8fCJjaGVja2JveCI9PT10aGlzLnR5cGU\/dCh0aGlzKTp2b2lkIDAhPT1lJiYiIiE9PWV9LHByaW9yaXR5Ojk5LGhhbHQ6ITB9KSx1KCJlbWFpbCIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiFlfHxzLnRlc3QoZSl9fSksdSgibnVtYmVyIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fCFpc05hTihwYXJzZUZsb2F0KGUpKX0scHJpb3JpdHk6Mn0pLHUoImludGVnZXIiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8L15cZCskLy50ZXN0KGUpfX0pLHUoIm1pbmxlbmd0aCIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fGUubGVuZ3RoPj1wYXJzZUludChyKX19KSx1KCJtYXhsZW5ndGgiLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHxlLmxlbmd0aDw9cGFyc2VJbnQocil9fSksdSgibWluIix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8KCJjaGVja2JveCI9PT10aGlzLnR5cGU\/dCh0aGlzKT49cGFyc2VJbnQocik6cGFyc2VGbG9hdChlKT49cGFyc2VGbG9hdChyKSl9fSksdSgibWF4Iix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8KCJjaGVja2JveCI9PT10aGlzLnR5cGU\/dCh0aGlzKTw9cGFyc2VJbnQocik6cGFyc2VGbG9hdChlKTw9cGFyc2VGbG9hdChyKSl9fSksdSgicGF0dGVybiIse2ZuOmZ1bmN0aW9uKGUscil7dmFyIHQ9ci5tYXRjaChuZXcgUmVnRXhwKCJeLyguKj8pLyhbZ2lteV0qKSQiKSk7cmV0dXJuIWV8fG5ldyBSZWdFeHAodFsxXSx0WzJdKS50ZXN0KGUpfX0pLHUoImVxdWFscyIse2ZuOmZ1bmN0aW9uKGUscil7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihyKTtyZXR1cm4gdCYmKCFlJiYhdC52YWx1ZXx8dC52YWx1ZT09PWUpfX0pLGYuYWRkVmFsaWRhdG9yPWZ1bmN0aW9uKGUscix0LG4saSl7dShlLHtmbjpyLG1zZzp0LHByaW9yaXR5Om4saGFsdDppfSl9LGYuYWRkTWVzc2FnZXM9ZnVuY3Rpb24ocix0KXt2YXIgbj1lLmhhc093blByb3BlcnR5KHIpP2Vbcl06ZVtyXT17fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihlLHIpe25bZV09dFtlXX0pKX0sZi5zZXRMb2NhbGU9ZnVuY3Rpb24oZSl7bz1lfSxmfSkpOwoKLy9FeHRlbnNpb24KLy8gQSB2YWxpZGF0b3IgdG8gY2hlY2sgaWYgdGhlIGlucHV0IHZhbHVlIGlzIHdpdGhpbiBhIHNwZWNpZmllZCByYW5nZQovLyBUaGUgZ2xvYmFsIHZhbGlkYXRvciBtdXN0IGJlIGFkZGVkIGJlZm9yZSBjcmVhdGluZyB0aGUgcHJpc3RpbmUgaW5zdGFuY2UKCi8vIFByaXN0aW5lLmFkZFZhbGlkYXRvcigicGhvbmUiLCBmdW5jdGlvbihwaG9uZSkgewoKLy8gCXZhciBWYWxpZEFyZWFDb2RlcyA9IFsKLy8gCQk0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiwKLy8gCQk1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLAovLyAJCTYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMgovLyAJXTsKCi8vIAlwaG9uZSA9IHBob25lLnJlcGxhY2UoL1teMC05XSsvZ2ksICcnKTsKLy8gCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnICYmIHRoaXMuaGFzQ2xhc3MoJ3JlcXVpcmVkJykpIHsKLy8gCQllbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9dHJ1ZTsKLy8gCX0KLy8gCWlmKCBwaG9uZVswXSA9PSAnMScgKXsKLy8gCQlwaG9uZSA9IHBob25lLnN1YnN0cmluZyggMSApOwovLyAJfQoKLy8gCXZhciBhcmVhQ29kZSA9IHBhcnNlSW50KCBwaG9uZS5zdWJzdHJpbmcoMCwzKSApOwoKLy8gCWF4aW9zLmdldCgnaHR0cHM6Ly9hdXRvYXViYWluZS5jb20vc2VydmljZXMvdmFsaWRhdGVQaG9uZU51bWJlci5waHAnLHsKLy8gCQl0aW1lb3V0OjIwMDAsCi8vIAkJZGF0YVR5cGU6ICdqc29uJywKLy8gCQlwYXJhbXM6IHtwaG9uZTogcGhvbmV9LAovLyAJCXJlc3BvbnNlVHlwZTogJ2pzb24nCi8vIAl9KQovLyAJLnRoZW4oZnVuY3Rpb24ocmVzKSB7CgovLyAJCWlmICh0eXBlb2YgcmVzLmlzT2sgIT09ICd1bmRlZmluZWQnKXsKLy8gCQkJaWYgKHJlcy5waG9uZU51bWJlcklzVmFsaWQgPT09IGZhbHNlKSB7Ci8vIAkJCQkvL2NvbnNvbGUubG9nKCdwaG9uZSAnK3Bob25lKycgaXMgaW52YWxpZCcpOwovLyAJCQkJaWYodHlwZW9mIGVtYWlsSGFuZGxlciE9J3VuZGVmaW5lZCcgJiYgZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5ICkgewovLyAJCQkJCWVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrOwovLyAJCQkJfQovLyAJCQkJcmV0dXJuIHRydWU7Ci8vIAkJCX0KLy8gCQkJfSBlbHNlIHsKLy8gCQkJLy92YWxpZGF0ZSBhcmVhY29kZSBhdCBsZWFzdAovLyAJCQlpZiggdHlwZW9mIFZhbGlkQXJlYUNvZGVzLmluZGV4T2YgIT0gJ3VuZGVmaW5lZCcgJiYJVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiggYXJlYUNvZGUgKSA9PSAtMSApewovLyAJCQkJcmV0dXJuIGZhbHNlOwovLyAJCQl9Ci8vIAkJfQoKLy8gCX0pCi8vIAkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKLy8gCQkvLyB2YWxpZGF0ZSBhcmVhY29kZSBhdCBsZWFzdAovLyAJCWlmKCB0eXBlb2YgVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiAhPSAndW5kZWZpbmVkJyAmJglWYWxpZEFyZWFDb2Rlcy5pbmRleE9mKCBhcmVhQ29kZSApID09IC0xICl7Ci8vIAkJaWYodHlwZW9mIGVtYWlsSGFuZGxlciE9J3VuZGVmaW5lZCcJJiYgZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5KSBlbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKzsKLy8gCQkJcmV0dXJuIGZhbHNlOwovLyAJCX0KLy8gCQkvL2NvbnNvbGUubG9nKCJ2YWxpZGl0eSB2YWxpZGF0ZVBob25lTnVtYmVyIG5ldHdvcmsgZXJyb3IiKTsKCi8vIAkJcmV0dXJuIGZhbHNlOwovLyAJfSk7CgoKCi8vIH0sICJUaGUgdmFsdWUgKCR7MH0pIG11c3QgYmUgYmV0d2VlbiAkezF9IGFuZCAkezJ9IiwgNSwgZmFsc2UpOwovKiogL2pzL3ZhbmlsbGFqcy9mbGF0cGlja3IubWluLmpzICoqLwovKiBmbGF0cGlja3IgdjQuNi45LCwgQGxpY2Vuc2UgTUlUICovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKHQpOihlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLmZsYXRwaWNrcj10KCl9KHRoaXMsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuKGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxhPWFyZ3VtZW50cy5sZW5ndGg7bjxhO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiB0KCl7Zm9yKHZhciBlPTAsdD0wLG49YXJndW1lbnRzLmxlbmd0aDt0PG47dCsrKWUrPWFyZ3VtZW50c1t0XS5sZW5ndGg7dmFyIGE9QXJyYXkoZSksaT0wO2Zvcih0PTA7dDxuO3QrKylmb3IodmFyIG89YXJndW1lbnRzW3RdLHI9MCxsPW8ubGVuZ3RoO3I8bDtyKyssaSsrKWFbaV09b1tyXTtyZXR1cm4gYX12YXIgbj1bIm9uQ2hhbmdlIiwib25DbG9zZSIsIm9uRGF5Q3JlYXRlIiwib25EZXN0cm95Iiwib25LZXlEb3duIiwib25Nb250aENoYW5nZSIsIm9uT3BlbiIsIm9uUGFyc2VDb25maWciLCJvblJlYWR5Iiwib25WYWx1ZVVwZGF0ZSIsIm9uWWVhckNoYW5nZSIsIm9uUHJlQ2FsZW5kYXJQb3NpdGlvbiJdLGE9e19kaXNhYmxlOltdLGFsbG93SW5wdXQ6ITEsYWxsb3dJbnZhbGlkUHJlbG9hZDohMSxhbHRGb3JtYXQ6IkYgaiwgWSIsYWx0SW5wdXQ6ITEsYWx0SW5wdXRDbGFzczoiZm9ybS1jb250cm9sIGlucHV0IixhbmltYXRlOiJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYtMT09PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUiKSxhcmlhRGF0ZUZvcm1hdDoiRiBqLCBZIixhdXRvRmlsbERlZmF1bHRUaW1lOiEwLGNsaWNrT3BlbnM6ITAsY2xvc2VPblNlbGVjdDohMCxjb25qdW5jdGlvbjoiLCAiLGRhdGVGb3JtYXQ6IlktbS1kIixkZWZhdWx0SG91cjoxMixkZWZhdWx0TWludXRlOjAsZGVmYXVsdFNlY29uZHM6MCxkaXNhYmxlOltdLGRpc2FibGVNb2JpbGU6ITEsZW5hYmxlU2Vjb25kczohMSxlbmFibGVUaW1lOiExLGVycm9ySGFuZGxlcjpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybihlKX0sZ2V0V2VlazpmdW5jdGlvbihlKXt2YXIgdD1uZXcgRGF0ZShlLmdldFRpbWUoKSk7dC5zZXRIb3VycygwLDAsMCwwKSx0LnNldERhdGUodC5nZXREYXRlKCkrMy0odC5nZXREYXkoKSs2KSU3KTt2YXIgbj1uZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksMCw0KTtyZXR1cm4gMStNYXRoLnJvdW5kKCgodC5nZXRUaW1lKCktbi5nZXRUaW1lKCkpLzg2NGU1LTMrKG4uZ2V0RGF5KCkrNiklNykvNyl9LGhvdXJJbmNyZW1lbnQ6MSxpZ25vcmVkRm9jdXNFbGVtZW50czpbXSxpbmxpbmU6ITEsbG9jYWxlOiJkZWZhdWx0IixtaW51dGVJbmNyZW1lbnQ6NSxtb2RlOiJzaW5nbGUiLG1vbnRoU2VsZWN0b3JUeXBlOiJkcm9wZG93biIsbmV4dEFycm93OiI8c3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgdmlld0JveD0nMCAwIDE3IDE3Jz48Zz48L2c+PHBhdGggZD0nTTEzLjIwNyA4LjQ3MmwtNy44NTQgNy44NTQtMC43MDctMC43MDcgNy4xNDYtNy4xNDYtNy4xNDYtNy4xNDggMC43MDctMC43MDcgNy44NTQgNy44NTR6JyAvPjwvc3ZnPiIsbm9DYWxlbmRhcjohMSxub3c6bmV3IERhdGUsb25DaGFuZ2U6W10sb25DbG9zZTpbXSxvbkRheUNyZWF0ZTpbXSxvbkRlc3Ryb3k6W10sb25LZXlEb3duOltdLG9uTW9udGhDaGFuZ2U6W10sb25PcGVuOltdLG9uUGFyc2VDb25maWc6W10sb25SZWFkeTpbXSxvblZhbHVlVXBkYXRlOltdLG9uWWVhckNoYW5nZTpbXSxvblByZUNhbGVuZGFyUG9zaXRpb246W10scGx1Z2luczpbXSxwb3NpdGlvbjoiYXV0byIscG9zaXRpb25FbGVtZW50OnZvaWQgMCxwcmV2QXJyb3c6IjxzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2aWV3Qm94PScwIDAgMTcgMTcnPjxnPjwvZz48cGF0aCBkPSdNNS4yMDcgOC40NzFsNy4xNDYgNy4xNDctMC43MDcgMC43MDctNy44NTMtNy44NTQgNy44NTQtNy44NTMgMC43MDcgMC43MDctNy4xNDcgNy4xNDZ6JyAvPjwvc3ZnPiIsc2hvcnRoYW5kQ3VycmVudE1vbnRoOiExLHNob3dNb250aHM6MSxzdGF0aWM6ITEsdGltZV8yNGhyOiExLHdlZWtOdW1iZXJzOiExLHdyYXA6ITF9LGk9e3dlZWtkYXlzOntzaG9ydGhhbmQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxsb25naGFuZDpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LG1vbnRoczp7c2hvcnRoYW5kOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sbG9uZ2hhbmQ6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxkYXlzSW5Nb250aDpbMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGZpcnN0RGF5T2ZXZWVrOjAsb3JkaW5hbDpmdW5jdGlvbihlKXt2YXIgdD1lJTEwMDtpZih0PjMmJnQ8MjEpcmV0dXJuInRoIjtzd2l0Y2godCUxMCl7Y2FzZSAxOnJldHVybiJzdCI7Y2FzZSAyOnJldHVybiJuZCI7Y2FzZSAzOnJldHVybiJyZCI7ZGVmYXVsdDpyZXR1cm4idGgifX0scmFuZ2VTZXBhcmF0b3I6IiB0byAiLHdlZWtBYmJyZXZpYXRpb246IldrIixzY3JvbGxUaXRsZToiU2Nyb2xsIHRvIGluY3JlbWVudCIsdG9nZ2xlVGl0bGU6IkNsaWNrIHRvIHRvZ2dsZSIsYW1QTTpbIkFNIiwiUE0iXSx5ZWFyQXJpYUxhYmVsOiJZZWFyIixtb250aEFyaWFMYWJlbDoiTW9udGgiLGhvdXJBcmlhTGFiZWw6IkhvdXIiLG1pbnV0ZUFyaWFMYWJlbDoiTWludXRlIix0aW1lXzI0aHI6ITF9LG89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9MiksKCIwMDAiK2UpLnNsaWNlKC0xKnQpfSxyPWZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZT8xOjB9O2Z1bmN0aW9uIGwoZSx0KXt2YXIgbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dChuKSxuPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkoYSxhcmd1bWVudHMpfSksdCl9fXZhciBjPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgQXJyYXk\/ZTpbZV19O2Z1bmN0aW9uIGQoZSx0LG4pe2lmKCEwPT09bilyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKHQpO2UuY2xhc3NMaXN0LnJlbW92ZSh0KX1mdW5jdGlvbiBzKGUsdCxuKXt2YXIgYT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gdD10fHwiIixuPW58fCIiLGEuY2xhc3NOYW1lPXQsdm9pZCAwIT09biYmKGEudGV4dENvbnRlbnQ9biksYX1mdW5jdGlvbiB1KGUpe2Zvcig7ZS5maXJzdENoaWxkOyllLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gZihlLHQpe3JldHVybiB0KGUpP2U6ZS5wYXJlbnROb2RlP2YoZS5wYXJlbnROb2RlLHQpOnZvaWQgMH1mdW5jdGlvbiBtKGUsdCl7dmFyIG49cygiZGl2IiwibnVtSW5wdXRXcmFwcGVyIiksYT1zKCJpbnB1dCIsIm51bUlucHV0ICIrZSksaT1zKCJzcGFuIiwiYXJyb3dVcCIpLG89cygic3BhbiIsImFycm93RG93biIpO2lmKC0xPT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDkuMCIpP2EudHlwZT0ibnVtYmVyIjooYS50eXBlPSJ0ZXh0IixhLnBhdHRlcm49IlxcZCoiKSx2b2lkIDAhPT10KWZvcih2YXIgciBpbiB0KWEuc2V0QXR0cmlidXRlKHIsdFtyXSk7cmV0dXJuIG4uYXBwZW5kQ2hpbGQoYSksbi5hcHBlbmRDaGlsZChpKSxuLmFwcGVuZENoaWxkKG8pLG59ZnVuY3Rpb24gZyhlKXt0cnl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUuY29tcG9zZWRQYXRoP2UuY29tcG9zZWRQYXRoKClbMF06ZS50YXJnZXR9Y2F0Y2godCl7cmV0dXJuIGUudGFyZ2V0fX12YXIgcD1mdW5jdGlvbigpe30saD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4ubW9udGhzW3Q\/InNob3J0aGFuZCI6ImxvbmdoYW5kIl1bZV19LHY9e0Q6cCxGOmZ1bmN0aW9uKGUsdCxuKXtlLnNldE1vbnRoKG4ubW9udGhzLmxvbmdoYW5kLmluZGV4T2YodCkpfSxHOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0sSDpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LEo6ZnVuY3Rpb24oZSx0KXtlLnNldERhdGUocGFyc2VGbG9hdCh0KSl9LEs6ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0SG91cnMoZS5nZXRIb3VycygpJTEyKzEyKnIobmV3IFJlZ0V4cChuLmFtUE1bMV0sImkiKS50ZXN0KHQpKSl9LE06ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0TW9udGgobi5tb250aHMuc2hvcnRoYW5kLmluZGV4T2YodCkpfSxTOmZ1bmN0aW9uKGUsdCl7ZS5zZXRTZWNvbmRzKHBhcnNlRmxvYXQodCkpfSxVOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKDFlMypwYXJzZUZsb2F0KHQpKX0sVzpmdW5jdGlvbihlLHQsbil7dmFyIGE9cGFyc2VJbnQodCksaT1uZXcgRGF0ZShlLmdldEZ1bGxZZWFyKCksMCwyKzcqKGEtMSksMCwwLDAsMCk7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1pLmdldERheSgpK24uZmlyc3REYXlPZldlZWspLGl9LFk6ZnVuY3Rpb24oZSx0KXtlLnNldEZ1bGxZZWFyKHBhcnNlRmxvYXQodCkpfSxaOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKHQpfSxkOmZ1bmN0aW9uKGUsdCl7ZS5zZXREYXRlKHBhcnNlRmxvYXQodCkpfSxoOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0saTpmdW5jdGlvbihlLHQpe2Uuc2V0TWludXRlcyhwYXJzZUZsb2F0KHQpKX0sajpmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShwYXJzZUZsb2F0KHQpKX0sbDpwLG06ZnVuY3Rpb24oZSx0KXtlLnNldE1vbnRoKHBhcnNlRmxvYXQodCktMSl9LG46ZnVuY3Rpb24oZSx0KXtlLnNldE1vbnRoKHBhcnNlRmxvYXQodCktMSl9LHM6ZnVuY3Rpb24oZSx0KXtlLnNldFNlY29uZHMocGFyc2VGbG9hdCh0KSl9LHU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IERhdGUocGFyc2VGbG9hdCh0KSl9LHc6cCx5OmZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcigyZTMrcGFyc2VGbG9hdCh0KSl9fSxEPXtEOiIoXFx3KykiLEY6IihcXHcrKSIsRzoiKFxcZFxcZHxcXGQpIixIOiIoXFxkXFxkfFxcZCkiLEo6IihcXGRcXGR8XFxkKVxcdysiLEs6IiIsTToiKFxcdyspIixTOiIoXFxkXFxkfFxcZCkiLFU6IiguKykiLFc6IihcXGRcXGR8XFxkKSIsWToiKFxcZHs0fSkiLFo6IiguKykiLGQ6IihcXGRcXGR8XFxkKSIsaDoiKFxcZFxcZHxcXGQpIixpOiIoXFxkXFxkfFxcZCkiLGo6IihcXGRcXGR8XFxkKSIsbDoiKFxcdyspIixtOiIoXFxkXFxkfFxcZCkiLG46IihcXGRcXGR8XFxkKSIsczoiKFxcZFxcZHxcXGQpIix1OiIoLispIix3OiIoXFxkXFxkfFxcZCkiLHk6IihcXGR7Mn0pIn0sdz17WjpmdW5jdGlvbihlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfSxEOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdC53ZWVrZGF5cy5zaG9ydGhhbmRbdy53KGUsdCxuKV19LEY6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKHcubihlLHQsbiktMSwhMSx0KX0sRzpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG8ody5oKGUsdCxuKSl9LEg6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRIb3VycygpKX0sSjpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDAhPT10Lm9yZGluYWw\/ZS5nZXREYXRlKCkrdC5vcmRpbmFsKGUuZ2V0RGF0ZSgpKTplLmdldERhdGUoKX0sSzpmdW5jdGlvbihlLHQpe3JldHVybiB0LmFtUE1bcihlLmdldEhvdXJzKCk+MTEpXX0sTTpmdW5jdGlvbihlLHQpe3JldHVybiBoKGUuZ2V0TW9udGgoKSwhMCx0KX0sUzpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldFNlY29uZHMoKSl9LFU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VGltZSgpLzFlM30sVzpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG4uZ2V0V2VlayhlKX0sWTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldEZ1bGxZZWFyKCksNCl9LGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXREYXRlKCkpfSxoOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEhvdXJzKCklMTI\/ZS5nZXRIb3VycygpJTEyOjEyfSxpOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0TWludXRlcygpKX0sajpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXREYXRlKCl9LGw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC53ZWVrZGF5cy5sb25naGFuZFtlLmdldERheSgpXX0sbTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldE1vbnRoKCkrMSl9LG46ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0TW9udGgoKSsxfSxzOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFNlY29uZHMoKX0sdTpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRUaW1lKCl9LHc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0RGF5KCl9LHk6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlLmdldEZ1bGxZZWFyKCkpLnN1YnN0cmluZygyKX19LGI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb25maWcsbj12b2lkIDA9PT10P2E6dCxvPWUubDEwbixyPXZvaWQgMD09PW8\/aTpvLGw9ZS5pc01vYmlsZSxjPXZvaWQgMCE9PWwmJmw7cmV0dXJuIGZ1bmN0aW9uKGUsdCxhKXt2YXIgaT1hfHxyO3JldHVybiB2b2lkIDA9PT1uLmZvcm1hdERhdGV8fGM\/dC5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0LGEsbyl7cmV0dXJuIHdbdF0mJiJcXCIhPT1vW2EtMV0\/d1t0XShlLGksbik6IlxcIiE9PXQ\/dDoiIn0pKS5qb2luKCIiKTpuLmZvcm1hdERhdGUoZSx0LGkpfX0sQz1mdW5jdGlvbihlKXt2YXIgdD1lLmNvbmZpZyxuPXZvaWQgMD09PXQ\/YTp0LG89ZS5sMTBuLHI9dm9pZCAwPT09bz9pOm87cmV0dXJuIGZ1bmN0aW9uKGUsdCxpLG8pe2lmKDA9PT1lfHxlKXt2YXIgbCxjPW98fHIsZD1lO2lmKGUgaW5zdGFuY2VvZiBEYXRlKWw9bmV3IERhdGUoZS5nZXRUaW1lKCkpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBlJiZ2b2lkIDAhPT1lLnRvRml4ZWQpbD1uZXcgRGF0ZShlKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHM9dHx8KG58fGEpLmRhdGVGb3JtYXQsdT1TdHJpbmcoZSkudHJpbSgpO2lmKCJ0b2RheSI9PT11KWw9bmV3IERhdGUsaT0hMDtlbHNlIGlmKC9aJC8udGVzdCh1KXx8L0dNVCQvLnRlc3QodSkpbD1uZXcgRGF0ZShlKTtlbHNlIGlmKG4mJm4ucGFyc2VEYXRlKWw9bi5wYXJzZURhdGUoZSxzKTtlbHNle2w9biYmbi5ub0NhbGVuZGFyP25ldyBEYXRlKChuZXcgRGF0ZSkuc2V0SG91cnMoMCwwLDAsMCkpOm5ldyBEYXRlKChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSwwLDEsMCwwLDAsMCk7Zm9yKHZhciBmPXZvaWQgMCxtPVtdLGc9MCxwPTAsaD0iIjtnPHMubGVuZ3RoO2crKyl7dmFyIHc9c1tnXSxiPSJcXCI9PT13LEM9IlxcIj09PXNbZy0xXXx8YjtpZihEW3ddJiYhQyl7aCs9RFt3XTt2YXIgTT1uZXcgUmVnRXhwKGgpLmV4ZWMoZSk7TSYmKGY9ITApJiZtWyJZIiE9PXc\/InB1c2giOiJ1bnNoaWZ0Il0oe2ZuOnZbd10sdmFsOk1bKytwXX0pfWVsc2UgYnx8KGgrPSIuIik7bS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLmZuLG49ZS52YWw7cmV0dXJuIGw9dChsLG4sYyl8fGx9KSl9bD1mP2w6dm9pZCAwfX1pZihsIGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKGwuZ2V0VGltZSgpKSlyZXR1cm4hMD09PWkmJmwuc2V0SG91cnMoMCwwLDAsMCksbDtuLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgZGF0ZSBwcm92aWRlZDogIitkKSl9fX07ZnVuY3Rpb24gTShlLHQsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPSEwKSwhMSE9PW4\/bmV3IERhdGUoZS5nZXRUaW1lKCkpLnNldEhvdXJzKDAsMCwwLDApLW5ldyBEYXRlKHQuZ2V0VGltZSgpKS5zZXRIb3VycygwLDAsMCwwKTplLmdldFRpbWUoKS10LmdldFRpbWUoKX12YXIgeT04NjRlNTtmdW5jdGlvbiB4KGUpe3ZhciB0PWUuZGVmYXVsdEhvdXIsbj1lLmRlZmF1bHRNaW51dGUsYT1lLmRlZmF1bHRTZWNvbmRzO2lmKHZvaWQgMCE9PWUubWluRGF0ZSl7dmFyIGk9ZS5taW5EYXRlLmdldEhvdXJzKCksbz1lLm1pbkRhdGUuZ2V0TWludXRlcygpLHI9ZS5taW5EYXRlLmdldFNlY29uZHMoKTt0PGkmJih0PWkpLHQ9PT1pJiZuPG8mJihuPW8pLHQ9PT1pJiZuPT09byYmYTxyJiYoYT1lLm1pbkRhdGUuZ2V0U2Vjb25kcygpKX1pZih2b2lkIDAhPT1lLm1heERhdGUpe3ZhciBsPWUubWF4RGF0ZS5nZXRIb3VycygpLGM9ZS5tYXhEYXRlLmdldE1pbnV0ZXMoKTsodD1NYXRoLm1pbih0LGwpKT09PWwmJihuPU1hdGgubWluKGMsbikpLHQ9PT1sJiZuPT09YyYmKGE9ZS5tYXhEYXRlLmdldFNlY29uZHMoKSl9cmV0dXJue2hvdXJzOnQsbWludXRlczpuLHNlY29uZHM6YX19ImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5hc3NpZ24mJihPYmplY3QuYXNzaWduPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO2lmKCFlKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Iik7Zm9yKHZhciBhPWZ1bmN0aW9uKHQpe3QmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3JldHVybiBlW25dPXRbbl19KSl9LGk9MCxvPXQ7aTxvLmxlbmd0aDtpKyspe3ZhciByPW9baV07YShyKX1yZXR1cm4gZX0pO2Z1bmN0aW9uIEUocCx2KXt2YXIgdz17Y29uZmlnOmUoZSh7fSxhKSxULmRlZmF1bHRDb25maWcpLGwxMG46aX07ZnVuY3Rpb24gRShlKXtyZXR1cm4gZS5iaW5kKHcpfWZ1bmN0aW9uIGsoKXt2YXIgZT13LmNvbmZpZzshMT09PWUud2Vla051bWJlcnMmJjE9PT1lLnNob3dNb250aHN8fCEwIT09ZS5ub0NhbGVuZGFyJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe2lmKHZvaWQgMCE9PXcuY2FsZW5kYXJDb250YWluZXImJih3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJibG9jayIpLHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lcil7dmFyIHQ9KHcuZGF5cy5vZmZzZXRXaWR0aCsxKSplLnNob3dNb250aHM7dy5kYXlzQ29udGFpbmVyLnN0eWxlLndpZHRoPXQrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLndpZHRoPXQrKHZvaWQgMCE9PXcud2Vla1dyYXBwZXI\/dy53ZWVrV3JhcHBlci5vZmZzZXRXaWR0aDowKSsicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxpdHkiKSx3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJkaXNwbGF5Iil9fSkpfWZ1bmN0aW9uIEkoZSl7aWYoMD09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgpe3ZhciB0PXZvaWQgMD09PXcuY29uZmlnLm1pbkRhdGV8fE0obmV3IERhdGUsdy5jb25maWcubWluRGF0ZSk+PTA\/bmV3IERhdGU6bmV3IERhdGUody5jb25maWcubWluRGF0ZS5nZXRUaW1lKCkpLG49eCh3LmNvbmZpZyk7dC5zZXRIb3VycyhuLmhvdXJzLG4ubWludXRlcyxuLnNlY29uZHMsdC5nZXRNaWxsaXNlY29uZHMoKSksdy5zZWxlY3RlZERhdGVzPVt0XSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj10fXZvaWQgMCE9PWUmJiJibHVyIiE9PWUudHlwZSYmZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PSJrZXlkb3duIj09PWUudHlwZSxuPWcoZSksYT1uO3ZvaWQgMCE9PXcuYW1QTSYmbj09PXcuYW1QTSYmKHcuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVtyKHcuYW1QTS50ZXh0Q29udGVudD09PXcubDEwbi5hbVBNWzBdKV0pO3ZhciBpPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIm1pbiIpKSxsPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIm1heCIpKSxjPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoInN0ZXAiKSksZD1wYXJzZUludChhLnZhbHVlLDEwKSxzPWUuZGVsdGF8fCh0PzM4PT09ZS53aGljaD8xOi0xOjApLHU9ZCtjKnM7aWYodm9pZCAwIT09YS52YWx1ZSYmMj09PWEudmFsdWUubGVuZ3RoKXt2YXIgZj1hPT09dy5ob3VyRWxlbWVudCxtPWE9PT13Lm1pbnV0ZUVsZW1lbnQ7dTxpPyh1PWwrdStyKCFmKSsocihmKSYmcighdy5hbVBNKSksbSYmaih2b2lkIDAsLTEsdy5ob3VyRWxlbWVudCkpOnU+bCYmKHU9YT09PXcuaG91ckVsZW1lbnQ\/dS1sLXIoIXcuYW1QTSk6aSxtJiZqKHZvaWQgMCwxLHcuaG91ckVsZW1lbnQpKSx3LmFtUE0mJmYmJigxPT09Yz91K2Q9PT0yMzpNYXRoLmFicyh1LWQpPmMpJiYody5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNW3Iody5hbVBNLnRleHRDb250ZW50PT09dy5sMTBuLmFtUE1bMF0pXSksYS52YWx1ZT1vKHUpfX0oZSk7dmFyIGE9dy5faW5wdXQudmFsdWU7UygpLGJlKCksdy5faW5wdXQudmFsdWUhPT1hJiZ3Ll9kZWJvdW5jZWRDaGFuZ2UoKX1mdW5jdGlvbiBTKCl7aWYodm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50KXt2YXIgZSx0LG49KHBhcnNlSW50KHcuaG91ckVsZW1lbnQudmFsdWUuc2xpY2UoLTIpLDEwKXx8MCklMjQsYT0ocGFyc2VJbnQody5taW51dGVFbGVtZW50LnZhbHVlLDEwKXx8MCklNjAsaT12b2lkIDAhPT13LnNlY29uZEVsZW1lbnQ\/KHBhcnNlSW50KHcuc2Vjb25kRWxlbWVudC52YWx1ZSwxMCl8fDApJTYwOjA7dm9pZCAwIT09dy5hbVBNJiYoZT1uLHQ9dy5hbVBNLnRleHRDb250ZW50LG49ZSUxMisxMipyKHQ9PT13LmwxMG4uYW1QTVsxXSkpO3ZhciBvPXZvaWQgMCE9PXcuY29uZmlnLm1pblRpbWV8fHcuY29uZmlnLm1pbkRhdGUmJncubWluRGF0ZUhhc1RpbWUmJncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiYwPT09TSh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaix3LmNvbmZpZy5taW5EYXRlLCEwKTtpZih2b2lkIDAhPT13LmNvbmZpZy5tYXhUaW1lfHx3LmNvbmZpZy5tYXhEYXRlJiZ3Lm1heERhdGVIYXNUaW1lJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmMD09PU0ody5sYXRlc3RTZWxlY3RlZERhdGVPYmosdy5jb25maWcubWF4RGF0ZSwhMCkpe3ZhciBsPXZvaWQgMCE9PXcuY29uZmlnLm1heFRpbWU\/dy5jb25maWcubWF4VGltZTp3LmNvbmZpZy5tYXhEYXRlOyhuPU1hdGgubWluKG4sbC5nZXRIb3VycygpKSk9PT1sLmdldEhvdXJzKCkmJihhPU1hdGgubWluKGEsbC5nZXRNaW51dGVzKCkpKSxhPT09bC5nZXRNaW51dGVzKCkmJihpPU1hdGgubWluKGksbC5nZXRTZWNvbmRzKCkpKX1pZihvKXt2YXIgYz12b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lP3cuY29uZmlnLm1pblRpbWU6dy5jb25maWcubWluRGF0ZTsobj1NYXRoLm1heChuLGMuZ2V0SG91cnMoKSkpPT09Yy5nZXRIb3VycygpJiZhPGMuZ2V0TWludXRlcygpJiYoYT1jLmdldE1pbnV0ZXMoKSksYT09PWMuZ2V0TWludXRlcygpJiYoaT1NYXRoLm1heChpLGMuZ2V0U2Vjb25kcygpKSl9TyhuLGEsaSl9fWZ1bmN0aW9uIF8oZSl7dmFyIHQ9ZXx8dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo7dCYmTyh0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCkpfWZ1bmN0aW9uIE8oZSx0LG4pe3ZvaWQgMCE9PXcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5zZXRIb3VycyhlJTI0LHQsbnx8MCwwKSx3LmhvdXJFbGVtZW50JiZ3Lm1pbnV0ZUVsZW1lbnQmJiF3LmlzTW9iaWxlJiYody5ob3VyRWxlbWVudC52YWx1ZT1vKHcuY29uZmlnLnRpbWVfMjRocj9lOigxMitlKSUxMisxMipyKGUlMTI9PTApKSx3Lm1pbnV0ZUVsZW1lbnQudmFsdWU9byh0KSx2b2lkIDAhPT13LmFtUE0mJih3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bcihlPj0xMildKSx2b2lkIDAhPT13LnNlY29uZEVsZW1lbnQmJih3LnNlY29uZEVsZW1lbnQudmFsdWU9byhuKSkpfWZ1bmN0aW9uIEYoZSl7dmFyIHQ9ZyhlKSxuPXBhcnNlSW50KHQudmFsdWUpKyhlLmRlbHRhfHwwKTsobi8xZTM+MXx8IkVudGVyIj09PWUua2V5JiYhL1teXGRdLy50ZXN0KG4udG9TdHJpbmcoKSkpJiZRKG4pfWZ1bmN0aW9uIEEoZSx0LG4sYSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBBcnJheT90LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBBKGUsdCxuLGEpfSkpOmUgaW5zdGFuY2VvZiBBcnJheT9lLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBBKGUsdCxuLGEpfSkpOihlLmFkZEV2ZW50TGlzdGVuZXIodCxuLGEpLHZvaWQgdy5faGFuZGxlcnMucHVzaCh7cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfX0pKX1mdW5jdGlvbiBOKCl7cGUoIm9uQ2hhbmdlIil9ZnVuY3Rpb24gUChlLHQpe3ZhciBuPXZvaWQgMCE9PWU\/dy5wYXJzZURhdGUoZSk6dy5sYXRlc3RTZWxlY3RlZERhdGVPYmp8fCh3LmNvbmZpZy5taW5EYXRlJiZ3LmNvbmZpZy5taW5EYXRlPncubm93P3cuY29uZmlnLm1pbkRhdGU6dy5jb25maWcubWF4RGF0ZSYmdy5jb25maWcubWF4RGF0ZTx3Lm5vdz93LmNvbmZpZy5tYXhEYXRlOncubm93KSxhPXcuY3VycmVudFllYXIsaT13LmN1cnJlbnRNb250aDt0cnl7dm9pZCAwIT09biYmKHcuY3VycmVudFllYXI9bi5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPW4uZ2V0TW9udGgoKSl9Y2F0Y2goZSl7ZS5tZXNzYWdlPSJJbnZhbGlkIGRhdGUgc3VwcGxpZWQ6ICIrbix3LmNvbmZpZy5lcnJvckhhbmRsZXIoZSl9dCYmdy5jdXJyZW50WWVhciE9PWEmJihwZSgib25ZZWFyQ2hhbmdlIiksSygpKSwhdHx8dy5jdXJyZW50WWVhcj09PWEmJncuY3VycmVudE1vbnRoPT09aXx8cGUoIm9uTW9udGhDaGFuZ2UiKSx3LnJlZHJhdygpfWZ1bmN0aW9uIFkoZSl7dmFyIHQ9ZyhlKTt+dC5jbGFzc05hbWUuaW5kZXhPZigiYXJyb3ciKSYmaihlLHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd1VwIik\/MTotMSl9ZnVuY3Rpb24gaihlLHQsbil7dmFyIGE9ZSYmZyhlKSxpPW58fGEmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsbz1oZSgiaW5jcmVtZW50Iik7by5kZWx0YT10LGkmJmkuZGlzcGF0Y2hFdmVudChvKX1mdW5jdGlvbiBIKGUsdCxuLGEpe3ZhciBpPVgodCwhMCksbz1zKCJzcGFuIiwiZmxhdHBpY2tyLWRheSAiK2UsdC5nZXREYXRlKCkudG9TdHJpbmcoKSk7cmV0dXJuIG8uZGF0ZU9iaj10LG8uJGk9YSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5mb3JtYXREYXRlKHQsdy5jb25maWcuYXJpYURhdGVGb3JtYXQpKSwtMT09PWUuaW5kZXhPZigiaGlkZGVuIikmJjA9PT1NKHQsdy5ub3cpJiYody50b2RheURhdGVFbGVtPW8sby5jbGFzc0xpc3QuYWRkKCJ0b2RheSIpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWN1cnJlbnQiLCJkYXRlIikpLGk\/KG8udGFiSW5kZXg9LTEsdmUodCkmJihvLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIiksdy5zZWxlY3RlZERhdGVFbGVtPW8sInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJihkKG8sInN0YXJ0UmFuZ2UiLHcuc2VsZWN0ZWREYXRlc1swXSYmMD09PU0odCx3LnNlbGVjdGVkRGF0ZXNbMF0sITApKSxkKG8sImVuZFJhbmdlIix3LnNlbGVjdGVkRGF0ZXNbMV0mJjA9PT1NKHQsdy5zZWxlY3RlZERhdGVzWzFdLCEwKSksIm5leHRNb250aERheSI9PT1lJiZvLmNsYXNzTGlzdC5hZGQoImluUmFuZ2UiKSkpKTpvLmNsYXNzTGlzdC5hZGQoImZsYXRwaWNrci1kaXNhYmxlZCIpLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZmdW5jdGlvbihlKXtyZXR1cm4hKCJyYW5nZSIhPT13LmNvbmZpZy5tb2RlfHx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPDIpJiYoTShlLHcuc2VsZWN0ZWREYXRlc1swXSk+PTAmJk0oZSx3LnNlbGVjdGVkRGF0ZXNbMV0pPD0wKX0odCkmJiF2ZSh0KSYmby5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIiksdy53ZWVrTnVtYmVycyYmMT09PXcuY29uZmlnLnNob3dNb250aHMmJiJwcmV2TW9udGhEYXkiIT09ZSYmbiU3PT0xJiZ3LndlZWtOdW1iZXJzLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIiwiPHNwYW4gY2xhc3M9J2ZsYXRwaWNrci1kYXknPiIrdy5jb25maWcuZ2V0V2Vlayh0KSsiPC9zcGFuPiIpLHBlKCJvbkRheUNyZWF0ZSIsbyksb31mdW5jdGlvbiBMKGUpe2UuZm9jdXMoKSwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmYWUoZSl9ZnVuY3Rpb24gVyhlKXtmb3IodmFyIHQ9ZT4wPzA6dy5jb25maWcuc2hvd01vbnRocy0xLG49ZT4wP3cuY29uZmlnLnNob3dNb250aHM6LTEsYT10O2EhPW47YSs9ZSlmb3IodmFyIGk9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW2FdLG89ZT4wPzA6aS5jaGlsZHJlbi5sZW5ndGgtMSxyPWU+MD9pLmNoaWxkcmVuLmxlbmd0aDotMSxsPW87bCE9cjtsKz1lKXt2YXIgYz1pLmNoaWxkcmVuW2xdO2lmKC0xPT09Yy5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJlgoYy5kYXRlT2JqKSlyZXR1cm4gY319ZnVuY3Rpb24gUihlLHQpe3ZhciBuPWVlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fGRvY3VtZW50LmJvZHkpLGE9dm9pZCAwIT09ZT9lOm4\/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDp2b2lkIDAhPT13LnNlbGVjdGVkRGF0ZUVsZW0mJmVlKHcuc2VsZWN0ZWREYXRlRWxlbSk\/dy5zZWxlY3RlZERhdGVFbGVtOnZvaWQgMCE9PXcudG9kYXlEYXRlRWxlbSYmZWUody50b2RheURhdGVFbGVtKT93LnRvZGF5RGF0ZUVsZW06Vyh0PjA\/MTotMSk7dm9pZCAwPT09YT93Ll9pbnB1dC5mb2N1cygpOm4\/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49LTE9PT1lLmNsYXNzTmFtZS5pbmRleE9mKCJNb250aCIpP2UuZGF0ZU9iai5nZXRNb250aCgpOncuY3VycmVudE1vbnRoLGE9dD4wP3cuY29uZmlnLnNob3dNb250aHM6LTEsaT10PjA\/MTotMSxvPW4tdy5jdXJyZW50TW9udGg7byE9YTtvKz1pKWZvcih2YXIgcj13LmRheXNDb250YWluZXIuY2hpbGRyZW5bb10sbD1uLXcuY3VycmVudE1vbnRoPT09bz9lLiRpK3Q6dDwwP3IuY2hpbGRyZW4ubGVuZ3RoLTE6MCxjPXIuY2hpbGRyZW4ubGVuZ3RoLGQ9bDtkPj0wJiZkPGMmJmQhPSh0PjA\/YzotMSk7ZCs9aSl7dmFyIHM9ci5jaGlsZHJlbltkXTtpZigtMT09PXMuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiZYKHMuZGF0ZU9iaikmJk1hdGguYWJzKGUuJGktZCk+PU1hdGguYWJzKHQpKXJldHVybiBMKHMpfXcuY2hhbmdlTW9udGgoaSksUihXKGkpLDApfShhLHQpOkwoYSl9ZnVuY3Rpb24gQihlLHQpe2Zvcih2YXIgbj0obmV3IERhdGUoZSx0LDEpLmdldERheSgpLXcubDEwbi5maXJzdERheU9mV2Vlays3KSU3LGE9dy51dGlscy5nZXREYXlzSW5Nb250aCgodC0xKzEyKSUxMixlKSxpPXcudXRpbHMuZ2V0RGF5c0luTW9udGgodCxlKSxvPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscj13LmNvbmZpZy5zaG93TW9udGhzPjEsbD1yPyJwcmV2TW9udGhEYXkgaGlkZGVuIjoicHJldk1vbnRoRGF5IixjPXI\/Im5leHRNb250aERheSBoaWRkZW4iOiJuZXh0TW9udGhEYXkiLGQ9YSsxLW4sdT0wO2Q8PWE7ZCsrLHUrKylvLmFwcGVuZENoaWxkKEgobCxuZXcgRGF0ZShlLHQtMSxkKSxkLHUpKTtmb3IoZD0xO2Q8PWk7ZCsrLHUrKylvLmFwcGVuZENoaWxkKEgoIiIsbmV3IERhdGUoZSx0LGQpLGQsdSkpO2Zvcih2YXIgZj1pKzE7Zjw9NDItbiYmKDE9PT13LmNvbmZpZy5zaG93TW9udGhzfHx1JTchPTApO2YrKyx1Kyspby5hcHBlbmRDaGlsZChIKGMsbmV3IERhdGUoZSx0KzEsZiVpKSxmLHUpKTt2YXIgbT1zKCJkaXYiLCJkYXlDb250YWluZXIiKTtyZXR1cm4gbS5hcHBlbmRDaGlsZChvKSxtfWZ1bmN0aW9uIEooKXtpZih2b2lkIDAhPT13LmRheXNDb250YWluZXIpe3Uody5kYXlzQ29udGFpbmVyKSx3LndlZWtOdW1iZXJzJiZ1KHcud2Vla051bWJlcnMpO2Zvcih2YXIgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdD0wO3Q8dy5jb25maWcuc2hvd01vbnRoczt0Kyspe3ZhciBuPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdy5jdXJyZW50TW9udGgsMSk7bi5zZXRNb250aCh3LmN1cnJlbnRNb250aCt0KSxlLmFwcGVuZENoaWxkKEIobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSkpfXcuZGF5c0NvbnRhaW5lci5hcHBlbmRDaGlsZChlKSx3LmRheXM9dy5kYXlzQ29udGFpbmVyLmZpcnN0Q2hpbGQsInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJjE9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiZhZSgpfX1mdW5jdGlvbiBLKCl7aWYoISh3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJkcm9wZG93biIhPT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZSkpe3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiEodm9pZCAwIT09dy5jb25maWcubWluRGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSYmZTx3LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCkpJiYhKHZvaWQgMCE9PXcuY29uZmlnLm1heERhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkmJmU+dy5jb25maWcubWF4RGF0ZS5nZXRNb250aCgpKX07dy5tb250aHNEcm9wZG93bkNvbnRhaW5lci50YWJJbmRleD0tMSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLmlubmVySFRNTD0iIjtmb3IodmFyIHQ9MDt0PDEyO3QrKylpZihlKHQpKXt2YXIgbj1zKCJvcHRpb24iLCJmbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aCIpO24udmFsdWU9bmV3IERhdGUody5jdXJyZW50WWVhcix0KS5nZXRNb250aCgpLnRvU3RyaW5nKCksbi50ZXh0Q29udGVudD1oKHQsdy5jb25maWcuc2hvcnRoYW5kQ3VycmVudE1vbnRoLHcubDEwbiksbi50YWJJbmRleD0tMSx3LmN1cnJlbnRNb250aD09PXQmJihuLnNlbGVjdGVkPSEwKSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLmFwcGVuZENoaWxkKG4pfX19ZnVuY3Rpb24gVSgpe3ZhciBlLHQ9cygiZGl2IiwiZmxhdHBpY2tyLW1vbnRoIiksbj13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3cuY29uZmlnLnNob3dNb250aHM+MXx8InN0YXRpYyI9PT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZT9lPXMoInNwYW4iLCJjdXItbW9udGgiKToody5tb250aHNEcm9wZG93bkNvbnRhaW5lcj1zKCJzZWxlY3QiLCJmbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHMiKSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5sMTBuLm1vbnRoQXJpYUxhYmVsKSxBKHcubW9udGhzRHJvcGRvd25Db250YWluZXIsImNoYW5nZSIsKGZ1bmN0aW9uKGUpe3ZhciB0PWcoZSksbj1wYXJzZUludCh0LnZhbHVlLDEwKTt3LmNoYW5nZU1vbnRoKG4tdy5jdXJyZW50TW9udGgpLHBlKCJvbk1vbnRoQ2hhbmdlIil9KSksSygpLGU9dy5tb250aHNEcm9wZG93bkNvbnRhaW5lcik7dmFyIGE9bSgiY3VyLXllYXIiLHt0YWJpbmRleDoiLTEifSksaT1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO2kuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix3LmwxMG4ueWVhckFyaWFMYWJlbCksdy5jb25maWcubWluRGF0ZSYmaS5zZXRBdHRyaWJ1dGUoIm1pbiIsdy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkpLHcuY29uZmlnLm1heERhdGUmJihpLnNldEF0dHJpYnV0ZSgibWF4Iix3LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSksaS5kaXNhYmxlZD0hIXcuY29uZmlnLm1pbkRhdGUmJncuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKT09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSk7dmFyIG89cygiZGl2IiwiZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgiKTtyZXR1cm4gby5hcHBlbmRDaGlsZChlKSxvLmFwcGVuZENoaWxkKGEpLG4uYXBwZW5kQ2hpbGQobyksdC5hcHBlbmRDaGlsZChuKSx7Y29udGFpbmVyOnQseWVhckVsZW1lbnQ6aSxtb250aEVsZW1lbnQ6ZX19ZnVuY3Rpb24gcSgpe3Uody5tb250aE5hdiksdy5tb250aE5hdi5hcHBlbmRDaGlsZCh3LnByZXZNb250aE5hdiksdy5jb25maWcuc2hvd01vbnRocyYmKHcueWVhckVsZW1lbnRzPVtdLHcubW9udGhFbGVtZW50cz1bXSk7Zm9yKHZhciBlPXcuY29uZmlnLnNob3dNb250aHM7ZS0tOyl7dmFyIHQ9VSgpO3cueWVhckVsZW1lbnRzLnB1c2godC55ZWFyRWxlbWVudCksdy5tb250aEVsZW1lbnRzLnB1c2godC5tb250aEVsZW1lbnQpLHcubW9udGhOYXYuYXBwZW5kQ2hpbGQodC5jb250YWluZXIpfXcubW9udGhOYXYuYXBwZW5kQ2hpbGQody5uZXh0TW9udGhOYXYpfWZ1bmN0aW9uICQoKXt3LndlZWtkYXlDb250YWluZXI\/dSh3LndlZWtkYXlDb250YWluZXIpOncud2Vla2RheUNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla2RheXMiKTtmb3IodmFyIGU9dy5jb25maWcuc2hvd01vbnRocztlLS07KXt2YXIgdD1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla2RheWNvbnRhaW5lciIpO3cud2Vla2RheUNvbnRhaW5lci5hcHBlbmRDaGlsZCh0KX1yZXR1cm4geigpLHcud2Vla2RheUNvbnRhaW5lcn1mdW5jdGlvbiB6KCl7aWYody53ZWVrZGF5Q29udGFpbmVyKXt2YXIgZT13LmwxMG4uZmlyc3REYXlPZldlZWssbj10KHcubDEwbi53ZWVrZGF5cy5zaG9ydGhhbmQpO2U+MCYmZTxuLmxlbmd0aCYmKG49dChuLnNwbGljZShlLG4ubGVuZ3RoKSxuLnNwbGljZSgwLGUpKSk7Zm9yKHZhciBhPXcuY29uZmlnLnNob3dNb250aHM7YS0tOyl3LndlZWtkYXlDb250YWluZXIuY2hpbGRyZW5bYV0uaW5uZXJIVE1MPSJcbiAgICAgIDxzcGFuIGNsYXNzPSdmbGF0cGlja3Itd2Vla2RheSc+XG4gICAgICAgICIrbi5qb2luKCI8L3NwYW4+PHNwYW4gY2xhc3M9J2ZsYXRwaWNrci13ZWVrZGF5Jz4iKSsiXG4gICAgICA8L3NwYW4+XG4gICAgICAifX1mdW5jdGlvbiBHKGUsdCl7dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBuPXQ\/ZTplLXcuY3VycmVudE1vbnRoO248MCYmITA9PT13Ll9oaWRlUHJldk1vbnRoQXJyb3d8fG4+MCYmITA9PT13Ll9oaWRlTmV4dE1vbnRoQXJyb3d8fCh3LmN1cnJlbnRNb250aCs9biwody5jdXJyZW50TW9udGg8MHx8dy5jdXJyZW50TW9udGg+MTEpJiYody5jdXJyZW50WWVhcis9dy5jdXJyZW50TW9udGg+MTE\/MTotMSx3LmN1cnJlbnRNb250aD0ody5jdXJyZW50TW9udGgrMTIpJTEyLHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpLEooKSxwZSgib25Nb250aENoYW5nZSIpLERlKCkpfWZ1bmN0aW9uIFYoZSl7cmV0dXJuISghdy5jb25maWcuYXBwZW5kVG98fCF3LmNvbmZpZy5hcHBlbmRUby5jb250YWlucyhlKSl8fHcuY2FsZW5kYXJDb250YWluZXIuY29udGFpbnMoZSl9ZnVuY3Rpb24gWihlKXtpZih3LmlzT3BlbiYmIXcuY29uZmlnLmlubGluZSl7dmFyIHQ9ZyhlKSxuPVYodCksYT10PT09dy5pbnB1dHx8dD09PXcuYWx0SW5wdXR8fHcuZWxlbWVudC5jb250YWlucyh0KXx8ZS5wYXRoJiZlLnBhdGguaW5kZXhPZiYmKH5lLnBhdGguaW5kZXhPZih3LmlucHV0KXx8fmUucGF0aC5pbmRleE9mKHcuYWx0SW5wdXQpKSxpPSJibHVyIj09PWUudHlwZT9hJiZlLnJlbGF0ZWRUYXJnZXQmJiFWKGUucmVsYXRlZFRhcmdldCk6IWEmJiFuJiYhVihlLnJlbGF0ZWRUYXJnZXQpLG89IXcuY29uZmlnLmlnbm9yZWRGb2N1c0VsZW1lbnRzLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbnRhaW5zKHQpfSkpO2kmJm8mJih2b2lkIDAhPT13LnRpbWVDb250YWluZXImJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmIiIhPT13LmlucHV0LnZhbHVlJiZ2b2lkIDAhPT13LmlucHV0LnZhbHVlJiZJKCksdy5jbG9zZSgpLHcuY29uZmlnJiYicmFuZ2UiPT09dy5jb25maWcubW9kZSYmMT09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJih3LmNsZWFyKCExKSx3LnJlZHJhdygpKSl9fWZ1bmN0aW9uIFEoZSl7aWYoISghZXx8dy5jb25maWcubWluRGF0ZSYmZTx3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCl8fHcuY29uZmlnLm1heERhdGUmJmU+dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpKSl7dmFyIHQ9ZSxuPXcuY3VycmVudFllYXIhPT10O3cuY3VycmVudFllYXI9dHx8dy5jdXJyZW50WWVhcix3LmNvbmZpZy5tYXhEYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoPU1hdGgubWluKHcuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKSx3LmN1cnJlbnRNb250aCk6dy5jb25maWcubWluRGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSYmKHcuY3VycmVudE1vbnRoPU1hdGgubWF4KHcuY29uZmlnLm1pbkRhdGUuZ2V0TW9udGgoKSx3LmN1cnJlbnRNb250aCkpLG4mJih3LnJlZHJhdygpLHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpfX1mdW5jdGlvbiBYKGUsdCl7dmFyIG47dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBhPXcucGFyc2VEYXRlKGUsdm9pZCAwLHQpO2lmKHcuY29uZmlnLm1pbkRhdGUmJmEmJk0oYSx3LmNvbmZpZy5taW5EYXRlLHZvaWQgMCE9PXQ\/dDohdy5taW5EYXRlSGFzVGltZSk8MHx8dy5jb25maWcubWF4RGF0ZSYmYSYmTShhLHcuY29uZmlnLm1heERhdGUsdm9pZCAwIT09dD90OiF3Lm1heERhdGVIYXNUaW1lKT4wKXJldHVybiExO2lmKCF3LmNvbmZpZy5lbmFibGUmJjA9PT13LmNvbmZpZy5kaXNhYmxlLmxlbmd0aClyZXR1cm4hMDtpZih2b2lkIDA9PT1hKXJldHVybiExO2Zvcih2YXIgaT0hIXcuY29uZmlnLmVuYWJsZSxvPW51bGwhPT0obj13LmNvbmZpZy5lbmFibGUpJiZ2b2lkIDAhPT1uP246dy5jb25maWcuZGlzYWJsZSxyPTAsbD12b2lkIDA7cjxvLmxlbmd0aDtyKyspe2lmKCJmdW5jdGlvbiI9PXR5cGVvZihsPW9bcl0pJiZsKGEpKXJldHVybiBpO2lmKGwgaW5zdGFuY2VvZiBEYXRlJiZ2b2lkIDAhPT1hJiZsLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpKXJldHVybiBpO2lmKCJzdHJpbmciPT10eXBlb2YgbCl7dmFyIGM9dy5wYXJzZURhdGUobCx2b2lkIDAsITApO3JldHVybiBjJiZjLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpP2k6IWl9aWYoIm9iamVjdCI9PXR5cGVvZiBsJiZ2b2lkIDAhPT1hJiZsLmZyb20mJmwudG8mJmEuZ2V0VGltZSgpPj1sLmZyb20uZ2V0VGltZSgpJiZhLmdldFRpbWUoKTw9bC50by5nZXRUaW1lKCkpcmV0dXJuIGl9cmV0dXJuIWl9ZnVuY3Rpb24gZWUoZSl7cmV0dXJuIHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKC0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJi0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiZmxhdHBpY2tyLWRpc2FibGVkIikmJncuZGF5c0NvbnRhaW5lci5jb250YWlucyhlKSl9ZnVuY3Rpb24gdGUoZSl7IShlLnRhcmdldD09PXcuX2lucHV0KXx8ISh3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjB8fHcuX2lucHV0LnZhbHVlLmxlbmd0aD4wKXx8ZS5yZWxhdGVkVGFyZ2V0JiZWKGUucmVsYXRlZFRhcmdldCl8fHcuc2V0RGF0ZSh3Ll9pbnB1dC52YWx1ZSwhMCxlLnRhcmdldD09PXcuYWx0SW5wdXQ\/dy5jb25maWcuYWx0Rm9ybWF0OncuY29uZmlnLmRhdGVGb3JtYXQpfWZ1bmN0aW9uIG5lKGUpe3ZhciB0PWcoZSksbj13LmNvbmZpZy53cmFwP3AuY29udGFpbnModCk6dD09PXcuX2lucHV0LGE9dy5jb25maWcuYWxsb3dJbnB1dCxpPXcuaXNPcGVuJiYoIWF8fCFuKSxvPXcuY29uZmlnLmlubGluZSYmbiYmIWE7aWYoMTM9PT1lLmtleUNvZGUmJm4pe2lmKGEpcmV0dXJuIHcuc2V0RGF0ZSh3Ll9pbnB1dC52YWx1ZSwhMCx0PT09dy5hbHRJbnB1dD93LmNvbmZpZy5hbHRGb3JtYXQ6dy5jb25maWcuZGF0ZUZvcm1hdCksdC5ibHVyKCk7dy5vcGVuKCl9ZWxzZSBpZihWKHQpfHxpfHxvKXt2YXIgcj0hIXcudGltZUNvbnRhaW5lciYmdy50aW1lQ29udGFpbmVyLmNvbnRhaW5zKHQpO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgMTM6cj8oZS5wcmV2ZW50RGVmYXVsdCgpLEkoKSxzZSgpKTp1ZShlKTticmVhaztjYXNlIDI3OmUucHJldmVudERlZmF1bHQoKSxzZSgpO2JyZWFrO2Nhc2UgODpjYXNlIDQ2Om4mJiF3LmNvbmZpZy5hbGxvd0lucHV0JiYoZS5wcmV2ZW50RGVmYXVsdCgpLHcuY2xlYXIoKSk7YnJlYWs7Y2FzZSAzNzpjYXNlIDM5OmlmKHJ8fG4pdy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpO2Vsc2UgaWYoZS5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKCExPT09YXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZWUoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpKXt2YXIgbD0zOT09PWUua2V5Q29kZT8xOi0xO2UuY3RybEtleT8oZS5zdG9wUHJvcGFnYXRpb24oKSxHKGwpLFIoVygxKSwwKSk6Uih2b2lkIDAsbCl9YnJlYWs7Y2FzZSAzODpjYXNlIDQwOmUucHJldmVudERlZmF1bHQoKTt2YXIgYz00MD09PWUua2V5Q29kZT8xOi0xO3cuZGF5c0NvbnRhaW5lciYmdm9pZCAwIT09dC4kaXx8dD09PXcuaW5wdXR8fHQ9PT13LmFsdElucHV0P2UuY3RybEtleT8oZS5zdG9wUHJvcGFnYXRpb24oKSxRKHcuY3VycmVudFllYXItYyksUihXKDEpLDApKTpyfHxSKHZvaWQgMCw3KmMpOnQ9PT13LmN1cnJlbnRZZWFyRWxlbWVudD9RKHcuY3VycmVudFllYXItYyk6dy5jb25maWcuZW5hYmxlVGltZSYmKCFyJiZ3LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCksSShlKSx3Ll9kZWJvdW5jZWRDaGFuZ2UoKSk7YnJlYWs7Y2FzZSA5OmlmKHIpe3ZhciBkPVt3LmhvdXJFbGVtZW50LHcubWludXRlRWxlbWVudCx3LnNlY29uZEVsZW1lbnQsdy5hbVBNXS5jb25jYXQody5wbHVnaW5FbGVtZW50cykuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSxzPWQuaW5kZXhPZih0KTtpZigtMSE9PXMpe3ZhciB1PWRbcysoZS5zaGlmdEtleT8tMToxKV07ZS5wcmV2ZW50RGVmYXVsdCgpLCh1fHx3Ll9pbnB1dCkuZm9jdXMoKX19ZWxzZSF3LmNvbmZpZy5ub0NhbGVuZGFyJiZ3LmRheXNDb250YWluZXImJncuZGF5c0NvbnRhaW5lci5jb250YWlucyh0KSYmZS5zaGlmdEtleSYmKGUucHJldmVudERlZmF1bHQoKSx3Ll9pbnB1dC5mb2N1cygpKX19aWYodm9pZCAwIT09dy5hbVBNJiZ0PT09dy5hbVBNKXN3aXRjaChlLmtleSl7Y2FzZSB3LmwxMG4uYW1QTVswXS5jaGFyQXQoMCk6Y2FzZSB3LmwxMG4uYW1QTVswXS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTp3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bMF0sUygpLGJlKCk7YnJlYWs7Y2FzZSB3LmwxMG4uYW1QTVsxXS5jaGFyQXQoMCk6Y2FzZSB3LmwxMG4uYW1QTVsxXS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTp3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bMV0sUygpLGJlKCl9KG58fFYodCkpJiZwZSgib25LZXlEb3duIixlKX1mdW5jdGlvbiBhZShlKXtpZigxPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmKCFlfHxlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRheSIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kaXNhYmxlZCIpKSl7Zm9yKHZhciB0PWU\/ZS5kYXRlT2JqLmdldFRpbWUoKTp3LmRheXMuZmlyc3RFbGVtZW50Q2hpbGQuZGF0ZU9iai5nZXRUaW1lKCksbj13LnBhcnNlRGF0ZSh3LnNlbGVjdGVkRGF0ZXNbMF0sdm9pZCAwLCEwKS5nZXRUaW1lKCksYT1NYXRoLm1pbih0LHcuc2VsZWN0ZWREYXRlc1swXS5nZXRUaW1lKCkpLGk9TWF0aC5tYXgodCx3LnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpKSxvPSExLHI9MCxsPTAsYz1hO2M8aTtjKz15KVgobmV3IERhdGUoYyksITApfHwobz1vfHxjPmEmJmM8aSxjPG4mJighcnx8Yz5yKT9yPWM6Yz5uJiYoIWx8fGM8bCkmJihsPWMpKTtmb3IodmFyIGQ9MDtkPHcuY29uZmlnLnNob3dNb250aHM7ZCsrKWZvcih2YXIgcz13LmRheXNDb250YWluZXIuY2hpbGRyZW5bZF0sdT1mdW5jdGlvbihhLGkpe3ZhciBjLGQsdSxmPXMuY2hpbGRyZW5bYV0sbT1mLmRhdGVPYmouZ2V0VGltZSgpLGc9cj4wJiZtPHJ8fGw+MCYmbT5sO3JldHVybiBnPyhmLmNsYXNzTGlzdC5hZGQoIm5vdEFsbG93ZWQiKSxbImluUmFuZ2UiLCJzdGFydFJhbmdlIiwiZW5kUmFuZ2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmLmNsYXNzTGlzdC5yZW1vdmUoZSl9KSksImNvbnRpbnVlIik6byYmIWc\/ImNvbnRpbnVlIjooWyJzdGFydFJhbmdlIiwiaW5SYW5nZSIsImVuZFJhbmdlIiwibm90QWxsb3dlZCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YuY2xhc3NMaXN0LnJlbW92ZShlKX0pKSx2b2lkKHZvaWQgMCE9PWUmJihlLmNsYXNzTGlzdC5hZGQodDw9dy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKT8ic3RhcnRSYW5nZSI6ImVuZFJhbmdlIiksbjx0JiZtPT09bj9mLmNsYXNzTGlzdC5hZGQoInN0YXJ0UmFuZ2UiKTpuPnQmJm09PT1uJiZmLmNsYXNzTGlzdC5hZGQoImVuZFJhbmdlIiksbT49ciYmKDA9PT1sfHxtPD1sKSYmKGQ9bix1PXQsKGM9bSk+TWF0aC5taW4oZCx1KSYmYzxNYXRoLm1heChkLHUpKSYmZi5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIikpKSl9LGY9MCxtPXMuY2hpbGRyZW4ubGVuZ3RoO2Y8bTtmKyspdShmKX19ZnVuY3Rpb24gaWUoKXshdy5pc09wZW58fHcuY29uZmlnLnN0YXRpY3x8dy5jb25maWcuaW5saW5lfHxjZSgpfWZ1bmN0aW9uIG9lKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj13LmNvbmZpZ1siXyIrZSsiRGF0ZSJdPXcucGFyc2VEYXRlKHQsdy5jb25maWcuZGF0ZUZvcm1hdCksYT13LmNvbmZpZ1siXyIrKCJtaW4iPT09ZT8ibWF4IjoibWluIikrIkRhdGUiXTt2b2lkIDAhPT1uJiYod1sibWluIj09PWU\/Im1pbkRhdGVIYXNUaW1lIjoibWF4RGF0ZUhhc1RpbWUiXT1uLmdldEhvdXJzKCk+MHx8bi5nZXRNaW51dGVzKCk+MHx8bi5nZXRTZWNvbmRzKCk+MCksdy5zZWxlY3RlZERhdGVzJiYody5zZWxlY3RlZERhdGVzPXcuc2VsZWN0ZWREYXRlcy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBYKGUpfSkpLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGh8fCJtaW4iIT09ZXx8XyhuKSxiZSgpKSx3LmRheXNDb250YWluZXImJihkZSgpLHZvaWQgMCE9PW4\/dy5jdXJyZW50WWVhckVsZW1lbnRbZV09bi5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk6dy5jdXJyZW50WWVhckVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGUpLHcuY3VycmVudFllYXJFbGVtZW50LmRpc2FibGVkPSEhYSYmdm9pZCAwIT09biYmYS5nZXRGdWxsWWVhcigpPT09bi5nZXRGdWxsWWVhcigpKX19ZnVuY3Rpb24gcmUoKXtyZXR1cm4gdy5jb25maWcud3JhcD9wLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLWlucHV0XSIpOnB9ZnVuY3Rpb24gbGUoKXsib2JqZWN0IiE9dHlwZW9mIHcuY29uZmlnLmxvY2FsZSYmdm9pZCAwPT09VC5sMTBuc1t3LmNvbmZpZy5sb2NhbGVdJiZ3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJmbGF0cGlja3I6IGludmFsaWQgbG9jYWxlICIrdy5jb25maWcubG9jYWxlKSksdy5sMTBuPWUoZSh7fSxULmwxMG5zLmRlZmF1bHQpLCJvYmplY3QiPT10eXBlb2Ygdy5jb25maWcubG9jYWxlP3cuY29uZmlnLmxvY2FsZToiZGVmYXVsdCIhPT13LmNvbmZpZy5sb2NhbGU\/VC5sMTBuc1t3LmNvbmZpZy5sb2NhbGVdOnZvaWQgMCksRC5LPSIoIit3LmwxMG4uYW1QTVswXSsifCIrdy5sMTBuLmFtUE1bMV0rInwiK3cubDEwbi5hbVBNWzBdLnRvTG93ZXJDYXNlKCkrInwiK3cubDEwbi5hbVBNWzFdLnRvTG93ZXJDYXNlKCkrIikiLHZvaWQgMD09PWUoZSh7fSx2KSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHAuZGF0YXNldHx8e30pKSkudGltZV8yNGhyJiZ2b2lkIDA9PT1ULmRlZmF1bHRDb25maWcudGltZV8yNGhyJiYody5jb25maWcudGltZV8yNGhyPXcubDEwbi50aW1lXzI0aHIpLHcuZm9ybWF0RGF0ZT1iKHcpLHcucGFyc2VEYXRlPUMoe2NvbmZpZzp3LmNvbmZpZyxsMTBuOncubDEwbn0pfWZ1bmN0aW9uIGNlKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbmZpZy5wb3NpdGlvbil7aWYodm9pZCAwIT09dy5jYWxlbmRhckNvbnRhaW5lcil7cGUoIm9uUHJlQ2FsZW5kYXJQb3NpdGlvbiIpO3ZhciB0PWV8fHcuX3Bvc2l0aW9uRWxlbWVudCxuPUFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbCh3LmNhbGVuZGFyQ29udGFpbmVyLmNoaWxkcmVuLChmdW5jdGlvbihlLHQpe3JldHVybiBlK3Qub2Zmc2V0SGVpZ2h0fSksMCksYT13LmNhbGVuZGFyQ29udGFpbmVyLm9mZnNldFdpZHRoLGk9dy5jb25maWcucG9zaXRpb24uc3BsaXQoIiAiKSxvPWlbMF0scj1pLmxlbmd0aD4xP2lbMV06bnVsbCxsPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz13aW5kb3cuaW5uZXJIZWlnaHQtbC5ib3R0b20scz0iYWJvdmUiPT09b3x8ImJlbG93IiE9PW8mJmM8biYmbC50b3A+bix1PXdpbmRvdy5wYWdlWU9mZnNldCtsLnRvcCsocz8tbi0yOnQub2Zmc2V0SGVpZ2h0KzIpO2lmKGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dUb3AiLCFzKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93Qm90dG9tIixzKSwhdy5jb25maWcuaW5saW5lKXt2YXIgZj13aW5kb3cucGFnZVhPZmZzZXQrbC5sZWZ0LG09ITEsZz0hMTsiY2VudGVyIj09PXI\/KGYtPShhLWwud2lkdGgpLzIsbT0hMCk6InJpZ2h0Ij09PXImJihmLT1hLWwud2lkdGgsZz0hMCksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0xlZnQiLCFtJiYhZyksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0NlbnRlciIsbSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd1JpZ2h0IixnKTt2YXIgcD13aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aC0od2luZG93LnBhZ2VYT2Zmc2V0K2wucmlnaHQpLGg9ZithPndpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLHY9cCthPndpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO2lmKGQody5jYWxlbmRhckNvbnRhaW5lciwicmlnaHRNb3N0IixoKSwhdy5jb25maWcuc3RhdGljKWlmKHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUudG9wPXUrInB4IixoKWlmKHYpe3ZhciBEPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPW51bGwsdD0wO3Q8ZG9jdW1lbnQuc3R5bGVTaGVldHMubGVuZ3RoO3QrKyl7dmFyIG49ZG9jdW1lbnQuc3R5bGVTaGVldHNbdF07dHJ5e24uY3NzUnVsZXN9Y2F0Y2goZSl7Y29udGludWV9ZT1uO2JyZWFrfXJldHVybiBudWxsIT1lP2U6KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpLGEuc2hlZXQpO3ZhciBhfSgpO2lmKHZvaWQgMD09PUQpcmV0dXJuO3ZhciBiPXdpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLEM9TWF0aC5tYXgoMCxiLzItYS8yKSxNPUQuY3NzUnVsZXMubGVuZ3RoLHk9IntsZWZ0OiIrbC5sZWZ0KyJweDtyaWdodDphdXRvO30iO2Qody5jYWxlbmRhckNvbnRhaW5lciwicmlnaHRNb3N0IiwhMSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJjZW50ZXJNb3N0IiwhMCksRC5pbnNlcnRSdWxlKCIuZmxhdHBpY2tyLWNhbGVuZGFyLmNlbnRlck1vc3Q6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuY2VudGVyTW9zdDphZnRlciIreSxNKSx3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmxlZnQ9QysicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmlnaHQ9ImF1dG8ifWVsc2Ugdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5sZWZ0PSJhdXRvIix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJpZ2h0PXArInB4IjtlbHNlIHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUubGVmdD1mKyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yaWdodD0iYXV0byJ9fX1lbHNlIHcuY29uZmlnLnBvc2l0aW9uKHcsZSl9ZnVuY3Rpb24gZGUoKXt3LmNvbmZpZy5ub0NhbGVuZGFyfHx3LmlzTW9iaWxlfHwoSygpLERlKCksSigpKX1mdW5jdGlvbiBzZSgpe3cuX2lucHV0LmZvY3VzKCksLTEhPT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIil8fHZvaWQgMCE9PW5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRzP3NldFRpbWVvdXQody5jbG9zZSwwKTp3LmNsb3NlKCl9ZnVuY3Rpb24gdWUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHQ9ZihnKGUpLChmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc0xpc3QmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGF5IikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRpc2FibGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygibm90QWxsb3dlZCIpfSkpO2lmKHZvaWQgMCE9PXQpe3ZhciBuPXQsYT13LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj1uZXcgRGF0ZShuLmRhdGVPYmouZ2V0VGltZSgpKSxpPShhLmdldE1vbnRoKCk8dy5jdXJyZW50TW9udGh8fGEuZ2V0TW9udGgoKT53LmN1cnJlbnRNb250aCt3LmNvbmZpZy5zaG93TW9udGhzLTEpJiYicmFuZ2UiIT09dy5jb25maWcubW9kZTtpZih3LnNlbGVjdGVkRGF0ZUVsZW09biwic2luZ2xlIj09PXcuY29uZmlnLm1vZGUpdy5zZWxlY3RlZERhdGVzPVthXTtlbHNlIGlmKCJtdWx0aXBsZSI9PT13LmNvbmZpZy5tb2RlKXt2YXIgbz12ZShhKTtvP3cuc2VsZWN0ZWREYXRlcy5zcGxpY2UocGFyc2VJbnQobyksMSk6dy5zZWxlY3RlZERhdGVzLnB1c2goYSl9ZWxzZSJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYoMj09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJncuY2xlYXIoITEsITEpLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPWEsdy5zZWxlY3RlZERhdGVzLnB1c2goYSksMCE9PU0oYSx3LnNlbGVjdGVkRGF0ZXNbMF0sITApJiZ3LnNlbGVjdGVkRGF0ZXMuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9KSkpO2lmKFMoKSxpKXt2YXIgcj13LmN1cnJlbnRZZWFyIT09YS5nZXRGdWxsWWVhcigpO3cuY3VycmVudFllYXI9YS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPWEuZ2V0TW9udGgoKSxyJiYocGUoIm9uWWVhckNoYW5nZSIpLEsoKSkscGUoIm9uTW9udGhDaGFuZ2UiKX1pZihEZSgpLEooKSxiZSgpLGl8fCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlfHwxIT09dy5jb25maWcuc2hvd01vbnRocz92b2lkIDAhPT13LnNlbGVjdGVkRGF0ZUVsZW0mJnZvaWQgMD09PXcuaG91ckVsZW1lbnQmJncuc2VsZWN0ZWREYXRlRWxlbSYmdy5zZWxlY3RlZERhdGVFbGVtLmZvY3VzKCk6TChuKSx2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCksdy5jb25maWcuY2xvc2VPblNlbGVjdCl7dmFyIGw9InNpbmdsZSI9PT13LmNvbmZpZy5tb2RlJiYhdy5jb25maWcuZW5hYmxlVGltZSxjPSJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYyPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmIXcuY29uZmlnLmVuYWJsZVRpbWU7KGx8fGMpJiZzZSgpfU4oKX19dy5wYXJzZURhdGU9Qyh7Y29uZmlnOncuY29uZmlnLGwxMG46dy5sMTBufSksdy5faGFuZGxlcnM9W10sdy5wbHVnaW5FbGVtZW50cz1bXSx3LmxvYWRlZFBsdWdpbnM9W10sdy5fYmluZD1BLHcuX3NldEhvdXJzRnJvbURhdGU9Xyx3Ll9wb3NpdGlvbkNhbGVuZGFyPWNlLHcuY2hhbmdlTW9udGg9Ryx3LmNoYW5nZVllYXI9USx3LmNsZWFyPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09ZSYmKGU9ITApO3ZvaWQgMD09PXQmJih0PSEwKTt3LmlucHV0LnZhbHVlPSIiLHZvaWQgMCE9PXcuYWx0SW5wdXQmJih3LmFsdElucHV0LnZhbHVlPSIiKTt2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiYody5tb2JpbGVJbnB1dC52YWx1ZT0iIik7dy5zZWxlY3RlZERhdGVzPVtdLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXZvaWQgMCwhMD09PXQmJih3LmN1cnJlbnRZZWFyPXcuX2luaXRpYWxEYXRlLmdldEZ1bGxZZWFyKCksdy5jdXJyZW50TW9udGg9dy5faW5pdGlhbERhdGUuZ2V0TW9udGgoKSk7aWYoITA9PT13LmNvbmZpZy5lbmFibGVUaW1lKXt2YXIgbj14KHcuY29uZmlnKSxhPW4uaG91cnMsaT1uLm1pbnV0ZXMsbz1uLnNlY29uZHM7TyhhLGksbyl9dy5yZWRyYXcoKSxlJiZwZSgib25DaGFuZ2UiKX0sdy5jbG9zZT1mdW5jdGlvbigpe3cuaXNPcGVuPSExLHcuaXNNb2JpbGV8fCh2b2lkIDAhPT13LmNhbGVuZGFyQ29udGFpbmVyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKSx2b2lkIDAhPT13Ll9pbnB1dCYmdy5faW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIikpO3BlKCJvbkNsb3NlIil9LHcuX2NyZWF0ZUVsZW1lbnQ9cyx3LmRlc3Ryb3k9ZnVuY3Rpb24oKXt2b2lkIDAhPT13LmNvbmZpZyYmcGUoIm9uRGVzdHJveSIpO2Zvcih2YXIgZT13Ll9oYW5kbGVycy5sZW5ndGg7ZS0tOyl3Ll9oYW5kbGVyc1tlXS5yZW1vdmUoKTtpZih3Ll9oYW5kbGVycz1bXSx3Lm1vYmlsZUlucHV0KXcubW9iaWxlSW5wdXQucGFyZW50Tm9kZSYmdy5tb2JpbGVJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcubW9iaWxlSW5wdXQpLHcubW9iaWxlSW5wdXQ9dm9pZCAwO2Vsc2UgaWYody5jYWxlbmRhckNvbnRhaW5lciYmdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlKWlmKHcuY29uZmlnLnN0YXRpYyYmdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlKXt2YXIgdD13LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGU7aWYodC5sYXN0Q2hpbGQmJnQucmVtb3ZlQ2hpbGQodC5sYXN0Q2hpbGQpLHQucGFyZW50Tm9kZSl7Zm9yKDt0LmZpcnN0Q2hpbGQ7KXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodC5maXJzdENoaWxkLHQpO3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX19ZWxzZSB3LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcik7dy5hbHRJbnB1dCYmKHcuaW5wdXQudHlwZT0idGV4dCIsdy5hbHRJbnB1dC5wYXJlbnROb2RlJiZ3LmFsdElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5hbHRJbnB1dCksZGVsZXRlIHcuYWx0SW5wdXQpO3cuaW5wdXQmJih3LmlucHV0LnR5cGU9dy5pbnB1dC5fdHlwZSx3LmlucHV0LmNsYXNzTGlzdC5yZW1vdmUoImZsYXRwaWNrci1pbnB1dCIpLHcuaW5wdXQucmVtb3ZlQXR0cmlidXRlKCJyZWFkb25seSIpKTtbIl9zaG93VGltZUlucHV0IiwibGF0ZXN0U2VsZWN0ZWREYXRlT2JqIiwiX2hpZGVOZXh0TW9udGhBcnJvdyIsIl9oaWRlUHJldk1vbnRoQXJyb3ciLCJfX2hpZGVOZXh0TW9udGhBcnJvdyIsIl9faGlkZVByZXZNb250aEFycm93IiwiaXNNb2JpbGUiLCJpc09wZW4iLCJzZWxlY3RlZERhdGVFbGVtIiwibWluRGF0ZUhhc1RpbWUiLCJtYXhEYXRlSGFzVGltZSIsImRheXMiLCJkYXlzQ29udGFpbmVyIiwiX2lucHV0IiwiX3Bvc2l0aW9uRWxlbWVudCIsImlubmVyQ29udGFpbmVyIiwickNvbnRhaW5lciIsIm1vbnRoTmF2IiwidG9kYXlEYXRlRWxlbSIsImNhbGVuZGFyQ29udGFpbmVyIiwid2Vla2RheUNvbnRhaW5lciIsInByZXZNb250aE5hdiIsIm5leHRNb250aE5hdiIsIm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyIiwiY3VycmVudE1vbnRoRWxlbWVudCIsImN1cnJlbnRZZWFyRWxlbWVudCIsIm5hdmlnYXRpb25DdXJyZW50TW9udGgiLCJzZWxlY3RlZERhdGVFbGVtIiwiY29uZmlnIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dHJ5e2RlbGV0ZSB3W2VdfWNhdGNoKGUpe319KSl9LHcuaXNFbmFibGVkPVgsdy5qdW1wVG9EYXRlPVAsdy5vcGVuPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9dy5fcG9zaXRpb25FbGVtZW50KTtpZighMD09PXcuaXNNb2JpbGUpe2lmKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbj1nKGUpO24mJm4uYmx1cigpfXJldHVybiB2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiYody5tb2JpbGVJbnB1dC5mb2N1cygpLHcubW9iaWxlSW5wdXQuY2xpY2soKSksdm9pZCBwZSgib25PcGVuIil9aWYody5faW5wdXQuZGlzYWJsZWR8fHcuY29uZmlnLmlubGluZSlyZXR1cm47dmFyIGE9dy5pc09wZW47dy5pc09wZW49ITAsYXx8KHcuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgib3BlbiIpLHcuX2lucHV0LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHBlKCJvbk9wZW4iKSxjZSh0KSk7ITA9PT13LmNvbmZpZy5lbmFibGVUaW1lJiYhMD09PXcuY29uZmlnLm5vQ2FsZW5kYXImJighMSE9PXcuY29uZmlnLmFsbG93SW5wdXR8fHZvaWQgMCE9PWUmJncudGltZUNvbnRhaW5lci5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB3LmhvdXJFbGVtZW50LnNlbGVjdCgpfSksNTApKX0sdy5yZWRyYXc9ZGUsdy5zZXQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlKWZvcih2YXIgYSBpbiBPYmplY3QuYXNzaWduKHcuY29uZmlnLGUpLGUpdm9pZCAwIT09ZmVbYV0mJmZlW2FdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSk7ZWxzZSB3LmNvbmZpZ1tlXT10LHZvaWQgMCE9PWZlW2VdP2ZlW2VdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSk6bi5pbmRleE9mKGUpPi0xJiYody5jb25maWdbZV09Yyh0KSk7dy5yZWRyYXcoKSxiZSghMCl9LHcuc2V0RGF0ZT1mdW5jdGlvbihlLHQsbil7dm9pZCAwPT09dCYmKHQ9ITEpO3ZvaWQgMD09PW4mJihuPXcuY29uZmlnLmRhdGVGb3JtYXQpO2lmKDAhPT1lJiYhZXx8ZSBpbnN0YW5jZW9mIEFycmF5JiYwPT09ZS5sZW5ndGgpcmV0dXJuIHcuY2xlYXIodCk7bWUoZSxuKSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj13LnNlbGVjdGVkRGF0ZXNbdy5zZWxlY3RlZERhdGVzLmxlbmd0aC0xXSx3LnJlZHJhdygpLFAodm9pZCAwLHQpLF8oKSwwPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmdy5jbGVhcighMSk7YmUodCksdCYmcGUoIm9uQ2hhbmdlIil9LHcudG9nZ2xlPWZ1bmN0aW9uKGUpe2lmKCEwPT09dy5pc09wZW4pcmV0dXJuIHcuY2xvc2UoKTt3Lm9wZW4oZSl9O3ZhciBmZT17bG9jYWxlOltsZSx6XSxzaG93TW9udGhzOltxLGssJF0sbWluRGF0ZTpbUF0sbWF4RGF0ZTpbUF0sY2xpY2tPcGVuczpbZnVuY3Rpb24oKXshMD09PXcuY29uZmlnLmNsaWNrT3BlbnM\/KEEody5faW5wdXQsImZvY3VzIix3Lm9wZW4pLEEody5faW5wdXQsImNsaWNrIix3Lm9wZW4pKToody5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHcub3Blbiksdy5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHcub3BlbikpfV19O2Z1bmN0aW9uIG1lKGUsdCl7dmFyIG49W107aWYoZSBpbnN0YW5jZW9mIEFycmF5KW49ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIERhdGV8fCJudW1iZXIiPT10eXBlb2YgZSluPVt3LnBhcnNlRGF0ZShlLHQpXTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSlzd2l0Y2gody5jb25maWcubW9kZSl7Y2FzZSJzaW5nbGUiOmNhc2UidGltZSI6bj1bdy5wYXJzZURhdGUoZSx0KV07YnJlYWs7Y2FzZSJtdWx0aXBsZSI6bj1lLnNwbGl0KHcuY29uZmlnLmNvbmp1bmN0aW9uKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpO2JyZWFrO2Nhc2UicmFuZ2UiOm49ZS5zcGxpdCh3LmwxMG4ucmFuZ2VTZXBhcmF0b3IpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHcucGFyc2VEYXRlKGUsdCl9KSl9ZWxzZSB3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgc3VwcGxpZWQ6ICIrSlNPTi5zdHJpbmdpZnkoZSkpKTt3LnNlbGVjdGVkRGF0ZXM9dy5jb25maWcuYWxsb3dJbnZhbGlkUHJlbG9hZD9uOm4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGUmJlgoZSwhMSl9KSksInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJncuc2VsZWN0ZWREYXRlcy5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmdldFRpbWUoKS10LmdldFRpbWUoKX0pKX1mdW5jdGlvbiBnZShlKXtyZXR1cm4gZS5zbGljZSgpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwibnVtYmVyIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBEYXRlP3cucGFyc2VEYXRlKGUsdm9pZCAwLCEwKTplJiYib2JqZWN0Ij09dHlwZW9mIGUmJmUuZnJvbSYmZS50bz97ZnJvbTp3LnBhcnNlRGF0ZShlLmZyb20sdm9pZCAwKSx0bzp3LnBhcnNlRGF0ZShlLnRvLHZvaWQgMCl9OmV9KSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX1mdW5jdGlvbiBwZShlLHQpe2lmKHZvaWQgMCE9PXcuY29uZmlnKXt2YXIgbj13LmNvbmZpZ1tlXTtpZih2b2lkIDAhPT1uJiZuLmxlbmd0aD4wKWZvcih2YXIgYT0wO25bYV0mJmE8bi5sZW5ndGg7YSsrKW5bYV0ody5zZWxlY3RlZERhdGVzLHcuaW5wdXQudmFsdWUsdyx0KTsib25DaGFuZ2UiPT09ZSYmKHcuaW5wdXQuZGlzcGF0Y2hFdmVudChoZSgiY2hhbmdlIikpLHcuaW5wdXQuZGlzcGF0Y2hFdmVudChoZSgiaW5wdXQiKSkpfX1mdW5jdGlvbiBoZShlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoZSwhMCwhMCksdH1mdW5jdGlvbiB2ZShlKXtmb3IodmFyIHQ9MDt0PHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg7dCsrKWlmKDA9PT1NKHcuc2VsZWN0ZWREYXRlc1t0XSxlKSlyZXR1cm4iIit0O3JldHVybiExfWZ1bmN0aW9uIERlKCl7dy5jb25maWcubm9DYWxlbmRhcnx8dy5pc01vYmlsZXx8IXcubW9udGhOYXZ8fCh3LnllYXJFbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbihlLHQpe3ZhciBuPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdy5jdXJyZW50TW9udGgsMSk7bi5zZXRNb250aCh3LmN1cnJlbnRNb250aCt0KSx3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJzdGF0aWMiPT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGU\/dy5tb250aEVsZW1lbnRzW3RdLnRleHRDb250ZW50PWgobi5nZXRNb250aCgpLHcuY29uZmlnLnNob3J0aGFuZEN1cnJlbnRNb250aCx3LmwxMG4pKyIgIjp3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnZhbHVlPW4uZ2V0TW9udGgoKS50b1N0cmluZygpLGUudmFsdWU9bi5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCl9KSksdy5faGlkZVByZXZNb250aEFycm93PXZvaWQgMCE9PXcuY29uZmlnLm1pbkRhdGUmJih3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoPD13LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCk6dy5jdXJyZW50WWVhcjx3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkpLHcuX2hpZGVOZXh0TW9udGhBcnJvdz12b2lkIDAhPT13LmNvbmZpZy5tYXhEYXRlJiYody5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aCsxPncuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKTp3LmN1cnJlbnRZZWFyPncuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSkpfWZ1bmN0aW9uIHdlKGUpe3JldHVybiB3LnNlbGVjdGVkRGF0ZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdy5mb3JtYXREYXRlKHQsZSl9KSkuZmlsdGVyKChmdW5jdGlvbihlLHQsbil7cmV0dXJuInJhbmdlIiE9PXcuY29uZmlnLm1vZGV8fHcuY29uZmlnLmVuYWJsZVRpbWV8fG4uaW5kZXhPZihlKT09PXR9KSkuam9pbigicmFuZ2UiIT09dy5jb25maWcubW9kZT93LmNvbmZpZy5jb25qdW5jdGlvbjp3LmwxMG4ucmFuZ2VTZXBhcmF0b3IpfWZ1bmN0aW9uIGJlKGUpe3ZvaWQgMD09PWUmJihlPSEwKSx2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiZ3Lm1vYmlsZUZvcm1hdFN0ciYmKHcubW9iaWxlSW5wdXQudmFsdWU9dm9pZCAwIT09dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5mb3JtYXREYXRlKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLHcubW9iaWxlRm9ybWF0U3RyKToiIiksdy5pbnB1dC52YWx1ZT13ZSh3LmNvbmZpZy5kYXRlRm9ybWF0KSx2b2lkIDAhPT13LmFsdElucHV0JiYody5hbHRJbnB1dC52YWx1ZT13ZSh3LmNvbmZpZy5hbHRGb3JtYXQpKSwhMSE9PWUmJnBlKCJvblZhbHVlVXBkYXRlIil9ZnVuY3Rpb24gQ2UoZSl7dmFyIHQ9ZyhlKSxuPXcucHJldk1vbnRoTmF2LmNvbnRhaW5zKHQpLGE9dy5uZXh0TW9udGhOYXYuY29udGFpbnModCk7bnx8YT9HKG4\/LTE6MSk6dy55ZWFyRWxlbWVudHMuaW5kZXhPZih0KT49MD90LnNlbGVjdCgpOnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd1VwIik\/dy5jaGFuZ2VZZWFyKHcuY3VycmVudFllYXIrMSk6dC5jbGFzc0xpc3QuY29udGFpbnMoImFycm93RG93biIpJiZ3LmNoYW5nZVllYXIody5jdXJyZW50WWVhci0xKX1yZXR1cm4gZnVuY3Rpb24oKXt3LmVsZW1lbnQ9dy5pbnB1dD1wLHcuaXNPcGVuPSExLGZ1bmN0aW9uKCl7dmFyIHQ9WyJ3cmFwIiwid2Vla051bWJlcnMiLCJhbGxvd0lucHV0IiwiYWxsb3dJbnZhbGlkUHJlbG9hZCIsImNsaWNrT3BlbnMiLCJ0aW1lXzI0aHIiLCJlbmFibGVUaW1lIiwibm9DYWxlbmRhciIsImFsdElucHV0Iiwic2hvcnRoYW5kQ3VycmVudE1vbnRoIiwiaW5saW5lIiwic3RhdGljIiwiZW5hYmxlU2Vjb25kcyIsImRpc2FibGVNb2JpbGUiXSxpPWUoZSh7fSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHAuZGF0YXNldHx8e30pKSksdiksbz17fTt3LmNvbmZpZy5wYXJzZURhdGU9aS5wYXJzZURhdGUsdy5jb25maWcuZm9ybWF0RGF0ZT1pLmZvcm1hdERhdGUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJlbmFibGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX2VuYWJsZX0sc2V0OmZ1bmN0aW9uKGUpe3cuY29uZmlnLl9lbmFibGU9Z2UoZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJkaXNhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9kaXNhYmxlfSxzZXQ6ZnVuY3Rpb24oZSl7dy5jb25maWcuX2Rpc2FibGU9Z2UoZSl9fSk7dmFyIHI9InRpbWUiPT09aS5tb2RlO2lmKCFpLmRhdGVGb3JtYXQmJihpLmVuYWJsZVRpbWV8fHIpKXt2YXIgbD1ULmRlZmF1bHRDb25maWcuZGF0ZUZvcm1hdHx8YS5kYXRlRm9ybWF0O28uZGF0ZUZvcm1hdD1pLm5vQ2FsZW5kYXJ8fHI\/Ikg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKTpsKyIgSDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpfWlmKGkuYWx0SW5wdXQmJihpLmVuYWJsZVRpbWV8fHIpJiYhaS5hbHRGb3JtYXQpe3ZhciBkPVQuZGVmYXVsdENvbmZpZy5hbHRGb3JtYXR8fGEuYWx0Rm9ybWF0O28uYWx0Rm9ybWF0PWkubm9DYWxlbmRhcnx8cj8iaDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyBLIjoiIEsiKTpkKyIgaDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpKyIgSyJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtaW5EYXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9taW5EYXRlfSxzZXQ6b2UoIm1pbiIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtYXhEYXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9tYXhEYXRlfSxzZXQ6b2UoIm1heCIpfSk7dmFyIHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3cuY29uZmlnWyJtaW4iPT09ZT8iX21pblRpbWUiOiJfbWF4VGltZSJdPXcucGFyc2VEYXRlKHQsIkg6aTpTIil9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1pblRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21pblRpbWV9LHNldDpzKCJtaW4iKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWF4VGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWF4VGltZX0sc2V0OnMoIm1heCIpfSksInRpbWUiPT09aS5tb2RlJiYody5jb25maWcubm9DYWxlbmRhcj0hMCx3LmNvbmZpZy5lbmFibGVUaW1lPSEwKTtPYmplY3QuYXNzaWduKHcuY29uZmlnLG8saSk7Zm9yKHZhciB1PTA7dTx0Lmxlbmd0aDt1Kyspdy5jb25maWdbdFt1XV09ITA9PT13LmNvbmZpZ1t0W3VdXXx8InRydWUiPT09dy5jb25maWdbdFt1XV07bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT13LmNvbmZpZ1tlXX0pKS5mb3JFYWNoKChmdW5jdGlvbihlKXt3LmNvbmZpZ1tlXT1jKHcuY29uZmlnW2VdfHxbXSkubWFwKEUpfSkpLHcuaXNNb2JpbGU9IXcuY29uZmlnLmRpc2FibGVNb2JpbGUmJiF3LmNvbmZpZy5pbmxpbmUmJiJzaW5nbGUiPT09dy5jb25maWcubW9kZSYmIXcuY29uZmlnLmRpc2FibGUubGVuZ3RoJiYhdy5jb25maWcuZW5hYmxlJiYhdy5jb25maWcud2Vla051bWJlcnMmJi9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtmb3IodT0wO3U8dy5jb25maWcucGx1Z2lucy5sZW5ndGg7dSsrKXt2YXIgZj13LmNvbmZpZy5wbHVnaW5zW3VdKHcpfHx7fTtmb3IodmFyIG0gaW4gZiluLmluZGV4T2YobSk+LTE\/dy5jb25maWdbbV09YyhmW21dKS5tYXAoRSkuY29uY2F0KHcuY29uZmlnW21dKTp2b2lkIDA9PT1pW21dJiYody5jb25maWdbbV09ZlttXSl9aS5hbHRJbnB1dENsYXNzfHwody5jb25maWcuYWx0SW5wdXRDbGFzcz1yZSgpLmNsYXNzTmFtZSsiICIrdy5jb25maWcuYWx0SW5wdXRDbGFzcyk7cGUoIm9uUGFyc2VDb25maWciKX0oKSxsZSgpLGZ1bmN0aW9uKCl7aWYody5pbnB1dD1yZSgpLCF3LmlucHV0KXJldHVybiB2b2lkIHcuY29uZmlnLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQgZWxlbWVudCBzcGVjaWZpZWQiKSk7dy5pbnB1dC5fdHlwZT13LmlucHV0LnR5cGUsdy5pbnB1dC50eXBlPSJ0ZXh0Iix3LmlucHV0LmNsYXNzTGlzdC5hZGQoImZsYXRwaWNrci1pbnB1dCIpLHcuX2lucHV0PXcuaW5wdXQsdy5jb25maWcuYWx0SW5wdXQmJih3LmFsdElucHV0PXMody5pbnB1dC5ub2RlTmFtZSx3LmNvbmZpZy5hbHRJbnB1dENsYXNzKSx3Ll9pbnB1dD13LmFsdElucHV0LHcuYWx0SW5wdXQucGxhY2Vob2xkZXI9dy5pbnB1dC5wbGFjZWhvbGRlcix3LmFsdElucHV0LmRpc2FibGVkPXcuaW5wdXQuZGlzYWJsZWQsdy5hbHRJbnB1dC5yZXF1aXJlZD13LmlucHV0LnJlcXVpcmVkLHcuYWx0SW5wdXQudGFiSW5kZXg9dy5pbnB1dC50YWJJbmRleCx3LmFsdElucHV0LnR5cGU9InRleHQiLHcuaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksIXcuY29uZmlnLnN0YXRpYyYmdy5pbnB1dC5wYXJlbnROb2RlJiZ3LmlucHV0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHcuYWx0SW5wdXQsdy5pbnB1dC5uZXh0U2libGluZykpO3cuY29uZmlnLmFsbG93SW5wdXR8fHcuX2lucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCJyZWFkb25seSIpO3cuX3Bvc2l0aW9uRWxlbWVudD13LmNvbmZpZy5wb3NpdGlvbkVsZW1lbnR8fHcuX2lucHV0fSgpLGZ1bmN0aW9uKCl7dy5zZWxlY3RlZERhdGVzPVtdLHcubm93PXcucGFyc2VEYXRlKHcuY29uZmlnLm5vdyl8fG5ldyBEYXRlO3ZhciBlPXcuY29uZmlnLmRlZmF1bHREYXRlfHwoIklOUFVUIiE9PXcuaW5wdXQubm9kZU5hbWUmJiJURVhUQVJFQSIhPT13LmlucHV0Lm5vZGVOYW1lfHwhdy5pbnB1dC5wbGFjZWhvbGRlcnx8dy5pbnB1dC52YWx1ZSE9PXcuaW5wdXQucGxhY2Vob2xkZXI\/dy5pbnB1dC52YWx1ZTpudWxsKTtlJiZtZShlLHcuY29uZmlnLmRhdGVGb3JtYXQpO3cuX2luaXRpYWxEYXRlPXcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MD93LnNlbGVjdGVkRGF0ZXNbMF06dy5jb25maWcubWluRGF0ZSYmdy5jb25maWcubWluRGF0ZS5nZXRUaW1lKCk+dy5ub3cuZ2V0VGltZSgpP3cuY29uZmlnLm1pbkRhdGU6dy5jb25maWcubWF4RGF0ZSYmdy5jb25maWcubWF4RGF0ZS5nZXRUaW1lKCk8dy5ub3cuZ2V0VGltZSgpP3cuY29uZmlnLm1heERhdGU6dy5ub3csdy5jdXJyZW50WWVhcj13Ll9pbml0aWFsRGF0ZS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPXcuX2luaXRpYWxEYXRlLmdldE1vbnRoKCksdy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wJiYody5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dy5zZWxlY3RlZERhdGVzWzBdKTt2b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lJiYody5jb25maWcubWluVGltZT13LnBhcnNlRGF0ZSh3LmNvbmZpZy5taW5UaW1lLCJIOmkiKSk7dm9pZCAwIT09dy5jb25maWcubWF4VGltZSYmKHcuY29uZmlnLm1heFRpbWU9dy5wYXJzZURhdGUody5jb25maWcubWF4VGltZSwiSDppIikpO3cubWluRGF0ZUhhc1RpbWU9ISF3LmNvbmZpZy5taW5EYXRlJiYody5jb25maWcubWluRGF0ZS5nZXRIb3VycygpPjB8fHcuY29uZmlnLm1pbkRhdGUuZ2V0TWludXRlcygpPjB8fHcuY29uZmlnLm1pbkRhdGUuZ2V0U2Vjb25kcygpPjApLHcubWF4RGF0ZUhhc1RpbWU9ISF3LmNvbmZpZy5tYXhEYXRlJiYody5jb25maWcubWF4RGF0ZS5nZXRIb3VycygpPjB8fHcuY29uZmlnLm1heERhdGUuZ2V0TWludXRlcygpPjB8fHcuY29uZmlnLm1heERhdGUuZ2V0U2Vjb25kcygpPjApfSgpLHcudXRpbHM9e2dldERheXNJbk1vbnRoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXcuY3VycmVudE1vbnRoKSx2b2lkIDA9PT10JiYodD13LmN1cnJlbnRZZWFyKSwxPT09ZSYmKHQlND09MCYmdCUxMDAhPTB8fHQlNDAwPT0wKT8yOTp3LmwxMG4uZGF5c0luTW9udGhbZV19fSx3LmlzTW9iaWxlfHxmdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7aWYody5jYWxlbmRhckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItY2FsZW5kYXIiKSx3LmNhbGVuZGFyQ29udGFpbmVyLnRhYkluZGV4PS0xLCF3LmNvbmZpZy5ub0NhbGVuZGFyKXtpZihlLmFwcGVuZENoaWxkKCh3Lm1vbnRoTmF2PXMoImRpdiIsImZsYXRwaWNrci1tb250aHMiKSx3LnllYXJFbGVtZW50cz1bXSx3Lm1vbnRoRWxlbWVudHM9W10sdy5wcmV2TW9udGhOYXY9cygic3BhbiIsImZsYXRwaWNrci1wcmV2LW1vbnRoIiksdy5wcmV2TW9udGhOYXYuaW5uZXJIVE1MPXcuY29uZmlnLnByZXZBcnJvdyx3Lm5leHRNb250aE5hdj1zKCJzcGFuIiwiZmxhdHBpY2tyLW5leHQtbW9udGgiKSx3Lm5leHRNb250aE5hdi5pbm5lckhUTUw9dy5jb25maWcubmV4dEFycm93LHEoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodywiX2hpZGVQcmV2TW9udGhBcnJvdyIse2dldDpmdW5jdGlvbigpe3JldHVybiB3Ll9faGlkZVByZXZNb250aEFycm93fSxzZXQ6ZnVuY3Rpb24oZSl7dy5fX2hpZGVQcmV2TW9udGhBcnJvdyE9PWUmJihkKHcucHJldk1vbnRoTmF2LCJmbGF0cGlja3ItZGlzYWJsZWQiLGUpLHcuX19oaWRlUHJldk1vbnRoQXJyb3c9ZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsIl9oaWRlTmV4dE1vbnRoQXJyb3ciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5fX2hpZGVOZXh0TW9udGhBcnJvd30sc2V0OmZ1bmN0aW9uKGUpe3cuX19oaWRlTmV4dE1vbnRoQXJyb3chPT1lJiYoZCh3Lm5leHRNb250aE5hdiwiZmxhdHBpY2tyLWRpc2FibGVkIixlKSx3Ll9faGlkZU5leHRNb250aEFycm93PWUpfX0pLHcuY3VycmVudFllYXJFbGVtZW50PXcueWVhckVsZW1lbnRzWzBdLERlKCksdy5tb250aE5hdikpLHcuaW5uZXJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWlubmVyQ29udGFpbmVyIiksdy5jb25maWcud2Vla051bWJlcnMpe3ZhciB0PWZ1bmN0aW9uKCl7dy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNXZWVrcyIpO3ZhciBlPXMoImRpdiIsImZsYXRwaWNrci13ZWVrd3JhcHBlciIpO2UuYXBwZW5kQ2hpbGQocygic3BhbiIsImZsYXRwaWNrci13ZWVrZGF5Iix3LmwxMG4ud2Vla0FiYnJldmlhdGlvbikpO3ZhciB0PXMoImRpdiIsImZsYXRwaWNrci13ZWVrcyIpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLHt3ZWVrV3JhcHBlcjplLHdlZWtOdW1iZXJzOnR9fSgpLG49dC53ZWVrV3JhcHBlcixhPXQud2Vla051bWJlcnM7dy5pbm5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx3LndlZWtOdW1iZXJzPWEsdy53ZWVrV3JhcHBlcj1ufXcuckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItckNvbnRhaW5lciIpLHcuckNvbnRhaW5lci5hcHBlbmRDaGlsZCgkKCkpLHcuZGF5c0NvbnRhaW5lcnx8KHcuZGF5c0NvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItZGF5cyIpLHcuZGF5c0NvbnRhaW5lci50YWJJbmRleD0tMSksSigpLHcuckNvbnRhaW5lci5hcHBlbmRDaGlsZCh3LmRheXNDb250YWluZXIpLHcuaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQody5yQ29udGFpbmVyKSxlLmFwcGVuZENoaWxkKHcuaW5uZXJDb250YWluZXIpfXcuY29uZmlnLmVuYWJsZVRpbWUmJmUuYXBwZW5kQ2hpbGQoZnVuY3Rpb24oKXt3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1RpbWUiKSx3LmNvbmZpZy5ub0NhbGVuZGFyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm5vQ2FsZW5kYXIiKTt2YXIgZT14KHcuY29uZmlnKTt3LnRpbWVDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXRpbWUiKSx3LnRpbWVDb250YWluZXIudGFiSW5kZXg9LTE7dmFyIHQ9cygic3BhbiIsImZsYXRwaWNrci10aW1lLXNlcGFyYXRvciIsIjoiKSxuPW0oImZsYXRwaWNrci1ob3VyIix7ImFyaWEtbGFiZWwiOncubDEwbi5ob3VyQXJpYUxhYmVsfSk7dy5ob3VyRWxlbWVudD1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO3ZhciBhPW0oImZsYXRwaWNrci1taW51dGUiLHsiYXJpYS1sYWJlbCI6dy5sMTBuLm1pbnV0ZUFyaWFMYWJlbH0pO3cubWludXRlRWxlbWVudD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLHcuaG91ckVsZW1lbnQudGFiSW5kZXg9dy5taW51dGVFbGVtZW50LnRhYkluZGV4PS0xLHcuaG91ckVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRIb3VycygpOncuY29uZmlnLnRpbWVfMjRocj9lLmhvdXJzOmZ1bmN0aW9uKGUpe3N3aXRjaChlJTI0KXtjYXNlIDA6Y2FzZSAxMjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gZSUxMn19KGUuaG91cnMpKSx3Lm1pbnV0ZUVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRNaW51dGVzKCk6ZS5taW51dGVzKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5jb25maWcuaG91ckluY3JlbWVudC50b1N0cmluZygpKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdGVwIix3LmNvbmZpZy5taW51dGVJbmNyZW1lbnQudG9TdHJpbmcoKSksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1pbiIsdy5jb25maWcudGltZV8yNGhyPyIwIjoiMSIpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXgiLHcuY29uZmlnLnRpbWVfMjRocj8iMjMiOiIxMiIpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIiwiMCIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIjU5Iiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQodCksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGEpLHcuY29uZmlnLnRpbWVfMjRociYmdy50aW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInRpbWUyNGhyIik7aWYody5jb25maWcuZW5hYmxlU2Vjb25kcyl7dy50aW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1NlY29uZHMiKTt2YXIgaT1tKCJmbGF0cGlja3Itc2Vjb25kIik7dy5zZWNvbmRFbGVtZW50PWkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0sdy5zZWNvbmRFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0U2Vjb25kcygpOmUuc2Vjb25kcyksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5taW51dGVFbGVtZW50LmdldEF0dHJpYnV0ZSgic3RlcCIpKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLCIwIiksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4IiwiNTkiKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHMoInNwYW4iLCJmbGF0cGlja3ItdGltZS1zZXBhcmF0b3IiLCI6IikpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChpKX13LmNvbmZpZy50aW1lXzI0aHJ8fCh3LmFtUE09cygic3BhbiIsImZsYXRwaWNrci1hbS1wbSIsdy5sMTBuLmFtUE1bcigody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5ob3VyRWxlbWVudC52YWx1ZTp3LmNvbmZpZy5kZWZhdWx0SG91cik+MTEpXSksdy5hbVBNLnRpdGxlPXcubDEwbi50b2dnbGVUaXRsZSx3LmFtUE0udGFiSW5kZXg9LTEsdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHcuYW1QTSkpO3JldHVybiB3LnRpbWVDb250YWluZXJ9KCkpO2Qody5jYWxlbmRhckNvbnRhaW5lciwicmFuZ2VNb2RlIiwicmFuZ2UiPT09dy5jb25maWcubW9kZSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhbmltYXRlIiwhMD09PXcuY29uZmlnLmFuaW1hdGUpLGQody5jYWxlbmRhckNvbnRhaW5lciwibXVsdGlNb250aCIsdy5jb25maWcuc2hvd01vbnRocz4xKSx3LmNhbGVuZGFyQ29udGFpbmVyLmFwcGVuZENoaWxkKGUpO3ZhciBpPXZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvJiZ2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUby5ub2RlVHlwZTtpZigody5jb25maWcuaW5saW5lfHx3LmNvbmZpZy5zdGF0aWMpJiYody5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHcuY29uZmlnLmlubGluZT8iaW5saW5lIjoic3RhdGljIiksdy5jb25maWcuaW5saW5lJiYoIWkmJncuZWxlbWVudC5wYXJlbnROb2RlP3cuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3LmNhbGVuZGFyQ29udGFpbmVyLHcuX2lucHV0Lm5leHRTaWJsaW5nKTp2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbyYmdy5jb25maWcuYXBwZW5kVG8uYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcikpLHcuY29uZmlnLnN0YXRpYykpe3ZhciBsPXMoImRpdiIsImZsYXRwaWNrci13cmFwcGVyIik7dy5lbGVtZW50LnBhcmVudE5vZGUmJncuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsLHcuZWxlbWVudCksbC5hcHBlbmRDaGlsZCh3LmVsZW1lbnQpLHcuYWx0SW5wdXQmJmwuYXBwZW5kQ2hpbGQody5hbHRJbnB1dCksbC5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKX13LmNvbmZpZy5zdGF0aWN8fHcuY29uZmlnLmlubGluZXx8KHZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvP3cuY29uZmlnLmFwcGVuZFRvOndpbmRvdy5kb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKX0oKSxmdW5jdGlvbigpe3cuY29uZmlnLndyYXAmJlsib3BlbiIsImNsb3NlIiwidG9nZ2xlIiwiY2xlYXIiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHcuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS0iK2UrIl0iKSwoZnVuY3Rpb24odCl7cmV0dXJuIEEodCwiY2xpY2siLHdbZV0pfSkpfSkpO2lmKHcuaXNNb2JpbGUpcmV0dXJuIHZvaWQgZnVuY3Rpb24oKXt2YXIgZT13LmNvbmZpZy5lbmFibGVUaW1lP3cuY29uZmlnLm5vQ2FsZW5kYXI\/InRpbWUiOiJkYXRldGltZS1sb2NhbCI6ImRhdGUiO3cubW9iaWxlSW5wdXQ9cygiaW5wdXQiLHcuaW5wdXQuY2xhc3NOYW1lKyIgZmxhdHBpY2tyLW1vYmlsZSIpLHcubW9iaWxlSW5wdXQudGFiSW5kZXg9MSx3Lm1vYmlsZUlucHV0LnR5cGU9ZSx3Lm1vYmlsZUlucHV0LmRpc2FibGVkPXcuaW5wdXQuZGlzYWJsZWQsdy5tb2JpbGVJbnB1dC5yZXF1aXJlZD13LmlucHV0LnJlcXVpcmVkLHcubW9iaWxlSW5wdXQucGxhY2Vob2xkZXI9dy5pbnB1dC5wbGFjZWhvbGRlcix3Lm1vYmlsZUZvcm1hdFN0cj0iZGF0ZXRpbWUtbG9jYWwiPT09ZT8iWS1tLWRcXFRIOmk6UyI6ImRhdGUiPT09ZT8iWS1tLWQiOiJIOmk6UyIsdy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wJiYody5tb2JpbGVJbnB1dC5kZWZhdWx0VmFsdWU9dy5tb2JpbGVJbnB1dC52YWx1ZT13LmZvcm1hdERhdGUody5zZWxlY3RlZERhdGVzWzBdLHcubW9iaWxlRm9ybWF0U3RyKSk7dy5jb25maWcubWluRGF0ZSYmKHcubW9iaWxlSW5wdXQubWluPXcuZm9ybWF0RGF0ZSh3LmNvbmZpZy5taW5EYXRlLCJZLW0tZCIpKTt3LmNvbmZpZy5tYXhEYXRlJiYody5tb2JpbGVJbnB1dC5tYXg9dy5mb3JtYXREYXRlKHcuY29uZmlnLm1heERhdGUsIlktbS1kIikpO3cuaW5wdXQuZ2V0QXR0cmlidXRlKCJzdGVwIikmJih3Lm1vYmlsZUlucHV0LnN0ZXA9U3RyaW5nKHcuaW5wdXQuZ2V0QXR0cmlidXRlKCJzdGVwIikpKTt3LmlucHV0LnR5cGU9ImhpZGRlbiIsdm9pZCAwIT09dy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQudHlwZT0iaGlkZGVuIik7dHJ5e3cuaW5wdXQucGFyZW50Tm9kZSYmdy5pbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3Lm1vYmlsZUlucHV0LHcuaW5wdXQubmV4dFNpYmxpbmcpfWNhdGNoKGUpe31BKHcubW9iaWxlSW5wdXQsImNoYW5nZSIsKGZ1bmN0aW9uKGUpe3cuc2V0RGF0ZShnKGUpLnZhbHVlLCExLHcubW9iaWxlRm9ybWF0U3RyKSxwZSgib25DaGFuZ2UiKSxwZSgib25DbG9zZSIpfSkpfSgpO3ZhciBlPWwoaWUsNTApO3cuX2RlYm91bmNlZENoYW5nZT1sKE4sMzAwKSx3LmRheXNDb250YWluZXImJiEvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJkEody5kYXlzQ29udGFpbmVyLCJtb3VzZW92ZXIiLChmdW5jdGlvbihlKXsicmFuZ2UiPT09dy5jb25maWcubW9kZSYmYWUoZyhlKSl9KSk7QSh3aW5kb3cuZG9jdW1lbnQuYm9keSwia2V5ZG93biIsbmUpLHcuY29uZmlnLmlubGluZXx8dy5jb25maWcuc3RhdGljfHxBKHdpbmRvdywicmVzaXplIixlKTt2b2lkIDAhPT13aW5kb3cub250b3VjaHN0YXJ0P0Eod2luZG93LmRvY3VtZW50LCJ0b3VjaHN0YXJ0IixaKTpBKHdpbmRvdy5kb2N1bWVudCwibW91c2Vkb3duIixaKTtBKHdpbmRvdy5kb2N1bWVudCwiZm9jdXMiLFose2NhcHR1cmU6ITB9KSwhMD09PXcuY29uZmlnLmNsaWNrT3BlbnMmJihBKHcuX2lucHV0LCJmb2N1cyIsdy5vcGVuKSxBKHcuX2lucHV0LCJjbGljayIsdy5vcGVuKSk7dm9pZCAwIT09dy5kYXlzQ29udGFpbmVyJiYoQSh3Lm1vbnRoTmF2LCJjbGljayIsQ2UpLEEody5tb250aE5hdixbImtleXVwIiwiaW5jcmVtZW50Il0sRiksQSh3LmRheXNDb250YWluZXIsImNsaWNrIix1ZSkpO2lmKHZvaWQgMCE9PXcudGltZUNvbnRhaW5lciYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50KXt2YXIgdD1mdW5jdGlvbihlKXtyZXR1cm4gZyhlKS5zZWxlY3QoKX07QSh3LnRpbWVDb250YWluZXIsWyJpbmNyZW1lbnQiXSxJKSxBKHcudGltZUNvbnRhaW5lciwiYmx1ciIsSSx7Y2FwdHVyZTohMH0pLEEody50aW1lQ29udGFpbmVyLCJjbGljayIsWSksQShbdy5ob3VyRWxlbWVudCx3Lm1pbnV0ZUVsZW1lbnRdLFsiZm9jdXMiLCJjbGljayJdLHQpLHZvaWQgMCE9PXcuc2Vjb25kRWxlbWVudCYmQSh3LnNlY29uZEVsZW1lbnQsImZvY3VzIiwoZnVuY3Rpb24oKXtyZXR1cm4gdy5zZWNvbmRFbGVtZW50JiZ3LnNlY29uZEVsZW1lbnQuc2VsZWN0KCl9KSksdm9pZCAwIT09dy5hbVBNJiZBKHcuYW1QTSwiY2xpY2siLChmdW5jdGlvbihlKXtJKGUpLE4oKX0pKX13LmNvbmZpZy5hbGxvd0lucHV0JiZBKHcuX2lucHV0LCJibHVyIix0ZSl9KCksKHcuc2VsZWN0ZWREYXRlcy5sZW5ndGh8fHcuY29uZmlnLm5vQ2FsZW5kYXIpJiYody5jb25maWcuZW5hYmxlVGltZSYmXyh3LmNvbmZpZy5ub0NhbGVuZGFyP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqOnZvaWQgMCksYmUoITEpKSxrKCk7dmFyIHQ9L14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTshdy5pc01vYmlsZSYmdCYmY2UoKSxwZSgib25SZWFkeSIpfSgpLHd9ZnVuY3Rpb24gayhlLHQpe2Zvcih2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR9KSksYT1bXSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBvPW5baV07dHJ5e2lmKG51bGwhPT1vLmdldEF0dHJpYnV0ZSgiZGF0YS1mcC1vbWl0IikpY29udGludWU7dm9pZCAwIT09by5fZmxhdHBpY2tyJiYoby5fZmxhdHBpY2tyLmRlc3Ryb3koKSxvLl9mbGF0cGlja3I9dm9pZCAwKSxvLl9mbGF0cGlja3I9RShvLHR8fHt9KSxhLnB1c2goby5fZmxhdHBpY2tyKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX1yZXR1cm4gMT09PWEubGVuZ3RoP2FbMF06YX0idW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxFbGVtZW50JiYidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDb2xsZWN0aW9uJiYidW5kZWZpbmVkIiE9dHlwZW9mIE5vZGVMaXN0JiYoSFRNTENvbGxlY3Rpb24ucHJvdG90eXBlLmZsYXRwaWNrcj1Ob2RlTGlzdC5wcm90b3R5cGUuZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKHRoaXMsZSl9LEhUTUxFbGVtZW50LnByb3RvdHlwZS5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsoW3RoaXNdLGUpfSk7dmFyIFQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU\/ayh3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKSx0KTplIGluc3RhbmNlb2YgTm9kZT9rKFtlXSx0KTprKGUsdCl9O3JldHVybiBULmRlZmF1bHRDb25maWc9e30sVC5sMTBucz17ZW46ZSh7fSxpKSxkZWZhdWx0OmUoe30saSl9LFQubG9jYWxpemU9ZnVuY3Rpb24odCl7VC5sMTBucy5kZWZhdWx0PWUoZSh7fSxULmwxMG5zLmRlZmF1bHQpLHQpfSxULnNldERlZmF1bHRzPWZ1bmN0aW9uKHQpe1QuZGVmYXVsdENvbmZpZz1lKGUoe30sVC5kZWZhdWx0Q29uZmlnKSx0KX0sVC5wYXJzZURhdGU9Qyh7fSksVC5mb3JtYXREYXRlPWIoe30pLFQuY29tcGFyZURhdGVzPU0sInVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnkmJnZvaWQgMCE9PWpRdWVyeS5mbiYmKGpRdWVyeS5mbi5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsodGhpcyxlKX0pLERhdGUucHJvdG90eXBlLmZwX2luY3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSx0aGlzLmdldE1vbnRoKCksdGhpcy5nZXREYXRlKCkrKCJzdHJpbmciPT10eXBlb2YgZT9wYXJzZUludChlLDEwKTplKSl9LCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LmZsYXRwaWNrcj1UKSxUfSkpOwovKiogL2pzL3ZhbmlsbGFqcy9mbGF0cGlja3IuZnIuanMgKiovCnZhciBfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjE3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzI6NDYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDIzLTAxLTEyIDExOjQxOjQ2IjsidXNlIHN0cmljdCI7X19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MTozMCI7InVzZSBzdHJpY3QiO19fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjEtMTItMjEgMTM6MzA6NTIiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGIsYSl7Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kdWxlP2EoZXhwb3J0cyk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsiZXhwb3J0cyJdLGEpOihiPSJ1bmRlZmluZWQiIT09dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczpifHxzZWxmLGEoYi5mcj17fSkpfSkodGhpcyxmdW5jdGlvbihiKXt2YXIgYT0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5mbGF0cGlja3I\/d2luZG93LmZsYXRwaWNrcjp7bDEwbnM6e319LGM9e2ZpcnN0RGF5T2ZXZWVrOjEsd2Vla2RheXM6e3Nob3J0aGFuZDoiZGltIGx1biBtYXIgbWVyIGpldSB2ZW4gc2FtIi5zcGxpdCgiICIpLGxvbmdoYW5kOiJkaW1hbmNoZSBsdW5kaSBtYXJkaSBtZXJjcmVkaSBqZXVkaSB2ZW5kcmVkaSBzYW1lZGkiLnNwbGl0KCIgIil9LG1vbnRoczp7c2hvcnRoYW5kOiJqYW52IGbDqXZyIG1hcnMgYXZyIG1haSBqdWluIGp1aWwgYW\/Du3Qgc2VwdCBvY3Qgbm92IGTDqWMiLnNwbGl0KCIgIiksCmxvbmdoYW5kOiJqYW52aWVyIGbDqXZyaWVyIG1hcnMgYXZyaWwgbWFpIGp1aW4ganVpbGxldCBhb8O7dCBzZXB0ZW1icmUgb2N0b2JyZSBub3ZlbWJyZSBkw6ljZW1icmUiLnNwbGl0KCIgIil9LG9yZGluYWw6ZnVuY3Rpb24oZCl7cmV0dXJuIDE8ZD8iIjoiZXIifSxyYW5nZVNlcGFyYXRvcjoiIGF1ICIsd2Vla0FiYnJldmlhdGlvbjoiU2VtIixzY3JvbGxUaXRsZToiRMOpZmlsZXIgcG91ciBhdWdtZW50ZXIgbGEgdmFsZXVyIix0b2dnbGVUaXRsZToiQ2xpcXVlciBwb3VyIGJhc2N1bGVyIix0aW1lXzI0aHI6ITB9O2EubDEwbnMuZnI9YzthPWEubDEwbnM7Yi5GcmVuY2g9YztiLmRlZmF1bHQ9YTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KTsKLyoqIC9qcy9mci5uZXdjYXJzLmlubGluZS5qcyAqKi8KdmFyIGpzX2QyY19nZXRfdmFsPShqc19kMmNfZ2V0X3ZhbHx8ZnVuY3Rpb24oaWQpe3RyeXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlO31jYXRjaChleCl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpY29uc29sZS5sb2coIlN5c3RlbSBmYWlsZWQgd2hpbGUgcmV0cmlldmluZyByZXBsYWNlbWVudCB2YWx1ZTogIitpZCxleCk7cmV0dXJuJyc7fX0pO3ZhciBpZGVudF80ODk2NDA0OWM1M2NiNDJjMTZmZWQxZThkZTBkMzM2Njt0cnl7ZnVuY3Rpb24gT3B0YW5vbldyYXBwZXIoKXt9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF84ZmMyODdmNzZlOThiM2MwZjliYWU4NjIwMDI3Yzc1MTt0cnl7KGZ1bmN0aW9uKHcsZCxzLGwsaSl7d1tsXT13W2xdfHxbXTt3W2xdLnB1c2goeydndG0uc3RhcnQnOm5ldyBEYXRlKCkuZ2V0VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXSxqPWQuY3JlYXRlRWxlbWVudChzKSxkbD1sIT0nZGF0YUxheWVyJz8nJmw9JytsOicnO2ouYXN5bmM9dHJ1ZTtqLnNldEF0dHJpYnV0ZU5vZGUoZC5jcmVhdGVBdHRyaWJ1dGUoJ2RhdGEtb3QtaWdub3JlJykpO2ouc3JjPSdodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM\/aWQ9JytpK2RsO2ouc2V0QXR0cmlidXRlTm9kZShkLmNyZWF0ZUF0dHJpYnV0ZSgnZGF0YS1vdC1pZ25vcmUnKSk7Zi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShqLGYpO30pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnZGF0YUxheWVyJywnR1RNLVdWR1JSSlEzJyk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF84NjQyNzI4ZmZiN2Q5MjFlYzU3NWM5ODdmODAxNmMyMDt0cnl7RDJBU0MoeyJ1c2VyTGFuZ3VhZ2UiOiJmcmUiLCJwYUNvZGUiOiIzMTAyNiIsImNsaWVudCI6Imh5dW5kYWkiLCJwYWdlSWQiOiJzaG93cm9vbSIsIm9lbUluZm8iOnsib2VtRGVhbGVyQ29kZSI6IjMxMDI2IiwiMCI6IjMxMDI2Iiwib2VtIjoiSHl1bmRhaSIsIjEiOiJIeXVuZGFpIn0sImRlYWxlcl9uYW1lIjoiIiwiZm9ybU1hcCI6eyJBREZCdXJsaW5ndG9uX0NlbnRyZV8tX0VWX1RvdXJfLV9Ecml2ZWZlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgQnVybGluZ3RvbiBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gQnVybGluZ3RvbiBDZW50cmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZjYW1wYmVsbHJpdmVyY2Fycy5jYV8oRDJDX01lZGlhKV8tX0xlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FtcGJlbGxyaXZlcmNhcnMuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gVXNlZCAgIExvY19waHlzaWNhbD05MDAxNjEzXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FtcGJlbGxyaXZlcmNhcnMuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gVXNlZCAgIExvY19waHlzaWNhbD05MDAxNjEzXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfQXBwIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQXBwb2ludG1lbnQgcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X0NhciI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X09mZiI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfUERGIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUERGIHJlcXVlc3QgLSBWZWhpY2xlIGluIGludmVudG9yeSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1JlcSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIFtHb29nbGUgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfU2VyIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBbRmFjZWJvb2sgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBbRmFjZWJvb2sgLSBPcmdhbmljXSJ9LCJBREZjYXJtYXRjaGVyLmNhXyhEMkNfTWVkaWEpXy1fTGVhZDpfVHJhIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVHJhZGUtaW4gcmVxdWVzdCBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1ZlaCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhXy1fT3JnYW5pYylfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtPcmdhbmljXSJ9LCJBREZkYW5pZWxwYXJlZG9kZ2UuY29tXyhwYXJfRDJDX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgZGFuaWVscGFyZWRvZGdlLmNvbSAocGFyIEQyQyBNZWRpYSkgLSBEMkMgTWVkaWEgLSBMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAgW0dvb2dsZSAtIE5ldWYtdmxhXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gZGFuaWVscGFyZWRvZGdlLmNvbSAocGFyIEQyQyBNZWRpYSkgLSBEMkMgTWVkaWEgLSBMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAgW0dvb2dsZSAtIE5ldWYtdmxhXSJ9LCJBREZkZW1vY3JtLmQyY21lZGlhLmNhXyhEMkNfTWVkaWFfLV9PcmdhIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgZGVtb2NybS5kMmNtZWRpYS5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSB2ZWhpY2xlKSBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGRlbW9jcm0uZDJjbWVkaWEuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkgW09yZ2FuaWNdIn0sIkFERk1vbl9zaXRlXy1fRDJDX01lZGlhXy1fTGVhZF86X0RlbWFuZGUiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJyZBdGlsZGU7JmNvcHk7Y2hhbmdlIChTTVMpIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gTW9uIHNpdGUgLSBEMkMgTWVkaWEgLSBMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCcmQXRpbGRlOyZjb3B5O2NoYW5nZSAoU01TKSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX01lZGlhKV8tXyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gVXNlZC12bGEgICBMb2NfcGh5c2ljYWw9OTAwMTE0MV0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgLSBMZWFkOiBDYXJGYXggcmVxdWVzdCBbR29vZ2xlIC0gVXNlZC12bGEgICBMb2NfcGh5c2ljYWw9OTAwMTE0MV0ifSwiQURGcGFsbGFkaW5vYXV0b2dyb3VwLmNvbV8oRDJDX01lZGlhKV9fLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgIC0gTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBbRmFjZWJvb2sgLSBVc2VkIFsgS2V5d29yZDogVXNlZCtUcnVja10gIExvY18iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub2F1dG9ncm91cC5jb20gKEQyQyBNZWRpYSkgIC0gTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBbRmFjZWJvb2sgLSBVc2VkIFsgS2V5d29yZDogVXNlZCtUcnVja10gIExvY19wIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19fTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMThdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMThdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fXyhEMkNfTWVkaWEpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tICAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMzNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tICAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIFRyYWRlICAgTG9jX3BoeXNpY2FsPTkwMDExMzNdIn0sIkFERnBhbGxhZGlub3N1YmFydS5jYV8ocGFyX0QyQ19NZWRpYV8tX08iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9zdWJhcnUuY2EgKHBhciBEMkMgTWVkaWEgLSBPcmdhbmljKSAtIEQyQyBNZWRpYSAtIExlYWQ6IFBERiBicm9jaHVyZSByZXF1ZXN0IFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vc3ViYXJ1LmNhIChwYXIgRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBEMkMgTWVkaWEgLSBMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCBbT3JnYW5pY10ifSwiQURGU2NhcmJvcm91Z2hfVG93bl9DZW50cmVfLV9FVl9Ub3VyXy1fRCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNjYXJib3JvdWdoIFRvd24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFNjYXJib3JvdWdoIFRvd24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU2hlcndheV9HYXJkZW5zXy1fRVZfVG91cl8tX0RyaXZlZmVzdCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNoZXJ3YXkgR2FyZGVucyAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTaGVyd2F5IEdhcmRlbnMgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZTcXVhcmVfT25lXy1fRVZfVG91cl8tX0RyaXZlZmVzdF8rX0tpIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU3F1YXJlX09uZV8tX0VWX1RvdXJfLV9LaWFfU2lnbl9VcF9IbyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gS2lhIFNpZ24gVXAgSG90IExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIEtpYSBTaWduIFVwIEhvdCBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBREZVcHBlcl9DYW5hZGFfTWFsbF8tX0VWX1RvdXJfLV9Ecml2ZWZlIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgVXBwZXIgQ2FuYWRhIE1hbGwgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gVXBwZXIgQ2FuYWRhIE1hbGwgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciJ9LCJBSUNoYXRib3RMZWFkIjp7IkZSRU5DSCI6IkxlYWQgOiBDaGF0Qm90IElBIiwiRU5HTElTSCI6IkxlYWQ6IENoYXRCb3QgQUkifSwiQXZhaWxhYmlsaXR5VXNlZCI6eyJGUkVOQ0giOiJMZWFkOiBEaXNwb25pYmlsaXRlIGQndW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkifSwiQmFubmVyRm9ybSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGZvcm0gYmFubmVyIiwiRU5HTElTSCI6IkxlYWQ6IEJhbm5lciBGb3JtIFJlcXVlc3QifSwiQmVzdFByaWNlUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSAgbWVpbGxldXIgcHJpeCAodmVoaWN1bGUgbmV1ZikiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSBiZXN0IHByaWNlIChuZXcgdmVoaWNsZSkifSwiQm9keVNob3AiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgZW4gY2Fyb3NzZXJpZSIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIGJvZHkgc2hvcCBhcHBvaW50bWVudCByZXF1ZXN0In0sIkJyb2NodXJlcyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBicm9jaHVyZSIsIkVOR0xJU0giOiJMZWFkIDogQnJvY2h1cmUgcmVxdWVzdCJ9LCJCcm9jaHVyZXNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGJyb2NodXJlIiwiRU5HTElTSCI6IkxlYWQgOiBCcm9jaHVyZSByZXF1ZXN0In0sIkJ1aWxkQW5kUHJpY2VfU2F2ZSI6eyJGUkVOQ0giOiJMZWFkOiBDb25maWd1cmF0aW9uIGQndW4gdmVoaWN1bGUgbmV1ZiIsIkVOR0xJU0giOiJMZWFkOiBOZXcgVmVoaWNsZSBDb25maWd1cmF0aW9uIChCdWlsZCAmIFByaWNlKSJ9LCJCdWlsZEFuZFByaWNlX1N0b2NrIjp7IkZSRU5DSCI6IkxlYWQ6IERpc3BvbmliaWxpdGUgZCd1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSJ9LCJDYXJwcm9vZk1haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgQ2FyRmF4IiwiRU5HTElTSCI6IkxlYWQ6IENhckZheCByZXF1ZXN0In0sIkNvbnRhY3RSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCJ9LCJDb250YWN0VXNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCJ9LCJDb250YWN0VmlzaXRSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QgVmVudGUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBTYWxlcyJ9LCJDb250YWN0VmlzaXRSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbnRhY3QgVmVudGUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgY29udGFjdCBTYWxlcyJ9LCJDcmVkaXRCb29zdE11bHRpIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcHJlcXVhbGlmaWNhdGlvbiBkZSBjcmVkaXQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgQ3JlZGl0IFByZS1RdWFsaWZpY2F0aW9uIn0sIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXNpZXVycyBldGFwZXMpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSJ9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IChQbHVzaWV1cnMgZXRhcGVzIDJlIGNoYW5jZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWxpc3RlcCAybmQgY2hhbmNlKSJ9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCI6eyJGUkVOQ0giOiJMZWFkOiBBcHByb2JhdGlvbiBkZSBjcmVkaXQgaW5zdGFudGFuZWUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBDcmVkaXQgQXBwcm92YWwifSwiQ3JlZGl0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcifSwiQ3JlZGl0UmVxdWVzdE1vYmlsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcifSwiQ3JlZGl0UmVxdWVzdE1vYmlsZUZ1bGwiOnsiRlJFTkNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyJ9LCJDcmVkaXRSZXF1ZXN0X1Nob3J0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50ICh2ZXJzaW9uIGNvdXJ0ZSkiLCJFTkdMSVNIIjoiTGVhZCA6IENyZWRpdCBhcHBsaWNhdGlvbiAoc2hvcnQgdmVyc2lvbikifSwiRGVhbGVyQXBwb2ludG1lbnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMiLCJFTkdMSVNIIjoiTGVhZDogQXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJEaXNjb3Zlck9mZmVyIjp7IkZSRU5DSCI6IkxlYWQgOiBWb2lyIGwnb2ZmcmUgY291cG9uIFNSUCIsIkVOR0xJU0giOiJMZWFkOiBTZWUgT2ZmZXIgQ291cG9uIGluIFNSUCJ9LCJFc3RoZXRpY1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhIGwnZXN0aGV0cXVlIGV0IGxhdmUtYXV0byIsIkVOR0xJU0giOiJMZWFkOiBWZWhpY2xlIGVzdGhldGljIGFuZCBjYXIgd2FzaCBhcHBvaW50bWVudCByZXF1ZXN0In0sImZhY2Vib29rQ29ubmVjdCI6eyJGUkVOQ0giOiJMZWFkOiBSYWJhaXMgRmFjZWJvb2siLCJFTkdMSVNIIjoiTGVhZDogRmFjZWJvb2sgUmViYXRlIn0sIkZpbmRWZWhpY2xlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlY2hlcmNoZSBkZSB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IHRvIGZpbmQgYSBwcmUtb3duZWQgdmVoaWNsZSJ9LCJoZWFkZXJTZXJ2aWNlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgRXhwcmVzcyJ9LCJNYWtlT2ZmZXIiOnsiRlJFTkNIIjoiTGVhZCA6IE9mZnJlIGQnYWNoYXQgc3VyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSJ9LCJNYWtlT2ZmZXJOZXciOnsiRlJFTkNIIjoiTGVhZCA6IE9mZnJlIGQnYWNoYXQgc3VyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSJ9LCJtZW51U2VydmljZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IEV4cHJlc3MifSwiTW9udGhseVBheW1lbnRzIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyJ9LCJNb250aGx5UGF5bWVudHNfTkVXIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyJ9LCJNb250aGx5UGF5bWVudHNfU01TIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgbWVuc3VhbGl0ZXMgLSBTTVMiLCJFTkdMSVNIIjoiUmVxdWVzdCBmb3IgbW9udGhseSBwYXltZW50cyAtIFNNUyJ9LCJNb250aGx5UGF5bWVudHNfU01TX05FVyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIC0gU01TIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMgLSBTTVMifSwiUGFydHNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvbW1hbmRlIHBpJmVncmF2ZTtjZSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciB2ZWhpY2xlIHBhcnRzIn0sIlBob3RvUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHBob3RvcyIsIkVOR0xJU0giOiJMZWFkOiBQaG90byByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIFJhYmFpcyBJbnN0YW50YW5lIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgUmViYXRlIHJlcXVlc3QifSwiUG9wVXBJbnN0YW50UmViYXRlMyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIFJhYmFpcyBJbnN0YW50YW5lIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgUmViYXRlIHJlcXVlc3QifSwiUG9wVXBJbnN0YW50UmViYXRlQUEiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlByaWNlUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwcml4IiwiRU5HTElTSCI6IkxlYWQ6IFByaWNlIHJlcXVlc3QifSwiUHJpY2VSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHByaXgiLCJFTkdMSVNIIjoiTGVhZDogUHJpY2UgcmVxdWVzdCJ9LCJQcmljZVZlaGljbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkOiBUcmFkZS1pbiByZXF1ZXN0In0sIlByaWNlVmVoaWNsZUFjY3V0cmFkZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCdlY2hhbmdlIiwiRU5HTElTSCI6IkxlYWQgOiBUcmFkZS1pbiByZXF1ZXN0In0sIlByaWNlVmVoaWNsZU5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIgZCdlY2hhbmdlIiwiRU5HTElTSCI6IkxlYWQ6IFRyYWRlLWluIHJlcXVlc3QifSwiUXVpY2tFbWFpbCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IEV4cHJlc3MgcmVxdWVzdCJ9LCJRdWlja0VtYWlsTmV3SW52ZW50b3J5Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIEV4cHJlc3MgKGludmVudGFpcmUgbmV1ZikiLCJFTkdMSVNIIjoiTGVhZDogRXhwcmVzcyByZXF1ZXN0IChuZXcgaW52ZW50b3J5KSJ9LCJSZWJhdGVDb3Vwb24iOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAodmVoaWN1bGUgZW4gaW52ZW50YWlyZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkifSwiUmViYXRlQ291cG9uSW52ZW50b3J5Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5KSJ9LCJSZWJhdGVDb3Vwb25OZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24ifSwiUmViYXRlQ291cG9uTmV3Qk5QIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNvbmZpZ3VyYXRldXIpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoY29uZmlndXJhdG9yKSJ9LCJSZWJhdGVDb3Vwb25OZXdJbnZlbnRvcnkiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoaW52ZW50YWlyZSkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkpIn0sIlJlYmF0ZUNvdXBvbk5ld1NsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlYmF0ZUNvdXBvblByb21vIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoYm91dG9uICdQcm9tb3Rpb25zJykiLCJFTkdMSVNIIjoiTGVhZDogUmViYXRlIENvdXBvbiByZXF1ZXN0ICgnUHJvbW90aW9ucycgYnV0dG9uKSJ9LCJSZWJhdGVDb3Vwb25TbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWJhdGVDb3Vwb25Vc2VkU2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmVjYWxscyI6eyJGUkVOQ0giOiJEZW1hbmRlIGQnaW5mb3JtYXRpb24gc3VyIGxlcyByYXBwZWxzIiwiRU5HTElTSCI6IlJlY2FsbCBpbmZvcm1hdGlvbiByZXF1ZXN0In0sIlJlc2VydmVJdE5vdyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBwb3VyIHJlc2VydmVyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIHByZS1vcmRlciBhIHZlaGljbGUifSwiUmVzZXJ2ZUl0Tm93TmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIHBvdXIgcmVzZXJ2ZXIgdW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gcHJlLW9yZGVyIGEgdmVoaWNsZSJ9LCJTZWxsQ2FyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIFZlbmRleiBWZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBidXkgeW91ciBjYXIifSwiU2VsbENhcl9TaG9ydCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBWZW5kZXotbm91cyB2b3RyZSB2ZWhpY3VsZSAodmVyc2lvbiBjb3VydGUpIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIGJ1eSB5b3VyIGNhciAoU2hvcnQgdmVyc2lvbikifSwiU2VydmljZVJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSIsIkVOR0xJU0giOiJMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QifSwiU01TTGVhZCI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIFNNUyAoVGV4dG8pIiwiRU5HTElTSCI6IkxlYWQ6IFNNUyByZXF1ZXN0In0sIlNNU0xlYWRfb2xkIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIFNNUyAoVGV4dG8pIiwiRU5HTElTSCI6IkxlYWQgOiBTTVMgcmVxdWVzdCJ9LCJTcGVjc1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBmaWNoZSBQREYgLSBWZWhpY3VsZSBlbiBpbnZlbnRhaXJlIiwiRU5HTElTSCI6IkxlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkifSwiU3BlY3NSZXF1ZXN0TmV3Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgYnJvY2h1cmUgUERGIiwiRU5HTElTSCI6IkxlYWQ6IFBERiBicm9jaHVyZSByZXF1ZXN0In0sIlNSUENvbnRhY3RVcyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFNSUCIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCBmb3IgY29udGFjdCBTUlAifSwiVGVzdERyaXZlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGQnZXNzYWkgcm91dGllciIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHRlc3QgZHJpdmUifSwiVGVzdERyaXZlTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGQnZXNzYWkgcm91dGllciIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHRlc3QgZHJpdmUifSwiVGlyZXNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHBuZXVzIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIHRpcmVzIn0sIlByb21vTWFpbCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2ludml0YXRpb24gYSBsYSB2ZW50ZSBwcml2ZWUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgaW52aXRhdGlvbiB0byBwcml2YXRlIHNhbGUifSwiU2xpZGVXaWRnZXRGb3JtIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifSwiQ29tcGFyZUZvcm0iOnsiRlJFTkNIIjoiVUlURVhUIiwiRU5HTElTSCI6IlVJVEVYVCJ9LCJTZWFyY2hGaWx0ZXJzIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifSwiaGVhZGVyR2xvYmFsU2VhcmNoIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifX0sInN1Yl9nYTQiOiJZIn0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZjczZmE2YWJiZmI0YmFiM2Y0OWRhYWZiMzg5MWUyN2Y7dHJ5eyhmdW5jdGlvbih3LGQsdCxyLHUpe3ZhciBmLG4saTt3W3VdPXdbdV18fFtdLGY9ZnVuY3Rpb24oKXt2YXIgbz17dGk6IjUwNzkzOTEiLGVuYWJsZUF1dG9TcGFUcmFja2luZzp0cnVlfTtvLnE9d1t1XSx3W3VdPW5ldyBVRVQobyksd1t1XS5wdXNoKCJwYWdlTG9hZCIpfSxuPWQuY3JlYXRlRWxlbWVudCh0KSxuLnNyYz1yLG4uYXN5bmM9MSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1vdC1pZ25vcmUiLHRydWUpLG4uc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0Iiksbi5vbmxvYWQ9bi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgcz10aGlzLnJlYWR5U3RhdGU7cyYmcyE9PSJsb2FkZWQiJiZzIT09ImNvbXBsZXRlInx8KGYoKSxuLm9ubG9hZD1uLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsKX0saT1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpWzBdLGkucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixpKX0pKHdpbmRvdyxkb2N1bWVudCwic2NyaXB0IiwiLy9iYXQuYmluZy5jb20vYmF0LmpzIiwidWV0cSIpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfNjAwNTcxMGQyOTM5NTg5ZjBkYzcwYTNmMDYzZjNhNDg7dHJ5e3ZhciBkZXBsb3ltZW50VHlwZT0nJytqc19kMmNfZ2V0X3ZhbCgiMmVqaGJjMHl5b2cwd3d3IikrJyc7aWYoZGVwbG95bWVudFR5cGU9PSdsaXZlJyl7Z2FUcmFjaygnX3RyYWNrRXZlbnQnLCdQYWdlcyB2dWVzJywnU2VjdGlvbi1OZXVmJywnJywxKTt9ZWxzZSBpZihkZXBsb3ltZW50VHlwZT09J3N0YWdpbmcnKXtnYVRyYWNrKCdiLl90cmFja0V2ZW50JywnTW9iaWxlIHBhZ2V2aWV3cycsJ1N0YW5kYXJkIE1vYmlsZScsd2luZG93LmxvY2F0aW9uLmhyZWYsJzEnKTt9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF85MWM0OWY4NGY2OWZjZmJiODNmNmUyNzk1MGQ2YWQ4ODt0cnl7JChmdW5jdGlvbigpe3RyeXskKCcuZGVhbGVyTWFwTGluaycpLmRhcmtUb29sdGlwKHtjb250ZW50OiJEaXJlY3Rpb25zIHZlcnMgIitqc19kMmNfZ2V0X3ZhbCgiMTdnYTh2aG5jaHZrOGNnayIpKyIiLGdyYXZpdHk6J25vcnRoJyx0aGVtZTonbGlnaHQnLHRyaWdnZXI6J2hvdmVyJyx9KTt9Y2F0Y2goZSl7fX0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZDc1Yjc2ODI4Njg0ODAxZTI2NmRiY2JiM2M4MTIwNTU7dHJ5eyQoZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXI6bm90KC5ub3RyaWdnZXIpJykub24oJ21vdXNlZW50ZXInLGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyICsgLmV4dGVuZGVkUGhvbmUnKS5zaG93KCk7fSkub24oJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyICsgLmV4dGVuZGVkUGhvbmUnKS5oaWRlKCk7fSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF80NzA1NTk1MTdkOTkxZTFjYmJiMmUzNjkyY2Q2MDMwZjt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oKXskKCcjdHJhZGVJbkJhclBvcHVwU3VibWl0JykucHJvcCgnZGlzYWJsZWQnLGZhbHNlKTskKCcjdHJhZGVJbkJhclBvcHVwU3VibWl0Jykuc2hvdygpO3RyYWRlaW5wb3B1cGQyYy5pbml0VHJhZGVJblN0ZXAxKCk7JCgnaW5wdXRbbmFtZT1zdGVwM2RvbmVdJykudmFsKDApO3RyYWRlaW5wb3B1cGQyYy5vbkJlZm9yZU9wZW4oKTt9LCJvbkJlZm9yZXN1Ym1pdCI6ZnVuY3Rpb24ocG9wdXApe3JldHVybiB0cmFkZWlucG9wdXBkMmMub25CZWZvcmVTdWJtaXQocG9wdXApO30sIm9uQWZ0ZXJzdWJtaXQiOmZ1bmN0aW9uKHBvcHVwKXt0cmFkZWlucG9wdXBkMmMub25BZnRlclN1Ym1pdChwb3B1cCk7Q29va2llcy5zZXQoJ3BvcHVwRm9ybUZpbGxlZCcsbnVsbCxudWxsLCcvJyk7Q29va2llcy5zZXQoJ3RyYWRlSW5Qb3B1cFNob3duJyxudWxsLG51bGwsJy8nKTtpZigkKCcjdHJhZGVJbkJhcicpLmxlbmd0aCl7JCgnI3RyYWRlSW5CYXInKS5oaWRlKCk7fQppZigkKCcjdHJhZGVpbkJhckZsb2F0JykubGVuZ3RoKXskKCcjdHJhZGVpbkJhckZsb2F0JykuaGlkZSgpO319LCJvbkJlZm9yZVZhbGlkYXRpb24iOmZ1bmN0aW9uKHBvcHVwKXtyZXR1cm4gdHJhZGVpbnBvcHVwZDJjLm9uQmVmb3JlVmFsaWRhdGlvbihwb3B1cCk7fSwib25CZWZvcmVDbG9zZSI6ZnVuY3Rpb24ocG9wdXApe0Nvb2tpZXMuZ2V0KCd0cmFkZUluUG9wdXBTaG93bicsbnVsbCxudWxsLCcvJyk7JCgnI2xlYWRTZW50JykucmVtb3ZlKCk7JCgnI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwJykuaGlkZSgpO30sIm9uQmVmb3JlSW5pdGlhbGl6ZSI6ZnVuY3Rpb24ocG9wdXApe3BvcHVwLnNldHRpbmdzLmZvcm0uc2VuZFRvPXBvcHVwLnNldHRpbmdzLmZvcm0uc2VuZFRvO3BvcHVwLnNldHRpbmdzLmZvcm0uc2VuZFRvQURGPXBvcHVwLnNldHRpbmdzLmZvcm0uc2VuZFRvQURGO30sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXt0cmFkZUluQmFySW5pdGlhbGl6ZSgpO3RyYWRlaW5wb3B1cGQyYy5pbml0KCk7d2luZG93LmxhdW5jaFRyYWRlSW5Qb3B1cD1mdW5jdGlvbihzb3VyY2Upe3ZhciBwPSQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7cG9wdXBFdmVudFNvdXJjZTpzb3VyY2V9KTtpZihzb3VyY2UhPSJhdXRvbWF0aWMiKXtwLnNldFRyaWdnZXIoImNsaWNrIik7fQpwLm9wZW4oKTtyZXR1cm4gZmFsc2U7fQppZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgcG9wdXBUeXBlPSJ1c2VkIjt2YXIgY3VycmVudFBhZ2U9IiIranNfZDJjX2dldF92YWwoIjE2ZDd2d3Q2NnBtb3dvMGsiKSsiIjt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJ1c2VkIiwiIitqc19kMmNfZ2V0X3ZhbCgiNmp5cDQ2NjR2Z3dzODB3IikrIiIsZmFsc2UsInRyYWRlSW5CYXJQb3B1cCIsIiIranNfZDJjX2dldF92YWwoIjE2ZDd2d3Q2NnBtb3dvMGsiKSsiIiwiVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIixmYWxzZSk7cmV0dXJuIHRtcDt9fSwib25CZWZvcmVTZW5kTWFpbCI6ZnVuY3Rpb24ocG9wdXApe2lmKCcnPT0nJyl7aWYoZW1haWxIYW5kbGVyLmdldERlcCgpPT0nTkVXJyl7ZW1haWxIYW5kbGVyLnNlbmRUbz0nMGI3ZmU4M2IyMDNiNjkxMGYwMjAxYTcyNTE3YzJlZjB8MzI1NTY2OTg4Nic7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD0nYmE2MjBjM2YyZWU1NzU0Y2ZhYjNjZmFkMTQxNzU3M2N8MzI1NTY2OTg4Nic7ZW1haWxIYW5kbGVyLnNlbmRUb0FERj0nYmE2MjBjM2YyZWU1NzU0Y2ZhYjNjZmFkMTQxNzU3M2N8MzI1NTY2OTg4Nic7fWVsc2V7ZW1haWxIYW5kbGVyLnNlbmRUbz0nJytqc19kMmNfZ2V0X3ZhbCgiM3BtNnR2Z3FxZWd3NHciKSsnJztlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PSdiYTYyMGMzZjJlZTU3NTRjZmFiM2NmYWQxNDE3NTczY3wzMjU1NjY5ODg2JztlbWFpbEhhbmRsZXIuc2VuZFRvQURGPSdiYTYyMGMzZjJlZTU3NTRjZmFiM2NmYWQxNDE3NTczY3wzMjU1NjY5ODg2Jzt9fQppZihlbWFpbEhhbmRsZXIuZ2V0RGVwKCk9PSdORVcnKXtlbWFpbEhhbmRsZXIubWFpbElEPSdwcmljZXZlaGljbGVuZXcnO31lbHNle2VtYWlsSGFuZGxlci5tYWlsSUQ9J3ByaWNldmVoaWNsZSc7fX0sIm9uQWZ0ZXJDb25zZW50IjpmdW5jdGlvbihwb3B1cCl7JCgnI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCcpLnByb3AoJ2Rpc2FibGVkJyxmYWxzZSk7JCgnI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdCcpLnNob3coKTt9LCJjb29raWVEdXJhdGlvbiI6NjAsImNvb2tpZU5hbWUiOiJ0cmFkZUluUG9wdXBTaG93biIsImNvb2tpZUNyZWF0ZSI6Im9uU3VibWl0IiwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJQcmljZVZlaGljbGUiLCJvZmZlcnR5cGUiOiJ0cmFkZUluQmFyUG9wdXAiLCJuYW1lIjpudWxsLCJzZW5kVG8iOiIiK2pzX2QyY19nZXRfdmFsKCIzcG02dHZncXFlZ3c0dyIpKyIiLCJzZW5kVG9BREYiOiJhZGZsZWFkc0BzdWl2aWNsaWVudC5jYTttb25zaXRlZDJjbWVkaWEtaHl1bmRhaXJlcGVudGlnbnlAbGVhZGFjdGl2aXguY2EiLCJPS0J1dHRvbkNsYXNzIjoidHJhZGVJbkJhclBvcHVwU3VibWl0IiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOnRydWUsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6bnVsbCwiYm9keSI6bnVsbH19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0IjpmYWxzZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjpmYWxzZSwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJjb3VudGRvd24iOjE3Nzc0MzUyMDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZTI1ZDZjZmFiMzkyN2Q3OGQ5ZTJmNWEyZTM0NzYwMTY7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19UcmFkZUluQmFyUG9wdXBDb250YWluZXInKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzIwYzI1ZTJiYjVhOTNmYmQ4ODYxYmI4NTI3YjAxMjQwO3RyeXtpblZpZXdFeGVjKCcjbWFwX29wZW5faG91cnMnLGZ1bmN0aW9uKCl7bGV0IG1hcFVSTD0naHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlP3E9cGxhY2VfaWQlM0FDaElKSzJWUDlJcmx5RXdSOEtjS3FJeDE3aWMma2V5PV9fS0VZX18mY2VudGVyPTQ1Ljc2NDExMiUyQy03Mi45MDY3MTAzMDc0NzMmem9vbT0xMCZsYW5ndWFnZT1mciZyZWdpb249Q0EnO2xldCBtYXBGcmFtZT0kKCcjbWFwZnJhbWUnKTtpZihtYXBGcmFtZS5sZW5ndGg+MCl7aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbihrZXkpe21hcEZyYW1lLmF0dHIoJ3NyYycsbWFwVVJMLnJlcGxhY2UoJ19fS0VZX18nLGtleSkpO30pO30KKG5ldyBPcGVuSG91cnMoe2NvbnRhaW5lcjonI21hcF9vcGVuX2hvdXJzJyxhdXRvT3Blbjp0cnVlLH0pKS5pbml0KCk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF85MWM0OWY4NGY2OWZjZmJiODNmNmUyNzk1MGQ2YWQ4ODt0cnl7JChmdW5jdGlvbigpe3RyeXskKCcuZGVhbGVyTWFwTGluaycpLmRhcmtUb29sdGlwKHtjb250ZW50OiJEaXJlY3Rpb25zIHZlcnMgIitqc19kMmNfZ2V0X3ZhbCgiMTdnYTh2aG5jaHZrOGNnayIpKyIiLGdyYXZpdHk6J25vcnRoJyx0aGVtZTonbGlnaHQnLHRyaWdnZXI6J2hvdmVyJyx9KTt9Y2F0Y2goZSl7fX0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZDc1Yjc2ODI4Njg0ODAxZTI2NmRiY2JiM2M4MTIwNTU7dHJ5eyQoZnVuY3Rpb24oKXskKCcuZXh0ZW5kZWRQaG9uZVRyaWdnZXI6bm90KC5ub3RyaWdnZXIpJykub24oJ21vdXNlZW50ZXInLGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyICsgLmV4dGVuZGVkUGhvbmUnKS5zaG93KCk7fSkub24oJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCl7JCgnLmV4dGVuZGVkUGhvbmVUcmlnZ2VyICsgLmV4dGVuZGVkUGhvbmUnKS5oaWRlKCk7fSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF85NGFmMDA5OTJhZTU1OThkNWMwYzY3OTE5MzExZmZmYTt0cnl7dmFyIHV0bV9zb3VyY2U9Z2V0UGFyYW1ldGVyQnlOYW1lKCd1dG1fc291cmNlJyk7alF1ZXJ5KGZ1bmN0aW9uKCQpe2lmKHV0bV9zb3VyY2UhPSIiKXtDb29raWVzLnNldCgndXRtX2xhbmRpbmdfZm9vdGVyJyxudWxsLG51bGwsIi8iKTt9CmlmKENvb2tpZXMuZ2V0KCJ1dG1fbGFuZGluZ19mb290ZXIiKT09bnVsbHx8Q29va2llcy5nZXQoInV0bV9sYW5kaW5nX2Zvb3RlciIpPT09J251bGwnKXtDb29raWVzLnNldCgndXRtX2xhbmRpbmdfZm9vdGVyJyx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsMTgwLCIvIik7fQppZigkKCcjZ2VuZXJpY19mb3JtX2NvbmZpcm0nKS5sZW5ndGg8MSl7dmFyIEZvcm09JCgnPGZvcm0gaWQ9ImdlbmVyaWNfZm9ybV9jb25maXJtIiB0YXJnZXQ9ImlmcmFtZWd0cmFjayIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+PC9mb3JtPicpO3ZhciBtYWtlVmFsPSIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiI7dmFyIG1vZGVsVmFsPSIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIjt2YXIgeWVhclZhbD0iIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiI7dmFyIHJlZmVyYWxWYWw9IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIiO3ZhciBzZWN0aW9uVmFsPScnK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsnJzt2YXIgZnJvbUF1dG9hdWJhaW5lPSQoJyNhdXRvYXViYWluZV9wb3B1cCcpLmxlbmd0aD4wJiYoJCgnI2F1dG9hdWJhaW5lX3BvcHVwJykudmFsKCkhPSdmYWxzZScpO3ZhciBpbnB1dHM9W3tuYW1lOiJsYWJlbCIsdmFsdWU6IiIsJ2NsYXNzJzoibGFiZWxlbWFpbCJ9LHtuYW1lOiJzZWN0aW9uIix2YWx1ZToiIiwnY2xhc3MnOiJsYWJlbHNlY3Rpb24ifSx7bmFtZToiYnJhbmQiLHZhbHVlOm1ha2VWYWwsJ2NsYXNzJzoiYnJhbmRlbWFpbCJ9LHtuYW1lOiJtb2RlbCIsdmFsdWU6bW9kZWxWYWwsJ2NsYXNzJzoibW9kZWxlbWFpbCJ9LHtuYW1lOiJ5ZWFyIix2YWx1ZTp5ZWFyVmFsLCdjbGFzcyc6InllYXJlbWFpbCJ9LHtuYW1lOiJnb29nbGVpZCIsdmFsdWU6IiJ9LHtuYW1lOiJnb29nbGVpZGQyY21lZGlhIix2YWx1ZToiIn0se25hbWU6ImJpbmdjb25pZCIsdmFsdWU6IiJ9LHtuYW1lOiJiaW5nYWN0aW9uaWQiLHZhbHVlOiIifSx7bmFtZToiYmluZ2RvbWFpbmlkIix2YWx1ZToiIn0se25hbWU6Imd0YWdfY29udmVyc2lvbiIsdmFsdWU6Imd0YWcifSx7bmFtZToiYWRyb2xsQWR2Iix2YWx1ZToiIn0se25hbWU6ImFkcm9sbFBpeCIsdmFsdWU6IiJ9LHtuYW1lOiJmYWNlYm9va0NvbklkIix2YWx1ZToiMjA2ODI4NDEzMDk2NzgwIn0se25hbWU6ImxlYWRfZGVwYXJ0bWVudCIsdmFsdWU6IiJ9LHtuYW1lOiJsZWFkVHlwZSIsdmFsdWU6IiJ9LHtuYW1lOiJwYWdlSUQiLHZhbHVlOiIifSx7bmFtZToiY3VycmVudFVSTCIsdmFsdWU6IiJ9LHtuYW1lOiJkb21haW4iLHZhbHVlOiJoeXVuZGFpcmVwZW50aWdueS5jb20ifSx7bmFtZToicmVmZXJyZXIiLHZhbHVlOnJlZmVyYWxWYWx9LHtuYW1lOiJpc2V4cHJlc3MiLHZhbHVlOiIiLCdjbGFzcyc6J2lzZXhwcmVzcyd9LHtuYW1lOiJpc3Byb21vIix2YWx1ZToiIn0se25hbWU6ImlzaG9tZXBhZ2UiLHZhbHVlOiIifSx7bmFtZToidGVzdG1vZGUiLHZhbHVlOiIwIiwnY2xhc3MnOiJ0ZXN0bW9kZSJ9LHtuYW1lOid0ZXh0Q2FyU2VjdGlvblR5cGUnLHZhbHVlOnNlY3Rpb25WYWx9LHtuYW1lOiJsYW5nIix2YWx1ZToiRlJFTkNIIn0se25hbWU6ImJ1dHRvblBvc2l0aW9uIix2YWx1ZToiIn0se25hbWU6ImRlYWxlck5hbWUiLHZhbHVlOiIifSx7bmFtZToiaXNGdWxsV2lkdGgiLHZhbHVlOiIifSx7bmFtZToiaXNNb2JpbGVOZXdWRFAiLHZhbHVlOiIifSx7bmFtZToiZnJvbUF1dG9BdWJhaW5lIix2YWx1ZTowfV0KZm9yKHZhciBpPTA7aTxpbnB1dHMubGVuZ3RoO2krKyl7JCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgLz4nKS5hdHRyKGlucHV0c1tpXSkuYXBwZW5kVG8oRm9ybSk7fQpGb3JtLmFwcGVuZFRvKCcjY29uZmlybV9mb3JtcycpO0Zvcm0ub24oJ3N1Ym1pdCcsb25Db25maXJtU3VibWl0KTt9CmlmKCQoJyNndHJhY2tGcmFtZScpLmxlbmd0aDwxKXskKCc8aWZyYW1lPjwvaWZyYW1lPicpLmF0dHIoe3dpZHRoOjEsaGVpZ2h0OjEsZnJhbWVCb3JkZXI6MCxpZDonZ3RyYWNrRnJhbWUnLG5hbWU6J2lmcmFtZWd0cmFjaycscm9sZTonbm9uZScsc3R5bGU6J3dpZHRoOjFweDtoZWlnaHQ6MXB4OycsdGl0bGU6J2ZyYW1lJ30pLmFwcGVuZFRvKCcjY29uZmlybV9mb3JtcycpO319KTt2YXIgc2V0Q2hhdFppbmRleD1mdW5jdGlvbigpe3ZhciBjaGF0RWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaWZyYW1lW3RpdGxlPSJjaGF0IHdpZGdldCJdJyk7aWYoY2hhdEVsKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpZnJhbWVbdGl0bGU9ImNoYXQgd2lkZ2V0Il0nKS5wYXJlbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCd6LWluZGV4JywnMTAnLCdpbXBvcnRhbnQnKTt9fQpzZXRUaW1lb3V0KHNldENoYXRaaW5kZXgsMzAwMCk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8zYTI0NmE3OThkMjVkY2MzMzE1NzZlYjVmZDgwZDQ3ZTt0cnl7JCgnLmNvbnNlbnQuZGlzY2xhaW1lcicpLmRhcmtUb29sdGlwKHtncmF2aXR5Oidzb3V0aCcsdGhlbWU6J2xpZ2h0Jyx0cmlnZ2VyOidob3Zlcicsb3BhY2l0eToxLH0pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMTFiYTc1M2M1MDdhMzljOWJiZTZlZDI3NWE4ZWUyMjE7dHJ5e3RyeXt3aW5kb3cuRDJDRmJDb25zZW50PXdpbmRvdy5EMkNGYkNvbnNlbnR8fHtfc3RhdGU6bnVsbCxfcXVldWU6W10sX2ZsdXNoOmZ1bmN0aW9uKCl7dmFyIHE9dGhpcy5fcXVldWU7dGhpcy5fcXVldWU9W107cS5mb3JFYWNoKGZ1bmN0aW9uKGNiKXt0cnl7Y2IoKTt9Y2F0Y2goZSl7fX0pO30sZ3JhbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT0nZ3JhbnQnO2lmKHR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7ZmJxKCdjb25zZW50JywnZ3JhbnQnKTt0aGlzLl9mbHVzaCgpO319LHJldm9rZTpmdW5jdGlvbigpe3RoaXMuX3N0YXRlPSdyZXZva2UnO2lmKHR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7ZmJxKCdjb25zZW50JywncmV2b2tlJyk7fX0sb25HcmFudGVkOmZ1bmN0aW9uKGNiKXtpZih0eXBlb2YgY2IhPT0nZnVuY3Rpb24nKXtyZXR1cm47fWlmKHRoaXMuX3N0YXRlPT09J2dyYW50JyYmdHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXt0cnl7Y2IoKTt9Y2F0Y2goZSl7fX1lbHNle3RoaXMuX3F1ZXVlLnB1c2goY2IpO319LHN5bmNUb0ZicTpmdW5jdGlvbigpe2lmKHRoaXMuX3N0YXRlJiZ0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe2ZicSgnY29uc2VudCcsdGhpcy5fc3RhdGUpO2lmKHRoaXMuX3N0YXRlPT09J2dyYW50Jyl7dGhpcy5fZmx1c2goKTt9fX19OyFmdW5jdGlvbihmLGIsZSx2LG4sdCxzKXtpZihmLmZicSlyZXR1cm47bj1mLmZicT1mdW5jdGlvbigpe24uY2FsbE1ldGhvZD9uLmNhbGxNZXRob2QuYXBwbHkobixhcmd1bWVudHMpOm4ucXVldWUucHVzaChhcmd1bWVudHMpfTtpZighZi5fZmJxKWYuX2ZicT1uO24ucHVzaD1uO24ubG9hZGVkPSEwO24udmVyc2lvbj0nMi4wJztuLnF1ZXVlPVtdO3Q9Yi5jcmVhdGVFbGVtZW50KGUpO3QuYXN5bmM9ITA7dC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMi1DMDAwMy1DMDAwNC1DMDAwNScpO3Quc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9wbGFpbicpO3Quc3JjPXY7dC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMi1DMDAwMy1DMDAwNC1DMDAwNScpO3Quc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9wbGFpbicpO3M9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTtzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQscyl9KHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qcycpO2ZicSgnaW5pdCcsJzIwNjgyODQxMzA5Njc4MCcpO3dpbmRvdy5EMkNGYkNvbnNlbnQuc3luY1RvRmJxKCk7d2luZG93LkQyQ0ZiQ29uc2VudC5vbkdyYW50ZWQoZnVuY3Rpb24oKXtmYnEoJ3RyYWNrJywiUGFnZVZpZXciKTt9KTt3aW5kb3cuRDJDRmJDb25zZW50Lm9uR3JhbnRlZChmdW5jdGlvbigpe2ZicSgndHJhY2snLCdWaWV3Q29udGVudCcpO30pO31jYXRjaChleCl7fTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzgzYzI1MjhhNzUzODBjMDc4NzJlOTJhZDJjOTlhZTJlO3RyeXtpZih0eXBlb2YgcGFnZSE9PSd1bmRlZmluZWQnJiZwYWdlPT0iTkVXQ0FSREVUQUlMUyIpeyQoZG9jdW1lbnQpLm9uKCdjbGljaycsJ2EnLGZ1bmN0aW9uKCl7dmFyIG9iaj0kKHRoaXMpO3ZhciBocmVmPW9iai5hdHRyKCdocmVmJyk7dmFyIHRleHQ9b2JqLnRleHQoKTtpZih0ZXh0Lmxlbmd0aD4wJiZvYmouZmluZCgnaW1nJykubGVuZ3RoPT0wJiZ0eXBlb2YgaHJlZiE9J3VuZGVmaW5lZCcpe3ZhciB0aXRsZT0kKCcuYnJhbmRlbWFpbFtuYW1lPSJicmFuZCJdJykudmFsKCkrJy0nKyQoJy5tb2RlbGVtYWlsW25hbWU9Im1vZGVsIl0nKS52YWwoKSsnLScrJCgnLnllYXJlbWFpbCcpLnZhbCgpO2lmKGhyZWYhPSIjIiYmaHJlZiE9IiImJmhyZWYuaW5kZXhPZigiamF2YXNjcmlwdCIpPDAmJmhyZWYuaW5kZXhPZigneycpPDApe3RpdGxlPWhyZWY7fQpnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ05ldy1WRFAtT3V0Ym91bmQtY2xpY2tzJyxvYmoudGV4dCgpLHRpdGxlKTt9fSk7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMTRkMjY1MzE4YTExZGRlNzVlMzUyY2UzMWNkNDNkZWI7dHJ5eyQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7dmFyIGhjX2xhbmc9KCQoJyNhY3RpdmVzaXRlbGFuZ3VhZ2UnKS52YWwoKT09J0VOR0xJU0gnPydlbmdsaXNoJzonZnJlbmNoJyk7dmFyIGhjX2ltZz0nSHl1bmRhaS1Gci5wbmcnO3ZhciBoY190ZXh0PSJMZSBub20sIGxlcyBsb2dvcywgbm9tcyBkZSBwcm9kdWl0cywgbm9tcyBkZXMgY2FyYWN0JmVhY3V0ZTtyaXN0aXF1ZXMsIGltYWdlcyBldCBzbG9nYW5zIEh5dW5kYWk8ZGl2Lz5zb250IGRlcyBtYXJxdWVzIGRlIGNvbW1lcmNlIGFwcGFydGVuYW50ICZhZ3JhdmU7IEh5dW5kYWkgQXV0byBDYW5hZGEgQ29ycC4iO2lmKGhjX2xhbmc9PSdlbmdsaXNoJyl7aGNfaW1nPSdIeXVuZGFpLUVuLnBuZyc7aGNfdGV4dD0iVGhlIEh5dW5kYWkgbmFtZSwgbG9nb3MsIHByb2R1Y3QgbmFtZXMsIGZlYXR1cmUgbmFtZXMsIGltYWdlcyBhbmQgc2xvZ2FuczxkaXYvPmFyZSB0cmFkZW1hcmtzIG93bmVkIGJ5IEh5dW5kYWkgQXV0byBDYW5hZGEgQ29ycC4iO30KdmFyIGh0bWw9IiI7JChodG1sKS5hcHBlbmRUbygnI2xhbmd1YWdlQ2hhbmdlckRpdicpOyQoJzxkaXY+JytoY190ZXh0Kyc8L2Rpdj4nKS5hcHBlbmRUbygnI2Zvb3RlckRpdiAuY29weScpO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfNTlmMzEwZGZiZTlhZDE4MmE1ODM2YWRkM2E0OWE0MDE7dHJ5e3ZhciBfbXNxPV9tc3F8fFtdO19tc3EucHVzaChbJ19zZXRXZWJzaXRlJywnJ10sWydfdHJhY2tQYWdldmlldyddKTsoZnVuY3Rpb24oKXt2YXIgbVNpZ25hbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTttU2lnbmFsLnR5cGU9J3RleHQvamF2YXNjcmlwdCc7bVNpZ25hbC5hc3luYz10cnVlO21TaWduYWwuc2V0QXR0cmlidXRlKCdjbGFzcycsJ29wdGFub24tY2F0ZWdvcnktQzAwMDInKTttU2lnbmFsLnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQvcGxhaW4nKTttU2lnbmFsLnNyYz0oJ2h0dHBzOic9PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sPydodHRwczovLyc6J2h0dHA6Ly8nKSsnZnpsbmsuY29tL3NpZ25hbHMuanMnO3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTtzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG1TaWduYWwscyk7fSkoKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2M1YmY5ODVkMWE1M2RiMWJlZTVmZDA5YjZmMmI4YWQyO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2QyY0Zvb3RlckNvb2tpZURlbGV0ZSIpLnBvcHVwaXplKHsiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjpudWxsLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6bnVsbCwic2VuZFRvQURGIjpudWxsLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjpmYWxzZSwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzc3NDM1MjAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIyMDY4Mjg0MTMwOTY3ODAifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6Imh5dW5kYWlyZXBlbnRpZ255LmNvbSJ9LHsibmFtZSI6InJlZmVycmVyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIn0seyJuYW1lIjoiaXNleHByZXNzIiwidmFsdWUiOiIwIiwiY2xhc3MiOiJpc2V4cHJlc3MifSx7Im5hbWUiOiJpc3Byb21vIiwidmFsdWUiOiIwIn0seyJuYW1lIjoiaXNob21lcGFnZSIsInZhbHVlIjoiMCJ9LHsibmFtZSI6InRleHRDYXJTZWN0aW9uVHlwZSIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrIiJ9LHsibmFtZSI6ImZyb21BQSIsInZhbHVlIjoiIn0seyJuYW1lIjoibGFuZyIsInZhbHVlIjoiRlJFTkNIIn1dfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9mOWYzZTUyOTliODI3ZGZhZDgxMzY0NzI1YjU3ZmUxMTt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXtjb250YWN0UG9wdXAuc2V0Q29uZmlnKHt0eXBlOnNlbGYuc2V0dGluZ3MuZm9ybS50eXBlfSk7aWYodHlwZW9mIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIT0idW5kZWZpbmVkIil7dmFyIHRtcD1wb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSgibmV3IiwiIitqc19kMmNfZ2V0X3ZhbCgiNmp5cDQ2NjR2Z3dzODB3IikrIiIsdHJ1ZSwiIiwiIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiLCJjb250YWN0cG9wdXAiLGZhbHNlKTtpZihmYWxzZSYmdG1wKXNlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD0zMDtyZXR1cm4gdG1wO319LCJvbkJlZm9yZVNlbmRNYWlsIjpmdW5jdGlvbihzZWxmKXtjb250YWN0UG9wdXAub25CZWZvcmVTZW5kTWFpbCgpO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNvbnRhY3RVc1JlcXVlc3QiLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOiJWb3RyZSBtZXNzYWdlIGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ISIsImJvZHkiOiJNZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlICZlYWN1dGU7cXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LiJ9LCJ0eXBlIjoibmV3In0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6Ijc1Iiwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOnRydWUsImNvdW50ZG93biI6MTc3NzQzNTIwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8zZDc4NTQyNzQxMjVlYTY5YjAyNDU3NTY0NmE2OThkYzt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX2NvbnRhY3Rwb3B1cCcpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMDI1MDhiN2IwNWI2NzI2ODNkNmNkNTY5NzQ4YWVjNjk7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25BZnRlcnN1Ym1pdCI6ZnVuY3Rpb24oc2VsZil7c2V0Q29va2llKCdjcmVkaXRTY29yZUVtYmVkZGVkRmlsbGVkJywxLDMwKTtpZih0eXBlb2YgZ1VzZWRTcnBBcHB6IT09J3VuZGVmaW5lZCcpe2dVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuY2xlYXJQcm94eUNhY2hlQW5kUmVGZXRjaCgpO319LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7KG5ldyBGb3JtKCkpLm1hc2tQaG9uZSgiI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgI2NyZWRpdFNjb3JlUGhvbmUiKTt2YXIgbGFuZz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iZW4iOiJmciI7dmFyIHN0YXJ0RGF0ZT1uZXcgRGF0ZSgpO3N0YXJ0RGF0ZS5zZXRGdWxsWWVhcihzdGFydERhdGUuZ2V0RnVsbFllYXIoKS0zMCk7dmFyIG1heERhdGU9bmV3IERhdGUoKTttYXhEYXRlLnNldEZ1bGxZZWFyKG1heERhdGUuZ2V0RnVsbFllYXIoKS0xOCk7dmFyIG1pbkRhdGU9bmV3IERhdGUoKTttaW5EYXRlLnNldEZ1bGxZZWFyKG1pbkRhdGUuZ2V0RnVsbFllYXIoKS0xMjApOyQoIi5jcmVkaXRTY29yZUJpcnRoZGF0ZSIpLm5lYkNhbCh7bWF4RGF0ZTptYXhEYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLG1pbkRhdGU6bWluRGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxkZWZhdWx0RGF0ZTpzdGFydERhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZm9ybWF0OiJkZCBNTU0geXl5eSIsZGVmYXVsdFZpZXc6ImRlY2FkZSJ9KTskKCcjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl0nKS5nb29nbGVQbGFjZXMoKTt2YXIgcG9wdXBUeXBlPSJuZXciO2lmKHR5cGVvZiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSE9InVuZGVmaW5lZCIpe3ZhciB0bXA9cG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoIm5ldyIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsImNyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiLGZhbHNlKTtpZigwJiZ0bXApe3NlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD0xMDt9CmVsc2V7c2VsZi5zZXR0aW5ncy5zaG93b25sb2FkPWZhbHNlO30KcmV0dXJuIHRtcDt9fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoiY3JlZGl0U2NvcmVTaG93biIsImNvb2tpZUNyZWF0ZSI6Im9uT3BlbiIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiQ3JlZGl0U2NvcmUiLCJvZmZlcnR5cGUiOiJDcmVkaXRTY29yZSIsIm5hbWUiOm51bGwsInNlbmRUbyI6IiIranNfZDJjX2dldF92YWwoIjEzZHF0c25jZDgxd2s4NDQiKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgiNWNjeWdrOTI1bWd3ZzAiKSsiIiwiT0tCdXR0b25DbGFzcyI6ImNyZWRpdFNjb3JlX2J0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOiJWb3RyZSBkZW1hbmRlIGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ZSEiLCJib2R5IjoiTWVyY2khIFVuIGNvbnNlaWxsZXIgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBwb3VyIHZvdXMgZG9ubmVyIGxlcyBkJmVhY3V0ZTt0YWlscyBzdXIgdm90cmUgcG90ZW50aWVsIGRlIGNyJmVhY3V0ZTtkaXQuIn19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOjAsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwic2hvd29ubG9hZCI6ZmFsc2UsImNvdW50ZG93biI6MTc3NzQzNTIwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9kNjZmNWQ5NDg1OTc0MmM2YTUxZjhiYWQ5YzBkZmFlMDt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXInKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzkwN2M2MmYwZmQzMzk4Njc5MDI5YzMzMTE3NzMzOTFiO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe3ZhciBtdWx0aXN0ZXA9aW5pdGlhbGl6ZUZpbmFuY2VNdWx0aVN0ZXAoc2VsZi50YXJnZXQpOyQoZG9jdW1lbnQpLm9uKCdjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQnLGZ1bmN0aW9uKGUpe211bHRpc3RlcC5zdGFydCgpO30pO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiLCJvZmZlcnR5cGUiOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IiwibmFtZSI6bnVsbCwic2VuZFRvIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTNkcXRzbmNkODF3azg0NCIpKyIiLCJzZW5kVG9BREYiOiIiK2pzX2QyY19nZXRfdmFsKCI1Y2N5Z2s5MjVtZ3dnMCIpKyIiLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3Nzc0MzUyMDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxzZWN0aW9uIn0seyJuYW1lIjoiYnJhbmQiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIiwiY2xhc3MiOiJicmFuZGVtYWlsIn0seyJuYW1lIjoibW9kZWwiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIiwiY2xhc3MiOiJ5ZWFyZW1haWwifSx7Im5hbWUiOiJnb29nbGVpZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZ29vZ2xlaWRkMmNtZWRpYSIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2NvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nYWN0aW9uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdkb21haW5pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsQWR2IiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxQaXgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImZhY2Vib29rQ29uSWQiLCJ2YWx1ZSI6IjIwNjgyODQxMzA5Njc4MCJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoiaHl1bmRhaXJlcGVudGlnbnkuY29tIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzFjYjQ3ODBkZTQwZWMwZGJjZjkyZDkwNjc1MDU5M2RjO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI1NlY29uZFBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7aWYoIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiPT0ic2Vjb25kY2hhbmNlIil7YWN0aXZhdGVkUG9wdXBEaXZJRD0iU2Vjb25kUG9wdXBDb250YWluZXIiO3NlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD10cnVlO2lmKENvb2tpZXMuZ2V0KCJwb3B1cFBhZ2VWaWV3cyIpJiZwYXJzZUludChDb29raWVzLmdldCgicG9wdXBQYWdlVmlld3MiKSk+PTApeyQoIiNzZWNvbmRDaGFuY2VQYWdlVmlld3MiKS52YWwoQ29va2llcy5nZXQoInBvcHVwUGFnZVZpZXdzIikpO30KQ29va2llcy5zZXQoInBvcHVwUGFnZVZpZXdzIiwtMTAwMDAwMCxudWxsLCIvIik7fQplbHNle2lmKENvb2tpZXMuZ2V0KCJwb3B1cFBhZ2VWaWV3cyIpJiZwYXJzZUludChDb29raWVzLmdldCgicG9wdXBQYWdlVmlld3MiKSk+PTApe0Nvb2tpZXMuc2V0KCJwb3B1cFBhZ2VWaWV3cyIscGFyc2VJbnQoQ29va2llcy5nZXQoInBvcHVwUGFnZVZpZXdzIikpKzEsbnVsbCwiLyIpO319fSwib25CZWZvcmVWYWxpZGF0aW9uIjpmdW5jdGlvbigpe2lmKCQoJyNyZWJhdGVFbWFpbF9zZWNvbmRjaGFuY2UnKS52YWwoKT09J2RlbW8nJiYkKCcjcmViYXRlTmFtZV9zZWNvbmRjaGFuY2UnKS52YWwoKT09J2RlbW8nKXJldHVybi0xO2Vsc2UgcmV0dXJuIDE7fSwib25CZWZvcmVPcGVuIjpmdW5jdGlvbigpe3ZhciBsYXN0bmV3dmVoaWNsZT1Db29raWVzLmdldCgnbGFzdG5ld3ZlaGljbGUnKTtpZih0eXBlb2YgbGFzdG5ld3ZlaGljbGUhPT0ndW5kZWZpbmVkJyYmbGFzdG5ld3ZlaGljbGUhPT1udWxsJiYkKCcjcmViYXRlU2VhcmNoZWRWZWhpY2xlX3NlY29uZGNoYW5jZScpLnZhbCgpPT0nJyl7bGFzdG5ld3ZlaGljbGU9bGFzdG5ld3ZlaGljbGUuc3BsaXQoJ3x8fCcpOyQoJyNyZWJhdGVTZWFyY2hlZFZlaGljbGVfc2Vjb25kY2hhbmNlJykudmFsKGxhc3RuZXd2ZWhpY2xlWzBdKycgJytsYXN0bmV3dmVoaWNsZVsxXSsnICcrbGFzdG5ld3ZlaGljbGVbMl0pO319LCJvbkNsb3NlIjpmdW5jdGlvbigpe2lmKCQoIiNwb3B1cERlcGFydG1lbnQiKS5sZW5ndGgpJCgiI3BvcHVwRGVwYXJ0bWVudCIpLnJlbW92ZSgpO30sIm9uQmVmb3Jlc3VibWl0IjpmdW5jdGlvbihzZWxmKXt2YXIgY3VycmVudFRpbWU9bmV3IERhdGUoKTt2YXIgc2VhcmNodmVoaWNsZT0kKCcuanF0cmFuc2Zvcm1kb25lIFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLnByb3AoJ3ZhbHVlJyk7dmFyIHR5cGU9J3VzZWQnO3ZhciB0eXBlRm91bmQ9ZmFsc2U7dmFyIGJyYW5kPScnO3ZhciBsYXN0bmV3dmVoaWNsZT1Db29raWVzLmdldCgnbGFzdG5ld3ZlaGljbGUnKTt2YXIgZW1haWxPYmo9JCgnW25hbWU9InBvcHVwMl9lbWFpbF91c2VkIl0nKTtpZih0eXBlb2YgbGFzdG5ld3ZlaGljbGUhPT0ndW5kZWZpbmVkJyYmbGFzdG5ld3ZlaGljbGUhPT1udWxsKXtsYXN0bmV3dmVoaWNsZT1sYXN0bmV3dmVoaWNsZS5zcGxpdCgnfHx8Jyk7fQp2YXIgc2VuZFRvPWVtYWlsT2JqLmRhdGEoJ2VtYWlscycpO3ZhciBzZW5kVG9BREY9ZW1haWxPYmouZGF0YSgnZW1haWxzYWRmJyk7aWYodHlwZW9mIHNlYXJjaHZlaGljbGUhPT0ndW5kZWZpbmVkJyYmc2VhcmNodmVoaWNsZS5sZW5ndGg+Mil7YnJhbmQ9c2VhcmNodmVoaWNsZTtpZihzZWFyY2h2ZWhpY2xlLmluZGV4T2YoY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSkhPS0xfHxzZWFyY2h2ZWhpY2xlLmluZGV4T2YoY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSsxKSE9LTEpe2lmKCQoJyNjdXJyZW50U3RhdHVzJykubGVuZ3RoPjAmJiQoJyNjdXJyZW50U3RhdHVzJykudmFsKCk9PSd1c2VkJyYmc2VhcmNodmVoaWNsZS5pbmRleE9mKGN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCkpIT0tMSYmc2VhcmNodmVoaWNsZSE9bGFzdG5ld3ZlaGljbGVbMF0rJyAnK2xhc3RuZXd2ZWhpY2xlWzFdKycgJytsYXN0bmV3dmVoaWNsZVsyXSl7dHlwZT0ndXNlZCc7fWVsc2V7dHlwZT0nbmV3Jzt9CnR5cGVGb3VuZD10cnVlO31lbHNle2Zvcih2YXIgaT0xO2k8MjU7aSsrKXtpZihzZWFyY2h2ZWhpY2xlLmluZGV4T2YoY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKS1pKSE9LTEpe3R5cGVGb3VuZD10cnVlO2JyZWFrO319fX0KaWYodHlwZW9mIHBhZ2UhPSd1bmRlZmluZWQnJiZwYWdlPT0nQlVJTERBTkRQUklDRScpe3R5cGU9J25ldyc7fQppZih0eXBlPT0nbmV3Jyl7aWYoJCgnW25hbWU9InBvcHVwMl9lbWFpbF9uZXciXScpLmRhdGEoJ2VtYWlscycpIT0nJyl7ZW1haWxPYmo9JCgnW25hbWU9InBvcHVwMl9lbWFpbF9uZXciXScpO3NlbmRUbz1lbWFpbE9iai5kYXRhKCdlbWFpbHMnKTtzZW5kVG9BREY9ZW1haWxPYmouZGF0YSgnZW1haWxzYWRmJyk7dmFyIHNlYXJjaFN0cj1icmFuZC5zcGxpdCgnICcpO2lmKCQoJ1tuYW1lXj0icG9wdXAyX2VtYWlsWyJdJykubGVuZ3RoPjAmJmJyYW5kLmxlbmd0aD4yKXskKCdbbmFtZV49InBvcHVwMl9lbWFpbFsiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgb2JqPSQodGhpcyk7dmFyIHNlYXJjaD0nJzskLmVhY2goc2VhcmNoU3RyLGZ1bmN0aW9uKGsscyl7c2VhcmNoPXNlYXJjaFN0cltrXS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStzZWFyY2hTdHJba10uc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtpZihvYmouZGF0YSgnYnJhbmRzJykuaW5kZXhPZihzZWFyY2gpIT0tMSl7c2VuZFRvPW9iai5kYXRhKCdlbWFpbHMnKTtzZW5kVG9BREY9b2JqLmRhdGEoJ2VtYWlsc2FkZicpO3JldHVybjt9fSk7fSk7fX19CmlmKHR5cGVGb3VuZD09ZmFsc2UmJiQoJyNjdXJyZW50U3RhdHVzJykubGVuZ3RoPjApe3ZhciB0eXBlPSQoJyNjdXJyZW50U3RhdHVzJykudmFsKCk7aWYodHlwZT09J25ldycpe2VtYWlsT2JqPSQoJ1tuYW1lPSJwb3B1cDJfZW1haWxfbmV3Il0nKTtzZW5kVG89ZW1haWxPYmouZGF0YSgnZW1haWxzJyk7c2VuZFRvQURGPWVtYWlsT2JqLmRhdGEoJ2VtYWlsc2FkZicpO319CmlmKCQoJy5icmFuZGVtYWlsJykubGVuZ3RoPT0wKSQoJ2JvZHknKS5hcHBlbmQoJzxpbnB1dCBjbGFzcz0iYnJhbmRlbWFpbCIgbmFtZSA9ImJyYW5kZW1haWwiIHZhbD0iIj4nKTtpZigkKCcubW9kZWxlbWFpbCcpLmxlbmd0aD09MCkkKCdib2R5JykuYXBwZW5kKCc8aW5wdXQgY2xhc3M9Im1vZGVsZW1haWwiIG5hbWUgPSJtb2RlbGVtYWlsIiB2YWw9IiI+Jyk7aWYoJCgnLnllYXJlbWFpbCcpLmxlbmd0aD09MCkkKCdib2R5JykuYXBwZW5kKCc8aW5wdXQgY2xhc3M9InllYXJlbWFpbCIgbmFtZSA9InllYXJlbWFpbCIgdmFsPSIiPicpO3ZhciBzZWFyY2h2ZWhpY2xlQXJyPVtdO2lmKHR5cGVvZiBzZWFyY2h2ZWhpY2xlIT09J3VuZGVmaW5lZCcpe3NlYXJjaHZlaGljbGVBcnI9c2VhcmNodmVoaWNsZS5zcGxpdCgnICcpO30KaWYoc2VhcmNodmVoaWNsZUFyci5sZW5ndGg9PTMpeyQoJy5icmFuZGVtYWlsJykudmFsKHNlYXJjaHZlaGljbGVBcnJbMF0pOyQoJy5tb2RlbGVtYWlsJykudmFsKHNlYXJjaHZlaGljbGVBcnJbMV0pOyQoJy55ZWFyZW1haWwnKS52YWwoc2VhcmNodmVoaWNsZUFyclsyXSk7fWVsc2UgaWYodHlwZW9mIGxhc3RuZXd2ZWhpY2xlIT0ndW5kZWZpbmVkJyYmbGFzdG5ld3ZlaGljbGUhPW51bGwmJmxhc3RuZXd2ZWhpY2xlLmxlbmd0aD09Myl7JCgnLmJyYW5kZW1haWwnKS52YWwobGFzdG5ld3ZlaGljbGVbMF0pOyQoJy5tb2RlbGVtYWlsJykudmFsKGxhc3RuZXd2ZWhpY2xlWzFdKTskKCcueWVhcmVtYWlsJykudmFsKGxhc3RuZXd2ZWhpY2xlWzJdKTt9CnNlbGYuc2V0dGluZ3MudmVoaWNsZVN0YXRlPXR5cGU7aWYoISQoJyNwb3B1cERlcGFydG1lbnQnKS5sZW5ndGgpJChkb2N1bWVudC5ib2R5KS5hcHBlbmQoJzxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cERlcGFydG1lbnQiIHZhbHVlPSInK3R5cGUudG9VcHBlckNhc2UoKSsnIiAvPicpO2Vsc2UgJCgnI3BvcHVwRGVwYXJ0bWVudCcpLnZhbCh0eXBlLnRvVXBwZXJDYXNlKCkpO2lmKCQoJyNyZWJhdGVFbWFpbF9zZWNvbmRjaGFuY2UnKS52YWwoKT09J2RlbW8nJiYkKCcjcmViYXRlTmFtZV9zZWNvbmRjaGFuY2UnKS52YWwoKT09J2RlbW8nKXtyZXR1cm4gZmFsc2U7fX0sIm9uQWZ0ZXJzdWJtaXQiOmZ1bmN0aW9uKCl7fSwiY29va2llRHVyYXRpb24iOmZhbHNlLCJjb29raWVOYW1lIjpmYWxzZSwiY29va2llQ3JlYXRlIjpmYWxzZSwiZmlsbGZsYWciOnRydWUsIm5hbWUiOiJzZWNvbmRQb3B1cCIsImFuaW1hdGlvbiI6ZmFsc2UsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJlcnJvck1zZyI6IkNlcnRhaW5zIGNoYW1wcyBvYmxpZ2F0b2lyZXMgbidvbnQgcGFzICZlYWN1dGU7dCZlYWN1dGU7IHJlbXBsaXMiLCJub3RyYW5zZm9ybSI6dHJ1ZSwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwidmVoaWNsZVN0YXRlIjoiTmV3IiwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiJfc2Vjb25kcG9wdXAiLCJsYWJlbCI6IkRlbWFuZGVzLUNvdXBvbnMtTmV1ZiIsImxhYmVsc2VjdGlvbiI6Ik5ldWYiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiQmVzdHByaWNlR3VhcmFudGVlIiwib2ZmZXJ0eXBlIjoiRGlzY291bnRJbWFnZVBvcHVwQmVzdHJhdGVHdWFyYW50ZWUiLCJuYW1lIjoiZnJtUmViYXRlX3NlY29uZHBvcHVwIiwic2VuZFRvIjoiMGI3ZmU4M2IyMDNiNjkxMGYwMjAxYTcyNTE3YzJlZjB8MzI1NTY2OTg4NiIsInNlbmRUb0FERiI6ImJhNjIwYzNmMmVlNTc1NGNmYWIzY2ZhZDE0MTc1NzNjfDMyNTU2Njk4ODYiLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0YnV0dG9uIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOm51bGwsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6ZmFsc2V9LCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiJEZW1hbmRlcy1Db3Vwb25zLU5ldWYiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiJOZXVmIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiIsImNsYXNzIjoibW9kZWxlbWFpbCJ9LHsibmFtZSI6InllYXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiMjA2ODI4NDEzMDk2NzgwIn0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJoeXVuZGFpcmVwZW50aWdueS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYWQzMTc3ZDhhNGMxODk3YWEyNGUzOWNmNWZjODM2OGI7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjcmV0dXJuUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlSW5pdGlhbGl6ZSI6ZnVuY3Rpb24ocG9wdXApe3ZhciBvbkJlZm9yZUluaXRpYWxpemVSZXR1cm49ZmFsc2U7aWYoQ29va2llcy5nZXQoJ2xhc3RWaXNpdFZEUCcpIT09bnVsbCl7dmFyIHRpbWVzdGFtcERpZmY9TWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKS8gMTAwMCk7dmFyIHRpbWVEaWZmPSh0aW1lc3RhbXBEaWZmLUNvb2tpZXMuZ2V0KCdsYXN0VmlzaXRWRFAnKSk7aWYodGltZURpZmY+MjQqNjAqNjApe29uQmVmb3JlSW5pdGlhbGl6ZVJldHVybj10cnVlO3NlbGYuc2V0dGluZ3MuZW5kUG9wdXBRdWV1ZT10cnVlO319CnJldHVybiBvbkJlZm9yZUluaXRpYWxpemVSZXR1cm47fSwic2hvd29ubG9hZCI6dHJ1ZSwiY29va2llRHVyYXRpb24iOjE3MjgwMCwiY29va2llTmFtZSI6InJldHVyblBvcHVwU2hvd24iLCJjb29raWVDcmVhdGUiOiJvbk9wZW4iLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiUmV0dXJuIHBvcHVwIiwibGFiZWxzZWN0aW9uIjoiTm91dmVhdSIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJSZXR1cm5WaXNpdG9yIiwib2ZmZXJ0eXBlIjoiUkVUVVJOX1BPUFVQIiwibmFtZSI6bnVsbCwic2VuZFRvIjoiMGI3ZmU4M2IyMDNiNjkxMGYwMjAxYTcyNTE3YzJlZjB8MzI1NTY2OTg4NiIsInNlbmRUb0FERiI6ImJhNjIwYzNmMmVlNTc1NGNmYWIzY2ZhZDE0MTc1NzNjfDMyNTU2Njk4ODYiLCJPS0J1dHRvbkNsYXNzIjoicmV0dXJuUG9wdXBfc3VibWl0IiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOnRydWUsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6bnVsbCwiYm9keSI6bnVsbH19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6Im5ldyIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJwcmlvcml0eSI6MSwiZGVsYXkiOjAsImNvdW50ZG93biI6MTc3NzQzNTIwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF85NzJjZjk0MTQxMTQ2NzQ0Nzg4ZTIyMTJhNjIxYjk3MDt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX3JldHVyblBvcHVwQ29udGFpbmVyJyk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9lYzUyNGE3ZTg3MzZlOWE1NTc5ZGNkZTA1OWY0YmE2Yzt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNleGl0UG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oKXtyZXR1cm4hKCgib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8d2luZG93LkRvY3VtZW50VG91Y2gmJmRvY3VtZW50IGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaCkpO30sIm9uQmVmb3JlSW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoicmViYXRlU2hvd24iLCJjb29raWVDcmVhdGUiOiJvbk9wZW4iLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiRXhpdC1Qb3B1cCIsImxhYmVsc2VjdGlvbiI6Ik9jY2FzaW9uIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IlNwZWNzUmVxdWVzdCIsIm9mZmVydHlwZSI6bnVsbCwibmFtZSI6bnVsbCwic2VuZFRvIjoiIiwic2VuZFRvQURGIjoiYmE2MjBjM2YyZWU1NzU0Y2ZhYjNjZmFkMTQxNzU3M2N8MzI1NTY2OTg4NiIsIk9LQnV0dG9uQ2xhc3MiOiJzdWJtaXQtYnV0dG9uIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsImNvdW50ZG93biI6MTc3NzQzNTIwMCwiY29uZmlybUZvcm0iOlt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiRXhpdC1Qb3B1cCIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6Ik9jY2FzaW9uIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiIsImNsYXNzIjoibW9kZWxlbWFpbCJ9LHsibmFtZSI6InllYXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiMjA2ODI4NDEzMDk2NzgwIn0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJoeXVuZGFpcmVwZW50aWdueS5jb20ifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYzc2NWVmZGYxNDJkNTIwZTFmYzFlMTk0OGUxYWM1MmM7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oc2VsZil7bW90b2luc2lnaHRTaG9wT3BlbigpO30sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXttb3RvaW5zaWdodFNob3BJbml0KCk7fSwiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjpudWxsLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6bnVsbCwic2VuZFRvQURGIjpudWxsLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjpmYWxzZSwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzc3NDM1MjAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIyMDY4Mjg0MTMwOTY3ODAifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6Imh5dW5kYWlyZXBlbnRpZ255LmNvbSJ9LHsibmFtZSI6InJlZmVycmVyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIn0seyJuYW1lIjoiaXNleHByZXNzIiwidmFsdWUiOiIwIiwiY2xhc3MiOiJpc2V4cHJlc3MifSx7Im5hbWUiOiJpc3Byb21vIiwidmFsdWUiOiIwIn0seyJuYW1lIjoiaXNob21lcGFnZSIsInZhbHVlIjoiMCJ9LHsibmFtZSI6InRleHRDYXJTZWN0aW9uVHlwZSIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrIiJ9LHsibmFtZSI6ImZyb21BQSIsInZhbHVlIjoiIn0seyJuYW1lIjoibGFuZyIsInZhbHVlIjoiRlJFTkNIIn1dfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF83ZTllNDVhOTc5NjQ3NTFmNjA1NmVkZDBhN2MxOGZjNjt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoeyJvbkJlZm9yZU9wZW4iOmZ1bmN0aW9uKHNlbGYpe2lmKHNlbGYuc2V0dGluZ3MuYWxyZWFkeUluaXQpe3NlbGYuc2V0dGluZ3MuYWxyZWFkeUluaXQ9ZmFsc2U7aWYoQ29va2llcy5nZXQoJ3BvcHVwRm9ybUZpbGxlZCcpPT0iMSIpeyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLmhpZGUoKTt9CnJldHVybiB0cnVlO30KaWYoIXNlbGYuc2V0dGluZ3Muc3R5bGVpZClyZXR1cm4gZmFsc2U7c2VsZi5zZXR0aW5ncy5pbml0aWFsU3R5bGVpZD1zZWxmLnNldHRpbmdzLnN0eWxlaWQ7aWYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmxlbmd0aCl7c2VsZi5zZXR0aW5ncy5wYXltZW50T3B0aW9ucz1wYXJzZUludCgkKCIjb3B0aW9uUHJpY2VUb3RhbCIpLmh0bWwoKS5yZXBsYWNlKCIsIiwiIikpO30KZ2FUcmFjaygnYy5fdHJhY2tFdmVudCcsJ0NsaXF1ZXMgQ2FsY3VsYXRyaWNlJywnTmV1ZicsJ09wZW4nLDEpO3BheW1lbnRDYWxjdWxhdG9yUG9wdXBJbml0KCk7fSwib25DbG9zZSI6ZnVuY3Rpb24oc2VsZil7aWYoIXNlbGYuc2V0dGluZ3MuYWxyZWFkeUluaXQpe2dhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCdDbGlxdWVzIENhbGN1bGF0cmljZScsJ05ldWYnLCdDbG9zZScsMSk7fQppZigoKCQoJyN0YXJnZXRQYWdlJykudmFsKCl8fGZhbHNlKT09J05FV0NBUlMnfHwoJCgnI3RhcmdldFBhZ2UnKS52YWwoKXx8ZmFsc2UpPT0nVVNFRENBUlMnKSYmd2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPT10cnVlKXtsb2NhdGlvbi5yZWxvYWQoKTt9fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe3BvcHVwQ2FsY3VsYXRvckluaXRpYWxpemVkKCk7fSwiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjpudWxsLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6bnVsbCwic2VuZFRvQURGIjpudWxsLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3Nzc0MzUyMDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxzZWN0aW9uIn0seyJuYW1lIjoiYnJhbmQiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIiwiY2xhc3MiOiJicmFuZGVtYWlsIn0seyJuYW1lIjoibW9kZWwiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIiwiY2xhc3MiOiJ5ZWFyZW1haWwifSx7Im5hbWUiOiJnb29nbGVpZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZ29vZ2xlaWRkMmNtZWRpYSIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2NvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nYWN0aW9uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdkb21haW5pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsQWR2IiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxQaXgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImZhY2Vib29rQ29uSWQiLCJ2YWx1ZSI6IjIwNjgyODQxMzA5Njc4MCJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoiaHl1bmRhaXJlcGVudGlnbnkuY29tIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO307Ci8qKiAvanMvc2tlbGV0b24uY29udHJvbGxlci5qcyAqKi8KdmFyIF9fX2QyY19za2VsZXRvbmNvbnRyb2xsZXJqc19jX29uPSIyMDI2LTA0LTAxIDExOjMwOjAyIjsndXNlIHN0cmljdCc7dHJ5e2pRdWVyeShmdW5jdGlvbihjKXtsZXQgaDtjb25zb2xlLmxvZygiR1NQRUVELUFGVEVSLUpRVUVSWToiKyhEYXRlLm5vdygpLShudWxsIT0oaD13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pP2g6MCkpLzFFMyk7d2luZG93LmdSZXNvdXJjZUxvYWRlckFuZEpxdWVyeUlzUmVhZHk9ITA7c2V0VGltZW91dCgoKT0+e3ZhciBiPWMoIiNlbWJlZC1jb250YWluZXIteW91dHViZS1ob21lcGFnZS1ieWlkIik7Y29uc29sZS5sb2coIlNLRUxFVE9OfCNlbWJlZC1jb250YWluZXIteW91dHViZS1ob21lcGFnZS1ieWlkIik7aWYoYi5sZW5ndGgpe3ZhciBhPWIuYXR0cigiZGF0YS1pZnJhbWUtYXR0cmlidXRlcyIpOyJ1bmRlZmluZWQiIT09YSYmdm9pZCAwIT09YSYmKGE9SlNPTi5wYXJzZShhdG9iKGEpKSxjKCI8aWZyYW1lLz4iLGEpLmFwcGVuZFRvKGIpKX19LDdFMyk7c2V0VGltZW91dCgoKT0+e3ZhciBiPWMoIiNlbWJlZC1jb250YWluZXItbWFwcy1ob21lcGFnZS1ieWlkIik7CmNvbnNvbGUubG9nKCJTS0VMRVRPTnwjZW1iZWQtY29udGFpbmVyLW1hcHMtaG9tZXBhZ2UtYnlpZCIpO2lmKGIubGVuZ3RoKXt2YXIgYT1iLmF0dHIoImRhdGEtaWZyYW1lLWF0dHJpYnV0ZXMiKTsidW5kZWZpbmVkIiE9PWEmJnZvaWQgMCE9PWEmJihhPUpTT04ucGFyc2UoYXRvYihhKSksaW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbihmKXthLnNyYz1hLnNyYy5yZXBsYWNlKCJfX0tFWV9fIixmKTtjKCI8aWZyYW1lLz4iLGEpLmFwcGVuZFRvKGIpfSkpfX0sN0UzKTt3aW5kb3cuZGVsYXllZENzcz1mdW5jdGlvbihiKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2EudHlwZT0idGV4dC9jc3MiO2Euc3R5bGVTaGVldD9hLnN0eWxlU2hlZXQuY3NzVGV4dD1iOmEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYikpO2NvbnNvbGUubG9nKCJTS0VMRVRPTnxERUxBWUVETE9BRENTU3wiK2IpO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYSl9Owp3aW5kb3cuZGVsYXllZENzcygiLmhpZGVPblByZUxvYWR7dmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7fSIpO3NldFRpbWVvdXQoKCk9Pntjb25zb2xlLmxvZygiU0tFTEVUT058c2V0dGluZyBtZW51IG11dGF0aW9uIG9ic2VydmVyIik7dHJ5e2NvbnN0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIik7aWYobnVsbCE9PWEpe2NvbnN0IGY9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGQsayk9Pntmb3IoY29uc3QgZSBvZiBkKSJhdHRyaWJ1dGVzIj09PWUudHlwZSYmImNsYXNzIj09PWUuYXR0cmlidXRlTmFtZSYmZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ1cF9tZW51IikmJihkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIpLGUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKT9kLmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKXx8CmQuY2xhc3NMaXN0LmFkZCgiZml4ZWQiKTpkLmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKSYmZC5jbGFzc0xpc3QucmVtb3ZlKCJmaXhlZCIpKX0pLGc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yID4gLnVwX21lbnUiKTtnJiYoZi5vYnNlcnZlKGcse2F0dHJpYnV0ZXM6ITAsY2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KSxnLmNsYXNzTGlzdC5jb250YWlucygiZml4ZWQiKSYmYS5jbGFzc0xpc3QuYWRkKCJmaXhlZCIpKX19Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiU0tFTEVUT058LnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIixhKX1jb25zb2xlLmxvZygiU0tFTEVUT058aXMtbG9hZGVkLW5vdyIpO2NvbnN0IGI9YygiLnNrZWxldG9uIik7Yi5hZGRDbGFzcygiaXMtbG9hZGVkLW5vdyIpO3NldFRpbWVvdXQoKCk9Pntjb25zb2xlLmxvZygiU0tFTEVUT058cmVtb3Zpbmcgc2tlbGV0b25zIGZpcnN0IGltZyBiYWNrZ3JvdW5kIik7CmIuZmluZCgiaW1nLmlzLXNrZWxldG9uLWJnLWltZyIpLnJlbW92ZSgpfSwzPHdpbmRvdy5nU3BlZWRDb25uPzFFNDo2RTMpfSwyMDApfSl9Y2F0Y2goYyl7fTs=","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudCI+CgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiIHZhbHVlPSJGUkVOQ0giLz4KCgkJPGlucHV0CgkJCXR5cGU9ImhpZGRlbiIKCQkJaWQ9ImQyY0RhdGFTdG9yZSIKCQkJZGF0YS1iYXNldXJsPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbSIKCQkJZGF0YS1ib2R5Y2xhc3M9IiBoZWFkaW5nQ2Fwc09uIEZSRU5DSCBpc1BhZ2VGdWxsV2lkdGhFbmFibGVkIHRlbXBsYXRlMSBpc0Z1bGxXaWR0aFBhZ2UgTmV3U3JwMiIKCQkJZGF0YS1pc21vYmlsZT0iMCIKCQk+CgoJCTxzY3JpcHQgc3JjPSJodHRwczovL2FpYXBwcy5kMmNtZWRpYS5jYS9ldmJvb3N0L2V2LWNvbXBhcmF0b3IuaWlmZS5qcyIgYXN5bmM+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgIHsiQGNvbnRleHQiOiJodHRwczpcL1wvc2NoZW1hLm9yZyIsIkB0eXBlIjoiV2ViU2l0ZSIsIm5hbWUiOiJIeXVuZGFpIFJlcGVudGlnbnkiLCJ1cmwiOiJodHRwczpcL1wvd3d3Lmh5dW5kYWlyZXBlbnRpZ255LmNvbVwvIiwicG90ZW50aWFsQWN0aW9uIjp7IkB0eXBlIjoiU2VhcmNoQWN0aW9uIiwidGFyZ2V0IjoiaHR0cHM6XC9cL3d3dy5oeXVuZGFpcmVwZW50aWdueS5jb21cL29jY2FzaW9uXC9yZWNoZXJjaGUuaHRtbD9xPXtzZWFyY2hfdGVybV9zdHJpbmd9IiwicXVlcnktaW5wdXQiOiJyZXF1aXJlZCBuYW1lPXNlYXJjaF90ZXJtX3N0cmluZyJ9fQo8L3NjcmlwdD48c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOiJBdXRvbW90aXZlQnVzaW5lc3MiLCJ1cmwiOiJodHRwczpcL1wvd3d3Lmh5dW5kYWlyZXBlbnRpZ255LmNvbSIsIm5hbWUiOiJIeXVuZGFpIFJlcGVudGlnbnkiLCJpbWFnZSI6Imh0dHBzOlwvXC93d3cuaHl1bmRhaXJlcGVudGlnbnkuY29tXC9pbWFnZXNcL0xvZ29Nb2JpbGVcL2h5dW5kYWktbW9iaWxlLWxvZ28tcmdiLWZyLnBuZyIsImxvZ28iOiJodHRwczpcL1wvd3d3Lmh5dW5kYWlyZXBlbnRpZ255LmNvbVwvaW1hZ2VzXC9Mb2dvTW9iaWxlXC9oeXVuZGFpLW1vYmlsZS1sb2dvLXJnYi1mci5wbmciLCJzYW1lQXMiOlsiaHR0cHM6XC9cL3d3dy5mYWNlYm9vay5jb21cL0h5dW5kYWlSZXBlbnRpZ255XC8iLCJodHRwczpcL1wvd3d3LnlvdXR1YmUuY29tXC9AaHl1bmRhaXJlcGVudGlnbnk3OTg2IiwiaHR0cHM6XC9cL3d3dy5pbnN0YWdyYW0uY29tXC9oeXVuZGFpcmVwZW50aWdueVwvIl0sImdlbyI6eyJAdHlwZSI6Ikdlb0NpcmNsZSIsImdlb01pZHBvaW50Ijp7IkB0eXBlIjoiR2VvQ29vcmRpbmF0ZXMiLCJsYXRpdHVkZSI6IjQ1Ljc2NDExMiIsImxvbmdpdHVkZSI6Ii03My40MjE3ODkifSwiZ2VvUmFkaXVzIjoxMDAwMDB9LCJhZGRyZXNzIjp7IkB0eXBlIjoiUG9zdGFsQWRkcmVzcyIsInN0cmVldEFkZHJlc3MiOiI4NDUsIHJ1ZSBOb3RyZS1EYW1lIiwiYWRkcmVzc0xvY2FsaXR5IjoiUmVwZW50aWdueSIsImFkZHJlc3NSZWdpb24iOiJRdWViZWMiLCJwb3N0YWxDb2RlIjoiSjVZIDFDNCIsImFkZHJlc3NDb3VudHJ5IjoiQ0EifSwidGVsZXBob25lIjoiNDUwLTU4Mi0zMTgyIiwicHJpY2VSYW5nZSI6IjI0MTQ5JC04MTE0OCQiLCJvcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIjpbeyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJNb25kYXkiLCJvcGVucyI6IjA5OjAwIiwiY2xvc2VzIjoiMjA6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IlR1ZXNkYXkiLCJvcGVucyI6IjA5OjAwIiwiY2xvc2VzIjoiMjA6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IldlZG5lc2RheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIyMDowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiVGh1cnNkYXkiLCJvcGVucyI6IjA5OjAwIiwiY2xvc2VzIjoiMjA6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IkZyaWRheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIxODowMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiU2F0dXJkYXkiLCJvcGVucyI6IjEwOjAwIiwiY2xvc2VzIjoiMTY6MDAifV0sImhhc01hcCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmNvbVwvbWFwc1wvcGxhY2VcLzg0NSwgcnVlIE5vdHJlLURhbWUgUmVwZW50aWdueSBRdWViZWMgSjVZIDFDNCIsImNvbnRhY3RQb2ludCI6eyJAdHlwZSI6IkNvbnRhY3RQb2ludCIsInRlbGVwaG9uZSI6IjQ1MC01ODItMzE4MiIsImNvbnRhY3RUeXBlIjpbIlNhbGVzIiwiU2VydmljZSIsIlBhcnRzIl0sImF2YWlsYWJsZUxhbmd1YWdlIjpbIkVuZ2xpc2giLCJGcmVuY2giXX0sImFyZWFTZXJ2ZWQiOiJRdWViZWMiLCJtYWtlc09mZmVyIjpbeyJAdHlwZSI6Ik9mZmVyIiwiaXRlbU9mZmVyZWQiOnsiQHR5cGUiOiJTZXJ2aWNlIiwibmFtZSI6IlZlbnRlcyBkZSB2XHUwMGU5aGljdWxlcyBIeXVuZGFpIG5ldWZzIGV0IGQnb2NjYXNpb24ifX0seyJAdHlwZSI6Ik9mZmVyIiwiaXRlbU9mZmVyZWQiOnsiQHR5cGUiOiJTZXJ2aWNlIiwibmFtZSI6IkZpbmFuY2VtZW50IGRlIHZcdTAwZTloaWN1bGVzIn19LHsiQHR5cGUiOiJPZmZlciIsIml0ZW1PZmZlcmVkIjp7IkB0eXBlIjoiU2VydmljZSIsIm5hbWUiOiJSXHUwMGU5cGFyYXRpb24gZXQgbWFpbnRlbmFuY2UgZGUgdlx1MDBlOWhpY3VsZXMifX0seyJAdHlwZSI6Ik9mZmVyIiwiaXRlbU9mZmVyZWQiOnsiQHR5cGUiOiJTZXJ2aWNlIiwibmFtZSI6IlZlbnRlcyBkZSBwaVx1MDBlOGNlcyBldCBhY2Nlc3NvaXJlcyJ9fV19Cjwvc2NyaXB0PjxsaW5rIHJlbD0iaWNvbiIgaHJlZj0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vaW1hZ2VzL0Zhdmljb24vaHl1bmRhaV9mYXZpY29uLnN2ZyI+PGxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIiBocmVmPSJodHRwczovL3d3dy5oeXVuZGFpcmVwZW50aWdueS5jb20vZW1iZWRlci9wcm9jZXNzL2ZyP25mcj0xIj48bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZj0iaHR0cHM6Ly93d3cuaHl1bmRhaXJlcGVudGlnbnkuY29tL2VuZy8iIGhyZWZsYW5nPSJlbi1jYSI+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iaW1hZ2UiIGhyZWY9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tL2ltYWdlcy9Mb2dvL2h5dW5kYWktbG9nby1ob3Jpem9udGFsLWJsdWUtcmdiLWZyLnN2ZyI+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vY3NzX3IvcmVzb3VyY2UubG9hZGVyLmZyLmNzcz92PTMmYW1wO2Nzc3JwbD0mYW1wO3dzd2lkdGg9MCZhbXA7ZGV2aWNlPWRlc2t0b3AmYW1wO3VhPVEwTkNiM1F2TWk0d0lDaG9kSFJ3Y3pvdkwyTnZiVzF2Ym1OeVlYZHNMbTl5Wnk5bVlYRXZLUT09Ij48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vaW1hZ2VzY2RuLmQyY21lZGlhLmNhIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy5oeXVuZGFpcmVwZW50aWdueS5jb20vZW1iZWRlci9wcm9jZXNzL2ZyIiBkYXRhLWNhbm9uaWNhbC1oZWFkZXItd2lkZ2V0PSIxIj48c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9zY3JpcHR0ZW1wbGF0ZXMvb3RTREtTdHViLmpzIiBkYXRhLWRvY3VtZW50LWxhbmd1YWdlPSJ0cnVlIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9IlVURi04IiBkYXRhLWRvbWFpbi1zY3JpcHQ9ImFlZDRhNTQ3LTdlOWItNDg4Yi05ZWVlLTQwMTY2MzNjZDY4OCI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9jZG4uY29va2llbGF3Lm9yZy9jb25zZW50L2FlZDRhNTQ3LTdlOWItNDg4Yi05ZWVlLTQwMTY2MzNjZDY4OC9PdEF1dG9CbG9jay5qcyI+PC9zY3JpcHQ+PGRpdiBpZD0iYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiBkYXRhLWFuYWx5dGljcz0iZ29vZ2xlX2FuYWx5dGljc180Ij4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZUNhdGVnb3J5IiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibWFrZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZpbiIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRyaW0iIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwcmljZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImV4dGNvbG9yIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0ZV9saXN0aW5nIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZDJhc2NfaXNDZXJ0aWZpZWQiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlU3RhdHVzIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyQ29kZSIgdmFsdWU9IjMxMDI2Ij4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZVR5cGUiIHZhbHVlPSJTaG93cm9vbSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlcl9uYW1lIiB2YWx1ZT0iSHl1bmRhaSBSZXBlbnRpZ255Ij4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX2FkZHJlc3MiIHZhbHVlPSI4NDUsIHJ1ZSBOb3RyZS1EYW1lLCBSZXBlbnRpZ255LCBMYW5hdWRpw6hyZSI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlcl9wb3N0YWwiIHZhbHVlPSJKNVkgMUM0Ij4KCQk8L2Rpdj4KCQk8IS0tIE9POjo4NjQyNzI4ZmZiN2Q5MjFlYzU3NWM5ODdmODAxNmMyMCAtLT4KPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDItLT4KCjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+CjwhLS0gR2xvYmFsIHNpdGUgdGFnIChndGFnLmpzKSAtIEdvb2dsZSBBbmFseXRpY3MgLS0+Cgo8IS0tU1RBUlRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+CjxzY3JpcHQgYXN5bmMgc3JjPSJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPUctWDRFWE5XWVhLTCIgdHlwZT0idGV4dC9wbGFpbiIgY2xhc3M9Im9wdGFub24tY2F0ZWdvcnktQzAwMDEiPjwvc2NyaXB0Pgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKPCEtLSAjI1ZNSlMyIyMgLS0+PCEtLSBHTyBJRCAtLT4KPCEtLSBCSU5HIFNDUklQVCAtLT4KPCEtLSBPTzo6ZjczZmE2YWJiZmI0YmFiM2Y0OWRhYWZiMzg5MWUyN2YgLS0+Cgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIGRhdGEtcmw9IjEiPgovKiogL2Nzcy9yb290LmNzcyAqKi8KOnJvb3R7IC0tcmF0aW86MS4xNTsgLS1zMDowOyAtLXMtOTpjYWxjKHZhcigtLXMtOCkgLyB2YXIoLS1yYXRpbykpOyAtLXMtODpjYWxjKHZhcigtLXMtNykgLyB2YXIoLS1yYXRpbykpOyAtLXMtNzpjYWxjKHZhcigtLXMtNikgLyB2YXIoLS1yYXRpbykpOyAtLXMtNjpjYWxjKHZhcigtLXMtNSkgLyB2YXIoLS1yYXRpbykpOyAtLXMtNTpjYWxjKHZhcigtLXMtNCkgLyB2YXIoLS1yYXRpbykpOyAtLXMtNDpjYWxjKHZhcigtLXMtMykgLyB2YXIoLS1yYXRpbykpOyAtLXMtMzpjYWxjKHZhcigtLXMtMikgLyB2YXIoLS1yYXRpbykpOyAtLXMtMjpjYWxjKHZhcigtLXMtMSkgLyB2YXIoLS1yYXRpbykpOyAtLXMtMTpjYWxjKHZhcigtLXMpIC8gdmFyKC0tcmF0aW8pKTsgLS1zOjAuNXJlbTsgLS1zMTpjYWxjKHZhcigtLXMpICogdmFyKC0tcmF0aW8pKTsgLS1zMjpjYWxjKHZhcigtLXMxKSAqIHZhcigtLXJhdGlvKSk7IC0tczM6Y2FsYyh2YXIoLS1zMikgKiB2YXIoLS1yYXRpbykpOyAtLXM0OmNhbGModmFyKC0tczMpICogdmFyKC0tcmF0aW8pKTsgLS1zNTpjYWxjKHZhcigtLXM0KSAqIHZhcigtLXJhdGlvKSk7IC0tczY6Y2FsYyh2YXIoLS1zNSkgKiB2YXIoLS1yYXRpbykpOyAtLXM3OmNhbGModmFyKC0tczYpICogdmFyKC0tcmF0aW8pKTsgLS1zODpjYWxjKHZhcigtLXM3KSAqIHZhcigtLXJhdGlvKSk7IC0tczk6Y2FsYyh2YXIoLS1zOCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzLWJhc2U6MC44NzVyZW07IC0tZnM6dmFyKC0tZnMtYmFzZSk7IC0tZnMtOTpjYWxjKHZhcigtLWZzLTgpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy04IDpjYWxjKHZhcigtLWZzLTcpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy03IDpjYWxjKHZhcigtLWZzLTYpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy02IDpjYWxjKHZhcigtLWZzLTUpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy01IDpjYWxjKHZhcigtLWZzLTQpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy00IDpjYWxjKHZhcigtLWZzLTMpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0zIDpjYWxjKHZhcigtLWZzLTIpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0yIDpjYWxjKHZhcigtLWZzLTEpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0xIDpjYWxjKHZhcigtLWZzMCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzMCA6dmFyKC0tZnMtYmFzZSwgMC44NzVyZW0pOyAtLWZzMSA6Y2FsYyh2YXIoLS1mczApICogdmFyKC0tcmF0aW8pKTsgLS1mczIgOmNhbGModmFyKC0tZnMxKSAqIHZhcigtLXJhdGlvKSk7IC0tZnMzIDpjYWxjKHZhcigtLWZzMikgKiB2YXIoLS1yYXRpbykpOyAtLWZzNCA6Y2FsYyh2YXIoLS1mczMpICogdmFyKC0tcmF0aW8pKTsgLS1mczUgOmNhbGModmFyKC0tZnM0KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM2IDpjYWxjKHZhcigtLWZzNSkgKiB2YXIoLS1yYXRpbykpOyAtLWZzNyA6Y2FsYyh2YXIoLS1mczYpICogdmFyKC0tcmF0aW8pKTsgLS1mczggOmNhbGModmFyKC0tZnM3KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM5IDpjYWxjKHZhcigtLWZzOCkgKiB2YXIoLS1yYXRpbykpOyAtLWRlZmF1bHQtYmxhY2s6IzAwMDAwMDsgLS10YWItY29sb3Itc3BlY2lhbGNhc2U6I2U0ZGNkMzsgLS10YWItY29sb3I6I2U0ZGNkMzsgLS10YWItdGV4dC1jb2xvcjojMDAwMDAwOyAtLXRhYi1jb2xvci1tb2I6IzAwMmM1ZjsgLS10YWItdGV4dC1jb2xvci1tb2I6I2ZmZmZmZjsgLS10YWItY29sb3ItbW9iLWV4OiNmZmZmZmY7IC0tdGFiLXRleHQtY29sb3ItbW9iLWV4OiMwMDAwMDA7IC0tbWVudS1jb2xvci1ib3JkZXI6OyAtLW1lbnUtY29sb3ItbW9iOiNmZmZmZmY7IC0tbWVudS10ZXh0LWNvbG9yLW1vYjojMDAyYzVmOyAtLW1lbnUtY29sb3ItbW9iLWV4OiNmZmZmZmY7IC0tbWVudS10ZXh0LWNvbG9yLW1vYi1leDojMDAwMDAwOyAtLXByb21vLWNvbG9yOiMwMDJjNWY7IC0tcHJvbW8tdGV4dC1jb2xvcjojZmZmZmZmOyAtLW5ld3NycC1tb2RlbC1jb2xvcjojMDAyYzVmOyAtLWZvb3Rlci1saW5rLXRpdGxlLWNvbDojMDAwMDAwOyAtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yOiMwMDAwMDA7IC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3I6IzAwMDAwMDsgLS1mb290ZXItYmctY29sb3I6I2U0ZGNkMzsgLS1nZW5lcmFsLWJnLWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQ6I2ZmZmZmZjsgLS10b3AtcHJvbW8tYnRuLWJnOiMwMDJjNWY7IC0tcHJvbW8tYnRuLWNvbG9yOiMwMDJjNWY7IC0tcHJvbW8tYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4taG92ZXItYmctY29sb3I6IzAwN2ZhNTsgLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcjojZmZmZmZmOyAtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzOnB4OyAtLWhvbWUtYmctY29sb3I6I2ZmZmZmZjsgLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcjojMDAwMDAwOyAtLWJ1c2luZXNzLWRlc2MtYmctY29sb3I6I2ZmZmZmZjsgLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcl9tb2I6IzAwMDAwMDsgLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYjojZmZmZmZmOyAtLXVzZWQtc2xpZGVyLWJnOiNmZmZmZmY7IC0tdXNlZC1zbGlkZXItdHh0OiMwMDAwMDA7IC0tdXNlZC1zbGlkZXItcHJpY2U6IzAwMmM1ZjsgLS1uZXctc2xpZGVyLWJnOiNmZmZmZmY7IC0tbmV3LXZkcC1iZXN0cHJpY2UtYnRuLWJnLWNvbG9yOiMwMDJjNWY7IC0tbmV3LXZkcC1iZXN0cHJpY2UtYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1kZWFsZXItbmFtZS1jb2xvcjojMDAyYzVmOyAtLW5ld3MtYmctY29sb3I6I2ZmZmZmZjsgLS1uZXdzLXRleHQtY29sb3I6IzAwMDAwMDsgLS1leGl0LXBvcHVwLWJnY29sOiMwMDAwMDA7IC0tdXNlZC1vZmZlci1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLXVzZWQtb2ZmZXItYnRuLWJnLWNvbG9yOiMwMDJjNWY7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWZpbmFuY2UtYnRuLWJnLWNvbG9yOiMwMDJjNWY7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvci1uZXdpbnY6I2ZmZmZmZjsgLS1maW5hbmNlLWJ0bi1iZy1jb2xvci1uZXdpbnY6IzAwMmM1ZjsgLS1tZW51LWhvdmVyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1tZW51LWhvdmVyLWJnLWNvbG9yOiMwMDdmYTU7IC0tbWVudS1iZy1jb2xvcjpyZ2IoMjI4LDIyMCwyMTEpOyAtLW1haW4tbWVudS1iZy1jb2xvcjpyZ2IoMjI4LDIyMCwyMTEpOyAtLWRlYWxlci1hZGRyZXNzLWNvbG9yOiMwMDJjNWY7IC0tZGVhbGVyLWFkZHJlc3MtZm9udC1zaXplOjE1OyAtLXdoaXRlOiNmZmY7IC0tbGlnaHQ6I2Y2ZjZmNjsgLS1saWdodC1ncmF5OiNlZmVmZWY7IC0tbWlkLWdyYXk6I2RkZDsgLS1ncmF5OiM5OTk7IC0tY250ci1ncmF5OiM3Njc2NzY7IC0tZGFyay1ncmF5OiM2NjY7IC0tYmxhY2stZ3JheTojMzMzOyAtLWJsYWNrOiMwMDA7IC0tYm9yZGVyLXRoaW46MXB4OyAtLWJvcmRlci10aGljazoycHg7IC0tdHh0LXVwcGVyOm5vbmU7IC0tZm9udC1tZW51Okh5dW5kYWlTYW5zSGVhZDsgLS1mb250LW1lbnUtbW9iOkh5dW5kYWlTYW5zSGVhZDsgLS1mb250LW1lbnUtd2VpZ2h0OjQwMDsgLS1mb250LWgxOkh5dW5kYWlTYW5zSGVhZDsgLS1mb250LWgxLW1vYjpIeXVuZGFpU2Fuc0hlYWQ7IC0tZm9udC1oMS13ZWlnaHQ6NDAwOyAtLWZvbnQtaDI6SHl1bmRhaVNhbnNIZWFkOyAtLWZvbnQtaDItbW9iOkh5dW5kYWlTYW5zSGVhZDsgLS1mb250LWgyLXdlaWdodDo0MDA7IC0tZm9udC10ZXh0Okh5dW5kYWlTYW5zSGVhZDsgLS1mb250LXRleHQtbW9iOkh5dW5kYWlTYW5zSGVhZDsgLS1mb250LXRleHQtd2VpZ2h0OjQwMDsgLS1mb250LWJ1dHRvbnM6SHl1bmRhaVNhbnNIZWFkOyAtLWZvbnQtYnV0dG9ucy1tb2I6SHl1bmRhaVNhbnNIZWFkOyAtLWZvbnQtYnV0dG9ucy13ZWlnaHQ6NDAwOyAtLWNvcm5lci1yaWJib24tYmctY29sb3I6IzAwN2ZhNTsgLS1jb3JuZXItcmliYm9uLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLWJhbm5lci1zZWFyY2gtYmFyLXZpZGVvLW9wYWNpdHk6MzA7IC0taG9tZXBhZ2Utc29jaWFsLWJnLWNvbG9yOiNmZmZmZmY7IC0taG9tZXBhZ2Utc29jaWFsLXRleHQtY29sb3I6IzAwMDAwMDsgLS1ob21lcGFnZS1zb2NpYWwtbG9nby1jb2xvcjojMTg3N2YyOyAtLXByb21vdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IC0tcHJvbW90aW9uLXRleHQtY29sb3I6IzAwMDAwMDsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2JnOiNmNmYzZjI7IC0tdW5kZXJiYW5uZXJfc2VhcmNoX2Jhcl9jb2xvcjojMDAyYzVmOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYnRuX2JnOiMwMDJjNWY7IC0tdW5kZXJiYW5uZXJfc2VhcmNoX2Jhcl9idG5fY29sb3I6I2ZmZmZmZjsgLS1uZXd2ZHAtYmVzdHByaWNlLXRleHQtY29sb3ItcHJpY2U6IzAwMmM1ZjsgLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0OiM5MjkyOTI7IC0tYWRtaW4tZ2VuZXJhbC1oZWFkZXItYmctY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcjojZmZmZmZmOyAtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS1iZy1jb2xvcjojMDA3ZmE1OyAtLXRyYWRlaW5iYXItYnRuLWJnOiMwMDJjNWY7IC0tdHJhZGVpbmJhci1idG4tY29sb3I6I2ZmZmZmZjsgLS1kZWZhdWx0LWJsYWNrLXRleHQ6IzAwMDAwMDsgLS1wcm9tby1idG4tYmctY29sb3I6IzAwMmM1ZjsgLS10cmFkZWluYmFyLWJnOiNmNmYzZjI7IC0tdHJhZGVpbmJhci1jb2xvcjojMDAyYzVmOyAtLWxhbmd1YWdlLWJ0bi1hY3RpdmUtYmctY29sb3I6IzAwN2ZhNTsgLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnOiMwMDJjNWY7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvcjojZmZmZmZmOyAtLWFkbWluLWdlbmVyYWwtYWxlcnQtYmFyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS10b3AtcHJvbW8tYnRuLXR4dC1jb2xvcjpyZ2IoMCwwLDApOyAtLXRvcC1wcm9tby1idG4tYmctY29sb3I6cmdiKDIyOCwyMjAsMjExKTsgLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3I6IzAwMDAwMDsgLS1kaWdpdGFsLXJldGFpbGluZy1kcmF3ZXItd2lkdGg6JTsgfSAqIHsgYm9yZGVyLWNvbG9yOmluaGVyaXQ7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXdpZHRoOjA7IGZvbnQtZmFtaWx5OmluaGVyaXQ7IGxpbmUtaGVpZ2h0OjEuMmVtOyB9IG9sLCB1bCwgbWVudSB7IGxpc3Qtc3R5bGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSBhIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH0gaDEsaDIsaDMsaDQsaDUsaDYsIHAgeyBtYXJnaW46MDsgfSBoMSxoMixoMyxoNCxoNSxoNnsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OmluaGVyaXQ7IH0gaW1nIHsgbWF4LXdpZHRoOjEwMCU7IH0gdGFibGUgeyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gdGV4dGFyZWEgeyB3aGl0ZS1zcGFjZTpyZXZlcnQ7IH0gOndoZXJlKFtoaWRkZW5dKXsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gOndoZXJlKFtjb250ZW50ZWRpdGFibGVdKXsgLW1vei11c2VyLW1vZGlmeTpyZWFkLXdyaXRlOyAtd2Via2l0LXVzZXItbW9kaWZ5OnJlYWQtd3JpdGU7IG92ZXJmbG93LXdyYXA6YnJlYWstd29yZDsgbGluZS1icmVhazphZnRlci13aGl0ZS1zcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOmFmdGVyLXdoaXRlLXNwYWNlOyB9IDp3aGVyZShbZHJhZ2dhYmxlPSJ0cnVlIl0pIHsgLXdlYmtpdC11c2VyLWRyYWc6ZWxlbWVudDsgfSAjQWZ0ZXJDYXJvdXNlbCA+IC5jb250YWluZXIsICNob21lcGFnZS1jb250ZW50ID4gLmNvbnRhaW5lciwgI2hvbWVfQWZ0ZXJBY3Rpb25Cb3ggPiAuY29udGFpbmVyLCAjaG9tZV9BZnRlckRpc3BsYXlWZWhpY2xlID4gLmNvbnRhaW5lciB7IG1heC13aWR0aDoxMjAwcHg7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyB9ICNBZnRlckNhcm91c2VsID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyQWN0aW9uQm94ID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyRGlzcGxheVZlaGljbGUgPiAuY29udGFpbmVyOmhhcyguQWZ0ZXJDYXJvdXNlbEZ3KSB7IG1heC13aWR0aDpub25lOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyB9IGJvZHkuaGFzLWQyY2JvdCAjQWZ0ZXJDYXJvdXNlbCAuY29udGFpbmVyLCBib2R5Lmhhcy1kMmNib3QgI2hvbWVwYWdlLWNvbnRlbnQgLmNvbnRhaW5lciwgYm9keS5oYXMtZDJjYm90ICNob21lX0FmdGVyQWN0aW9uQm94IC5jb250YWluZXIsIGJvZHkuaGFzLWQyY2JvdCAjaG9tZV9BZnRlckRpc3BsYXlWZWhpY2xlIC5jb250YWluZXIgeyBtYXgtd2lkdGg6bm9uZSAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OjAgIWltcG9ydGFudDsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgLmNvbnRhaW5lci1mbHVpZHsgb3ZlcmZsb3cteDpoaWRkZW47IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jb250YWluZXItZmx1aWQgKiB7IGxpbmUtaGVpZ2h0OmluaXRpYWw7IH0gLmNrZWRpdG9yV3JhcHBlcnsgb3ZlcmZsb3cteDpoaWRkZW47IHNjcm9sbGJhci13aWR0aDpub25lOyB9ICogeyBmb250LXZhcmlhbnQtbnVtZXJpYzpsaW5pbmctbnVtczsgfQovKiogL2Nzcy92Mi9uYXYuY3NzICoqLwpoZWFkZXIubW9iaWxlLWhlYWRlcnsgLS10eHQtY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgcG9zaXRpb246c3RpY2t5OyB0b3A6MDsgd2lkdGg6MTAwdnc7IGhlaWdodDozLjJyZW07IGJveC1zaGFkb3c6cmdiYSgwLCAwLCAwLCAwLjUpIDAgMCA1cHggM3B4OyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tdHh0LWNvbG9yKTsgei1pbmRleDoxMDAwOyB9IGRpdi5tb2JpbGUtaGVhZGVyLXNwYWNlcnsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6My4ycmVtOyBkaXNwbGF5OmJsb2NrOyB9IGhlYWRlci5tb2JpbGUtaGVhZGVyID4gKiArICogeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgaGVpZ2h0OjEwMCU7IH0gaGVhZGVyLm1vYmlsZS1oZWFkZXIudGFsbCA+ICogKyAqeyBib3JkZXItbGVmdDoxcHggc29saWQgI2RkZDsgZmxleDoxIDEgYXV0bzsgfSBoZWFkZXIgLmxvZ28tYWN0aW9uIH4gKiB7IG1pbi13aWR0aDoyLjVyZW07IH0gLmhlYWRlci1kZWFsZXItbmFtZSB7IGNvbG9yOmluaGVyaXQ7IGZvbnQtc2l6ZTp2YXIoLS1mcy0xKTsgLS1mczp2YXIoLS1mcy0xKTsgfSBoZWFkZXIgYXNpZGV7IC0tdHh0LWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6Mi45NXJlbTsgbGVmdDotMTlyZW07IHdpZHRoOm1pbig4MHZ3LCAxOXJlbSk7IG1pbi1oZWlnaHQ6MTAwdmg7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IHRyYW5zaXRpb246dHJhbnNmb3JtIDMwMG1zIGVhc2UtaW47IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1jb2xvci1tb2IsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3IpOyBtYXgtaGVpZ2h0OjEwMHZoOyBvdmVyZmxvdzphdXRvOyB6LWluZGV4OjEwMDsgfSBuYXZ7IC0tZnM6dmFyKC0tZnMxKTsgZm9udC1zaXplOnZhcigtLWZzKTsgfSBuYXYgLm1lbnUtaXRlbSwgbmF2IC5zdWJtZW51LWl0ZW0geyBwYWRkaW5nOnZhcigtLXMpOyB9IG5hdiAubWVudS1pdGVteyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gbmF2IC5tZW51LWl0ZW0uaW52ZXJzZS1jb2xvcnsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSBuYXYgLnN1Ym1lbnUtaXRlbXsgYm9yZGVyLWNvbG9yOnZhcigtLWdyYXkpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLWV4LCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yLW1vYi1leCk7IH0gbmF2IC5zdWJtZW51LWl0ZW0gc3ZnLmljb24geyBmaWxsOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSBuYXYgLm1lbnUtZ3JvdXAgeyBib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSBuYXYgLm1lbnUtZ3JvdXAgfiAubWVudS1ncm91cCB7IGJvcmRlci10b3Atd2lkdGg6MDsgfSBuYXYgLm1lbnVDb2xscGFzZSBzdmd7IHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTsgfSAjaG9tZW5hdiBuYXZ7IC0tdHh0LWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbXsgYmFja2dyb3VuZDp2YXIoLS10YWItY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVtLmludmVyc2UtY29sb3J7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gI2hvbWVuYXYgbmF2IC5zdWJtZW51LWl0ZW17IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgbGl7IHBhZGRpbmctdG9wOnZhcigtLXMtOCk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW17IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbS5MQU5HVUFHRXsgZGlzcGxheTpub25lOyB9IC5idXJnZXItbWVudS1jb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5idXJnZXJfdG9wIHsgdHJhbnNmb3JtLW9yaWdpbjowIDUwJTsgfSAuYnVyZ2VyX2JvdHRvbSB7IHRyYW5zZm9ybS1vcmlnaW46MCA1MCU7IH0gLmJ1cmdlci1tZW51LWJ1dHRvbiA+IHNwYW4geyB3aWR0aDoxLjZyZW07IGhlaWdodDowLjI1cmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IpOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuNHMgZWFzZTsgei1pbmRleDoxMDE7IH0gI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX3RvcCwgI2JtX2JvdHRvbV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl90b3B7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKDAuMXJlbSwgMCk7IH0gI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX21pZGRsZSwgI2JtX2JvdHRvbV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9taWRkbGV7IG9wYWNpdHk6MDsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSBzY2FsZSgwLjIsIDAuMik7IH0gI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiAuYnVyZ2VyX2JvdHRvbSwgI2JtX2JvdHRvbV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9ib3R0b217IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSgwLjFyZW0sIDApOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gfiBhc2lkZXsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgxOXJlbSk7IH0gbGFiZWxbZm9yPSJibV90b2dnbGUiXXsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwMjsgfSAudGhpbkxlZnQgLmhlYWRlci1kZWFsZXItbmFtZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczApOyBtYXJnaW4tbGVmdDo4cHg7IH0gLnRoaW5MZWZ0IC5sb2dvLWFjdGlvbiBhIHsgZmxleC1iYXNpczoxNSUgfSBoZWFkZXIudGhpbkxlZnQgYXNpZGUgeyBsZWZ0OnVuc2V0OyByaWdodDowOyB0cmFuc2Zvcm06c2NhbGVYKDApIHRyYW5zbGF0ZVgoMTlyZW0pOyB0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgNTAlOyB9IC50aGluTGVmdCAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIH4gYXNpZGV7IHRyYW5zZm9ybTp1bnNldDsgfQovKiogL2Nzcy9za2VsZXRvbi5jc3MgKiovCi5oaWRlT25QcmVMb2FkIHsgdmlzaWJpbGl0eTpoaWRkZW47IH0gLnJldmVhbC1tb2RhbCB7IHZpc2liaWxpdHk6aGlkZGVuOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0xMDAwcHg7IH0gLnNrZWxldG9uIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6I2VlZTsgfSAuc2tlbGV0b246OmJlZm9yZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjQ7IGNvbnRlbnQ6IiI7IGZvbnQtc2l6ZTowLjc1cmVtOyBsaW5lLWhlaWdodDowLjc1cmVtOyBjb2xvcjojODg4OyBhbmltYXRpb246c2tlbGV0b24tYW5pbSAycyBsaW5lYXIgaW5maW5pdGU7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGxldHRlci1zcGFjaW5nOjAuMjVyZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBAa2V5ZnJhbWVzIHNrZWxldG9uLWFuaW0geyAwJSB7IGNvbnRlbnQ6IiI7IH0gMjUlIHsgY29udGVudDoifCI7IH0gNTAlIHsgY29udGVudDoifHwiOyB9IDc1JSB7IGNvbnRlbnQ6Inx8fCI7IH0gfSAuc2tlbGV0b24gZGl2OmZpcnN0LWNoaWxkLCAuc2tlbGV0b24gc3BhbjpmaXJzdC1jaGlsZCB7IG9wYWNpdHk6MDsgdHJhbnNpdGlvbjpvcGFjaXR5IC4zMDBzOyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiB7IGJhY2tncm91bmQ6bm9uZTsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIuZml4ZWQgeyB3aWR0aDppbmhlcml0ICFpbXBvcnRhbnQ7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3cgeyBiYWNrZ3JvdW5kOnVuc2V0OyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IGRpdjpmaXJzdC1jaGlsZCwgLnNrZWxldG9uLmlzLWxvYWRlZC1ub3cgc3BhbjpmaXJzdC1jaGlsZCB7IG9wYWNpdHk6MTsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdzo6YmVmb3JlIHsgY29udGVudDoiIjsgZGlzcGxheTpub25lOyBhbmltYXRpb246dW5zZXQ7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkLmlzLWxvYWRlZC1ub3cgPiBkaXY6Zmlyc3QtY2hpbGQgeyBvcGFjaXR5Oi43NTsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIuZml4ZWQuaXMtbG9hZGVkLW5vdyA+IGRpdjpmaXJzdC1jaGlsZDpob3ZlciB7IG9wYWNpdHk6MTsgfQovKiogL2Nzcy9jc3MuY3NzICoqLwpodG1sLCBib2R5LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSwgZGVsLCBkZm4sIGVtLCBmb250LCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gaHRtbHsgZm9udC1zaXplOjFyZW0gOyB9IGJvZHkgeyBwYWRkaW5nOjA7IG1hcmdpbi1sZWZ0OjBweDsgbWFyZ2luLXRvcDowOyBtYXJnaW4tcmlnaHQ6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0KTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC10ZXh0LXdlaWdodCk7IGJhY2tncm91bmQ6IHRvcCBjZW50ZXIgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZW5lcmFsLWJnLWNvbG9yKTsgfSBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgYnV0dG9uIHsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0KTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC10ZXh0LXdlaWdodCk7IH0gLm5hdiBsaSBhLnRvcF9saW5rLCAudXBfbWVudSB1bC5uYXYgdWwuc3ViIGxpIGEuc3VidGl0bGUsIC5pbWdfbWVudS51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfTkVXPnVsLnN1YiBsaT51bC5zdWI+bGkuaGFzU3ViIGxpIGEsIGJvZHkgLndyYXBwZXIgLnVwX21lbnUgLm5hdnsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1tZW51KTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1tZW51LXdlaWdodCk7IH0gaDF7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgxLXdlaWdodCk7IGNsZWFyOmJvdGg7IH0gLmZuLm9yZ3sgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1oMSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDEtd2VpZ2h0KTsgfSBpbnB1dFt0eXBlPWJ1dHRvbl0sIGJ1dHRvbi5qcVRyYW5zZm9ybUJ1dHRvbiBzcGFuIHNwYW4sIC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEsIC5idXR0b25fdW5kZXIgYSwgLmJ1dHRvbl9jbXBfbGVmdCBhLCAuYnV0dG9uX2NtcF9yaWdodCBhLCAuYnV0dG9uX2NtcF9hY3QgYSwgLnB1bGxvdXRzIGEsIC5pZE5hdjEgbGkgYS50b3BfbGluazEsIC5jdGFfcHJpY2UuYWx0LCAuY3RhX2NyZWRpdC5hbHQsIC5jdGFfdGVzdERyaXZlLCAuY3RhX2V2YWwuYWx0LCAuY3RhX3NlcnZpY2UuYWx0LCAuY3RhX3BhcnRzLmFsdCwgLmN0YV90aXJlcy5hbHQsIC5jdGFfc3ZjcHJvbW8uYWx0LCAuYm94MTUgaDIgYSwgLmJveDE5IGgyIGEsIC5ib3gyNyBhLCAudmlvciwgLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLCAuYnRuLWxnIHsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1idXR0b25zKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1idXR0b25zLXdlaWdodCk7IH0gaDIsaDMsaDQsaDUsaDZ7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDIpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgyLXdlaWdodCk7IH0gc3Ryb25neyBmb250LXdlaWdodDo5MDAgIWltcG9ydGFudDsgfSAjbWFpbkRpdi53cmFwcGVyIC50b3BfYmd7IG1heC1oZWlnaHQ6MjUwcHg7IG1pbi1oZWlnaHQ6MTE1cHg7IH0gLmhlYWRlci1pbWFnZS13cmFwcGVyIGltZy5pbWFnZS1wYWRkaW5nIHsgcGFkZGluZy1ib3R0b206NXB4OyB9IC5ja2VkaXRvcldyYXBwZXIgaDIgeyBtYXJnaW4tbGVmdDowcHggIWltcG9ydGFudDsgbWFyZ2luLXJpZ2h0OjBweCAhaW1wb3J0YW50OyBtYXJnaW4tdG9wOjE1cHggIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxNXB4ICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBhIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDowcHggIWltcG9ydGFudDsgZm9udC1zaXplOjEwMCUgIWltcG9ydGFudDsgfSAuY2tlZGl0b3JXcmFwcGVyIHAgeyBmbG9hdDpub25lICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBwOmVtcHR5IHsgbWFyZ2luLWJvdHRvbToxcmVtOyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29sbGFwc2Uuc2hvdywgLnJlc3BvbnNpdmUtZWRpdG9yIC5jb2xsYXBzZS5zaG93IC5jYXJkLWJvZHkgeyB2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDsgfSBhLmRlc2NyaXB0aW9uLWF1dG8tbGluayB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgIWltcG9ydGFudDsgY29sb3I6aW5oZXJpdDsgfSAuY2xyeyBjbGVhcjpib3RoO30gLmZsZWZ0eyBmbG9hdDpsZWZ0OyB9IGlucHV0OmludmFsaWR7Ym94LXNoYWRvdzpub25lOyAtbW96LWJveC1zaGFkb3c6bm9uZTt9IC5jb25kaXRpb25zLS1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206OHB4OyB9IC5jb25kaXRpb25zLS1jb250YWluZXIgLmNvbmRpdGlvbnMgeyBmbGV4LWdyb3c6MjsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MThweDsgY29sb3I6IzAwMDAwMDsgfSAuY29uZGl0aW9uc0Zvb3RlcnsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi10b3A6MjVweDsgY29sb3I6IzAwMDAwMDsgfSAuY29uZGl0aW9ucy0tY29udGFpbmVyIGEsIC5jb25kaXRpb25zRm9vdGVyIGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5leHRlbmRlZFBob25lVHJpZ2dlciBheyBjb2xvcjppbmhlcml0OyB9IC5tYWluRGl2LXdyYXBwZXIgPiAubGFuZ3VhZ2VCYXItemVybyB7IG1hcmdpbjowOyBoZWlnaHQ6aW5oZXJpdDsgd2lkdGg6MTAwJTsgfSAuaGVhZGVyLXNlY3Rpb24gLmxhbmd1YWdlQmFyIHsgbWFyZ2luOjAgYXV0byAyLjc1cmVtOyB3aWR0aDppbmhlcml0OyB9IC5oZWFkZXItc2VjdGlvbiAubGFuZ3VhZ2VCYXIgKyAucGhvbmUgeyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgfSAubGFuZ3VhZ2VCYXIgdWwgYTpob3Zlcntmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2NjY2OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLmxhbmd1YWdlQmFyIHVsIGE6dmlzaXRlZHtwYWRkaW5nLXJpZ2h0OjM1cHg7IHdpZHRoOmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY2NjY7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHRleHQtYWxpZ246cmlnaHQ7fSAubGFuZ3VhZ2VCYXIubGFuZ3VhZ2VCYXItemVybyB7IGhlaWdodDowOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9ICNtYWluRGl2LndyYXBwZXIubm8taWNvbnMgeyBwYWRkaW5nLXRvcDowLjAxcmVtOyB9IC50b3Bfcm91eyB3aWR0aDo5NjBweDsgaGVpZ2h0OjRweDsgZmxvYXQ6bGVmdDsgfSAubG9nb3sgfSAubG9nb05vUGFkZGluZyBpbWd7IHdpZHRoOjEwMCU7fSAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uLCAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9ueyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgd2lkdGg6MjhweDsgaGVpZ2h0OjI2cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IGJvcmRlcjoxcHggc29saWQgI0I2QjdCOTsgY29sb3I6I0I2QjdCOTsgY29sb3I6IzAwN2ZhNTsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24uYWN0aXZlLCAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uOmhvdmVyeyBjb2xvcjojZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNCNkI3Qjk7IGJhY2tncm91bmQtY29sb3I6IzAwN2ZhNTsgfSAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uOm50aC1jaGlsZChldmVuKSwgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpudGgtY2hpbGQoZXZlbil7IG1hcmdpbi1sZWZ0OjJweDsgfSAubGFuZ3VhZ2VCYXIgYS5kZXNrdG9wX2xhbmdfYnV0dG9uIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0LCAubGFuZ3VhZ2VCYXIgc3Bhbi5kZXNrdG9wX2xhbmdfYnV0dG9uIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0eyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfSAubG9nb05vUGFkZGluZ3sgbWF4LXdpZHRoOjUwJTsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDotNHB4O30gLnYtY2FyZC50b3BfYmcgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgfSAudi1jYXJkLnRvcF9iZy4tbXQwIC5oZWFkZXItc2VjdGlvbjpudGgtY2hpbGQoMikgeyBtYXJnaW4tdG9wOjc0cHg7IH0gLmhlYWRlci1zZWN0aW9uIHsgZGlzcGxheTpmbGV4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmhlYWRlci1pbWFnZS13cmFwcGVyIHsgbWluLWhlaWdodDo5N3B4OyB9IC5oZWFkZXItc2VjdGlvbi5pbWFnZSB7IHdpZHRoOjI1JTsgfSAuaGVhZGVyLXNlY3Rpb24uaW1hZ2UgPiAuaGVhZGVyLWltYWdlLXdyYXBwZXIgaW1nIHsgbWF4LWhlaWdodDoyNTBweDsgfSAuaGVhZGVyLXNlY3Rpb24gPiBkaXYgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lIHsgd2lkdGg6YXV0bzsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpyaWdodDsgcGFkZGluZzowLjVyZW0gMDsgfSAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpLmltYWdlIHsgdGV4dC1hbGlnbjpyaWdodDsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX3JpZ2h0eyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5oZWFkZXItc2VjdGlvbiAucGhvbmUucGhvbmVfbGVmdCB7IHRleHQtYWxpZ246bGVmdDsgfSAuaGVhZGVyLXNlY3Rpb24gPiAudi1jYXJkIHsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxleyBkaXNwbGF5OmZsZXg7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSAubXVsdGktYWRkcmVzcy0tcGhvbmV7IHdpZHRoOmF1dG87IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIC5tdWx0aS1hZGRyZXNzLS1waG9uZSBpeyBmb250LXNpemU6MC42MjVyZW0gOyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLm11bHRpLWFkZHJlc3MgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpmbGV4LWVuZDsgfSAubXVsdGktYWRkcmVzcy0tcGhvbmUgeyB3aWR0aDoxMzNweDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgfSAubXVsdGktYWRkcmVzcyBpIHsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDoxMHB4OyB9IC50b3BfYmcgdGFibGUgdGJvZHkgdGQ6bnRoLWNoaWxkKDIpIC5oZWFkZXItc2VjdGlvbiB7IHdpZHRoOjEwMCU7IH0gLnRvcF9iZy5kaXZUYWJsZSAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpIHsgdGV4dC1hbGlnbjpyaWdodDsgfSAudG9wX2JnIHRhYmxlIHRkIC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5waG9uZSBoMnsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiM1MjUyNTI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnBob25lIGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZSBkaXYub3JneyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZV90ZXh0IHsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1sZWZ0OjJweDsgcGFkZGluZy10b3A6MnB4O30gLnBob25lX3RleHQgYXsgY29sb3I6dmFyKC0tZGVhbGVyLWFkZHJlc3MtY29sb3IpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHdpbGwtY2hhbmdlOnRyYW5zZm9ybTsgdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBjZW50ZXI7IHRyYW5zaXRpb246dHJhbnNmb3JtIDAuM3MgZWFzZTsgfSAucGhvbmVfdGV4dCBhOmhvdmVyeyB0cmFuc2Zvcm06c2NhbGUoMC45Myk7IGNvbG9yOiMwMDU3OWM7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IGEucGhvbmUtbGluayB7IGRpc3BsYXkgOmlubGluZS1ibG9jayAhaW1wb3J0YW50OyBwYWRkaW5nIDowICFpbXBvcnRhbnQ7IGNvbG9yIDppbmhlcml0OyB0ZXh0LWRlY29yYXRpb24gOm5vbmU7IH0gYS5waG9uZS1saW5rOmhvdmVyIHsgY29sb3I6aW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gI3NsaWRlcnsgd2lkdGg6OTYwcHg7IG1hcmdpbi1sZWZ0OjBweDsgYm94LXNoYWRvdzpub25lOyB9IC5jZW50ZXJlZCB7cG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyB0b3A6NTAlO30gLnVwX21lbnV7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MzFweDsgei1pbmRleDoxMTExOyBmbG9hdDpyaWdodDt3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmJhbm5lcnsgd2lkdGg6OTYwcHg7IGhlaWdodDozMDFweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MnB4OyBtYXJnaW4tYm90dG9tOjZweDsgfSAubWVfdG9weyB3aWR0aDo5NjdweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5tZV9iZ3sgd2lkdGg6OTY3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lX2JnX3JvdS5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLm1lX2Rlc2N7bWFyZ2luOjBweDtoZWlnaHQ6YXV0bztmb250LXNpemU6MC44NzVyZW0gOyBvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo1cHggMTVweH0gLm1lX2JvdXsgd2lkdGg6OTY3cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAub25leyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjEwcHg7IG1hcmdpbi10b3A6OHB4O30gLnR3b3sgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxNHB4OyBtYXJnaW4tdG9wOjhweDt9IC50aHJlZXsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxNHB4OyBtYXJnaW4tdG9wOjhweDt9IC5mb3VyeyB3aWR0aDoyMjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjRweDsgbWFyZ2luLXRvcDo0cHg7fSAuVm91c3sgZm9udC1zaXplOjEuMDYzcmVtIDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjJweDt9IC5jbGFzc3sgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctYm90dG9tOjBweDsgcGFkZGluZy10b3A6NnB4O30gLmNsYXNzMXsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGhlaWdodDoxNTdweDsgbWFyZ2luLXRvcDo2cHg7fSAuYm9yZGVye2JvcmRlcjoxcHggc29saWQgI2QzZDNkMzsgd2lkdGg6MjE4cHg7fSAuYm94eyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctdG9wOjEwcHg7IG1hcmdpbjowIGF1dG87fSAuY2F7aGVpZ2h0OjE0M3B4O30gLmJveDIyNXsgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTozcHg7fSAuYm94MjI0eyB3aWR0aDoyMjVweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy1ib3R0b206NnB4O30gLmJveDIyM3sgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjNweDt9IC5ub3N7IHdpZHRoOjcxMHB4OyBoZWlnaHQ6MTAwJTsgbWFyZ2luLXRvcDo1cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7fSAubm9zX3RvcHsgd2lkdGg6NzE2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAubm9zX2JneyB3aWR0aDo3MTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbm9zX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7fSAubm9zX2JvdXsgd2lkdGg6NzE2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAubm9zX3RleHR7aGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5hcm93eyB3aWR0aDo2OTVweDsgaGVpZ2h0OjE2MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo0cHg7fSAuY29ueyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojM2MzYzNjO30gLmRlc2Mge21heC13aWR0aDoxMDAlO30gLmRlc2NfYmcge3dpZHRoOjEwMCU7IGhlaWdodDoyNDhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbm9zX2JnLnBuZyIpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDt9IC5hZGRye21hcmdpbi10b3A6MjVweDt9IC5hZGRyX21pZHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lX2JnX3JvdS5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLmhpZGRlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9IC5ob3Vyc19yZW0geyB0ZXh0LWFsaWduOnJpZ2h0O2xpbmUtaGVpZ2h0OjE4cHg7IGZsb2F0OnJpZ2h0O3BhZGRpbmctcmlnaHQ6MTVweDsgfSAuaG91cnNfcmVtIGF7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNse3dpZHRoOjYwcHg7IGZsb2F0OmxlZnQ7fSAuZGVye3dpZHRoOjQ2MHB4OyBoZWlnaHQ6MjU1cHg7IG1hcmdpbi10b3A6MXB4OyBmbG9hdDpsZWZ0O30gLmRlcl90b3B7IHdpZHRoOjQ2NHB4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLmRlcl9iZ3sgd2lkdGg6NDQ0cHg7IGhlaWdodDoyMjZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzo2cHggMTBweCAxMHB4IDEwcHg7fSAuZGVyX2JvdXsgd2lkdGg6NDY0cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAuZGVte3dpZHRoOjQ5NXB4OyBoZWlnaHQ6MjU1cHg7IG1hcmdpbi10b3A6M3B4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo1cHg7bWFyZ2luLWJvdHRvbTo2cHg7fSAuc2JveDF7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94Mnsgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3gzeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDR7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5ib3R0b200Ym94ZXN7ZmxvYXQ6bGVmdDt3aWR0aDoxMDAlO3BhZGRpbmc6MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fSAuYm90dG9tNGJveGVzICoge2JveC1zaXppbmc6Ym9yZGVyLWJveDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQ1e2Zsb2F0OmxlZnQ7d2lkdGg6MjUlO21heC13aWR0aDoyNDVweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxe2Zsb2F0OmxlZnQ7bWFyZ2luOjEwcHggNnB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDE6Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MHB4O30gLmJvdHRvbTRib3hlcyA+IC5ib3gyNDE6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MHB4O30gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAuYm90dG9tNGJveGVzIHRhYmxlIHsgcGFkZGluZzowIDEwcHg7IH0gfSAuc2JveFVzZWR7IGZsb2F0OmxlZnQ7IH0gLnNib3hfdG9weyB3aWR0aDoyNDdweDsgaGVpZ2h0OjVweDsgZmxvYXQ6bGVmdDt9IC5zYm94X2JneyB3aWR0aDoyNDdweDsgaGVpZ2h0OjEwN3B4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Nib3hfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuc2JveF9ib3V7IHdpZHRoOjI0N3B4OyBoZWlnaHQ6NXB4OyBmbG9hdDpsZWZ0O30gLmRheyBtYXJnaW4tdG9wOjEycHg7fSAuZGExeyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyO30gLmRhMSBoMXsgcGFkZGluZzowOyBtYXJnaW46MDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5hZGRsaW5leyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjcmV0dXJuUG9wdXBOZXh0TW9kZWx7IGhlaWdodDo0MHB4IWltcG9ydGFudDsgfSAuYWRkbGluZTo6YmVmb3JlLCAuYWRkbGluZTo6YWZ0ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBoZWlnaHQ6MXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB3aWR0aDo1MCU7IH0gLmFkZGxpbmU6YmVmb3JlIHsgcmlnaHQ6MC41ZW07IG1hcmdpbi1sZWZ0Oi01MCU7IH0gLmFkZGxpbmU6YWZ0ZXIgeyBsZWZ0OjAuNWVtOyBtYXJnaW4tcmlnaHQ6LTUwJTsgfSAuc2JveDEgYS5jTGluaywgLnNib3gyIGEuY0xpbmssIC5zYm94MyBhLmNMaW5rLCAuc2JveDQgYS5jTGlua3sgZGlzcGxheTpibG9jazsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5zYm94MSBhLmNMaW5rOmhvdmVyLCAuc2JveDIgYS5jTGluazpob3ZlciwgLnNib3gzIGEuY0xpbms6aG92ZXIsIC5zYm94NCBhLmNMaW5rOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQsIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24gLmJvcmRlcl9ib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMDAwMDsgY29sb3I6IzAwMDAwMDsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIGEsIC5ob21lcGFnZS0tYnVzaW5lc3MtZGVzY3JpcHRpb24tY2VydCBhIHsgY29sb3I6IzAwMDAwMDsgY29sb3I6IzAwMDAwMDsgfSAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIC5ib3JkZXJfYm94LCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgLmJvcmRlcl9ib3ggeyBiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7IGNvbG9yOmluaGVyaXQ7IH0gLmJsYWNrX3RleHR7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMTkxOTE5OyBtYXJnaW4tYm90dG9tOjRweDt9IC5ncmF5X3RleHR7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxOTE5MTk7fSAuYnV0eyBmbG9hdDpyaWdodDsgbWFyZ2luOjBweCAwcHggMHB4IDBweDt9IC5saW5leyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDJkMmQyOyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7fSAudml2eyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6IzAwMDAwMDsgdGV4dC1hbGlnbjpqdXN0aWZ5O30gLnR3eyB3aWR0aDoyNjBweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW4tdG9wOjVweDsgdGV4dC1hbGlnbjpyaWdodDt9IC5FTkdMSVNIIC52aXZ7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTt9IC5NYWluQm94TGF5ZXIgLnZpdiB7IG1hcmdpbi1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5neyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbHsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmctbGVmdDo1cHg7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpsYXN0LWNoaWxkeyBwYWRkaW5nLWxlZnQ6MDsgfSAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjVweDsgfSAuTWFpbkJveExheWVyIC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6Zmlyc3QtY2hpbGR7IHBhZGRpbmctcmlnaHQ6MDsgfSAjZm9vdGVyRGl2IC5hZGQsICNmb290ZXJEaXYgLmFkZCBhIHsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyB9ICNmb290ZXJEaXYgLmFkZCAub3JneyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5wb3VyeyB3aWR0aDo3MjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAucGFnZW5ve3dpZHRoOjIzNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4OyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbWFyZ2luLXRvcDoxMHB4OyB9IC5wYWdlbm8gdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MCAwIDE1cHggMDsgcGFkZGluZzowOyB3aWR0aDoyMzZweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5wYWdlbm8gdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDtkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyB3aWR0aDoyMzZweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsO30gLnBhZ2VubyB1bCBsaSBheyB3aWR0aDoyMzdweDsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZsb2F0Om5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5wYWdlbm8gdWwgbGkgc3BhbiwgLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZXsgd2lkdGg6MjM2cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojZmZmOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtYWxpZ246bGVmdDsgfSAucGFnZW5vIHVsIGxpIGEuZnRpdGxlOmhvdmVyeyBtYXJnaW4tYm90dG9tOjEwcHg7fSAucGFnZW5vIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGxpbmUtaGVpZ2h0OjE4cHg7fSAucGFnZW5vIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLkVOR0xJU0ggLnBhZ2VubyB1bCBsaSBhe3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuYWRkeyB3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246cmlnaHQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IG1hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7fSAuY29weXsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzkxOTE5MTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi10b3A6MjVweDt9IC5jb3B5IGF7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IGZvbnQtd2VpZ2h0Om5vcm1hbH0gLmNvcHkgYTpob3ZlcnsgY29sb3I6I2Q0ZDRkNDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5mb290ZXItbGlzdHMgbGkgPiBzcGFuIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAjZm9vdGVyV3JhcHBlciAudi1jYXJkLmFkZCB7IGxpbmUtaGVpZ2h0OmluaXRpYWw7IH0gI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgZm9udC1zaXplOnZhcigtLWZzNCk7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCwgdmFyKC0td2hpdGUpKTsgfSAuRU5HTElTSCAjZm9vdGVyIC5mb290ZXItdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyB9ICNmb290ZXIgPiAuZmxleC1ib3ggPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OnZhcigtLXM1KTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6MTUwcHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyB0ZXh0LWFsaWduOmxlZnQ7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgLnNvY2lhbC1pY29ucyB7IHdpZHRoIDphdXRvOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgNHB4OyB9ICNmb290ZXIgYS5zb2NpYWwtbGluayA+IHN2ZyB7IGhlaWdodDoyMnB4OyBtYXJnaW4tbGVmdDozcHg7IH0gaGVhZGVyIC5oZWFkZXItc29jaWFsICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2ID4gYSA+IHN2ZyB7IGhlaWdodDoyMXB4OyBtYXJnaW4tdG9wOjRweDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgLmZhYiB7IG1hcmdpbi10b3A6MDsgZm9udC1zaXplIDoxLjllbTsgY29sb3IgOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmRpdlNwYW4uZGl2U3BhbjMgPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciB7IG1hcmdpbi10b3A6MXJlbTsgdGV4dC1hbGlnbjpyaWdodDsgfSAuZGVhbGVyLWFsaWduLWxlZnQgLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmRpdlNwYW4uZGl2U3BhbjMgPiAuZm9vdGVyLWxvZ29fX2NvbnRhaW5lciBpbWcgeyBtYXgtd2lkdGg6MTgwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX2xlZnQgeyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAjZm9vdGVyIHsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgfSB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo5OTlweCkgeyAjTWFpbk1lbnVfU0VBUkNIX0JBUiB7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaS5maXJzdE1lbnUgeyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpudGgtb2YtdHlwZSgyKSB7IHBhZGRpbmctcmlnaHQ6MTBweDsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpudGgtb2YtdHlwZSgyKSA+IHVsLnN1YiB7IHJpZ2h0OjEwcHg7IH0gLmxhbmd1YWdlQmFyIGRpdjpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLm1lbnU3IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMTYwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IC5tZW51OCAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTUgLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0zMDBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gfSAuZGl2U3Bhbi5wYWdlbm8geyBtYXJnaW4tbGVmdDowOyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBzcGFuLCAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgYS5mdGl0bGUgeyBmb250LXNpemU6MC45MzhyZW0gOyBtYXgtd2lkdGg6MjI1cHg7IH0gLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEgeyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5hZHIgeyBsaW5lLWhlaWdodDoxLjJyZW07IG1hcmdpbjowLjVyZW0gMDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5mb290ZXItdGl0bGVfX2NvbnRhaW5lciB7IG1hcmdpbi1ib3R0b206MnJlbTsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5kaXZTcGFuMyB7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTVweDsgcGFkZGluZy1yaWdodDozMHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjkgeyBmbG9hdDpyaWdodDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1sZWZ0IC5zb2NpYWwtc2hhcmluZyB7IGZsb2F0OnVuc2V0OyBjbGVhcjp1bnNldDsgbWFyZ2luOjA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsIHsgZmxvYXQ6bGVmdDsgfSAjZm9vdGVyLmRlYWxlci1wb3NpdGlvbi1yaWdodC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyB3aWR0aDoyNSU7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3NSU7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjFyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbDpmaXJzdC1jaGlsZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gI2Zvb3RlciAuaWNvbi10ZXh0eyBtYXJnaW4tYm90dG9tOi40cmVtOyB9ICNmb290ZXIgLmljb24tdGV4dCBzcGFueyB3aWR0aDoyMHB4OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjZm9vdGVyIC5mbi5vcmcgeyBsaW5lLWhlaWdodDoyLjA2MjVyZW07IH0gLnNtYWxscGljX2JveHt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowO30gLnNtYWxscGljNDN7d2lkdGg6NDNweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAwIDA7IGJvcmRlcjoycHggc29saWQgI0ZGRkZGRjt9IC5kZXRhaWxze3dpZHRoOjgxcHg7IGhlaWdodDozMHB4OyBkaXNwbGF5OmJsb2NrOyB9IGEuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gYTpob3Zlci5kZXRhaWxze3dpZHRoOjgxcHg7IGhlaWdodDozMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2RldGFpbHMucG5nKSBsZWZ0IC0zMnB4IG5vLXJlcGVhdDt9IC5iaWdfcGljYm94e21pbi1oZWlnaHQ6MTEwcHg7d2lkdGg6MTQ2cHg7fSAuYmlnX3BpY2JveCBpbWd7IGRpc3BsYXk6YmxvY2s7IH0gLnBpY2JveF92aWRlb2J0bl9lbiwgLnBpY2JveF92aWRlb2J0bl9mciB7ZGlzcGxheTpibG9jaztoZWlnaHQ6NDVweDt9IC5waWNib3hfdmlkZW9idG5fZW4ge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9lbi5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZnIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9mci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZW46aG92ZXIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9lbl9ob3Zlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5waWNib3hfdmlkZW9idG5fZnI6aG92ZXIge2JhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3ZpZGVvLWJ0bi10aHVtYl9mcl9ob3Zlci5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAvIDEwMCUgYXV0byB0cmFuc3BhcmVudDt9IC5iaWdfcGljYm94X3dyYXBwZXIgeyB3aWR0aDoxNDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMTBweCAwcHggMjFweDsgfSAudGV4dF90aXRsZSBheyBkaXNwbGF5OmJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IG1hcmdpbjowOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAudGV4dF90aXRsZTJ7d2lkdGg6MzI5cHg7IGhlaWdodDozMnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuc29sZF9jYXJfbm90ZXtiYWNrZ3JvdW5kLWNvbG9yOiMxRTFFMUU7IGJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBjb2xvcjojRkZGOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MTVweDt9IC5zb2xkX2Nhcl9ub3RlIGEge2NvbG9yOiNGRkY7fSAuc29sZF9jYXJfbm90ZSBhOmhvdmVyIHtjb2xvcjojQkJCO30gLnRleHRfdGl0bGUze3dpZHRoOjMyOXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBwYWRkaW5nLWJvdHRvbTo3cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM0ODQ4NDg7fSAudGV4dF9ib3gye3dpZHRoOjMyOXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMHB4IDBweCAwcHg7IH0gLm1haW5fcGljYm94e3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MDsgbWFyZ2luOjAgO30gLmJveDJfZGV0YWlsc19mb290ZXIye3dpZHRoOjY4MXB4OyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDJfZGV0YWlsc19taWRFeHt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjAgMHB4O2hlaWdodDo4NXB4O30gLmJveDJfZGV0YWlsc190ZXh0IHNwYW57IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyBmb250LXdlaWdodDpib2xkO30gLmJveDJfZGV0YWlsc19mb290ZXIyMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzt9IC5ib3gxNzB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NjcxcHg7IG1pbi1oZWlnaHQ6MTcwcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZS5wbmcpIGxlZnQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHBhZGRpbmc6MDsgbWFyZ2luOjAgMHB4IDEwcHggMDt9IC5jdXN0b21Cb3hCYXNpY3sgd2lkdGg6MjQxcHg7IGhlaWdodDoxMTZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3A7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjI0MXB4IDEyMXB4OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgfSAuY3VzdG9tQm94QmFzaWM6aG92ZXJ7IGNvbG9yOiNmZmY7IH0gLmN1c3RvbTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDIyX2hvdmVyLnBuZyk7IH0gLmN1c3RvbTU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMi5wbmcpOyB9IC5jdXN0b202NjUgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDIzX2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY2NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDIzLnBuZyk7IH0gLmN1c3RvbTY3NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjcucG5nKTsgfSAuY3VzdG9tNjc1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjdfaG92ZXIucG5nKTsgfSAuY3VzdG9tNjg1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyOC5wbmcpOyB9IC5jdXN0b202ODU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyOF9ob3Zlci5wbmcpOyB9IC5pbWFnZV9yaWJib24geyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTRweDsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjExMnB4OyBoZWlnaHQ6MTEycHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmltYWdlX3JpYmJvbiBzcGFuIHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZmZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjI4cHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IHdpZHRoOjE0OHB4OyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOiMwMDJjNWY7IGJveC1zaGFkb3c6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MzBweDsgbGVmdDotMzBweDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjMDAyYzVmOyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzAwMmM1ZjsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjMDAyYzVmOyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgIzAwMmM1ZjsgfSAuaW1hZ2VfcmliYm9uX3ZkcCB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0Oi01cHg7IHRvcDotNnB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE5NHB4OyBoZWlnaHQ6MTk0cHg7IHRleHQtYWxpZ246cmlnaHQ7IHotaW5kZXg6NDA7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3BhbiB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozNnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoyNzNweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojMDAyYzVmOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjY3cHg7IGxlZnQ6LTUxcHg7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3Bhbjo6YmVmb3JlIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MHB4OyB0b3A6MTAwJTsgei1pbmRleDotMTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICNlNGRjZDM7OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2U0ZGNkMzs7IH0gLmltYWdlX3JpYmJvbl92ZHAgc3Bhbjo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MHB4OyB0b3A6MTAwJTsgei1pbmRleDotMTsgYm9yZGVyLWxlZnQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkICNlNGRjZDM7OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2U0ZGNkMzs7IH0gLnJpYmJvbi1jb250YWluZXIgeyB3aWR0aCA6MzAwcHg7IGhlaWdodCA6MzAwcHg7IG92ZXJmbG93IDpoaWRkZW47IHBvc2l0aW9uIDphYnNvbHV0ZTsgdG9wIDowOyBsZWZ0IDowOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uIHsgei1pbmRleCA6NTU1OyBtYXJnaW4gOjA7IHBhZGRpbmcgOjAuNXJlbSAwICFpbXBvcnRhbnQ7IGJveC1zaGFkb3cgOjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBmb250LXNpemUgOjE3cHg7IGxpbmUtaGVpZ2h0IDoyM3B4OyB0ZXh0LWFsaWduIDpjZW50ZXI7IHBvc2l0aW9uIDphYnNvbHV0ZTsgdG9wIDowOyBsZWZ0IDowOyB0cmFuc2Zvcm0gOnRyYW5zbGF0ZVgoLTMwJSkgdHJhbnNsYXRlWSgwJSkgcm90YXRlKC00NWRlZyk7IHRyYW5zZm9ybS1vcmlnaW4gOnRvcCByaWdodDsgYmFja2dyb3VuZCA6IzAwN2ZhNTsgY29sb3IgOiNmZmZmZmY7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlLCAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IGNvbnRlbnQgOiIiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbWFyZ2luIDowIC0xcHg7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGJhY2tncm91bmQgOiMwMDdmYTU7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlIHsgbGVmdDoxMDAlOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmFmdGVyIHsgcmlnaHQ6MTAwJTsgfSAuc2VhcmNocmlnaHQgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpub3JtYWw7Y3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0aG92ZXIgeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgbWFyZ2luOjAgMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC1ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjdXJzb3I6cG9pbnRlcjsgfSAuc2VhcmNocmlnaHRYWFggeyB3aWR0aDoyODBweDsgaGVpZ2h0OjExNnB4OyBwYWRkaW5nOjVweCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0ICMyMTRlODM7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkO2N1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodGhvdmVyWFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQgIzIxNGU4MzsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjhweDsgLW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IC5zZWFyY2hyaWdodC10ZXh0eyBtYXJnaW4tbGVmdDoxMDBweDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDo2MCU7IH0gLnNlYXJjaHJpZ2h0LXRleHQgcHsgbWFyZ2luOjE1cHggMCAwOyB9IC5wYWdlbm8ye2hlaWdodDoyNHB4OyB9IC5wYWdlbm8yIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vMiB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmlubGluZTt9IC5wYWdlbm8yIHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiNiM2I0YjU7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAucGFnZW5vMiB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgbGkgYS5hY3RpdmV7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiMyODI4Mjg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo0cHg7fSAubWFpbl9ib3h7d2lkdGg6OTYwcHg7IG1hcmdpbjowIGF1dG87fSAubWFpbl9sZWZ0X2JveHt3aWR0aDo2NzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7cGFkZGluZy1yaWdodDoxMHB4O30gLm1haW5fbGVmdF9ib3ggdWx7cGFkZGluZzowcHg7fSAuYm94X21pZF9yb3VuZCB7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93Om5vbmU7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBtYXJnaW4tdG9wOjEwcHg7IH0gLmJveF90b3Bfcm91bmQgeyBkaXNwbGF5Om5vbmU7IH0gLmJveDJfZGV0YWlsc19mb290ZXIyIHsgZGlzcGxheTpub25lOyB9IC5kZXRhaWxzX2JveCBpbWcudmlweyBtYXJnaW4tdG9wOi00OHB4OyB3aWR0aDoxNDBweDsgYm9yZGVyOjFweDsgYm9yZGVyLXJhZGl1czo0cHg7IH0gLmJveF90b3Bfcm91bmQye3dpZHRoOjk3MXB4OyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTo5NzFweCBhdXRvOyBtYXJnaW4tdG9wOjVweDt9IC5ib3hfbWlkX3JvdW5kMnt3aWR0aDo5NzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O2JhY2tncm91bmQtc2l6ZTo5NzFweCBhdXRvOyBwYWRkaW5nOjAgNXB4O30gLnBhZ2VfbmFtZXt3aWR0aDo2NTBweDsgaGVpZ2h0OjMwcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnBhZ2VfbmFtZSBheyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5wYWdlX25hbWUgYTpob3ZlcnsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5YzsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IHRhYmxlLnZlaGljbGVMaXN0VGFibGUgYXtkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTtsaW5lLWhlaWdodDoxLjI7fSB0YWJsZS52ZWhpY2xlTGlzdFRhYmxlIGE6aG92ZXJ7ZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS4yO30gLlBvcnNjaGUye3dpZHRoOjEwMCU7aGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMjBweCAyMXB4OyBtYXJnaW46MTVweCAwIDI1cHggMDsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTtkaXNwbGF5OmlubGluZX0gLlBvcnNjaGUyIGgxe2ZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5UcmllcnBhcnsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNUI2OTlDOyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjVweDt9IC5zZWxlY3RlZF9ib3gye3dpZHRoOjE3NXB4OyBoZWlnaHQ6MzFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBtYXJnaW46MTVweCAwOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnNlbGVjdGVkX29yZGVyYnl7d2lkdGg6MTM1cHg7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IG1hcmdpbjoxMHB4IDEwcHggMHB4IDBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5wcml4e3dpZHRoOjc5cHg7IGhlaWdodDo3OHB4OyBmbG9hdDpsZWZ0OyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMTsgbWFyZ2luLXRvcDotNHB4OyBtYXJnaW4tbGVmdDotNHB4OyB0b3A6MHB4O30gLnBhZ2VubzV7d2lkdGg6MTAwJTsgaGVpZ2h0OjI0cHg7IG1hcmdpbjozMHB4IDAgMjBweCAwcHg7IHBhZGRpbmc6MDsgZmxvYXQ6bGVmdCB9IC5wYWdlbm82e3dpZHRoOjI1NHB4OyBoZWlnaHQ6MjRweDsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpyaWdodDt9IC5zdWl2YW50e3dpZHRoOjI4MHB4OyBoZWlnaHQ6MTlweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy10b3A6NXB4O30gLm1haW5fcmlnaHRfYm94e3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDt9IC5ib3g3e3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLmJveDdMaW5re3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLmJveDdfbWlke3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDJweDt9IC5ib3g3X21pZF9mdWxse3dpZHRoOjk1NnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDpub25lIGxlZnQgdG9wIG5vLXJlcGVhdCAwIDAgdHJhbnNwYXJlbnQ7IHBhZGRpbmc6MCAycHggMTVweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0JCQjt9IC5zaW11bGFyX3ZfYm94eyB3aWR0aDoyNjVweDsgcGFkZGluZzowcHggMHB4IDVweCAxMHB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYm94U2VhcmNoTmV3c3ttYXJnaW4tdG9wOi0zcHg7bWFyZ2luLWxlZnQ6LTVweDt3aWR0aDoyODVweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wXzI4MC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3hTZWFyY2hOZXdzX21pZHttYXJnaW4tbGVmdDotNXB4O3BhZGRpbmc6MHB4O3dpZHRoOjI4MXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9taWRfMjgwLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IH0gLmJveFNlYXJjaE5ld3NfZm9vdGVyMTV7bWFyZ2luLWxlZnQ6LTVweDt3aWR0aDoyODVweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfZm9vdGVyXzI4MC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3g3SF9taWR7d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctYm90dG9tOjZweDt9IC5SZWNoZXJjaGUyMntoZWlnaHQ6MjBweDsgcGFkZGluZzoxMHB4IDdweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzAwMDAwMDt9IC5zaW1UaXRsZXtoZWlnaHQ6YXV0bzsgcGFkZGluZzowcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuYm94OHt3aWR0aDoyNzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAwcHggMTBweDt9IC5ib3g5e3dpZHRoOjIwcHg7IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuYm94MTF7d2lkdGg6MTAwcHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjdweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7fSAuYm94MTJ7d2lkdGg6MTMwcHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjdweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7fSAuc2VsZWN0X2JveDE0e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4IDBweCAwcHg7IG1hcmdpbi1ib3R0b206M3B4O30gLnNlbGVjdF9ib3gxNntoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMTBweDsgbWFyZ2luLWJvdHRvbTozcHg7fSAuc2VsZWN0X2JveDE1e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMTBweCAwcHggMTBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnNlbGVjdF9ib3gxMTV7d2lkdGg6MTE1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5zZWxlY3RfYm94ODB7d2lkdGg6ODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDBweCAwcHggMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuYV90ZXh0e3dpZHRoOjIwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjMxcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjAgNXB4O30gLmFqb3V0ZXJ7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAwOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjFmMWY7bWFyZ2luOjVweCAwIDEwcHggMHB4O30gLmFqb3V0ZXJfYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9zZWFyY2gtZG93bi1hcnJvdy5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgM3B4IHRyYW5zcGFyZW50OyBwYWRkaW5nLWxlZnQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmFqb3V0ZXJfYV9mdWxse2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3NlYXJjaC1yaWdodC1hcnJvdy5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIHJpZ2h0IC0xcHggdHJhbnNwYXJlbnQ7IHBhZGRpbmctcmlnaHQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJveDEze3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMTBweDt9IC5pbnB1dF9ib3gye3dpZHRoOjIwcHg7IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMTRweCAwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwZjFhMWU7fSAuaW5wdXRfdGV4dHsgd2lkdGg6MTk1cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjNweCAwcHggN3B4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzU3NTc1NzsgbGluZS1oZWlnaHQ6MThweDsgfSAuYnV0dG9uX2JveDJ7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC5idXR0b25fYm94UzJ7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6MjlweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDNweCAxM3B4IDNweDsgfSAuYm94LWZvb3RlcjE1e3dpZHRoOjI5MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9sZWZ0X2JveF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuZGlzeyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyB3aWR0aDoyNDBweDt9IC5kaXNfY3VzdG9teyB3aWR0aDoyNDBweDt3aWR0aDoyNDBweDt9IC5kaXNfdG9weyB3aWR0aDoyNDZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDt9IC5kaXNfdG9wX2N1c3RvbXsgd2lkdGg6MjM4cHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOiNmZmZmZmY7fSAuZGlzX2JneyB3aWR0aDoyNDZweDsgaGVpZ2h0OjE1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLl9kaXNfYmd7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MjAwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7fSAuZGlzX2JnX2N1c3RvbXsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLl9kaXNfYmdfY3VzdG9teyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuZGlzX2JvdXsgd2lkdGg6MjQ2cHg7IGhlaWdodDo1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19ib3UucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuX2Rpc19ib3V7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MzhweDsgZmxvYXQ6bGVmdDsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgbWFyZ2luLXRvcDoxNHB4OyBjb2xvcjojMmQyZDJkOzsgfSAuZGlzX2JvdV9jdXN0b217IHdpZHRoOjIzOHB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgcGFkZGluZy10b3A6NXB4OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7fSAuX2Rpc19ib3VfY3VzdG9teyB3aWR0aDoyNDBweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMwMDAwMDA7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IG1hcmdpbi10b3A6MTJweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5kaXNfYm91XzJ7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Rpc19ib3VfMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5kaXNfdGV4dHsgZm9udC1zaXplOjEuNDM4cmVtIDsgcGFkZGluZzo0cHggMHB4IDBweCAxNXB4O30gLmx1bmRpX3RleHR7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHBhZGRpbmc6MnB4IDBweCAwcHggMjBweDsgbGluZS1oZWlnaHQ6MTRweDt9IC5sdW5kaV90ZXh0X2hvbWVwYWdlX2gyNDh7Zm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MThweDsgcGFkZGluZzoxMHB4IDAgMCAyMHB4OyB9IC5sdW5kaV90ZXh0IHRoe3RleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7d2lkdGg6NjBweDt9IC5sdW5kaV90ZXh0IHRke3RleHQtYWxpZ246bGVmdDt9IC5weyBoZWlnaHQ6MTZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggNXB4IDBweCAxMHB4OyBmb250LXNpemU6MC44MTNyZW0gO30gLmV7IGhlaWdodDoxNnB4OyBmbG9hdDpyaWdodDsgcGFkZGluZzo3cHggMHB4IDBweCAwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7fSAuYm94Mjg4LCAuYm94Mjg4X2N1c3RvbXt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gLl9ib3gyODgsIC5fYm94Mjg4X2N1c3RvbXt3aWR0aDoyODBweDsgZmxvYXQ6bGVmdDsgfSAuYm94Mjg4VXNlZHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjBweDt9IC5ib3gyODhOZXd7d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IH0gLmJveDI4OE5ld19jdXN0b217ZmxvYXQ6bGVmdDt9IC5ib3gyODhOZXdRTSwgLmJveDI4OE5ld1FNX21vYmlsZSB7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBib3gtc2hhZG93Om5vbmU7IGNsZWFyOmJvdGg7IGZsb2F0OmxlZnQ7IHdpZHRoOjI4MHB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIHsgd2lkdGg6MTAwJTsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5SZWNoZXJjaGUyMiB7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgdGFibGUgeyB3aWR0aDoxMDAlOyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgaW5wdXQgeyB3aWR0aDo5NSUhaW1wb3J0YW50OyB9IC5ib3gyODhRTXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW0gO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5ib3gyODhRTV9jdXN0b217d2lkdGg6Mjc4cHg7bWFyZ2luOjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG92ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjZweDtib3gtc2hhZG93OjAgMCA0cHggIzMzMzt9IC50ZXh0QXJlYVFNeyBmb250LXNpemU6MC44MTNyZW0gO2xpbmUtaGVpZ2h0OjE1cHg7fSAuYm94Mjg4X3RvcHt3aWR0aDoyODhweDsgaGVpZ2h0OjE0cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF90b3AucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IG1hcmdpbi10b3A6MHB4O30gLmJveDI4OF90b3BfY3VzdG9te3dpZHRoOjI3OHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDojZmZmZmZmO30gLl9ib3gyODhRTXsgd2lkdGg6MjgwcHg7IH0gLl9ib3gyODhfdG9we30gLl9ib3gyODhfdG9wX2N1c3RvbXsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IFdpZHRoOjEwMCU7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6I2ZmZmZmZjsgYm9yZGVyLXJhZGl1czo2cHggNnB4IDAgMDsgfSAuX2JveDI4ODBfbWlke30gLl9ib3gyODgwX21pZF9jdXN0b217YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmJveDI4OF9taWR7IGJveC1zaGFkb3c6MCAwIDVweCAjMzMzMzMzOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyB9IC5ib3gyODhfbWlkX2N1c3RvbXsgYm94LXNoYWRvdzowIDAgNXB4ICMzMzMzMzM7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tdG9wOjVweDsgbWFyZ2luLWxlZnQ6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuYm94Mjg4MF9taWR7d2lkdGg6MjU4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAxNXB4IDBweCAxNXB4O30gLmJveDI4ODBfbWlkX2N1c3RvbXt3aWR0aDoyMjhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDI1cHg7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5ib3gyNjlfbWlke3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgMTVweCAwcHggMTVweDt9IC56b29tMjJ7d2lkdGg6MjU4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5zZWFyY2hfcmlnaHQge2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2VhcmNoLnBuZykgMCAwIG5vLXJlcGVhdDsgd2lkdGg6Mjc4cHg7IGhlaWdodDoxMTFweDsgZGlzcGxheTpibG9jazsgbWFyZ2luOjVweCA1cHggNXB4IDVweH0gLkRlbWFuZGUyMnt3aWR0aDoyNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyBsaW5lLWhlaWdodDoyNnB4OyBtYXJnaW4tdG9wOjY3cHg7fSAuRGVtYW5kZTIyIGF7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyBsaW5lLWhlaWdodDoyMHB4IDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuRGVtYW5kZTIyIGE6aG92ZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojOWEwMTAxOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLkRlbWFuZGUyMiBzcGFuIGF7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjkyOTI5OyBsaW5lLWhlaWdodDoyMHB4IDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuRGVtYW5kZTIyIHNwYW4gYTpob3ZlcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyOTI5Mjk7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSAuYm94Mjg4X2Zvb3Rlcnt3aWR0aDoyODhweDsgaGVpZ2h0OjE0cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3Rlcl9xc3t3aWR0aDoyODhweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3Rlcl9xc3t3aWR0aDoyODhweDsgaGVpZ2h0OjExcHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94Mjg4X2Zvb3RlcjU1eyB3aWR0aDoyODBweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyZDJkMmQ7IGJhY2tncm91bmQtY29sb3I6I0NCQ0JDQjsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgfSAuYm94Mjg4X2Zvb3RlcjU1X2N1c3RvbXsgd2lkdGg6MjgwcHg7IGhlaWdodDozNXB4OyBwYWRkaW5nLXRvcDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYm9yZGVyLXJhZGl1czowIDAgNnB4IDZweDsgfSAucCBhe3RleHQtZGVjb3JhdGlvbjpub25lO30gLmdhcDEwe3dpZHRoOjIzMHB4OyBoZWlnaHQ6MTBweDsgZmxvYXQ6bGVmdDt9IC5wYWdlX25hbWUye3dpZHRoOjY1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDAgMjBweCAwOyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS42MjVyZW0gOyBjb2xvcjojMDAwMDAwO2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLnBhZ2VfbmFtZTN7IHdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAxMHB4IDEwcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMjQyNDI0O30gLnBhZ2VfbmFtZTMgaDF7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lNHt3aWR0aDo2NTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDEwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzAxNEY4MDt9IC5wYWdlX25hbWU0IGgyeyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6cmdiKDIyOCwyMjAsMjExKTtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWU1e3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvc2hvLnBuZykgY2VudGVyIGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjAgMHB4IDEwcHggMDsgbWFyZ2luLWJvdHRvbToxNXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDtmb250LXdlaWdodDpub3JtYWwgfSAjc2VhcmNoQ29udGFpbmVyUGFyZW50IC5wYWdlX25hbWU1Om5vdCg6Zmlyc3QtY2hpbGQpIHsgbWFyZ2luLXRvcDozMHB4OyB9IC5ib3gyX3RleHR7aGVpZ2h0OmF1dG87IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dCBweyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gO2NvbG9yOiMwMDAwMDA7IG1hcmdpbi1ib3R0b206MjBweDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBwe2ZvbnQtc2l6ZToxcmVtIDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBoMywgLnBvc2l0aXZlUmF0aW5nVHh0IGg0e2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7dGV4dC10cmFuc2Zvcm06bm9uZTt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7Zm9udC1zaXplOjEuMjVyZW0gO30gLmV0YXBle3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MjBweDt9IC50ZXh0MXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4O30gLnRleHQxIGF7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAudGV4dDEgYTpob3Zlcnt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MzQzNDM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjZjNmM2YzOyB9IC50ZXh0MSBhLmFjdGl2ZXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MzQzNDM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjZjNmM2YzOyB9IC5vbmUxe3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpyaWdodDsgbWFyZ2luLWxlZnQ6MTBweDt9IC5vbmUxIGF7d2lkdGg6NDZweDsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvMV9yb3VuZC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojRkZGRkZGOyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAub25lMSBhOmhvdmVye3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgY29sb3I6IzAwMDAwMDsgbGluZS1oZWlnaHQ6NDZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLm9uZTEgYS5hY3RpdmV7d2lkdGg6NDZweDsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvMV9ob3Zlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjIuMjVyZW0gOyBjb2xvcjojMDAwMDAwOyBsaW5lLWhlaWdodDo0NnB4OyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuc2VsZWN0aW9ubmV6e3dpZHRoOmF1dG87IGhlaWdodDphdXRvIDsgZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDozcHg7IHBhZGRpbmctdG9wOjRweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzFhMWExYTsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5mb3Jtc19ib3gyMntib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MCAwIDEwcHggMDsgfSAud2l0aF9ib3JkZXIgeyBib3JkZXI6MXB4IHNvbGlkICNkNGQ0ZDQ7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzowIDE2cHg7IH0gLlByZW5vbXt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDEwcHggMDt9IC5QcmVub20gc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6I2ZmMDEwMTt9IC5QcmVub20ye3dpZHRoOjMyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6OHB4IDAgMTBweCAwO30gLlByZW5vbTIgc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6I2ZmMDEwMTt9IC5QcmVub20ze3dpZHRoOjI3OXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTR7d2lkdGg6MzIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tNXt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOnB4IDAgMTBweCAwO30gLlByZW5vbTZ7d2lkdGg6MjE0cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tN3t3aWR0aDoxMDdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub204e3dpZHRoOjI3OXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzpweCAwIDEwcHggMDsgZGlzcGxheTpibG9ja30gLlByZW5vbTl7d2lkdGg6MjE0cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwIDEwcHggMDtkaXNwbGF5OmJsb2NrfSAuUHJlbm9tMTB7d2lkdGg6MTA3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwIDEwcHggMDtkaXNwbGF5OmJsb2NrfSAudGV4dDE1e3dpZHRoOjI4NXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE2e3dpZHRoOjE3MnB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE3e3dpZHRoOjExMnB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE4e3dpZHRoOjI4NXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6OHB4IDAgM3B4IDA7fSAudGV4dDE1IHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuYnV0dG9uNXt3aWR0aDoyODVweDsgbWFyZ2luLWJvdHRvbTozMHB4OyBtYXJnaW4tdG9wOjcwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmJveF9kYXRle3dpZHRoOjE2N3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjFweDsgbWFyZ2luLXJpZ2h0OjVweDt9IC5ib3hfZGF0ZTJ7d2lkdGg6MTA3cHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveF9kYXRlM3t3aWR0aDo4MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7fSBzcGFuLmFzdGt7IGNvbG9yOiNGRjAxMDE7Zm9udC1zaXplOjAuNjg4cmVtIDtmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6M3B4OyB9IC5ib3g2MXt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTBweDsgZGlzcGxheTpibG9jazsgY2xlYXI6Ym90aDsgfSAuYm94NjE2Nnt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTBweDsgfSAuUG9saXRpcXVle3dpZHRoOmF1dG87IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgcGFkZGluZzowIDJweCAwcHggMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQ1OWFmOyBsaW5lLWhlaWdodDoyMnB4OyB9IC5Qb2xpdGlxdWUgYXsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkNTlhZjsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICM2YjkxYmQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUzLnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tO30gLlBvbGl0aXF1ZSBhOmhvdmVyeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyBsaW5lLWhlaWdodDoyNHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmU0LnBuZykgYm90dG9tIGxlZnQgcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzI0MjQyNDt9IC50ZXh0MTU1e3dpZHRoOjI4NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAudGV4dDE1NWNoa3toZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDEwcHggMTBweCAxNXB4O3RleHQtYWxpZ246bGVmdDt9IC5WZXVpbGxlent3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTdweCAwOyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojMDAwMDAwO2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLlZldWlsbGV6IHNwYW57dGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyBsaW5lLWhlaWdodDoyMnB4O30gLlZldWlsbGV6IHNwYW4gYXsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6cmlnaHQ7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMjQyNDI0OyBkaXNwbGF5OmJsb2NrfSAuVmV1aWxsZXogc3BhbiBhOmhvdmVyeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA0NDZmOyBmbG9hdDpyaWdodDsgbGluZS1oZWlnaHQ6MjJweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMwMDQ0NmY7IGRpc3BsYXk6YmxvY2s7fSAuSHlwb3RoZXF1ZXt3aWR0aDoxOTVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjUwcHg7fSAuSHlwb3RoZXF1ZTIye3dpZHRoOjIyNHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuSHlwb3RoZXF1ZTMze3dpZHRoOjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7IGxpbmUtaGVpZ2h0OjM1cHg7fSAuY2l2aXF1ZXt3aWR0aDoxMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLlJ1ZXt3aWR0aDoyOTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLkFwcHt3aWR0aDoxODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLmZvcm1zMTAwe3dpZHRoOjEzMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuZm9ybXMxMDF7d2lkdGg6MjkwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5mb3JtczEwMnt3aWR0aDoxODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLlZpbGxleyB3aWR0aDoyNzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEzcHggMDt9IC5Qcm92aW5jZXsgd2lkdGg6MTUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuQ29kZXsgd2lkdGg6MTYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuZm9ybXMxMDN7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNHsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA1eyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDZ7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdH0gLlR5cGV7d2lkdGg6MjAwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5ib3g2MDB7d2lkdGg6NjAwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBwYWRkaW5nLWJvdHRvbToyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4O30gLkRlbWFuZGU1NXttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2QucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6NDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlNjZ7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9jYWwyLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTc3e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbS5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDo0MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU4OHttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2YucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlODg3e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLmJveDJfdGV4dDJ7d2lkdGg6NjQ4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMHB4IDE1cHggMjNweDsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDt9IC5ib3hfYnJhbmR7d2lkdGg6NjQ4cHg7IGZsb2F0OmxlZnQ7cGFkZGluZzoyMHB4IDBweCAxNXB4IDBweDsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgfSAuYm94Ml90ZXh0M3t3aWR0aDo2NjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMTBweCAxMHB4OyBtYXJnaW4tdG9wOjE1cHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmNhcl9ib3h7d2lkdGg6MjA4cHg7IGhlaWdodDoxMzBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOHB4IDAgMDsgcGFkZGluZzowOyBib3JkZXI6MDt9IC5jYXJfaW1hZ2Vze3dpZHRoOjIwOHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYm9yZGVyOjA7IHRleHQtYWxpZ246Y2VudGVyO30gLmNhcl90ZXh0e3dpZHRoOjIwOHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MTBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzAwMDAwMDsgdGV4dC1hbGlnbjpjZW50ZXJ9IC5jYXJfdGV4dCBhIHt0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6IzAwMDAwMDsgbGluZS1oZWlnaHQ6MS4xO30gLmNhcl90ZXh0IGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjojMDAwMDAwfSAuY2FyX2JveDJ7IGhlaWdodDphdXRvOyBtYXJnaW46MCAxMHB4IDEwcHggMDsgb3ZlcmZsb3c6aGlkZGVuOyBib3JkZXItcmFkaXVzOjVweDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgfSAuY2FyX2JveDJfdGF4dHtoZWlnaHQ6YXV0bzsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtYWxpZ246bGVmdDsgbGluZS1oZWlnaHQ6MjFweDt9IC5waWNfYm94MnsgYm9yZGVyOjFweCBzb2xpZCAjQUFBOyBiYWNrZ3JvdW5kOiNGRkZGRkY7IGJvcmRlci1yYWRpdXM6M3B4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyB9IC5waWNfYm94MiBpbWcge3dpZHRoOjEwMCU7fSAucHJpbnR7d2lkdGg6MTkycHg7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZy10b3A6N3B4O30gLnByaW50IGF7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcHJpbnQucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHBhZGRpbmctbGVmdDozNXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5wcmludCBhOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByaW50X2hvdmVyLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA0YTc4OyBwYWRkaW5nLWxlZnQ6MzVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZV9jb257d2lkdGg6ODQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjIwcHggMjFweCAxMHB4IDIwcHg7IH0gLmhvbWUye3dpZHRoOjIzMHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MjBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzczNzM3OyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuaG9tZTN7d2lkdGg6NTEwcHg7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDoxMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzNzM3Mzc7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC50ZXh0MjB7d2lkdGg6MzEwcHg7IGhlaWdodDozMnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6MTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBsaW5lLWhlaWdodDozMnB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDBkMGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC50ZXh0MjAgc3BhbnsgY29sb3I6I0ZGMDAwMDt9IC5pbnB1dDI1e3dpZHRoOjMxMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC52ZXV4e3dpZHRoOjYwMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjEwcHg7IHBhZGRpbmctdG9wOjVweDsgbGluZS1oZWlnaHQ6MTdweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQwZDBkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLWJvdHRvbToxMHB4O30gLk5vc3t3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6IzAwMDAwMDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxNXB4IDAgMTVweCAxNXB4OyBtYXJnaW46NXB4IDA7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojRkZGRkZGO30gLmJ1dHRvbl9qb2JvZmZlciB7IGRpc3BsYXk6YmxvY2s7IGxpbmUtaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2ljb25fZW1wbG95LnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgMHB4IDBweCByZ2IoMjMxLCAyMzIsIDIzMik7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1sZWZ0OjQwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5idXR0b25fMSwgLmJ1dHRvbl8yLCAuYnV0dG9uXzMgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhLCAuYnV0dG9uXzMgYSB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgfSAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEgeyBiYWNrZ3JvdW5kOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgfSAuYnV0dG9uXzEgYTpob3ZlciwgLmJ1dHRvbl8yIGE6aG92ZXJ7IGJhY2tncm91bmQ6IzAwN2ZhNTsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idXR0b25fMyBheyBiYWNrZ3JvdW5kOiMwMDA7IGNvbG9yOiNGRkY7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgfSAuYnV0dG9uXzMgYTpob3ZlcnsgYmFja2dyb3VuZDojRkZGOyBjb2xvcjojMDAwOyB9IC5mYkNvbm5lY3RCdG4geyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMzA1ODk4OyBjb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjNweDsgbGluZS1oZWlnaHQ6MzhweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5mYkNvbm5lY3RCdG4gLmZhLWZhY2Vib29reyBjb2xvcjojMzA1ODk4OyB9IGEuZmFjZWJvb2tDb25uZWN0QnRuIHsgY29sb3I6I2ZmZjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LWZhbWlseTppbmhlcml0OyB9IC5idXR0b25fdmlkZW9zX2ZyIGEsIC5idXR0b25fdmlkZW9zX2VuIGF7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgZGlzcGxheTpibG9jazsgfSAuYnV0dG9uX3ZpZGVvc19mciBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19mciBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGEsIC5idXR0b25fdmlkZW9fZW4gYXsgd2lkdGg6MTkzcHg7IGhlaWdodDo1MXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5idXR0b25fdmlkZW9fZnIgYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uLWhvdmVyX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZW4gYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3VuZGVye3dpZHRoOjI0OXB4OyBwYWRkaW5nOjBweDsgbWFyZ2luOjEwcHggMHB4O30gLmJ1dHRvbl91bmRlciBheyB3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6bm9uZTsgZGlzcGxheTpibG9jayB9IC5idXR0b25fdW5kZXIgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgfSAuYnV0dG9uX3VuZGVyLnByb21vIGF7YmFja2dyb3VuZC1jb2xvcjojZTgwZDBkOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiNGRkY7IHdpZHRoOjIzN3B4OyBtYXJnaW4tbGVmdDo1cHg7fSAuYnV0dG9uX3VuZGVyLnByb21vMyBhe2JhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojRkZGOyB3aWR0aDoyMzdweDsgbWFyZ2luLWxlZnQ6NXB4O30gLmJ1dHRvbl91bmRlci5wcm9tbyBhOmhvdmVyLC5idXR0b25fdW5kZXIucHJvbW8yIGE6aG92ZXIsLmJ1dHRvbl91bmRlci5wcm9tbzMgYTpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2J1dHRvbl8xaG92ZXIucG5nKX0gLmJ1dHRvbl80e3dpZHRoOjI0OXB4OyBoZWlnaHQ6NTdweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5idXR0b25fNCBheyB3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IHBhZGRpbmctdG9wOjdweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fNC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IGRpc3BsYXk6YmxvY2sgfSAuYnV0dG9uXzQgYTpob3Zlcnt3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzRob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyB9IC5jaGVja2JveDE1Mnt3aWR0aDphdXRvOyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgfSAuQmFzZTIye3dpZHRoOmF1dG87IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NnB4OyBwYWRkaW5nOjZweCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94OTQwX2xpbmV7d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUyNS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgYm90dG9tOjA7fSAud2hpdGVfYm94e3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojRkZGRkZGOyBvdmVyZmxvdzpoaWRkZW47IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLmJveDEwMHt3aWR0aDoyMjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MTNweCAwIDE1cHggMTBweDt9IC5ib3gxMDF7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuYm94MTAye3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O30gLmJveDEwM3t3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5ib3gxMDR7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7fSAuYm94RXZlbnt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O30gLmJveE9kZHt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmZpbGVpbnB1dC1idXR0b24sIC5maWxlaW5wdXQtYnV0dG9uOmhvdmVyIHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjMxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5maWxlaW5wdXQtYnV0dG9uIGlucHV0IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBtYXJnaW46MDsgb3BhY2l0eTowOyAtbXMtZmlsdGVyOidhbHBoYShvcGFjaXR5PTApJzsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9IC5ib3g5NDBfbWFpbnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDAgMTVweCAwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94MjAwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NnB4O30gLndoaXRlX2JveF90ZXh0Mnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDN7YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NXtiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLndoaXRlX2JveF90ZXh0NntwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF9ibGFua3t3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dE9kZHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0RXZlbntiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYm94X3RpdGxle3dpZHRoOjkzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzozMHB4IDBweCA1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuY3VzdG9tXzIyIHt3aWR0aDoyNDFweDsgaGVpZ2h0OjEyMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjAgOHB4IDhweCAwOyBiYWNrZ3JvdW5kOiNlYmViZWI7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt9IC5jdXN0b21fMjIyIHt3aWR0aDoyNDFweDsgaGVpZ2h0OjEyMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjAgOHB4IDhweCAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt9IC50b3lvdGFfY2Ftcnl7d2lkdGg6NDMwcHg7IGhlaWdodDoyMjJweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDBweCAwcHggMTBweDsgbWFyZ2luLXJpZ2h0OjhweDsgYmFja2dyb3VuZDojZWJlYmViOy1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7fSAudG95b3RhX2NhbXJ5IGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206NXB4O30gLnRveW90YV9jYW1yeSBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206OHB4O30gLmJveDJfZGV0YWlsc190ZXh0MjV7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjoxNXB4IGF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDRweCAjODI4MjgyO30gLmJveDJfZGV0YWlsc190ZXh0MjUgc3BhbnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuYm94MTV7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDJweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE1IGgye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTUgaDIgYXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo0MHB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNSBoMiBhOmhvdmVye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTZ7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTYgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNiBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24zLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjIwcHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE2IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6cmdiKDAsMCwwKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjMucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxN3t3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNyBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE3IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjVweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTcgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE4e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE4IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTggaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNS5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBwYWRkaW5nLXJpZ2h0OjVweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOCBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb241LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTl7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4OyBwYWRkaW5nLXJpZ2h0OjNweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE5IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTkgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE5IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjYucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxMTE0e2N1cnNvcjpwb2ludGVyO3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl8xLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTExNCBoMntjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDExMTQgaDIgYXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo0MHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTExNCBoMiBhOmhvdmVye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuU3BlY2lmaWNhdGlvbnN7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNTI1MjU7IHRleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW4tdG9wOjVweDt9IC5Nb3JiaTJ7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHg7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDtmb250LXdlaWdodDpub3JtYWw7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLk1vcmJpMiBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206OHB4O30gLmJveDI4ODlfbWlke3dpZHRoOjI3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgNXB4IDIwcHggNXB4O30gLk1vcmJpMjJ7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjBweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94Mjg4OV9taWQgaDF7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMTBweCAyMHB4IDEwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjRweH0gLl9ib3gyODg5X21pZCBoMXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDIwcHggMTBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyNHB4fSAuYm94Mjg4OV9taWQgaDJ7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjRweCAxMHB4IDIwcHggMTVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjNweH0gI3NpbWlsYXJUaXRsZXsgcGFkZGluZzo0cHggMTBweCA5cHggMTVweDsgZm9udC1zaXplOjEuNDM4cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC50YWJlNXt3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gLnRhYmU1IHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAudGFiZTUgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC50YWJlNSB1bCBsaSBzcGFue2N1cnNvcjpwb2ludGVyOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3RhYl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDt9IC50YWJlNSB1bCBsaSBzcGFuOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6ICNlYmViZWI7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyB9IC50YWJlNSB1bCBsaSBzcGFuLmFjdGl2ZXtjdXJzb3I6ZGVmYXVsdDsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiAjZWJlYmViOyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgfSAudGFiX2RldGFpbHMye3dpZHRoOjYzMXB4OyBwYWRkaW5nOjEwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7fSAuYm94MjV7d2lkdGg6NDg3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbjowIDEzcHggMCAwOyBwYWRkaW5nOjIwcHggMCAyMHB4IDIwcHg7fSAuYm94MjZ7d2lkdGg6MjQzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDI2IHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MjYgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC5ib3gyNiB1bCBsaSBzcGFueyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0O30gLmJveDI2IHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5ib3gyNiB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNiB1bCBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI3e3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmJveDMze3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDt9IC5ib3gzMyB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDMzIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7fSAuYm94MzMgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MzMgdWwgbGkgc3BhbnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MzMgcHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCAwcHggN3B4IDBweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5ib3gzMyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYXJyb3c4LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5Nb3RldXJ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjVweDt9IC5Nb3RldXIgaDJ7d2hpdGUtc3BhY2U6bm9ybWFsOyB3aWR0aDoxMzVweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojMjAyMDIwO30gLk1vdGV1ciBoM3t3aGl0ZS1zcGFjZTpub3JtYWw7IHdpZHRoOjE0MHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM1YTVhNWE7fSAuYm94MjYgdWwgbGkgc3BhbjpiZWZvcmUsLmJveDMzIHVsIGxpIHNwYW46YmVmb3JlLC5Nb3RldXIgaDI6YmVmb3JlIHsgY29udGVudDoiXGYxMzgiOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyBtYXJnaW4tcmlnaHQ6NXB4OyB9IC5ib3gyNyBhe3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14IDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDoyOHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gyNyBhOmhvdmVye3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgLTMycHggcmVwZWF0LXggOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjhweDsgfSAuYm94Mjh7d2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiM2ZjZmNmYgdXJsKC9pbWFnZXMvbGl0ZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgbWFyZ2luOjAgMHB4IDAgMDt9IC50ZXh0NDR7d2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpdGVyX2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbTo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjB7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IH0gLnRleHRfYm94NjAgaDJ7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNjI2MjY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC50ZXh0X2JveDYwIGgze3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjAgcHt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNjI2MjY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC52aW9ye3dpZHRoOmF1dG87IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Zpb3IucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyB9IC5ib3gxMzN7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IG1hcmdpbjowO30gLmJveDI1OHt3aWR0aDoyNThweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2I5YjliOTsgcGFkZGluZzowIDEwcHggNXB4IDEwcHg7IG1hcmdpbi1ib3R0b206NXB4OyBmbG9hdDpsZWZ0O30gLmJveDExNnt3aWR0aDoxMTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJvcmRlcjoycHggc29saWQgI0ZGRkZGRjsgcGFkZGluZzowOyBtYXJnaW4tcmlnaHQ6NXB4O30gLmJveDExNiBpbWd7d2lkdGg6MTIwcHg7IH0gLmJveDJ7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NDdweDsgbWFyZ2luLWxlZnQ6MjBweDsgcGFkZGluZzowIDAgMTBweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgO30gLmJveDIgc3Bhbntmb250OmJvbGQgMTJweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwfSAuYm94M3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDoyMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7fSAuYm94MyBzcGFue2ZvbnQ6Ym9sZCAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDB9IC5ib3g0e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCA0NXB4IDEwcHggMjBweDsgfSAuYm94NDR7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDQ3cHggMTBweCAyMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTt9IC5ib3g1e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAyMHB4IDEwcHggMDt9IC5ib3g2e3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjEwcHggMHB4IDBweCAwO30gLmJveDU1e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAyMHB4IDEwcHggMDtwb3NpdGlvbjpyZWxhdGl2ZTt9IC5saW4ye3dpZHRoOjYxN3B4OyBoZWlnaHQ6MnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDAgMTBweCAwOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZTIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDt9IC5ib3gxNHtwYWRkaW5nOjBweCAwOyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdH0gLmJveDIwe3BhZGRpbmc6MCAxMHB4OyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoyN3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC50ZXh0MzB7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzI0MjQyNH0gLnRleHQzMCBzcGFue3BhZGRpbmctcmlnaHQ6MTBweDsgZmxvYXQ6cmlnaHQ7IHRleHQtYWxpZ246cmlnaHQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzI0MjQyNDt9IC50ZXh0MzAgc3BhbiBzdHJvbmd7Zm9udDpib2xkIDIwcHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMCB9IC5ib3g2MTd7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBwYWRkaW5nLWJvdHRvbToyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4O30gLm1haW42MTd7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjE1cHg7fSAuYm94MjBBe3BhZGRpbmc6MCA1cHg7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBmb250LXdlaWdodDpib2xkO30gLm9uU2l0ZSArIC5wcmVmZXJyZWQsIC5wcmVmZXJyZWQ6aGFzKCsub25TaXRlKSB7IGFsaWduLXNlbGY6ZW5kOyB9ICNzZXJ2aWNlUGFja2FnZXMgdGFibGUge2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgd2lkdGg6MTAwJTsgbGluZS1oZWlnaHQ6MzBweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6OTAlO30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7YmFja2dyb3VuZDojZjNmM2YzO30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0ZHtwYWRkaW5nLXRvcDowLjVyZW07IHZlcnRpY2FsLWFsaWduOnRvcDsgbGluZS1oZWlnaHQ6MS41O30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0ZDpudGgtY2hpbGQoMikge3BhZGRpbmc6MC41cmVtO30gLmRldGFpbENhclRpdGxlLCAuZGV0YWlsQ2FyVGl0bGVXaWRlLCAuZGV0YWlsQ2FyVGl0bGVGdWxsIHt3b3JkLXdyYXA6YnJlYWstd29yZDtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTtmb250LXdlaWdodDpub3JtYWw7fSAuZGV0YWlsQ2FyVGl0bGUge3dpZHRoOjQ5MHB4O30gLmRldGFpbENhclRpdGxlV2lkZSB7d2lkdGg6Nzc1cHg7fSAuZGV0YWlsQ2FyVGl0bGVGdWxsIHt3aWR0aDoxMDAlO30gLm1haW5ib3hfdGV4dGFyZTYxN3toZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjIwcHggMDsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAwJSk7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjUwJTt9IC50ZXh0Ym94MjJ7d2lkdGg6MzgxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MHB4IDBweCAwIDA7fSAuYnV0dG9uNTF7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyB9IC5idXR0b241MSBheyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b241LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkYgOyBwYWRkaW5nOjAgMTBweDsgbGluZS1oZWlnaHQ6MzZweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJ1dHRvbjUxIGE6aG92ZXJ7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjUucG5nKSBsZWZ0IC00NHB4IHJlcGVhdC14OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGIDsgcGFkZGluZzowIDEwcHg7IGxpbmUtaGVpZ2h0OjM2cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTpub25lO30gLnRleHQ1NXt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDIwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjaykgOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDU1IHB7IHBhZGRpbmctbGVmdDowcHggNXB4IDAgMDsgbWFyZ2luOjBweCAwcHggMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAucGljYm94XzIyMXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjBweCAxNXB4IDAgMDt9IC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjMzMnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAuaXNGdWxsV2lkdGhQYWdlIC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjQ0MnB4OyB9IC5waWNib3g2NTF7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46NXB4IDEwcHggMHB4O30gLnBpY2JveDkzMHt3aWR0aDo5MzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjo1cHggNXB4IDBweDt9IC5waWNib3g2NTEgaW1nIHsgd2lkdGg6NjUxcHg7IH0gLnBpY2JveDkzMCBpbWcgeyB3aWR0aDo5MzBweDsgfSAucGljYm94NjUxIGltZywgLnBpY2JveDkzMCBpbWcgeyBmbG9hdDpsZWZ0OyBjdXJzb3I6cG9pbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudG9wUHJvbW9JbWFnZSBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tdG9wOjVweDsgd2lkdGg6OTMwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC50b3BQcm9tb0ltYWdlVXNlZCBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB3aWR0aDo2NTBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnRlYW1fdGl0bGVfZGVhbGVye21hcmdpbi1ib3R0b206MTVweDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuZm9ybXNfYm94NjYxe3dpZHRoOjk2MHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjEwcHggYXV0bzsgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudGV4dGJveDE5MXt3aWR0aDo1MiU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxLjI7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRib3gxOTEgaDR7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMyNDI0MjQ7IHBhZGRpbmctYm90dG9tOjVweDsgfSAubWFpbmJveDI5MXt3aWR0aDoyOTFweDsgbWluLWhlaWdodDoxMjNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5lbWFpbF9saW5re3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojODg4O30gLmVtYWlsX2xpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMzMzM7fSAucGFnZV9uYW1lNTU1IHsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MDsgfSAucGFnZV9uYW1lNTU1IGF7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZTU1NSBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wYWdlX25hbWU1NTUgYTp2aXNpdGVkeyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWVORVc1NTUgeyBjb2xvcjojMjQyNDI0OyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5wYWdlX25hbWVORVc1NTUgYXsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lTkVXNTU1IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnBhZ2VfbmFtZU5FVzU1NSBhOnZpc2l0ZWR7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDQ0IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjFyZW07IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDoxOHB4OyBwYWRkaW5nOjEwcHggMCAwIDA7IHdpZHRoOmF1dG87IH0gLnRleHRfYm94MTEgeyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MCAyMHB4IDEwcHggMDsgd2lkdGg6YXV0bzsgbGluZS1oZWlnaHQ6MjFweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IH0gLnRleHRfYm94MTEgaDQgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MTBweCAwOyB9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MC43NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjEwcHggMDsgZmxvYXQ6bGVmdDsgfSAudGV4dF9ib3gxMSBhOmhvdmVyIHsgY29sb3I6IzI0MjQyNDsgfSAudGV4dF9ib3gxMSBhOnZpc2l0ZWQgeyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0X2JveDExIHVsLCAudGV4dF9ib3gxMSBwIHsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowIDAgNXB4OyB9IC50ZXh0X2JveDExIHVsIHsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7IH0gLnRleHRfYm94MTEgcCBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZmxvYXQ6bm9uZTsgfSAucGljYm94MzM2IHsgYm9yZGVyOjFweCBzb2xpZCAjN0Q3RDdEOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjY4cHg7IH0gLmZvbnRfc2l6ZTIxIHsgZm9udC1zaXplOjEuMzEzcmVtICFpbXBvcnRhbnQ7IH0gLnBhZ2VfbmFtZTE4IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZTE4IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnZpZGVvNSB7IGZsb2F0OmxlZnQ7IGhlaWdodDo0MXB4OyBtYXJnaW4tdG9wOjcwcHg7IG1hcmdpbi1sZWZ0OjcwcHg7IH0gLmZsb2F0TG9nb3sgd2lkdGg6NjIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjI1cHggMTVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9MT0dPX0dBX1RSQU5TUEFSRU5ULnBuZykgcmlnaHQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBib3R0b207IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo2cHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYm9yZGVyOm1lZGl1bSBub25lOyBjb2xvcjojRkZGRkZGOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luOjA7IG92ZXJmbG93OnZpc2libGU7IHBhZGRpbmc6MDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2J0bl9yaWdodDIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCB0b3AgdHJhbnNwYXJlbnQ7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDozNXB4OyBtYXJnaW46MDsgcGFkZGluZzowIDZweCAwIDA7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYnRuX2xlZnQyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiNGRkZGRkY7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjEzcHg7IHBhZGRpbmc6MTJweCAxM3B4IDAgMTVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25faG92ZXIgc3BhbiBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0zOHB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2hvdmVyIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0zOHB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2NsaWNrIHNwYW4gc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNjZweDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9jbGljayBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtNjZweDsgfSAudmVoaWNsZUxpc3RUYWJsZSB7IG1hcmdpbjoxMHB4OyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgeyBib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgIzY2NjY2NjsgaGVpZ2h0OjMwcHg7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYXsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGE6aG92ZXJ7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBhOnZpc2l0ZWR7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAuZXhwYW5kUm93eyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjFmMWY7IHRleHQtYWxpZ246cmlnaHQ7IGNvbG9yOiM0MTQxNDE7IG1hcmdpbi1sZWZ0OjRweDsgbWFyZ2luLXJpZ2h0OjJweDsgfSBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmRkZGQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNkMTAwMGM7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgei1pbmRleDo5OTk5OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I2VmZmZlZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMDk3NzAwOyBjb2xvcjojMDk3NzAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSBkaXYudG95b3RJbWFnZSB7IGNvbG9yOiM2NjY2NjY7IGZvbnQtc2l6ZTozLjQzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDoyNTBweDsgbGVmdDowOyBvcGFjaXR5OjAuODsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nOjVweCAxMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjM4MHB4OyB6LWluZGV4Ojg7IH0gZGl2LnRveW90SW1hZ2UgcCB7IHBhZGRpbmc6NXB4OyBtYXJnaW46MDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6I0E2QTZBNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gZGl2Lm5ld0Nhck1haW5Cb3ggeyB3aWR0aDo5NjBweDsgbWFyZ2luOjAgYXV0bzsgfSBkaXYubmV3Q2FyTWFpbkJveDIgeyBtYXJnaW4tdG9wOjVweDsgfSBkaXYubmV3Q2FyTWFpbkJveDMgeyB3aWR0aDo5NjBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94OTcwX3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgfSAuc3RvY2tJbWdTdHlsZXsgd2lkdGg6MTAwJTsgaGVpZ2h0OjUwJTsgZm9udC1zaXplOjIuMjVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy10b3A6MzBweDsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbjowcHg7IGNvbG9yOiMzMDMwMzA7IH0gI2ZpcnN0U2xpZGVySW1nIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxNTsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IG9wYWNpdHk6MTsgcGFkZGluZzowOyBtYXJnaW46MDsgfSAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyeyBib3JkZXI6MXB4IHNvbGlkICNGRkY7IHdpZHRoOjY0MHB4OyBoZWlnaHQ6NDgwcHg7IH0gI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlciAuaW5uZXItcGxhY2Vob2xkZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmZsZXg7IHRvcDowOyBib3R0b206MDsgbGVmdDowOyByaWdodDowOyB9ICNmaXJzdFNsaWRlckltZyBJTUd7IGhlaWdodDphdXRvOyBtYXgtd2lkdGg6NjQwcHg7IG1heC1oZWlnaHQ6NDgwcHg7IHdpZHRoOmF1dG87IG1hcmdpbjphdXRvOyB9ICNmaXJzdFNsaWRlckltZy5mYWRlLW91dHsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgLXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgLW1vei10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgLW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IHRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyB9ICNzb2NpYWxUaW1lbGluZXsgd2lkdGg6OTYwcHg7IGhlaWdodDphdXRvOyB9IGRpdi5uZXdDYXJNYWluQm94NCB7IHdpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3g5NzBfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MTBweCAxNXB4OyB9IGRpdi5uZXdDYXJUaXRsZUJveCBoMXsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuZ3JheWJveCB7IGJhY2tncm91bmQtY29sb3I6I0VGRUZFRjsgYm9yZGVyOjFweCBzb2xpZCAjRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6IzAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjEwcHggMCAxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXNoYWRvdzowIDFweCAwICNGRkZGRkY7IH0gLmdyYXlib3ggPiBzcGFuIHsgY29sb3I6IzAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmdyYXlib3ggLnNtYWxsdGV4dCB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNDQ0NDQ0M7IGJvcmRlci10b3A6MXB4IHNvbGlkICNDQ0NDQ0M7IGNvbG9yOiMzMzMzMzM7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IG1hcmdpbi10b3A6MTBweDsgcGFkZGluZzoxMHB4OyB9IC5ncmF5Ym94IGgyIHsgY29sb3I6IzAwMDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbjo1cHggYXV0bzsgfSAuZXh0ZW5kZWRQaG9uZXsgcG9zaXRpb246Zml4ZWQ7IGJhY2tncm91bmQtY29sb3I6IzY3Njc2NzsgY29sb3I6I2RkZDsgcGFkZGluZzowLjZlbTsgYm9yZGVyLXJhZGl1czo1cHg7IHotaW5kZXg6OTk5OTsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5leHRlbmRlZFBob25lIGxhYmVseyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZXh0ZW5kZWRQaG9uZSBzcGFueyBjb2xvcjojZmZmOyB9IC5waG9uZU5vdGV7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHBhZGRpbmctdG9wOjdweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdkV4IHsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjFyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmctbGVmdDoyMHB4OyBwYWRkaW5nLXRvcDozMHB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IGRpdnsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctdG9wOjEwcHg7IHdpZHRoOjIwMHB4OyBmbG9hdDpsZWZ0OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVseyBtYXJnaW4tYm90dG9tOjIwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IG1hcmdpbi10b3A6NXB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpeyBsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDo0MHB4OyB0ZXh0LWluZGVudDotMTBweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBheyBjb2xvcjojMzMzOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGkgYXsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYXJyb3dfcmVkLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgMCAxMHB4IHRyYW5zcGFyZW50OyBjb2xvcjojMzMzMzMzOyBtYXJnaW4tcmlnaHQ6MnB4OyBwYWRkaW5nOjZweCAxMHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuY29tcGFyZUxpbmtzIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5jb21wYXJlTGlua3MgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuZW1haWxCb2R5LCAuZW1haWxTdWJqZWN0eyBkaXNwbGF5Om5vbmU7IH0gI2NvbnRhY3R1cyBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmRkZGQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNkMTAwMGM7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9ICNjb250YWN0dXMgZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I2VmZmZlZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMDk3NzAwOyBjb2xvcjojMDk3NzAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAjUGFnZUZpbmFuY2UgLnN0ZXBBY3RpdmUgeyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy8xX2hvdmVyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiMwMDAwMDA7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6NDZweDsgbWFyZ2luLWxlZnQ6MTBweDsgfSAjUGFnZUZpbmFuY2UgLnN0ZXBVbmFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzLzFfcm91bmQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6I0ZGRkZGRjsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDo0NnB4OyBtYXJnaW4tbGVmdDoxMHB4OyB9ICNQYWdlRmluYW5jZSAudGV4dDEgc3BhbiB7IGNvbG9yOiM0MzQzNDM7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNGM0YzRjM7IHdpZHRoOmF1dG87IH0gI1BhZ2VGaW5hbmNlIGRpdi5lbWFpbFNlbnRNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNCOEZGQjg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2FjY2VwdGVkLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQgIzBCOTYwMDsgY29sb3I6IzBCOTYwMDsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gLm90aGVyX2xpbmtzIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5vdGhlcl9saW5rcyBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wcm9tb3Rpb25TaWRlQnRuQSB7IGJhY2tncm91bmQ6IzAwMmM1ZjsgY29sb3I6I2ZmZmZmZjsgZGlzcGxheTpibG9jaztmb250LXNpemU6MS4yNXJlbSA7d2lkdGg6Zml0LWNvbnRlbnQ7aGVpZ2h0OjUzcHg7cGFkZGluZzoycHggMTVweCAwcHggMTVweDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDo1M3B4O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtc2l6ZToxMDAlOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDozcHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDozcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowcHg7IHRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgLW1zLXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IH0gLmZvb3Rlck11bHRpQWRkcmVzczMgeyBib3JkZXItcmlnaHQ6MXB4ICM5MTkxOTEgc29saWQ7IHBhZGRpbmctcmlnaHQ6NzBweDsgbWFyZ2luLWxlZnQ6MTRweDsgY29sb3I6IzU3NTc1NzsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMiB7IGJvcmRlci1yaWdodDoxcHggIzkxOTE5MSBzb2xpZDsgcGFkZGluZy1yaWdodDoxNTBweDsgbWFyZ2luLWxlZnQ6OTNweDsgY29sb3I6IzU3NTc1NzsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMSB7IG1hcmdpbi1sZWZ0OjM0NXB4OyBjb2xvcjojNTc1NzU3OyB9IC5zbWFsbEFjdGlvbldlYnNpdGVDb2xvciB7IGJhY2tncm91bmQgOnVybCgiL2ltYWdlcy9ibF9iZzIucG5nIikgbGVmdCB0b3AgcmVwZWF0LXg7IGNvbG9yOnJnYigwLDAsMCk7IH0gLnNtYWxsQWN0aW9uV2Vic2l0ZUNvbG9yOmhvdmVyeyBiYWNrZ3JvdW5kIDp1cmwoIi9pbWFnZXMvbWVudTEwX2JnLnBuZyIpIGxlZnQgdG9wIHJlcGVhdC14OyBjb2xvcjojRkZGOyB9IC5uYXYgbGkgYS50b3BfbGluay5pc0JvbGQsIC5uYXYgbGkgYS5pc0JvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI21haW5IZWFkZXIgZGl2LmJveDE1UGFkZGluZ3sgcGFkZGluZy10b3A6MTVweDsgfSAubmF2IC5ub3RDbGlja2FibGV7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IH0gLlMxMDBQZXJjZW50V2lkdGh7IHdpZHRoOjEwMCU7IH0gI2ZpbHRlck1haW5Cb3ggeyBjb2xvcjojMDAwOyB9ICNmaWx0ZXJNYWluQm94IC5maWx0ZXJTcGFuLCAjZmlsdGVyTWFpbkJveCAuZmlsdGVyQ2hlY2ssICNmaWx0ZXJNYWluQm94IC5yYWRpb1NvcnQgeyBjdXJzb3I6cG9pbnRlcjsgfSAuYkNvZGVTdHlsZSB7IGZsb2F0OmxlZnQ7IHdpZHRoOjI1JTsgZm9udC1zaXplOjAuOGVtOyBwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbToxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOjsgfSAuYkNvZGVTb3J0IHsgZmxvYXQ6bGVmdDsgd2lkdGg6MTYlOyBiYWNrZ3JvdW5kLWNvbG9yOjsgZm9udC1zaXplOjAuOGVtOyBwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbToxNXB4OyB9IC5iQ29kZVNvcnQgLmJDb2RlSGVhZGluZywgLmJDb2RlU3R5bGUgLmJDb2RlSGVhZGluZyB7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWxlZnQ6MnB4OyB9IC5wYWdlX25hbWU0Mnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDt9IC5wYWdlX25hbWU0MiBoMiB7Zm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMwMDAwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsO2JvcmRlcjpub25lO30gLnBhZ2VfbmFtZTQyIGgyLm5vdGZpcnN0IHtmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWw7bWFyZ2luLXRvcDowcHg7cGFkZGluZy10b3A6NDBweDtib3JkZXItdG9wOjFweCAjY2NjY2NjIHNvbGlkO3dpZHRoOjkyMHB4O30gI2ZpbHRlck1haW5Cb3gubmV3Y2Fyc3N0eWxlMnsgLW1vei1ib3JkZXItcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXItcmFkaXVzOjBweDsgYm9yZGVyOm5vbmU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNiZWJlYmU7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNiZWJlYmU7IHdpZHRoOjk1NXB4OyBsZWZ0OjNweDsgfSBkaXYuaW1kZXYgbGFiZWx7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctdG9wOjEwcHg7IH0gZGl2LmltZGV2IGRpdnsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiNEOUQ5RDk7IHBhZGRpbmc6MTBweCAwcHggMTBweCAwcHg7IHdpZHRoOjEwMCU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gZGl2LmltZGV2X2lubmVyIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBtYXJnaW4tbGVmdDozMHB4OyB3aWR0aDo5MCUgIWltcG9ydGFudDsgfSB1bC5xdWl6IHtwYWRkaW5nOjEwcHggMCAxMHB4IDIwcHg7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBoZWlnaHQ6MTc1cHg7fSB1bC5xdWl6IGxpIHtwYWRkaW5nOjEwcHg7fSB1bC5xdWl6IGxpIGlucHV0IHttYXJnaW4tcmlnaHQ6MTBweDt9IC5uZXdzLWJvZHkge3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6MC44MTNyZW0gO2NvbG9yOiMxOTE5MTk7cGFkZGluZy1yaWdodDoxNXB4O21hcmdpbi10b3A6LTIwcHg7cGFkZGluZy1ib3R0b206MTBweDt9IC5uZXdzLWFsbC10ZXh0IHtjb2xvcjojMTkxOTE5O30gI25ld3NDb250YWluZXIgLnRleHRfYm94MTEgaW1nIHsgbWF4LXdpZHRoOjY0MHB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IGF1dG87IH0gI25ld3NDb250YWluZXIgLnVzZWR7IGNsZWFyOmJvdGg7IH0gLmhvbWVfYWN0aW9uX2FkaiB7IHdpZHRoOjk2MXB4OyB9IC5ob21lX2FjdGlvbl9hZGoyIHsgd2lkdGg6NzMwcHghaW1wb3J0YW50OyBoZWlnaHQ6NjAwcHghaW1wb3J0YW50OyB9IC5ob21lX2VtYWlseyB3aWR0aDoyMzJweDsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAud2lkZ2V0X21lbnVfYWRqMXsgZm9udC1zaXplOjAuOGVtOyB9IC53aWRnZXRfbWVudV9hZGoyeyBmbG9hdDpyaWdodDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTJweDsgfSAud2lkZ2V0X21lbnVfZXh0ZW5kZWRQaG9uZXsgZm9udC1zaXplOjAuOGVtOyBtYXJnaW4tbGVmdDoxMDRweDsgdG9wOjEzMnB4OyB9IC53aWRnZXRfbWVudV9hZGozeyBmb250LXNpemU6MC44ZW07Y29sb3I6IzU3NTc1Nztwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0Oi04cHg7IH0gLndpZGdldF9tZW51X2FkajR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MC44ZW07IGRpc3BsYXk6dGFibGU7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLnBob25lX3RleHQucmlnaHQgeyBmbG9hdDpub25lOyBoZWlnaHQ6aW5pdGlhbDsgbWFyZ2luLWxlZnQ6YXV0bzsgd2lkdGg6aW5oZXJpdDsgfSAucGhvbmVfdGV4dCAudGVsIHsgbWFyZ2luLWxlZnQ6MTBweDsgfSAucGhvbmVfdGV4dCBsYWJlbCB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206NHB4OyB9IC53aWRnZXRfbWVudV9hZGo0LnJpZ2h0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLndpZGdldF9tZW51X2FkajQubGVmdCB7IHBhZGRpbmctcmlnaHQ6MTBweDsgd2lkdGg6aW5oZXJpdDsgfSAud2lkZ2V0X21lbnVfYWRqNnsgZm9udC1zaXplOjAuOGVtO3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6LTNweDtjb2xvcjojNTc1NzU3O2N1cnNvcjpwb2ludGVyOyB9IC53aWRnZXRfZXhwcmVzc19tYWlsX3Bob25lX3RpdGxleyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYWFhO3RleHQtYWxpZ246IGNlbnRlcjtmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206OHB4OyBwYWRkaW5nLXRvcDo4cHg7IGNvbG9yOiMwMDAwMDA7IH0gLndpZGdldF9leHByZXNzX21haWxfYWRqMXsgcGFkZGluZzoxNXB4IDEwcHg7IGxpbmUtaGVpZ2h0OjYwcHg7IGZvbnQtc2l6ZToyZW07IHBhZGRpbmc6MTVweCAxMHB4O3RleHQtYWxpZ246Y2VudGVyOyB9IC5iYW5uZXJQb3B1cENsb3NleyBsZWZ0OjcxMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTVweDsgdG9wOjIwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5wcmljZU5vdGUgeyBjb2xvcjojNzU3NTc1OyBmb250LXN0eWxlOml0YWxpYzsgdGV4dC1hbGlnbjpqdXN0aWZ5OyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTRweDsgfSAuc3RhY2tlZERpc2NsYWltZXJ7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6MTBweDsgfSBzcGFuLnN0YWNrZWREaXNjbGFpbWVyOmJlZm9yZXsgY29udGVudDoiKioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjFyZW07IH0gLnRvcHJpbnR7IGRpc3BsYXk6bm9uZTsgfSAucmVmZmVyZW5jZUNvbnRlbnREZW1vLCAucmVmZmVyZW5jZUNvbnRlbnRDbGVhcmFuY2V7IHBhZGRpbmc6MzBweCAyMHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjOyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gLmJveDJfZGV0YWlsc190ZXh0MiAuY29tcGFyZUJ1dHRvbiwgLmJveDJfZGV0YWlsc190ZXh0MjIgLmNvbXBhcmVCdXR0b257IHBvc2l0aW9uOmFic29sdXRlOyBtYXJnaW4tdG9wOi0yMHB4OyB6LWluZGV4OjE7IGxlZnQ6LTMwcHg7IH0gLnZkcHsgY2xlYXI6Ym90aDsgd2lkdGg6MTYwcHg7IH0gLmNvbXBhcmVCdXR0b257IHRyYW5zaXRpb246Ym94LXNoYWRvdyAwLjI1cyBlYXNlLW91dCAwczsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQgMHM7IGRpc3BsYXk6bm9uZTsgfSBkaXYjc2xpZGVyLXByby0xMiB7IGJvcmRlcjoxcHggc29saWQgI0VCRUJFQjsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQ6I2ZmZjsgfSAjc2xpZGVyUHJvbW9BbGVydHsgYm9yZGVyLXJhZGl1czozcHggM3B4IDAgMDsgfSAuc2xpZGUtd3JhcHBlcnsgYm9yZGVyLXJhZGl1czozcHg7IH0gI3NsaWRlaXQgbGFiZWwub3BlbnsgYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDsgfSBpbWcuaW1hZ2UgeyBib3JkZXItcmFkaXVzOjNweDsgfSAubmV3VmRwVmlld2VyIC5jb21wYXJlQnV0dG9ueyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjJweDsgcmlnaHQ6MHB4OyB6LWluZGV4OjExMTE7IH0gLmxpdmVBbGVydF9saW5reyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubGl2ZUFsZXJ0X2xpbms6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5idXR0b24tdG9hc3RyeyBiYWNrZ3JvdW5kOiNGRkY7cGFkZGluZzo0cHggMjBweDtib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0JEMzYyRiFpbXBvcnRhbnQ7IH0gLmJ1dHRvbi10b2FzdHI6aG92ZXJ7IGJhY2tncm91bmQ6IzAwMDsgY29sb3I6I0ZGRjsgfSAucmV0dXJuUG9wdXBfc3VibWl0IHNwYW4geyBwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7IHRvcDo1MCUhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50OyBsZWZ0OjAhaW1wb3J0YW50OyByaWdodDowIWltcG9ydGFudDsgcGFkZGluZzowIDhweCAwIDhweCFpbXBvcnRhbnQ7IGN1cnNvcjpwb2ludGVyIWltcG9ydGFudDsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IG1hcmdpbjowIWltcG9ydGFudDsgY29sb3I6I0ZGRiFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6LTlweCFpbXBvcnRhbnQ7IH0gcmV0dXJuUG9wdXBfc3VibWl0OmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojMGJiMWUwOyBjb2xvcjojZmZmOyB9IC5yZXR1cm5Qb3B1cF9zdWJtaXQgeyBkaXNwbGF5OmJsb2NrOyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1yYWRpdXM6NXB4OyBsZWZ0OjIyOHB4OyB6LWluZGV4OjU7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6NDBweDsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6IzAwYWFkMjsgdGV4dC1zaGFkb3c6MXB4IDFweCAjMDAyYjQ2OyBjb2xvcjojZmZmOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgZm9udC1zaXplOjFyZW0gOyBsaW5lLWhlaWdodDoxOXB4OyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IH0gI3JldHVyblBvcHVwRm9ybV93cmFwcGVyIHsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDpyZ2JhKDY2LDY2LDY2LDEpOyBib3JkZXItc3R5bGU6bm9uZTsgYm9yZGVyLXJhZGl1czoxMXB4OyBsZWZ0OjI4MHB4OyB0b3A6MTU1cHg7IHotaW5kZXg6Mjsgd2lkdGg6NTMxcHg7IGhlaWdodDozODRweDsgcG9zaXRpb246YWJzb2x1dGU7IH0gI3JldHVyblBvcHVwVGlsdGV7IHdpZHRoOjMzNXB4OyBmbG9hdDpyaWdodDsgbWFyZ2luOjIwcHg7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI3JldHVyblBvcHVwVGlsdGUgLnJwX21jeyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDsgfSAjcmV0dXJuUG9wdXBUaWx0ZTJ7IGNvbG9yOiNGRkY7IG1hcmdpbjoyMHB4IDEwcHggMjBweCAyMHB4OyBwYWRkaW5nOjA7IH0gLnJldHVyblBvcHVwRm9ybV9sYWJlbCB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MTRweDsgY29sb3I6I2JmYmZiZjsgbWFyZ2luLWxlZnQ6MjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnJldHVyblBvcHVwRm9ybV90YWJsZSB0ciB0ZHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAucnBfbWMgeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgY29sb3I6IzAwYWFkMiFpbXBvcnRhbnQ7IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IG1hcmdpbjowIWltcG9ydGFudDsgfSAjZXhpdFBvcHVwQ29udGFpbmVyeyBwYWRkaW5nOjA7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfZm9ybXsgaGVpZ2h0OjM0cmVtOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy90cmFkZWluLWV4aXRwb3B1cC1mci5wbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWV4aXQtcG9wdXAtYmdjb2wsICNlZWUpOyB9IGJvZHkuRU5HTElTSCAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfZm9ybXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvdHJhZGVpbi1leGl0cG9wdXAtZW4ucG5nKTsgfSAuZXhpdF9wb3B1cF9idXR0b25zIGJ1dHRvbiB7IHdpZHRoOjExcmVtOyBmb250LXdlaWdodDpib2xkOyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV8yeyBtYXJnaW4tdG9wOjI3cHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV8zeyBmb250LXNpemU6MS42MjVyZW0gOyBtYXJnaW4tYm90dG9tOjNweDsgZm9udC13ZWlnaHQ6Ym9sZGVyOyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV81IHsgbWFyZ2luLWJvdHRvbToyMHB4OyBmb250LXNpemU6MS42MjVyZW0gOyBmb250LXdlaWdodDpib2xkZXI7IG1hcmdpbi10b3A6NjNweDsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfdGl0bGV7IGhlaWdodDo5NXB4OyB3aWR0aDo1NzBweDsgbWFyZ2luLXRvcDoyMHB4OyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZS5fRlJFTkNIeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy9hY2N1LXRyYWRlLWV4aXQtdGl0bGVfZnIucG5nKTsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfdGl0bGUuX0VOR0xJU0h7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL2FjY3UtdHJhZGUtZXhpdC10aXRsZV9lbi5wbmcpOyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lcnsgd2lkdGg6NDgwcHg7IGhlaWdodDo1MTBweDsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIgLnBvcHVwX2JneyB3aWR0aDo0ODBweDsgaGVpZ2h0OjUxNXB4OyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciAucG9wdXBfYmd7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCcvaW1hZ2VzL3BvcHVwcy9mci9iZXN0UHJpY2VOZXdWZHAucG5nJyk7IH0gLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGJhY2tncm91bmQtc2l6ZTo0ODBweCA1MTVweDsgfSAucG9wdXBGb3JtIC5hc3Rlcmlza3sgY29sb3I6I2QwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowOyBmb250LXNpemU6aW5oZXJpdDsgbWFyZ2luOjA7IH0gLnBvcHVwRm9ybXsgei1pbmRleDo1MDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyNDhweDsgaGVpZ2h0OjI0OXB4OyBsZWZ0OjgwcHg7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2NvdXBvbi1mb3JtLWJnLTIucG5nIikgbm8tcmVwZWF0OyB3aWR0aDozMzVweDsgcGFkZGluZzozMHB4OyB9IC5wb3B1cEZvcm1UaXRsZXsgaGVpZ2h0OjQwcHg7IG1hcmdpbjo4cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnBvcHVwRm9ybUlucHV0cyB0ZCB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRleHQtYWxpZ246cmlnaHQ7IHBhZGRpbmctcmlnaHQ6MTBweDsgcGFkZGluZy1ib3R0b206M3B4OyB9IC5wb3B1cEZvcm0gaW5wdXR7IHdpZHRoOjIxMHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50eyB3aWR0aDo2MDBweDsgcGFkZGluZzozMHB4IDMwcHg7IGhlaWdodDphdXRvOyBjb2xvcjojMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IHotaW5kZXg6MTAwMDAyMTsgfSAjcHJvbW9EaXNjb3ZlckJ1dHRvbnsgfSAubmV3VmRwVmlld2VyIHsgd2lkdGg6NjQwcHg7IGhlaWdodDo0ODBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MjBweDsgfSAubG9jYXRpb24tbmFtZXMgeyBwb3NpdGlvbjpzdGF0aWM7IH0gI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViID4gbGkgPiB1bCB7IHBvc2l0aW9uOnN0YXRpYzsgfSAuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgdWwuc3ViIGxpIC5sb2NhdGlvbi1uYW1lcyB7IG1pbi13aWR0aDoyMDBweDsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgbGkubG9jYXRpb24tbmFtZXMgeyBtaW4td2lkdGg6MjAwcHg7IH0gLmxvY2F0aW9uLW5hbWVzLCAubG9jYXRpb24tbmFtZXMgbGkgeyBsaXN0LXN0eWxlOm5vbmU7IH0gLkwxMDAgeyBsZWZ0OjEwMCU7IH0gLlIxMDAgeyByaWdodDoxMDAlOyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcGFkZGluZzoxNHB4OyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgZGlzcGxheTpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBtaW4td2lkdGg6MjkwcHg7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzID4gLnRpdGxlIHsgbWFyZ2luLWJvdHRvbToxZW07IGZvbnQtc2l6ZTppbml0aWFsOyBjb2xvcjojMDAwMDAwOyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyA+IC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28gPiBpbWcgeyBtYXgtd2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gbGkubG9jYXRpb24tbmFtZXM6aG92ZXIgLmxvY2F0aW9uLWRldGFpbHMgeyBkaXNwbGF5OmJsb2NrOyB9IGxpLmxvY2F0aW9uLW5hbWVzOmhvdmVyIC5tYWlubWVudS1zdWJtZW51IHsgb3BhY2l0eToxOyB2aXNpYmlsaXR5OnZpc2libGU7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzIC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28geyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBtYXJnaW4tYm90dG9tOjhweDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIC5sb2NhdGlvbi1uYW1lcyAubWFpbm1lbnUtc3VibWVudSAubG9jYXRpb24tZGV0YWlscyB7IG1heC1oZWlnaHQ6NjB2aDsgcG9zaXRpb246c3RhdGljOyB9IC51cF9tZW51IHVsLm5hdiAubG9jYXRpb24tZGV0YWlscy1pbmZvIGEgeyBjb2xvcjojMDAwMDAwOyBwYWRkaW5nOjA7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyAubG9jYXRpb24tc3BhY2luZy1tbC0xMyB7IG1hcmdpbi1sZWZ0OjEzLjQ5cHg7IH0gLnVwX21lbnUgdWwubmF2IGxpLmRldGFpbHMtaW5mby1saW5rIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAudXBfbWVudSB1bC5uYXYgLmRldGFpbHMtaW5mby1saW5rOmhvdmVyIGEgeyBjb2xvcjojZmZmZmZmOyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyA+IHVsLnN1YiA+IGxpID4gdWwgeyBtYXgtaGVpZ2h0OjYwdmg7IG92ZXJmbG93LXk6YXV0bzsgb3ZlcmZsb3cteDpoaWRkZW47IH0gYm9keSAud3JhcHBlciAudXBfbWVudSAubmF2ID4gbGk6aG92ZXIgdWwuc3ViIGxpOmhvdmVyIC5kZXRhaWxzLWluZm8tbGluayBsaTpob3ZlciBhIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMDA3ZmE1OyB9IGxpLmRldGFpbHMtaW5mby1saW5rOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDA3ZmE1OyBjb2xvcjojZmZmZmZmOyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gdWwgbGkgeyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctYm90dG9tOjRweDsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXNpemU6MC44NzVyZW0gOyBtYXJnaW4tYm90dG9tOjVweDsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvID4gdWwgPiBsaTpiZWZvcmUgeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IG1hcmdpbi1yaWdodDo3cHg7IG1hcmdpbi1ib3R0b206MXB4OyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyB1bCB7IHBhZGRpbmc6MDsgfSBAbWVkaWEgcHJpbnR7IC50b3ByaW50eyBkaXNwbGF5OmJsb2NrO30gfSAubXItMTUgeyBtYXJnaW4tcmlnaHQ6MTVweDsgfSAubWwtMTUgeyBtYXJnaW4tbGVmdDoxNXB4OyB9IC5tbC03IHsgbWFyZ2luLWxlZnQ6N3B4OyB9IHNwYW4uYXJyb3cgeyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjFweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMnB4OyB9IHNwYW4uYXJyb3cuYXJyb3ctbGFyZ2UgeyBib3JkZXItd2lkdGg6MCAzcHggM3B4IDA7IHBhZGRpbmc6NHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSBzcGFuLmFycm93LmFycm93LXJpZ2h0IHsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LWxlZnQgeyB0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctdXAgeyB0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy1kb3duIHsgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7IH0gLnRvcGJhcjNidG5XcmFweyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyBib3JkZXI6MnB4IHNvbGlkICNmZmZmZmY7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgaGVpZ2h0OjQycHg7IHBhZGRpbmc6MCAyMHB4OyBjb2xvcjojZmZmZmZmOyB9IC50b3BiYXIzYnRueyBmb250LXdlaWdodDpib2xkOyB0cmFuc2l0aW9uOi4yczsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgYm9yZGVyLWNvbG9yOndoaXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyB9IC50cmFkZUluQmFyX2J0bnsgZm9udC13ZWlnaHQ6Ym9sZDsgYm9yZGVyLXJhZGl1czo1cHg7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IHRyYW5zaXRpb246LjJzOyBib3JkZXI6MnB4IHNvbGlkIHRyYW5zcGFyZW50OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjp3aGl0ZTsgYm9yZGVyLWNvbG9yOndoaXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IGhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7IGNvbG9yOiAjZmZmZmZmOyBib3JkZXI6MnB4IHNvbGlkICNmZmZmZmY7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkZUluQmFyX2J0bjpob3ZlciwudG9wYmFyM2J0bldyYXA6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMmM1ZiFpbXBvcnRhbnQ7IH0gI2dSYXRpbmdMYXJnZXsgYmFja2dyb3VuZDojMDA0YjhkOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDBweDsgbWFyZ2luLXRvcDo1cHg7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjE1MHB4OyBtYXJnaW4tbGVmdDozMHB4OyB9ICNnUmF0aW5neyBjdXJzb3I6cG9pbnRlcjsgfSAudHJhZGVJblZpbklucHV0eyBoZWlnaHQ6NTBweDsgYm9yZGVyLXJhZGl1czo1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjZmZmZmZmOyB9IC50cmFkZUluVmluSW5wdXQ6OnBsYWNlaG9sZGVyeyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzYzM4MzY7IH0gLnRyYWRlSW5PckxhYmVseyBtYXgtd2lkdGg6MjVweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXJ7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MTJweDsgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MXJlbSA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3R7IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdExhYmVseyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luOjAgMTJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3Q6Y2hlY2tlZCtsYWJlbHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgYmxhY2s7IH0gLnRyYWRpblNlbGVjdFd7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkaW5TZWxlY3RXLndpdGhWSU5NYWtleyBtaW4td2lkdGg6MTQwcHg7IG1heC13aWR0aDoxNDBweDsgfSAudHJhZGluU2VsZWN0Vy53aXRoVklOWWVhcnsgbWluLXdpZHRoOjgwcHg7IG1heC13aWR0aDo4MHB4OyB9IC50cmFkaW5JbnB1dFd7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkaW5TZWxlY3RBeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudHJhZGluU2VsZWN0QTphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9IC50cmFkaW5TZWxlY3R7IGNvbG9yOiMzYzM4MzY7IGJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTBweCAxMHB4OyBmb250LXNpemU6MXJlbSA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDoxMDAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgaGVpZ2h0OjUwcHg7IH0gLnRyYWRpblNlbGVjdDphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IHdpZHRoOjU2OHB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItY29sb3I6I2E5YTlhOSFpbXBvcnRhbnQ7IH0gLnVpLW11bHRpc2VsZWN0LW1lbnUudHJhZGVJbkJhck11bHRpc2VsZWN0eyBtaW4td2lkdGg6MjcycHg7IHotaW5kZXg6MTAwMDAyMDsgbWF4LWhlaWdodDoxMjBweDsgb3ZlcmZsb3c6c2Nyb2xsOyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgfSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJEZWFsZXJTdGVwTWFrZU1vZGVsWWVhcnsgZm9udC13ZWlnaHQ6NzAwOyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCBzcGFueyBtYXJnaW46MCFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAhaW1wb3J0YW50OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLnRyYWRpblNlbGVjdFcgeyBtaW4td2lkdGg6Y2FsYygoMjAwcHggLSB2YXIoLS1zKSkgLSB2YXIoLS1zLCAwLjVyZW0pKTsgbWF4LXdpZHRoOmNhbGMoKDIwMHB4IC0gdmFyKC0tcykpIC0gdmFyKC0tcywgMC41cmVtKSk7IH0gfSAjZ29vZ2xlUmV2aWV3c0Zvb3RlcnsgbWFyZ2luOjAgYXV0bzsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjVweDsgbWF4LXdpZHRoOjk0MHB4OyBoZWlnaHQ6Mjc1cHg7IH0gLnJldmlldy1pdGVtIHsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjE4NXB4OyB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NDYwcHg7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXItdG9wOjRweCBzb2xpZCAjRUJFQkVCOyBwYWRkaW5nLXRvcDoxMHB4OyB9IC5maXJzdGNoYXJ1cDo6Zmlyc3QtbGV0dGVyeyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gSS5pY29uLWNvbXBhcmUtMSwgc3Bhbi5pY29uLWNvbXBhcmUtMXsgY29sb3I6IzAwMmM1ZjsgfSBJLmljb24tY29tcGFyZS0xOmhvdmVyLCBzcGFuLmljb24tY29tcGFyZS0xOmhvdmVyeyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IHRleHQtc2hhZG93OiMwMDJjNWYgMXB4IDFweCwgIzAwMmM1ZiAtMXB4IDFweCwgIzAwMmM1ZiAtMXB4IC0xcHgsICMwMDJjNWYgMXB4IC0xcHg7IGJvcmRlci1yYWRpdXM6MjBweDsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyB9IC5nUmF0aW5nLWljb24gaSB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gLmdSYXRpbmctaWNvbiNnUmF0aW5nIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHdpZHRoOjkwcHg7IGhlaWdodDoyOHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYTU7IGNvbG9yOndoaXRlOyBjb2xvcjojZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBnYXA6N3B4OyB9IC5nUmF0aW5nLWltZyNnUmF0aW5nIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ncmF0aW5nLnBuZyk7IGNvbG9yOiMzNTZDRjI7IHdpZHRoOjk1cHg7IGhlaWdodDoyOHB4OyBwYWRkaW5nOjRweCAzMXB4IDEwcHggMTBweDsgbWFyZ2luLXRvcDoxcHg7IH0gI2dSYXRpbmd7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjEuMDYzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpibG9jazsgfSBJTlBVVFt0eXBlPSJ0ZXh0Il0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9InRlbCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBJTlBVVFt0eXBlPSJlbWFpbCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBJTlBVVFt0eXBlPSJwYXNzd29yZCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMDAwMDAwOyBmb250LXdlaWdodDpub3JtYWw7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MCAwIDI1cHggMDsgfSBIMS5kZWZhdWx0IEF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IEgxLmRlZmF1bHQgSS5pY29uLCBIMS5kZWZhdWx0IHNwYW4uaWNvbiB7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjNweDsgaGVpZ2h0OjI5cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjEwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSBIMS5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMSwgSDEuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MTBweDsgfSBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDEsIEgxLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMXsgbWFyZ2luLXRvcDoycHg7IH0gSDEuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MS4xMjVyZW0gOyB9IEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgzKXsgZm9udC1zaXplOjAuOHJlbTsgZm9udC1zaXplOjAuOHJlbTsgY29sb3I6I2JiYjsgcGFkZGluZy10b3A6NXB4OyB9IGgxLmNrZWRpdG9yLWRlZmF1bHQgeyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6Mi4xMjVyZW0gOyBwYWRkaW5nOjAgMCAxNXB4IDA7IGNvbG9yOiMwMDAwMDA7IH0gaDEuY2tlZGl0b3ItZGVmYXVsdDo6YmVmb3JlIHsgY29udGVudDoiXGYwNTQiOyBmb250LWZhbWlseTpGb250QXdlc29tZTsgd2lkdGg6MjhweDsgaGVpZ2h0OjM1cHg7IG1hcmdpbi1yaWdodDoxMHB4OyBwYWRkaW5nOjRweCAwIDAgMTFweDsgYm9yZGVyLXJhZGl1czo0MXB4OyBmb250LXNpemU6MS45MzhyZW0gOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgfSBIMi5kZWZhdWx0eyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjbGVhcjpib3RoOyBwYWRkaW5nOjEwcHggMDsgbWFyZ2luLXRvcDoxMHB4OyB9IEgyLmRlZmF1bHQgSS5pY29uLCBIMi5kZWZhdWx0IHNwYW4uaWNvbnsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4zNzVyZW0gOyBtYXJnaW4tcmlnaHQ6MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IH0gSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDIsIEgyLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgyeyBtYXJnaW4tdG9wOjdweDsgfSBIMi5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDIsIEgyLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDowcHg7IH0gSDIuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEgyLmRlZmF1bHQuY3JlZHNpaVVzZWRNaW5IZWlnaHQgLlRpdGxlVGV4dCB7IHdpZHRoOjgwJTsgfSBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlcnsgd2lkdGg6ODAwcHg7IGhlaWdodDo2MDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkICNmaXJzdFNsaWRlckltZyBJTUd7IG1heC13aWR0aDo4MDBweDsgbWF4LWhlaWdodDo2MDBweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgeyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXNpemU6MS40MzhyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24sIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24geyB3aWR0aDoyOHB4OyBoZWlnaHQ6MzVweDsgZm9udC1zaXplOjEuOTM4cmVtIDsgcGFkZGluZy1sZWZ0OjExcHg7IGJvcmRlci1yYWRpdXM6NDFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgxeyBtYXJnaW4tdG9wOjExcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDEsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgxeyBtYXJnaW4tdG9wOjFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgeyBmb250LXNpemU6MS44NzVyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXNpemU6MS4xODhyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdC5jcmVkc2lpVXNlZE1pbkhlaWdodCAuVGl0bGVUZXh0IHsgd2lkdGg6OTAlOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDIsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6MTFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDJ7IG1hcmdpbi10b3A6NHB4OyB9IH0gI2NpdHlUaXRsZSB7Y29sb3I6IzAwMDAwMDt9IC5tYWluX2xlZnRfYm94IHsgY29sb3I6IzAwMDAwMDsgfSAuZGl2VGFibGUgeyBkaXNwbGF5OnRhYmxlOyB9IC5kaXZUYWJsZS5hbGlnbi1jZW50ZXIgeyBtYXJnaW46MCBhdXRvOyB9IC5kaXZUYWJsZSAuZm9ybXNfYm94MjIsIC5kaXZUYWJsZSBmb3JtW25hbWU9InNlbmRFbWFpbEZvcm0iXSB7IHdpZHRoOjk0MHB4OyB9IC5kaXZUYWJsZSAudGV4dDMwIHsgd2lkdGg6MTAwJTsgfSAuc2VydmljZS10aXRsZSB7IG1hcmdpbi10b3A6MjBweDsgfSAuZnVsbFdpZHRoRm9ybSAuZm9ybXNfYm94MjIgeyB3aWR0aDoxMDAlOyBtYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5mdWxsV2lkdGhGb3JtIC50ZXh0MzAgeyB3aWR0aDoxMDAlOyB9IC5mb3JtLWdyb3VwIHsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5pbmxpbmUtZm9ybS1ncm91cCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5mb3JtLWdyb3VwIGxhYmVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1heC13aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6NzAwOyB9IC5kaXZTZWFyY2hNc2cgeyBmb250LXNpemU6MC45cmVtOyBtYXJnaW46MjBweCAwIDAgMDsgcGFkZGluZzoxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IGJvcmRlci1yYWRpdXM6NXB4OyBjbGVhcjpib3RoOyB9IC5jcmVkc2lpTmV3IHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjQ3MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IGhlaWdodDphdXRvOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IH0gLmNyZWRzaWlOZXdWRFAgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6MzUwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaVVzZWRNaW5IZWlnaHQgeyBtaW4taGVpZ2h0OjEzMHB4OyB9IC5jcmVkc2lpRmluYW5jZSB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDo5NjBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjEyNXB4OyBtYXJnaW4tdG9wOjE1cHg7IH0gLmNyZWRzaWlGaW5hbmNlIC5jcmVkc2lpLXdpZGdldC1jb250YWluZXJ7IG1heC13aWR0aDoxMDAlIWltcG9ydGFudDsgfSAuY3JlZHNpaUZpbmFuY2VNZW51IHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjM0NXB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IGhlaWdodDphdXRvOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IHJpZ2h0OjA7IH0gLmNyZWRzaWlEaXYgLmNyZWRzaWlGaW5hbmNlTWVudSB7IG1heC13aWR0aDozNzVweDsgfSAuY3JlZHNpaUZpbmFuY2VNZW51IC5jcmVkc2lpLXdpZGdldHsgYm9yZGVyOjA7IH0gLnByb21vLWNhcmQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjFmMWYxOyBwYWRkaW5nOjIwcHg7IG92ZXJmbG93OmhpZGRlbjsgfSAucHJvbW8tYm9keSAucGljX2JveDIgeyBtaW4taGVpZ2h0OjEzMHB4OyB9IC5wcm9tby1ob3ZlciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHRvcDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBvcGFjaXR5OjA7IH0gLnByb21vLWJvZHk6aG92ZXIgLnByb21vLWhvdmVyIHsgb3BhY2l0eToxOyB9IC5wcm9tby1ib2R5OmhvdmVyIC5wcm9tby1pbmZvIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSwxKTsgfSAucHJvbW8tbWFzayB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSk7IH0gLnByb21vLWluZm8geyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyByaWdodDowOyB0b3A6NTAlOyB3aWR0aDozNSU7IG1hcmdpbjphdXRvOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MjVweDsgLW1vei1ib3JkZXItcmFkaXVzOjI1cHg7IGJvcmRlci1yYWRpdXM6MjVweDsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggNXB4IHJiZ2EoMCwwLDAsMC4yKTsgYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IH0gLmZvcm0tZW5kIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmZvcm0tZW5kIC5idG4td3JhcHBlciB7IG1hcmdpbjowIGF1dG87IH0gLmZvcm0tZW5kIC5lbXB0eS1zcGFjZSB7IG1hcmdpbjphdXRvOyB9IC5mb3JtLWVuZCAucHJvbW8tYnRuIHsgcG9zaXRpb246aW5pdGlhbDsgfSAuZm9ybS1lbmQgLnByaW50IHsgbWFyZ2luLWxlZnQ6YXV0bzsgd2lkdGg6aW5pdGlhbDsgfSAucHJvbW8tYnRuIHsgcGFkZGluZzoxMHB4IDEwcHggMTBweCAxMHB4OyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyBmb250LXdlaWdodDpub3JtYWw7IHBvc2l0aW9uOmFic29sdXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4tY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzKTsgdHJhbnNpdGlvbjowLjI1czsgfSAucHJvbW9zIHsgYmFja2dyb3VuZDojZjFmMWYxOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyBwb3NpdGlvbjpyZWxhdGl2ZTsgY3Vyc29yOmRlZmF1bHQ7IG1hcmdpbjoxMnB4IDEwcHg7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtcm93OnNwYW4gODsgZ3JpZC1jb2x1bW46c3BhbiAxOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6c3ViZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOnN1YmdyaWQ7IH0gLnByb21vcyAuaGVhZGVyIHsgZ3JpZC1hcmVhOmhlYWRlcjsgfSAjc2VydmljZSAucHJvbW9zIC5wcm9tby1jb250ZW50eyBkaXNwbGF5OmJsb2NrOyBncmlkLXJvdzphdXRvOyB9IC5wcm9tb3MgLnByb21vLWNvbnRlbnQgeyBncmlkLWFyZWE6Y29udGVudDsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6c3ViZ3JpZDsgZ3JpZC1yb3c6MiAvIDc7IH0gLnByb21vcyAucHJvbW8tZm9vdGVyIHsgZ3JpZC1hcmVhOmZvb3RlcjsgcGFkZGluZzowIDE1cHggMTVweCAxNXB4OyB9IC5wcm9tb3M6aG92ZXIgLnByb21vLWJ0biwgLnByb21vLWJ0bjpob3ZlciB7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItYmctY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyB9IC5wcm9tb3MgLnByb21vLWJ0biB7IHdpZHRoOmluaGVyaXQ7IHBvc2l0aW9uOmluaXRpYWw7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6MTVweCA0NXB4OyB9IC5wcm9tb3MucHJvbW8tc21hbGwgLnByb21vLWJ0biB7IHBhZGRpbmc6MTBweCAyNXB4OyB9IC5wcm9tby1icmVhayB7IGJvcmRlci10b3A6MXB4IHNvbGlkICNhYmFiYWI7IHBhZGRpbmctdG9wOjEwcHg7IG1hcmdpbjoxNXB4IDA7IH0gLnByb21vLWltYWdlLCAucHJvbW8tZGV0YWlscy1pbWFnZSB7IG92ZXJmbG93OmhpZGRlbjsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYXNwZWN0LXJhdGlvOnZhcigtLXByb21vLWltZy1yYXRpbywgbm9uZSk7IH0gLnByb21vLWRldGFpbHMtaW1hZ2V7IHdpZHRoOjEwMCU7IH0gLnByb21vczpob3ZlciAucHJvbW8taW1hZ2UgaW1nIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xKTsgLW1vei10cmFuc2Zvcm06c2NhbGUoMS4xKTsgLW1zLXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtby10cmFuc2Zvcm06c2NhbGUoMS4xKTsgdHJhbnNmb3JtOnNjYWxlKDEuMSk7IH0gLnByb21vLWltYWdlIGltZyB7IG1heC13aWR0aDoxMDAlOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAxczsgZGlzcGxheTp0YWJsZS1jZWxsOyBtYXJnaW46MCBhdXRvOyB9IC5wcm9tby1ib2R5IHsgcGFkZGluZzoxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAucHJvbW8tYm9keS5ncmlkIHsgZGlzcGxheTpncmlkOyBoZWlnaHQ6MTAwJTsgZ3JpZC10ZW1wbGF0ZS1yb3dzOjFmciAzZnI7IH0gLnByb21vLWJvZHkuZ3JpZCAucHJvbW8tY2FwdGlvbi5oZWFkZXIgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czoxZnIgYXV0bzsgfSAucHJvbW8tY29udGVudC5wYWRkZWQgeyBwYWRkaW5nOjE1cHg7IH0gLnByb21vLWRlc2MgeyBkaXNwbGF5Om5vbmU7IH0gLnByb21vLXRpdGxlIHsgZm9udC1zaXplOjEuNXJlbSA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6IzMzMzMzMzsgbWluLWhlaWdodDo3OHB4OyB9IC5wcm9tby1tZWRpdW0gLnByb21vLXRpdGxlIHsgbWluLWhlaWdodDo4N3B4OyB9IC5wcm9tby1zbWFsbCAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS4yNXJlbSA7IH0gLnByb21vLWNhcHRpb24geyBjb2xvcjojMzMzMzMzOyB9IC5wcm9tby1jYXB0aW9uOm5vdCg6bGFzdC1jaGlsZCkgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnByb21vLW9mZmVyIC5wcm9tby10aXRsZSB7IG1pbi1oZWlnaHQ6MDsgfSAucHJvbW8tc3ViY2FwdGlvbiB7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW07IH0gLnByb21vLXN1YmNhcHRpb24uc3ViaGVhZGluZy4tbWggeyBtaW4taGVpZ2h0OjMxcHg7IH0gLnByb21vLXN1YmNhcHRpb24uZGVzY3JpcHRpb24uLW1oIHsgbWluLWhlaWdodDo0OHB4OyB9IC5wcm9tby1kaXNsY2FpbWVyIHsgZm9udC1zaXplOjAuNzVyZW07IH0gLnByb21vLWxpbmtzIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5wcm9tby1saW5rLWl0ZW0gLnByaW50IHsgd2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpyaWdodDsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkIHsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6Z3JpZDsgfSAucHJvbW9zLWNvbnRhaW5lciAuZmEtYXJyb3ctZG93bi10by1saW5lIHsgZm9udC1zaXplOjJyZW07IGNvbG9yOiMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUwJTsgdG9wOjUwJTsgYmFja2dyb3VuZDojZmZmZmZmOyBwYWRkaW5nOjZweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgdHJhbnNpdGlvbjphbGwgMC4yNXMgZWFzZS1vdXQ7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5wcm9tby1tZWRpdW0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsIDFmcik7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5wcm9tby1zbWFsbCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywgMWZyKTsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlIHsgaGVpZ2h0OjE0MnB4OyBvdmVyZmxvdzpoaWRkZW47IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTo6YmVmb3JlIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyBsZWZ0OjEwcHg7IHJpZ2h0OjEwcHg7IHRvcDoxMHB4OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMCAwIDAgLyAzMCUpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpIH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTpob3Zlcjo6YmVmb3JlIHsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiKDEzOCAxMzggMTM4IC8gMzAlKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTsgY3Vyc29yOnBvaW50ZXI7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTpob3ZlciAuZmEtYXJyb3ctZG93bi10by1saW5lIHsgdG9wOjU1JTsgY29sb3I6IzgzODM4MzsgfSAuYmFubmVyLWZvcm0geyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTp0YWJsZTsgbWFyZ2luOjAgYXV0bzsgfSAuYmFubmVyLWZvcm0gLk1haW5Cb3hMYXllciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDowOyBkaXNwbGF5OnRhYmxlLWNlbGw7IGhlaWdodDoxMDAlOyB9IC5iYW5uZXItZm9ybS1ib3ggeyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IG1heC13aWR0aDozNTBweDsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDozNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgLk1haW5Cb3hMYXllciAuYmFubmVyLWZvcm0tYm94IHsgdG9wOjUwJTsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IG1hcmdpbi10b3A6MDsgfSB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMzAxcHgpIHsgLmJhbm5lci1mb3JtIC5iYW5uZXItZm9ybS1ib3ggeyBwYWRkaW5nOjE1cHg7IG1heC13aWR0aDoyNzBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgfSAuYmFubmVyLWZvcm0gI2Jhbm5lckZvcm0gLmZvcm0tY29udHJvbCB7IHBhZGRpbmc6NHB4IDhweDsgaGVpZ2h0OjMwcHg7IG1hcmdpbi1ib3R0b206MTJweDsgfSAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLXRpdGxlIHsgZm9udC1zaXplOjE1cHQ7IH0gLmJhbm5lci1mb3JtIC5iYW5uZXItZm9ybS1zdWJ0aXRsZSB7IGZvbnQtc2l6ZToxMXB0OyB9IC5iYW5uZXItZm9ybSAuYnRuLmJhbm5lci1idG4geyBwYWRkaW5nOjRweCAxMnB4OyB9IH0gLm90aGVyTG9nb01lbnVDb250YWluZXJ7IGZsb2F0OmxlZnQ7IH0gLm90aGVyTG9nb01lbnVDb250YWluZXJSaWdodHsgZmxvYXQ6cmlnaHQ7IH0gLm90aGVyTG9nb01lbnVJbWFnZXsgbWF4LXdpZHRoOjI1MHB4OyBtYXgtaGVpZ2h0OjEwMHB4OyB9IC5jdGFib3gtLXdyYXBwZXIgeyBjbGVhcjpib3RoOyBwYWRkaW5nOjAuNzVyZW0gMDsgYmFja2dyb3VuZDojZmZmZmZmOyB9IC5jdGFib3gtLXRhYmxlIHsgd2lkdGg6ODUlIWltcG9ydGFudDsgbWF4LXdpZHRoOjEyMDBweDsgbWFyZ2luOmF1dG87IGJvcmRlci1zcGFjaW5nOjFyZW07IGJvcmRlci1jb2xsYXBzZTp1bnNldDsgfSAuY3RhYm94LS1jZWxsIHsgd2lkdGg6MjUlOyB0cmFuc2l0aW9uOmFsbCAwLjJzIGxpbmVhcjsgfSAuY3RhYm94LS1jZWxsOm5vdChbb25jbGljaz0nJ10pOmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzEgeyB3aWR0aDoxMDAlOyB9IC5jdGFib3gtLWNlbGwuY3RhYm94LS1jZWxsX18yIHsgd2lkdGg6NDgwcHg7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzMgeyB3aWR0aDozMyU7IH0gLmN0YWJveC0tY29udGFpbmVyIHsgcGFkZGluZzoxcmVtOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uIHsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbi5jdGFib3gtLWljb25fX3RvcCB7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24uY3RhYm94LS1pY29uX19sZWZ0IHsgZmxvYXQ6bGVmdDsgfSAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tdGl0bGUsIC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS1kZXNjcmlwdGlvbiwgLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLWJ1dHRvbiB7IG1hcmdpbi1sZWZ0OjM1cHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLXRpdGxlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tZGVzY3JpcHRpb24geyBtYXJnaW4tdG9wOjEwcHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWJ1dHRvbiB7IG1hcmdpbi10b3A6MjBweDsgfSAucGFyYWxsYXgtc2VjdGlvbiB7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IGJhY2tncm91bmQtYXR0YWNobWVudDpsb2NhbDsgcGFkZGluZzoyNXB4IDA7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIgeyB3aWR0aDo2MCU7IHBhZGRpbmctcmlnaHQ6MTVweDsgcGFkZGluZy1sZWZ0OjE1cHg7IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tbGVmdDphdXRvOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIubGFyZ2UgeyB3aWR0aDo4MCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAucGFyYWxsYXgtY29udGVudCB7IHdpZHRoOjQ1JTsgcGFkZGluZzo0MHB4IDQwcHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpOyBjb2xvcjojZmZmOyB9IC5wYXJhbGxheC1jb250ZW50IC5wYXJhbGxheC1jb250ZW50LWJ1c2luZXNzLXRpdGxlIHsgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjIwcHg7IGNvbG9yOmluaGVyaXQ7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtZGVzYyB7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmxlZnQ7IGNvbG9yOmluaGVyaXQ7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtZGVzYyBheyBjb2xvcjppbmhlcml0OyB9IEBtZWRpYSAobWF4LXdpZHRoOjEzMzBweCkgeyAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyIHsgd2lkdGg6ODAlOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIubGFyZ2UgeyB3aWR0aDoxMDAlOyB9IH0gLnNyLW9ubHkgeyBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50OyB3aWR0aDoxcHggIWltcG9ydGFudDsgaGVpZ2h0OjFweCAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOi0xcHggIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IGNsaXA6cmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50OyBib3JkZXI6MCAhaW1wb3J0YW50OyB9IC5ibnBfcHVsbG91dF9pbWd7IG1heC13aWR0aDoxMHJlbTsgbWFyZ2luOmF1dG87IH0gLmJucF9wdWxsb3V0X2NvbF9zZXBhcmF0b3J7IHdpZHRoOjFweDsgYmFja2dyb3VuZC1jb2xvcjojRUJFQkVCOyBoZWlnaHQ6OThweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyMHB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29seyB3aWR0aDo3MCU7IGRpc3BsYXk6dGFibGUtY2VsbDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9yaWdodHsgYm9yZGVyLWxlZnQtd2lkdGg6MXB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3NlcGFyYXRvcnsgd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNFQkVCRUI7IGhlaWdodDo0MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjc4cHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2Vfd2l0aF90aXRsZXsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDo0NSU7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2V7IGZvbnQtc2l6ZToycmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBAbWVkaWEgKG1heC13aWR0aDoxMzMwcHgpIHsgLmJucF9wdWxsb3V0X21pZF9jb2wgeyB3aWR0aDo1MCU7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2Vfd2l0aF90aXRsZSB7IHdpZHRoOjEwMCU7IH0gLmJucF9wdWxsb3V0X2NvbF9zZXBhcmF0b3IgeyBoZWlnaHQ6MTY0cHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfc2VwYXJhdG9yIHsgaGVpZ2h0OjEwNnB4OyB9IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0SW1neyBoZWlnaHQ6MTEwcHg7IGJhY2tncm91bmQtY29sb3I6IzAwN2ZhNTsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRCdXR0b257IGJhY2tncm91bmQ6IzQxN0YxQSAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZmZmZmZjsgcGFkZGluZzo3cHggMjBweCA3cHg7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6NzAwOyB0ZXh0LXNoYWRvdzowLjRweCAwOyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnR7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgbWFyZ2luLWJvdHRvbTotMTVweDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50U2NvcmV7IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjEuODc1cmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudEZyZWV7IGNvbG9yOiM0MTdGMUE7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjIuODEzcmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQuaXNGdWxsV2lkdGhQYWdlIC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dE1heFdpZHRoeyBtYXgtd2lkdGg6MTIwMHB4OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dE1heFdpZHRoeyBtYXgtd2lkdGg6OTYwcHg7IH0gLnNsaWRlci1tYWluIGltZ3sgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC41cyBlYXNlLW91dCB9IC5jb21tdW5pY2F0aW9uUHJlZnsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IHdpZHRoOjUwJSAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC51cF9tZW51IC5TMTAwUGVyY2VudFdpZHRoIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgfSAudXBfbWVudS5maXhlZCAuUzEwMFBlcmNlbnRXaWR0aHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjI4LDIyMCwyMTEpIH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLm9yZywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnN0cmVldC1hZGRyZXNzLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAubG9jYWxpdHksIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5yZWdpb24sIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5wb3N0YWwtY29kZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmV4dGVuZGVkUGhvbmVUcmlnZ2VyLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAucGhvbmUtbGluayB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKSAhaW1wb3J0YW50OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5kZWFsZXJNYXBMaW5rIHN2ZyB7IGZpbGw6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5mYS1jYXJldC1kb3duOjpiZWZvcmUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5mYS1waG9uZTo6YmVmb3JlIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC51cF9tZW51IC5TMTAwUGVyY2VudFdpZHRoID4gdWwgPiBsaSA+IGEudG9wX2xpbmsgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZ1JhdGluZy1pY29uI2dSYXRpbmcsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbi5hY3RpdmUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbiB7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciBpLmZhciB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gLmJ0biB7IGJvcmRlci1jb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZywgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSwgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uIHsgYm9yZGVyLXJhZGl1czp2YXIoLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDsgfSAuZ1JhdGluZy1pY29uI2dSYXRpbmcgLnJhdGluZyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsaW5lLWhlaWdodDoxOyB9IC5tYXJnaW4tYm90dG9tLS00cHggeyBtYXJnaW4tYm90dG9tOi00cHg7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkLCAubWFpbkRpdkFkanVzdEhlYWRlciAuYmFubmVyLXNlYXJjaC1ib3gtd3JhcHBlciB7IHotaW5kZXg6MjsgcG9zaXRpb246cmVsYXRpdmUgfQovKiogL2Nzcy9wcm9fZHJvcGRvd25fNC5jc3MgKiovCi5pZE5hdjEgeyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTsgaGVpZ2h0OjI4cHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGNvbG9yOiNGOUY5Rjk7IH0gLmlkTmF2MSBsaS50b3Age2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBwYWRkaW5nOjA7fSAuaWROYXYxIGxpLnRvcDEge2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IHBhZGRpbmc6MDsgcGFkZGluZy1yaWdodDoycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDA7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rOmhvdmVyIHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IGZpbHRlcjpicmlnaHRuZXNzKDk1JSk7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rMSB7IGNvbG9yOnJnYigwLDAsMCk7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBsaW5lLWhlaWdodDozMHB4OyBjb2xvcjojZmVmZWZlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjBweCAxMnB4IDBweCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gI2ZybVJlYmF0ZSAuaWROYXYxIGxpIGEudG9wX2xpbmsgeyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl9wb3B1cC5wbmcpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgfSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluazpob3ZlciB7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgfSAuaWROYXYxIGxpIGEuc2VydmljZS1saW5reyBtYXJnaW4tYm90dG9tOjEycHg7IHdpZHRoOjIwMnB4OyBmb250LXNpemU6MC44cmVtOyBmb250LXdlaWdodDpub3JtYWw7IH0gLmlkTmF2MSBsaSBhLnNlcnZpY2UtbGlua19fc3VibWl0IHsgZm9udC1zaXplOjAuOHJlbTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5sYW5ndWFnZUJhciAuaWROYXYxIGxpIGEudG9wX2xpbmsgeyBiYWNrZ3JvdW5kOmluaGVyaXQ7IGJhY2tncm91bmQtY29sb3I6IzkyOTI5MjsgYmFja2dyb3VuZC1jb2xvcjojMDA3ZmE1OyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IH0KLyoqIC9jc3MvanF1ZXJ5LXVpLWZhY3RvcnkvMS4xMy4yL2pxdWVyeS11aS5taW4uY3NzICoqLwoudWktaGVscGVyLWhpZGRlbntkaXNwbGF5Om5vbmV9LnVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZXtib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0udWktaGVscGVyLXJlc2V0e21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtvdXRsaW5lOjA7bGluZS1oZWlnaHQ6MS4zO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtc2l6ZToxMDAlO2xpc3Qtc3R5bGU6bm9uZX0udWktaGVscGVyLWNsZWFyZml4OmJlZm9yZSwudWktaGVscGVyLWNsZWFyZml4OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9LnVpLWhlbHBlci1jbGVhcmZpeDphZnRlcntjbGVhcjpib3RofS51aS1oZWxwZXItemZpeHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0wKSJ9LnVpLWZyb250e3otaW5kZXg6MTAwfS51aS1zdGF0ZS1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdCFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0udWktaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXRvcDotLjI1ZW07cG9zaXRpb246cmVsYXRpdmU7dGV4dC1pbmRlbnQ6LTk5OTk5cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0udWktd2lkZ2V0LWljb24tYmxvY2t7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LThweDtkaXNwbGF5OmJsb2NrfS51aS13aWRnZXQtb3ZlcmxheXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVye2Rpc3BsYXk6YmxvY2s7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjJweCAwIDAgMDtwYWRkaW5nOi41ZW0gLjVlbSAuNWVtIC43ZW07Zm9udC1zaXplOjEwMCV9LnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWNvbnRlbnR7cGFkZGluZzoxZW0gMi4yZW07Ym9yZGVyLXRvcDowO292ZXJmbG93OmF1dG99LnVpLXNsaWRlcntwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnR9LnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjI7d2lkdGg6MS4yZW07aGVpZ2h0OjEuMmVtO2N1cnNvcjpwb2ludGVyOy1tcy10b3VjaC1hY3Rpb246bm9uZTt0b3VjaC1hY3Rpb246bm9uZX0udWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2ZvbnQtc2l6ZTouN2VtO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9LnVpLXNsaWRlci51aS1zdGF0ZS1kaXNhYmxlZCAudWktc2xpZGVyLWhhbmRsZSwudWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItcmFuZ2V7ZmlsdGVyOmluaGVyaXR9LnVpLXNsaWRlci1ob3Jpem9udGFse2hlaWdodDouOGVtfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZXt0b3A6LS4zZW07bWFyZ2luLWxlZnQ6LS42ZW19LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2V7dG9wOjA7aGVpZ2h0OjEwMCV9LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWlue2xlZnQ6MH0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXh7cmlnaHQ6MH0udWktc2xpZGVyLXZlcnRpY2Fse3dpZHRoOi44ZW07aGVpZ2h0OjEwMHB4fS51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1oYW5kbGV7bGVmdDotLjNlbTttYXJnaW4tbGVmdDowO21hcmdpbi1ib3R0b206LS42ZW19LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdle2xlZnQ6MDt3aWR0aDoxMDAlfS51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1taW57Ym90dG9tOjB9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1heHt0b3A6MH0udWktd2lkZ2V0e2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxZW19LnVpLXdpZGdldCAudWktd2lkZ2V0e2ZvbnQtc2l6ZToxZW19LnVpLXdpZGdldCBpbnB1dCwudWktd2lkZ2V0IHNlbGVjdCwudWktd2lkZ2V0IHRleHRhcmVhLC51aS13aWRnZXQgYnV0dG9ue2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxZW19LnVpLXdpZGdldC51aS13aWRnZXQtY29udGVudHtib3JkZXI6MXB4IHNvbGlkICNjNWM1YzV9LnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzMzM30udWktd2lkZ2V0LWNvbnRlbnQgYXtjb2xvcjojMzMzfS51aS13aWRnZXQtaGVhZGVye2JvcmRlcjoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNlOWU5ZTk7Y29sb3I6IzMzMztmb250LXdlaWdodDpib2xkfS51aS13aWRnZXQtaGVhZGVyIGF7Y29sb3I6IzMzM30udWktc3RhdGUtZGVmYXVsdCwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHQsLnVpLWJ1dHRvbixodG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6aG92ZXIsaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmFjdGl2ZXtib3JkZXI6MXB4IHNvbGlkICNjNWM1YzU7YmFja2dyb3VuZDojZjZmNmY2O2ZvbnQtd2VpZ2h0Om5vcm1hbDtjb2xvcjojNDU0NTQ1fS51aS1zdGF0ZS1kZWZhdWx0IGEsLnVpLXN0YXRlLWRlZmF1bHQgYTpsaW5rLC51aS1zdGF0ZS1kZWZhdWx0IGE6dmlzaXRlZCxhLnVpLWJ1dHRvbixhOmxpbmsudWktYnV0dG9uLGE6dmlzaXRlZC51aS1idXR0b24sLnVpLWJ1dHRvbntjb2xvcjojNDU0NTQ1O3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1zdGF0ZS1ob3ZlciwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhvdmVyLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1ob3ZlciwudWktc3RhdGUtZm9jdXMsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1mb2N1cywudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZm9jdXMsLnVpLWJ1dHRvbjpob3ZlciwudWktYnV0dG9uOmZvY3Vze2JvcmRlcjoxcHggc29saWQgI2NjYztiYWNrZ3JvdW5kOiNlZGVkZWQ7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiMyYjJiMmJ9LnVpLXN0YXRlLWhvdmVyIGEsLnVpLXN0YXRlLWhvdmVyIGE6aG92ZXIsLnVpLXN0YXRlLWhvdmVyIGE6bGluaywudWktc3RhdGUtaG92ZXIgYTp2aXNpdGVkLC51aS1zdGF0ZS1mb2N1cyBhLC51aS1zdGF0ZS1mb2N1cyBhOmhvdmVyLC51aS1zdGF0ZS1mb2N1cyBhOmxpbmssLnVpLXN0YXRlLWZvY3VzIGE6dmlzaXRlZCxhLnVpLWJ1dHRvbjpob3ZlcixhLnVpLWJ1dHRvbjpmb2N1c3tjb2xvcjojMmIyYjJiO3RleHQtZGVjb3JhdGlvbjpub25lfS51aS12aXN1YWwtZm9jdXN7Ym94LXNoYWRvdzowIDAgM3B4IDFweCByZ2IoOTQsMTU4LDIxNCl9LnVpLXN0YXRlLWFjdGl2ZSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWFjdGl2ZSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtYWN0aXZlLGEudWktYnV0dG9uOmFjdGl2ZSwudWktYnV0dG9uOmFjdGl2ZSwudWktYnV0dG9uLnVpLXN0YXRlLWFjdGl2ZTpob3Zlcntib3JkZXI6MXB4IHNvbGlkICMwMDNlZmY7YmFja2dyb3VuZDojMDA3ZmZmO2ZvbnQtd2VpZ2h0Om5vcm1hbDtjb2xvcjojZmZmfS51aS1pY29uLWJhY2tncm91bmQsLnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbi1iYWNrZ3JvdW5ke2JvcmRlcjojMDAzZWZmO2JhY2tncm91bmQtY29sb3I6I2ZmZn0udWktc3RhdGUtYWN0aXZlIGEsLnVpLXN0YXRlLWFjdGl2ZSBhOmxpbmssLnVpLXN0YXRlLWFjdGl2ZSBhOnZpc2l0ZWR7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZX0udWktc3RhdGUtaGlnaGxpZ2h0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0LC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHR7Ym9yZGVyOjFweCBzb2xpZCAjZGFkNTVlO2JhY2tncm91bmQ6I2ZmZmE5MDtjb2xvcjojNzc3NjIwfS51aS1zdGF0ZS1jaGVja2Vke2JvcmRlcjoxcHggc29saWQgI2RhZDU1ZTtiYWNrZ3JvdW5kOiNmZmZhOTB9LnVpLXN0YXRlLWhpZ2hsaWdodCBhLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCBhe2NvbG9yOiM3Nzc2MjB9LnVpLXN0YXRlLWVycm9yLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9ye2JvcmRlcjoxcHggc29saWQgI2YxYTg5OTtiYWNrZ3JvdW5kOiNmZGRmZGY7Y29sb3I6IzVmM2YzZn0udWktc3RhdGUtZXJyb3IgYSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yIGEsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yIGF7Y29sb3I6IzVmM2YzZn0udWktc3RhdGUtZXJyb3ItdGV4dCwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLXRleHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yLXRleHR7Y29sb3I6IzVmM2YzZn0udWktcHJpb3JpdHktcHJpbWFyeSwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXByaW1hcnksLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXByaW1hcnl7Zm9udC13ZWlnaHQ6Ym9sZH0udWktcHJpb3JpdHktc2Vjb25kYXJ5LC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktc2Vjb25kYXJ5LC51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1zZWNvbmRhcnl7b3BhY2l0eTouNzstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTcwKSI7Zm9udC13ZWlnaHQ6bm9ybWFsfS51aS1zdGF0ZS1kaXNhYmxlZCwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRpc2FibGVkLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kaXNhYmxlZHtvcGFjaXR5Oi4zNTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTM1KSI7YmFja2dyb3VuZC1pbWFnZTpub25lfS51aS1zdGF0ZS1kaXNhYmxlZCAudWktaWNvbnstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTM1KSJ9LnVpLWljb257d2lkdGg6MTZweDtoZWlnaHQ6MTZweH0udWktaWNvbiwudWktd2lkZ2V0LWNvbnRlbnQgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc180NDQ0NDRfMjU2eDI0MC5wbmciKX0udWktd2lkZ2V0LWhlYWRlciAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzQ0NDQ0NF8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1ob3ZlciAudWktaWNvbiwudWktc3RhdGUtZm9jdXMgLnVpLWljb24sLnVpLWJ1dHRvbjpob3ZlciAudWktaWNvbiwudWktYnV0dG9uOmZvY3VzIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNTU1NTU1XzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbiwudWktYnV0dG9uOmFjdGl2ZSAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zX2ZmZmZmZl8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1oaWdobGlnaHQgLnVpLWljb24sLnVpLWJ1dHRvbiAudWktc3RhdGUtaGlnaGxpZ2h0LnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc183Nzc2MjBfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtZXJyb3IgLnVpLWljb24sLnVpLXN0YXRlLWVycm9yLXRleHQgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc19jYzAwMDBfMjU2eDI0MC5wbmciKX0udWktYnV0dG9uIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNzc3Nzc3XzI1NngyNDAucG5nIil9LnVpLWljb24tYmxhbmsudWktaWNvbi1ibGFuay51aS1pY29uLWJsYW5re2JhY2tncm91bmQtaW1hZ2U6bm9uZX0udWktaWNvbi1jYXJldC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9LnVpLWljb24tY2FyZXQtMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IDB9LnVpLWljb24tY2FyZXQtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggMH0udWktaWNvbi1jYXJldC0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggMH0udWktaWNvbi1jYXJldC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAwfS51aS1pY29uLWNhcmV0LTEtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAwfS51aS1pY29uLWNhcmV0LTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IDB9LnVpLWljb24tY2FyZXQtMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAwfS51aS1pY29uLWNhcmV0LTItbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IDB9LnVpLWljb24tY2FyZXQtMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggMH0udWktaWNvbi10cmlhbmdsZS0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE2cHh9LnVpLWljb24tYXJyb3ctMS1ue2JhY2tncm91bmQtcG9zaXRpb246MCAtMzJweH0udWktaWNvbi1hcnJvdy0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0zMnB4fS51aS1pY29uLWFycm93LTItbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0zMnB4fS51aS1pY29uLWFycm93LTItbmUtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1zZS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC0zMnB4fS51aS1pY29uLWFycm93dGhpY2stMS1ue2JhY2tncm91bmQtcG9zaXRpb246MXB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1le2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc3d7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTItbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1uZS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1zZS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTQ4cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjowIC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJuLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJuLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJuLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJuLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC02NHB4fS51aS1pY29uLWFycm93LTR7YmFja2dyb3VuZC1wb3NpdGlvbjowIC04MHB4fS51aS1pY29uLWFycm93LTQtZGlhZ3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC04MHB4fS51aS1pY29uLWV4dGxpbmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtODBweH0udWktaWNvbi1uZXd3aW57YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtODBweH0udWktaWNvbi1yZWZyZXNoe2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTgwcHh9LnVpLWljb24tc2h1ZmZsZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC04MHB4fS51aS1pY29uLXRyYW5zZmVyLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC04MHB4fS51aS1pY29uLXRyYW5zZmVydGhpY2stZS13e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC04MHB4fS51aS1pY29uLWZvbGRlci1jb2xsYXBzZWR7YmFja2dyb3VuZC1wb3NpdGlvbjowIC05NnB4fS51aS1pY29uLWZvbGRlci1vcGVue2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTk2cHh9LnVpLWljb24tZG9jdW1lbnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtOTZweH0udWktaWNvbi1kb2N1bWVudC1ie2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTk2cHh9LnVpLWljb24tbm90ZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC05NnB4fS51aS1pY29uLW1haWwtY2xvc2Vke2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTk2cHh9LnVpLWljb24tbWFpbC1vcGVue2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTk2cHh9LnVpLWljb24tc3VpdGNhc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTk2cHh9LnVpLWljb24tY29tbWVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtOTZweH0udWktaWNvbi1wZXJzb257YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTk2cHh9LnVpLWljb24tcHJpbnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTk2cHh9LnVpLWljb24tdHJhc2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTk2cHh9LnVpLWljb24tbG9ja2Vke2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC05NnB4fS51aS1pY29uLXVubG9ja2Vke2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC05NnB4fS51aS1pY29uLWJvb2ttYXJre2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC05NnB4fS51aS1pY29uLXRhZ3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtOTZweH0udWktaWNvbi1ob21le2JhY2tncm91bmQtcG9zaXRpb246MCAtMTEycHh9LnVpLWljb24tZmxhZ3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xMTJweH0udWktaWNvbi1jYWxlbmRhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xMTJweH0udWktaWNvbi1jYXJ0e2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTExMnB4fS51aS1pY29uLXBlbmNpbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xMTJweH0udWktaWNvbi1jbG9ja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xMTJweH0udWktaWNvbi1kaXNre2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTExMnB4fS51aS1pY29uLWNhbGN1bGF0b3J7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTExMnB4fS51aS1pY29uLXpvb21pbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTEycHh9LnVpLWljb24tem9vbW91dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTEycHh9LnVpLWljb24tc2VhcmNoe2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC0xMTJweH0udWktaWNvbi13cmVuY2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTExMnB4fS51aS1pY29uLWdlYXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTExMnB4fS51aS1pY29uLWhlYXJ0e2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC0xMTJweH0udWktaWNvbi1zdGFye2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0xMTJweH0udWktaWNvbi1saW5re2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC0xMTJweH0udWktaWNvbi1jYW5jZWx7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMjhweH0udWktaWNvbi1wbHVze2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTEyOHB4fS51aS1pY29uLXBsdXN0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xMjhweH0udWktaWNvbi1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xMjhweH0udWktaWNvbi1taW51c3RoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTEyOHB4fS51aS1pY29uLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTEyOHB4fS51aS1pY29uLWNsb3NldGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTI4cHh9LnVpLWljb24ta2V5e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xMjhweH0udWktaWNvbi1saWdodGJ1bGJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTEyOHB4fS51aS1pY29uLXNjaXNzb3Jze2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xMjhweH0udWktaWNvbi1jbGlwYm9hcmR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTEyOHB4fS51aS1pY29uLWNvcHl7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTEyOHB4fS51aS1pY29uLWNvbnRhY3R7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTEyOHB4fS51aS1pY29uLWltYWdle2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC0xMjhweH0udWktaWNvbi12aWRlb3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMjRweCAtMTI4cHh9LnVpLWljb24tc2NyaXB0e2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC0xMjhweH0udWktaWNvbi1hbGVydHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE0NHB4fS51aS1pY29uLWluZm97YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTQ0cHh9LnVpLWljb24tbm90aWNle2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE0NHB4fS51aS1pY29uLWhlbHB7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTQ0cHh9LnVpLWljb24tY2hlY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTQ0cHh9LnVpLWljb24tYnVsbGV0e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE0NHB4fS51aS1pY29uLXJhZGlvLW9ue2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE0NHB4fS51aS1pY29uLXJhZGlvLW9mZntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTQ0cHh9LnVpLWljb24tcGluLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTE0NHB4fS51aS1pY29uLXBpbi1ze2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xNDRweH0udWktaWNvbi1wbGF5e2JhY2tncm91bmQtcG9zaXRpb246MCAtMTYwcHh9LnVpLWljb24tcGF1c2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTYwcHh9LnVpLWljb24tc2Vlay1uZXh0e2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE2MHB4fS51aS1pY29uLXNlZWstcHJldntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNjBweH0udWktaWNvbi1zZWVrLWVuZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNjBweH0udWktaWNvbi1zZWVrLXN0YXJ0e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2MHB4fS51aS1pY29uLXNlZWstZmlyc3R7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTYwcHh9LnVpLWljb24tc3RvcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNjBweH0udWktaWNvbi1lamVjdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTYwcHh9LnVpLWljb24tdm9sdW1lLW9mZntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTYwcHh9LnVpLWljb24tdm9sdW1lLW9ue2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xNjBweH0udWktaWNvbi1wb3dlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE3NnB4fS51aS1pY29uLXNpZ25hbC1kaWFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTE3NnB4fS51aS1pY29uLXNpZ25hbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTB7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0xe2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMntiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTN7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTc2cHh9LnVpLWljb24tY2lyY2xlLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xOTJweH0udWktaWNvbi1jaXJjbGUtbWludXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1le2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS10cmlhbmdsZS13e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1ue2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1le2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1ue2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtem9vbWlue2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtem9vbW91dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWNoZWNre2JhY2tncm91bmQtcG9zaXRpb246LTIwOHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGVzbWFsbC1wbHVze2JhY2tncm91bmQtcG9zaXRpb246MCAtMjA4cHh9LnVpLWljb24tY2lyY2xlc21hbGwtbWludXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMjA4cHh9LnVpLWljb24tY2lyY2xlc21hbGwtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMjA4cHh9LnVpLWljb24tc3F1YXJlc21hbGwtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0yMDhweH0udWktaWNvbi1ncmlwLWRvdHRlZC12ZXJ0aWNhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTIyNHB4fS51aS1pY29uLWdyaXAtZG90dGVkLWhvcml6b250YWx7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1zb2xpZC12ZXJ0aWNhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0yMjRweH0udWktaWNvbi1ncmlwLXNvbGlkLWhvcml6b250YWx7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMjI0cHh9LnVpLWljb24tZ3JpcHNtYWxsLWRpYWdvbmFsLXNle2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTIyNHB4fS51aS1pY29uLWdyaXAtZGlhZ29uYWwtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMjI0cHh9LnVpLWNvcm5lci1hbGwsLnVpLWNvcm5lci10b3AsLnVpLWNvcm5lci1sZWZ0LC51aS1jb3JuZXItdGx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHh9LnVpLWNvcm5lci1hbGwsLnVpLWNvcm5lci10b3AsLnVpLWNvcm5lci1yaWdodCwudWktY29ybmVyLXRye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLWJvdHRvbSwudWktY29ybmVyLWxlZnQsLnVpLWNvcm5lci1ibHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLWJvdHRvbSwudWktY29ybmVyLXJpZ2h0LC51aS1jb3JuZXItYnJ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS51aS13aWRnZXQtb3ZlcmxheXtiYWNrZ3JvdW5kOiNhYWE7b3BhY2l0eTouMzstbXMtZmlsdGVyOkFscGhhKE9wYWNpdHk9MzApfS51aS13aWRnZXQtc2hhZG93ey13ZWJraXQtYm94LXNoYWRvdzowIDAgNXB4ICM2NjY7Ym94LXNoYWRvdzowIDAgNXB4ICM2NjZ9Ci8qKiAvY3NzL2Rhcmt0b29sdGlwLmNzcyAqKi8KLmRhcmstdG9vbHRpcHtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0Om5vcm1hbDtoZWlnaHQ6YXV0bzt0b3A6MDtsZWZ0OjB9LmRhcmstdG9vbHRpcC5zbWFsbHtwYWRkaW5nOjRweDtmb250LXNpemU6MC43NXJlbSA7bWF4LXdpZHRoOjE1MHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweH0uZGFyay10b29sdGlwLm1lZGl1bXtwYWRkaW5nOjZweDtmb250LXNpemU6MC42ODhyZW0gO21heC13aWR0aDoyMDBweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXJhZGl1czo0cHh9LmRhcmstdG9vbHRpcC5sYXJnZXtwYWRkaW5nOjE2cHg7Zm9udC1zaXplOjFyZW0gO21heC13aWR0aDoyNTBweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4Oy1tb3otYm9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyLXJhZGl1czo2cHh9LmRhcmstdG9vbHRpcCAudGlwe3RyYW5zZm9ybTpzY2FsZSgxLjAxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjAxKTt0cmFuc2Zvcm06c2NhbGUoMS4wMSk7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZDtsaW5lLWhlaWdodDowfS5kYXJrLXRvb2x0aXAuc291dGggLnRpcHtsZWZ0OjUwJTt0b3A6MTAwJX0uZGFyay10b29sdGlwLndlc3QgLnRpcHtsZWZ0OjA7dG9wOjUwJX0uZGFyay10b29sdGlwLm5vcnRoIC50aXB7bGVmdDo1MCU7dG9wOjB9LmRhcmstdG9vbHRpcC5lYXN0IC50aXB7bGVmdDoxMDAlO3RvcDo1MCV9LmRhcmstdG9vbHRpcC5zb3V0aC5zbWFsbCAudGlwe2JvcmRlci13aWR0aDowIDVweCAwIDVweDttYXJnaW4tbGVmdDotNXB4fS5kYXJrLXRvb2x0aXAuc291dGgubWVkaXVtIC50aXB7Ym9yZGVyLXdpZHRoOjAgNnB4IDAgNnB4O21hcmdpbi1sZWZ0Oi02cHh9LmRhcmstdG9vbHRpcC5zb3V0aC5sYXJnZSAudGlwe2JvcmRlci13aWR0aDowIDEycHggMCAxMnB4O21hcmdpbi1sZWZ0Oi0xMnB4fS5kYXJrLXRvb2x0aXAud2VzdC5zbWFsbCAudGlwe2JvcmRlci13aWR0aDo1cHggN3B4IDVweCAwO21hcmdpbi1sZWZ0Oi03cHg7bWFyZ2luLXRvcDotNXB4fS5kYXJrLXRvb2x0aXAud2VzdC5tZWRpdW0gLnRpcHtib3JkZXItd2lkdGg6NnB4IDhweCA2cHggMDttYXJnaW4tbGVmdDotOHB4O21hcmdpbi10b3A6LTZweH0uZGFyay10b29sdGlwLndlc3QubGFyZ2UgLnRpcHtib3JkZXItd2lkdGg6MTJweCAxNHB4IDEycHggMDttYXJnaW4tbGVmdDotMTRweDttYXJnaW4tdG9wOi0xMnB4fS5kYXJrLXRvb2x0aXAubm9ydGguc21hbGwgLnRpcHtib3JkZXItd2lkdGg6MCA1cHggN3B4IDVweDttYXJnaW4tbGVmdDotNXB4O21hcmdpbi10b3A6LTdweH0uZGFyay10b29sdGlwLm5vcnRoLm1lZGl1bSAudGlwe2JvcmRlci13aWR0aDowIDZweCA4cHggNnB4O21hcmdpbi1sZWZ0Oi02cHg7bWFyZ2luLXRvcDotOHB4fS5kYXJrLXRvb2x0aXAubm9ydGgubGFyZ2UgLnRpcHtib3JkZXItd2lkdGg6MCAxMnB4IDE0cHggMTJweDttYXJnaW4tbGVmdDotMTJweDttYXJnaW4tdG9wOi0xNHB4fS5kYXJrLXRvb2x0aXAuZWFzdC5zbWFsbCAudGlwe2JvcmRlci13aWR0aDo1cHggMCA1cHggMDttYXJnaW4tdG9wOi01cHh9LmRhcmstdG9vbHRpcC5lYXN0Lm1lZGl1bSAudGlwe2JvcmRlci13aWR0aDo2cHggMCA2cHggMDttYXJnaW4tdG9wOi02cHh9LmRhcmstdG9vbHRpcC5lYXN0LmxhcmdlIC50aXB7Ym9yZGVyLXdpZHRoOjEycHggMCAxMnB4IDA7bWFyZ2luLXRvcDotMTJweH0uZGFyay10b29sdGlwIHVsLmNvbmZpcm17bGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luLXRvcDo1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjAgYXV0b30uZGFyay10b29sdGlwIHVsLmNvbmZpcm0gbGl7cGFkZGluZzoxMHB4O2Zsb2F0OmxlZnQ7bWFyZ2luOjVweDttaW4td2lkdGg6MjVweDstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy1tb3otYm9yZGVyLXJhZGl1czozcHg7LW8tYm9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHh9LmRhcmstdG9vbHRpcC5kYXJre2JhY2tncm91bmQtY29sb3I6I2RhZDlkYjtjb2xvcjojMDAwfS5kYXJrLXRvb2x0aXAubGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiM1ZTVlNWU7Ym9yZGVyOjFweCBzb2xpZCAjNWU1ZTVlO3otaW5kZXg6MTAwMDAzMH0uZGFyay10b29sdGlwLmRhcmsuc291dGggLnRpcHtib3JkZXItY29sb3I6I2RhZDlkYiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtfYm9yZGVyLWNvbG9yOiNkYWQ5ZGIgIzAwMCAjMDAwICMwMDA7X2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyl9LmRhcmstdG9vbHRpcC5kYXJrLndlc3QgLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgI2RhZDlkYiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtfYm9yZGVyLWNvbG9yOiMwMDAgI2RhZDlkYiAjMDAwICMwMDA7X2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQ2hyb21hKGNvbG9yPScjMDAwMDAwJyl9LmRhcmstdG9vbHRpcC5kYXJrLm5vcnRoIC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNkYWQ5ZGIgdHJhbnNwYXJlbnQ7X2JvcmRlci1jb2xvcjojMDAwICMwMDAgI2RhZDlkYiAjMDAwO19maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpfS5kYXJrLXRvb2x0aXAuZGFyay5lYXN0IC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNkYWQ5ZGI7X2JvcmRlci1jb2xvcjojMDAwICMwMDAgIzAwMCAjZGFkOWRiO19maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpfS5kYXJrLXRvb2x0aXAubGlnaHQuc291dGggLnRpcHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcHMucG5nKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7d2lkdGg6MTJweDtoZWlnaHQ6OHB4fS5kYXJrLXRvb2x0aXAubGlnaHQud2VzdCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwdy5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDt3aWR0aDo4cHg7aGVpZ2h0OjEycHh9LmRhcmstdG9vbHRpcC5saWdodC5ub3J0aCAudGlwe2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwbi5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDt3aWR0aDoxMnB4O2hlaWdodDo4cHh9LmRhcmstdG9vbHRpcC5saWdodC5lYXN0IC50aXB7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBlLnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCBjZW50ZXI7d2lkdGg6OHB4O2hlaWdodDoxMnB4fS5kYXJrLXRvb2x0aXAuZGFyayB1bC5jb25maXJtIGxpe2JhY2tncm91bmQtY29sb3I6IzQxNmU4NX0uZGFyay10b29sdGlwLmRhcmsgdWwuY29uZmlybSBsaTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM0MTdlODV9LmRhcmstdG9vbHRpcC5saWdodCB1bC5jb25maXJtIGxpe2JhY2tncm91bmQtY29sb3I6I2MxZGJkYn0uZGFyay10b29sdGlwLmxpZ2h0IHVsLmNvbmZpcm0gbGk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZGNlOGU4fS5hbmltYXRlZHstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstbW96LWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDstbXMtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1vLWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDthbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjVzOy1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOi41czstbXMtYW5pbWF0aW9uLWR1cmF0aW9uOi41czstby1hbmltYXRpb24tZHVyYXRpb246LjVzO2FuaW1hdGlvbi1kdXJhdGlvbjouNXN9QC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblVwezAuMDAwMSV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpfTcwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwKTtvcGFjaXR5OjF9fUAtbW96LWtleWZyYW1lcyBmbGlwSW5VcHswLjAwMDEle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpfTcwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfTEwMCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDApO29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBmbGlwSW5VcHswLjAwMDEley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MH00MCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpfTcwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfTEwMCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDApO29wYWNpdHk6MX19QGtleWZyYW1lcyBmbGlwSW5VcHswLjAwMDEle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpfTcwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfTEwMCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDApO29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblJpZ2h0ezAuMDAwMSV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpfTcwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgwKTtvcGFjaXR5OjF9fUAtbW96LWtleWZyYW1lcyBmbGlwSW5SaWdodHswLjAwMDEle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpfTcwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfTEwMCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBmbGlwSW5SaWdodHswLjAwMDEley1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MH00MCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpfTcwJXstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfTEwMCV7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO29wYWNpdHk6MX19QGtleWZyYW1lcyBmbGlwSW5SaWdodHswLjAwMDEle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpfTcwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfTEwMCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDApO29wYWNpdHk6MX19LmZsaXBJbnstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50Oy1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7LW8tYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnR9LmZsaXBJbi5zb3V0aCwuZmxpcEluLm5vcnRoey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7LW1vei1hbmltYXRpb24tbmFtZTpmbGlwSW5VcDstby1hbmltYXRpb24tbmFtZTpmbGlwSW5VcDthbmltYXRpb24tbmFtZTpmbGlwSW5VcH0uZmxpcEluLndlc3QsLmZsaXBJbi5lYXN0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7LW1vei1hbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDstby1hbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDthbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluezB7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgZmFkZUluezB7b3BhY2l0eTowfTEwMCV7b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGZhZGVJbnswe29wYWNpdHk6MH0xMDAle29wYWNpdHk6MX19QGtleWZyYW1lcyBmYWRlSW57MHtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fS5mYWRlSW57LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW47LW1vei1hbmltYXRpb24tbmFtZTpmYWRlSW47LW8tYW5pbWF0aW9uLW5hbWU6ZmFkZUluO2FuaW1hdGlvbi1uYW1lOmZhZGVJbn0KLyoqIC9jc3MvZGl2X2Jsb2Nrcy5jc3MgKiovCmRpdi5kaXZCbG9ja1ZpZXd7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUaXRsZSwgZGl2LmRpdkJsb2NrVmlldyBsYWJlbC5kaXZCbG9ja1RpdGxleyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MzBweCAxMHB4IDEwcHggMTBweDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGl0bGUuYmxvY2tUaXRsZVN0eWxlMiwgZGl2LmRpdkJsb2NrVmlldyBsYWJlbC5kaXZCbG9ja1RpdGxlLmJsb2NrVGl0bGVTdHlsZTJ7IHBhZGRpbmc6MCA0MHB4IDEwcHg7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50eyBiYWNrZ3JvdW5kOm5vbmU7IHBhZGRpbmc6MTVweCAwcHg7IG1hcmdpbjowOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ29udGVudCBkaXYuZGl2QmxvY2tDb2x1bW57IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzowIDQwcHg7IG1hcmdpbjowOyB3aWR0aDo4NjBweCAhaW1wb3J0YW50OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6aW5oZXJpdDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdHsgYmFja2dyb3VuZDppbml0aWFsOyBwYWRkaW5nOjA7IG1hcmdpbjowIDAgMjBweCAwOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IHsgcGFkZGluZzoxMHB4IDAgMCAwOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0LnNpemVGb3I0Q29sdW1uc0xpc3R7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Q6bm90KC5zaXplRm9yNENvbHVtbnNMaXN0KTpudGgtY2hpbGQoM24rMSksIGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0LnNpemVGb3I0Q29sdW1uc0xpc3Q6bnRoLWNoaWxkKDRuKzEpeyBjbGVhcjpsZWZ0OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IGRpdi5kaXZCbG9ja0xpc3RUaXRsZXsgYmFja2dyb3VuZDppbml0aWFsOyBwYWRkaW5nOjAgMCAxMHB4IDA7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBmb250LXdlaWdodDpib2xkIH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW17IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgbWFyZ2luOjA7IHRleHQtaW5kZW50OjA7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2Fycm93X3JlZC5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDAgNXB4IHRyYW5zcGFyZW50OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtID4gQXsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZDpub25lOyBmb250LXNpemU6aW5pdGlhbDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0VGl0bGUyeyBmb250LXNpemU6MS4xZW07IGJvcmRlcjowOyBtYXJnaW46MDsgcGFkZGluZzowIDAgMTBweCAwOyBmb250LXdlaWdodDpib2xkOyBsaXN0LXN0eWxlOm5vbmU7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yeyBwYWRkaW5nOjAgMzBweCAxMHB4IDEwcHg7IHRleHQtaW5kZW50OjA7IGxpc3Qtc3R5bGU6bm9uZSBvdXRzaWRlIG5vbmU7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjowIDAgMCAxMnB4OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMjpiZWZvcmV7IGNvbnRlbnQ6IlxmMTM4IjsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IGZvbnQtd2VpZ2h0OjkwMDsgbWFyZ2luLXJpZ2h0OjA7IG1hcmdpbi1sZWZ0Oi0yMXB4OyBwYWRkaW5nLXJpZ2h0OjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTI6YmVmb3JleyBmb250LXdlaWdodDpub3JtYWw7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgTEkgeyBwYWRkaW5nOjAgMzBweCAxMHB4IDEwcHg7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0ubm9TdHlsZUl0ZW17IHBhZGRpbmc6MCAwIDVweCAwOyBtYXJnaW46MDsgdGV4dC1pbmRlbnQ6MDsgYmFja2dyb3VuZDpub25lOyBsaXN0LXN0eWxlOm5vbmU7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0ub25TYW1lTGluZXsgcGFkZGluZy1yaWdodDoxNXB4OyBkaXNwbGF5OmlubGluZS10YWJsZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5vblNhbWVMaW5lOmxhc3QtY2hpbGR7IHBhZGRpbmctcmlnaHQ6MDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RhYmxlT3V0ZXJ7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUYWJsZXsgZGlzcGxheTp0YWJsZTsgd2lkdGg6MTAwJTsgcGFkZGluZzowOyBtYXJnaW46MDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1Jvd3sgZGlzcGxheTp0YWJsZS1yb3c7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDZWxseyBkaXNwbGF5OnRhYmxlLWNlbGw7IH0gZGl2LmRpdkRpc2NsYWltZXJCbG9ja3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZW5lcmFsLWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czozcHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ29udGVudCBkaXYuZGl2QmxvY2tDb2x1bW4geyB3aWR0aDoxMTAwcHggIWltcG9ydGFudDsgfSB9Ci8qKiAvY3NzL25ld2NhcnMuY3NzICoqLwouZGl2RmlsdGVyT3V0ZXJCb3h7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjYWFhOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luOjE1cHggMCAwIDA7IHBhZGRpbmc6MTVweDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggVUwgeyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6MHB4IDEwcHggMjBweCAwOyBtYXJnaW46MDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kaXZGaWx0ZXJPdXRlckJveCBVTC5zaG93QXNSb3cgeyBkaXNwbGF5OmlubGluZS1mbGV4OyBmbGV4LXdyYXA6d3JhcDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggVUwgTEl7IG1hcmdpbjowIDAgM3B4IDA7IH0gLmRpdkZpbHRlck91dGVyQm94IFVMLnNob3dBc1JvdyBMSXsgcGFkZGluZy1yaWdodDoxMHB4OyBmbGV4OjAgMCAxNTBweDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggLmRpdkZpbHRlclRpdGxleyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5kaXZGaWx0ZXJPdXRlckJveCAuZGl2RmlsdGVyQm94VGl0bGV7IG1hcmdpbjowIDAgMTVweCAwOyBjb2xvcjojNjY2OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMCAxMHB4IDA7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyeyBjb2xvcjojMDAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyeyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXI6bGFzdC1jaGlsZHsgbWFyZ2luLWJvdHRvbTowOyB9IEgxLmRlZmF1bHQuaXNTaW5nbGVUaXRsZS5pc0JvdHRvbUJvcmRlcmVkLCBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBIMnsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJzQm94V3JhcHBlciB7IGRpc3BsYXk6ZmxleDsgZmxleC1mbG93OnJvdyB3cmFwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveHsgcG9zaXRpb246cmVsYXRpdmU7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbjoxNXB4IDVweCAxMHB4IDVweDsgcGFkZGluZzoxMHB4OyBib3JkZXI6MXB4ICNkZGQgc29saWQ7IGhlaWdodDozMjBweDsgdHJhbnNpdGlvbjpib3JkZXIgMC4ycyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMC4ycyBsaW5lYXI7IC13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXIgMC4ycyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMC4ycyBsaW5lYXIgOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOmNhbGMoMzMuMzMzMzMzJSAtIDEwcHgpOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveC5kaXZNYWtlTG9nb09ubHl7IGhlaWdodDoxNTZweDsgd2lkdGg6YXV0bzsgbWFyZ2luLXRvcDoyMHB4OyBwYWRkaW5nOjIwcHg7IGJvcmRlci1jb2xvcjojZWVlOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5IElNRyB7IGhlaWdodDoxMDAlOyB3aWR0aDphdXRvOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveDpudGgtY2hpbGQoMyl7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94OmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojZWZlZmVmOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveDphY3RpdmUgeyBib3JkZXItY29sb3I6IzY2NjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guTW92aW5nQm94RWZmZWN0IHsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94eyBtYXJnaW46MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGZsb2F0OmxlZnQ7IG9wYWNpdHk6MTsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nOjA7IGJvcmRlcjowOyBjdXJzb3I6cG9pbnRlcjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lcnsgZmxvYXQ6bGVmdDsgY2xlYXI6Ym90aDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgQXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgSDN7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuQ2FyTWFrZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44NzVyZW0gOyB3aWR0aDphdXRvOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6bm9ybWFsOyBjb2xvcjojMDAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIHNwYW4uc3Bhbk1vZGVsTmFtZXsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuMzEzcmVtIDsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0Om5vcm1hbDsgY29sb3I6IzAwMmM1ZjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJUaXRsZUNvbnRhaW5lciBkaXYuZGl2TmV3Q2FyU3RhcnRQcmljZSwgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgZGl2LmRpdk5ld0NhclByb21vUHJpY2V7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuNzVyZW0gOyB3aWR0aDphdXRvOyBoZWlnaHQ6YXV0bzsgbGluZS1oZWlnaHQ6bm9ybWFsOyBjb2xvcjojMDAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckltYWdlQ29udGFpbmVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjIwcHg7IGxlZnQ6MTBweDsgcmlnaHQ6MTBweDsgaGVpZ2h0OjgwJTsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJJbWFnZUNvbnRhaW5lciBBeyBmbG9hdDpsZWZ0OyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckltYWdlQ29udGFpbmVyIElNR3sgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveHsgaGVpZ2h0OjQwNXB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seXsgaGVpZ2h0OjE1NnB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuQ2FyTWFrZXsgZm9udC1zaXplOjEuMDYzcmVtIDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIHNwYW4uc3Bhbk1vZGVsTmFtZXsgZm9udC1zaXplOjEuNjI1cmVtIDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclRpdGxlQ29udGFpbmVyIGRpdi5kaXZOZXdDYXJTdGFydFByaWNleyBmb250LXNpemU6MC45MzhyZW0gOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkZpbHRlck91dGVyQm94IGRpdi5kaXZGaWx0ZXJCb3hUaXRsZXsgd2lkdGg6MTEwMHB4OyB9IH0gLnJlYmF0ZVRhZ3sgcGFkZGluZzoycHggMTBweCA0cHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTE2cHg7IHJpZ2h0OjE1cHg7IGJhY2tncm91bmQ6IzAwMmM1ZiFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgfSAucmViYXRlVGFnIHNwYW4ucmViYXRlVGV4dHsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5yZWJhdGVUYWcgc3Bhbi5yZWJhdGVBbW91bnR7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OjcwMDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3gucmViYXRlQm9yZGVyQ29sb3J7IGJvcmRlci1jb2xvcjojZGRkOyBtYXJnaW4tdG9wOjIwcHggIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxNXB4ICFpbXBvcnRhbnQ7IH0gZGl2LmRpdkNhckZvb3RlckNvbnRhaW5lcnsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowcHg7IGxlZnQ6MDsgcmlnaHQ6MDsgd2lkdGg6MTAwJTsgfSBkaXYuY2FyUGF5bWVudFdyYXBwZXJ7IGhlaWdodDo2cmVtOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMjk5cHgpIHsgZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94eyBoZWlnaHQ6MzgwcHghaW1wb3J0YW50OyB9IGRpdi5jYXJQYXltZW50V3JhcHBlcnsgaGVpZ2h0OjZyZW0haW1wb3J0YW50OyB9IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FyUGF5bWVudENvbnRhaW5lciB7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNlcnQtY29uY3JldGUtZ3JheSwgdmFyKC0tbGlnaHQtZ3JheSkpOyBwYWRkaW5nLWJvdHRvbTo1cHg7IHBhZGRpbmctdG9wOjVweDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRMaW5lMnsgZm9udC1zaXplOjEuMTg4cmVtIDsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTIgc3BhbnsgY29sb3I6IzAwMmM1ZjsgZm9udC1zaXplOjEuMTg4cmVtIDsgZm9udC13ZWlnaHQ6NzAwOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRMaW5lM3sgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNkI2QjZCOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRMaW5lMXsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNkI2QjZCOyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckNvbnRhY3RDVEFDb250YWluZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQXsgYm90dG9tOjUwcHghaW1wb3J0YW50OyB9IGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveFdpdGhDVEF7IGhlaWdodDo0MjVweCFpbXBvcnRhbnQ7IH0gZGl2LmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIGRpdi5kaXZDYXRlZ29yeUJveFdyYXBwZXIgZGl2LmRpdkNhclNpbmdsZU91dGVyQm94IGRpdi5kaXZDYXJTaW5nbGVJbm5lckJveCBkaXYuZGl2Q2FySW1hZ2VDb250YWluZXJXaXRoQ1RBeyBib3R0b206NjBweCFpbXBvcnRhbnQ7IH0gLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyVG9vbHRpcHsgZGlzcGxheTppbmxpbmUtdGFibGU7IHBhZGRpbmc6MCAxMHB4OyBjdXJzb3I6cG9pbnRlcjsgfSAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDoxMCU7IH0gLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLnBheW1lbnRJbmZvQnViYmxleyBkaXNwbGF5Om5vbmU7IH0gZGl2LmRpdkNhclNpbmdsZU91dGVyQm94OmhvdmVyIGRpdi5kaXZDYXJJblN0b2NrTGlua3sgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IGRpdi5kaXZDYXJJblN0b2NrTGlua3sgYmFja2dyb3VuZC1jb2xvcjojZWZlZmVmOyBwYWRkaW5nOjNweCA4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyB3aWR0aDpmaXQtY29udGVudDsgY29sb3I6IzAwMDsgbWFyZ2luLXRvcDoxMHB4OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckluU3RvY2tMaW5rIGF7IGNvbG9yOiMwMDA7IH0gZGl2LmRpdkRpc2NsYWltZXJCbG9ja3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1nZW5lcmFsLWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czozcHg7IH0KLyoqIC9jc3MvZGl2X3Jhbmdlc2xpZGVyLmNzcyAqKi8KZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXJ7IG1hcmdpbjowIDAgMTBweCAwOyBwYWRkaW5nOjA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci10aXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowIDAgMTBweCAwOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzeyBwYWRkaW5nOjAgMCAxNXB4IDA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXMgc3Bhbi5wcmljZS1taW57fSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlcyBzcGFuLnByaWNlLW1heHt9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXJ7IGJvcmRlci1yYWRpdXM6NXB4ICFpbXBvcnRhbnQ7IGhlaWdodDoxMHB4OyBtYXJnaW46NHB4IDZweCAwIC0zcHg7IHBhZGRpbmc6MDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItbGVmdCwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1yaWdodHsgZm9udC1zaXplOjAuNzVyZW0gOyBsaW5lLWhlaWdodDoyMHB4OyBjb2xvcjojNzU3NTc1OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItbGVmdHsgdGV4dC1hbGlnbjpsZWZ0OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcmlnaHR7IHRleHQtYWxpZ246cmlnaHQ7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBkaXYudWktc2xpZGVyLXJhbmdleyBiYWNrZ3JvdW5kOiNlNGRjZDM7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBBLnVpLXNsaWRlci1oYW5kbGUsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgc3Bhbi51aS1zbGlkZXItaGFuZGxleyBtYXJnaW46LThweCAwIDAgLTExcHg7IGJvcmRlcjoxcHggc29saWQgI2NjYzsgcGFkZGluZzowICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NTBweCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiNmZmYgIWltcG9ydGFudDsgdG9wOjA7IGhlaWdodDoyNXB4OyB3aWR0aDoyNXB4OyBjdXJzb3I6cG9pbnRlcjsgb3V0bGluZTpub25lICFpbXBvcnRhbnQ7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBBLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtaG92ZXIsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWFjdGl2ZSwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBzcGFuLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtaG92ZXIsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgc3Bhbi51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWFjdGl2ZXsgYm9yZGVyLWNvbG9yOiM2NjY7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBBLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtZm9jdXMsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgc3Bhbi51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzeyBvdXRsaW5lOm5vbmUgIWltcG9ydGFudDsgfQovKiogL2Nzcy9kaXZfYW5pbWF0aW9ucy5taW4uY3NzICoqLwouYm91bmNpbmctcHJpY2UtYXJyb3d7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2luZy1hcnJvdzstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjo1czstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLW5hbWU6Ym91bmNpbmctYXJyb3c7YW5pbWF0aW9uLWR1cmF0aW9uOjVzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSl9LmZhZGUtaW4tb3V0LC5mYWRlLWluLW91dC1mYXN0ey13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZX1Aa2V5ZnJhbWVzIGJvdW5jaW5nLWFycm93ezAlLDEwMCUsMTYlLDMyJXstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDVweCwwKSByb3RhdGUoMjUwZGVnKSBzY2FsZSgxKX0yNCUsOCV7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMTVweCkgcm90YXRlKDI5MGRlZykgc2NhbGUoLjc1KTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSl9fUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2luZy1hcnJvd3swJSwxMDAlLDE2JSwzMiV7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoNXB4LDApIHJvdGF0ZSgyNTBkZWcpIHNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1cHgsMCkgcm90YXRlKDI1MGRlZykgc2NhbGUoMSl9MjQlLDgley1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTE1cHgpIHJvdGF0ZSgyOTBkZWcpIHNjYWxlKC43NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0xNXB4KSByb3RhdGUoMjkwZGVnKSBzY2FsZSguNzUpfX0uZmFkZS1pbi1vdXR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlLWluLW91dDstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24tbmFtZTpmYWRlLWluLW91dDthbmltYXRpb24tZHVyYXRpb246MnM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTtvcGFjaXR5OjF9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtaW4tb3V0ezAlLDEwMCUsNTAle29wYWNpdHk6MX0yNSV7b3BhY2l0eTouNX19QGtleWZyYW1lcyBmYWRlLWluLW91dHswJSwxMDAlLDQwJXtvcGFjaXR5OjF9MjAle29wYWNpdHk6LjV9fS5mYWRlLWluLW91dC1mYXN0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZS1pbi1vdXQtZmFzdDstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjouNXM7YW5pbWF0aW9uLW5hbWU6ZmFkZS1pbi1vdXQtZmFzdDthbmltYXRpb24tZHVyYXRpb246LjVzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7b3BhY2l0eToxfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlLWluLW91dC1mYXN0ezAlLDEwMCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5Oi41fX1Aa2V5ZnJhbWVzIGZhZGUtaW4tb3V0LWZhc3R7MCUsMTAwJXtvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fS5pY29uLWNpcmNsaW5ney13ZWJraXQtYW5pbWF0aW9uLW5hbWU6aWNvbi1jaXJjbGluZzstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoxczstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNjgsLS41NSwuMjcsMS41NSk7YW5pbWF0aW9uLW5hbWU6aWNvbi1jaXJjbGluZzthbmltYXRpb24tZHVyYXRpb246MXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNjgsLS41NSwuMjcsMS41NSl9QC13ZWJraXQta2V5ZnJhbWVzIGljb24tY2lyY2xpbmd7ZnJvbXstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3stbXMtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBpY29uLWNpcmNsaW5ne2Zyb217LW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDApO3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97LW1zLXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fQovKiogL2Nzcy9yZXZlYWwuY3NzICoqLwoucmV2ZWFsLW1vZGFsLWJnIHsgcG9zaXRpb246Zml4ZWQ7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kOiMwMDA7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7IHotaW5kZXg6MTAwMDAwOTsgZGlzcGxheTpub25lOyB0b3A6MDsgbGVmdDowOyB9IC5yZXZlYWwtbW9kYWwgeyB2aXNpYmlsaXR5OmhpZGRlbjsgdG9wOi0xMDAwcHg7IHdpZHRoOm1pbig1MjBweCwgOTB2dyk7IGJhY2tncm91bmQ6I2VlZSB1cmwoL2ltYWdlcy9tb2RhbC1nbG9zcy5wbmcpIG5vLXJlcGVhdCAtMjAwcHggLTgwcHg7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgcmlnaHQ6MDsgbWFyZ2luOmF1dG87IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzozMHB4IDQwcHggMzRweDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwwLDAsLjQpOyAtYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgfSAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IHsgdmlzaWJpbGl0eTpoaWRkZW47IHRvcDoxMDBweDsgd2lkdGg6NTIwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MzBweCA0MHB4IDM0cHg7IGJhY2tncm91bmQ6bm9uZTsgLW1vei1ib3JkZXItcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweDsgYm9yZGVyLXJhZGl1czowcHg7IC1tb3otYm94LXNoYWRvdzpub25lOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgLWJveC1zaGFkb3c6bm9uZTsgfSAuLS1pcy1wb3B1cC1maXhlZC1jb250YWluZXIgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgei1pbmRleDoxMDAwMDAwMDA7IH0gLnJldmVhbC1tb2RhbC5zbWFsbCB7IHdpZHRoOjIwMHB4O30gLnJldmVhbC1tb2RhbC5tZWRpdW0geyB3aWR0aDo0MDBweDt9IC5yZXZlYWwtbW9kYWwubGFyZ2UgeyB3aWR0aDo2MDBweDt9IC5yZXZlYWwtbW9kYWwueGxhcmdlIHsgd2lkdGg6ODAwcHg7fSAucmV2ZWFsLW1vZGFsIC5jbG9zZS1yZXZlYWwtbW9kYWwgeyBmb250LXNpemU6MS4zNzVyZW0gOyBsaW5lLWhlaWdodDouNTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo5cHg7IHJpZ2h0OjEwcHg7IGNvbG9yOiM0NDQ7IHRleHQtc2hhZG93OjAgLTFweCAxcHggcmJnYSgwLDAsMCwuNik7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyB9IC5jbG9zZS1yZXZlYWwtbW9kYWwubW9kYWwtY2xvc2UtaGlkZSB7IGRpc3BsYXk6bm9uZTsgfSAucmV2ZWFsLW1vZGFsIHNwYW4geyBwYWRkaW5nOjBweDsgZm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbi1ib3R0b206MTBweDsgY29sb3I6IzQxNDE0MTsgfSAucmV2ZWFsLW1vZGFsIHNwYW4uc3VjY2VzcyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2lyY2xlLWdyZWVuLTI0LW5zLnBuZykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudDsgfSAucmV2ZWFsLW1vZGFsIHNwYW4uZmFpbCB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2lyY2xlLXJlZC0yNC1ucy5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IHBhZGRpbmctbGVmdDozMHB4OyB9IC5yZXZlYWwtbW9kYWwgcCB7IG1hcmdpbjowIDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzQxNDE0MTsgfSAucG9wdXAtZG9tLW5vd3JhcHBlciB7IGJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50OyBib3gtc2hhZG93Om5vbmU7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDo0ODBweCkgeyAucmV2ZWFsLW1vZGFsLCAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IHsgdG9wOjEwcHg7IHotaW5kZXg6MTAwMDAyMDsgcGFkZGluZzowLjVyZW07IHBhZGRpbmctdG9wOjJyZW07IH0gLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZm9udC1zaXplOjEuODc1cmVtIDsgbGluZS1oZWlnaHQ6MC42OyByaWdodDowLjVyZW07IHRvcDowLjVyZW07IHotaW5kZXg6MTsgfSB9IC5lbWFpbC1jb25zZW50LWJveCA6aXMoLnRpdGxlLXR4dCwgcCl7IG1hcmdpbi1sZWZ0OjA7IHBhZGRpbmc6MDsgY29sb3I6IzQxNDE0MTsgfSAuZW1haWwtY29uc2VudC1ib3h7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgY29sb3I6IzQxNDE0MTsgfSAuZW1haWwtY29uc2VudC1ib3ggLmljb24tdGl0bGV7IHRleHQtYWxpZ246Y2VudGVyOyB9Ci8qKiAvY3NzL21haW4uY3NzICoqLwouLWxlZnQge2Zsb2F0OmxlZnQhaW1wb3J0YW50O30gLi1yaWdodCB7ZmxvYXQ6cmlnaHR9IC4tc21hbGwge2ZvbnQtc2l6ZTouOGVtO21hcmdpbi1ib3R0b206MS44NzVlbTtsaW5lLWhlaWdodDoxLjg3NWVtIWltcG9ydGFudDt9IC4tbGFyZ2Uge2ZvbnQtc2l6ZToxLjJlbTtsaW5lLWhlaWdodDoyLjVlbTttYXJnaW4tYm90dG9tOjEuMjVlbSFpbXBvcnRhbnQ7fSAuLWhpZGUge2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7fSAuLXF1aWV0IHtjb2xvcjojNjY2IWltcG9ydGFudDt9IC4tbG91ZCB7Y29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7fSAuLWhpZ2hsaWdodCB7YmFja2dyb3VuZDojZmYwIWltcG9ydGFudDt9IC4tYWRkZWQge2JhY2tncm91bmQ6IzA2MDtjb2xvcjojZmZmIWltcG9ydGFudDt9IC4tcmVtb3ZlZCB7YmFja2dyb3VuZDojOTAwO2NvbG9yOiNmZmYhaW1wb3J0YW50O30gLi1wdXNoLWZpcnN0IHttYXJnaW4tbGVmdDowO3BhZGRpbmctbGVmdDowIWltcG9ydGFudDt9IC4tcHVzaC1sYXN0IHttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50O30gLi1wdXNoLWxlZnQge21hcmdpbi10b3A6MDtwYWRkaW5nLXRvcDowIWltcG9ydGFudDt9IC4tcHVzaC1ib3R0b20ge21hcmdpbi1ib3R0b206MDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDt9IC4tbm9ib3JkZXIge2JvcmRlcjowIWltcG9ydGFudDt9IC4tbm9kZWNvcmF0aW9uLCAuLW5vLXRleHQtZGVjb3JhdGlvbiwgLi1ub3RleHQtZGVjb3JhdGlvbiB7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50O30gLi10ZXh0LXVwcGVyY2FzZSwgLi11cHBlcmNhc2UsIC50ZXh0LXVwcGVyY2FzZSB7dGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTt9IC4tdGV4dC1sb3dlcmNhc2UsIC4tbG93ZXJjYXNlIHt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2UhaW1wb3J0YW50O30gLi1oaWRkZW4geyBkaXNwbGF5Om5vbmU7IH0gLi10ZXh0LWJvbGQsLmJvbGR7Zm9udC13ZWlnaHQ6Ym9sZCFpbXBvcnRhbnQ7fSAuLXRleHQtbm9ybWFsLC5ub3JtYWx7Zm9udC13ZWlnaHQ6bm9ybWFsIWltcG9ydGFudDt9IC4tYWxpZ24tdG9wIHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50O30gLi1hbGlnbi1taWRkbGUge3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnQ7fSAuLWxpbmUtaDF7IGxpbmUtaGVpZ2h0OjFlbTsgfSAuLWxpbmUtaDJ7IGxpbmUtaGVpZ2h0OjJlbTsgfSAuLWJvdHRvbTB7IGJvdHRvbTowOyB9IC4tYm90dG9tMC1pbXBvcnRhbnR7IGJvdHRvbTowIWltcG9ydGFudDsgfSAuUG9yc2NoZTJ7IGNsZWFyOmJvdGg7IH0gLmJsYWNrLXRleHQgeyBjb2xvcjojMDAwMDAwOyB9IDo6cGxhY2Vob2xkZXIgeyBwYWRkaW5nLXRvcDoxcHg7IGNvbG9yOiNhOWE5YTk7IG9wYWNpdHk6MTsgfSA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI2NhclRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0LCAuU3BlY2lmaWNhdGlvbnMgLmZhLWNoZXZyb24tcmlnaHQgeyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyNXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDo5cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6MS4zNzVyZW0gOyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgY29sb3I6IzAwMDAwMCA7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5TcGVjaWZpY2F0aW9ucyAuZmEtY2hldnJvbi1yaWdodHsgbWFyZ2luLXRvcDoxcHg7IH0gI2NhclRpdGxlIC5tYWtlTW9kZWxZZWFyeyBmb250LXNpemU6MS41NjNyZW0gOyB9ICNjYXJUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MS4xMjVyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyB9IC5jYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDAgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuY2FyVGl0bGUgLm1ha2VNb2RlbFllYXJ7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IH0gLmNhclRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGxldHRlci1zcGFjaW5nOi0xcHg7IH0gI1NlYXJjaFRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjMxcHg7IGhlaWdodDo0MXB4OyBwYWRkaW5nLXRvcDo1cHg7IHBhZGRpbmctbGVmdDoxNHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjIuMTg4cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDAgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAjU2VhcmNoVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjFyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyBtYXJnaW4tbGVmdDo0NXB4OyBkaXNwbGF5OmJsb2NrOyB9IC51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVsIGlucHV0IHsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDoxcHg7IG1hcmdpbi1yaWdodDo4cHg7IGhlaWdodDoxM3B4OyB9IC51aS13aWRnZXQsLnVpLXN0YXRlLWhvdmVyLCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhvdmVyLCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaG92ZXIsIC51aS1zdGF0ZS1mb2N1cywgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1mb2N1cywgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWZvY3VzLCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdHsgYmFja2dyb3VuZDojZmZmIWltcG9ydGFudDsgY29sb3I6IzU1NTsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHR7IHBhZGRpbmc6OHB4IDEwcHghaW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxpeyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDsgfSAudWktY29ybmVyLWFsbHsgYm9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50OyB9IC4tY29sbGFwc2V7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgfSAuLWxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgfSAuLW5vLXNoYWRvdywgLi1zaGFkb3cwLCAuLW5vc2hhZG93eyBib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50OyB9IC4tdW5kZXJsaW5leyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudDsgfSAuLXRvcDB7IHRvcDowOyB9IC4tdGV4dC1sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnQ7fSAuLXRleHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnQ7fSAuLXRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudDt9IC4tdGV4dC1yZWQsIC4tcmVkLXRleHR7Y29sb3I6cmVkIWltcG9ydGFudDt9IC4tYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7fSAuLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7fSAuLW5vbmUsIC4taGlkZGVuLCAuLWhpZGRlIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30gLi1pbmxpbmUge2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudDt9IC4tY29sb3IxIHsgY29sb3I6IzU3NTc1NyFpbXBvcnRhbnQ7fSAuLXRpdGxlMSB7IGZvbnQtc2l6ZToxLjQzOHJlbSAhaW1wb3J0YW50OyBmb250LWNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50OyB9IC4taW5wdXQgeyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxNXB4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGhlaWdodDozMnB4OyBjb2xvcjojNDA0MDQwOyBwYWRkaW5nOjBweCA2cHghaW1wb3J0YW50OyBtYXJnaW46MHB4OyBvdXRsaW5lOm5vbmU7IG1pbi1oZWlnaHQ6MjBweDsgYm9yZGVyOjFweCBzb2xpZCAjY2VkNGRhOyBib3JkZXItcmFkaXVzOi4yNXJlbTsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLi1pbnB1dDpmb2N1cywgLi1pbnB1dDpob3ZlcnsgYm9yZGVyLWNvbG9yOiM4MGJkZmYgIWltcG9ydGFudDsgYm94LXNoYWRvdzowIDAgMCAwLjJyZW0gcmdiYSgwLDEyMywyNTUsLjI1KTsgfSAuLXBvc2l0aW9uLXN0YXRpYywgLi1wb3Mtc3RhdGljLCAuLXBvcy1zdGF0IHtwb3NpdGlvbjpzdGF0aWMhaW1wb3J0YW50O30gLi1wb3NpdGlvbi1hYnNvbHV0ZSwgLi1wb3MtYWJzb2x1dGUsIC4tcG9zLWFicyB7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O30gLi1wb3NpdGlvbi1maXhlZCwgLi1wb3MtZml4ZWQsIC4tcG9zLWZpeCB7cG9zaXRpb246Zml4ZWQhaW1wb3J0YW50O30gLi1wb3NpdGlvbi1yZWxhdGl2ZSwgLi1wb3MtcmVsYXRpdmUsIC4tcG9zLXJlbCB7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50O30gLi1wb3NpdGlvbi1pbmhlcml0LCAuLXBvcy1pbmhlcml0LCAuLXBvcy1pbmgge3Bvc2l0aW9uOmluaGVyaXQhaW1wb3J0YW50O30gLWxoLTEtMywgLWxpbmUtaGVpZ2h0LTEtM3sgbGluZS1oZWlnaHQ6MS4zOyB9IC1saC0yMHsgbGluZS1oZWlnaHQ6MjBweDsgfSAuLWVycm9yLCAuLWFsZXJ0LCAuLW5vdGljZSwgLi1zdWNjZXNzLCAuLWluZm8ge3BhZGRpbmc6MC44ZW07bWFyZ2luLWJvdHRvbToxZW07Ym9yZGVyOjJweCBzb2xpZCAjZGRkIWltcG9ydGFudDt9IC4tZXJyb3IsIC4tYWxlcnQge2JhY2tncm91bmQ6I2ZiZTNlNDtjb2xvcjojOGExZjExO2JvcmRlci1jb2xvcjojZmJjMmM0IWltcG9ydGFudDt9IC4tbm90aWNlIHtiYWNrZ3JvdW5kOiNmZmY2YmY7Y29sb3I6IzUxNDcyMTtib3JkZXItY29sb3I6I2ZmZDMyNCFpbXBvcnRhbnQ7fSAuLXN1Y2Nlc3Mge2JhY2tncm91bmQ6I2U2ZWZjMjtjb2xvcjojMjY0NDA5O2JvcmRlci1jb2xvcjojYzZkODgwIWltcG9ydGFudDt9IC4taW5mbyB7YmFja2dyb3VuZDojZDVlZGY4O2NvbG9yOiMyMDU3OTE7Ym9yZGVyLWNvbG9yOiM5MmNhZTQhaW1wb3J0YW50O30gLi1lcnJvciBhLCAuYWxlcnQgYSB7Y29sb3I6IzhhMWYxMSFpbXBvcnRhbnQ7fSAuLW5vdGljZSBhIHtjb2xvcjojNTE0NzIxIWltcG9ydGFudDt9IC4tc3VjY2VzcyBhIHtjb2xvcjojMjY0NDA5IWltcG9ydGFudDt9IC4taW5mbyBhIHtjb2xvcjojMjA1NzkxIWltcG9ydGFudDt9IC4tYm94IHtwYWRkaW5nOjEuNWVtO21hcmdpbi1ib3R0b206MS41ZW07YmFja2dyb3VuZDojZTVlQ2Y5IWltcG9ydGFudDt9IC1ociB7YmFja2dyb3VuZDojZGRkZGRkO2NvbG9yOiNkZGRkZGQ7Y2xlYXI6Ym90aDtmbG9hdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjFweDttYXJnaW46MCAwIDE3cHg7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O30gLXNwYWNlIHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6I2ZmZjt2aXNpYmlsaXR5OmhpZGRlbjtjbGVhcjpib3RoO2Zsb2F0Om5vbmU7d2lkdGg6MTAwJTtoZWlnaHQ6MXB4O21hcmdpbjowIDAgMTdweDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7fSAuLWNsZWFyZml4OmFmdGVyIHtjb250ZW50OiJcMDAyMCI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDtjbGVhcjpib3RoO3Zpc2liaWxpdHk6aGlkZGVuO292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7fSAuLWNsZWFyZml4e2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O30gLi1jbGVhciB7Y2xlYXI6Ym90aCFpbXBvcnRhbnQ7fSAuaW52aXNpYmxlIHt2aXNpYmlsaXR5OmhpZGRlbjt9IC5jbGVhcmZpeDphZnRlciB7Y29udGVudDoiIjsgZGlzcGxheTp0YWJsZTsgY2xlYXI6Ym90aDt9IC4tb3ZlcmZsb3ctaGlkZGVuIHtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O30gLi13NSB7d2lkdGg6NXB4IWltcG9ydGFudDt9IC4tdzEwIHt3aWR0aDoxMHB4IWltcG9ydGFudDt9IC4tdzE1IHt3aWR0aDoxNXB4IWltcG9ydGFudDt9IC4tdzE4IHt3aWR0aDoxOHB4IWltcG9ydGFudDt9IC4tdzIwIHt3aWR0aDoyMHB4IWltcG9ydGFudDt9IC4tdzI1IHt3aWR0aDoyNXB4IWltcG9ydGFudDt9IC4tdzMwIHt3aWR0aDozMHB4IWltcG9ydGFudDt9IC4tdzM1IHt3aWR0aDozNXB4IWltcG9ydGFudDt9IC4tdzQwIHt3aWR0aDo0MHB4IWltcG9ydGFudDt9IC4tdzQ1IHt3aWR0aDo0NXB4IWltcG9ydGFudDt9IC4tdzUwIHt3aWR0aDo1MHB4IWltcG9ydGFudDt9IC4tdzU1IHt3aWR0aDo1NXB4IWltcG9ydGFudDt9IC4tdzYwIHt3aWR0aDo2MHB4IWltcG9ydGFudDt9IC4tdzY1IHt3aWR0aDo2NXB4IWltcG9ydGFudDt9IC4tdzcwIHt3aWR0aDo3MHB4IWltcG9ydGFudDt9IC4tdzczIHt3aWR0aDo3M3B4IWltcG9ydGFudDt9IC4tdzc1IHt3aWR0aDo3NXB4IWltcG9ydGFudDt9IC4tdzgwIHt3aWR0aDo4MHB4IWltcG9ydGFudDt9IC4tdzg1IHt3aWR0aDo4NXB4IWltcG9ydGFudDt9IC4tdzg4IHt3aWR0aDo4OHB4IWltcG9ydGFudDt9IC4tdzkwIHt3aWR0aDo5MHB4IWltcG9ydGFudDt9IC4tdzk1IHt3aWR0aDo5NXB4IWltcG9ydGFudDt9IC4tdzEwMCB7d2lkdGg6MTAwcHghaW1wb3J0YW50O30gLi13MTEwIHt3aWR0aDoxMTBweCFpbXBvcnRhbnQ7fSAuLXcxMjAge3dpZHRoOjEyMHB4IWltcG9ydGFudDt9IC4tdzEyNSB7d2lkdGg6MTI1cHghaW1wb3J0YW50O30gLi13MTMwIHt3aWR0aDoxMzBweCFpbXBvcnRhbnQ7fSAuLXcxMzUge3dpZHRoOjEzNXB4IWltcG9ydGFudDt9IC4tdzE0MCB7d2lkdGg6MTQwcHghaW1wb3J0YW50O30gLi13MTQzIHt3aWR0aDoxNDNweCFpbXBvcnRhbnQ7fSAuLXcxNDUge3dpZHRoOjE0NXB4IWltcG9ydGFudDt9IC4tdzE1MCB7d2lkdGg6MTUwcHghaW1wb3J0YW50O30gLi13MTcwIHt3aWR0aDoxODBweCFpbXBvcnRhbnQ7fSAuLXcxODAge3dpZHRoOjE4MHB4IWltcG9ydGFudDt9IC4tdzE4NSB7d2lkdGg6MTg1cHghaW1wb3J0YW50O30gLi13MTkwIHt3aWR0aDoxOTBweCFpbXBvcnRhbnQ7fSAuLXcyMDAge3dpZHRoOjIwMHB4IWltcG9ydGFudDt9IC4tdzIxMCB7d2lkdGg6MjEwcHghaW1wb3J0YW50O30gLi13MjE1IHt3aWR0aDoyMTVweCFpbXBvcnRhbnQ7fSAuLXcyMjAge3dpZHRoOjIyMHB4IWltcG9ydGFudDt9IC4tdzIzMCB7d2lkdGg6MjMwcHghaW1wb3J0YW50O30gLi13MjQwIHt3aWR0aDoyNDBweCFpbXBvcnRhbnQ7fSAuLXcyNTAge3dpZHRoOjI1MHB4IWltcG9ydGFudDt9IC4tdzI1NSB7d2lkdGg6MjU1cHghaW1wb3J0YW50O30gLi13MjYwIHt3aWR0aDoyNjBweCFpbXBvcnRhbnQ7fSAuLXcyNzAge3dpZHRoOjI3MHB4IWltcG9ydGFudDt9IC4tdzI3NSB7d2lkdGg6Mjc1cHghaW1wb3J0YW50O30gLi13MjgwIHt3aWR0aDoyODBweCFpbXBvcnRhbnQ7fSAuLXcyOTAge3dpZHRoOjI5MHB4IWltcG9ydGFudDt9IC4tdzMwMCB7d2lkdGg6MzAwcHghaW1wb3J0YW50O30gLi13MzE1IHt3aWR0aDozMTVweCFpbXBvcnRhbnQ7fSAuLXczMjAge3dpZHRoOjMyMHB4IWltcG9ydGFudDt9IC4tdzMyNSB7d2lkdGg6MzI1cHghaW1wb3J0YW50O30gLi13MzUwIHt3aWR0aDozNTBweCFpbXBvcnRhbnQ7fSAuLXc0MDAge3dpZHRoOjQwMHB4IWltcG9ydGFudDt9IC4tdzQ1MCB7d2lkdGg6NDUwcHghaW1wb3J0YW50O30gLi13NDYwIHt3aWR0aDo0NTBweCFpbXBvcnRhbnQ7fSAuLXc1MDAge3dpZHRoOjUwMHB4IWltcG9ydGFudDt9IC4tdzYzMCB7d2lkdGg6NjMwcHghaW1wb3J0YW50O30gLi13NjIwIHt3aWR0aDo2MjBweCFpbXBvcnRhbnQ7fSAuLXc2MjUge3dpZHRoOjYyNXB4IWltcG9ydGFudDt9IC4tdzY3NSB7d2lkdGg6Njc1cHghaW1wb3J0YW50O30gLi13NjgwIHt3aWR0aDo2ODBweCFpbXBvcnRhbnQ7fSAuLXc2NzAge3dpZHRoOjY3MHB4IWltcG9ydGFudDt9IC4tdzcwMCB7d2lkdGg6NzAwcHghaW1wb3J0YW50O30gLi13NzIwIHt3aWR0aDo3MjBweCFpbXBvcnRhbnQ7fSAuLXc3MjUge3dpZHRoOjcyNXB4IWltcG9ydGFudDt9IC4tdzczMCB7d2lkdGg6NzMwcHghaW1wb3J0YW50O30gLi13NzUwIHt3aWR0aDo3NTBweCFpbXBvcnRhbnQ7fSAuLXc4MDAge3dpZHRoOjgwMHB4IWltcG9ydGFudDt9IC4tdzkwMCB7d2lkdGg6OTAwcHghaW1wb3J0YW50O30gLi13OTM3IHt3aWR0aDo5MzdweCFpbXBvcnRhbnQ7fSAuLXc5NDAge3dpZHRoOjk0MHB4IWltcG9ydGFudDt9IC4tdzk2MCB7d2lkdGg6OTYwcHghaW1wb3J0YW50O30gLi13OTcwIHt3aWR0aDo5NzBweCFpbXBvcnRhbnQ7fSAuLXcxMDAwIHt3aWR0aDoxMDAwcHghaW1wb3J0YW50O30gLi13NXAge3dpZHRoOjUlIWltcG9ydGFudDt9IC4tdzEwcCB7d2lkdGg6MTAlIWltcG9ydGFudDt9IC4tdzE1cCB7d2lkdGg6MjAlIWltcG9ydGFudDt9IC4tdzIwcCB7d2lkdGg6MjAlIWltcG9ydGFudDt9IC4td3EsIC4tdzI1cCB7d2lkdGg6MjUlIWltcG9ydGFudDt9IC4tdzMwcCB7d2lkdGg6MzAlIWltcG9ydGFudDt9IC4tdzM1cCB7d2lkdGg6MzUlIWltcG9ydGFudDt9IC4tdzQwcCB7d2lkdGg6NDAlIWltcG9ydGFudDt9IC4tdzQ1cCB7d2lkdGg6NDUlIWltcG9ydGFudDt9IC4td2gsLi13NTBwIHt3aWR0aDo1MCUhaW1wb3J0YW50O30gLi13NTVwIHt3aWR0aDo1NSUhaW1wb3J0YW50O30gLi13NjBwIHt3aWR0aDo2MCUhaW1wb3J0YW50O30gLi13NjVwIHt3aWR0aDo2NSUhaW1wb3J0YW50O30gLi13NzBwIHt3aWR0aDo3MCUhaW1wb3J0YW50O30gLi13NzVwIHt3aWR0aDo3NSUhaW1wb3J0YW50O30gLi13ODBwIHt3aWR0aDo4MCUhaW1wb3J0YW50O30gLi13ODVwIHt3aWR0aDo4NSUhaW1wb3J0YW50O30gLi13OTBwIHt3aWR0aDo5MCUhaW1wb3J0YW50O30gLi13OTVwIHt3aWR0aDo5NSUhaW1wb3J0YW50O30gLi13ZiwuLXcxMDBwIHt3aWR0aDoxMDAlIWltcG9ydGFudDt9IC4tbWF4LXctbm9uZSB7bWF4LXdpZHRoOm5vbmUhaW1wb3J0YW50O30gLi1oNSB7aGVpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLWg2IHtoZWlnaHQ6NnB4IWltcG9ydGFudDt9IC4taDcge2hlaWdodDo3cHghaW1wb3J0YW50O30gLi1oOCB7aGVpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLWg5IHtoZWlnaHQ6OXB4IWltcG9ydGFudDt9IC4taDEwIHtoZWlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLWgxMSB7aGVpZ2h0OjExcHghaW1wb3J0YW50O30gLi1oMTIge2hlaWdodDoxMnB4IWltcG9ydGFudDt9IC4taDEzIHtoZWlnaHQ6MTNweCFpbXBvcnRhbnQ7fSAuLWgxNCB7aGVpZ2h0OjE0cHghaW1wb3J0YW50O30gLi1oMTUge2hlaWdodDoxNXB4IWltcG9ydGFudDt9IC4taDIwIHtoZWlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLWgyNSB7aGVpZ2h0OjI1cHghaW1wb3J0YW50O30gLi1oMzAge2hlaWdodDozMHB4IWltcG9ydGFudDt9IC4taDMyIHtoZWlnaHQ6MzJweCFpbXBvcnRhbnQ7fSAuLWgzNSB7aGVpZ2h0OjM1cHghaW1wb3J0YW50O30gLi1oNDAge2hlaWdodDo0MHB4IWltcG9ydGFudDt9IC4taDQ1IHtoZWlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLWg1MCB7aGVpZ2h0OjUwcHghaW1wb3J0YW50O30gLi1oNTUge2hlaWdodDo1NXB4IWltcG9ydGFudDt9IC4taDYwIHtoZWlnaHQ6NjBweCFpbXBvcnRhbnQ7fSAuLWg2NSB7aGVpZ2h0OjY1cHghaW1wb3J0YW50O30gLi1oNzAge2hlaWdodDo3MHB4IWltcG9ydGFudDt9IC4taDc1IHtoZWlnaHQ6NzVweCFpbXBvcnRhbnQ7fSAuLWg4MCB7aGVpZ2h0OjgwcHghaW1wb3J0YW50O30gLi1oODUge2hlaWdodDo4NXB4IWltcG9ydGFudDt9IC4taDkwIHtoZWlnaHQ6OTBweCFpbXBvcnRhbnQ7fSAuLWg5NSB7aGVpZ2h0Ojk1cHghaW1wb3J0YW50O30gLi1oMTAwIHtoZWlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1oMTEwIHtoZWlnaHQ6MTEwcHghaW1wb3J0YW50O30gLi1oMTIwIHtoZWlnaHQ6MTIwcHghaW1wb3J0YW50O30gLi1oMTMwIHtoZWlnaHQ6MTMwcHghaW1wb3J0YW50O30gLi1oMTQwIHtoZWlnaHQ6MTQwcHghaW1wb3J0YW50O30gLi1oMTUwIHtoZWlnaHQ6MTUwcHghaW1wb3J0YW50O30gLi1oMTYwIHtoZWlnaHQ6MTYwcHghaW1wb3J0YW50O30gLi1oMTcwIHtoZWlnaHQ6MTcwcHghaW1wb3J0YW50O30gLi1oMTgwIHtoZWlnaHQ6MTgwcHghaW1wb3J0YW50O30gLi1oMTkwIHtoZWlnaHQ6MTkwcHghaW1wb3J0YW50O30gLi1oMjAwIHtoZWlnaHQ6MjAwcHghaW1wb3J0YW50O30gLi1oMjIwIHtoZWlnaHQ6MjIwcHghaW1wb3J0YW50O30gLi1oMjMwIHtoZWlnaHQ6MjMwcHghaW1wb3J0YW50O30gLi1oMjQwIHtoZWlnaHQ6MjQwcHghaW1wb3J0YW50O30gLi1oMjQ1IHtoZWlnaHQ6MjQ1cHghaW1wb3J0YW50O30gLi1oMjQ4IHtoZWlnaHQ6MjQ4cHghaW1wb3J0YW50O30gLi1oMjUwIHtoZWlnaHQ6MjUwcHghaW1wb3J0YW50O30gLi1oMjU1IHtoZWlnaHQ6MjU1cHghaW1wb3J0YW50O30gLi1oMjYwIHtoZWlnaHQ6MjYwcHghaW1wb3J0YW50O30gLi1oMzAwIHtoZWlnaHQ6MzAwcHghaW1wb3J0YW50O30gLi1oMzUwIHtoZWlnaHQ6MzUwcHghaW1wb3J0YW50O30gLi1oNDAwIHtoZWlnaHQ6NDAwcHghaW1wb3J0YW50O30gLi1oNDUwIHtoZWlnaHQ6NDUwcHghaW1wb3J0YW50O30gLi1oNTAwIHtoZWlnaHQ6NTAwcHghaW1wb3J0YW50O30gLi1oNTUwIHtoZWlnaHQ6NTUwcHghaW1wb3J0YW50O30gLi1oNjAwIHtoZWlnaHQ6NjAwcHghaW1wb3J0YW50O30gLi1oNjUwIHtoZWlnaHQ6NjUwcHghaW1wb3J0YW50O30gLi1oNzAwIHtoZWlnaHQ6NzAwcHghaW1wb3J0YW50O30gLi1oNzUwIHtoZWlnaHQ6NzUwcHghaW1wb3J0YW50O30gLi1oODAwIHtoZWlnaHQ6ODAwcHghaW1wb3J0YW50O30gLi1oOTAwIHtoZWlnaHQ6OTAwcHghaW1wb3J0YW50O30gLi1oMTAwMCB7aGVpZ2h0OjEwMDBweCFpbXBvcnRhbnQ7fSAuLWg1cCB7aGVpZ2h0OjUlIWltcG9ydGFudDt9IC4taDEwcCB7aGVpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLWgxNXAge2hlaWdodDoxNSUhaW1wb3J0YW50O30gLi1oMjBwIHtoZWlnaHQ6MjAlIWltcG9ydGFudDt9IC4taHEsIC4taDI1cCB7aGVpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLWhoLC4taDUwcCB7aGVpZ2h0OjUwJSFpbXBvcnRhbnQ7fSAuLWhmLC4taDEwMHAge2hlaWdodDoxMDAlIWltcG9ydGFudDt9IC4tYm94LXMtYnsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLi1ib3gtY29udGVudHsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAuLWZsZXh7ZGlzcGxheTpmbGV4O30gLi1mbGV4LWNvbHVtbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30gLi1haS1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyO30gLi1wMCwuLW5vcGFkZGluZywuLW5vcGFkZGluZ3Mge3BhZGRpbmc6MDt9IC4tcDEge3BhZGRpbmc6MXB4IWltcG9ydGFudDt9IC4tcDIge3BhZGRpbmc6MnB4IWltcG9ydGFudDt9IC4tcDMge3BhZGRpbmc6M3B4IWltcG9ydGFudDt9IC4tcDQge3BhZGRpbmc6NHB4IWltcG9ydGFudDt9IC4tcDUge3BhZGRpbmc6NXB4IWltcG9ydGFudDt9IC4tcDYge3BhZGRpbmc6NnB4IWltcG9ydGFudDt9IC4tcDcge3BhZGRpbmc6N3B4IWltcG9ydGFudDt9IC4tcDgge3BhZGRpbmc6OHB4IWltcG9ydGFudDt9IC4tcDkge3BhZGRpbmc6OXB4IWltcG9ydGFudDt9IC4tcDEwIHtwYWRkaW5nOjEwcHghaW1wb3J0YW50O30gLi1wMTUge3BhZGRpbmc6MTVweCFpbXBvcnRhbnQ7fSAuLXAyMCB7cGFkZGluZzoyMHB4IWltcG9ydGFudDt9IC4tcDI1IHtwYWRkaW5nOjI1cHghaW1wb3J0YW50O30gLi1wMzAge3BhZGRpbmc6MzBweCFpbXBvcnRhbnQ7fSAuLXAzNSB7cGFkZGluZzozNXB4IWltcG9ydGFudDt9IC4tcDQwIHtwYWRkaW5nOjQwcHghaW1wb3J0YW50O30gLi1wNDUge3BhZGRpbmc6NDVweCFpbXBvcnRhbnQ7fSAuLXA1MCB7cGFkZGluZzo1MHB4IWltcG9ydGFudDt9IC4tcGwwIHtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLXBsMSB7cGFkZGluZy1sZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLXBsMiB7cGFkZGluZy1sZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLXBsMyB7cGFkZGluZy1sZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLXBsNCB7cGFkZGluZy1sZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLXBsNSB7cGFkZGluZy1sZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLXBsNiB7cGFkZGluZy1sZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLXBsNyB7cGFkZGluZy1sZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLXBsOCB7cGFkZGluZy1sZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLXBsOSB7cGFkZGluZy1sZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLXBsMTAge3BhZGRpbmctbGVmdDoxMHB4IWltcG9ydGFudDt9IC4tcGwxNSB7cGFkZGluZy1sZWZ0OjE1cHghaW1wb3J0YW50O30gLi1wbDE2IHtwYWRkaW5nLWxlZnQ6MTZweCFpbXBvcnRhbnQ7fSAuLXBsMTcge3BhZGRpbmctbGVmdDoxN3B4IWltcG9ydGFudDt9IC4tcGwyMCB7cGFkZGluZy1sZWZ0OjIwcHghaW1wb3J0YW50O30gLi1wbDI1IHtwYWRkaW5nLWxlZnQ6MjVweCFpbXBvcnRhbnQ7fSAuLXBsMzAge3BhZGRpbmctbGVmdDozMHB4IWltcG9ydGFudDt9IC4tcGwzNSB7cGFkZGluZy1sZWZ0OjM1cHghaW1wb3J0YW50O30gLi1wbDQwIHtwYWRkaW5nLWxlZnQ6NDBweCFpbXBvcnRhbnQ7fSAuLXBsNDUge3BhZGRpbmctbGVmdDo0NXB4IWltcG9ydGFudDt9IC4tcGw1MCB7cGFkZGluZy1sZWZ0OjUwcHghaW1wb3J0YW50O30gLi1wbDU1IHtwYWRkaW5nLWxlZnQ6NTVweCFpbXBvcnRhbnQ7fSAuLXByMCB7cGFkZGluZy1yaWdodDowIWltcG9ydGFudDt9IC4tcHIxIHtwYWRkaW5nLXJpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLXByMiB7cGFkZGluZy1yaWdodDoycHghaW1wb3J0YW50O30gLi1wcjMge3BhZGRpbmctcmlnaHQ6M3B4IWltcG9ydGFudDt9IC4tcHI0IHtwYWRkaW5nLXJpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLXByNSB7cGFkZGluZy1yaWdodDo1cHghaW1wb3J0YW50O30gLi1wcjYge3BhZGRpbmctcmlnaHQ6NnB4IWltcG9ydGFudDt9IC4tcHI3IHtwYWRkaW5nLXJpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLXByOCB7cGFkZGluZy1yaWdodDo4cHghaW1wb3J0YW50O30gLi1wcjkge3BhZGRpbmctcmlnaHQ6OXB4IWltcG9ydGFudDt9IC4tcHIxMCB7cGFkZGluZy1yaWdodDoxMHB4IWltcG9ydGFudDt9IC4tcHIxNSB7cGFkZGluZy1yaWdodDoxNXB4IWltcG9ydGFudDt9IC4tcHIyMCB7cGFkZGluZy1yaWdodDoyMHB4IWltcG9ydGFudDt9IC4tcHIyNSB7cGFkZGluZy1yaWdodDoyNXB4IWltcG9ydGFudDt9IC4tcHIzMCB7cGFkZGluZy1yaWdodDozMHB4IWltcG9ydGFudDt9IC4tcHIzNSB7cGFkZGluZy1yaWdodDozNXB4IWltcG9ydGFudDt9IC4tcHI0MCB7cGFkZGluZy1yaWdodDo0MHB4IWltcG9ydGFudDt9IC4tcHI0NSB7cGFkZGluZy1yaWdodDo0NXB4IWltcG9ydGFudDt9IC4tcHI1MCB7cGFkZGluZy1yaWdodDo1MHB4IWltcG9ydGFudDt9IC4tcHI1NSB7cGFkZGluZy1yaWdodDo1NXB4IWltcG9ydGFudDt9IC4tcHQwe3BhZGRpbmctdG9wOjAhaW1wb3J0YW50O30gLi1wdDEge3BhZGRpbmctdG9wOjFweCFpbXBvcnRhbnQ7fSAuLXB0MiB7cGFkZGluZy10b3A6MnB4IWltcG9ydGFudDt9IC4tcHQzIHtwYWRkaW5nLXRvcDozcHghaW1wb3J0YW50O30gLi1wdDQge3BhZGRpbmctdG9wOjRweCFpbXBvcnRhbnQ7fSAuLXB0NSB7cGFkZGluZy10b3A6NXB4IWltcG9ydGFudDt9IC4tcHQ2IHtwYWRkaW5nLXRvcDo2cHghaW1wb3J0YW50O30gLi1wdDcge3BhZGRpbmctdG9wOjdweCFpbXBvcnRhbnQ7fSAuLXB0OCB7cGFkZGluZy10b3A6OHB4IWltcG9ydGFudDt9IC4tcHQ5IHtwYWRkaW5nLXRvcDo5cHghaW1wb3J0YW50O30gLi1wdDEwIHtwYWRkaW5nLXRvcDoxMHB4IWltcG9ydGFudDt9IC4tcHQxNSB7cGFkZGluZy10b3A6MTVweCFpbXBvcnRhbnQ7fSAuLXB0MjAge3BhZGRpbmctdG9wOjIwcHghaW1wb3J0YW50O30gLi1wdDI1IHtwYWRkaW5nLXRvcDoyNXB4IWltcG9ydGFudDt9IC4tcHQzMCB7cGFkZGluZy10b3A6MzBweCFpbXBvcnRhbnQ7fSAuLXB0MzUge3BhZGRpbmctdG9wOjM1cHghaW1wb3J0YW50O30gLi1wdDQwIHtwYWRkaW5nLXRvcDo0MHB4IWltcG9ydGFudDt9IC4tcHQ0NSB7cGFkZGluZy10b3A6NDVweCFpbXBvcnRhbnQ7fSAuLXB0NTAge3BhZGRpbmctdG9wOjUwcHghaW1wb3J0YW50O30gLi1wdDU1IHtwYWRkaW5nLXRvcDo1NXB4IWltcG9ydGFudDt9IC4tcHQyMDAge3BhZGRpbmctdG9wOjIwMHB4IWltcG9ydGFudDt9IC4tcGIwIHtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDt9IC4tcGIxIHtwYWRkaW5nLWJvdHRvbToxcHghaW1wb3J0YW50O30gLi1wYjIge3BhZGRpbmctYm90dG9tOjJweCFpbXBvcnRhbnQ7fSAuLXBiMyB7cGFkZGluZy1ib3R0b206M3B4IWltcG9ydGFudDt9IC4tcGI0IHtwYWRkaW5nLWJvdHRvbTo0cHghaW1wb3J0YW50O30gLi1wYjUge3BhZGRpbmctYm90dG9tOjVweCFpbXBvcnRhbnQ7fSAuLXBiNiB7cGFkZGluZy1ib3R0b206NnB4IWltcG9ydGFudDt9IC4tcGI3IHtwYWRkaW5nLWJvdHRvbTo3cHghaW1wb3J0YW50O30gLi1wYjgge3BhZGRpbmctYm90dG9tOjhweCFpbXBvcnRhbnQ7fSAuLXBiOSB7cGFkZGluZy1ib3R0b206OXB4IWltcG9ydGFudDt9IC4tcGIxMCB7cGFkZGluZy1ib3R0b206MTBweCFpbXBvcnRhbnQ7fSAuLXBiMTUge3BhZGRpbmctYm90dG9tOjE1cHghaW1wb3J0YW50O30gLi1wYjIwIHtwYWRkaW5nLWJvdHRvbToyMHB4IWltcG9ydGFudDt9IC4tcGIyNSB7cGFkZGluZy1ib3R0b206MjVweCFpbXBvcnRhbnQ7fSAuLXBiMzAge3BhZGRpbmctYm90dG9tOjMwcHghaW1wb3J0YW50O30gLi1wYjQwIHtwYWRkaW5nLWJvdHRvbTo0MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMCwtcmFkaXVzMCwtcmFkMCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMxLC1yYWRpdXMxLC1yYWQxIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czIsLXJhZGl1czIsLXJhZDIge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMywtcmFkaXVzMywtcmFkMyB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM0LC1yYWRpdXM0LC1yYWQ0IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czUsLXJhZGl1czUsLXJhZDUge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNiwtcmFkaXVzNiwtcmFkNiB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM3LC1yYWRpdXM3LC1yYWQ3IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czgsLXJhZGl1czgsLXJhZDgge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzOSwtcmFkaXVzOSwtcmFkOSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMxMCwtcmFkaXVzMTAsLXJhZDEwIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAuLW1hdXRvIHttYXJnaW46YXV0byFpbXBvcnRhbnQ7fSAuLW0wIC4tbm9tYXJnaW5zLC4tbm9tYXJnaW57bWFyZ2luOjAhaW1wb3J0YW50O30gLi1tMSB7bWFyZ2luOjFweCFpbXBvcnRhbnQ7fSAuLW0yIHttYXJnaW46MnB4IWltcG9ydGFudDt9IC4tbTMge21hcmdpbjozcHghaW1wb3J0YW50O30gLi1tNCB7bWFyZ2luOjRweCFpbXBvcnRhbnQ7fSAuLW01IHttYXJnaW46NXB4IWltcG9ydGFudDt9IC4tbTYge21hcmdpbjo2cHghaW1wb3J0YW50O30gLi1tNyB7bWFyZ2luOjdweCFpbXBvcnRhbnQ7fSAuLW04IHttYXJnaW46OHB4IWltcG9ydGFudDt9IC4tbTkge21hcmdpbjo5cHghaW1wb3J0YW50O30gLi1tMTAge21hcmdpbjoxMHB4IWltcG9ydGFudDt9IC4tbTE1IHttYXJnaW46MTVweCFpbXBvcnRhbnQ7fSAuLW0yMCB7bWFyZ2luOjIwcHghaW1wb3J0YW50O30gLi1tMjIge21hcmdpbjoyMnB4IWltcG9ydGFudDt9IC4tbTI1IHttYXJnaW46MjVweCFpbXBvcnRhbnQ7fSAuLW01cCB7bWFyZ2luOjUlIWltcG9ydGFudDt9IC4tbTEwcCB7bWFyZ2luOjEwJSFpbXBvcnRhbnQ7fSAuLW0xNXAge21hcmdpbjoxNSUhaW1wb3J0YW50O30gLi1tMjBwIHttYXJnaW46MjAlIWltcG9ydGFudDt9IC4tbTI1cCB7bWFyZ2luOjI1JSFpbXBvcnRhbnQ7fSAuLW1sYXV0byB7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7fSAuLW1sMCB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLW1sMSB7bWFyZ2luLWxlZnQ6MXB4IWltcG9ydGFudDt9IC4tbWwyIHttYXJnaW4tbGVmdDoycHghaW1wb3J0YW50O30gLi1tbDMge21hcmdpbi1sZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLW1sNCB7bWFyZ2luLWxlZnQ6NHB4IWltcG9ydGFudDt9IC4tbWw1IHttYXJnaW4tbGVmdDo1cHghaW1wb3J0YW50O30gLi1tbDYge21hcmdpbi1sZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLW1sNyB7bWFyZ2luLWxlZnQ6N3B4IWltcG9ydGFudDt9IC4tbWw4IHttYXJnaW4tbGVmdDo4cHghaW1wb3J0YW50O30gLi1tbDkge21hcmdpbi1sZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLW1sMTAge21hcmdpbi1sZWZ0OjEwcHghaW1wb3J0YW50O30gLi1tbDE1IHttYXJnaW4tbGVmdDoxNXB4IWltcG9ydGFudDt9IC4tbWwyMCB7bWFyZ2luLWxlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLW1sMjUge21hcmdpbi1sZWZ0OjI1cHghaW1wb3J0YW50O30gLi1tbDI3IHttYXJnaW4tbGVmdDoyN3B4IWltcG9ydGFudDt9IC4tbWwzMCB7bWFyZ2luLWxlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLW1sNTAge21hcmdpbi1sZWZ0OjUwcHghaW1wb3J0YW50O30gLi1tbDgwIHttYXJnaW4tbGVmdDo4MHB4IWltcG9ydGFudDt9IC4tbWwxMDAge21hcmdpbi1sZWZ0OjEwMHB4IWltcG9ydGFudDt9IC4tbWwxMzAge21hcmdpbi1sZWZ0OjEzMHB4IWltcG9ydGFudDt9IC4tbWwxNTAge21hcmdpbi1sZWZ0OjE1MHB4IWltcG9ydGFudDt9IC4tbWwycCB7bWFyZ2luLWxlZnQ6MiUhaW1wb3J0YW50O30gLi1tbDNwIHttYXJnaW4tbGVmdDozJSFpbXBvcnRhbnQ7fSAuLW1sNXAge21hcmdpbi1sZWZ0OjUlIWltcG9ydGFudDt9IC4tbWwxMHAge21hcmdpbi1sZWZ0OjEwJSFpbXBvcnRhbnQ7fSAuLW1sMTVwIHttYXJnaW4tbGVmdDoxNSUhaW1wb3J0YW50O30gLi1tbDIwcCB7bWFyZ2luLWxlZnQ6MjAlIWltcG9ydGFudDt9IC4tbWwyNXAge21hcmdpbi1sZWZ0OjI1JSFpbXBvcnRhbnQ7fSAuLW1yYXV0byB7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50O30gLi1tcjAge21hcmdpbi1yaWdodDowIWltcG9ydGFudDt9IC4tbXIxIHttYXJnaW4tcmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tbXIyIHttYXJnaW4tcmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tbXIzIHttYXJnaW4tcmlnaHQ6M3B4IWltcG9ydGFudDt9IC4tbXI0IHttYXJnaW4tcmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tbXI1IHttYXJnaW4tcmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tbXI2IHttYXJnaW4tcmlnaHQ6NnB4IWltcG9ydGFudDt9IC4tbXI3IHttYXJnaW4tcmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tbXI4IHttYXJnaW4tcmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tbXI5IHttYXJnaW4tcmlnaHQ6OXB4IWltcG9ydGFudDt9IC4tbXIxMCB7bWFyZ2luLXJpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1tcjE1IHttYXJnaW4tcmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLW1yMjAge21hcmdpbi1yaWdodDoyMHB4IWltcG9ydGFudDt9IC4tbXIyNSB7bWFyZ2luLXJpZ2h0OjI1cHghaW1wb3J0YW50O30gLi1tcjMwIHttYXJnaW4tcmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLW1yMzUge21hcmdpbi1yaWdodDozNXB4IWltcG9ydGFudDt9IC4tbXI0MCB7bWFyZ2luLXJpZ2h0OjQwcHghaW1wb3J0YW50O30gLi1tcjQ1IHttYXJnaW4tcmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLW1yNTAge21hcmdpbi1yaWdodDo1MHB4IWltcG9ydGFudDt9IC4tbXIxMDAge21hcmdpbi1yaWdodDoxMDBweCFpbXBvcnRhbnQ7fSAuLW1yMnAge21hcmdpbi1yaWdodDoyJSFpbXBvcnRhbnQ7fSAuLW1yM3Age21hcmdpbi1yaWdodDozJSFpbXBvcnRhbnQ7fSAuLW1yNXAge21hcmdpbi1yaWdodDo1JSFpbXBvcnRhbnQ7fSAuLW1yMTBwIHttYXJnaW4tcmlnaHQ6MTAlIWltcG9ydGFudDt9IC4tbXIxNXAge21hcmdpbi1yaWdodDoxNSUhaW1wb3J0YW50O30gLi1tcjIwcCB7bWFyZ2luLXJpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLW1yMjVwIHttYXJnaW4tcmlnaHQ6MjUlIWltcG9ydGFudDt9IC4tbXRhdXRvIHttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50O30gLi1tdC03e21hcmdpbi10b3A6LTdweCFpbXBvcnRhbnQ7fSAuLW10MHttYXJnaW4tdG9wOjAhaW1wb3J0YW50O30gLi1tdDEge21hcmdpbi10b3A6MXB4IWltcG9ydGFudDt9IC4tbXQyIHttYXJnaW4tdG9wOjJweCFpbXBvcnRhbnQ7fSAuLW10MyB7bWFyZ2luLXRvcDozcHghaW1wb3J0YW50O30gLi1tdDQge21hcmdpbi10b3A6NHB4IWltcG9ydGFudDt9IC4tbXQ1IHttYXJnaW4tdG9wOjVweCFpbXBvcnRhbnQ7fSAuLW10NiB7bWFyZ2luLXRvcDo2cHghaW1wb3J0YW50O30gLi1tdDcge21hcmdpbi10b3A6N3B4IWltcG9ydGFudDt9IC4tbXQ4IHttYXJnaW4tdG9wOjhweCFpbXBvcnRhbnQ7fSAuLW10OSB7bWFyZ2luLXRvcDo5cHghaW1wb3J0YW50O30gLi1tdDEwIHttYXJnaW4tdG9wOjEwcHghaW1wb3J0YW50O30gLi1tdDExIHttYXJnaW4tdG9wOjExcHghaW1wb3J0YW50O30gLi1tdDEyIHttYXJnaW4tdG9wOjEycHghaW1wb3J0YW50O30gLi1tdDEzIHttYXJnaW4tdG9wOjEzcHghaW1wb3J0YW50O30gLi1tdDE0IHttYXJnaW4tdG9wOjE0cHghaW1wb3J0YW50O30gLi1tdDE1IHttYXJnaW4tdG9wOjE1cHghaW1wb3J0YW50O30gLi1tdDIwIHttYXJnaW4tdG9wOjIwcHghaW1wb3J0YW50O30gLi1tdDI1IHttYXJnaW4tdG9wOjI1cHghaW1wb3J0YW50O30gLi1tdDI3IHttYXJnaW4tdG9wOjI3cHghaW1wb3J0YW50O30gLi1tdDMwIHttYXJnaW4tdG9wOjMwcHghaW1wb3J0YW50O30gLi1tdDM1IHttYXJnaW4tdG9wOjM1cHghaW1wb3J0YW50O30gLi1tdDQwIHttYXJnaW4tdG9wOjQwcHghaW1wb3J0YW50O30gLi1tdDUwIHttYXJnaW4tdG9wOjUwcHghaW1wb3J0YW50O30gLi1tdDExNSB7bWFyZ2luLXRvcDoxMTVweCFpbXBvcnRhbnQ7fSAuLW10MjAwIHttYXJnaW4tdG9wOjIwMHB4IWltcG9ydGFudDt9IC4tbWJhdXRvIHttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50O30gLi1tYjAge21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLW1iMSB7bWFyZ2luLWJvdHRvbToxcHghaW1wb3J0YW50O30gLi1tYjIge21hcmdpbi1ib3R0b206MnB4IWltcG9ydGFudDt9IC4tbWIzIHttYXJnaW4tYm90dG9tOjNweCFpbXBvcnRhbnQ7fSAuLW1iNCB7bWFyZ2luLWJvdHRvbTo0cHghaW1wb3J0YW50O30gLi1tYjUge21hcmdpbi1ib3R0b206NXB4IWltcG9ydGFudDt9IC4tbWI2IHttYXJnaW4tYm90dG9tOjZweCFpbXBvcnRhbnQ7fSAuLW1iNyB7bWFyZ2luLWJvdHRvbTo3cHghaW1wb3J0YW50O30gLi1tYjgge21hcmdpbi1ib3R0b206OHB4IWltcG9ydGFudDt9IC4tbWI5IHttYXJnaW4tYm90dG9tOjlweCFpbXBvcnRhbnQ7fSAuLW1iMTAge21hcmdpbi1ib3R0b206MTBweCFpbXBvcnRhbnQ7fSAuLW1iMTUge21hcmdpbi1ib3R0b206MTVweCFpbXBvcnRhbnQ7fSAuLW1iMjAge21hcmdpbi1ib3R0b206MjBweCFpbXBvcnRhbnQ7fSAuLW1iMjUge21hcmdpbi1ib3R0b206MjVweCFpbXBvcnRhbnQ7fSAuLW1iMzAge21hcmdpbi1ib3R0b206MzBweCFpbXBvcnRhbnQ7fSAuLW1iNTAge21hcmdpbi1ib3R0b206NTBweCFpbXBvcnRhbnQ7fSAuLXRvcC0xMCwgLi10LTEwIHt0b3A6LTEwcHghaW1wb3J0YW50O30gLi10b3AwLCAuLXQwIHt0b3A6MHB4IWltcG9ydGFudDt9IC4tdG9wMSwgLi10MSB7dG9wOjFweCFpbXBvcnRhbnQ7fSAuLXRvcDIsIC4tdDIge3RvcDoycHghaW1wb3J0YW50O30gLi10b3AzLCAuLXQzIHt0b3A6M3B4IWltcG9ydGFudDt9IC4tdG9wNCwgLi10NCB7dG9wOjRweCFpbXBvcnRhbnQ7fSAuLXRvcDUsIC4tdDUge3RvcDo1cHghaW1wb3J0YW50O30gLi10b3A2LCAuLXQ2IHt0b3A6NnB4IWltcG9ydGFudDt9IC4tdG9wNywgLi10NyB7dG9wOjdweCFpbXBvcnRhbnQ7fSAuLXRvcDgsIC4tdDgge3RvcDo4cHghaW1wb3J0YW50O30gLi10b3A5LCAuLXQ5IHt0b3A6OXB4IWltcG9ydGFudDt9IC4tdG9wMTAsIC4tdDEwIHt0b3A6MTBweCFpbXBvcnRhbnQ7fSAuLXRvcDE1LCAuLXQxNSB7dG9wOjE1cHghaW1wb3J0YW50O30gLi10b3AyMCwgLi10MjAge3RvcDoyMHB4IWltcG9ydGFudDt9IC4tdG9wMjUsIC4tdDI1e3RvcDoyNXB4IWltcG9ydGFudDt9IC4tdG9wMzAsIC4tdDMwIHt0b3A6MzBweCFpbXBvcnRhbnQ7fSAuLXRvcDM1LCAuLXQzNSB7dG9wOjM1cHghaW1wb3J0YW50O30gLi10b3A0MCwgLi10NDAge3RvcDo0MHB4IWltcG9ydGFudDt9IC4tdG9wNDUsIC4tdDQ1IHt0b3A6NDVweCFpbXBvcnRhbnQ7fSAuLXRvcDUwLCAuLXQ1MCB7dG9wOjUwcHghaW1wb3J0YW50O30gLi10b3AxMDAsIC4tdDEwMCB7dG9wOjEwMHB4IWltcG9ydGFudDt9IC4tdG9wMjAwLCAuLXQyMDAge3RvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLXRvcDVwLCAuLXQ1cCB7dG9wOjUlIWltcG9ydGFudDt9IC4tdG9wMTBwLCAuLXQxMHAge3RvcDoxMCUhaW1wb3J0YW50O30gLi10b3AxNXAsIC4tdDE1cCB7dG9wOjE1JSFpbXBvcnRhbnQ7fSAuLXRvcDIwcCwgLi10MjBwIHt0b3A6MjAlIWltcG9ydGFudDt9IC4tdG9wMjVwLCAuLXQyNXAge3RvcDoyNSUhaW1wb3J0YW50O30gLi10b3A1MHAsIC4tdDUwcCB7dG9wOjUwJSFpbXBvcnRhbnQ7fSAuLXRvcDEwMHAsIC4tdDEwMHAge3RvcDoxMDAlIWltcG9ydGFudDt9IC4tbGVmdDAsIC4tbDAge2xlZnQ6MHB4IWltcG9ydGFudDt9IC4tbGVmdDEsIC4tbDEge2xlZnQ6MXB4IWltcG9ydGFudDt9IC4tbGVmdDIsIC4tbDIge2xlZnQ6MnB4IWltcG9ydGFudDt9IC4tbGVmdDMsIC4tbDMge2xlZnQ6M3B4IWltcG9ydGFudDt9IC4tbGVmdDQsIC4tbDQge2xlZnQ6NHB4IWltcG9ydGFudDt9IC4tbGVmdDUsIC4tbDUge2xlZnQ6NXB4IWltcG9ydGFudDt9IC4tbGVmdDYsIC4tbDYge2xlZnQ6NnB4IWltcG9ydGFudDt9IC4tbGVmdDcsIC4tbDcge2xlZnQ6N3B4IWltcG9ydGFudDt9IC4tbGVmdDgsIC4tbDgge2xlZnQ6OHB4IWltcG9ydGFudDt9IC4tbGVmdDksIC4tbDkge2xlZnQ6OXB4IWltcG9ydGFudDt9IC4tbGVmdDEwLCAuLWwxMCB7bGVmdDoxMHB4IWltcG9ydGFudDt9IC4tbGVmdDE1LCAuLWwxNSB7bGVmdDoxNXB4IWltcG9ydGFudDt9IC4tbGVmdDIwLCAuLWwyMCB7bGVmdDoyMHB4IWltcG9ydGFudDt9IC4tbGVmdDI1LCAuLWwyNXtsZWZ0OjI1cHghaW1wb3J0YW50O30gLi1sZWZ0MzAsIC4tbDMwIHtsZWZ0OjMwcHghaW1wb3J0YW50O30gLi1sZWZ0MzUsIC4tbDM1IHtsZWZ0OjM1cHghaW1wb3J0YW50O30gLi1sZWZ0NDAsIC4tbDQwIHtsZWZ0OjQwcHghaW1wb3J0YW50O30gLi1sZWZ0NDUsIC4tbDQ1IHtsZWZ0OjQ1cHghaW1wb3J0YW50O30gLi1sZWZ0NTAsIC4tbDUwIHtsZWZ0OjUwcHghaW1wb3J0YW50O30gLi1sZWZ0NTUsIC4tbDU1IHtsZWZ0OjU1cHghaW1wb3J0YW50O30gLi1sZWZ0NjAsIC4tbDYwIHtsZWZ0OjYwcHghaW1wb3J0YW50O30gLi1sZWZ0NjUsIC4tbDY1IHtsZWZ0OjY1cHghaW1wb3J0YW50O30gLi1sZWZ0NzAsIC4tbDcwIHtsZWZ0OjcwcHghaW1wb3J0YW50O30gLi1sZWZ0NzUsIC4tbDc1IHtsZWZ0Ojc1cHghaW1wb3J0YW50O30gLi1sZWZ0ODAsIC4tbDgwIHtsZWZ0OjgwcHghaW1wb3J0YW50O30gLi1sZWZ0ODUsIC4tbDg1IHtsZWZ0Ojg1cHghaW1wb3J0YW50O30gLi1sZWZ0OTAsIC4tbDkwIHtsZWZ0OjkwcHghaW1wb3J0YW50O30gLi1sZWZ0OTUsIC4tbDk1IHtsZWZ0Ojk1cHghaW1wb3J0YW50O30gLi1sZWZ0MTAwLCAuLWwxMDAge2xlZnQ6MTAwcHghaW1wb3J0YW50O30gLi1sZWZ0MTUwLCAuLWwxNTAge2xlZnQ6MTUwcHghaW1wb3J0YW50O30gLi1sZWZ0MjAwLCAuLWwyMDAge2xlZnQ6MjAwcHghaW1wb3J0YW50O30gLi1sZWZ0MjUwLCAuLWwyNTAge2xlZnQ6MjUwcHghaW1wb3J0YW50O30gLi1sZWZ0MzAwLCAuLWwzMDAge2xlZnQ6MzAwcHghaW1wb3J0YW50O30gLi1sZWZ0NXAsIC4tbDVwIHtsZWZ0OjUlIWltcG9ydGFudDt9IC4tbGVmdDEwcCwgLi1sMTBwIHtsZWZ0OjEwJSFpbXBvcnRhbnQ7fSAuLWxlZnQxNXAsIC4tbDE1cCB7bGVmdDoxNSUhaW1wb3J0YW50O30gLi1sZWZ0MjBwLCAuLWwyMHAge2xlZnQ6MjAlIWltcG9ydGFudDt9IC4tbGVmdDI1cCwgLi1sMjVwIHtsZWZ0OjI1JSFpbXBvcnRhbnQ7fSAuLWxlZnQ0MHAsIC4tbDQwcCB7bGVmdDo0MCUhaW1wb3J0YW50O30gLi1sZWZ0NTBwLCAuLWw1MHAge2xlZnQ6NTAlIWltcG9ydGFudDt9IC4tbGVmdDEwMHAsIC4tbDEwMHAge2xlZnQ6MTAwJSFpbXBvcnRhbnQ7fSAuLXJpZ2h0MCwgLi1yMCB7cmlnaHQ6MHB4IWltcG9ydGFudDt9IC4tcmlnaHQxLCAuLXIxIHtyaWdodDoxcHghaW1wb3J0YW50O30gLi1yaWdodDIsIC4tcjIge3JpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MywgLi1yMyB7cmlnaHQ6M3B4IWltcG9ydGFudDt9IC4tcmlnaHQ0LCAuLXI0IHtyaWdodDo0cHghaW1wb3J0YW50O30gLi1yaWdodDUsIC4tcjUge3JpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NiwgLi1yNiB7cmlnaHQ6NnB4IWltcG9ydGFudDt9IC4tcmlnaHQ3LCAuLXI3IHtyaWdodDo3cHghaW1wb3J0YW50O30gLi1yaWdodDgsIC4tcjgge3JpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0OSwgLi1yOSB7cmlnaHQ6OXB4IWltcG9ydGFudDt9IC4tcmlnaHQxMCwgLi1yMTAge3JpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1yaWdodDE1LCAuLXIxNSB7cmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjAsIC4tcjIwIHtyaWdodDoyMHB4IWltcG9ydGFudDt9IC4tcmlnaHQyNSwgLi1yMjUge3JpZ2h0OjI1cHghaW1wb3J0YW50O30gLi1yaWdodDMwLCAuLXIzMCB7cmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MzUsIC4tcjM1IHtyaWdodDozNXB4IWltcG9ydGFudDt9IC4tcmlnaHQ0MCwgLi1yNDAge3JpZ2h0OjQwcHghaW1wb3J0YW50O30gLi1yaWdodDQ1LCAuLXI0NSB7cmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTAsIC4tcjUwIHtyaWdodDo1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1NSwgLi1yNTUge3JpZ2h0OjU1cHghaW1wb3J0YW50O30gLi1yaWdodDYwLCAuLXI2MCB7cmlnaHQ6NjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NjUsIC4tcjY1IHtyaWdodDo2NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ3MCwgLi1yNzAge3JpZ2h0OjcwcHghaW1wb3J0YW50O30gLi1yaWdodDc1LCAuLXI3NSB7cmlnaHQ6NzVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0ODAsIC4tcjgwIHtyaWdodDo4MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ4NSwgLi1yODUge3JpZ2h0Ojg1cHghaW1wb3J0YW50O30gLi1yaWdodDkwLCAuLXI5MCB7cmlnaHQ6OTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0OTUsIC4tcjk1IHtyaWdodDo5NXB4IWltcG9ydGFudDt9IC4tcmlnaHQxMDAsIC4tcjEwMCB7cmlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1yaWdodDE1MCwgLi1yMTUwIHtyaWdodDoxNTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjAwLCAuLXIyMDAge3JpZ2h0OjIwMHB4IWltcG9ydGFudDt9IC4tcmlnaHQyNTAsIC4tcjI1MCB7cmlnaHQ6MjUwcHghaW1wb3J0YW50O30gLi1yaWdodDVwLCAuLXI1cCB7cmlnaHQ6NSUhaW1wb3J0YW50O30gLi1yaWdodDEwcCwgLi1yMTBwIHtyaWdodDoxMCUhaW1wb3J0YW50O30gLi1yaWdodDE1cCwgLi1yMTVwIHtyaWdodDoxNSUhaW1wb3J0YW50O30gLi1yaWdodDIwcCwgLi1yMjBwIHtyaWdodDoyMCUhaW1wb3J0YW50O30gLi1yaWdodDI1cCwgLi1yMjVwIHtyaWdodDoyNSUhaW1wb3J0YW50O30gLi1yaWdodDUwcCwgLi1yNTBwIHtyaWdodDo1MCUhaW1wb3J0YW50O30gLi1yaWdodDEwMHAsIC4tcjEwMHAge3JpZ2h0OjEwMCUhaW1wb3J0YW50O30gLi16LWluZGV4OTl7ei1pbmRleDo5OSFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDB7ei1pbmRleDoxMDAhaW1wb3J0YW50O30gLi16LWluZGV4MTAxe3otaW5kZXg6MTAxIWltcG9ydGFudDt9IC4tei1pbmRleDEwMDEsIC56aW5kZXgxMDAxeyB6LWluZGV4OjEwMDEhaW1wb3J0YW50OyB9IC4tei1pbmRleDM2MDAxLCAuemluZGV4MzYwMDF7IHotaW5kZXg6MzYwMDEhaW1wb3J0YW50OyB9IC4tbm8tYm9yZGVyLXNwYWNpbmd7IGJvcmRlci1zcGFjaW5nOjAhaW1wb3J0YW50OyB9IC4tdGFibGV7IGNlbGxwYWRkaW5nOjAhaW1wb3J0YW50OyBjZWxsc3BhY2luZzowIWltcG9ydGFudDsgYm9yZGVyOjAhaW1wb3J0YW50OyB9IHRhYmxlLi10YWJsZSB0aGVhZCB0aCB7IGJhY2tncm91bmQ6I2MzZDlmZiFpbXBvcnRhbnQ7IH0gdGFibGUuLXRhYmxlIHRyIHRoLCB0YWJsZS4tdGFibGUgdHIgdGQgeyBwYWRkaW5nOjRweCAxMHB4IDRweCA1cHghaW1wb3J0YW50OyB9IHRyLi1ib3JkZXItYm90dG9tIHRkLCB0ci4tYm9yZGVyLWJvdHRvbSB0aCB7IGJvcmRlci1ib3R0b206MXB0IHNvbGlkIGJsYWNrIWltcG9ydGFudDsgfSAtd2hpdGUtc3BhY2Utbm93cmFwIHt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50O30gLi1jdXJzb3ItYXV0byB7IGN1cnNvcjphdXRvOyB9IC4tY3Vyc29yLWRlZmF1bHQgeyBjdXJzb3I6ZGVmYXVsdDsgfSAuLWN1cnNvci1ub25lIHsgY3Vyc29yOm5vbmU7IH0gLi1jdXJzb3ItY29udGV4dC1tZW51IHsgY3Vyc29yOmNvbnRleHQtbWVudTsgfSAuLWN1cnNvci1oZWxwIHsgY3Vyc29yOmhlbHA7IH0gLi1jdXJzb3ItcG9pbnRlciB7IGN1cnNvcjpwb2ludGVyOyB9IC4tY3Vyc29yLXByb2dyZXNzIHsgY3Vyc29yOnByb2dyZXNzOyB9IC4tY3Vyc29yLXdhaXQgeyBjdXJzb3I6d2FpdDsgfSAuLWN1cnNvci1jZWxsIHsgY3Vyc29yOmNlbGw7IH0gLi1jdXJzb3ItY3Jvc3NoYWlyIHsgY3Vyc29yOmNyb3NzaGFpcjsgfSAuLWN1cnNvci10ZXh0IHsgY3Vyc29yOnRleHQ7IH0gLi1jdXJzb3ItdmVydGljYWwtdGV4dCB7IGN1cnNvcjp2ZXJ0aWNhbC10ZXh0OyB9IC4tY3Vyc29yLWFsaWFzIHsgY3Vyc29yOmFsaWFzOyB9IC4tY3Vyc29yLWNvcHkgeyBjdXJzb3I6Y29weTsgfSAuLWN1cnNvci1tb3ZlIHsgY3Vyc29yOm1vdmU7IH0gLi1jdXJzb3Itbm8tZHJvcCB7IGN1cnNvcjpuby1kcm9wOyB9IC4tY3Vyc29yLW5vdC1hbGxvd2VkIHsgY3Vyc29yOm5vdC1hbGxvd2VkOyB9IC4tY3Vyc29yLWFsbC1zY3JvbGwgeyBjdXJzb3I6YWxsLXNjcm9sbDsgfSAuLWN1cnNvci1jb2wtcmVzaXplIHsgY3Vyc29yOmNvbC1yZXNpemU7IH0gLi1jdXJzb3Itcm93LXJlc2l6ZSB7IGN1cnNvcjpyb3ctcmVzaXplOyB9IC4tY3Vyc29yLW4tcmVzaXplIHsgY3Vyc29yOm4tcmVzaXplOyB9IC4tY3Vyc29yLWUtcmVzaXplIHsgY3Vyc29yOmUtcmVzaXplOyB9IC4tY3Vyc29yLXMtcmVzaXplIHsgY3Vyc29yOnMtcmVzaXplOyB9IC4tY3Vyc29yLXctcmVzaXplIHsgY3Vyc29yOnctcmVzaXplOyB9IC4tY3Vyc29yLW5zLXJlc2l6ZSB7IGN1cnNvcjpucy1yZXNpemU7IH0gLi1jdXJzb3ItZXctcmVzaXplIHsgY3Vyc29yOmV3LXJlc2l6ZTsgfSAuLWN1cnNvci1uZS1yZXNpemUgeyBjdXJzb3I6bmUtcmVzaXplOyB9IC4tY3Vyc29yLW53LXJlc2l6ZSB7IGN1cnNvcjpudy1yZXNpemU7IH0gLi1jdXJzb3Itc2UtcmVzaXplIHsgY3Vyc29yOnNlLXJlc2l6ZTsgfSAuLWN1cnNvci1zdy1yZXNpemUgeyBjdXJzb3I6c3ctcmVzaXplOyB9IC4tY3Vyc29yLW5lc3ctcmVzaXplIHsgY3Vyc29yOm5lc3ctcmVzaXplOyB9IC4tY3Vyc29yLW53c2UtcmVzaXplIHsgY3Vyc29yOm53c2UtcmVzaXplOyB9IC4tZm9udC1zaXplMCwgLi1mczB7IGZvbnQtc2l6ZTowIWltcG9ydGFudDt9IC4tZm9udC1zaXplMSwgLi1mczF7IGZvbnQtc2l6ZToxcHghaW1wb3J0YW50O30gLi1mb250LXNpemUyLCAuLWZzMnsgZm9udC1zaXplOjJweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMsIC4tZnMzeyBmb250LXNpemU6M3B4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNCwgLi1mczR7IGZvbnQtc2l6ZTo0cHghaW1wb3J0YW50O30gLi1mb250LXNpemU1LCAuLWZzNXsgZm9udC1zaXplOjVweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTYsIC4tZnM2eyBmb250LXNpemU6NnB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNywgLi1mczd7IGZvbnQtc2l6ZTo3cHghaW1wb3J0YW50O30gLi1mb250LXNpemU4LCAuLWZzOHsgZm9udC1zaXplOjAuNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemU5LCAuLWZzOXsgZm9udC1zaXplOjAuNTYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEwLCAuLWZzMTB7IGZvbnQtc2l6ZTowLjYyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMSwgLi1mczExeyBmb250LXNpemU6MC42ODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTIsIC4tZnMxMnsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTMsIC4tZnMxM3sgZm9udC1zaXplOjAuODEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE0LCAuLWZzMTR7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNSwgLi1mczE1eyBmb250LXNpemU6MC45MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTYsIC4tZnMxNnsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTcsIC4tZnMxN3sgZm9udC1zaXplOjEuMDYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE4LCAuLWZzMTh7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxOSwgLi1mczE5eyBmb250LXNpemU6MS4xODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjAsIC4tZnMyMHsgZm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjEsIC4tZnMyMXsgZm9udC1zaXplOjEuMzEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIyLCAuLWZzMjJ7IGZvbnQtc2l6ZToxLjM3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMywgLi1mczIzeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjQsIC4tZnMyNHsgZm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNSwgLi1mczI1eyBmb250LXNpemU6MS41NjNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjYsIC4tZnMyNnsgZm9udC1zaXplOjEuNjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI3LCAuLWZzMjd7IGZvbnQtc2l6ZToxLjY4OHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyOCwgLi1mczI4eyBmb250LXNpemU6MS43NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyOSwgLi1mczI5eyBmb250LXNpemU6MS44MTNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzAsIC4tZnMzMHsgZm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMxLCAuLWZzMzF7IGZvbnQtc2l6ZToxLjkzOHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMiwgLi1mczMyeyBmb250LXNpemU6MnJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMywgLi1mczMzeyBmb250LXNpemU6Mi4wNjNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzQsIC4tZnMzNHsgZm9udC1zaXplOjIuMTI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM1LCAuLWZzMzV7IGZvbnQtc2l6ZToyLjE4OHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNiwgLi1mczM2eyBmb250LXNpemU6Mi4yNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNywgLi1mczM3eyBmb250LXNpemU6Mi4zMTNyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzgsIC4tZnMzOHsgZm9udC1zaXplOjIuMzc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM5LCAuLWZzMzl7IGZvbnQtc2l6ZToyLjQzOHJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemU0MCwgLi1mczQweyBmb250LXNpemU6Mi41cmVtICFpbXBvcnRhbnQ7fSAuLXJlZC1saW5lLWgzNXsgaGVpZ2h0OjM1cHg7IG1hcmdpbi1ib3R0b206LTM1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTI1cHg7IH0gI2JyZWFkY3J1bWJzeyBmb250LXNpemU6MXJlbSA7IG1hcmdpbi1sZWZ0OjEwcHg7IG1hcmdpbi10b3A6OHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGNvbG9yOiM3NTc1NzU7IH0gLlVzZWRWZHAyTW9iaWxlICNicmVhZGNydW1ic3sgZm9udC1zaXplOjAuOXJlbTsgY29sb3I6IzIyMjIyMjsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzoxMHB4OyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6MS4yNXJlbTsgfSAjYnJlYWRjcnVtYnMgYXsgY29sb3I6Izc1NzU3NTsgfSAjY2FycHJvb2ZfbWFpbi5jYXJwcm9vZl9tYWlueyB3aWR0aDozNDBweDsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgcGFkZGluZzoyMHB4OyBkaXNwbGF5Om5vbmU7IHotaW5kZXg6OTk5OTsgYm94LXNpemluZzpib3JkZXItYm94OyBib3JkZXItcmFkaXVzOjVweDsgcG9zaXRpb246Zml4ZWQ7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyBsZWZ0OjUwJTsgdG9wOjUwJTsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZDbG9zZUJ1dHRvbnsgZmxvYXQ6cmlnaHQ7IHRvcDowOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOiNmZmY7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246cmVsYXRpdmU7IGZsb2F0OmxlZnQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiBVTHsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IFVMIExJIHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwIDVweCAwOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9maWVsZHsgbWFyZ2luLWJvdHRvbTo3cHg7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWVzc2FnZXsgZm9udC1zaXplOjFyZW07IGNvbG9yOiMwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZy1ib3R0b206MTVweDsgcG9zaXRpb246cmVsYXRpdmU7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjaW5uZXJQYWdlRGl2eyBkaXNwbGF5OnRhYmxlOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9sYWJlbHsgZm9udC1zaXplOjFyZW07IGNvbG9yOiM2NjY2NjY7IGZvbnQtd2VpZ2h0OmJvbGQ7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyB0ZXh0LWFsaWduOmxlZnQ7IHdpZHRoOjEwMCU7IGxpbmUtaGVpZ2h0OjI1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfaW5wdXR7IGZvbnQtc2l6ZToxcmVtOyBwYWRkaW5nOjVweDsgYm9yZGVyOjFweCBzb2xpZCAjYjliZGMxOyB3aWR0aDoxMDAlOyBjb2xvcjojNzk3OTc5OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi1ib3R0b206MTBweDsgYm9yZGVyLXJhZGl1czo1cHg7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2lucHV0OmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjojRjRGNEY0OyBjb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IH0gI2NhcnByb29mX21haW4gLnBob25lSW5wdXR7IGZvbnQtc2l6ZToxcmVtOyBwYWRkaW5nOjVweDsgYm9yZGVyOjFweCBzb2xpZCAjYjliZGMxOyB3aWR0aDo0N3B4OyBtYXJnaW4tcmlnaHQ6NXB4OyBjb2xvcjojNzk3OTc5OyBib3JkZXItcmFkaXVzOjVweDsgfSAjY2FycHJvb2ZfbWFpbiAucGhvbmVJbnB1dDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6I0Y0RjRGNDsgY29sb3I6IzAwMDAwMDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfYnV0dG9uSUUgeyBib3JkZXI6MXB4IHNvbGlkICNDODNGNDE7IG1hcmdpbjoxMHB4IDEwcHggMTBweCAwOyBwYWRkaW5nOjNweCAxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjYwcHg7IGNvbG9yOiNmZmY7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItdG9wLWNvbG9yOiNDODNGNDE7IGJvcmRlci1yaWdodC1jb2xvcjojQzgzRjQxOyBib3JkZXItYm90dG9tLWNvbG9yOiNDODNGNDE7IGJvcmRlci1sZWZ0LWNvbG9yOiNDODNGNDE7IGJvcmRlci10b3Atd2lkdGg6MXB4OyBib3JkZXItcmlnaHQtd2lkdGg6MXB4OyBib3JkZXItYm90dG9tLXdpZHRoOjFweDsgYm9yZGVyLWxlZnQtd2lkdGg6MXB4OyBib3JkZXItdG9wLXN0eWxlOnNvbGlkOyBib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7IGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7IGJvcmRlci1sZWZ0LXN0eWxlOnNvbGlkOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4OyBib3gtc2hhZG93OjBweCAycHggM3B4ICM2NjY7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgYmFja2dyb3VuZC1hdHRhY2htZW50OnNjcm9sbDsgYmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsgYmFja2dyb3VuZC1zaXplOmF1dG87IGJhY2tncm91bmQtb3JpZ2luOnBhZGRpbmctYm94OyBiYWNrZ3JvdW5kLWNsaXA6Ym9yZGVyLWJveDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjAwLCA2MywgNjUpOyBmb250LXdlaWdodDpub3JtYWw7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbklFSG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNDODNGNDE7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbiB7IGZvbnQtc2l6ZToxLjJyZW07IGZsb2F0OnJpZ2h0OyBtYXJnaW46MjVweCAwIDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MXJlbTsgcGFkZGluZzoxMHB4IDE1cHg7IGN1cnNvcjpwb2ludGVyOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1zaGFkb3c6MCAtMXB4IDFweCAjNjQ3OTllOyBiYWNrZ3JvdW5kOiNiYjAwMDM7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjQzgzRjQxIDAlLCAjYmIwMDAzIDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwJSAwJSwgMCUgMTAwJSwgZnJvbSgjQzgzRjQxKSwgdG8oI2JiMDAwMykpOyBib3JkZXI6MXB4IHNvbGlkICM1YzZmOTE7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbjpob3ZlciB7IGJhY2tncm91bmQ6I0M4M0Y0MTsgY3Vyc29yOnBvaW50ZXI7IH0gI2NhcnByb29mX2RpYWxvZy1vdmVybGF5IHsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KTsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGJvdHRvbTowOyB6LWluZGV4Ojk5OTg7IGRpc3BsYXk6bm9uZTsgfSAuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCB7IG1hcmdpbi1sZWZ0Oi0xNXB4OyBoZWlnaHQ6NTZweDsgb3ZlcmZsb3c6aGlkZGVuOyBtYXJnaW4tdG9wOi0xMHB4OyBmbG9hdDpsZWZ0OyB9IC5wcmVQcm9jZXNzb3JIdG1sQ2FyUG9vZkFQSXJlcG9ydC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wLCAucHJlUHJvY2Vzc29yQ2FyUG9vZkFQSXJlcG9ydFY1LmNhcnByb29mLWJhZGdlLmRlc2t0b3AsIC5wcmVQcm9jZXNzb3JIdG1sQ2FyUHJvb2ZEZWZhdWx0LmNhcnByb29mLWJhZGdlLmRlc2t0b3AgeyB3aWR0aDoxMDZweDsgbWFyZ2luOjJweCA1cHggMCAwOyBmbG9hdDpsZWZ0OyB9ICNjYXJwcm9vZl9tYWluIGltZyB7IHdpZHRoOjUwJTsgZmxvYXQ6bGVmdDsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjowIDAgMTVweCAwOyB9ICNhc1BvcFVweyBiYWNrZ3JvdW5kOiNmZmZmZmY7IHdpZHRoOjYwMHB4OyBwYWRkaW5nOjMwcHg7IGNvbG9yOiMwMDAwMDA7IHotaW5kZXg6MTAwMDAyMTsgfSAjYXNQb3BVcCAucG9wdXAtcG9saWN5IHsgbWluLWhlaWdodDoxMDBweDsgbWF4LWhlaWdodDoxNTBweDsgb3ZlcmZsb3cteTphdXRvOyB9IC5wb3B1cC1wb2xpY3kgYSB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGNvbG9yOmJsdWU7IH0gI2FzUG9wVXAgLmFzVGl0bGV7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6Mi4yNXJlbSA7IGZvbnQtd2VpZ2h0OjsgbWFyZ2luLWJvdHRvbToyMHB4OyB9ICNhc1BvcFVwIC5idG5FeHBsaWNpdHsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjcwcHg7IHdpZHRoOjEwMHB4OyB9ICNhc1BvcFVwIC5idG5JbXBsaWNpdHsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjEwMHB4OyBwYWRkaW5nLXJpZ2h0OjcwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQucmV2ZWFsLW1vZGFsIHNwYW4uanFUcmFuc2Zvcm1SYWRpb1dyYXBwZXJ7IHBhZGRpbmc6MDsgbWFyZ2luOjZweCA0cHggMDsgfSAjYXNQdXJjaGFzZUludGVudCAucG9wdXAtcG9saWN5IHsgbWF4LWhlaWdodDoxNzBweDsgb3ZlcmZsb3cteTphdXRvOyBmb250LXdlaWdodDpib2xkOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc1BJVGl0bGV7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuNTYzcmVtIDsgbWFyZ2luLWJvdHRvbTowOyBwYWRkaW5nLWJvdHRvbToxMHB4OyBkaXNwbGF5OmJsb2NrOyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aVRleHR7IGNsZWFyOmJvdGg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9uc3sgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjVweDsgbWFyZ2luLWJvdHRvbTozcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9ucyBsaSB7IHBhZGRpbmc6MnB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGl7IGNsZWFyOmJvdGg7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IGxpIGxhYmVseyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCAuYnV0dG9uRGVmYXVsdENvbG9yIHsgbWFyZ2luOjAgYXV0byA1cHg7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBzIHsgbGlzdC1zdHlsZTppbnNpZGUgbm9uZSBub25lOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwcyA+IGxpeyBiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgI2JiYmJiYjsgYm9yZGVyLXdpZHRoOjAgMXB4IDFweCAwOyBwYWRkaW5nOjE1cHg7IG1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzbm8geyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IHdpZHRoOjkwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzeyBwYWRkaW5nLWxlZnQ6OTBweDsgd2lkdGg6NzBweDsgfSAuY29uc2VudC5kaXNjbGFpbWVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6Ymx1ZTsgYWxpZ24tc2VsZjpjZW50ZXI7IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgY3Vyc29yOmhlbHA7IH0gLmN1c3RvbTVfbGVmdCwgLmN1c3RvbTI1X2xlZnQsIC5jdXN0b20zNV9sZWZ0LCAuY3VzdG9tNDVfbGVmdCwgLmN0YV9wcmljZSwuY3RhX2NyZWRpdCwuY3RhX3Rlc3REcml2ZSwuY3RhX2V2YWwsLmN0YV9zdmNwcm9tbywuY3RhX3NlcnZpY2UsLmN0YV9wYXJ0cywuY3RhX3RpcmVzIHsgd2lkdGg6MjgwcHg7IGhlaWdodDo2MXB4OyBwYWRkaW5nOjAgMTVweCAwIDYwcHg7IGRpc3BsYXk6dGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBmb250LXNpemU6MXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGN1cnNvcjpwb2ludGVyOyBjb2xvcjojMTkxOTE5OyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ib3gyNS5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wOyBiYWNrZ3JvdW5kLXNpemU6NTg5cHggNTUwcHg7IH0gLmN0YV9wcmljZS5hbHQ6aG92ZXIsIC5jdGFfY3JlZGl0LmFsdDpob3ZlciwgLmN0YV90ZXN0RHJpdmUuYWx0OmhvdmVyLCAuY3RhX2V2YWwuYWx0OmhvdmVyLCAuY3RhX3NlcnZpY2UuYWx0OmhvdmVyLCAuY3RhX3BhcnRzLmFsdDpob3ZlciwgLmN0YV90aXJlcy5hbHQ6aG92ZXIsIC5jdGFfc3ZjcHJvbW8uYWx0OmhvdmVyIHsgY29sb3I6IzE5MTkxOTsgfSAuY3VzdG9tNTVfbGVmdCwgLmN1c3RvbTI1NV9sZWZ0LCAuY3VzdG9tMzU1X2xlZnQsIC5jdXN0b200NTVfbGVmdCwgLmN0YV9wcmljZS5hbHQsLmN0YV9wcmljZTpob3ZlciwgLmN0YV9jcmVkaXQuYWx0LCAuY3RhX2NyZWRpdDpob3ZlciwgLmN0YV90ZXN0RHJpdmUuYWx0LCAuY3RhX3Rlc3REcml2ZTpob3ZlciwgLmN0YV9ldmFsLmFsdCwgLmN0YV9ldmFsOmhvdmVyLCAuY3RhX3NlcnZpY2UuYWx0LCAuY3RhX3NlcnZpY2U6aG92ZXIsIC5jdGFfcGFydHMuYWx0LCAuY3RhX3BhcnRzOmhvdmVyLCAuY3RhX3RpcmVzLmFsdCwgLmN0YV90aXJlczpob3ZlciwgLmN0YV9zdmNwcm9tby5hbHQsIC5jdGFfc3ZjcHJvbW86aG92ZXIgeyBjb2xvcjojRkZGRkZGOyB9IC5jdGFfcHJpY2UsIC5jdGFfcHJpY2UuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IH0gLmN0YV9wcmljZS5hbHQsIC5jdGFfcHJpY2U6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAwOyB9IC5jdGFfY3JlZGl0LCAuY3RhX2NyZWRpdC5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTY3cHg7IH0gLmN0YV9jcmVkaXQuYWx0LCAuY3RhX2NyZWRpdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC02N3B4OyB9IC5jdGFfdGVzdERyaXZlLCAuY3RhX3Rlc3REcml2ZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTEzNXB4OyB9IC5jdGFfdGVzdERyaXZlLmFsdCwgLmN0YV90ZXN0RHJpdmU6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtMTM1cHg7IH0gLmN0YV9ldmFsLCAuY3RhX2V2YWwuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0yMDRweDsgfSAuY3RhX2V2YWwuYWx0LCAuY3RhX2V2YWw6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtMjA0cHg7IH0gLmN0YV9zdmNwcm9tbywgLmN0YV9zdmNwcm9tby5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTI3M3B4OyB9IC5jdGFfc3ZjcHJvbW8uYWx0LCAuY3RhX3N2Y3Byb21vOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTI3M3B4OyB9IC5jdGFfc2VydmljZSwgLmN0YV9zZXJ2aWNlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMzQxcHg7IH0gLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9zZXJ2aWNlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTM0MXB4OyB9IC5jdGFfcGFydHMsIC5jdGFfcGFydHMuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC00MTBweDsgfSAuY3RhX3BhcnRzLmFsdCwgLmN0YV9wYXJ0czpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC00MTBweDsgfSAuY3RhX3RpcmVzLCAuY3RhX3RpcmVzLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNDgycHg7IH0gLmN0YV90aXJlcy5hbHQsIC5jdGFfdGlyZXM6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNDgycHg7IH0gLmN0YV9zZXJ2aWNlLmhpZGVfdGV4dCwgLmN0YV9wYXJ0cy5oaWRlX3RleHQsIC5jdGFfdGlyZXMuaGlkZV90ZXh0LCAuY3RhX3ByaWNlLmhpZGVfdGV4dCwgLmN0YV9jcmVkaXQuaGlkZV90ZXh0LCAuY3RhX3Rlc3REcml2ZS5oaWRlX3RleHQsIC5jdGFfZXZhbC5oaWRlX3RleHQsIC5jdGFfc3ZjcHJvbW8uaGlkZV90ZXh0IHsgdGV4dC1pbmRlbnQ6LTIwMDBlbTsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmN1c3RvbSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUucmVkLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8ucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX2ZpbmFuY2VfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3NlcnZpY2VfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMucmVkLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8ucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJvbW9zZXJ2aWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5oZWFkaW5nQ2Fwc09uIGgxLCBib2R5LmhlYWRpbmdDYXBzT24gaDIsIGJvZHkuaGVhZGluZ0NhcHNPbiBoMywgYm9keS5oZWFkaW5nQ2Fwc09uIHNwYW4uaDItYWx0LCBib2R5LmhlYWRpbmdDYXBzT24gc3Bhbi5oMy1hbHQsIGJvZHkuaGVhZGluZ0NhcHNPbi5Vc2VkU3JwMiAuY2FyQmFzaWNzIC5jYXJUaXRsZSAuZGl2Q2l0eSwgYm9keS5oZWFkaW5nQ2Fwc09uIC52LWNhcmQgLmhlYWRlci1zZWN0aW9uIC5vcmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAjZm9vdGVyIC5vcmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAubG9nb2FyZWEgLmFkZHJlc3MgLmFkciBzcGFuOmZpcnN0LWNoaWxkLCBib2R5LmhlYWRpbmdDYXBzT24gI2Zvb3RlciAudml2LCBib2R5LmhlYWRpbmdDYXBzT24gLnNlYXJjaC1saW5rcy13cmFwcGVyIC5zZWFyY2gtbGluay10aXRsZSwgYm9keS5oZWFkaW5nQ2Fwc09uIC5wb3B1cGl6ZXJCb2R5ICN0cmFkZUluQmFyUG9wdXBfbGluZTEsIGJvZHkuaGVhZGluZ0NhcHNPbiAuY2Fyb3Vzc2VsIC5jYXJvdXNlbFRhYnMgLnRhYi1sYWJlbCwgYm9keS5oZWFkaW5nQ2Fwc09uIC5mb3JtSGVhZGluZywgYm9keS5oZWFkaW5nQ2Fwc09uIC5jb21wYXJlLXZlaGljbGVzLWZvcm0tdGFibGUgLnRyaW0tcHJldmlldyAuY29tcGFyZS10aXRsZSB7IHRleHQtdHJhbnNmb3JtOm5vbmUgIWltcG9ydGFudDsgfSBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwgeyBmb250LXNpemU6MS4yNXJlbTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaGVhZGluZ0NhcHNPbiAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyLmRlZmF1bHQgeyBmb250LXNpemU6MS40cmVtICFpbXBvcnRhbnQ7IH0gfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyIHNwYW4uaWNvbiwgLmRpdkNlcnRpZmljYXRpb25CbG9jayBzcGFuLmgyLWFsdCBzcGFuLmljb24geyBtaW4td2lkdGg6MjBweDsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LXRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6MjBweDsgZm9udC1zaXplOjEuM2VtOyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtc3VidGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDoyMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM3Nzc7IGZvbnQtc2l6ZToxZW07IG1hcmdpbi10b3A6NXB4OyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtaGlnaGxpZ2h0ZWQtdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6I0ZGRjsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuSW5uZXJCb3hMYXllci5kaXZDZXJ0aWZpY2F0aW9uQmxvY2suaXNPbmVSb3cgaW1nIHsgbWF4LXdpZHRoOmF1dG8gIWltcG9ydGFudDsgfSAudXNlZFZkcEFjdGlvbnMgLmFjdGlvbi1ib3ggYS5idG4tZGVmYXVsdCB7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjEwcHggIWltcG9ydGFudDsgfSAuY3RhX3ByaWNlOmhvdmVyLCAuY3RhX2NyZWRpdDpob3ZlciwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzOmhvdmVyLCAuY3RhX3RpcmVzOmhvdmVyLCAuY3RhX3N2Y3Byb21vOmhvdmVyeyBvcGFjaXR5OjAuNzU7IH0gLnNlYXJjaF9jZXJ0X2dlbmVyaWN7IGhlaWdodDo0NHB4OyBtYXJnaW46MnB4IDVweCAwIDA7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTBweDsgfSAjbmV3Q2FySW5Vc2VkUGFnZXsgbWFyZ2luLXRvcDotMnB4OyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4X3RvcHsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF90b3AucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4MF9taWR7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZycpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlIC5ib3gyODhfZm9vdGVyX3FzeyBiYWNrZ3JvdW5kIDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlX3NjcmF0Y2hQcmljZXsgd2lkdGg6MTEwcHg7IGhlaWdodDozNXB4OyBmbG9hdDpyaWdodDsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6LTgzcHg7IGRpc3BsYXk6bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZV90aXRsZXsgZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MC45MzhyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gdWwjY3JlZGl0X2RyaXZldHJhaW4sIHVsI2NyZWRpdF9mdWVsdHlwZSwgdWwjY3JlZGl0X2JvZHlUeXBlcyB7IGxpc3Qtc3R5bGU6bm9uZTsgZmxvYXQ6bGVmdDsgd2lkdGg6MzMlOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwsIHVsI2NyZWRpdF9mdWVsdHlwZSBsaSA+IGxhYmVsLCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gbGFiZWx7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0OyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gZGl2LCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBkaXYsIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBkaXZ7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMDAwMDAwOyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwgPiBzcGFuLCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBsYWJlbCA+IHNwYW4sIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBsYWJlbCA+IHNwYW57IG1hcmdpbi1yaWdodDo4cHg7IG1hcmdpbi10b3A6MHB4OyB9ICNjcmVkaXRfdmlfYWR2YW5jZWQgbGFiZWx7IGZsb2F0OmxlZnQ7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbCBkaXYubGFiZWx7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjMycHg7IG1hcmdpbi1yaWdodDo2cHg7IHdpZHRoOjIwMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dDI1IHNwYW4sIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQgc3BhbnsgY29sb3I6IzAwMmM1ZjsgfSAudXNwLWNvbG9yIHsgY29sb3I6IzAwMmM1ZjsgfSAubXljYXJvdXNlbF90ZHsgZGlzcGxheTpibG9jazsgd2lkdGg6NTYwcHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLWxlZnQ6MzBweDsgbWFyZ2luLXRvcDoxMHB4OyB9IC52ZWhpY2xlQ2Fyb3VzZWx7IHdpZHRoOjE5MHB4OyB9IC5kZXRhaWxzX2JveCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkRXggeyBiYWNrZ3JvdW5kOiNiNWI1YjQ7IH0gI2V4dENvbG9yU2VsZWN0LmZpeGVkV2lkdGggLCAjaW50Q29sb3JTZWxlY3QuZml4ZWRXaWR0aCB7IHdpZHRoOjIzMHB4OyB9IC5jb2xvckNob2ljZXsgaGVpZ2h0OjMxcHg7IHdpZHRoOjMxcHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWluZGVudDotMjAwMGVtOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IG1hcmdpbjoycHg7IGNvbG9yOiNmZmY7IH0gLmNvbG9yQ2hvaWNlLmNob3NlbiB7IHRleHQtaW5kZW50OjA7IH0gLmNvbG9yQ2hvaWNlLnRhbiB7IGJhY2tncm91bmQtY29sb3I6I2QyYjQ4YzsgfSAuY29sb3JDaG9pY2UuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLmdvbGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNiMjk2MDA7IH0gLmNvbG9yQ2hvaWNlLmJyb3duIHsgYmFja2dyb3VuZC1jb2xvcjojNjYzMzBlOyB9IC5jb2xvckNob2ljZS5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IzAwOTkwMDsgfSAuY29sb3JDaG9pY2UuZ3JheSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2UuZ3JleSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2Uub3JhbmdlIHsgYmFja2dyb3VuZC1jb2xvcjojZTY5NDAwOyB9IC5jb2xvckNob2ljZS5zaWx2ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjMGMwYzA7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLm1hdXZlIHsgYmFja2dyb3VuZC1jb2xvcjojZDQ3M2Q0OyB9IC5jb2xvckNob2ljZS5yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjYzAwMDA7IH0gLmNvbG9yQ2hvaWNlLndoaXRlIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS55ZWxsb3cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMGMwMDA7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMxOTE5YzQ7IH0gLmNvbG9yQ2hvaWNlLmNvcHBlciB7IGJhY2tncm91bmQtY29sb3I6I0FGNDc0NDsgfSAuY29sb3JDaG9pY2UucHVycGxlIHsgYmFja2dyb3VuZC1jb2xvcjojNTMxNUIyOyB9IC5saWdodC1ncmF5IHsgYmFja2dyb3VuZC1jb2xvcjojNGI0YzRjOyBjb2xvcjojMDAwMDAwO30gYS5jb2xvckNob2ljZSB7IGNvbG9yOiNmZmY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IHRyLmJvcmRlcl9ib3R0b21fbGluZSB0ZCwgdHIuYm9yZGVyX2JvdHRvbV9saW5lIHRoIHsgYm9yZGVyLWJvdHRvbToxcHQgc29saWQgYmxhY2s7IH0gLmJvcmRlcl9ib3h7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyB9IC5ob21lcGFnZSAuYm9yZGVyX2JveHsgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAjaG9tZV9zb2NpYWxUaW1lbGluZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob21lcGFnZS1zb2NpYWwtYmctY29sb3IpOyB9ICNmb290ZXJXcmFwcGVyeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgY2xlYXI6Ym90aDsgcGFkZGluZy10b3A6MTVweDsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgfSAjZm9vdGVyV3JhcHBlciBzdmcgeyBmaWxsOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmN1c3RvbWZvcm1fc3VibWl0eyBtYXJnaW4tdG9wOjIwcHg7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuc2VlT3B0aW9uc3sgZGlzcGxheTpub25lOyB9IC5zdHJpa2UtcHJpY2UsIC5zdHJpa2UtcHJpY2UtYmxhY2ssIC5zdHJpa2UtcHJpY2Utd2hpdGUgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnN0cmlrZS1wcmljZTo6YmVmb3JlLCAuc3RyaWtlLXByaWNlLWJsYWNrOjpiZWZvcmUsIC5zdHJpa2UtcHJpY2Utd2hpdGU6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDAlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7IHdpZHRoOjEwMCU7IH0gLnN0cmlrZS1wcmljZS4tdGhpbjo6YmVmb3JleyBoZWlnaHQ6MXB4OyB9IC5zdHJpa2UtcHJpY2U6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAjMDAwOyB9IC5zdHJpa2UtcHJpY2UtYmxhY2s6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgfSAuc3RyaWtlLXByaWNlLXdoaXRlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgd2hpdGU7IH0gLmJsdXItcHJpY2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgaGVpZ2h0PScwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxmaWx0ZXIgaWQ9J3N2Z0JsdXInIHg9Jy01JScgeT0nLTUlJyB3aWR0aD0nMTEwJScgaGVpZ2h0PScxMTAlJz48ZmVHYXVzc2lhbkJsdXIgaW49J1NvdXJjZUdyYXBoaWMnIHN0ZERldmlhdGlvbj0nNScvPiNzdmdCbHVyIik7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmx1cihQaXhlbFJhZGl1cz0nNScpOyBmaWx0ZXI6Ymx1cigwLjE1ZW0pOyB9IC5sZWZ0X2JveHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgbWFyZ2luLXRvcDoxMHB4IDsgcGFkZGluZzoxMHB4IDAgMTBweDsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLCAuYnRuLWxnLC5jdXN0b21mb3JtX3N1Ym1pdCwuc3VibWl0eyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB9IC5idG4tZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyB9IC5idG4tZGVmYXVsdCwgLnN1Ym1pdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdCB7IHBhZGRpbmc6MTFweCAyMHB4IDlweCAyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnRuLXNtLCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLXNtLCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLXNtIHsgZm9udC1zaXplOmluaGVyaXQhaW1wb3J0YW50OyBwYWRkaW5nOjRweCAxMHB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50OyB9IC5idG4tbGcsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tbGcsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tbGcgeyBmb250LXNpemU6MS4wNjNyZW0gOyBwYWRkaW5nOjEycHggNTBweDsgYm9yZGVyLXJhZGl1czo2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kZWZhdWx0OmZvY3VzLCAuY3VzdG9tZm9ybV9zdWJtaXQ6Zm9jdXMsIC5idG4tc206Zm9jdXMsIC5idG4tbGc6Zm9jdXMsICNleGl0X3BvcHVwX3llczpmb2N1cywgI2V4aXRfcG9wdXBfbm86Zm9jdXMgeyBvdXRsaW5lOm5vbmU7IH0gLmJ0bi1kZWZhdWx0LmFwcGx5LWNyZWRpdCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IHdvcmQtd3JhcDpub3JtYWw7IHdpZHRoOjEwMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozcHggNXB4OyBmb250LXNpemU6MC43NXJlbSA7IH0gLmJ0bi1kZWZhdWx0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0eyBmb250LXNpemU6MC44cmVtOyB9IC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwuYnRuLWxnLCAuc3VibWl0LCAjc2xpZGVpdCBpbnB1dC5zZW5kLCAuY3VzdG9tZm9ybV9zdWJtaXQgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB0ZXh0LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZSB7IGJvcmRlci1jb2xvcjojZTRkY2QzOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZTpob3ZlciB7IGJvcmRlci1jb2xvcjojMDA3ZmE1OyB9IC5idG4tZGVmYXVsdDpob3ZlciwgLmN1c3RvbWZvcm1fc3VibWl0OmhvdmVyLCAuYnRuLXNtOmhvdmVyLCAuYnRuLWxnOmhvdmVyLCAuc3VibWl0OmhvdmVyLCAjc2xpZGVpdCBpbnB1dC5zZW5kOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvciwgLmJ0bi1zbS5wcm9tb2NvbG9yLCAuYnRuLWxnLnByb21vY29sb3IgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7IGJvcmRlcjoxcHggc29saWQgIzAwMmM1ZjsgY29sb3I6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvcjpob3ZlciwgLmJ0bi1zbS5wcm9tb2NvbG9yOmhvdmVyLCAuYnRuLWxnLnByb21vY29sb3I6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMmM1ZjsgfSAuYnRuLWRlZmF1bHQuYmxhY2ssIC5idG4tc20uYmxhY2ssIC5idG4tbGcuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yIDojMDAwMDAwOyBib3JkZXIgOjFweCBzb2xpZCAjMDAwMDAwOyBjb2xvciA6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQuYmxhY2sud2l0aGJvcmRlciwgLmJ0bi1zbS5ibGFjay53aXRoYm9yZGVyLCAuYnRuLWxnLmJsYWNrLndpdGhib3JkZXIgeyBib3JkZXIgOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5ibGFjazpob3ZlciwgLmJ0bi1zbS5ibGFjazpob3ZlciwgLmJ0bi1sZy5ibGFjazpob3ZlciB7IGJhY2tncm91bmQtY29sb3IgOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vLCAuYnRuLXNtLm5vLCAuYnRuLWxnLm5vIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICM1NTU7IGNvbG9yOiMwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vOmhvdmVyLCAuYnRuLXNtLm5vOmhvdmVyLCAuYnRuLWxnLm5vOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjY2NjY7IGJvcmRlcjoxcHggc29saWQgIzY2NjY2NjsgY29sb3I6I0ZGRkZGRjsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0LCAuYnRuLXNtLmludmVydCwgLmJ0bi1sZy5pbnZlcnQsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdCwgLmJ0bi1zbS5pbnZlcnQuZmxhdCwgLmJ0bi1sZy5pbnZlcnQuZmxhdCB7IGJhY2tncm91bmQ6IHZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJveC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0OmhvdmVyLCAuYnRuLXNtLmludmVydDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQ6aG92ZXIsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1zbS5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQuZmxhdDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB9IC5idG4tZGVmYXVsdC5yZWQsIC5idG4tc20ucmVkLCAuYnRuLWxnLnJlZCB7IGJhY2tncm91bmQ6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2Y1MWExYSFpbXBvcnRhbnQ7IGNvbG9yOiNGRkZGRkYhaW1wb3J0YW50OyB9IC5idG4tZGVmYXVsdC5yZWQ6aG92ZXIsIC5idG4tc20ucmVkOmhvdmVyLCAuYnRuLWxnLnJlZDpob3ZlcnsgYmFja2dyb3VuZDojMzMzMzMzIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMzMzMzMzIWltcG9ydGFudDsgY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0LndoaXRlLCAuYnRuLXNtLndoaXRlLCAuYnRuLWxnLndoaXRlIHsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGNvbG9yOiMwMDAwMDA7IGJveC1zaGFkb3c6bm9uZTsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgY29sdW1uLWdhcDoxLjVyZW07IHJvdy1nYXA6MC41cmVtOyBncmlkLWF1dG8tY29sdW1uczowLjVmcjsgbWFyZ2luLWJvdHRvbToxMHB4OyBtYXJnaW4tdG9wOjE1cHg7IH0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuIHsgdGV4dC13cmFwOmF1dG87IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZy1sZWZ0OjEwcHg7IHRyYW5zaXRpb246MC4ycyBlYXNlLWluLW91dDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0bi5mb2N1c2VkLCAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG46Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDJweCk7IH0gLmFwcGx5LWNyZWRpdCB7IC1tb3otYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICMwZDM5NmM7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICMwZDM5NmM7IGJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjMGQzOTZjOyBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMC4wNSwgIzMzNWY5MiksIGNvbG9yLXN0b3AoMSwgIzAwMmM1ZikpOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzMzNWY5MiA1JSwgIzAwMmM1ZiAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMzMzVmOTIgNSUsICMwMDJjNWYgMTAwJSk7IGJhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzMzNWY5MiA1JSwgIzAwMmM1ZiAxMDAlKTsgYmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzMzNWY5MiA1JSwgIzAwMmM1ZiAxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMzM1ZjkyIDUlLCAjMDAyYzVmIDEwMCUpOyBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjMzMzMnLCBlbmRDb2xvcnN0cj0nI0RCMDAwMCcsR3JhZGllbnRUeXBlPTApOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMzVmOTI7IGJvcmRlcjoxcHggc29saWQgIzFhNDY3OTsgfSAuYXBwbHktY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAuMDUsICMzMzVmOTIpLCBjb2xvci1zdG9wKDEsICMwMDJjNWYpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICMwMDJjNWYgNSUsICMzMzVmOTIgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMDAyYzVmIDUlLCAjMzM1ZjkyIDEwMCUpOyBiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMwMDJjNWYgNSUsICMzMzVmOTIgMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICMwMDJjNWYgNSUsICMzMzVmOTIgMTAwJSk7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAwMmM1ZiA1JSwgIzMzNWY5MiAxMDAlKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYzMzMzJywgZW5kQ29sb3JzdHI9JyNEQjAwMDAnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzM1ZjkyOyB9IC5vZmZlci1idG57IGNvbG9yOnZhcigtLWJ0bi10eHQtY29sLCB2YXIoLS11c2VkLW9mZmVyLWJ0bi10ZXh0LWNvbG9yLCAjZmZmKSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLWJnLWNvbCwgdmFyKC0tdXNlZC1vZmZlci1idG4tYmctY29sb3IsIHZhcigtLXByb21vLWNvbG9yKSkpOyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5wcm9tb0JUTnsgdGV4dC1hbGlnbjpsZWZ0OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAucHJvbW9CVE46OmFmdGVyeyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJywgc2VyaWY7IGZvbnQtd2VpZ2h0OjkwMDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucywgLnVzZWQtZGV0YWlscywgLm5ldy1kZXRhaWxzKSAucHJvbW9CVE4gPiBzcGFuLmZheyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEuNWVtOyBoZWlnaHQ6MS41ZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgY29sb3I6aW5oZXJpdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLmNvbXBsZXRlZC5wcm9tb0JUTjo6YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDBjIjsgY29sb3I6aW5oZXJpdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLmNvbXBsZXRlZC5wcm9tb0JUTiBzcGFuLmZheyBjb2xvcjojMDAwOyB9IC5ncmF5Ym94IC5wcm9tb0JUTiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTnsgYm9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB0ZXh0LWFsaWduOnVuc2V0OyBsaW5lLWhlaWdodDoxLjVyZW07IH0gLmdyYXlib3ggLmJ1dHRvbl91bmRlciAucHJvbW9CVE4gc3RhY2stbGMsIC5uZXdWZHBBY3Rpb25zIC5idXR0b25fdW5kZXIgLnByb21vQlROIHN0YWNrLWxjIHsgZmxleC1ncm93OjEgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDsgfSAubXVsdGlmb3JtX2VtYmVkZGVkX2Zvb3RlciAuLWZvcmNlZC0tYS1jZmE6OmFmdGVyIHsgZmxleDowIDE7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1pY29uZWR7IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOmF1dG87IHdpZHRoOjk1JTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWRlZmF1bHQgc3Bhbi5mYXsgZGlzcGxheTpub25lOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4taWNvbmVkIHNwYW4uZmF7IGRpc3BsYXk6ZmxleDsgfSAuZ3JheWJveCAucHJvbW9CVE4gc3BhbiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTiBzcGFueyBtYXJnaW4tbGVmdDp1bnNldDsgbGluZS1oZWlnaHQ6MS41ZW07IH0gLnByb21vQlROLmNoZXZyb24tcmlnaHQgLmN0YS1sYWJlbCB7IHBhZGRpbmctcmlnaHQ6MS41cmVtOyB9IC5wcm9tb0JUTiwgLnByb21vQlROIGEsIC5icm9jaHVyZUJ0bnsgYmFja2dyb3VuZDojMDAyYzVmOyBjb2xvcjojZmZmZmZmOyB0ZXh0LXNoYWRvdzpub25lOyBhbmltYXRpb246YWxsIDNzOyBib3JkZXItY29sb3I6IzAwMmM1ZjsgfSAucHJvbW9CVE46aG92ZXIsIC5wcm9tb0JUTiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiMwMDdmYTU7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgIzAwN2ZhNTsgfSAucHJvbW9CVE46aG92ZXIgPiAqID4gLmZhLCAucHJvbW9CVE4gYTpob3ZlciA+ICogPiAuZmEgeyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiMwMDdmYTU7IH0gLnByb21vQlROLmdyb3c6aG92ZXIgeyB0cmFuc2Zvcm06c2NhbGUoMS4xKTsgfSAucHJvbW9CVE4uZ3Jvdzpob3ZlciwgLnByb21vQlROLmdyb3c6aG92ZXIgPiAqID4gLmZhLCAucHJvbW9CVE4uZ3JvdyBhOmhvdmVyID4gKiA+IC5mYSB7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDoxOyBvdmVyZmxvdzpoaWRkZW47IHRyYW5zaXRpb246MXMgYWxsIGVhc2U7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpiZWZvcmUgeyBjb250ZW50IDoiICI7IHBvc2l0aW9uIDphYnNvbHV0ZTsgei1pbmRleCA6LTE7IGJvcmRlci1yYWRpdXMgOjEwMHB4OyB3aWR0aCA6MCU7IGhlaWdodCA6MTIwJTsgdG9wIDo1MCU7IGJvdHRvbSA6NTAlOyBsZWZ0IDo1MCU7IHJpZ2h0IDo1MCU7IHRyYW5zZm9ybSA6dHJhbnNsYXRlKC01MCUsIC01MCUpOyB0cmFuc2l0aW9uIDphbGwgMC42cyBlYXNlOyBib3JkZXI6dW5zZXQ7IGJhY2tncm91bmQ6IzAwN2ZhNTsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHsgYmFja2dyb3VuZDojMDAyYzVmOyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7OyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6aG92ZXI6YmVmb3JlIHsgd2lkdGg6MTIwJTsgfSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHNwYW4uZmF7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgfSAucHJvbW9BcnJvdywucHJvbW9Db2xvcnsgY29sb3I6IzAwMmM1ZiFpbXBvcnRhbnQ7IH0gLmJyb2NodXJlQnRueyBib3JkZXI6bm9uZTsgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4OyB9IC52ZHAtYnRuIHsgYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbi1ib3R0b206MTBweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IHBhZGRpbmc6OHB4IDVweDsgd2lkdGg6MjM3cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQwMHB4KSB7IC5idG4tZGVmYXVsdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdHsgZm9udC1zaXplOmluaGVyaXQ7IH0gLmFwcGx5LWNyZWRpdCB7IGJhY2tncm91bmQ6IzMzNWY5MjsgYm9yZGVyOjFweCBzb2xpZCAjMWE0Njc5OyB9IC5hcHBseS1jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOnskQVBQTFlfQ1JFRElUX0JUTl9DT0xPUl9FTkRIT1ZFUkNPTE9SfTsgfSB9IC5iZ19ibHVleyBiYWNrZ3JvdW5kLWNvbG9yOiMwNjg4ZmEhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19yZWR7IGJhY2tncm91bmQtY29sb3I6I2ZmMDAwMCFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2dyZWVueyBiYWNrZ3JvdW5kLWNvbG9yOiM2OGE1NGIhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ibGFja3sgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfZ3JheXsgYmFja2dyb3VuZC1jb2xvcjojNzk3OTc5IWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfYmx1ZSBhLC5iZ19yZWQgYSwuYmdfZ3JlZW4gYSwuYmdfYmxhY2sgYSwuYmdfZ3JheSBhIHsgY29sb3I6I2ZmZjsgfSAuYmdfZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzIWltcG9ydGFudDsgfSAuYm94Mjd7IHdpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmJveDI3IGF7IHdpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14IDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6MjhweDsgdGV4dC1hbGlnbjogY2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNyBhOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCAtMzJweCByZXBlYXQteDsgY29sb3I6I0ZGRkZGRjsgfSAuYm94Mjh7IHdpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojNmY2ZjZmIHVybCgvaW1hZ2VzL2xpdGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBtYXJnaW46MCAwcHggMCAwOyB9IC50ZXh0NDR7IHdpZHRoOjEyN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saXRlcl9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmNvbnN1bXB0aW9uLW5vdC1hdmFpbGFibGUgPiAudGV4dDQ0ID4gc3BhbiA+ICNjaXR5RnVlbCB7IGRpc3BsYXk6bm9uZTsgfSAuY29uc3VtcHRpb24tbm90LWF2YWlsYWJsZSA+IC50ZXh0NDQgPiBzcGFuID4gI2hpZ2h3YXlGdWVsIHsgZGlzcGxheTpub25lOyB9IC50ZXh0X3NsaWRlIGEgeyBoZWlnaHQ6MzhweDsgbWFyZ2luLXJpZ2h0OjAuM2VtOyBwYWRkaW5nLXRvcDoxcHggIWltcG9ydGFudDsgfSAudGV4dF9zbGlkZSBhID4gYiB7IGRpc3BsYXk6YmxvY2s7IG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50OyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjI1cHg7IHdpZHRoOjEwMCU7IH0gLnRleHRfc2xpZGUgYSA+IGIgPiBtMSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2hpdGUtc3BhY2U6bm93cmFwOyBsaW5lLWhlaWdodDozOHB4ICFpbXBvcnRhbnQ7IHRvcDotOHB4OyBsZWZ0OjA7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV80IGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV80IDRzIGVhc2UgNXM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV8zIGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV8zIDNzIGVhc2UgNHM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUudGV4dF9zbGlkZV8yIGEgPiBiID4gbTEgeyBhbmltYXRpb246dGV4dF9zbGlkZV8yIDJzIGVhc2UgMnM7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7IH0gLnRleHRfc2xpZGUucHJvbW9jb2RlYm94IHsgcGFkZGluZzowcHggMHB4OyBtYXJnaW4tbGVmdDowcHg7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6OXB4OyB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV80IHsgMCUgeyB0b3A6LThweDsgfSAyNSUgeyB0b3A6LTQ2cHg7IH0gNTAlIHsgdG9wOi04NHB4OyB9IDc1JSB7IHRvcDotMTIycHg7IH0gMTAwJSB7IHRvcDotMTYwcHg7IH0gfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfMyB7IDAlIHsgdG9wOi04cHg7IH0gMzMlIHsgdG9wOi00NnB4OyB9IDY2JSB7IHRvcDotODRweDsgfSAxMDAlIHsgdG9wOi0xMjJweDsgfSB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV8yIHsgMCUgeyB0b3A6LThweDsgfSA1MCUgeyB0b3A6LTQ2cHg7IH0gMTAwJSB7IHRvcDotODRweDsgfSB9IC5tYXAgeyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm1hcCAud3JhcHBlcnsgcG9zaXRpb246c3RhdGljICFpbXBvcnRhbnQ7IH0gLm1hcF9kZWFsZXJfbGlzdCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBwYWRkaW5nOjAgMzBweDsgd2lkdGg6MzE1cHg7IGhlaWdodDoxMDAlOyB0ZXh0LWFsaWduOmxlZnQ7IG92ZXJmbG93LXk6YXV0bzsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW0geyBjdXJzb3I6cG9pbnRlcjsgcGFkZGluZzoxM3B4IDA7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZTpob3ZlciB7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZV9hY3RpdmUgeyBmb250LXdlaWdodDo3MDA7IH0gLm1hcmtlclNwYW4geyBoZWlnaHQ6MThweDsgd2lkdGg6MjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAubWFya2VyU3BhbjpiZWZvcmUgeyBjb250ZW50OicnOyBoZWlnaHQ6NHB4OyB3aWR0aDo0cHg7IGJvcmRlcjoycHggc29saWQgIzMzMzsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IGxlZnQ6MHB4OyB6LWluZGV4OjE7IGJhY2tncm91bmQ6I2ZmZjsgbGluZS1oZWlnaHQ6MjZweDsgYm9yZGVyLXJhZGl1czo0MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjQwcHg7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYXJrZXJTcGFuOmFmdGVyIHsgY29udGVudDonJzsgaGVpZ2h0OjBweDsgd2lkdGg6MHB4OyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjJweDsgbGVmdDoycHg7IGJvcmRlcjoxMHB4IHRyYW5zcGFyZW50IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiMzMzM7IGJvcmRlci13aWR0aDo3cHggMnB4IDBweCAycHg7IH0gLm1hcF9vcGVuX2hvdXJzIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHdpZHRoOjQwMHB4OyBoZWlnaHQ6MTAwJTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5vcGVuX2hvdXJzX2NvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5tYXBfb3Blbl9ob3VycyAubWFwX29wZW5faG91cnMtLXRpdGxlLCAub3Blbl9ob3Vyc19jb250YWluZXIgaDIsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciBzcGFuLmgyLWFsdCB7IGZvbnQtc2l6ZToxLjVlbTsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1sZWZ0OjE1cHg7IG1hcmdpbi10b3A6MjBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjppbmhlcml0OyB9IC5tYXBfb3Blbl9ob3VycyB1bCwgLm9wZW5faG91cnNfY29udGFpbmVyIHVsIHsgcGFkZGluZzowIDA7IH0gLm1hcF9vcGVuX2hvdXJzIHVsIGxpLCAub3Blbl9ob3Vyc19jb250YWluZXIgdWwgbGkgeyBsaXN0LXN0eWxlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBjdXJzb3I6aGFuZDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2YzZjNmMzsgfSAubWFwX29wZW5faG91cnNfZXhwYW5keyBwYWRkaW5nOjZweCAzMHB4IDhweCAxNXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5leHBhbmRhYmxlX2NvbnRlbnR7IHBhZGRpbmc6MHB4IDE2cHggNXB4IDE2cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IH0gLmV4cGFuZGFibGVfY29udGVudCBkaXYsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiBkaXYgeyBkaXNwbGF5IDpmbGV4OyBmbGV4LWRpcmVjdGlvbiA6cm93OyB9IC5leHBhbmRhYmxlX2NvbnRlbnQgPiBkaXYgPiBzcGFuOmZpcnN0LW9mLXR5cGUsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiBkaXYgc3BhbjpmaXJzdC1vZi10eXBlIHsgd2lkdGg6NDAlOyB9IC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbnsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgbWFyZ2luLXRvcDoxNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aCA6NzU5cHgpIHsgLmV4cGFuZGFibGVfY29udGVudCwgLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIHsgZm9udC1zaXplOmluaGVyaXQ7IH0gfSAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gdGFibGV7IG1hcmdpbi10b3A6MTVweDsgfSAubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93eyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDozcHg7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdy5leHBhbmRlZHsgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGV7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSAubWFwX29wZW5faG91cnNfbW9iaWxlLS10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIHVseyBwYWRkaW5nOjAgMDsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIHVsIGxpeyBsaXN0LXN0eWxlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjNmM2YzOyB9IC5tYWluX2xlZnRfYm94ICNmb290ZXJHb29nbGVNYXBIb3Vyc0NvbnRhaW5lcnsgd2lkdGg6OTYwcHg7IH0gLnZpZGVvQnRuU2xpZGVyLCAucGhvdG9CdG5TbGlkZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNiM2IzYjM7IGNvbG9yOiNiM2IzYjM7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IG9wYWNpdHk6MC41OyB9IC52aWRlb0J0blNsaWRlcjpob3ZlciwgLnBob3RvQnRuU2xpZGVyOmhvdmVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojYjNiM2IzOyBvcGFjaXR5OjAuNTsgfSAucGhvdG9CdG5TbGlkZXIgLmZhLCAudmlkZW9CdG5TbGlkZXIgLmZheyBjb2xvcjojYjNiM2IzOyB9IC5waG90b0J0blNsaWRlcjpob3ZlciAuZmEsIC52aWRlb0J0blNsaWRlcjpob3ZlciAuZmF7IGNvbG9yOiNmZmZmZmY7IH0gLnZpZGVvQnRuU2xpZGVyVXNlZCwgLnBob3RvQnRuU2xpZGVyVXNlZHsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2IzYjNiMzsgY29sb3I6I2IzYjNiMzsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgb3BhY2l0eTowLjk7IH0gLnZpZGVvQnRuU2xpZGVyVXNlZDpob3ZlciwgLnBob3RvQnRuU2xpZGVyVXNlZDpob3ZlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2IzYjNiMzsgb3BhY2l0eTowLjU7IH0gLnBob3RvQnRuU2xpZGVyVXNlZCAuZmEsIC52aWRlb0J0blNsaWRlclVzZWQgLmZheyBjb2xvcjojYjNiM2IzOyB9IC5waG90b0J0blNsaWRlclVzZWQ6aG92ZXIgLmZhLCAudmlkZW9CdG5TbGlkZXJVc2VkOmhvdmVyIC5mYXsgY29sb3I6I2ZmZmZmZjsgfSAudmlkZW9zX3BpY3R1cmVzX2J1dHRvbnNfY29udGFpbmVyeyBsZWZ0OjVweDsgYm90dG9tOjgycHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4Ojk5OTsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTotODBweDsgfSAuLWRpc3BsYXktbm9uZXsgZGlzcGxheTpub25lOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcHsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI2RlZmF1bHRUb3BCYW5uZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjZweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSwgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXdlaWdodDpib2xkOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcCBkaXYuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjozMHB4IDAgMjBweCAwOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyB9ICNkZWZhdWx0VG9wQmFubmVyQnRueyBwYWRkaW5nOjEwcHggMzBweDsgYmFja2dyb3VuZDpibGFjazsgYm9yZGVyOjJweCB3aGl0ZSBzb2xpZDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiNmZmZmZmY7IGJveC1zaGFkb3c6MHB4IDJweCAxM3B4IDBweCAjMWIxYjFiOyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IGZvbnQtc2l6ZTozLjEyNXJlbSA7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXNpemU6Mi44MTNyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6My4xMjVyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IH0gI3RvcEJhbm5lckltYWdlOmVtcHR5eyBtYXJnaW46MCAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MjY1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MjY1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI2dvb2dsZV9yZXZpZXdzeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2OyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6MDsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgbGkgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHBhZGRpbmc6aW5pdGlhbDsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgbGkgaSB7IGNvbG9yOiNFNEIyNDg7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXNpemU6MC45MzhyZW0gOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSBpLmluYWN0aXZlIHsgY29sb3I6I2M2YzZjNjsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcjphZnRlciB7IGNvbnRlbnQ6IlwyNjA1IjsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0eyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjVweCA4cHg7IGhlaWdodDoyN3B4OyBsaW5lLWhlaWdodDoyN3B4OyB9IC5yZXZpZXctYXV0aG9yeyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQuZGVmYXVsdHsgY29sb3I6IzQ0NDsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjZjVmNWY1LCAjZjFmMWYxKTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5yZWR7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgI0RENEIzOSwgI0QxNDgzNik7IGJvcmRlcjoxcHggc29saWQgI0QxNDgzNjsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LmJsdWV7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQtY29sb3I6IzREOTBGRTsgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgIzREOTBGRSwgIzQ3ODdFRCk7IGJvcmRlcjoxcHggc29saWQgIzMwNzlFRDsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgaWZyYW1lLCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgb2JqZWN0LCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgZW1iZWQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMnsgcG9zaXRpb246cmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOjU2LjI1JTsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbjsgbWF4LXdpZHRoOjEwMCU7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBpZnJhbWUsIC5lbWJlZC1jb250YWluZXIteW91dHViZTIgb2JqZWN0LCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIGVtYmVkIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9ICNzZWFyY2hDcml0ZXJpYVc6OmFmdGVyLCAjYWN0aW9uQm94QnRuOjphZnRlciwgI2xpbmtDb250YWluZXI6OmFmdGVyeyBjb250ZW50OicnOyBoZWlnaHQ6MXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luLWJvdHRvbTonMTVweCc7IH0gI3NlYXJjaENyaXRlcmlhVzo6YWZ0ZXIsICNhY3Rpb25Cb3hCdG46OmFmdGVyLCAjbGlua0NvbnRhaW5lcjo6YWZ0ZXJ7IGJhY2tncm91bmQ6I2FhYTsgd2lkdGg6MjgwcHg7IH0gLmJhbm5lclBvcHVwQ2xvc2V7IGNvbG9yOiNhYWE7IH0gLnNlZVZpZGVvQnRuMXsgYmFja2dyb3VuZC1jb2xvcjojMDAwICFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2ZmZiAhaW1wb3J0YW50OyBjb2xvcjojZmZmICFpbXBvcnRhbnQ7IH0gLnNlZVZpZGVvQnRuMTpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmICFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgIzAwMCAhaW1wb3J0YW50OyBjb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IH0gI2JvdHRvbUxlZnRCYW5uZXJJbWFnZXsgbWFyZ2luOjEwcHggMHB4IDBweDsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjZweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyV3JhcHsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgcGFkZGluZzoxNXB4OyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lclRpdGxleyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6Mi4xODhyZW0gOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lclRleHR7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyV3JhcCBkaXYuZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJCdG5XcmFwcGVyeyBtYXJnaW46MjBweCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJCdG57IHBhZGRpbmc6N3B4IDIxcHg7IGJhY2tncm91bmQ6YmxhY2s7IGJvcmRlcjoycHggd2hpdGUgc29saWQ7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojZmZmZmZmOyBib3gtc2hhZG93OjBweCAycHggMTNweCAwcHggIzFiMWIxYjsgZm9udC1zaXplOjcwJTsgfSAubWFpbkRpdi13cmFwcGVyIHsgcGFkZGluZy10b3A6MC4wMXJlbTsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEgeyBwYWRkaW5nOjAgMTJweDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjI3cHg7IGJvcmRlci1yYWRpdXM6MDsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEgeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZC1jb2xvcjojMDA3ZmE1OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7IGNvbG9yOndoaXRlOyBjb2xvcjojZmZmZmZmOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYS5idG4geyBmb250LXdlaWdodDpub3JtYWw7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gLmJ0bi1kZWZhdWx0OmhvdmVyIHsgYm9yZGVyLWNvbG9yOiMwMDdmYTU7IGJvcmRlci1jb2xvcjojMDAyYzVmOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5Om5vbmU7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIC4xNzUpOyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzUwcHg7IHJpZ2h0OjA7IHBhZGRpbmc6MTVweDsgei1pbmRleDo5OTk5OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBoZWlnaHQ6YXV0bzsgdG9wOjIzcHg7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIGRpdjpub3QoW2NsYXNzXSkgeyBmbG9hdDppbml0aWFsOyB3aWR0aDoxMDAlOyBtYXJnaW4tcmlnaHQ6MDsgdGV4dC1hbGlnbjppbml0aWFsOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyOmhvdmVyIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5OmJsb2NrOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIuaXNPcGVuIC5zaG9ydC1zZXJ2aWNlLWZvcm0geyBkaXNwbGF5OmJsb2NrOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3csIC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3cgZGl2IHsgbWFyZ2luLXJpZ2h0OmluaGVyaXQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgZmxvYXQ6bm9uZTsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLm1haWx3aWRnZXQtLWZvcm0tcm93IHRhYmxlIHRleHRhcmVhIHsgd2lkdGg6Y2FsYygxMDAlICsgMnB4KSAhaW1wb3J0YW50OyB9ICN1c2VkXzQwNF9tZXNzYWdlIHsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MzBweDsgYm9yZGVyOjFweCBzb2xpZCAjZjAwOyBtYXJnaW46MCAwIDIwcHggMDsgfSAuYXVkaS10aXRsZSBoMiB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuYXVkaS1jb2xvciB7IGNvbG9yOiNiYjBhMzA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gZGl2I3NvY2lhbF9tZWRpYV9pY29uc19kaXYgeyBmb250LXNpemU6aW5oZXJpdDsgfSBhLnNvY2lhbC1saW5rIHsgLS1mczp2YXIoLS1mczYpOyAtLXR4dC1jb2xvcjojMDA3ZmE1OyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IC5zb2NpYWwtbGlua1tkYXRhLXRvb2x0aXA9J1lvdXR1YmUnXSAuc29jaWFsLWljb25zIHsgbWFyZ2luLXJpZ2h0OjNweDsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxleyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6d2hpdGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MCAwIDEwcHggMDsgYm9yZGVyLXJhZGl1czozcHggM3B4IDAgMDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnBheXBhbF9idXR0b25faHRtbCB0YWJsZSB0cjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OjQwcHg7IH0gLnBheXBhbF9idXR0b25faHRtbCB0YWJsZSBzZWxlY3R7IGJvcmRlci1yYWRpdXM6NXB4OyB3aWR0aDoyMDBweDsgaGVpZ2h0OjM1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnBheXBhbF9idXR0b25faHRtbCBpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdeyB3aWR0aDoxMDAlOyBib3JkZXI6bm9uZTsgcGFkZGluZzowOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MDBweCkgeyAucGF5cGFsX2J1dHRvbl9odG1seyB3aWR0aDo5MCU7IG1hcmdpbjowIGF1dG87IH0gfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHsgei1pbmRleDoxMDAwMDAwMDAyMTsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLmRlc2t0b3AgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLmRlc2t0b3Agc2VsZWN0IHsgbWF4LXdpZHRoOjMwMHB4OyBtYXJnaW46MCBhdXRvOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uc21hbGwgeyBwYWRkaW5nOjIwcHggMTBweDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIGxhYmVsIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiAjbXV0bGlBZGRyZXNzU3VibWl0IHsgbWFyZ2luOjAgYXV0bzsgbWFyZ2luLXRvcDo4cHg7IGRpc3BsYXk6dGFibGU7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiAjbXVsdGktZGVhbGVyLW1hcCB7IGhlaWdodDo1MjBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24ucmV2ZWFsLW1vZGFsIHNwYW4geyBmb250LXNpemU6aW5oZXJpdDsgfSAudmFsaWRpdHktZXJyb25lb3VzIHsgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMhaW1wb3J0YW50OyB9IC5ib3g0LnZhbGlkaXR5LWVycm9uZW91cywgLmJveDUudmFsaWRpdHktZXJyb25lb3VzIHsgd2lkdGg6MjYzcHg7IH0gLmZvcm0tY29udHJvbCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IGhlaWdodDozNHB4OyBwYWRkaW5nOjZweCAxMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyBjb2xvcjojNTU1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpOyBib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyAtby10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgLXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IH0gLmJhbm5lci1mb3JtLWJveCB7IHBhZGRpbmc6MzBweDsgYmFja2dyb3VuZC1jb2xvcjojZjZmM2YyOyBjb2xvcjojMDAwMDAwOyB9IC5iYW5uZXItZm9ybS10aXRsZSB7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zaXplOjE4cHQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYmFubmVyLWZvcm0tc3VidGl0bGUgeyBmb250LXNpemU6MTEuNXB0OyBtYXJnaW4tYm90dG9tOjVweDsgfSAuYmFubmVyLWZvcm0tYm9keSB7IG1hcmdpbi1ib3R0b206MjVweDsgfSAuYmFubmVyLWZvcm0tYm9keSAuZm9ybS1jb250cm9sIHsgaGVpZ2h0OjQxcHg7IG1hcmdpbi1ib3R0b206MTVweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmJhbm5lci1mb3JtLWJveC1mb290ZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC5iYW5uZXItZm9ybS1ib3gtaGVhZGVyIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuYnRuLmJhbm5lci1idG4geyBwYWRkaW5nOjZweCAyNHB4OyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyBjb2xvcjojZmZmZmZmOyB9IC5idG4uYmFubmVyLWJ0bjpob3ZlciB7IGJveC1zaGFkb3c6aW5zZXQgMCAwIDEwMHB4IDEwMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfSAuYnRuIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6NnB4IDEycHg7IG1hcmdpbi1ib3R0b206MDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6NDAwOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2hpdGUtc3BhY2U6bm93cmFwOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IC1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uOyB0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uOyBjdXJzb3I6cG9pbnRlcjsgLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyAtbW96LXVzZXItc2VsZWN0Om5vbmU7IC1tcy11c2VyLXNlbGVjdDpub25lOyB1c2VyLXNlbGVjdDpub25lOyBib3JkZXItcmFkaXVzOjRweDsgfSAubGF6eWxvYWR7IHZpc2liaWxpdHk6aGlkZGVuOyB9IC5nYm94IHsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwwLDAsMC4yKTsgfSAucGQgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBmb250LXNpemU6MC41ZW07IHZlcnRpY2FsLWFsaWduOnN1cGVyOyB9IC51aS1sb2FkZXItYmFja2dyb3VuZHsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBwYWRkaW5nOjA7IG1hcmdpbjowOyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMC4zKTsgZGlzcGxheTpub25lOyBwb3NpdGlvbjpmaXhlZDsgei1pbmRleDoxMDAwMDAwMDA7IH0gLnVpLWxvYWRlci1iYWNrZ3JvdW5kLWdpZnsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IGxlZnQ6NTAlOyB9IC5kMmNGb290ZXJDb29raWVEZWxldGVUaXRsZSB7IGZvbnQtc2l6ZToxLjNlbTsgfSAuZDJjRm9vdGVyQ29va2llRGVsZXRlVGV4dCB7IG1hcmdpbi10b3A6MzBweDsgfSAubW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfYnRueyBiYWNrZ3JvdW5kOiMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IHBhZGRpbmc6MTBweCAyMHB4IDEwcHggMjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLm1vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX2J0biBzcGFueyBiYWNrZ3JvdW5kOiMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IH0gI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX3Ntc3sgYmFja2dyb3VuZDojMDAyYzVmOyBjb2xvcjojZmZmZmZmOyB9ICNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9zbXMgc3BhbnsgYmFja2dyb3VuZDojMDAyYzVmOyBjb2xvcjojZmZmZmZmOyB9IC5ibGFja0NvbG9yQm9sZHsgY29sb3I6IzAwMCFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7IH0gLmZsZXgtY2VudGVyIC5yZXNwb25zaXZlLWVkaXRvciB7IGZsZXgtZ3JvdzoxOyB9IC5yZXZlYWwtbW9kYWx7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLmdtLXN0eWxlLWl3LWQgeyBwYWRkaW5nLXRvcDoxMnB4OyBtYXJnaW4tcmlnaHQ6LTI0cHg7IH0gLmdtLXN0eWxlIC5nbS1zdHlsZS1pdy1jIHsgZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7IH0gLmdyZWNhcHRjaGEtYmFkZ2UgeyBib3R0b206MTAwcHggIWltcG9ydGFudDsgfQovKiogL2Nzcy9mb250cy5jc3MgKiovCkBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhbGlicmknOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmktd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaS13ZWJmb250LnN2ZyNDYWxpYnJpJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC1zaXplOjFlbTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWxpYnJpJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmliLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWItd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpYi13ZWJmb250LnN2ZyNDYWxpYnJpJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ2FsaWJyaSc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jYWxpYnJpaS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NhbGlicmlpLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY2FsaWJyaWktd2ViZm9udC5zdmcjQ2FsaWJyaScpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLVJlZ3VsYXIud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1SZWd1bGFySXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmEnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUxpZ2h0JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtTGlnaHQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFMaWdodCc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hV0dMLUxpZ2h0SXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hTGlnaHQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEFudGVubmFXR0wtU2VtaWJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYVdHTC1TZW1pYm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtUmVnLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZCc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1SZWdJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FudGVubmFDb25kJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmRMaWdodCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1MaWdodC53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmRMaWdodCc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1MaWdodEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW50ZW5uYUNvbmRMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkQW50ZW5uYUNvbmRXR0wtTWVkLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbnRlbm5hQ29uZExpZ2h0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRBbnRlbm5hQ29uZFdHTC1NZWRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXIud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLVJlZ3VsYXIud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFyLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFySXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1SZWd1bGFySXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtUmVndWxhckl0YWxpYy5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbnRlcnN0YXRlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUJvbGRJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ludGVyc3RhdGUnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ludGVyc3RhdGUtTGlnaHQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSW50ZXJzdGF0ZSc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0SXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSW50ZXJzdGF0ZS1MaWdodEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9JbnRlcnN0YXRlLUxpZ2h0SXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtcmVndWxhci13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LXJlZ3VsYXItd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHQtUmVndWxhci5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0LVJlZ3VsYXJJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXVGV4dCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHQtYm9sZC13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LWJvbGQtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV1RleHQtQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dG9mZmljZS1ib2xkaXRhbGljLXdlYmZvbnQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d3RleHRvZmZpY2UtYm9sZGl0YWxpYy13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dE9mZmljZS1Cb2xkSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV1RleHQnOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRsaW5lb3Qtc2VtaWJvbGRfMC13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkbGluZW90LXNlbWlib2xkXzAtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWRsaW5lT1QtU2VtaWJvbGRfMC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0JzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3dGV4dC1saWdodC13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evdnd0ZXh0LWxpZ2h0LXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0LUxpZ2h0Lm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtcmVndWxhci13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLXJlZ3VsYXItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtUmVndWxhci5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1yZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLVJlZ3VsYXJJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1ib2xkLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWQtYm9sZC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZC1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1ib2xkaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVldIZWFkLUJvbGRJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZCc7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1leHRyYWJvbGQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3Z3aGVhZC1leHRyYWJvbGQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWQtRXh0cmFCb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWRPZmZpY2UnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWRPZmZpY2UtUmVndWxhci53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidWV0hlYWRPZmZpY2UnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRvZmZpY2UtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkb2ZmaWNlLXJlZ3VsYXJpdGFsaWMtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWRPZmZpY2UtUmVndWxhckl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldIZWFkT2ZmaWNlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1ZXSGVhZE9mZmljZS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1ZXSGVhZE9mZmljZSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpib2xkOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS92d2hlYWRvZmZpY2UtYm9sZGl0YWxpYy13ZWJmb250LndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvdndoZWFkb2ZmaWNlLWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9WV0hlYWRPZmZpY2UtQm9sZEl0YWxpYy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0T2ZmaWNlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvVldUZXh0T2ZmaWNlLVJlZ3VsYXIud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVldUZXh0T2ZmaWNlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCIvL2ZvbnRzLmQyY21lZGlhLmNhL1ZXVGV4dE9mZmljZS1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5NaWxsZXJCJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQmxhY2sud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFjay53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFjay50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sbk1pbGxlckInOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1JdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1JdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuTWlsbGVyQic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1Cb2xkLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1Cb2xkLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuTWlsbGVyQic7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpib2xkOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuTWlsbGVyQi1CbGFja0l0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUJsYWNrSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuTWlsbGVyQic7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5NaWxsZXJCLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sbk1pbGxlckItTGlnaHQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuUHJveGltYU5vdmEnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuUHJveGltYU5vdmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtSXRhbGljLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMaW5jb2xuUHJveGltYU5vdmEnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MaW5jb2xuUHJveGltYU5vdmEtQm9sZC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGluY29sblByb3hpbWFOb3ZhJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0OmJvbGQ7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YS1Cb2xkSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGRJdGFsaWMud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhLUJvbGRJdGFsaWMudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xpbmNvbG5Qcm94aW1hTm92YSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xpbmNvbG5Qcm94aW1hTm92YUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGluY29sblByb3hpbWFOb3ZhTGlnaHQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1Byb3hpbWFOb3ZhLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEtSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1Byb3hpbWFOb3ZhJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1Byb3hpbWFOb3ZhLUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUHJveGltYU5vdmEnOyBmb250LXN0eWxlOml0YWxpYzsgZm9udC13ZWlnaHQ6Ym9sZDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUHJveGltYU5vdmEtQm9sZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQcm94aW1hTm92YSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1Byb3hpbWFOb3ZhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JvYm90byc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tUmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1SZWd1bGFyLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLVJlZ3VsYXItd2ViZm9udC5zdmcjUm9ib3RvJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSb2JvdG8nOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGRJdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZEl0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkSXRhbGljLXdlYmZvbnQuc3ZnI1JvYm90b0JsYWNrSXRhbGljJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUm9ib3RvJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JvYm90by1Cb2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUJvbGQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tQm9sZC13ZWJmb250LnN2ZyNSb2JvdG9Cb2xkJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUm9ib3RvJzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Sb2JvdG8tTGlnaHQtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUxpZ2h0LXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUxpZ2h0LXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUm9ib3RvLUxpZ2h0LXdlYmZvbnQuc3ZnI1JvYm90b0xpZ2h0JykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRGVzaWdua2InOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rYi13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rYic7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtiLXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua2Itd2ViZm9udC1ib2xkLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRGVzaWdua2InOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbC13ZWJmb250LndvZmYiKSBmb3JtYXQoIndvZmYiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2Rlc2lnbmtsLXdlYmZvbnQtbGlnaHQudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rbSc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoImVvdCIpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidEZXNpZ25rbSc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvZGVzaWdua20td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9kZXNpZ25rbS13ZWJmb250LW1lZGl1bS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0Om1lZGl1bTsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ29ycG9yYXRlUyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19yZWd1bGFyX3dlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfcmVndWxhcl93ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDb3Jwb3JhdGVTJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9zX2xpZ2h0X3dlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfbGlnaHRfd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ29ycG9yYXRlUyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvc19ib2xkX3dlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3NfYm9sZF93ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ29ycG9yYXRlQUNvbmRlbnNlZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvcmF0ZWFjb25kcHJvX3JlZ3VsYXJfd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2NvcnBvcmF0ZWFjb25kcHJvX3JlZ3VsYXJfd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQ29ycG9yYXRlQVJlZ3VsYXInOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9jb3Jwb3JhdGVhcHJvX3JlZ3VsYXJfbG9nb193ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvY29ycG9yYXRlYXByb19yZWd1bGFyX2xvZ29fd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseToiU291cmNlU2Fuc1BybyI7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQuZW90Jyk7IHNyYzp1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1yZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeCIpIGZvcm1hdCgiZW90IiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC50dGYiKSBmb3JtYXQoInRydWV0eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLXJlZ3VsYXItd2ViZm9udC5zdmcjc291cmNlX3NhbnNfcHJvcmVndWxhciIpIGZvcm1hdCgic3ZnIik7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseToiU291cmNlU2Fuc1BybyI7IHNyYzp1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQuZW90Iik7IHNyYzp1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1ib2xkLXdlYmZvbnQuZW90PyNpZWZpeCIpIGZvcm1hdCgiZW90IiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC50dGYiKSBmb3JtYXQoInRydWV0eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWJvbGQtd2ViZm9udC5zdmcjc291cmNlX3NhbnNfcHJvYm9sZCIpIGZvcm1hdCgic3ZnIik7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6IlNvdXJjZVNhbnNQcm8iOyBzcmM6dXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC5lb3QiKTsgc3JjOnVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQuZW90PyNpZWZpeCIpIGZvcm1hdCgiZW90IiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9zb3VyY2VzYW5zcHJvLWxpZ2h0LXdlYmZvbnQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evc291cmNlc2Fuc3Byby1saWdodC13ZWJmb250LnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3NvdXJjZXNhbnNwcm8tbGlnaHQtd2ViZm9udC5zdmcjc291cmNlX3NhbnNfcHJvbGlnaHQiKSBmb3JtYXQoInN2ZyIpOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGknOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1Ob3JtYWwud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1Ob3JtYWwud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGVWMDMtTm9ybWFsLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpJzsgZm9udC1zdHlsZTppdGFsaWM7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZS1FeHRlbmRlZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZVYwMy1JdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGknOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtQm9sZC53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUJvbGQud29mZiIpIGZvcm1hdCgid29mZiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGVWMDMtQm9sZCIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdWRpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkQm9sZEl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkQm9sZEl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdWRpVHlwZVYwMy1FeHRlbmRlZEJvbGRJdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGlFeHRlbmRlZCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWQtNC4wMy1Ob3JtYWwub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGlFeHRlbmRlZCc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzp1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWQtNC4wMy1JdGFsaWMub3RmIikgZm9ybWF0KCJvcGVudHlwZSIpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F1ZGlFeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCIvL2ZvbnRzLmQyY21lZGlhLmNhL0F1ZGlUeXBlLUV4dGVuZGVkLTQuMDMtQm9sZC5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXVkaUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoIi8vZm9udHMuZDJjbWVkaWEuY2EvQXVkaVR5cGUtRXh0ZW5kZWQtNC4wMy1Cb2xkSXRhbGljLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtUmVndWxhci5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1SZWd1bGFyLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtUmVndWxhci53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IGZvbnQtc3R5bGU6aXRhbGljOyBmb250LXdlaWdodDpub3JtYWw7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUl0YWxpYy53b2ZmMiIpIGZvcm1hdCgid29mZjIiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9yc2NoZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkLm90ZiIpIGZvcm1hdCgib3BlbnR5cGUiKSwgdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGQud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcnNjaGVOZXh0LUJvbGRJdGFsaWMud29mZjIiKSBmb3JtYXQoIndvZmYyIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1Cb2xkSXRhbGljLndvZmYiKSBmb3JtYXQoIndvZmYiKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3JzY2hlJzsgc3JjOiB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbi5vdGYiKSBmb3JtYXQoIm9wZW50eXBlIiksIHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbi53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcnNjaGUnOyBzcmM6IHVybCgiaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3JzY2hlTmV4dC1UaGluSXRhbGljLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpLCB1cmwoImh0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9yc2NoZU5leHQtVGhpbkl0YWxpYy53b2ZmIikgZm9ybWF0KCJ3b2ZmIik7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09zd2FsZCc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkLmVvdCcpOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkLnN2ZycpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3N3YWxkQm9sZCc7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkQm9sZC5lb3QnKTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Pc3dhbGRCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09zd2FsZEJvbGQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3N3YWxkQm9sZC5zdmcnKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01hemRhVHlwZSc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01hemRhVHlwZS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWF6ZGFUeXBlJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTWF6ZGFUeXBlLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNYXpkYVR5cGUnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NYXpkYVR5cGUtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkZXI7IGZvbnQtc3R5bGU6aXRhbGljOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J3Nob3dyb29tJzsgc3JjOiBsb2NhbCgnc2hvd3Jvb20nKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL3Nob3dyb29tLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvc2hvd3Jvb20udHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvc2hvd3Jvb20ud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvc2hvd3Jvb20uc3ZnJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pckxUU3RkLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXInOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodE9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1MaWdodE9ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtTGlnaHRPYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pcic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFja09ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJMVFN0ZC1CbGFja09ibGlxdWUud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTFRTdGQtQmxhY2tPYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJQcm8nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0UHJvLW5vcm1hbC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJQcm8nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFByby1ib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0TFRQcm8tUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0JzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRMVFByby1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0F2ZW5pck5leHQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0TFRQcm8tSXQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dFJvdW5kZWQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0Um91bmRlZFN0ZC1SZWcud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dFJvdW5kZWQnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQXZlbmlyTmV4dFJvdW5kZWRTdGQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBdmVuaXJOZXh0Um91bmRlZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0F2ZW5pck5leHRSb3VuZGVkU3RkLUJvbGRJdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXZlbmlyTmV4dFJvdW5kZWQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BdmVuaXJOZXh0Um91bmRlZFN0ZC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQXBleE5ld0Jvb2snOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2FwZXgtbmV3LWJvb2stcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhci13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXItd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXItd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LXJlZ3VsYXItd2ViZm9udC5zdmcjbW9udHNlcnJhdHJlZ3VsYXInKSBmb3JtYXQoJ3N2ZycpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01vbnRzZXJyYXQnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Nb250c2VycmF0LUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGQtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1ib2xkLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRib2xkJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtYm9sZGl0YWxpYy13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGRpdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LWJvbGRpdGFsaWMtd2ViZm9udC5zdmcjbW9udHNlcnJhdGJvbGRfaXRhbGljJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1yZWd1bGFyaXRhbGljLXdlYmZvbnQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhcml0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtcmVndWxhcml0YWxpYy13ZWJmb250LnN2ZyNtb250c2VycmF0aXRhbGljJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNb250c2VycmF0Jzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTW9udHNlcnJhdC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bS13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bS13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW0td2ViZm9udC5zdmcjbW9udHNlcnJhdG1lZGl1bScpIGZvcm1hdCgnc3ZnJyk7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTW9udHNlcnJhdCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01vbnRzZXJyYXQtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW1pdGFsaWMtd2ViZm9udC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvbW9udHNlcnJhdC1tZWRpdW1pdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9tb250c2VycmF0LW1lZGl1bWl0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL21vbnRzZXJyYXQtbWVkaXVtaXRhbGljLXdlYmZvbnQuc3ZnI21vbnRzZXJyYXRtZWRpdW1faXRhbGljJykgZm9ybWF0KCdzdmcnKTsgZm9udC13ZWlnaHQ6Ym9sZGVyOyBmb250LXN0eWxlOml0YWxpYzsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNTUMnOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1SZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NTUMtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTU1DJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1NZWRpdW0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01NQyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTU1DLUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01NQy1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLVJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0h5dW5kYWlTYW5zSGVhZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0h5dW5kYWlTYW5zSGVhZCc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC5lb3Q\/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUxpZ2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQk1XJzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQk1XVHlwZU5leHQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0JNVyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0JNV1R5cGVOZXh0LUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCTVdHbG9iYWxQcm8nOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CTVdHbG9iYWxfUHJvX3JlZy53b2ZmJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0JNV0dsb2JhbFBybyc7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0JNV0dsb2JhbF9Qcm9fYm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmMicpOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1UaGluLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1UaGluSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1MaWdodEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1SZWd1bGFySXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtUmVndWxhckl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtTWVkaXVtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLVNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtU2VtaWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtU2VtaWJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1TZW1pYm9sZEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9sZEl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWwnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMTYlOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1FeHRyYWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1FeHRyYWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtRXh0cmFib2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtRXh0cmFib2xkSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOYXRpb25hbCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1CbGFja0l0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTmF0aW9uYWxCb29rJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTE2JTsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmF0aW9uYWwtQm9vay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvb2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05hdGlvbmFsQm9vayc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNpemUtYWRqdXN0OjExNiU7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05hdGlvbmFsLUJvb2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OYXRpb25hbC1Cb29rSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidMYW5kUm92ZXInOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGFuZFJvdmVyV2ViLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9MYW5kUm92ZXJXZWItQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTGFuZFJvdmVyJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGFuZFJvdmVyV2ViLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTGFuZFJvdmVyV2ViLUxpZ2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOaXNzYW4nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTmlzc2FuQnJhbmRCb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOaXNzYW4nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05pc3NhbkJyYW5kSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOaXNzYW4nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZFJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9OaXNzYW5CcmFuZFJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3Vhcic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0phZ3Vhci1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3Vhcic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXItQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXJNb2Rlcm4nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJNb2Rlcm4tUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidKYWd1YXJNb2Rlcm4nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyTW9kZXJuLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSmFndWFyR290aGFtJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSmFndWFyR290aGFtLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0phZ3VhckdvdGhhbSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9KYWd1YXJHb3RoYW0tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHb3RoYW0nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHb3RoYW0nOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLUxpZ2h0SXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHb3RoYW0nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHb3RoYW0nOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR09USEFNLU1lZGl1bUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HT1RIQU0tTWVkaXVtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidJbmZpbml0aSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0luZmluaXRpQnJhbmQtTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0luZmluaXRpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0luZmluaXRpQnJhbmQtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU2lnbmF0dXJlJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1NpZ25hdHVyZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU2lnbmF0dXJlTGlnaHQnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0tpYVNpZ25hdHVyZUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTaWduYXR1cmVMaWdodCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9LaWFTaWduYXR1cmVCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvS2lhU2lnbmF0dXJlQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVG95b3RhVHlwZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVG95b3RhVHlwZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtUmVndWxhckl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1SZWd1bGFySXQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RveW90YVR5cGUnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUb3lvdGFUeXBlJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RveW90YVR5cGUtQm9sZEl0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVG95b3RhVHlwZS1Cb2xkSXQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1UaGluSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzogdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL092ZXJwYXNzLVNlbWlCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J092ZXJwYXNzJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3ZlcnBhc3MnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOiB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3ZlcnBhc3MtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPdmVycGFzcyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6IHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PdmVycGFzcy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUaXRpbGxpdW1XZWInOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1RpdGlsbGl1bVdlYi1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1RpdGlsbGl1bVdlYic7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvVGl0aWxsaXVtV2ViLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonVGl0aWxsaXVtV2ViJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9UaXRpbGxpdW1XZWItQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUV4dHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LVNlbWlCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1JhbGV3YXknOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1JhbGV3YXktQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1FeHRyYUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUmFsZXdheSc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUmFsZXdheS1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidSYWxld2F5JzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9SYWxld2F5LUJsYWNrSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtVGhpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtRXh0cmFMaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidQb3BwaW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Qb3BwaW5zLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1BvcHBpbnMnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1BvcHBpbnMtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonUG9wcGlucyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvUG9wcGlucy1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J09wZW5TYW5zJzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9PcGVuU2Fucy1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonT3BlblNhbnMnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL09wZW5TYW5zLUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidPcGVuU2Fucyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvT3BlblNhbnMtRXh0cmFCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtVGhpbkl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1FeHRyYUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUV4dHJhTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLU1lZGl1bUl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1TZW1pQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1TZW1pQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93Q29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3dDb25kZW5zZWQtRXh0cmFCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvd0NvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93Q29uZGVuc2VkLUV4dHJhQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3dDb25kZW5zZWQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvd0NvbmRlbnNlZC1CbGFja0l0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVRoaW5JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctRXh0cmFMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1FeHRyYUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUxpZ2h0SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1NZWRpdW1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctU2VtaUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctU2VtaUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Jhcmxvdyc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQmFybG93LUV4dHJhQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCYXJsb3cnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Jhcmxvdy1FeHRyYUJvbGRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQmFybG93JzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9CYXJsb3ctQmxhY2tJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL2J1aWZ1bGJrXy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsYmtpLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0J1aWNrRnV0dXJhTkQnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9idWlmdWxpZy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidCdWlja0Z1dHVyYU5EJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsaXQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVtZGktd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQnVpY2tGdXR1cmFORCc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvYnVpZnVsbWVkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTVfUGxhaW4ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTVpUGxhaW5JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fucyc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fucy0zX0xpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnMnOyBmb250LXdlaWdodDpsaWdodGVyOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnMtM2lMaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTdfQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zLTdpQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTVfUGxhaW4ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC01aVBsYWluSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidHTUdsb2JhbFNhbnNDZCc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0dNR2xvYmFsU2Fuc0NkLTNfTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtM2lMaWdodEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonR01HbG9iYWxTYW5zQ2QnOyBmb250LXdlaWdodDpib2xkOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9HTUdsb2JhbFNhbnNDZC03X0JvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0dNR2xvYmFsU2Fuc0NkJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvR01HbG9iYWxTYW5zQ2QtN2lCb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NdWxpLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J011bGknOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1Cb2xkSXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNdWxpJzsgZm9udC13ZWlnaHQ6bGlnaHRlcjsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTXVsaS1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTXVsaSc7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL011bGktTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1N0cmF0dW1HTUMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzaXplLWFkanVzdDoxMjAlOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL1N0cmF0dW1HTUMtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1UaGluLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLUxpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidTdHJhdHVtR01DJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc2l6ZS1hZGp1c3Q6MTIwJTsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9TdHJhdHVtR01DLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonU3RyYXR1bUdNQyc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNpemUtYWRqdXN0OjEyMCU7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvU3RyYXR1bUdNQy1CbGFjay53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTG91aXMnOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0xvdWlzR2xvYmFsMi1SZWcud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xvdWlzJzsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTG91aXNHbG9iYWwyLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0xvdWlzJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Mb3Vpc0dsb2JhbDItSGVhdnkud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpYyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljV2lkZSc7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQ2FkaWxsYWNHb3RoaWMtV2lkZVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljV2lkZSc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLVdpZGVCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY1dpZGUnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLVdpZGVNZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljTmFycm93JzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1OYXJyb3dSZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidDYWRpbGxhY0dvdGhpY05hcnJvdyc7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0NhZGlsbGFjR290aGljLU5hcnJvd0JvbGQud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0NhZGlsbGFjR290aGljTmFycm93JzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9DYWRpbGxhY0dvdGhpYy1OYXJyb3dNZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01pbmlTZXJpZic7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTUlOSVNlcmlmLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IHNpemUtYWRqdXN0OjEyMCU7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWluaVNlcmlmJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9NSU5JU2VyaWYtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBzaXplLWFkanVzdDoxMjAlOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01pbmlTZXJpZic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL01JTklTZXJpZi1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBzaXplLWFkanVzdDoxMjAlOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01pbmlTZXJpZic7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTUlOSVNlcmlmLUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyBzaXplLWFkanVzdDoxMjAlOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vYmVsJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Ob2JlbExpZ2h0LndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb2JlbCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTm9iZWxSZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb2JlbCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvTm9iZWxCb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb2JlbEJvb2snOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL05vYmVsQm9vay53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLVJlZ3VsYXJJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0Fua28nOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0Fua28tTWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLU1lZGl1bUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1TZW1pQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1TZW1pQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQW5rbyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQW5rby1Cb2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBbmtvJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BbmtvLUJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0V2ZXJldHQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtVGhpbi13ZWIud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1UaGluLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LUxpZ2h0LXdlYi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LWxpZ2h0LXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LVJlZ3VsYXItd2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtUmVndWxhci13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRXZlcmV0dC1NZWRpdW0td2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtTWVkaXVtLXdlYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidFdmVyZXR0JzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9FdmVyZXR0LUJvbGQtd2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHQtQm9sZC13ZWIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRXZlcmV0dE1vbm8nOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHRNb25vLVJlZ3VsYXItd2ViLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0V2ZXJldHRNb25vLVJlZ3VsYXItd2ViLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVRoaW4ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVGhpbi1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjIwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVVsdHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVWx0cmFMaWdodC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVWx0cmFMaWdodC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtVWx0cmFMaWdodC1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1MaWdodC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTGlnaHQtSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVJlZ3VsYXItSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULVJlZ3VsYXItSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtTWVkaXVtLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1NZWRpdW0tSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULU1lZGl1bS1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQm9sZC1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQm9sZC1JdGFsaWMub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUhlYXZ5LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUhlYXZ5Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1IZWF2eS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtSGVhdnktSXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQnOyBmb250LXdlaWdodDo5MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1CbGFjay5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxUJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQmxhY2stSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUJsYWNrLUl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1UaGluLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVRoaW4tT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVGhpbi1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVVsdHJhTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVVsdHJhTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDoyMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtVWx0cmFMaWdodC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1VbHRyYUxpZ2h0LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUxpZ2h0LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUxpZ2h0LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1SZWd1bGFyLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLVJlZ3VsYXItT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1NZWRpdW0tT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtTWVkaXVtLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1Cb2xkLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUJvbGQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1IZWF2eS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtSGVhdnkub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtSGVhdnktT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtSGVhdnktT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQnOyBmb250LXdlaWdodDo4MDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQmxhY2stT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtQmxhY2stT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1FeHRyYUJsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUNvbmRlbnNlZC1FeHRyYUJsYWNrLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtQ29uZGVuc2VkLUV4dHJhQmxhY2stT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1Db25kZW5zZWQtRXh0cmFCbGFjay1PYmxpcXVlLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDoxMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVRoaW4ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjEwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVRoaW4tT2JsaXF1ZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1UaGluLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUxpZ2h0Lm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6aXRhbGljOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZC1MaWdodC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUxpZ2h0LU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtUmVndWxhci1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLVJlZ3VsYXItT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLU1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTWVkaXVtLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtTWVkaXVtLU9ibGlxdWUub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQm9sZC1PYmxpcXVlLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJvbGQtT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtSGVhdnkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtSGVhdnkub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjgwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUhlYXZ5LU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtSGVhdnktT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkJzsgZm9udC13ZWlnaHQ6OTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQmxhY2sub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0hlbHZldGljYU5ldWVMVC1FeHRlbmRlZCc7IGZvbnQtd2VpZ2h0OjkwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSGVsdmV0aWNhTmV1ZUxULUV4dGVuZGVkLUJsYWNrLU9ibGlxdWUud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IZWx2ZXRpY2FOZXVlTFQtRXh0ZW5kZWQtQmxhY2stT2JsaXF1ZS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQWN1cmFCZXNwb2tlJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtTGlnaHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0FjdXJhQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvQWN1cmFCZXNwb2tlLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtUmVndWxhci5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonQWN1cmFCZXNwb2tlJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidBY3VyYUJlc3Bva2VCb29rJzsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9BY3VyYUJlc3Bva2UtQm9vay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0FjdXJhQmVzcG9rZS1Cb29rLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDozMDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDo0MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZvcmRGMSc7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvRm9yZEYxLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1TZW1pYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGb3JkRjEnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NDAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNMaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zTGlnaHRJdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRmVycmFyaVNhbnMnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL0ZlcnJhcmktU2Fuc01lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidGZXJyYXJpU2Fucyc7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRmVycmFyaS1TYW5zTWVkaXVtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNSZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6NTAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNSZWd1bGFySXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0ZlcnJhcmlTYW5zJzsgZm9udC13ZWlnaHQ6ODAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9GZXJyYXJpLVNhbnNCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J01jTGFyZW5CZXNwb2tlJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9NY0xhcmVuQmVzcG9rZV9MdC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidNY0xhcmVuQmVzcG9rZSc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTWNMYXJlbkJlc3Bva2VfUmcud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonTWNMYXJlbkJlc3Bva2UnOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc3R5bGU6bm9ybWFsOyBzcmM6dXJsKCcvL2ZvbnRzLmQyY21lZGlhLmNhL01jTGFyZW5CZXNwb2tlX0JkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6MTAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1UaGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6MzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidOb3RvU2Fucyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTppdGFsaWM7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvTm90b1NhbnMtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J05vdG9TYW5zJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOml0YWxpYzsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9Ob3RvU2Fucy1Cb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0RJTk5leHRMVFBybyc7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRElOTmV4dExUUHJvLUxpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J0RJTk5leHRMVFBybyc7IGZvbnQtd2VpZ2h0OjQwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvRElOTmV4dExUUHJvLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IH0gQGZvbnQtZmFjZSB7IGZvbnQtZGlzcGxheTpzd2FwOyBmb250LWZhbWlseTonRElOTmV4dExUUHJvJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9ESU5OZXh0TFRQcm8tQm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTsgfSBAZm9udC1mYWNlIHsgZm9udC1kaXNwbGF5OnN3YXA7IGZvbnQtZmFtaWx5OidUdW5nc3Rlbic7IGZvbnQtd2VpZ2h0OjMwMDsgZm9udC1zdHlsZTpub3JtYWw7IHNyYzp1cmwoJy8vZm9udHMuZDJjbWVkaWEuY2EvVHVuZ3N0ZW4tTGlnaHQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOyB9IEBmb250LWZhY2UgeyBmb250LWRpc3BsYXk6c3dhcDsgZm9udC1mYW1pbHk6J1R1bmdzdGVuJzsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXN0eWxlOm5vcm1hbDsgc3JjOnVybCgnLy9mb250cy5kMmNtZWRpYS5jYS9UdW5nc3Rlbi1Cb2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgfQovKiogL2Nzcy9iYXNlLmNzcyAqKi8Kc3RhY2stbGMsIC5zdGFjay1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0OyB9IHN0YWNrLWxjID4gKiwgLnN0YWNrLWxjID4gKiB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLWJvdHRvbTowOyB9IHN0YWNrLWxjID4gKiArICosIC5zdGFjay1sYyA+ICogKyAqIHsgbWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7IH0gc3RhY2stbGMuLS1zMCA+ICogKyAqLCAuc3RhY2stbGMuLS1zMCA+ICogKyAqIHsgYm9yZGVyLXdpZHRoOjA7IGJvcmRlci10b3Atd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyBib3JkZXItY29sb3I6aW5oZXJpdDsgfSAuYm94LWxjLCBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6dmFyKC0tc3BhY2UpOyBvdXRsaW5lOnZhcigtLWJvcmRlci10aGluKSB0cmFuc3BhcmVudDsgb3V0bGluZS1vZmZzZXQ6Y2FsYyh2YXIoLS1ib3JkZXItdGhpbikgKiAtMSk7IH0gLmJveC1sYywgYm94LWxjICogeyBjb2xvcjppbmhlcml0OyB9IC5iZy1ib3h7IGNvbG9yOnZhcigtLWJsYWNrKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IGJvcmRlci13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gLmdsYXNzLWJveHsgYm9yZGVyOm5vbmU7IGJhY2tncm91bmQ6bm9uZTsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgY29sb3I6aW5oZXJpdDsgfSAuY3RyLWJveCwgLmZsZXgtYm94LCAuZmxleC1jb2x1bW4sIC5mbGV4LWFyb3VuZCwgLmZsZXgtYmV0d2VlbiwgLmZsZXgtZXZlbmx5LCAuZmxleC1jZW50ZXIsIC5mbGV4LXN0YXJ0LCAuZmxleC1lbmQsIC5mbGV4LWF1dG8sIC5mbGV4LWVxdWFseyBkaXNwbGF5OmZsZXg7IH0gLmlubGluZS1ib3h7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5zaGFkb3ctYm94eyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCB2YXIoLS1taWQtZ3JheSk7IGJvcmRlci1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgfSAuZmxleC1ib3g6bm90KDppcyguZmxleC1iZXR3ZWVuLC5mbGV4LWV2ZW5seSwuZmxleC1hcm91bmQpKSA+ICogKyAqeyBtYXJnaW4tbGVmdDp2YXIoLS1zKTsgfSAuZ3JvdXAtbGMsIGdyb3VwLWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyB9IC5ncm91cC1sYyA+ICosIGdyb3VwLWxjID4gKiB7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIgKiAtMSk7IH0gLmdyb3VwLWxjID4gKiA+ICosIGdyb3VwLWxjID4gKiA+ICogeyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgeyBvdmVyZmxvdzpoaWRkZW47IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpID4gKiB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMiAqIC0xKTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqID4gKiB7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyBmbGV4LWdyb3c6MTsgfSA6aXMoLnNpZGViYXItbGMsc2lkZWJhci1sYykgPiAqID4gOmZpcnN0LWNoaWxkIHsgZmxleC1iYXNpczowOyBmbGV4LWdyb3c6OTk5OyBtaW4td2lkdGg6Y2FsYyh2YXIoLS1zaWRlYmFyLWJwLCA1MCUpIC0gdmFyKC0tc3BhY2UpKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IG1hcmdpbjpjYWxjKCh2YXIoLS1zcGFjZSkgLyAyKSAqIC0xKTsgfSA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiAqIHsgZmxleC1ncm93OjE7IGZsZXgtYmFzaXM6Y2FsYygodmFyKC0tc3dpdGNoLWJwLCAzMHJlbSkgLSAoMTAwJSAtIHZhcigtLXNwYWNlKSkpICogOTk5KTsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IH0gOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gOm50aC1sYXN0LWNoaWxkKG4rNSksIDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+IDpudGgtbGFzdC1jaGlsZChuKzUpIH4gKiB7IGZsZXgtYmFzaXM6MTAwJTsgfSAuLS1zMHstLXNwYWNlOnZhcigtLXMwKTt9IC4tLXMtOXstLXNwYWNlOnZhcigtLXMtOSk7fSAuLS1zLTh7LS1zcGFjZTp2YXIoLS1zLTgpO30gLi0tcy03ey0tc3BhY2U6dmFyKC0tcy03KTt9IC4tLXMtNnstLXNwYWNlOnZhcigtLXMtNik7fSAuLS1zLTV7LS1zcGFjZTp2YXIoLS1zLTUpO30gLi0tcy00ey0tc3BhY2U6dmFyKC0tcy00KTt9IC4tLXMtM3stLXNwYWNlOnZhcigtLXMtMyk7fSAuLS1zLTJ7LS1zcGFjZTp2YXIoLS1zLTIpO30gLi0tcy0xey0tc3BhY2U6dmFyKC0tcy0xKTt9IC4tLXN7LS1zcGFjZTp2YXIoLS1zKTt9IC4tLXMxey0tc3BhY2U6dmFyKC0tczEpO30gLi0tczJ7LS1zcGFjZTp2YXIoLS1zMik7fSAuLS1zM3stLXNwYWNlOnZhcigtLXMzKTt9IC4tLXM0ey0tc3BhY2U6dmFyKC0tczQpO30gLi0tczV7LS1zcGFjZTp2YXIoLS1zNSk7fSAuLS1zNnstLXNwYWNlOnZhcigtLXM2KTt9IC4tLXM3ey0tc3BhY2U6dmFyKC0tczcpO30gLi0tczh7LS1zcGFjZTp2YXIoLS1zOCk7fSAuLS1zOXstLXNwYWNlOnZhcigtLXM5KTt9IC4tLWZzLTl7Zm9udC1zaXplOnZhcigtLWZzLTkpOy0tZnM6dmFyKC0tZnMtOSk7fSAuLS1mcy04e2ZvbnQtc2l6ZTp2YXIoLS1mcy04KTstLWZzOnZhcigtLWZzLTgpO30gLi0tZnMtN3tmb250LXNpemU6dmFyKC0tZnMtNyk7LS1mczp2YXIoLS1mcy03KTt9IC4tLWZzLTZ7Zm9udC1zaXplOnZhcigtLWZzLTYpOy0tZnM6dmFyKC0tZnMtNik7fSAuLS1mcy01e2ZvbnQtc2l6ZTp2YXIoLS1mcy01KTstLWZzOnZhcigtLWZzLTUpO30gLi0tZnMtNHtmb250LXNpemU6dmFyKC0tZnMtNCk7LS1mczp2YXIoLS1mcy00KTt9IC4tLWZzLTN7Zm9udC1zaXplOnZhcigtLWZzLTMpOy0tZnM6dmFyKC0tZnMtMyk7fSAuLS1mcy0ye2ZvbnQtc2l6ZTp2YXIoLS1mcy0yKTstLWZzOnZhcigtLWZzLTIpO30gLi0tZnMtMXtmb250LXNpemU6dmFyKC0tZnMtMSk7LS1mczp2YXIoLS1mcy0xKTt9IC4tLWZzMHtmb250LXNpemU6dmFyKC0tZnMwKTstLWZzOnZhcigtLWZzMCk7fSAuLS1mczF7Zm9udC1zaXplOnZhcigtLWZzMSk7LS1mczp2YXIoLS1mczEpO30gLi0tZnMye2ZvbnQtc2l6ZTp2YXIoLS1mczIpOy0tZnM6dmFyKC0tZnMyKTt9IC4tLWZzM3tmb250LXNpemU6dmFyKC0tZnMzKTstLWZzOnZhcigtLWZzMyk7fSAuLS1mczR7Zm9udC1zaXplOnZhcigtLWZzNCk7LS1mczp2YXIoLS1mczQpO30gLi0tZnM1e2ZvbnQtc2l6ZTp2YXIoLS1mczUpOy0tZnM6dmFyKC0tZnM1KTt9IC4tLWZzNntmb250LXNpemU6dmFyKC0tZnM2KTstLWZzOnZhcigtLWZzNik7fSAuLS1mczd7Zm9udC1zaXplOnZhcigtLWZzNyk7LS1mczp2YXIoLS1mczcpO30gLi0tZnM4e2ZvbnQtc2l6ZTp2YXIoLS1mczgpOy0tZnM6dmFyKC0tZnM4KTt9IC4tLWZzOXtmb250LXNpemU6dmFyKC0tZnM5KTstLWZzOnZhcigtLWZzOSk7fSAuc2hyaW5rLWdyb3d7ZmxleDoxIDE7fSAuZmxleC13cmFwIHtmbGV4LXdyYXA6d3JhcDt9IC5mbGV4LXJldmVyc2Uge2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30gLmZsZXgtYXV0byA+ICp7ZmxleDoxIDEgYXV0bzt9IC5mbGV4LWVxdWFsID4gKntmbGV4OjEgMTt9IC5hbGlnbi1jZW50ZXIge2FsaWduLWl0ZW1zOmNlbnRlcjt9IC5hbGlnbi1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O30gLmFsaWduLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZDt9IC5hbGlnbi1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZTt9IC5mbGV4LWNvbHVtbiB7ZmxleC1mbG93OmNvbHVtbjt9IC5mbGV4LXJvdyB7ZmxleC1mbG93OnJvdzt9IC5mbGV4LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO30gLmZsZXgtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjt9IC5mbGV4LWV2ZW5seXtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5O30gLmZsZXgtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7fSAuZmxleC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDt9IC5mbGV4LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7fSAuLXAwIHtwYWRkaW5nOjA7fSAuLXB0MCB7cGFkZGluZy10b3A6MDt9IC4tcGIwIHtwYWRkaW5nLWJvdHRvbTowO30gLi1wdjAge3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MH0gLi1waDAge3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0gLi1wIHtwYWRkaW5nOnZhcigtLXNwYWNlKTt9IC4tcHZ7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLXBoe3BhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UpO30gLi1wdHtwYWRkaW5nLXRvcDp2YXIoLS1zcGFjZSk7fSAuLXBie3BhZGRpbmctYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tbTAge21hcmdpbjowO30gLi1tdDAge21hcmdpbi10b3A6MDt9IC4tbWIwIHttYXJnaW4tYm90dG9tOjA7fSAuLW12MCB7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0gLi1taDAge21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9IC4tbSB7bWFyZ2luOnZhcigtLXNwYWNlKTt9IC4tbXZ7bWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7IG1hcmdpbi1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1taHttYXJnaW4tbGVmdDp2YXIoLS1zcGFjZSk7IG1hcmdpbi1yaWdodDp2YXIoLS1zcGFjZSk7fSAuLW10e21hcmdpbi10b3A6dmFyKC0tc3BhY2UpO30gLi1tYnttYXJnaW4tYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tYjAge2JvcmRlcjpub25lO30gLi1iMiB7Ym9yZGVyLXdpZHRoOjJweDt9IC4tYntib3JkZXItd2lkdGg6MXB4O30gLi1idHtib3JkZXItdG9wLXdpZHRoOjFweDt9IC4tYmJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7fSAuLWJ2e2JvcmRlci10b3Atd2lkdGg6MXB4O2JvcmRlci1ib3R0b20td2lkdGg6MXB4O30gLi1iaHtib3JkZXItbGVmdC13aWR0aDoxcHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDt9IC4tdy1mdWxsIHt3aWR0aDoxMDB2dzt9IC4tdy0xMDAge3dpZHRoOjEwMCU7fSAuLXctNTAge3dpZHRoOjUwJTt9IC4tdy0zMyB7d2lkdGg6MzMuMzMlO30gLi13LTI1IHt3aWR0aDoyNSU7fSAuLXctNTB3IHt3aWR0aDo1MHZ3O30gLi1mcy14eHN7Zm9udC1zaXplOjAuMTVyZW07IC0tZnM6MC4xNXJlbTt9IC4tZnMteHN7Zm9udC1zaXplOjAuNXJlbTsgLS1mczowLjVyZW07fSAuLWZzLXN7Zm9udC1zaXplOjAuNzVyZW07IC0tZnM6MC43NXJlbTt9IC4tZnMtc3J7Zm9udC1zaXplOjAuOXJlbTsgLS1mczowLjlyZW07fSAuLWZzLWxye2ZvbnQtc2l6ZToxLjFyZW07IC0tZnM6MS4xcmVtO30gLi1mcy1se2ZvbnQtc2l6ZToxLjI1cmVtOyAtLWZzOjEuMjVyZW07fSAuLWZzLXhse2ZvbnQtc2l6ZToxLjVyZW07IC0tZnM6MS41cmVtO30gLi1mcy14eGx7Zm9udC1zaXplOjJyZW07IC0tZnM6MnJlbTt9IC4tZnMteHh4bHtmb250LXNpemU6Mi4yNXJlbTsgLS1mczoyLjI1cmVtO30gLi1mdzEge2ZvbnQtd2VpZ2h0OjEwMDt9IC4tZncyIHtmb250LXdlaWdodDoyMDA7fSAuLWZ3MyB7Zm9udC13ZWlnaHQ6MzAwO30gLi1mdzQge2ZvbnQtd2VpZ2h0OjQwMDt9IC4tZnc1IHtmb250LXdlaWdodDo1MDA7fSAuLWZ3NiB7Zm9udC13ZWlnaHQ6NjAwO30gLi1mdzcge2ZvbnQtd2VpZ2h0OjcwMDt9IC4tZnc4IHtmb250LXdlaWdodDo4MDA7fSAuLWZ3OSB7Zm9udC13ZWlnaHQ6OTAwO30gLi1ib2xkIHtmb250LXdlaWdodDpib2xkO30gLnR4dC1yZWQge2NvbG9yOiNjYzAwMDA7fSAudHh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcjt9IC50eHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodDt9IC50eHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQ7fSAudHh0LXVwcGVye3RleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpKTt9IC50eHQtbm90ZXtmb250LXN0eWxlOml0YWxpYzt9IC50eHQtcGF5bWVudCB7Y29sb3I6dmFyKC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlKSAhaW1wb3J0YW50O30gLi1wb3NyZWx7cG9zaXRpb246cmVsYXRpdmU7fSAuY2VydC10eHQtdHJhbnNmb3Jte3RleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgbm9uZSk7fSBbaGlkZGVuXSwgLmhpZGRlbiB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IC5za2VsZXRvbi1zbGlkZXIgPiAqeyBkaXNwbGF5Om5vbmU7IH0gLnNrZWxldG9uLXR4dHsgdGV4dC1pbmRlbnQ6MTAwJTsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgfSAuc2tlbGV0b24tYnRueyB3aWR0aDptaW4oMjByZW0sMTAwJSk7IGhlaWdodDoyLjVyZW07IGJvcmRlci1yYWRpdXM6MC41cmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgbWFyZ2luOmF1dG87IH0gLnNrZWxldG9uLWJsb2NreyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IH0gLnNrZWxldG9uLXNsaWRlciwgLnNrZWxldG9uLXR4dCwgLnNrZWxldG9uLWJ0biwgLnNrZWxldG9uLWJsb2NrIHsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgZGlzcGxheTpibG9jazsgfSAuc2tlbGV0b24tc2xpZGVyOjphZnRlciwgLnNrZWxldG9uLXR4dDo6YWZ0ZXIsIC5za2VsZXRvbi1idG46OmFmdGVyLCAuc2tlbGV0b24tYmxvY2s6OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBib3R0b206MDsgbGVmdDowOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7IGJhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAyMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSA2MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpOyBhbmltYXRpb246c2hpbW1lciAycyBpbmZpbml0ZTsgfSAuc2tlbGV0b24tc2xpZGVyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgNTEyIDUxMiclM0UlM0NwYXRoIGQ9J000NjQgNDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4ek0xMTIgMTIwYy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2IDU2LTI1LjA3MiA1Ni01Ni0yNS4wNzItNTYtNTYtNTZ6TTY0IDM4NGgzODRWMjcybC04Ny41MTUtODcuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMjA4IDMyMGwtNTUuNTE1LTU1LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDY0IDMzNnY0OHonIGZpbGw9JyUyM2VlZScvJTNFJTNDL3N2ZyUzRSIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7IG9wYWNpdHk6MC45OyB9IEBrZXlmcmFtZXMgc2hpbW1lciB7IDEwMCUge3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO30gfSBAc3VwcG9ydHMgKC13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lKSB7IC5za2VsZXRvbi1zbGlkZXI6OmFmdGVyLCAuc2tlbGV0b24tdHh0OjphZnRlcnsgYW5pbWF0aW9uOm5vbmU7IH0gfSAuY29udGVudC1za2VsZXRvbiB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyLXJhZGl1czowLjVyZW07IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IG1heC13aWR0aDo0MDBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmNvbnRlbnQtc2tlbGV0b24ucmVjdGFuZ2xlIHsgYXNwZWN0LXJhdGlvOnZhcigtLXJhdGlvLCAxNi85KTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0IHsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MXJlbTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0OjpiZWZvcmUsIC5jb250ZW50LXNrZWxldG9uLnRleHQ6OmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjFyZW07IGJhY2tncm91bmQ6I2RkZDsgbWFyZ2luLWJvdHRvbTowLjVyZW07IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgfSAuY29udGVudC1za2VsZXRvbi50ZXh0OjphZnRlciB7IHdpZHRoOjcwJTsgfSAuY29udGVudC1za2VsZXRvbi5hY3RpdmUgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywgI2Y5ZjlmOSAyNSUsICNkZWRlZGUgNTAlLCAjZjlmOWY5IDc1JSk7IGJhY2tncm91bmQtc2l6ZToyMDAlIDEwMCU7IGFuaW1hdGlvbjpzaGltbWVyIDJzIGluZmluaXRlIGxpbmVhcjsgfSBAa2V5ZnJhbWVzIHNoaW1tZXIgeyAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246MjAwJSAwOyB9IDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDAlIDA7IH0gfSAuY29udGVudC1za2VsZXRvbi5kZWJ1Zzo6YWZ0ZXIgeyBjb250ZW50OmF0dHIoZGF0YS1ibG9jaykgIiB8ICIgYXR0cihkYXRhLXNvdXJjZSkgIiB8ICIgYXR0cihkYXRhLWdlbmVyYXRlZC1hdCk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NHB4OyBsZWZ0OjRweDsgcmlnaHQ6NHB4OyBmb250LXNpemU6MC43cmVtOyBmb250LWZhbWlseTptb25vc3BhY2UsIHNhbnMtc2VyaWY7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpOyBwYWRkaW5nOjJweCA0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyB6LWluZGV4OjEwOyBwb2ludGVyLWV2ZW50czpub25lOyB9IGJvZHkgeyB3aWR0aDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbTsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0LW1vYik7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgfSB1bCB7IGxpc3Qtc3R5bGU6bm9uZTsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGxpc3Qtc3R5bGUtcG9zaXRpb246aW5pdGlhbDsgbGlzdC1zdHlsZS1pbWFnZTppbml0aWFsOyB9IC5yZXNwb25zaXZlLWVkaXRvciB1bCB7IGxpc3Qtc3R5bGU6aW5oZXJpdDsgbGlzdC1zdHlsZS10eXBlOmluaGVyaXQ7IGxpc3Qtc3R5bGUtcG9zaXRpb246aW5oZXJpdDsgbGlzdC1zdHlsZS1pbWFnZTppbmhlcml0OyB9IHN2Zywgc3ZnLmljb257IC0taWNvbi1zaXplOmNhbGModmFyKC0tZnMsIHZhcigtLWZzMCkpIC8gdmFyKC0tcmF0aW8pKTsgZmlsbDp2YXIoLS10eHQtY29sb3IsIHZhcigtLWJsYWNrKSk7IHdpZHRoOnZhcigtLWljb24tc2l6ZSk7IGhlaWdodDp2YXIoLS1pY29uLXNpemUpOyB9IHN2Zy5hdXRob3JpemVkLWJsYWNre2ZpbGw6IzI4MjgyOCFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC1ibGFjay1raWF7ZmlsbDojMDUxNDFGIWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLXJlZHtmaWxsOiNGRjAwMDAhaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtd2hpdGV7ZmlsbDojRkZGRkZGIWltcG9ydGFudDt9IC5hdXRob3JpemVkLXJlZC13aGl0ZS1wbGF5LWJ0bntiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gc3ZnLm9nY29sb3ItZmFjZWJvb2t7ZmlsbDojNDI2N0IyIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXR3aXR0ZXJ7ZmlsbDojMURBMUYyIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXgtdHdpdHRlcntmaWxsOiMxNDE3MUEhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteC10d2l0dGVyLXdoaXRle2ZpbGw6I0ZGRkZGRiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci1saW5rZWRpbntmaWxsOiMwMDc3QjUhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItYmxvZ2dlcntmaWxsOiNGRjU3MjIhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItcGludGVyZXN0e2ZpbGw6I0U2MDAyMyFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci15b3V0dWJle2ZpbGw6I0ZGMDAwMCFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSBzdmcub2djb2xvci1pbnN0YWdyYW17ZmlsbDojODMzQUI0IWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXRpa3Rva3tmaWxsOiNmZjAwNTAhaW1wb3J0YW50O30gLmZhY2Vib29rLW9naWNvbi10d2Vha3N7aGVpZ2h0OjI0cHghaW1wb3J0YW50O21hcmdpbi10b3A6MnB4IWltcG9ydGFudDt9ICNmb290ZXIgLmZhY2Vib29rLW9naWNvbi10d2Vha3N7aGVpZ2h0OjIzcHghaW1wb3J0YW50O21hcmdpbi10b3A6MHB4IWltcG9ydGFudDt9IC5pbnN0YWdyYW0tb2dpY29uLXR3ZWFrc3toZWlnaHQ6MjhweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDowcHghaW1wb3J0YW50O30gI2Zvb3RlciAuaW5zdGFncmFtLW9naWNvbi10d2Vha3N7aGVpZ2h0OjI5cHghaW1wb3J0YW50O21hcmdpbi10b3A6LTRweCFpbXBvcnRhbnQ7fSBzdmcuY3VzdG9tbWVkaWEtY29sb3JwaWNrZXJ7ZmlsbDp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMjgyODI4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1ibGFjay1raWF7YmFja2dyb3VuZC1jb2xvcjojMDUxNDFGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC1yZWR7YmFja2dyb3VuZC1jb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctYXV0aG9yaXplZC13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWZhY2Vib29re2JhY2tncm91bmQtY29sb3I6IzNhNTk5OCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItdHdpdHRlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjZWQhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXgtdHdpdHRlcntiYWNrZ3JvdW5kLWNvbG9yOiMxNDE3MUEhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXgtdHdpdHRlci13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWxpbmtlZGlue2JhY2tncm91bmQtY29sb3I6IzAwNzdCNSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItYmxvZ2dlcntiYWNrZ3JvdW5kLWNvbG9yOiNGRjU3MjIhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXBpbnRlcmVzdHtiYWNrZ3JvdW5kLWNvbG9yOiNFNjAwMjMhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXlvdXR1YmV7YmFja2dyb3VuZC1jb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1pbnN0YWdyYW17YmFja2dyb3VuZC1jb2xvcjojZjIzOTk1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci10aWt0b2t7YmFja2dyb3VuZC1jb2xvcjojZmYwMDUwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctY3VzdG9tbWVkaWEtY29sb3JwaWNrZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC1ibGFja3tjb2xvcjojMjgyODI4IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLWJsYWNrLWtpYXtjb2xvcjojMDUxNDFGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLXJlZHtjb2xvcjojRkYwMDAwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1hdXRob3JpemVkLXdoaXRle2NvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItZmFjZWJvb2t7Y29sb3I6IzNhNTk5OCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci10d2l0dGVye2NvbG9yOiMwMGFjZWQhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteC10d2l0dGVye2NvbG9yOiMxNDE3MUEhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteC10d2l0dGVyLXdoaXRle2NvbG9yOiNGRkZGRkYhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItbGlua2VkaW57Y29sb3I6IzAwNzdCNSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1ibG9nZ2Vye2NvbG9yOiNGRjU3MjIhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItcGludGVyZXN0e2NvbG9yOiNFNjAwMjMhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3IteW91dHViZXtjb2xvcjojRkYwMDAwIWltcG9ydGFudDsgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWluc3RhZ3JhbXtjb2xvcjojZjIzOTk1IWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXRpa3Rva3tjb2xvcjojZmYwMDUwIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1jdXN0b21tZWRpYS1jb2xvcnBpY2tlcntjb2xvcjp2YXIoLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0KSFpbXBvcnRhbnQ7fSAubm90ZS1ib3h7IGRpc3BsYXk6YmxvY2s7IGJvcmRlci1yYWRpdXM6MC4yNXJlbTsgfSAubm90ZS1zdWNjZXNzeyBjb2xvcjojMTU1NzI0OyBiYWNrZ3JvdW5kLWNvbG9yOiNkNGVkZGE7IGJvcmRlci1jb2xvcjojMTU1NzI0OyBib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IC5ub3RlLWVycm9yeyBjb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDA7IGJvcmRlci1jb2xvcjojZmYwMDAwOyBib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IHVsLmNoZWNrbGlzdCBsaTpiZWZvcmV7IGNvbnRlbnQ6IiI7IGJvcmRlci1sZWZ0OjAuMnJlbSBzb2xpZDsgYm9yZGVyLWJvdHRvbTowLjJyZW0gc29saWQ7IHdpZHRoOjAuN3JlbTsgaGVpZ2h0OjAuNHJlbTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjFyZW07IH0gdWwuY2hlY2tsaXN0IGxpeyBtYXJnaW4tdG9wOnZhcigtLXNwYWNlKTsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC4tYmctd2hpdGV7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmF5KTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctZGFyay1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWRhcmstZ3JheSk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWJsYWNrLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stZ3JheSk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWJsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrKTsgY29sb3I6dmFyKC0td2hpdGUpOyB9IC4tYmctbGlnaHR7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQpOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLi1iZy1saWdodC1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gLi1iZy1ub25le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7fSAuLXJvdW5keyBib3JkZXItcmFkaXVzOjAuM3JlbTsgfSAucHVzaC1kb3dueyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgfSAucHJpY2UtbWFpbnsgY29sb3I6I2ZmMDAwMDsgfSAucHJpY2Utc3RyaWtleyBjb2xvcjojOTk5OyB0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoOyB9IC5mb3JtYXQtcHJpY2V7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXgtd2lkdGg6Zml0LWNvbnRlbnQ7IG1hcmdpbi1yaWdodDowLjdyZW07IGxpbmUtaGVpZ2h0OjFlbTsgd2hpdGUtc3BhY2U6bm93cmFwOyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSAuZm9ybWF0LXByaWNleyBtYXJnaW4tbGVmdDowLjZyZW07IG1hcmdpbi1yaWdodDp1bnNldDsgfSAuZm9ybWF0LXByaWNlOmFmdGVyeyBjb250ZW50OiIkIjsgZm9udC1zaXplOm1heCgwLjVyZW0sMC42ZW0pOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOnZhcigtLWZvcm1hdC1waWNlLXNpZ24tcG9zaXRpb24sMCk7IHJpZ2h0Oi0wLjZlbTsgbGluZS1oZWlnaHQ6aW5oZXJpdDsgfSAuZmluYWwtcHJpY2UgLmZvcm1hdC1wcmljZTphZnRlcnsgbWFyZ2luLXRvcDotNXB4OyB9IC5maW5hbC1wcmljZSAuZm9ybWF0LXByaWNleyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZy1yaWdodDoycHg7IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IGxlZnQ6LTAuN2VtOyByaWdodDp1bnNldDsgfSAucHJpY2UtZW46YmVmb3JleyBjb250ZW50OiIkIjsgfSA6aXMoLnByaWNlLWVuKTpiZWZvcmV7IGZvbnQtc2l6ZTowLjZlbTsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMC41ZW07IH0gLnByaWNlLWZyOmFmdGVyeyBjb250ZW50OiIgJCI7IH0gOmlzKC5wcmljZS1mcik6YWZ0ZXJ7IGZvbnQtc2l6ZTowLjZlbTsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMC41ZW07IH0gLnNjcmF0Y2gtb3ZlciwgLnNjcmF0Y2gtbGVhc2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zY3JhdGNoLW92ZXI6YmVmb3JlLCAuc2NyYXRjaC1sZWFzZTpiZWZvcmV7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgY29udGVudDoiICI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDUlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgd2lkdGg6OTAlOyB9IC5FTkdMSVNIIDppcyguc2NyYXRjaC1sZWFzZSwuc2NyYXRjaC1vdmVyKTpoYXMoLmZvcm1hdC1wcmljZSk6YmVmb3JleyBtYXJnaW4tbGVmdDowLjVyZW07IH0gLmJsdXItb3ZlciwgLmJsdXItbGVhc2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjpibHVyKDAuMTVlbSk7IH0gLm91dC12aWV3eyBwb3NpdGlvbjpmaXhlZDsgdG9wOi0yMHB4OyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApOyB6LWluZGV4OjA7IH0gLnRvcC1maXhlZCB7IHBvc2l0aW9uOmZpeGVkOyB0b3A6My4ycmVtOyBsZWZ0OjA7IHotaW5kZXg6MTAwOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1zKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20tY29sb3I6IzAwMDsgYm94LXNpemluZzpib3JkZXItYm94OyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkID4gLnByb21vQlROIHsgbWFyZ2luOjA7IHdpZHRoOjkwdnc7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmZpeGVkLXdyYXBwZXIudG9wLWZpeGVkIC5jdGEtbGFiZWx7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYWluLWNvbG9yc3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IH0gLnByb21vLWNvbG9yc3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS1wcm9tby10ZXh0LWNvbG9yKTsgfSAuYnRueyAtLWJ0bi1iZy1jb2w6dmFyKC0tdGFiLWNvbG9yKTsgLS1idG4tdHh0LWNvbDp2YXIoLS10YWItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnRuLWJnLWNvbCk7IGNvbG9yOnZhcigtLWJ0bi10eHQtY29sKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1idG4tYnJkLWNvbCwgdmFyKC0tYnRuLXR4dC1jb2wpKTsgcGFkZGluZzowLjVyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kYXJrLWdyZXksIC5jYkRhcmtHcmV5eyAtLWJ0bi1iZy1jb2w6IzMzMzsgLS1idG4tdHh0LWNvbDojZmZmOyB9IFtyb2xlPSJidXR0b24iXXsgY3Vyc29yOnBvaW50ZXI7IH0gLmJ0bi1wcm9tb3sgLS10eHQtY29sb3I6dmFyKC0tcHJvbW8tdGV4dC1jb2xvciwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgY29sb3I6dmFyKC0tdHh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1wcm9tby10ZXh0LWNvbG9yKTsgcG9zaXRpb246cmVsYXRpdmU7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm9yZGVyOm5vbmU7IH0gLmJ0bi1jdGE6YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1zdHlsZTpub3JtYWw7IHRleHQtZGVjb3JhdGlvbjppbmhlcml0OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MXJlbTsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLW1haW57IC0tYnRuLWJnLWNvbDp2YXIoLS10YWItY29sb3IpOyAtLWJ0bi10eHQtY29sOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgLS1idG4tYnJkLWNvbDp2YXIoLS10YWItdGV4dC1jb2xvciwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAuYnRuLW1haW4yLCAuYnRuLW1haW46aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWJsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbG9yOiNmZmY7IC0tdHh0LWNvbG9yOiNmZmY7IH0gLmJ0bi1saWdodHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNhYWE7IGNvbG9yOiM4ODg7IH0gLmJ0bi1zdWNjZXNzeyAtLWJ0bi1iZy1jb2w6IzRjYWY1MDsgLS1idG4tdHh0LWNvbDojZmZmOyB9IC5idG4td2FybmluZ3sgLS1idG4tYmctY29sOiNmZjk4MDA7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSAuYm50LWRpc2FibGVkLCAuYnRuW2Rpc2FibGVkXSB7IGNvbG9yOnZhcigtLWdyYXkpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdyYXkpOyB9IC5idG4tZW1haWwtbWUsIC5idG4tdGV4dC1tZXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmJ0bi1lbWFpbC1tZTpiZWZvcmV7IGNvbnRlbnQ6IlxmMGUwIjsgZm9udC13ZWlnaHQ6OTAwOyB9IC5idG4tdGV4dC1tZTpiZWZvcmV7IGNvbnRlbnQ6IlxmM2NkIjsgZm9udC1zaXplOngtbGFyZ2U7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLWVtYWlsLW1lOmJlZm9yZSwgLmJ0bi10ZXh0LW1lOmJlZm9yZXsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7IG1hcmdpbi1yaWdodDo1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTFweDsgfSBidXR0b24ucm91bmQtYnV0dG9ueyBhbGw6aW5oZXJpdDsgYm9yZGVyLXJhZGl1czo1MCU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBmaWxsOnZhcigtLXRhYi1jb2xvcik7IHBhZGRpbmc6MC4zcmVtOyBjdXJzb3I6cG9pbnRlcjsgfSBidXR0b24uaWNvbi1idXR0b257IGNvbG9yOnZhcigtLXByb21vLWJ0bi1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOm5vbmU7IHBhZGRpbmc6MC41cmVtOyB3aWR0aDphdXRvOyB9IC54LWNsb3NleyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyB2aWV3Qm94PScwIDAgMTAgMTAnJTNFJTNDc3R5bGUlM0UudmVydCU3QmZpbGw6JTIzMDAwOyU3RCUzQy9zdHlsZSUzRSUzQ3JlY3QgY2xhc3M9J3ZlcnQnIGhlaWdodD0nOCcgd2lkdGg9JzInIHk9JzEnIHg9JzQnJTNFJTNDL3JlY3QlM0UlM0NyZWN0IGhlaWdodD0nMicgd2lkdGg9JzgnIHk9JzQnIHg9JzEnJTNFJTNDL3JlY3QlM0UlM0Mvc3ZnJTNFIik7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJvcmRlcjpub25lOyB3aWR0aDoxLjVyZW07IGhlaWdodDoxLjVyZW07IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOyBjdXJzb3I6cG9pbnRlcjsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IHRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IGxlZnQ6MDsgcG9pbnRlci1ldmVudHM6bm9uZTsgYmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2IoMCwgMCwgMCkgMTAlLCB0cmFuc3BhcmVudCAxMC4wMSUpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246NTAlOyB0cmFuc2Zvcm06c2NhbGUoMTAsMTApOyBvcGFjaXR5OjA7IHRyYW5zaXRpb246dHJhbnNmb3JtIC41cywgb3BhY2l0eSAxczsgfSA6bm90KC5jb21wbGV0ZWQpLnJpcHBsZTphY3RpdmU6YWZ0ZXIgeyB0cmFuc2Zvcm06c2NhbGUoMCwwKTsgb3BhY2l0eTouMjsgdHJhbnNpdGlvbjowczsgfSAubG9nb2FyZWEgeyBtaW4taGVpZ2h0OjdyZW07IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWU7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC1oZWFkZXItYmctY29sb3IpOyB9IGEgPiA6d2hlcmUoOmlzKHN2ZywgLmZhLCAuZmFzKTpmaXJzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpKXsgbWFyZ2luLXJpZ2h0OjAuNnJlbTsgfSAucHJvbW9Ub3BCdG4gOmlzKGEsYnV0dG9uKSB7IC0tZnM6dmFyKC0tZnMxKTsgLS10eHQtY29sb3I6dmFyKC0tdG9wLXByb21vLWJ0bi10eHQsIHZhcigtLXRvcC1wcm9tby1idG4tdHh0LWNvbG9yKSk7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojZjNmM2YzOyBoZWlnaHQ6My4ycmVtOyBmb250LXNpemU6dmFyKC0tZnMxKTsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQ6dmFyKC0tdG9wLXByb21vLWJ0bi1iZywgdmFyKC0tdG9wLXByb21vLWJ0bi1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS10b3AtcHJvbW8tYnRuLXR4dCwgdmFyKC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3IpKTsgfSAucHJvbW9Ub3BCdG4uZGVhbGVyTGluZUJ1dHRvbiA6aXMoYSxidXR0b24peyAtLXR4dC1jb2xvcjp2YXIoLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcik7IGJhY2tncm91bmQ6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyB3aWR0aDoxMDAlOyB9IDppcygucHJvbW9Ub3BCdG4sbGFiZWwpLmZsb2F0aW5neyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEuNXJlbTsgcmlnaHQ6MS41cmVtOyB6LWluZGV4OjEwOyB9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZy53aXRoVG9hc3RlciB7Ym90dG9tOjZyZW07fSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcgOmlzKGEsYnV0dG9uKXsgLS1mczp2YXIoLS1mczUpOyBwYWRkaW5nOjFyZW07IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXItd2lkdGg6MXB4OyBoZWlnaHQ6dW5zZXQ7IH0gLnByb21vVG9wQnRuLmZsb2F0aW5nIDppcyhhLGJ1dHRvbikgc3BhbiB7ZGlzcGxheTpub25lO30gLmljb24taGVhZGluZyBzcGFuLmZheyBmb250LXNpemU6aW5oZXJpdDsgd2lkdGg6MWVtOyBwYWRkaW5nOjAuMmVtOyBoZWlnaHQ6MWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYmxhY2spOyBjb2xvcjp2YXIoLS13aGl0ZSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2spOyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5pY29uLWhlYWRpbmcgLnNlY29uZGFyeVRleHR7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjc1ZW07IH0gLmdyb3VwVGFicyA+ICp7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6Y2FsYygxLjJyZW0gKyAoMjAgLSAxOCkgKiAoKDEwMHZ3IC0gMzIwcHgpIC8gKDExMDAgLSAzMDApKSk7IH0gLmdyb3VwVGFicyA+ICo6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgfSAuZ3JvdXBUYWJzIC50YWItbGFiZWwsIC5uZXdDYXJTbGlkZXIgLmNhcm91c2VsVGl0bGV7IGNvbG9yOnZhcigtLW5ldy12ZWhpY2xlLWNhcm91c2VsLXR4dC1jb2xvciwgdmFyKC0tZGVmYXVsdC1ibGFjaykpOyB9IC5ncm91cFRhYnMgLmFjdGl2ZVRhYiAudGFiLWxhYmVseyBjb2xvcjp2YXIoLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3IsIHZhcigtLWRlZmF1bHQtYmxhY2spKTsgYm9yZGVyLWJvdHRvbTozcHggc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IzAwMDsgYm9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS10YWItY29sb3IpOyB9IC5jYXJTbGlkZXJ7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAuY2FyU2xpZGVyID4gKnsgd2lkdGg6bWluKDkwcmVtLDEwMCUpOyB9IC5jYXJTbGlkZXIuLWJnLWxpZ2h0LWdyYXkgPiAqeyBtYXgtd2lkdGg6bWluKDc1cmVtLDEwMCUpOyB9IC5uZXdDYXJDYXJkeyBoZWlnaHQ6MTAwJTsgbWluLWhlaWdodDoyN3JlbTsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgfSAubmV3Q2FyQ2FyZCBpbWd7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6LTFyZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jYXJQYXltZW50V3JhcHBlcnsgd2lkdGg6bWluKDEwMCUsMjVyZW0pOyBtaW4taGVpZ2h0OjVyZW07IH0gLmNhclBheW1lbnRXcmFwcGVyIC5wYXltZW50QmxvY2t7IGhlaWdodDoxMDAlOyB9IC5wYXltZW50c0Rpc2FibGVkIC5uZXdDYXJDYXJkeyBtaW4taGVpZ2h0OjIycmVtOyB9IC52ZWhpY2xlQ2Fyb3VzZWwgLm5ld0NhckNhcmR7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyB3aWR0aDoyMy43cmVtOyBib3JkZXI6MXB4IHNvbGlkICNiYmI7IG1hcmdpbjowIDAuNHJlbTsgaGVpZ2h0OjEwMCUgfSAubmV3Q2FyQ2FyZCAucHJvbW8tYmFkZ2V7IGhlaWdodDpmaXQtY29udGVudDsgbWluLXdpZHRoOjZyZW07IH0gLm5ld0NhckNhcmQ6aG92ZXJ7IGJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHZhcigtLW1pZC1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgfSAubmV3Q2FyQ2FyZDpob3ZlciAuaW5TdG9ja0xpbmsgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLm5ld0NhckNhcmQgLmNhcmQtYm9keXsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMnJlbTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5uZXdDYXJDYXJkID4gLmJveC1sY3sgbWFyZ2luLXRvcDowOyBwYWRkaW5nLXRvcDowOyBwYWRkaW5nLWJvdHRvbTowOyB9IC5uZXdDYXJDYXJkID4gLmJveC1sYzpmaXJzdC1jaGlsZHsgcGFkZGluZy10b3A6MC41cmVtOyBtYXgtaGVpZ2h0OjEwcmVtOyB9IC5uZXdDYXJDYXJkIC5kZXNrdG9wUGF5bWVudHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm5ld0NhckNhcmQgc3Bhbi5wYXltZW50Q2FsY0J0bi5kZXNrdG9weyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6NyU7IGZvbnQtc2l6ZToxLjdlbTsgY3Vyc29yOnBvaW50ZXI7IH0gLnVzZWRDYXJTbGlkZXsgZGlzcGxheTpibG9jazsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGhlaWdodDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVzZWRDYXJTbGlkZSAqeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnVzZWRDYXJTbGlkZSAuc2xpZGVDb250ZW50eyBoZWlnaHQ6MTAwJSB9IC5hbmltYXRlZC10cmlhbmdsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyIHsgY29udGVudDoiXGYwNzEiOyB9IC5hbmltYXRlZC10cmlhbmdsZSBpeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiBzdmcsIC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXIgeyBhbmltYXRpb246cmlwcGxlLTEgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi1kZWxheTowLjVzOyBhbmltYXRpb246cmlwcGxlLTIgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7IGFuaW1hdGlvbi1kZWxheTowLjc1czsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlcnsgdG9wOjA7IGxlZnQ6MDsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgPiBzdmd7IHRvcDoxcHg7IGxlZnQ6LTFyZW07IH0gQGtleWZyYW1lcyByaXBwbGUtMSB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyBvcGFjaXR5OjE7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxLjcpOyBvcGFjaXR5OjA7IH0gfSBAa2V5ZnJhbWVzIHJpcHBsZS0yIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IG9wYWNpdHk6MTsgfSAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKDIpOyBvcGFjaXR5OjA7IH0gfSBzcGFuLmFzdGVyaXg6YWZ0ZXJ7IGNvbnRlbnQ6IioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjJyZW07IH0gZGl2LnByaWNlTm90ZS5hc3Rlcml4OmJlZm9yZXsgY29udGVudDoiKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MXJlbTsgfSBmb290ZXIgeyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtbW96LWJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtLXR4dC1jb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZm9vdGVyLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyB9IGEudmlzaXRDb250YWN0QnV0dG9ueyAtLXR4dC1jb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWJnLWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyB9IC5jRm9vdGVyQ2FyTGlua3MgbGkuY0l0ZW1FeHBlbmR7IGRpc3BsYXk6bm9uZTsgfSAuY0Zvb3RlckNhckxpbmtzIGgzLCAuZm9vdGVyX2FkZHJlc3MgLmFkciA+IHNwYW57IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmNGb290ZXJDYXJMaW5rcyBzcGFuLmgzLWFsdCB7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmNGb290ZXJDYXJMaW5rcy5jTGlzdEV4cGVuZGVkIGxpLmNJdGVtRXhwZW5keyBkaXNwbGF5OmJsb2NrOyB9IC5jRXhwZW5kTGlzdCBidXR0b257IHBhZGRpbmc6dmFyKC0tcykgMDsgYmFja2dyb3VuZDpub25lOyB9IC5jb25kaXRpb25zRm9vdGVyIHsgY29sb3I6dmFyKC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3IsICM5MTkxOTEpOyAtLXR4dC1jb2xvcjp2YXIoLS1mb290ZXItY29uZGl0aW9ucy1jb2xvcik7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24geyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEwcHg7IG1hcmdpbjo1cHggNXB4IDE1cHggMTVweDsgei1pbmRleDo0OyB3aWR0aDoxNDBweCAhaW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlYTAwMjk7IHRleHQtYWxpZ246bGVmdDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10cmFkZWluYmFyLWJ0bi1iZyk7IGNvbG9yOiB2YXIoLS10cmFkZWluYmFyLWJ0bi1jb2xvcik7IGFsaWduLWl0ZW1zOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci13aWR0aDoxcHggM3B4IDRweCAxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBwYWRkaW5nLXRvcDoxMHB4OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIGl7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGJvcmRlci1yYWRpdXM6MTAwJTsgd2lkdGg6MmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGJvcmRlcjoycHggc29saWQgI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBoZWlnaHQ6MS41ZW07IGNvbG9yOiMwMDA7IGZsb2F0OmxlZnQ7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24ud2l0aFRvYXN0ZXIgeyBib3R0b206NXJlbTsgfSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjE7IGJvcmRlcjoxcHggc29saWQgZ3JleTsgcGFkZGluZzoyMHB4IDQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5idG4udHJhZGVJbkJhclBvcHVwU3VibWl0eyBwYWRkaW5nOjAuNzVyZW0gMC4zNzVyZW07IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMDAwOyBmb250LXdlaWdodDpib2xkOyBib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgaW5wdXR7IG1hcmdpbjo1cHggMCAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVd7IGhlaWdodDo1ODBweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrLXRleHQpOyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgaW5wdXR7IHBhZGRpbmc6MTFweCAxMHB4OyBmb250LXNpemU6MC45MzhyZW0gOyB3aWR0aDoyNTBweDsgbWFyZ2luOjVweCAwIDA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOSFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGluU2VsZWN0UG9wdXB7IGNvbG9yOiMzYzM4MzY7IGZvbnQtc2l6ZToxcmVtOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIDUwJTsgYXBwZWFyYW5jZTpub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOjpwbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IG9wYWNpdHk6MTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9IC50cmFkaW5TZWxlY3QsIC50cmFkaW5TZWxlY3RQb3B1cCB7IGNvbG9yOiMzYzM4MzY7IGZvbnQtc2l6ZToxcmVtOyBtYXJnaW46NXB4IDAgMDsgYXBwZWFyYW5jZTpub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IH0gLnRyYWRpblNlbGVjdEEgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudHJhZGluU2VsZWN0QTphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9IC5lbWFpbEJvZHksIC5lbWFpbFN1YmplY3R7IGRpc3BsYXk6bm9uZTsgfSAucmV2ZWFsLW1vZGFsOm5vdCgjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcikgKjpub3QoLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIDppcyhpbnB1dCwgc2VsZWN0KSl7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAucmV2ZWFsLW1vZGFsOm5vdCgjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcikgOmlzKGlucHV0W3R5cGU9InRleHQiXTpub3QoLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGlucHV0KSxpbnB1dFt0eXBlPSJlbWFpbCJdLGlucHV0W3R5cGU9InRlbCJdLHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCwgc2VsZWN0LnN0ZXAyNHNlbGVjdCkpeyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXJhZGl1czowLjNyZW07IHdpZHRoOjEwMCU7IGJvcmRlci1jb2xvcjojYTlhOWE5OyB9IFtkYXRhLXBhZ2U9IkhPTUVQQUdFIl17IGJhY2tncm91bmQtY29sb3I6dmFyKC0taG9tZS1iZy1jb2xvciwgI0ZGRkZGRik7IH0gLnl0LWJnLWNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYmFubmVyLWJnLWNvbnRhaW5lcnsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7IGJhY2tncm91bmQtYmxlbmQtbW9kZTpjb2xvcjsgfSAjeW91dHViZV9fY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZy1ib3R0b206bWluKGNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0LDEwcmVtKSksNjd2dyk7IGJhY2tncm91bmQtY29sb3I6Izg4ODsgfSAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTQ1JTsgbGVmdDotMTAlOyBoZWlnaHQ6MTkwJTsgd2lkdGg6MTIwJTsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAjeW91dHViZV9fY29udGFpbmVyOmlzKC5mdWxsSGVpZ2h0LC52aXNpYmxlSGVpZ2h0KXsgcGFkZGluZy1ib3R0b206Y2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQsMTByZW0pKTsgfSA6aXMoLmZ1bGxIZWlnaHQsLnZpc2libGVIZWlnaHQpICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgaGVpZ2h0OjEwMCU7IHRvcDowOyB9ICN5b3V0dWJlX19jb250YWluZXIuZnVsbFdpZHRoeyBwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7IH0gI21vYmlsZVNsaWRlciAjeW91dHViZV9fY29udGFpbmVyeyBwYWRkaW5nLWJvdHRvbTptYXgoNjd2dywyNHJlbSk7IH0gI21vYmlsZVNsaWRlciAjeW91dHViZV9fY29udGFpbmVyICNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXJ7IGhlaWdodDptYXgoNjd2dywyNHJlbSk7IG1pbi1oZWlnaHQ6MThyZW07IHotaW5kZXg6MTsgfSAuZnVsbFdpZHRoICNob21lcGFnZV95b3V0dWJlX3BsYXllcnsgaGVpZ2h0OjEyMCU7IHRvcDotMTAlOyB9IC55dC12aWRlb3sgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyB9IC55dC1wbGF5eyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzYgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczpDQyBCWSA0LjAsIEZvbnRzOlNJTCBPRkwgMS4xLCBDb2RlOk1JVCBMaWNlbnNlKSAtLT48cGF0aCBkPSJNNTQ5LjY1NSAxMjQuMDgzYy02LjI4MS0yMy42NS0yNC43ODctNDIuMjc2LTQ4LjI4NC00OC41OTdDNDU4Ljc4MSA2NCAyODggNjQgMjg4IDY0UzExNy4yMiA2NCA3NC42MjkgNzUuNDg2Yy0yMy40OTcgNi4zMjItNDIuMDAzIDI0Ljk0Ny00OC4yODQgNDguNTk3LTExLjQxMiA0Mi44NjctMTEuNDEyIDEzMi4zMDUtMTEuNDEyIDEzMi4zMDVzMCA4OS40MzggMTEuNDEyIDEzMi4zMDVjNi4yODEgMjMuNjUgMjQuNzg3IDQxLjUgNDguMjg0IDQ3LjgyMUMxMTcuMjIgNDQ4IDI4OCA0NDggMjg4IDQ0OHMxNzAuNzggMCAyMTMuMzcxLTExLjQ4NmMyMy40OTctNi4zMjEgNDIuMDAzLTI0LjE3MSA0OC4yODQtNDcuODIxIDExLjQxMi00Mi44NjcgMTEuNDEyLTEzMi4zMDUgMTEuNDEyLTEzMi4zMDVzMC04OS40MzgtMTEuNDEyLTEzMi4zMDV6bS0zMTcuNTEgMjEzLjUwOFYxNzUuMTg1bDE0Mi43MzkgODEuMjA1LTE0Mi43MzkgODEuMjAxeiIgZmlsbD0iJTIzYzMzYzJkIiAvJTNFJTNDL3N2ZyUzRScpOyB3aWR0aDo1cmVtOyBoZWlnaHQ6NXJlbTsgYmFja2dyb3VuZC1zaXplOmNvbnRhaW47IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgb3BhY2l0eTowLjc7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIHsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDpjYWxjKDEwMHZ3IC8gKDE2IC8gOSkpOyBvdmVyZmxvdzpoaWRkZW47IG1heC13aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IH0gLm1vYmlsZV9idXNpbmVzc0Rlc2MgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtYmctY29sb3JfbW9iLCB2YXIoLS1mb290ZXItYmctY29sb3IpKTsgY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iLCB2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpKTsgfSAuYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKSk7IH0gLmJ1c2luZXNzRGVzYyAqIHsgbGluZS1oZWlnaHQ6MS41cmVtOyB9IC53cmFwcGVyIHsgbWFyZ2luOjAgYXV0bzsgd2lkdGg6OTYwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5sYW5ndWFnZUJhciB7IG1hcmdpbjoxcmVtIGF1dG8gNXB4OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowIHZhcigtLXMpOyB9IC52LWNhcmQudG9wX2JnIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1pbi1oZWlnaHQ6OHJlbTsgcGFkZGluZzowIHZhcigtLXMpOyB9IC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6ZmxleDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBhbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAjdHJhZGVJbkJhck1vYmlsZXsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6IHdoaXRlOyBib3JkZXItcmFkaXVzOjVweDsgZGlzcGxheTpibG9jazsgbWFyZ2luOjNweCA1cHggNXB4IDVweDsgfSAjdHJhZGVJbkJhck1vYmlsZSAubWlkZGxleyBjb2xvcjojZmZmZmZmOyB9ICN0cmFkZUluQmFyTW9iaWxlICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IHBhZGRpbmc6NXB4IDIwcHggMHB4IDIwcHg7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyIGRpdnsgbWF4LXdpZHRoOjMzMHB4OyBtYXJnaW46MTBweCBhdXRvOyBwYWRkaW5nOjEycHggMDsgYm9yZGVyLXJhZGl1czoycHg7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLWJnLWNvbG9yKTsgfSAjdHJhZGVJbkJhck1vYmlsZSAuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXIgYXsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IGZvbnQtd2VpZ2h0OjcwMDsgfSAjdHJhZGVJbkJhck1vYmlsZSAjZGVmYXVsdFRvcEJhbm5lckxvZ28gc3BhbnsgZm9udC1zaXplOjAuOHJlbTsgZm9udC13ZWlnaHQ6MzAwOyBjb2xvcjp2YXIoLS1taWQtZ3JheSk7IH0gI3RyYWRlSW5CYXJ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdHJhZGVpbmJhci1iZyk7IGNvbG9yOiB2YXIoLS10cmFkZWluYmFyLWNvbG9yKTsgfSAjdHJhZGVJbkJhcldNb2JpbGUsICN0cmFkZUluQmFyVyB7IGRpc3BsYXk6ZmxleDsgbWluLWhlaWdodDo1MHB4OyBtYXJnaW46YXV0bzsgd2lkdGg6bWluKDEwMCUsMTM1MHB4KTsgcG9zaXRpb246cmVsYXRpdmU7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtID4gYXsgcGFkZGluZzo0cHggMTJweDsgaGVpZ2h0OjE4cHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGJvcmRlci1yYWRpdXM6MDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3ItYmcsIHZhcigtLWxhbmd1YWdlLWJ0bi1hY3RpdmUtYmctY29sb3IpKTsgY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvciwgd2hpdGUgKTsgfSAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gYTpob3ZlciB7IGJvcmRlci1jb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnLCB2YXIoLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yKSk7IH0gI2FsZXJ0TXNnQ29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyB6LWluZGV4Ojk5OTsgd2lkdGg6MTAwJTsgY29sb3I6d2hpdGU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC1hbGVydC1iYXItdGV4dC1jb2xvcik7IGZvbnQtd2VpZ2h0OjYwMDsgfSAjYWxlcnRNc2dDb250YWluZXIuc3RpY2stdG9weyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyB6LWluZGV4Ojk5OTk5OyB9IEBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KSB7IC5hbGVydC1oaWRlLW9uLW1vYmlsZSB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IH0gLmZhLWZpeC1jZW50ZXI6YmVmb3JlIHsgd2lkdGg6MS41ZW07IGhlaWdodDoxLjVlbTsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBkaXNwbGF5OmZsZXg7IH0gI3lvdXR1YmVfX2NvbnRhaW5lci5mdWxsc2NyZWVueyBvYmplY3QtZml0OmNvdmVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbGVmdDowOyByaWdodDowOyB0b3A6MDsgb3BhY2l0eTowLjg7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcywgYm9yZGVyIC4zczsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgYm90dG9tOjA7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIud2l0aC1hbGVydCB7IHRvcDo0MHB4OyB9IC5wYXltZW50QmxvY2tDb250YWluZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNlcnQtY29uY3JldGUtZ3JheSwgdmFyKC0tbGlnaHQtZ3JheSkpOyBjb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyB9IC52ZWhpY2xlTG9jYXRpb257IGJvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5saW5lU2VwYXJhdG9yeyBib3JkZXItdG9wOjFweCBzb2xpZCAjQTlBOUE5OyBtYXJnaW4tdG9wOjQwcHg7IG1hcmdpbi1ib3R0b206NDBweDsgfSAucmV2ZWFsLW1vZGFsIHNwYW4uZmEtaGFuZC1wb2ludGVyLWNvbG9yIHsgY29sb3I6I2ZmZmZmZjsgbWFyZ2luLXJpZ2h0OjVweDsgbWFyZ2luLXRvcDo1cHg7IH0gLmNvbmZsaWN0LXJlc29sdmUtb3B0aW9ucyB7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0KLyoqIC9jc3MvZm9udGF3ZXNvbWUtYWxsLm1pbi5jc3MgKiovCi5mYSwuZmFzLC5mYXIsLmZhbCwuZmFkLC5mYWJ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LXJlbmRlcmluZzphdXRvO2xpbmUtaGVpZ2h0OjF9LmZhLWxne2ZvbnQtc2l6ZToxLjMzMzMzZW07bGluZS1oZWlnaHQ6Ljc1ZW07dmVydGljYWwtYWxpZ246LS4wNjY3ZW19LmZhLXhze2ZvbnQtc2l6ZTouNzVlbX0uZmEtc217Zm9udC1zaXplOi44NzVlbX0uZmEtMXh7Zm9udC1zaXplOjFlbX0uZmEtMnh7Zm9udC1zaXplOjJlbX0uZmEtM3h7Zm9udC1zaXplOjNlbX0uZmEtNHh7Zm9udC1zaXplOjRlbX0uZmEtNXh7Zm9udC1zaXplOjVlbX0uZmEtNnh7Zm9udC1zaXplOjZlbX0uZmEtN3h7Zm9udC1zaXplOjdlbX0uZmEtOHh7Zm9udC1zaXplOjhlbX0uZmEtOXh7Zm9udC1zaXplOjllbX0uZmEtMTB4e2ZvbnQtc2l6ZToxMGVtfS5mYS1md3t0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxLjI1ZW19LmZhLXVse2xpc3Qtc3R5bGUtdHlwZTpub25lO21hcmdpbi1sZWZ0OjIuNWVtO3BhZGRpbmctbGVmdDowfS5mYS11bCA+IGxpe3Bvc2l0aW9uOnJlbGF0aXZlfS5mYS1saXtsZWZ0Oi0yZW07cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MmVtO2xpbmUtaGVpZ2h0OmluaGVyaXR9LmZhLWJvcmRlcntib3JkZXI6c29saWQgLjA4ZW0gI2VlZTtib3JkZXItcmFkaXVzOi4xZW07cGFkZGluZzouMmVtIC4yNWVtIC4xNWVtfS5mYS1wdWxsLWxlZnR7ZmxvYXQ6bGVmdH0uZmEtcHVsbC1yaWdodHtmbG9hdDpyaWdodH0uZmEuZmEtcHVsbC1sZWZ0LC5mYXMuZmEtcHVsbC1sZWZ0LC5mYXIuZmEtcHVsbC1sZWZ0LC5mYWwuZmEtcHVsbC1sZWZ0LC5mYWIuZmEtcHVsbC1sZWZ0e21hcmdpbi1yaWdodDouM2VtfS5mYS5mYS1wdWxsLXJpZ2h0LC5mYXMuZmEtcHVsbC1yaWdodCwuZmFyLmZhLXB1bGwtcmlnaHQsLmZhbC5mYS1wdWxsLXJpZ2h0LC5mYWIuZmEtcHVsbC1yaWdodHttYXJnaW4tbGVmdDouM2VtfS5mYS1zcGluey13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO2FuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcn0uZmEtcHVsc2V7LXdlYmtpdC1hbmltYXRpb246ZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTthbmltYXRpb246ZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KX1ALXdlYmtpdC1rZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBmYS1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0uZmEtcm90YXRlLTkwey1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MSk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uZmEtcm90YXRlLTE4MHstbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uZmEtcm90YXRlLTI3MHstbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTMpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0uZmEtZmxpcC1ob3Jpem9udGFsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTAsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgtMSwxKTt0cmFuc2Zvcm06c2NhbGUoLTEsMSl9LmZhLWZsaXAtdmVydGljYWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MixtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEsLTEpO3RyYW5zZm9ybTpzY2FsZSgxLC0xKX0uZmEtZmxpcC1ib3RoLC5mYS1mbGlwLWhvcml6b250YWwuZmEtZmxpcC12ZXJ0aWNhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsLTEpO3RyYW5zZm9ybTpzY2FsZSgtMSwtMSl9OnJvb3QgLmZhLXJvdGF0ZS05MCw6cm9vdCAuZmEtcm90YXRlLTE4MCw6cm9vdCAuZmEtcm90YXRlLTI3MCw6cm9vdCAuZmEtZmxpcC1ob3Jpem9udGFsLDpyb290IC5mYS1mbGlwLXZlcnRpY2FsLDpyb290IC5mYS1mbGlwLWJvdGh7LXdlYmtpdC1maWx0ZXI6bm9uZTtmaWx0ZXI6bm9uZX0uZmEtc3RhY2t7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjJlbTtsaW5lLWhlaWdodDoyZW07cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjIuNWVtfS5mYS1zdGFjay0xeCwuZmEtc3RhY2stMnh7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9LmZhLXN0YWNrLTF4e2xpbmUtaGVpZ2h0OmluaGVyaXR9LmZhLXN0YWNrLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLWludmVyc2V7Y29sb3I6I2ZmZn0uZmEtNTAwcHg6YmVmb3Jle2NvbnRlbnQ6IlxmMjZlIn0uZmEtYWNjZXNzaWJsZS1pY29uOmJlZm9yZXtjb250ZW50OiJcZjM2OCJ9LmZhLWFkZHJlc3MtYm9vazpiZWZvcmV7Y29udGVudDoiXGYyYjkifS5mYS1hZGRyZXNzLWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmJiIn0uZmEtYWlyLWZyZXNoZW5lcjpiZWZvcmV7Y29udGVudDoiXGY1ZDAifS5mYS1hbGFybS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYzNGUifS5mYS1hbWJ1bGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGY5In0uZmEtYW5kcm9pZDpiZWZvcmV7Y29udGVudDoiXGYxN2IifS5mYS1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDMifS5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDAifS5mYS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAxIn0uZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwMiJ9LmZhLWFuZ2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTA3In0uZmEtYW5nbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDQifS5mYS1hbmdsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDUifS5mYS1hbmdsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDYifS5mYS1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxNzkifS5mYS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjE4NyJ9LmZhLWFycm93LWFsdC1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTgifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU5In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNWEifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjM1YiJ9LmZhLWFycm93LWFsdC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1NCJ9LmZhLWFycm93LWFsdC1mcm9tLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzNDYifS5mYS1hcnJvdy1hbHQtZnJvbS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM0NyJ9LmZhLWFycm93LWFsdC1mcm9tLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0OCJ9LmZhLWFycm93LWFsdC1mcm9tLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDkifS5mYS1hcnJvdy1hbHQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTUifS5mYS1hcnJvdy1hbHQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU2In0uZmEtYXJyb3ctYWx0LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1MCJ9LmZhLWFycm93LWFsdC1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTEifS5mYS1hcnJvdy1hbHQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1MiJ9LmZhLWFycm93LWFsdC1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzUzIn0uZmEtYXJyb3ctYWx0LXRvLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzNGEifS5mYS1hcnJvdy1hbHQtdG8tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNGIifS5mYS1hcnJvdy1hbHQtdG8tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzRjIn0uZmEtYXJyb3ctYWx0LXRvLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNGQifS5mYS1hcnJvdy1hbHQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzU3In0uZmEtYXJyb3ctY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGFiIn0uZmEtYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE4In0uZmEtYXJyb3ctY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhOSJ9LmZhLWFycm93LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYwYWEifS5mYS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA2MyJ9LmZhLWFycm93LWZyb20tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjM0MiJ9LmZhLWFycm93LWZyb20tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNDMifS5mYS1hcnJvdy1mcm9tLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0NCJ9LmZhLWFycm93LWZyb20tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0NSJ9LmZhLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYwIn0uZmEtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDYxIn0uZmEtYXJyb3ctc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzM5In0uZmEtYXJyb3ctc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNhIn0uZmEtYXJyb3ctc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMzYiJ9LmZhLWFycm93LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYzM2MifS5mYS1hcnJvdy10by1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzNkIn0uZmEtYXJyb3ctdG8tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzM2UifS5mYS1hcnJvdy10by1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDAifS5mYS1hcnJvdy10by10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQxIn0uZmEtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDYyIn0uZmEtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZjA0NyJ9LmZhLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGIyIn0uZmEtYXJyb3dzLWFsdC1oOmJlZm9yZXtjb250ZW50OiJcZjMzNyJ9LmZhLWFycm93cy1hbHQtdjpiZWZvcmV7Y29udGVudDoiXGYzMzgifS5mYS1hcnJvd3MtaDpiZWZvcmV7Y29udGVudDoiXGYwN2UifS5mYS1hcnJvd3MtdjpiZWZvcmV7Y29udGVudDoiXGYwN2QifS5mYS1hc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXM6YmVmb3Jle2NvbnRlbnQ6IlxmMmEyIn0uZmEtYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWZhIn0uZmEtYXVkaW8tZGVzY3JpcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMjllIn0uZmEtYXdhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTU5In0uZmEtYmFkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMzM1In0uZmEtYmFkZ2UtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzM2In0uZmEtYmFuOmJlZm9yZXtjb250ZW50OiJcZjA1ZSJ9LmZhLWJhcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDJhIn0uZmEtYmFyY29kZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDYzIn0uZmEtYmFyczpiZWZvcmV7Y29udGVudDoiXGYwYzkifS5mYS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMjQwIn0uZmEtYmF0dGVyeS1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjI0MiJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtYmVsbC1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGY4NDgifS5mYS1iZWxsLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmODQ5In0uZmEtYmVsbC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjYifS5mYS1ibG9nOmJlZm9yZXtjb250ZW50OiJcZjc4MSJ9LmZhLWJsb2dnZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdjIn0uZmEtYmxvZ2dlci1iOmJlZm9yZXtjb250ZW50OiJcZjM3ZCJ9LmZhLWJsdWV0b290aDpiZWZvcmV7Y29udGVudDoiXGYyOTMifS5mYS1ibHVldG9vdGgtYjpiZWZvcmV7Y29udGVudDoiXGYyOTQifS5mYS1ib2x0OmJlZm9yZXtjb250ZW50OiJcZjBlNyJ9LmZhLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjAyZSJ9LmZhLWJveC1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjQ5ZSJ9LmZhLWJyb2FkY2FzdC10b3dlcjpiZWZvcmV7Y29udGVudDoiXGY1MTkifS5mYS1idGM6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0uZmEtYnVnOmJlZm9yZXtjb250ZW50OiJcZjE4OCJ9LmZhLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9LmZhLWJ1bGxob3JuOmJlZm9yZXtjb250ZW50OiJcZjBhMSJ9LmZhLWJ1bGxzZXllOmJlZm9yZXtjb250ZW50OiJcZjE0MCJ9LmZhLWJ1czpiZWZvcmV7Y29udGVudDoiXGYyMDcifS5mYS1idXMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjU1ZSJ9LmZhLWJ1cy1zY2hvb2w6YmVmb3Jle2NvbnRlbnQ6IlxmNWRkIn0uZmEtY2FsY3VsYXRvcjpiZWZvcmV7Y29udGVudDoiXGYxZWMifS5mYS1jYWxjdWxhdG9yLWFsdDpiZWZvcmV7Y29udGVudDoiXGY2NGMifS5mYS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYxMzMifS5mYS1jYWxlbmRhci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDczIn0uZmEtY2FsZW5kYXItY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjc0In0uZmEtY2FsZW5kYXItZWRpdDpiZWZvcmV7Y29udGVudDoiXGYzMzMifS5mYS1jYWxlbmRhci1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzMzQifS5mYS1jYWxlbmRhci1taW51czpiZWZvcmV7Y29udGVudDoiXGYyNzIifS5mYS1jYWxlbmRhci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyNzMifS5mYS1jYW1lcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMDMwIn0uZmEtY2FtZXJhLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMzIifS5mYS1jYW1lcmEtaG9tZTpiZWZvcmV7Y29udGVudDoiXGY4ZmUifS5mYS1jYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWI5In0uZmEtY2FyLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1ZGUifS5mYS1jYXItYmF0dGVyeTpiZWZvcmV7Y29udGVudDoiXGY1ZGYifS5mYS1jYXItYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmODU5In0uZmEtY2FyLWJ1bXA6YmVmb3Jle2NvbnRlbnQ6IlxmNWUwIn0uZmEtY2FyLWJ1czpiZWZvcmV7Y29udGVudDoiXGY4NWEifS5mYS1jYXItY3Jhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWUxIn0uZmEtY2FyLWdhcmFnZTpiZWZvcmV7Y29udGVudDoiXGY1ZTIifS5mYS1jYXItbWVjaGFuaWM6YmVmb3Jle2NvbnRlbnQ6IlxmNWUzIn0uZmEtY2FyLXNpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmNWU0In0uZmEtY2FyLXRpbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWU1In0uZmEtY2FyLXdhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWU2In0uZmEtY2FyYXZhbjpiZWZvcmV7Y29udGVudDoiXGY4ZmYifS5mYS1jYXJhdmFuLWFsdDpiZWZvcmV7Y29udGVudDoiXGUwMDAifS5mYS1jYXJldC1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMmQifS5mYS1jYXJldC1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMmUifS5mYS1jYXJldC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMwIn0uZmEtY2FyZXQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMzMSJ9LmZhLWNhcmV0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGQ3In0uZmEtY2FyZXQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwZDkifS5mYS1jYXJldC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwZGEifS5mYS1jYXJldC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNTAifS5mYS1jYXJldC1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxOTEifS5mYS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0uZmEtY2FyZXQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1MSJ9LmZhLWNhcmV0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkOCJ9LmZhLWNhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmODViIn0uZmEtY2FydC1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjIxOCJ9LmZhLWNhcnQtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMTcifS5mYS1jYy1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0uZmEtY2VydGlmaWNhdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGEzIn0uZmEtY2hhaXI6YmVmb3Jle2NvbnRlbnQ6IlxmNmMwIn0uZmEtY2hhbGtib2FyZDpiZWZvcmV7Y29udGVudDoiXGY1MWIifS5mYS1jaGFyZ2luZy1zdGF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjVlNyJ9LmZhLWNoYXJ0LWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAxIn0uZmEtY2hhcnQtbGluZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjY0ZCJ9LmZhLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjAwYyJ9LmZhLWNoZWNrLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTgifS5mYS1jaGVjay1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTYwIn0uZmEtY2hlY2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YSJ9LmZhLWNoZXZyb24tY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTNhIn0uZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMzcifS5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMzgifS5mYS1jaGV2cm9uLWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMzkifS5mYS1jaGV2cm9uLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyMiJ9LmZhLWNoZXZyb24tZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzIzIn0uZmEtY2hldnJvbi1kb3VibGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzI0In0uZmEtY2hldnJvbi1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzI1In0uZmEtY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA3OCJ9LmZhLWNoZXZyb24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNTMifS5mYS1jaGV2cm9uLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA1NCJ9LmZhLWNoZXZyb24tc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzI5In0uZmEtY2hldnJvbi1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzMmEifS5mYS1jaGV2cm9uLXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzMmIifS5mYS1jaGV2cm9uLXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMmMifS5mYS1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZjA3NyJ9LmZhLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxMTEifS5mYS1jaXJjbGUtbm90Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWNlIn0uZmEtY2l0eTpiZWZvcmV7Y29udGVudDoiXGY2NGYifS5mYS1jbGlwYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzI4In0uZmEtY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDE3In0uZmEtY2xvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRkIn0uZmEtY2xvc2VkLWNhcHRpb25pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMjBhIn0uZmEtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGMyIn0uZmEtY2xvdWQtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGVkIn0uZmEtY2xvdWQtZG93bmxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MSJ9LmZhLWNsb3VkLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwZWUifS5mYS1jbG91ZC11cGxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MiJ9LmZhLWNsdWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzI3In0uZmEtY29mZmVlOmJlZm9yZXtjb250ZW50OiJcZjBmNCJ9LmZhLWNvZzpiZWZvcmV7Y29udGVudDoiXGYwMTMifS5mYS1jb2dzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc1In0uZmEtY29tbWVudC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjdhIn0uZmEtY29tbWVudC1hbHQtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmNGEyIn0uZmEtY29tbWVudC1hbHQtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MCJ9LmZhLWNvbW1lbnQtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MSJ9LmZhLWNvbW1lbnRzOmJlZm9yZXtjb250ZW50OiJcZjA4NiJ9LmZhLWNvbW1lbnRzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0YjYifS5mYS1jb21tZW50cy1hbHQtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MiJ9LmZhLWNvbW1lbnRzLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTMifS5mYS1jb21wcmVzcy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDIyIn0uZmEtY29tcHJlc3MtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY3OGMifS5mYS1jb3B5OmJlZm9yZXtjb250ZW50OiJcZjBjNSJ9LmZhLWNvcHlyaWdodDpiZWZvcmV7Y29udGVudDoiXGYxZjkifS5mYS1jb3VjaDpiZWZvcmV7Y29udGVudDoiXGY0YjgifS5mYS1jcmVhdGl2ZS1jb21tb25zLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjRmMiJ9LmZhLWNyZWRpdC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjA5ZCJ9LmZhLWN1dDpiZWZvcmV7Y29udGVudDoiXGYwYzQifS5mYS1kYXRhYmFzZTpiZWZvcmV7Y29udGVudDoiXGYxYzAifS5mYS1kZXNrdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9LmZhLWRpYW1vbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE5In0uZmEtZGlnaXRhbC10YWNob2dyYXBoOmJlZm9yZXtjb250ZW50OiJcZjU2NiJ9LmZhLWRvbGxhci1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9LmZhLWRvdC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTkyIn0uZmEtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE5In0uZmEtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYwNDQifS5mYS1lbGxpcHNpcy1oOmJlZm9yZXtjb250ZW50OiJcZjE0MSJ9LmZhLWVsbGlwc2lzLWgtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM5YiJ9LmZhLWVsbGlwc2lzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMTQyIn0uZmEtZWxsaXBzaXMtdi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzljIn0uZmEtZW5naW5lLXdhcm5pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNWYyIn0uZmEtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGUwIn0uZmEtZW52ZWxvcGUtb3BlbjpiZWZvcmV7Y29udGVudDoiXGYyYjYifS5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk5In0uZmEtZXJhc2VyOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9LmZhLWV4Y2hhbmdlOmJlZm9yZXtjb250ZW50OiJcZjBlYyJ9LmZhLWV4Y2hhbmdlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjIifS5mYS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMmEifS5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZhIn0uZmEtZXhjbGFtYXRpb24tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjMyMSJ9LmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OiJcZjA3MSJ9LmZhLWV4cGFuZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDI0In0uZmEtZXhwYW5kLWFycm93czpiZWZvcmV7Y29udGVudDoiXGYzMWQifS5mYS1leHBhbmQtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMWUifS5mYS1leHRlcm5hbC1saW5rOmJlZm9yZXtjb250ZW50OiJcZjA4ZSJ9LmZhLWV4dGVybmFsLWxpbmstYWx0OmJlZm9yZXtjb250ZW50OiJcZjM1ZCJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YyJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjAifS5mYS1leWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZlIn0uZmEtZXllLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjA3MCJ9LmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA5YSJ9LmZhLWZhY2Vib29rLWY6YmVmb3Jle2NvbnRlbnQ6IlxmMzllIn0uZmEtZmFjZWJvb2stbWVzc2VuZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM5ZiJ9LmZhLWZhY2Vib29rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODIifS5mYS1mYXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0uZmEtZmlsZTpiZWZvcmV7Y29udGVudDoiXGYxNWIifS5mYS1maWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxNWMifS5mYS1maWxlLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWM2In0uZmEtZmlsZS1hdWRpbzpiZWZvcmV7Y29udGVudDoiXGYxYzcifS5mYS1maWxlLWNoYXJ0LWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmNjU5In0uZmEtZmlsZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYzMTYifS5mYS1maWxlLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWM5In0uZmEtZmlsZS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGY1NmQifS5mYS1maWxlLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFjIn0uZmEtZmlsZS1leGNlbDpiZWZvcmV7Y29udGVudDoiXGYxYzMifS5mYS1maWxlLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjMxYSJ9LmZhLWZpbGUtZXhwb3J0OmJlZm9yZXtjb250ZW50OiJcZjU2ZSJ9LmZhLWZpbGUtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWM1In0uZmEtZmlsZS1pbXBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZmIn0uZmEtZmlsZS1pbnZvaWNlLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY1NzEifS5mYS1maWxlLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjMxOCJ9LmZhLWZpbGUtbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmOGI2In0uZmEtZmlsZS1wZGY6YmVmb3Jle2NvbnRlbnQ6IlxmMWMxIn0uZmEtZmlsZS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjMxOSJ9LmZhLWZpbGUtcG93ZXJwb2ludDpiZWZvcmV7Y29udGVudDoiXGYxYzQifS5mYS1maWxlLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGY4NjUifS5mYS1maWxlLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjMxNyJ9LmZhLWZpbGUtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjU3NCJ9LmZhLWZpbGUtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM4In0uZmEtZmlsZS13b3JkOmJlZm9yZXtjb250ZW50OiJcZjFjMiJ9LmZhLWZpbHRlcjpiZWZvcmV7Y29udGVudDoiXGYwYjAifS5mYS1maW5nZXJwcmludDpiZWZvcmV7Y29udGVudDoiXGY1NzcifS5mYS1maXJlOmJlZm9yZXtjb250ZW50OiJcZjA2ZCJ9LmZhLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDI0In0uZmEtZmxhZy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzRjIn0uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0uZmEtZmx1eC1jYXBhY2l0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmOGJhIn0uZmEtZm9sZGVyOmJlZm9yZXtjb250ZW50OiJcZjA3YiJ9LmZhLWZvbGRlci1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGUwNTMifS5mYS1mb2xkZXItb3BlbjpiZWZvcmV7Y29udGVudDoiXGYwN2MifS5mYS1mb2xkZXItdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZTA1NCJ9LmZhLWZyb3duOmJlZm9yZXtjb250ZW50OiJcZjExOSJ9LmZhLWZyb3duLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmNTdhIn0uZmEtZ2FsYWN0aWMtc2VuYXRlOmJlZm9yZXtjb250ZW50OiJcZjUwZCJ9LmZhLWdhcmFnZTpiZWZvcmV7Y29udGVudDoiXGUwMDkifS5mYS1nYXJhZ2UtY2FyOmJlZm9yZXtjb250ZW50OiJcZTAwYSJ9LmZhLWdhcmFnZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZTAwYiJ9LmZhLWdhcy1wdW1wOmJlZm9yZXtjb250ZW50OiJcZjUyZiJ9LmZhLWdhcy1wdW1wLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjVmNCJ9LmZhLWdsYXNzZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNTMwIn0uZmEtZ2xvYmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGFjIn0uZmEtZ29vZ2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMCJ9LmZhLWdyaXAtaG9yaXpvbnRhbDpiZWZvcmV7Y29udGVudDoiXGY1OGQifS5mYS1ncmlwLWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjdhNCJ9LmZhLWdyaXAtbGluZXMtdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmN2E1In0uZmEtZ3JpcC12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGY1OGUifS5mYS1oYW5kLWhvbGRpbmctdXNkOmJlZm9yZXtjb250ZW50OiJcZjRjMCJ9LmZhLWhhbmQtcG9pbnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYTcifS5mYS1oYW5kLXBvaW50LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE1In0uZmEtaGFuZC1wb2ludC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTQifS5mYS1oYW5kLXBvaW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjBhNiJ9LmZhLWhhbmQtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNWEifS5mYS1oYW5kcy11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmNGM1In0uZmEtaGFzaHRhZzpiZWZvcmV7Y29udGVudDoiXGYyOTIifS5mYS1oZWFydDpiZWZvcmV7Y29udGVudDoiXGYwMDQifS5mYS1oZWFydC1icm9rZW46YmVmb3Jle2NvbnRlbnQ6IlxmN2E5In0uZmEtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMTIifS5mYS1oaXN0b3J5OmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9LmZhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDE1In0uZmEtaG9tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODBhIn0uZmEtaG9tZS1sZzpiZWZvcmV7Y29udGVudDoiXGY4MGIifS5mYS1ob21lLWxnLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4MGMifS5mYS1ob3VzZTpiZWZvcmV7Y29udGVudDoiXGUwMGQifS5mYS1pLWN1cnNvcjpiZWZvcmV7Y29udGVudDoiXGYyNDYifS5mYS1pbmJveDpiZWZvcmV7Y29udGVudDoiXGYwMWMifS5mYS1pbmJveC1pbjpiZWZvcmV7Y29udGVudDoiXGYzMTAifS5mYS1pbmJveC1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzExIn0uZmEtaW5mbzpiZWZvcmV7Y29udGVudDoiXGYxMjkifS5mYS1pbmZvLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNWEifS5mYS1pbmZvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzMGYifS5mYS1pbnN0YWdyYW06YmVmb3Jle2NvbnRlbnQ6IlxmMTZkIn0uZmEtaW5zdGFncmFtLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGUwNTUifS5mYS1rZXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDg0In0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtbGFzc286YmVmb3Jle2NvbnRlbnQ6IlxmOGM4In0uZmEtbGVhZjpiZWZvcmV7Y29udGVudDoiXGYwNmMifS5mYS1sZXZlbC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE0OSJ9LmZhLWxldmVsLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZSJ9LmZhLWxldmVsLXVwOmJlZm9yZXtjb250ZW50OiJcZjE0OCJ9LmZhLWxldmVsLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmYifS5mYS1saW5rZWRpbjpiZWZvcmV7Y29udGVudDoiXGYwOGMifS5mYS1saW5rZWRpbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwZTEifS5mYS1sb2NhdGlvbi1hcnJvdzpiZWZvcmV7Y29udGVudDoiXGYxMjQifS5mYS1sb25nLWFycm93LWFsdC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMwOSJ9LmZhLWxvbmctYXJyb3ctYWx0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzBhIn0uZmEtbG9uZy1hcnJvdy1hbHQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzBiIn0uZmEtbG9uZy1hcnJvdy1hbHQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzBjIn0uZmEtbG9uZy1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE3NSJ9LmZhLWxvbmctYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxNzcifS5mYS1sb25nLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE3OCJ9LmZhLWxvbmctYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTc2In0uZmEtbWFnaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMGQwIn0uZmEtbWFwOmJlZm9yZXtjb250ZW50OiJcZjI3OSJ9LmZhLW1hcC1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDQxIn0uZmEtbWFwLW1hcmtlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M1In0uZmEtbWFwLXBpbjpiZWZvcmV7Y29udGVudDoiXGYyNzYifS5mYS1tYXAtc2lnbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjc3In0uZmEtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjVhMSJ9LmZhLW1lZGFsOmJlZm9yZXtjb250ZW50OiJcZjVhMiJ9LmZhLW1laDpiZWZvcmV7Y29udGVudDoiXGYxMWEifS5mYS1taWNyb2NoaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmRiIn0uZmEtbWljcm9waG9uZTpiZWZvcmV7Y29udGVudDoiXGYxMzAifS5mYS1taWNyb3Bob25lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYzkifS5mYS1taWNyb3Bob25lLWFsdC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY1MzkifS5mYS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjEzMSJ9LmZhLW1pbmQtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNjc3In0uZmEtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY4In0uZmEtbWludXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NiJ9LmZhLW1pbnVzLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzA3In0uZmEtbWludXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDgifS5mYS1taW51cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ2In0uZmEtbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjEwYiJ9LmZhLW1vYmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NkIn0uZmEtbW9iaWxlLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NlIn0uZmEtbW9iaWxlLWFuZHJvaWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjZiJ9LmZhLW1vbmV5LWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjUzYyJ9LmZhLW1vbmV5LWNoZWNrLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1M2QifS5mYS1tb25leS1jaGVjay1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjg3MiJ9LmZhLW1vbmV5LWNoZWNrLWVkaXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg3MyJ9LmZhLW1vdG9yY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjFjIn0uZmEtbW91bnRhaW46YmVmb3Jle2NvbnRlbnQ6IlxmNmZjIn0uZmEtbW91c2UtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDUifS5mYS1tcDMtcGxheWVyOmJlZm9yZXtjb250ZW50OiJcZjhjZSJ9LmZhLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjAwMSJ9LmZhLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzA2In0uZmEtb2lsLWNhbjpiZWZvcmV7Y29udGVudDoiXGY2MTMifS5mYS1vaWwtdGVtcDpiZWZvcmV7Y29udGVudDoiXGY2MTQifS5mYS1wYWludC1icnVzaDpiZWZvcmV7Y29udGVudDoiXGYxZmMifS5mYS1wYWxldHRlOmJlZm9yZXtjb250ZW50OiJcZjUzZiJ9LmZhLXBhcGVyLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjFkOCJ9LmZhLXBhc3RlOmJlZm9yZXtjb250ZW50OiJcZjBlYSJ9LmZhLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZWQifS5mYS1wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMzA0In0uZmEtcGVuLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMDUifS5mYS1wZW4tZmFuY3k6YmVmb3Jle2NvbnRlbnQ6IlxmNWFjIn0uZmEtcGVuY2lsOmJlZm9yZXtjb250ZW50OiJcZjA0MCJ9LmZhLXBlbmNpbC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzAzIn0uZmEtcGVuY2lsLXJ1bGVyOmJlZm9yZXtjb250ZW50OiJcZjVhZSJ9LmZhLXBlb3BsZS1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxlMDY4In0uZmEtcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk1In0uZmEtcGhvbmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg3OSJ9LmZhLXBob25lLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTgifS5mYS1waG9uZS1zcXVhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg3YiJ9LmZhLXBob25lLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGYyYTAifS5mYS1waG90by12aWRlbzpiZWZvcmV7Y29udGVudDoiXGY4N2MifS5mYS1waW50ZXJlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMGQyIn0uZmEtcGludGVyZXN0LXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMxIn0uZmEtcGludGVyZXN0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjA0YiJ9LmZhLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9LmZhLXBsdWc6YmVmb3Jle2NvbnRlbnQ6IlxmMWU2In0uZmEtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwNjcifS5mYS1wbHVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTUifS5mYS1wbHVzLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzAwIn0uZmEtcGx1cy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwMSJ9LmZhLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBmZSJ9LmZhLXBvbzpiZWZvcmV7Y29udGVudDoiXGYyZmUifS5mYS1wcmludDpiZWZvcmV7Y29udGVudDoiXGYwMmYifS5mYS1xcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDI5In0uZmEtcXVlc3Rpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTI4In0uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OSJ9LmZhLXF1ZXN0aW9uLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyZmQifS5mYS1xdW90ZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwZCJ9LmZhLXF1b3RlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwZSJ9LmZhLXJhbmRvbTpiZWZvcmV7Y29udGVudDoiXGYwNzQifS5mYS1yZWN0YW5nbGUtbGFuZHNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjJmYSJ9LmZhLXJlY3RhbmdsZS1wb3J0cmFpdDpiZWZvcmV7Y29udGVudDoiXGYyZmIifS5mYS1yZWN0YW5nbGUtd2lkZTpiZWZvcmV7Y29udGVudDoiXGYyZmMifS5mYS1yZWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjFiOCJ9LmZhLXJlZG86YmVmb3Jle2NvbnRlbnQ6IlxmMDFlIn0uZmEtcmVkby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY5In0uZmEtcmVwZWF0OmJlZm9yZXtjb250ZW50OiJcZjM2MyJ9LmZhLXJlcGVhdC0xOmJlZm9yZXtjb250ZW50OiJcZjM2NSJ9LmZhLXJlcGVhdC0xLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjYifS5mYS1yZXBlYXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2NCJ9LmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjNlNSJ9LmZhLXJlcGx5LWFsbDpiZWZvcmV7Y29udGVudDoiXGYxMjIifS5mYS1yZXR3ZWV0OmJlZm9yZXtjb250ZW50OiJcZjA3OSJ9LmZhLXJldHdlZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MSJ9LmZhLXJvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDE4In0uZmEtcm9ib3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNTQ0In0uZmEtcnNzOmJlZm9yZXtjb250ZW50OiJcZjA5ZSJ9LmZhLXJzcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0uZmEtcnY6YmVmb3Jle2NvbnRlbnQ6IlxmN2JlIn0uZmEtc2F2ZTpiZWZvcmV7Y29udGVudDoiXGYwYzcifS5mYS1zY3Jld2RyaXZlcjpiZWZvcmV7Y29udGVudDoiXGY1NGEifS5mYS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDAyIn0uZmEtc2VhcmNoLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjAxMCJ9LmZhLXNlYXJjaC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjAwZSJ9LmZhLXNoYXBlczpiZWZvcmV7Y29udGVudDoiXGY2MWYifS5mYS1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGYwNjQifS5mYS1zaGFyZS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMzY3In0uZmEtc2hhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjFlMCJ9LmZhLXNoYXJlLWFsdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWUxIn0uZmEtc2hhcmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0ZCJ9LmZhLXNoaWVsZDpiZWZvcmV7Y29udGVudDoiXGYxMzIifS5mYS1zaGllbGQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNlZCJ9LmZhLXNob3BwaW5nLWJhc2tldDpiZWZvcmV7Y29udGVudDoiXGYyOTEifS5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjA3YSJ9LmZhLXNodXR0bGUtdmFuOmJlZm9yZXtjb250ZW50OiJcZjViNiJ9LmZhLXNpZ24taW46YmVmb3Jle2NvbnRlbnQ6IlxmMDkwIn0uZmEtc2lnbi1pbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY2In0uZmEtc2lnbi1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDhiIn0uZmEtc2lnbi1vdXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNSJ9LmZhLXNpZ25hbDpiZWZvcmV7Y29udGVudDoiXGYwMTIifS5mYS1zaWduYWwtc3RyZWFtOmJlZm9yZXtjb250ZW50OiJcZjhkZCJ9LmZhLXNpdGVtYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGU4In0uZmEtc2xpZGVycy1oOmJlZm9yZXtjb250ZW50OiJcZjFkZSJ9LmZhLXNsaWRlcnMtaC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2YwIn0uZmEtc2xpZGVycy12OmJlZm9yZXtjb250ZW50OiJcZjNmMSJ9LmZhLXNsaWRlcnMtdi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2YyIn0uZmEtc21pbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0uZmEtc21zOmJlZm9yZXtjb250ZW50OiJcZjdjZCJ9LmZhLXNub3dmbGFrZTpiZWZvcmV7Y29udGVudDoiXGYyZGMifS5mYS1zb3J0OmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLXNvcnQtYWxwaGEtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNWQifS5mYS1zb3J0LWFscGhhLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MSJ9LmZhLXNvcnQtYWxwaGEtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTVlIn0uZmEtc29ydC1hbHBoYS11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgyIn0uZmEtc29ydC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgzIn0uZmEtc29ydC1hbW91bnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjAifS5mYS1zb3J0LWFtb3VudC1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODQifS5mYS1zb3J0LWFtb3VudC11cDpiZWZvcmV7Y29udGVudDoiXGYxNjEifS5mYS1zb3J0LWFtb3VudC11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg1In0uZmEtc29ydC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxlMDMwIn0uZmEtc29ydC1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGUwMzEifS5mYS1zb3J0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGUwMzIifS5mYS1zb3J0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGRkIn0uZmEtc29ydC1udW1lcmljLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYyIn0uZmEtc29ydC1udW1lcmljLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NiJ9LmZhLXNvcnQtbnVtZXJpYy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjMifS5mYS1zb3J0LW51bWVyaWMtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NyJ9LmZhLXNvcnQtc2hhcGVzLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmODg4In0uZmEtc29ydC1zaGFwZXMtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg5In0uZmEtc29ydC1zaGFwZXMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmODhhIn0uZmEtc29ydC1zaGFwZXMtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4YiJ9LmZhLXNvcnQtc2l6ZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjg4YyJ9LmZhLXNvcnQtc2l6ZS1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OGQifS5mYS1zb3J0LXNpemUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmODhlIn0uZmEtc29ydC1zaXplLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OGYifS5mYS1zb3J0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkZSJ9LmZhLXNwYWRlOmJlZm9yZXtjb250ZW50OiJcZjJmNCJ9LmZhLXNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTEwIn0uZmEtc3Bpbm5lci10aGlyZDpiZWZvcmV7Y29udGVudDoiXGYzZjQifS5mYS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM4In0uZmEtc3RhcjpiZWZvcmV7Y29udGVudDoiXGYwMDUifS5mYS1zdGFyLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjJmMyJ9LmZhLXN0YXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYwODkifS5mYS1zdGFyLWhhbGYtYWx0OmJlZm9yZXtjb250ZW50OiJcZjVjMCJ9LmZhLXN0ZWVyaW5nLXdoZWVsOmJlZm9yZXtjb250ZW50OiJcZjYyMiJ9LmZhLXN0aWNreS1ub3RlOmJlZm9yZXtjb250ZW50OiJcZjI0OSJ9LmZhLXN0b3B3YXRjaDpiZWZvcmV7Y29udGVudDoiXGYyZjIifS5mYS1zdG9yZTpiZWZvcmV7Y29udGVudDoiXGY1NGUifS5mYS1zdG9yZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTRmIn0uZmEtc3VpdGNhc2Utcm9sbGluZzpiZWZvcmV7Y29udGVudDoiXGY1YzEifS5mYS1zdW46YmVmb3Jle2NvbnRlbnQ6IlxmMTg1In0uZmEtc3luYzpiZWZvcmV7Y29udGVudDoiXGYwMjEifS5mYS1zeW5jLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjEifS5mYS10YWJsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBhIn0uZmEtdGFibGV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmEifS5mYS10YWNob21ldGVyOmJlZm9yZXtjb250ZW50OiJcZjBlNCJ9LmZhLXRhY2hvbWV0ZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmZCJ9LmZhLXRhY2hvbWV0ZXItYWx0LWF2ZXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNjI0In0uZmEtdGFjaG9tZXRlci1hbHQtZmFzdDpiZWZvcmV7Y29udGVudDoiXGY2MjUifS5mYS10YWNob21ldGVyLWFsdC1mYXN0ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyNiJ9LmZhLXRhY2hvbWV0ZXItYWx0LXNsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmNjI3In0uZmEtdGFjaG9tZXRlci1hbHQtc2xvd2VzdDpiZWZvcmV7Y29udGVudDoiXGY2MjgifS5mYS10YWNob21ldGVyLWF2ZXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNjI5In0uZmEtdGFjaG9tZXRlci1mYXN0OmJlZm9yZXtjb250ZW50OiJcZjYyYSJ9LmZhLXRhY2hvbWV0ZXItZmFzdGVzdDpiZWZvcmV7Y29udGVudDoiXGY2MmIifS5mYS10YWNob21ldGVyLXNsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmNjJjIn0uZmEtdGFjaG9tZXRlci1zbG93ZXN0OmJlZm9yZXtjb250ZW50OiJcZjYyZCJ9LmZhLXRhZzpiZWZvcmV7Y29udGVudDoiXGYwMmIifS5mYS10YWdzOmJlZm9yZXtjb250ZW50OiJcZjAyYyJ9LmZhLXRheGk6YmVmb3Jle2NvbnRlbnQ6IlxmMWJhIn0uZmEtdGVtcGVyYXR1cmUtaGlnaDpiZWZvcmV7Y29udGVudDoiXGY3NjkifS5mYS10ZW1wZXJhdHVyZS1sb3c6YmVmb3Jle2NvbnRlbnQ6IlxmNzZiIn0uZmEtdGV4dC1oZWlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM0In0uZmEtdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDoiXGYwMzUifS5mYS10aGVybW9tZXRlci1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjJjOSJ9LmZhLXRodW1icy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9LmZhLXRodW1icy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjQifS5mYS10aWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ1In0uZmEtdGlrdG9rOmJlZm9yZXtjb250ZW50OiJcZTA3YiJ9LmZhLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjAwZCJ9LmZhLXRpbWVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTcifS5mYS10aW1lcy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjJlZSJ9LmZhLXRpbWVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMmYwIn0uZmEtdGltZXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJkMyJ9LmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQzIn0uZmEtdGlyZTpiZWZvcmV7Y29udGVudDoiXGY2MzEifS5mYS10aXJlLWZsYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjMyIn0uZmEtdGlyZS1wcmVzc3VyZS13YXJuaW5nOmJlZm9yZXtjb250ZW50OiJcZjYzMyJ9LmZhLXRpcmUtcnVnZ2VkOmJlZm9yZXtjb250ZW50OiJcZjYzNCJ9LmZhLXRvZ2dsZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMjA0In0uZmEtdG9nZ2xlLW9uOmJlZm9yZXtjb250ZW50OiJcZjIwNSJ9LmZhLXRvb2xzOmJlZm9yZXtjb250ZW50OiJcZjdkOSJ9LmZhLXRyYWlsZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDQxIn0uZmEtdHJhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY4In0uZmEtdHJhc2gtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlZCJ9LmZhLXRyYXNoLXJlc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmODI5In0uZmEtdHJhc2gtcmVzdG9yZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODJhIn0uZmEtdHJhc2gtdW5kbzpiZWZvcmV7Y29udGVudDoiXGY4OTUifS5mYS10cmFzaC11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OTYifS5mYS10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYyZWMifS5mYS10cm9waHk6YmVmb3Jle2NvbnRlbnQ6IlxmMDkxIn0uZmEtdHJvcGh5LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWIifS5mYS10cnVjazpiZWZvcmV7Y29udGVudDoiXGYwZDEifS5mYS10cnVjay1sb2FkaW5nOmJlZm9yZXtjb250ZW50OiJcZjRkZSJ9LmZhLXRydWNrLW1vbnN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjNiIn0uZmEtdHJ1Y2stcGlja3VwOmJlZm9yZXtjb250ZW50OiJcZjYzYyJ9LmZhLXR0eTpiZWZvcmV7Y29udGVudDoiXGYxZTQifS5mYS10djpiZWZvcmV7Y29udGVudDoiXGYyNmMifS5mYS10d2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjA5OSJ9LmZhLXR3aXR0ZXItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MSJ9LmZhLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmMGUyIn0uZmEtdW5kby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVhIn0uZmEtdXBsb2FkOmJlZm9yZXtjb250ZW50OiJcZjA5MyJ9LmZhLXVzZC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmU4In0uZmEtdXNkLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyZTkifS5mYS11c2VyOmJlZm9yZXtjb250ZW50OiJcZjAwNyJ9LmZhLXVzZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjQwNiJ9LmZhLXVzZXItY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmNGZjIn0uZmEtdXNlci1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmJkIn0uZmEtdXNlci1mcmllbmRzOmJlZm9yZXtjb250ZW50OiJcZjUwMCJ9LmZhLXVzZXJzOmJlZm9yZXtjb250ZW50OiJcZjBjMCJ9LmZhLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjAzZCJ9LmZhLXZvaWNlbWFpbDpiZWZvcmV7Y29udGVudDoiXGY4OTcifS5mYS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmNmE4In0uZmEtdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDI3In0uZmEtdm9sdW1lLW11dGU6YmVmb3Jle2NvbnRlbnQ6IlxmNmE5In0uZmEtdm9sdW1lLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMjYifS5mYS12b2x1bWUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmUyIn0uZmEtdm9sdW1lLXVwOmJlZm9yZXtjb250ZW50OiJcZjAyOCJ9LmZhLXdhZ29uLWNvdmVyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmOGVlIn0uZmEtd2Fsa2llLXRhbGtpZTpiZWZvcmV7Y29udGVudDoiXGY4ZWYifS5mYS13ZWJjYW06YmVmb3Jle2NvbnRlbnQ6IlxmODMyIn0uZmEtd2ViY2FtLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjgzMyJ9LmZhLXdoZWVsY2hhaXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTkzIn0uZmEtd2lmaTpiZWZvcmV7Y29udGVudDoiXGYxZWIifS5mYS13cmVuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMGFkIn0uZmEteW91dHViZTpiZWZvcmV7Y29udGVudDoiXGYxNjcifS5mYS15b3V0dWJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MzEifS5mYS1zaGllbGQtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmY3In0uZmEtbGluazpiZWZvcmV7Y29udGVudDoiXGYwYzEifS5mYS11bmxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0uZmEtYmFkZ2UtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY0NSJ9LmZhLXBlbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRiIn0uZmEtY29tbWVudC1hbHQtZG90czpiZWZvcmV7Y29udGVudDoiXGY0YTMifS5mYS1hcnJvdy1kb3duLXRvLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzNkIn0uZmEtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU2Ijt9LnNyLW9ubHl7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAsMCwwLDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9LnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSwuc3Itb25seS1mb2N1c2FibGU6Zm9jdXN7Y2xpcDphdXRvO2hlaWdodDphdXRvO21hcmdpbjowO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246c3RhdGljO3dpZHRoOmF1dG99QGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgQnJhbmRzJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC5zdmcjZm9udGF3ZXNvbWUpIGZvcm1hdCgic3ZnIil9LmZhYntmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgQnJhbmRzJztmb250LXdlaWdodDo0MDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDozMDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5zdmcjZm9udGF3ZXNvbWUpIGZvcm1hdCgic3ZnIil9LmZhbHtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXdlaWdodDozMDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5zdmcjZm9udGF3ZXNvbWUpIGZvcm1hdCgic3ZnIil9LmZhcntmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXdlaWdodDo0MDB9QGZvbnQtZmFjZXtmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo5MDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5zdmcjZm9udGF3ZXNvbWUpIGZvcm1hdCgic3ZnIil9LmZhLC5mYXN7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybychaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjkwMH1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OidEMkNDdXN0b21JY29ucyc7c3JjOmxvY2FsKEQyQ0N1c3RvbUljb25zKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy5zdmcjc3ZnRm9udE5hbWUpIGZvcm1hdCgic3ZnIik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsfS5mYS14LXR3aXR0ZXI6YmVmb3Jle2ZvbnQtZmFtaWx5OidEMkNDdXN0b21JY29ucycsc2VyaWY7Y29udGVudDoiXGU5MDAiO2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsfQovKiogL2Nzcy9mb250LWF3ZXNvbWUuY29udGVudC5taW4uY3NzICoqLwouZmEtNTAwcHg6YmVmb3Jle2NvbnRlbnQ6IlxmMjZlIn0uZmEtYWNjZXNzaWJsZS1pY29uOmJlZm9yZXtjb250ZW50OiJcZjM2OCJ9LmZhLWFjY3Vzb2Z0OmJlZm9yZXtjb250ZW50OiJcZjM2OSJ9LmZhLWFkZHJlc3MtYm9vazpiZWZvcmV7Y29udGVudDoiXGYyYjkifS5mYS1hZGRyZXNzLWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmJiIn0uZmEtYWRqdXN0OmJlZm9yZXtjb250ZW50OiJcZjA0MiJ9LmZhLWFkbjpiZWZvcmV7Y29udGVudDoiXGYxNzAifS5mYS1hZHZlcnNhbDpiZWZvcmV7Y29udGVudDoiXGYzNmEifS5mYS1hZmZpbGlhdGV0aGVtZTpiZWZvcmV7Y29udGVudDoiXGYzNmIifS5mYS1hbGdvbGlhOmJlZm9yZXtjb250ZW50OiJcZjM2YyJ9LmZhLWFsaWduLWNlbnRlcjpiZWZvcmV7Y29udGVudDoiXGYwMzcifS5mYS1hbGlnbi1qdXN0aWZ5OmJlZm9yZXtjb250ZW50OiJcZjAzOSJ9LmZhLWFsaWduLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM2In0uZmEtYWxpZ24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM4In0uZmEtYW1hem9uOmJlZm9yZXtjb250ZW50OiJcZjI3MCJ9LmZhLWFtYXpvbi1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDJjIn0uZmEtYW1idWxhbmNlOmJlZm9yZXtjb250ZW50OiJcZjBmOSJ9LmZhLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nOmJlZm9yZXtjb250ZW50OiJcZjJhMyJ9LmZhLWFtaWxpYTpiZWZvcmV7Y29udGVudDoiXGYzNmQifS5mYS1hbmNob3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTNkIn0uZmEtYW5kcm9pZDpiZWZvcmV7Y29udGVudDoiXGYxN2IifS5mYS1hbmdlbGxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMjA5In0uZmEtYW5nbGUtZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0uZmEtYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0uZmEtYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9LmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDIifS5mYS1hbmdsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9LmZhLWFuZ2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0uZmEtYW5nbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtYW5ncnljcmVhdGl2ZTpiZWZvcmV7Y29udGVudDoiXGYzNmUifS5mYS1hbmd1bGFyOmJlZm9yZXtjb250ZW50OiJcZjQyMCJ9LmZhLWFwcC1zdG9yZTpiZWZvcmV7Y29udGVudDoiXGYzNmYifS5mYS1hcHAtc3RvcmUtaW9zOmJlZm9yZXtjb250ZW50OiJcZjM3MCJ9LmZhLWFwcGVyOmJlZm9yZXtjb250ZW50OiJcZjM3MSJ9LmZhLWFwcGxlOmJlZm9yZXtjb250ZW50OiJcZjE3OSJ9LmZhLWFwcGxlLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MTUifS5mYS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjE4NyJ9LmZhLWFycm93LWFsdC1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTgifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU5In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNWEifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjM1YiJ9LmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWFycm93LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhOCJ9LmZhLWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTkifS5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGFhIn0uZmEtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNjMifS5mYS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2MCJ9LmZhLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA2MSJ9LmZhLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjA2MiJ9LmZhLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGIyIn0uZmEtYXJyb3dzLWFsdC1oOmJlZm9yZXtjb250ZW50OiJcZjMzNyJ9LmZhLWFycm93cy1hbHQtdjpiZWZvcmV7Y29udGVudDoiXGYzMzgifS5mYS1hc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXM6YmVmb3Jle2NvbnRlbnQ6IlxmMmEyIn0uZmEtYXN0ZXJpc2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDY5In0uZmEtYXN5bW1ldHJpazpiZWZvcmV7Y29udGVudDoiXGYzNzIifS5mYS1hdDpiZWZvcmV7Y29udGVudDoiXGYxZmEifS5mYS1hdWRpYmxlOmJlZm9yZXtjb250ZW50OiJcZjM3MyJ9LmZhLWF1ZGlvLWRlc2NyaXB0aW9uOmJlZm9yZXtjb250ZW50OiJcZjI5ZSJ9LmZhLWF1dG9wcmVmaXhlcjpiZWZvcmV7Y29udGVudDoiXGY0MWMifS5mYS1hdmlhbmV4OmJlZm9yZXtjb250ZW50OiJcZjM3NCJ9LmZhLWF2aWF0bzpiZWZvcmV7Y29udGVudDoiXGY0MjEifS5mYS1hd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzc1In0uZmEtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRhIn0uZmEtYmFsYW5jZS1zY2FsZTpiZWZvcmV7Y29udGVudDoiXGYyNGUifS5mYS1iYW46YmVmb3Jle2NvbnRlbnQ6IlxmMDVlIn0uZmEtYmFuZGNhbXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ1In0uZmEtYmFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMmEifS5mYS1iYXJzOmJlZm9yZXtjb250ZW50OiJcZjBjOSJ9LmZhLWJhc2ViYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDMzIn0uZmEtYmFza2V0YmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzNCJ9LmZhLWJhdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMmNkIn0uZmEtYmF0dGVyeS1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYyNDQifS5mYS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMjQwIn0uZmEtYmF0dGVyeS1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjI0MiJ9LmZhLWJhdHRlcnktcXVhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDMifS5mYS1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzOmJlZm9yZXtjb250ZW50OiJcZjI0MSJ9LmZhLWJlZDpiZWZvcmV7Y29udGVudDoiXGYyMzYifS5mYS1iZWVyOmJlZm9yZXtjb250ZW50OiJcZjBmYyJ9LmZhLWJlaGFuY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWI0In0uZmEtYmVoYW5jZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI1In0uZmEtYmVsbDpiZWZvcmV7Y29udGVudDoiXGYwZjMifS5mYS1iZWxsLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmNiJ9LmZhLWJpY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjA2In0uZmEtYmltb2JqZWN0OmJlZm9yZXtjb250ZW50OiJcZjM3OCJ9LmZhLWJpbm9jdWxhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMWU1In0uZmEtYmlydGhkYXktY2FrZTpiZWZvcmV7Y29udGVudDoiXGYxZmQifS5mYS1iaXRidWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTcxIn0uZmEtYml0Y29pbjpiZWZvcmV7Y29udGVudDoiXGYzNzkifS5mYS1iaXR5OmJlZm9yZXtjb250ZW50OiJcZjM3YSJ9LmZhLWJsYWNrLXRpZTpiZWZvcmV7Y29udGVudDoiXGYyN2UifS5mYS1ibGFja2JlcnJ5OmJlZm9yZXtjb250ZW50OiJcZjM3YiJ9LmZhLWJsaW5kOmJlZm9yZXtjb250ZW50OiJcZjI5ZCJ9LmZhLWJsb2dnZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdjIn0uZmEtYmxvZ2dlci1iOmJlZm9yZXtjb250ZW50OiJcZjM3ZCJ9LmZhLWJsdWV0b290aDpiZWZvcmV7Y29udGVudDoiXGYyOTMifS5mYS1ibHVldG9vdGgtYjpiZWZvcmV7Y29udGVudDoiXGYyOTQifS5mYS1ib2xkOmJlZm9yZXtjb250ZW50OiJcZjAzMiJ9LmZhLWJvbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGU3In0uZmEtYm9tYjpiZWZvcmV7Y29udGVudDoiXGYxZTIifS5mYS1ib29rOmJlZm9yZXtjb250ZW50OiJcZjAyZCJ9LmZhLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjAyZSJ9LmZhLWJvd2xpbmctYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzYifS5mYS1icmFpbGxlOmJlZm9yZXtjb250ZW50OiJcZjJhMSJ9LmZhLWJyaWVmY2FzZTpiZWZvcmV7Y29udGVudDoiXGYwYjEifS5mYS1idGM6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0uZmEtYnVnOmJlZm9yZXtjb250ZW50OiJcZjE4OCJ9LmZhLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9LmZhLWJ1bGxob3JuOmJlZm9yZXtjb250ZW50OiJcZjBhMSJ9LmZhLWJ1bGxzZXllOmJlZm9yZXtjb250ZW50OiJcZjE0MCJ9LmZhLWJ1cm9tb2JlbGV4cGVydGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzdmIn0uZmEtYnVzOmJlZm9yZXtjb250ZW50OiJcZjIwNyJ9LmZhLWJ1eXNlbGxhZHM6YmVmb3Jle2NvbnRlbnQ6IlxmMjBkIn0uZmEtY2FsY3VsYXRvcjpiZWZvcmV7Y29udGVudDoiXGYxZWMifS5mYS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYxMzMifS5mYS1jYWxlbmRhci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDczIn0uZmEtY2FsZW5kYXItY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjc0In0uZmEtY2FsZW5kYXItbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcyIn0uZmEtY2FsZW5kYXItcGx1czpiZWZvcmV7Y29udGVudDoiXGYyNzEifS5mYS1jYWxlbmRhci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyNzMifS5mYS1jYW1lcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMDMwIn0uZmEtY2FtZXJhLXJldHJvOmJlZm9yZXtjb250ZW50OiJcZjA4MyJ9LmZhLWNhcjpiZWZvcmUsLmZhLWF1dG9tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI5In0uZmEtY2FyZXQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwZDcifS5mYS1jYXJldC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBkOSJ9LmZhLWNhcmV0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBkYSJ9LmZhLWNhcmV0LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1MCJ9LmZhLWNhcmV0LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE5MSJ9LmZhLWNhcmV0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNTIifS5mYS1jYXJldC1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0uZmEtY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ4In0uZmEtY2FydC1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjIxOCJ9LmZhLWNhcnQtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMTcifS5mYS1jYy1hbWF6b24tcGF5OmJlZm9yZXtjb250ZW50OiJcZjQyZCJ9LmZhLWNjLWFtZXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWYzIn0uZmEtY2MtYXBwbGUtcGF5OmJlZm9yZXtjb250ZW50OiJcZjQxNiJ9LmZhLWNjLWRpbmVycy1jbHViOmJlZm9yZXtjb250ZW50OiJcZjI0YyJ9LmZhLWNjLWRpc2NvdmVyOmJlZm9yZXtjb250ZW50OiJcZjFmMiJ9LmZhLWNjLWpjYjpiZWZvcmV7Y29udGVudDoiXGYyNGIifS5mYS1jYy1tYXN0ZXJjYXJkOmJlZm9yZXtjb250ZW50OiJcZjFmMSJ9LmZhLWNjLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZjQifS5mYS1jYy1zdHJpcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWY1In0uZmEtY2MtdmlzYTpiZWZvcmV7Y29udGVudDoiXGYxZjAifS5mYS1jZW50ZXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjM4MCJ9LmZhLWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZjBhMyJ9LmZhLWNoYXJ0LWFyZWE6YmVmb3Jle2NvbnRlbnQ6IlxmMWZlIn0uZmEtY2hhcnQtYmFyOmJlZm9yZXtjb250ZW50OiJcZjA4MCJ9LmZhLWNoYXJ0LWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAxIn0uZmEtY2hhcnQtcGllOmJlZm9yZXtjb250ZW50OiJcZjIwMCJ9LmZhLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjAwYyJ9LmZhLWNoZWNrLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTgifS5mYS1jaGVjay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRhIn0uZmEtY2hlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDM5In0uZmEtY2hlc3MtYmlzaG9wOmJlZm9yZXtjb250ZW50OiJcZjQzYSJ9LmZhLWNoZXNzLWJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjQzYyJ9LmZhLWNoZXNzLWtpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNDNmIn0uZmEtY2hlc3Mta25pZ2h0OmJlZm9yZXtjb250ZW50OiJcZjQ0MSJ9LmZhLWNoZXNzLXBhd246YmVmb3Jle2NvbnRlbnQ6IlxmNDQzIn0uZmEtY2hlc3MtcXVlZW46YmVmb3Jle2NvbnRlbnQ6IlxmNDQ1In0uZmEtY2hlc3Mtcm9vazpiZWZvcmV7Y29udGVudDoiXGY0NDcifS5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEzYSJ9LmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0uZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0uZmEtY2hldnJvbi1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTM5In0uZmEtY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA3OCJ9LmZhLWNoZXZyb24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNTMifS5mYS1jaGV2cm9uLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA1NCJ9LmZhLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDc3In0uZmEtY2hpbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWFlIn0uZmEtY2hyb21lOmJlZm9yZXtjb250ZW50OiJcZjI2OCJ9LmZhLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxMTEifS5mYS1jaXJjbGUtbm90Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWNlIn0uZmEtY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjMyOCJ9LmZhLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjAxNyJ9LmZhLWNsb25lOmJlZm9yZXtjb250ZW50OiJcZjI0ZCJ9LmZhLWNsb3NlZC1jYXB0aW9uaW5nOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9LmZhLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjBjMiJ9LmZhLWNsb3VkLWRvd25sb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODEifS5mYS1jbG91ZC11cGxvYWQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4MiJ9LmZhLWNsb3Vkc2NhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzgzIn0uZmEtY2xvdWRzbWl0aDpiZWZvcmV7Y29udGVudDoiXGYzODQifS5mYS1jbG91ZHZlcnNpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMzg1In0uZmEtY29kZTpiZWZvcmV7Y29udGVudDoiXGYxMjEifS5mYS1jb2RlLWJyYW5jaDpiZWZvcmV7Y29udGVudDoiXGYxMjYifS5mYS1jb2RlcGVuOmJlZm9yZXtjb250ZW50OiJcZjFjYiJ9LmZhLWNvZGllcGllOmJlZm9yZXtjb250ZW50OiJcZjI4NCJ9LmZhLWNvZmZlZTpiZWZvcmV7Y29udGVudDoiXGYwZjQifS5mYS1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMDEzIn0uZmEtY29nczpiZWZvcmV7Y29udGVudDoiXGYwODUifS5mYS1nZWFyczpiZWZvcmV7Y29udGVudDoiXGYwODUifS5mYS1jb2x1bW5zOmJlZm9yZXtjb250ZW50OiJcZjBkYiJ9LmZhLWNvbW1lbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc1In0uZmEtY29tbWVudC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjdhIn0uZmEtY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg2In0uZmEtY29tcGFzczpiZWZvcmV7Y29udGVudDoiXGYxNGUifS5mYS1jb21wcmVzczpiZWZvcmV7Y29udGVudDoiXGYwNjYifS5mYS1jb25uZWN0ZGV2ZWxvcDpiZWZvcmV7Y29udGVudDoiXGYyMGUifS5mYS1jb250YW86YmVmb3Jle2NvbnRlbnQ6IlxmMjZkIn0uZmEtY29weTpiZWZvcmV7Y29udGVudDoiXGYwYzUifS5mYS1jb3B5cmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY5In0uZmEtY3BhbmVsOmJlZm9yZXtjb250ZW50OiJcZjM4OCJ9LmZhLWNyZWF0aXZlLWNvbW1vbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjVlIn0uZmEtY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDlkIn0uZmEtY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMjUifS5mYS1jcm9zc2hhaXJzOmJlZm9yZXtjb250ZW50OiJcZjA1YiJ9LmZhLWNzczM6YmVmb3Jle2NvbnRlbnQ6IlxmMTNjIn0uZmEtY3NzMy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzhiIn0uZmEtY3ViZTpiZWZvcmV7Y29udGVudDoiXGYxYjIifS5mYS1jdWJlczpiZWZvcmV7Y29udGVudDoiXGYxYjMifS5mYS1jdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtY3V0dGxlZmlzaDpiZWZvcmV7Y29udGVudDoiXGYzOGMifS5mYS1kLWFuZC1kOmJlZm9yZXtjb250ZW50OiJcZjM4ZCJ9LmZhLWRhc2hjdWJlOmJlZm9yZXtjb250ZW50OiJcZjIxMCJ9LmZhLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjFjMCJ9LmZhLWRlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMmE0In0uZmEtZGVsaWNpb3VzOmJlZm9yZXtjb250ZW50OiJcZjFhNSJ9LmZhLWRlcGxveWRvZzpiZWZvcmV7Y29udGVudDoiXGYzOGUifS5mYS1kZXNrcHJvOmJlZm9yZXtjb250ZW50OiJcZjM4ZiJ9LmZhLWRlc2t0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTA4In0uZmEtZGV2aWFudGFydDpiZWZvcmV7Y29udGVudDoiXGYxYmQifS5mYS1kaWdnOmJlZm9yZXtjb250ZW50OiJcZjFhNiJ9LmZhLWRpZ2l0YWwtb2NlYW46YmVmb3Jle2NvbnRlbnQ6IlxmMzkxIn0uZmEtZGlzY29yZDpiZWZvcmV7Y29udGVudDoiXGYzOTIifS5mYS1kaXNjb3Vyc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMzkzIn0uZmEtZG9jaHViOmJlZm9yZXtjb250ZW50OiJcZjM5NCJ9LmZhLWRvY2tlcjpiZWZvcmV7Y29udGVudDoiXGYzOTUifS5mYS1kb2xsYXItc2lnbjpiZWZvcmUsLmZhLWRvbGxhcjpiZWZvcmUsLmZhLXVzZDpiZWZvcmV7Y29udGVudDoiXGYxNTUifS5mYS1kb3QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE5MiJ9LmZhLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOSJ9LmZhLWRyYWZ0MmRpZ2l0YWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzk2In0uZmEtZHJpYmJibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTdkIn0uZmEtZHJpYmJibGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjM5NyJ9LmZhLWRyb3Bib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMTZiIn0uZmEtZHJ1cGFsOmJlZm9yZXtjb250ZW50OiJcZjFhOSJ9LmZhLWR5YWxvZzpiZWZvcmV7Y29udGVudDoiXGYzOTkifS5mYS1lYXJseWJpcmRzOmJlZm9yZXtjb250ZW50OiJcZjM5YSJ9LmZhLWVkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjgyIn0uZmEtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYwNDQifS5mYS1lamVjdDpiZWZvcmV7Y29udGVudDoiXGYwNTIifS5mYS1lbGVtZW50b3I6YmVmb3Jle2NvbnRlbnQ6IlxmNDMwIn0uZmEtZWxsaXBzaXMtaDpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1lbGxpcHNpcy12OmJlZm9yZXtjb250ZW50OiJcZjE0MiJ9LmZhLWVtYmVyOmJlZm9yZXtjb250ZW50OiJcZjQyMyJ9LmZhLWVtcGlyZTpiZWZvcmV7Y29udGVudDoiXGYxZDEifS5mYS1lbnZlbG9wZTpiZWZvcmV7Y29udGVudDoiXGYwZTAifS5mYS1lbnZlbG9wZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjJiNiJ9LmZhLWVudmVsb3BlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTkifS5mYS1lbnZpcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMjk5In0uZmEtZXJhc2VyOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9LmZhLWVybGFuZzpiZWZvcmV7Y29udGVudDoiXGYzOWQifS5mYS1ldGhlcmV1bTpiZWZvcmV7Y29udGVudDoiXGY0MmUifS5mYS1ldHN5OmJlZm9yZXtjb250ZW50OiJcZjJkNyJ9LmZhLWV1cm8tc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTMifS5mYS1leGNoYW5nZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYyIn0uZmEtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJhIn0uZmEtZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA2YSJ9LmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZXtjb250ZW50OiJcZjA3MSJ9LmZhLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGYwNjUifS5mYS1leHBhbmQtYXJyb3dzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzMWUifS5mYS1leHBlZGl0ZWRzc2w6YmVmb3Jle2NvbnRlbnQ6IlxmMjNlIn0uZmEtZXh0ZXJuYWwtbGluay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVkIn0uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MCJ9LmZhLWV5ZTpiZWZvcmV7Y29udGVudDoiXGYwNmUifS5mYS1leWUtZHJvcHBlcjpiZWZvcmV7Y29udGVudDoiXGYxZmIifS5mYS1leWUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDcwIn0uZmEtZmFjZWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDlhIn0uZmEtZmFjZWJvb2stZjpiZWZvcmV7Y29udGVudDoiXGYzOWUifS5mYS1mYWNlYm9vay1tZXNzZW5nZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzlmIn0uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MiJ9LmZhLWZhc3QtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ5In0uZmEtZmFzdC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA1MCJ9LmZhLWZheDpiZWZvcmV7Y29udGVudDoiXGYxYWMifS5mYS1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTgyIn0uZmEtZmlnaHRlci1qZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZiIn0uZmEtZmlsZTpiZWZvcmUsLmZhLWZpbGUtbzpiZWZvcmV7Y29udGVudDoiXGYxNWIifS5mYS1maWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxNWMifS5mYS1maWxlLWFyY2hpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWM2In0uZmEtZmlsZS1hdWRpbzpiZWZvcmV7Y29udGVudDoiXGYxYzcifS5mYS1maWxlLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWM5In0uZmEtZmlsZS1leGNlbDpiZWZvcmV7Y29udGVudDoiXGYxYzMifS5mYS1maWxlLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjFjNSJ9LmZhLWZpbGUtcGRmOmJlZm9yZXtjb250ZW50OiJcZjFjMSJ9LmZhLWZpbGUtcG93ZXJwb2ludDpiZWZvcmV7Y29udGVudDoiXGYxYzQifS5mYS1maWxlLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjFjOCJ9LmZhLWZpbGUtd29yZDpiZWZvcmV7Y29udGVudDoiXGYxYzIifS5mYS1maWxtOmJlZm9yZXtjb250ZW50OiJcZjAwOCJ9LmZhLWZpbHRlcjpiZWZvcmV7Y29udGVudDoiXGYwYjAifS5mYS1maXJlOmJlZm9yZXtjb250ZW50OiJcZjA2ZCJ9LmZhLWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9LmZhLWZpcmVmb3g6YmVmb3Jle2NvbnRlbnQ6IlxmMjY5In0uZmEtZmlyc3Qtb3JkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmIwIn0uZmEtZmlyc3RkcmFmdDpiZWZvcmV7Y29udGVudDoiXGYzYTEifS5mYS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjAyNCJ9LmZhLWZsYWctY2hlY2tlcmVkOmJlZm9yZXtjb250ZW50OiJcZjExZSJ9LmZhLWZsYXNrOmJlZm9yZXtjb250ZW50OiJcZjBjMyJ9LmZhLWZsaWNrcjpiZWZvcmV7Y29udGVudDoiXGYxNmUifS5mYS1mbGlwYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDRkIn0uZmEtZmx5OmJlZm9yZXtjb250ZW50OiJcZjQxNyJ9LmZhLWZvbGRlcjpiZWZvcmV7Y29udGVudDoiXGYwN2IifS5mYS1mb2xkZXItb3BlbjpiZWZvcmV7Y29udGVudDoiXGYwN2MifS5mYS1mb250OmJlZm9yZXtjb250ZW50OiJcZjAzMSJ9LmZhLWZvbnQtYXdlc29tZTpiZWZvcmV7Y29udGVudDoiXGYyYjQifS5mYS1mb250LWF3ZXNvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM1YyJ9LmZhLWZvbnQtYXdlc29tZS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjQyNSJ9LmZhLWZvbnRpY29uczpiZWZvcmV7Y29udGVudDoiXGYyODAifS5mYS1mb250aWNvbnMtZmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2EyIn0uZmEtZm9vdGJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NGUifS5mYS1mb3J0LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjg2In0uZmEtZm9ydC1hd2Vzb21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYTMifS5mYS1mb3J1bWJlZTpiZWZvcmV7Y29udGVudDoiXGYyMTEifS5mYS1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0ZSJ9LmZhLWZvdXJzcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTgwIn0uZmEtZnJlZS1jb2RlLWNhbXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmM1In0uZmEtZnJlZWJzZDpiZWZvcmV7Y29udGVudDoiXGYzYTQifS5mYS1mcm93bjpiZWZvcmV7Y29udGVudDoiXGYxMTkifS5mYS1mdXRib2w6YmVmb3Jle2NvbnRlbnQ6IlxmMWUzIn0uZmEtZ2FtZXBhZDpiZWZvcmV7Y29udGVudDoiXGYxMWIifS5mYS1nYXZlbDpiZWZvcmV7Y29udGVudDoiXGYwZTMifS5mYS1nZW06YmVmb3Jle2NvbnRlbnQ6IlxmM2E1In0uZmEtZ2VuZGVybGVzczpiZWZvcmV7Y29udGVudDoiXGYyMmQifS5mYS1nZXQtcG9ja2V0OmJlZm9yZXtjb250ZW50OiJcZjI2NSJ9LmZhLWdnOmJlZm9yZXtjb250ZW50OiJcZjI2MCJ9LmZhLWdnLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyNjEifS5mYS1naWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2YiJ9LmZhLWdpdDpiZWZvcmV7Y29udGVudDoiXGYxZDMifS5mYS1naXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFkMiJ9LmZhLWdpdGh1YjpiZWZvcmV7Y29udGVudDoiXGYwOWIifS5mYS1naXRodWItYWx0OmJlZm9yZXtjb250ZW50OiJcZjExMyJ9LmZhLWdpdGh1Yi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDkyIn0uZmEtZ2l0a3Jha2VuOmJlZm9yZXtjb250ZW50OiJcZjNhNiJ9LmZhLWdpdGxhYjpiZWZvcmV7Y29udGVudDoiXGYyOTYifS5mYS1naXR0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDI2In0uZmEtZ2xhc3MtbWFydGluaTpiZWZvcmV7Y29udGVudDoiXGYwMDAifS5mYS1nbGlkZTpiZWZvcmV7Y29udGVudDoiXGYyYTUifS5mYS1nbGlkZS1nOmJlZm9yZXtjb250ZW50OiJcZjJhNiJ9LmZhLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZjBhYyJ9LmZhLWdvZm9yZTpiZWZvcmV7Y29udGVudDoiXGYzYTcifS5mYS1nb2xmLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDUwIn0uZmEtZ29vZHJlYWRzOmJlZm9yZXtjb250ZW50OiJcZjNhOCJ9LmZhLWdvb2RyZWFkcy1nOmJlZm9yZXtjb250ZW50OiJcZjNhOSJ9LmZhLWdvb2dsZTpiZWZvcmV7Y29udGVudDoiXGYxYTAifS5mYS1nb29nbGUtZHJpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2FhIn0uZmEtZ29vZ2xlLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmM2FiIn0uZmEtZ29vZ2xlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMmIzIn0uZmEtZ29vZ2xlLXBsdXMtZzpiZWZvcmV7Y29udGVudDoiXGYwZDUifS5mYS1nb29nbGUtcGx1cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ0In0uZmEtZ29vZ2xlLXdhbGxldDpiZWZvcmV7Y29udGVudDoiXGYxZWUifS5mYS1ncmFkdWF0aW9uLWNhcDpiZWZvcmV7Y29udGVudDoiXGYxOWQifS5mYS1ncmF0aXBheTpiZWZvcmV7Y29udGVudDoiXGYxODQifS5mYS1ncmF2OmJlZm9yZXtjb250ZW50OiJcZjJkNiJ9LmZhLWdyaXBmaXJlOmJlZm9yZXtjb250ZW50OiJcZjNhYyJ9LmZhLWdydW50OmJlZm9yZXtjb250ZW50OiJcZjNhZCJ9LmZhLWd1bHA6YmVmb3Jle2NvbnRlbnQ6IlxmM2FlIn0uZmEtaC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGZkIn0uZmEtaGFja2VyLW5ld3M6YmVmb3Jle2NvbnRlbnQ6IlxmMWQ0In0uZmEtaGFja2VyLW5ld3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNhZiJ9LmZhLWhhbmQtbGl6YXJkOmJlZm9yZXtjb250ZW50OiJcZjI1OCJ9LmZhLWhhbmQtcGFwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjU2In0uZmEtaGFuZC1wZWFjZTpiZWZvcmV7Y29udGVudDoiXGYyNWIifS5mYS1oYW5kLXBvaW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGE3In0uZmEtaGFuZC1wb2ludC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhNSJ9LmZhLWhhbmQtcG9pbnQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE0In0uZmEtaGFuZC1wb2ludC11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1oYW5kLXBvaW50ZXI6YmVmb3JlLC5mYS1oYW5kLXBvaW50ZXItbzpiZWZvcmV7Y29udGVudDoiXGYyNWEifS5mYS1oYW5kLXJvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjU1In0uZmEtaGFuZC1zY2lzc29yczpiZWZvcmV7Y29udGVudDoiXGYyNTcifS5mYS1oYW5kLXNwb2NrOmJlZm9yZXtjb250ZW50OiJcZjI1OSJ9LmZhLWhhbmRzaGFrZTpiZWZvcmV7Y29udGVudDoiXGYyYjUifS5mYS1oYXNodGFnOmJlZm9yZXtjb250ZW50OiJcZjI5MiJ9LmZhLWhkZDpiZWZvcmV7Y29udGVudDoiXGYwYTAifS5mYS1oZWFkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFkYyJ9LmZhLWhlYWRwaG9uZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDI1In0uZmEtaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDA0In0uZmEtaGVhcnRiZWF0OmJlZm9yZXtjb250ZW50OiJcZjIxZSJ9LmZhLWhpcHM6YmVmb3Jle2NvbnRlbnQ6IlxmNDUyIn0uZmEtaGlyZS1hLWhlbHBlcjpiZWZvcmV7Y29udGVudDoiXGYzYjAifS5mYS1oaXN0b3J5OmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9LmZhLWhvY2tleS1wdWNrOmJlZm9yZXtjb250ZW50OiJcZjQ1MyJ9LmZhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDE1In0uZmEtaG9vbGk6YmVmb3Jle2NvbnRlbnQ6IlxmNDI3In0uZmEtaG9zcGl0YWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGY4In0uZmEtaG90amFyOmJlZm9yZXtjb250ZW50OiJcZjNiMSJ9LmZhLWhvdXJnbGFzczpiZWZvcmV7Y29udGVudDoiXGYyNTQifS5mYS1ob3VyZ2xhc3MtZW5kOmJlZm9yZXtjb250ZW50OiJcZjI1MyJ9LmZhLWhvdXJnbGFzcy1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjI1MiJ9LmZhLWhvdXJnbGFzcy1zdGFydDpiZWZvcmV7Y29udGVudDoiXGYyNTEifS5mYS1ob3V6ejpiZWZvcmV7Y29udGVudDoiXGYyN2MifS5mYS1odG1sNTpiZWZvcmV7Y29udGVudDoiXGYxM2IifS5mYS1odWJzcG90OmJlZm9yZXtjb250ZW50OiJcZjNiMiJ9LmZhLWktY3Vyc29yOmJlZm9yZXtjb250ZW50OiJcZjI0NiJ9LmZhLWlkLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjJjMSJ9LmZhLWlkLWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmMyIn0uZmEtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDNlIn0uZmEtaW1hZ2VzOmJlZm9yZXtjb250ZW50OiJcZjMwMiJ9LmZhLWltZGI6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ4In0uZmEtaW5ib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMDFjIn0uZmEtaW5kZW50OmJlZm9yZXtjb250ZW50OiJcZjAzYyJ9LmZhLWluZHVzdHJ5OmJlZm9yZXtjb250ZW50OiJcZjI3NSJ9LmZhLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTI5In0uZmEtaW5mby1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDVhIn0uZmEtaW5zdGFncmFtOmJlZm9yZXtjb250ZW50OiJcZjE2ZCJ9LmZhLWludGVybmV0LWV4cGxvcmVyOmJlZm9yZXtjb250ZW50OiJcZjI2YiJ9LmZhLWlveGhvc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMjA4In0uZmEtaXRhbGljOmJlZm9yZXtjb250ZW50OiJcZjAzMyJ9LmZhLWl0dW5lczpiZWZvcmV7Y29udGVudDoiXGYzYjQifS5mYS1pdHVuZXMtbm90ZTpiZWZvcmV7Y29udGVudDoiXGYzYjUifS5mYS1qZW5raW5zOmJlZm9yZXtjb250ZW50OiJcZjNiNiJ9LmZhLWpvZ2V0OmJlZm9yZXtjb250ZW50OiJcZjNiNyJ9LmZhLWpvb21sYTpiZWZvcmV7Y29udGVudDoiXGYxYWEifS5mYS1qczpiZWZvcmV7Y29udGVudDoiXGYzYjgifS5mYS1qcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2I5In0uZmEtanNmaWRkbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWNjIn0uZmEta2V5OmJlZm9yZXtjb250ZW50OiJcZjA4NCJ9LmZhLWtleWJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjExYyJ9LmZhLWtleWNkbjpiZWZvcmV7Y29udGVudDoiXGYzYmEifS5mYS1raWNrc3RhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYzYmIifS5mYS1raWNrc3RhcnRlci1rOmJlZm9yZXtjb250ZW50OiJcZjNiYyJ9LmZhLWtvcnZ1ZTpiZWZvcmV7Y29udGVudDoiXGY0MmYifS5mYS1sYW5ndWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYWIifS5mYS1sYXB0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTA5In0uZmEtbGFyYXZlbDpiZWZvcmV7Y29udGVudDoiXGYzYmQifS5mYS1sYXN0Zm06YmVmb3Jle2NvbnRlbnQ6IlxmMjAyIn0uZmEtbGFzdGZtLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyMDMifS5mYS1sZWFmOmJlZm9yZXtjb250ZW50OiJcZjA2YyJ9LmZhLWxlYW5wdWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjEyIn0uZmEtbGVtb246YmVmb3Jle2NvbnRlbnQ6IlxmMDk0In0uZmEtbGVzczpiZWZvcmV7Y29udGVudDoiXGY0MWQifS5mYS1sZXZlbC1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmUifS5mYS1sZXZlbC11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JmIn0uZmEtbGlmZS1yaW5nOmJlZm9yZXtjb250ZW50OiJcZjFjZCJ9LmZhLWxpZ2h0YnVsYjpiZWZvcmV7Y29udGVudDoiXGYwZWIifS5mYS1saW5lOmJlZm9yZXtjb250ZW50OiJcZjNjMCJ9LmZhLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMGMxIn0uZmEtbGlua2VkaW46YmVmb3Jle2NvbnRlbnQ6IlxmMDhjIn0uZmEtbGlua2VkaW4taW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtbGlub2RlOmJlZm9yZXtjb250ZW50OiJcZjJiOCJ9LmZhLWxpbnV4OmJlZm9yZXtjb250ZW50OiJcZjE3YyJ9LmZhLWxpcmEtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxOTUifS5mYS1saXN0OmJlZm9yZXtjb250ZW50OiJcZjAzYSJ9LmZhLWxpc3QtYWx0OmJlZm9yZXtjb250ZW50OiJcZjAyMiJ9LmZhLWxpc3Qtb2w6YmVmb3Jle2NvbnRlbnQ6IlxmMGNiIn0uZmEtbGlzdC11bDpiZWZvcmV7Y29udGVudDoiXGYwY2EifS5mYS1sb2NhdGlvbi1hcnJvdzpiZWZvcmV7Y29udGVudDoiXGYxMjQifS5mYS1sb2NrOmJlZm9yZXtjb250ZW50OiJcZjAyMyJ9LmZhLWxvY2stb3BlbjpiZWZvcmV7Y29udGVudDoiXGYzYzEifS5mYS1sb25nLWFycm93LWFsdC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMwOSJ9LmZhLWxvbmctYXJyb3ctYWx0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzBhIn0uZmEtbG9uZy1hcnJvdy1hbHQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzBiIn0uZmEtbG9uZy1hcnJvdy1hbHQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzBjIn0uZmEtbG93LXZpc2lvbjpiZWZvcmV7Y29udGVudDoiXGYyYTgifS5mYS1seWZ0OmJlZm9yZXtjb250ZW50OiJcZjNjMyJ9LmZhLW1hZ2VudG86YmVmb3Jle2NvbnRlbnQ6IlxmM2M0In0uZmEtbWFnaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMGQwIn0uZmEtbWFnbmV0OmJlZm9yZXtjb250ZW50OiJcZjA3NiJ9LmZhLW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTgzIn0uZmEtbWFwOmJlZm9yZXtjb250ZW50OiJcZjI3OSJ9LmZhLW1hcC1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDQxIn0uZmEtbWFwLW1hcmtlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M1In0uZmEtbWFwLXBpbjpiZWZvcmV7Y29udGVudDoiXGYyNzYifS5mYS1tYXAtc2lnbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjc3In0uZmEtbWFyczpiZWZvcmV7Y29udGVudDoiXGYyMjIifS5mYS1tYXJzLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGYyMjcifS5mYS1tYXJzLXN0cm9rZTpiZWZvcmV7Y29udGVudDoiXGYyMjkifS5mYS1tYXJzLXN0cm9rZS1oOmJlZm9yZXtjb250ZW50OiJcZjIyYiJ9LmZhLW1hcnMtc3Ryb2tlLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMjJhIn0uZmEtbWF4Y2RuOmJlZm9yZXtjb250ZW50OiJcZjEzNiJ9LmZhLW1lZGFwcHM6YmVmb3Jle2NvbnRlbnQ6IlxmM2M2In0uZmEtbWVkaXVtOmJlZm9yZXtjb250ZW50OiJcZjIzYSJ9LmZhLW1lZGl1bS1tOmJlZm9yZXtjb250ZW50OiJcZjNjNyJ9LmZhLW1lZGtpdDpiZWZvcmV7Y29udGVudDoiXGYwZmEifS5mYS1tZWRydDpiZWZvcmV7Y29udGVudDoiXGYzYzgifS5mYS1tZWV0dXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmUwIn0uZmEtbWVoOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9LmZhLW1lcmN1cnk6YmVmb3Jle2NvbnRlbnQ6IlxmMjIzIn0uZmEtbWljcm9jaGlwOmJlZm9yZXtjb250ZW50OiJcZjJkYiJ9LmZhLW1pY3JvcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTMwIn0uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxMzEifS5mYS1taWNyb3NvZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2NhIn0uZmEtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY4In0uZmEtbWludXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NiJ9LmZhLW1pbnVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNDYifS5mYS1taXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2NiIn0uZmEtbWl4Y2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjg5In0uZmEtbWl6dW5pOmJlZm9yZXtjb250ZW50OiJcZjNjYyJ9LmZhLW1vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxMGIifS5mYS1tb2JpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjZCJ9LmZhLW1vZHg6YmVmb3Jle2NvbnRlbnQ6IlxmMjg1In0uZmEtbW9uZXJvOmJlZm9yZXtjb250ZW50OiJcZjNkMCJ9LmZhLW1vbmV5LWJpbGwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNkMSJ9LmZhLW1vb246YmVmb3Jle2NvbnRlbnQ6IlxmMTg2In0uZmEtbW90b3JjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYyMWMifS5mYS1tb3VzZS1wb2ludGVyOmJlZm9yZXtjb250ZW50OiJcZjI0NSJ9LmZhLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjAwMSJ9LmZhLW5hcHN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2QyIn0uZmEtbmV1dGVyOmJlZm9yZXtjb250ZW50OiJcZjIyYyJ9LmZhLW5ld3NwYXBlcjpiZWZvcmUsLmZhLW5ld3NwYXBlci1vOmJlZm9yZXtjb250ZW50OiJcZjFlYSJ9LmZhLW5pbnRlbmRvLXN3aXRjaDpiZWZvcmV7Y29udGVudDoiXGY0MTgifS5mYS1ub2RlOmJlZm9yZXtjb250ZW50OiJcZjQxOSJ9LmZhLW5vZGUtanM6YmVmb3Jle2NvbnRlbnQ6IlxmM2QzIn0uZmEtbnBtOmJlZm9yZXtjb250ZW50OiJcZjNkNCJ9LmZhLW5zODpiZWZvcmV7Y29udGVudDoiXGYzZDUifS5mYS1udXRyaXRpb25peDpiZWZvcmV7Y29udGVudDoiXGYzZDYifS5mYS1vYmplY3QtZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ3In0uZmEtb2JqZWN0LXVuZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ4In0uZmEtb2Rub2tsYXNzbmlraTpiZWZvcmV7Y29udGVudDoiXGYyNjMifS5mYS1vZG5va2xhc3NuaWtpLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyNjQifS5mYS1vcGVuY2FydDpiZWZvcmV7Y29udGVudDoiXGYyM2QifS5mYS1vcGVuaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTliIn0uZmEtb3BlcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMjZhIn0uZmEtb3B0aW4tbW9uc3RlcjpiZWZvcmV7Y29udGVudDoiXGYyM2MifS5mYS1vc2k6YmVmb3Jle2NvbnRlbnQ6IlxmNDFhIn0uZmEtb3V0ZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2IifS5mYS1wYWdlNDpiZWZvcmV7Y29udGVudDoiXGYzZDcifS5mYS1wYWdlbGluZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMThjIn0uZmEtcGFpbnQtYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWZjIn0uZmEtcGFsZmVkOmJlZm9yZXtjb250ZW50OiJcZjNkOCJ9LmZhLXBhcGVyLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjFkOCJ9LmZhLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGYwYzYifS5mYS1wYXJhZ3JhcGg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRkIn0uZmEtcGFzdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGVhIn0uZmEtcGF0cmVvbjpiZWZvcmV7Y29udGVudDoiXGYzZDkifS5mYS1wYXVzZTpiZWZvcmV7Y29udGVudDoiXGYwNGMifS5mYS1wYXVzZS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjhiIn0uZmEtcGF3OmJlZm9yZXtjb250ZW50OiJcZjFiMCJ9LmZhLXBheXBhbDpiZWZvcmV7Y29udGVudDoiXGYxZWQifS5mYS1wZW4tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9LmZhLXBlbmNpbC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzAzIn0uZmEtcGVyY2VudDpiZWZvcmV7Y29udGVudDoiXGYyOTUifS5mYS1wZXJpc2NvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2RhIn0uZmEtcGhhYnJpY2F0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmM2RiIn0uZmEtcGhvZW5peC1mcmFtZXdvcms6YmVmb3Jle2NvbnRlbnQ6IlxmM2RjIn0uZmEtcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk1In0uZmEtcGhvbmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5OCJ9LmZhLXBob25lLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGYyYTAifS5mYS1waHA6YmVmb3Jle2NvbnRlbnQ6IlxmNDU3In0uZmEtcGllZC1waXBlcjpiZWZvcmV7Y29udGVudDoiXGYyYWUifS5mYS1waWVkLXBpcGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxYTgifS5mYS1waWVkLXBpcGVyLXBwOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9LmZhLXBpbnRlcmVzdDpiZWZvcmV7Y29udGVudDoiXGYwZDIifS5mYS1waW50ZXJlc3QtcDpiZWZvcmV7Y29udGVudDoiXGYyMzEifS5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkMyJ9LmZhLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjA3MiJ9LmZhLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDRiIn0uZmEtcGxheS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ0In0uZmEtcGxheXN0YXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmM2RmIn0uZmEtcGx1ZzpiZWZvcmV7Y29udGVudDoiXGYxZTYifS5mYS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjA2NyJ9LmZhLXBsdXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NSJ9LmZhLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBmZSJ9LmZhLXBvZGNhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmNlIn0uZmEtcG91bmQtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTQifS5mYS1wb3dlci1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDExIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDJmIn0uZmEtcHJvZHVjdC1odW50OmJlZm9yZXtjb250ZW50OiJcZjI4OCJ9LmZhLXB1c2hlZDpiZWZvcmV7Y29udGVudDoiXGYzZTEifS5mYS1wdXp6bGUtcGllY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMTJlIn0uZmEtcHl0aG9uOmJlZm9yZXtjb250ZW50OiJcZjNlMiJ9LmZhLXFxOmJlZm9yZXtjb250ZW50OiJcZjFkNiJ9LmZhLXFyY29kZTpiZWZvcmV7Y29udGVudDoiXGYwMjkifS5mYS1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDoiXGYxMjgifS5mYS1xdWVzdGlvbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU5In0uZmEtcXVpZGRpdGNoOmJlZm9yZXtjb250ZW50OiJcZjQ1OCJ9LmZhLXF1aW5zY2FwZTpiZWZvcmV7Y29udGVudDoiXGY0NTkifS5mYS1xdW9yYTpiZWZvcmV7Y29udGVudDoiXGYyYzQifS5mYS1xdW90ZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwZCJ9LmZhLXF1b3RlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwZSJ9LmZhLXJhbmRvbTpiZWZvcmV7Y29udGVudDoiXGYwNzQifS5mYS1yYXZlbHJ5OmJlZm9yZXtjb250ZW50OiJcZjJkOSJ9LmZhLXJlYWN0OmJlZm9yZXtjb250ZW50OiJcZjQxYiJ9LmZhLXJlYmVsOmJlZm9yZXtjb250ZW50OiJcZjFkMCJ9LmZhLXJlY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI4In0uZmEtcmVkLXJpdmVyOmJlZm9yZXtjb250ZW50OiJcZjNlMyJ9LmZhLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxYTEifS5mYS1yZWRkaXQtYWxpZW46YmVmb3Jle2NvbnRlbnQ6IlxmMjgxIn0uZmEtcmVkZGl0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxYTIifS5mYS1yZWRvOmJlZm9yZXtjb250ZW50OiJcZjAxZSJ9LmZhLXJlZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmOSJ9LmZhLXJlZ2lzdGVyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjVkIn0uZmEtcmVuZGFjdDpiZWZvcmV7Y29udGVudDoiXGYzZTQifS5mYS1yZW5yZW46YmVmb3Jle2NvbnRlbnQ6IlxmMThiIn0uZmEtcmVwbHk6YmVmb3Jle2NvbnRlbnQ6IlxmM2U1In0uZmEtcmVwbHktYWxsOmJlZm9yZXtjb250ZW50OiJcZjEyMiJ9LmZhLXJlcGx5ZDpiZWZvcmV7Y29udGVudDoiXGYzZTYifS5mYS1yZXNvbHZpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmM2U3In0uZmEtcmV0d2VldDpiZWZvcmV7Y29udGVudDoiXGYwNzkifS5mYS1yb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOCJ9LmZhLXJvY2tldDpiZWZvcmV7Y29udGVudDoiXGYxMzUifS5mYS1yb2NrZXRjaGF0OmJlZm9yZXtjb250ZW50OiJcZjNlOCJ9LmZhLXJvY2tybXM6YmVmb3Jle2NvbnRlbnQ6IlxmM2U5In0uZmEtcnNzOmJlZm9yZXtjb250ZW50OiJcZjA5ZSJ9LmZhLXJzcy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0uZmEtcnVibGUtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTgifS5mYS1ydXBlZS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NiJ9LmZhLXNhZmFyaTpiZWZvcmV7Y29udGVudDoiXGYyNjcifS5mYS1zYXNzOmJlZm9yZXtjb250ZW50OiJcZjQxZSJ9LmZhLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM3In0uZmEtc2NobGl4OmJlZm9yZXtjb250ZW50OiJcZjNlYSJ9LmZhLXNjcmliZDpiZWZvcmV7Y29udGVudDoiXGYyOGEifS5mYS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMDAyIn0uZmEtc2VhcmNoLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjAxMCJ9LmZhLXNlYXJjaC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjAwZSJ9LmZhLXNlYXJjaGVuZ2luOmJlZm9yZXtjb250ZW50OiJcZjNlYiJ9LmZhLXNlbGxjYXN0OmJlZm9yZXtjb250ZW50OiJcZjJkYSJ9LmZhLXNlbGxzeTpiZWZvcmV7Y29udGVudDoiXGYyMTMifS5mYS1zZXJ2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjMzIn0uZmEtc2VydmljZXN0YWNrOmJlZm9yZXtjb250ZW50OiJcZjNlYyJ9LmZhLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjA2NCJ9LmZhLXNoYXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxZTAifS5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFlMSJ9LmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1zaGVrZWwtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYyMGIifS5mYS1zaGllbGQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNlZCJ9LmZhLXNoaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjFhIn0uZmEtc2hpcnRzaW5idWxrOmJlZm9yZXtjb250ZW50OiJcZjIxNCJ9LmZhLXNob3BwaW5nLWJhZzpiZWZvcmV7Y29udGVudDoiXGYyOTAifS5mYS1zaG9wcGluZy1iYXNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjkxIn0uZmEtc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYwN2EifS5mYS1zaG93ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmNjIn0uZmEtc2lnbi1pbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY2In0uZmEtc2lnbi1sYW5ndWFnZTpiZWZvcmV7Y29udGVudDoiXGYyYTcifS5mYS1zaWduLW91dC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY1In0uZmEtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjAxMiJ9LmZhLXNpbXBseWJ1aWx0OmJlZm9yZXtjb250ZW50OiJcZjIxNSJ9LmZhLXNpc3RyaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2VlIn0uZmEtc2l0ZW1hcDpiZWZvcmV7Y29udGVudDoiXGYwZTgifS5mYS1za3lhdGxhczpiZWZvcmV7Y29udGVudDoiXGYyMTYifS5mYS1za3lwZTpiZWZvcmV7Y29udGVudDoiXGYxN2UifS5mYS1zbGFjazpiZWZvcmV7Y29udGVudDoiXGYxOTgifS5mYS1zbGFjay1oYXNoOmJlZm9yZXtjb250ZW50OiJcZjNlZiJ9LmZhLXNsaWRlcnMtaDpiZWZvcmV7Y29udGVudDoiXGYxZGUifS5mYS1zbGlkZXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjFlNyJ9LmZhLXNtaWxlOmJlZm9yZSwuZmEtc21pbGUtbzpiZWZvcmV7Y29udGVudDoiXGYxMTgifS5mYS1zbmFwY2hhdDpiZWZvcmV7Y29udGVudDoiXGYyYWIifS5mYS1zbmFwY2hhdC1naG9zdDpiZWZvcmV7Y29udGVudDoiXGYyYWMifS5mYS1zbmFwY2hhdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmFkIn0uZmEtc25vd2ZsYWtlOmJlZm9yZXtjb250ZW50OiJcZjJkYyJ9LmZhLXNvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRjIn0uZmEtc29ydC1hbHBoYS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1ZCJ9LmZhLXNvcnQtYWxwaGEtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTVlIn0uZmEtc29ydC1hbW91bnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjAifS5mYS1zb3J0LWFtb3VudC11cDpiZWZvcmV7Y29udGVudDoiXGYxNjEifS5mYS1zb3J0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGRkIn0uZmEtc29ydC1udW1lcmljLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYyIn0uZmEtc29ydC1udW1lcmljLXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9LmZhLXNvcnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGRlIn0uZmEtc291bmRjbG91ZDpiZWZvcmV7Y29udGVudDoiXGYxYmUifS5mYS1zcGFjZS1zaHV0dGxlOmJlZm9yZXtjb250ZW50OiJcZjE5NyJ9LmZhLXNwZWFrYXA6YmVmb3Jle2NvbnRlbnQ6IlxmM2YzIn0uZmEtc3Bpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYxMTAifS5mYS1zcG90aWZ5OmJlZm9yZXtjb250ZW50OiJcZjFiYyJ9LmZhLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwYzgifS5mYS1zcXVhcmUtZnVsbDpiZWZvcmV7Y29udGVudDoiXGY0NWMifS5mYS1zdGFjay1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYxOGQifS5mYS1zdGFjay1vdmVyZmxvdzpiZWZvcmV7Y29udGVudDoiXGYxNmMifS5mYS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjAwNSJ9LmZhLXN0YXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYwODkifS5mYS1zdGF5bGlua2VkOmJlZm9yZXtjb250ZW50OiJcZjNmNSJ9LmZhLXN0ZWFtOmJlZm9yZXtjb250ZW50OiJcZjFiNiJ9LmZhLXN0ZWFtLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxYjcifS5mYS1zdGVhbS1zeW1ib2w6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y2In0uZmEtc3RlcC1iYWNrd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNDgifS5mYS1zdGVwLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUxIn0uZmEtc3RldGhvc2NvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGYxIn0uZmEtc3RpY2tlci1tdWxlOmJlZm9yZXtjb250ZW50OiJcZjNmNyJ9LmZhLXN0aWNreS1ub3RlOmJlZm9yZXtjb250ZW50OiJcZjI0OSJ9LmZhLXN0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMDRkIn0uZmEtc3RvcC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjhkIn0uZmEtc3RvcHdhdGNoOmJlZm9yZXtjb250ZW50OiJcZjJmMiJ9LmZhLXN0cmF2YTpiZWZvcmV7Y29udGVudDoiXGY0MjgifS5mYS1zdHJlZXQtdmlldzpiZWZvcmV7Y29udGVudDoiXGYyMWQifS5mYS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZjBjYyJ9LmZhLXN0cmlwZTpiZWZvcmV7Y29udGVudDoiXGY0MjkifS5mYS1zdHJpcGUtczpiZWZvcmV7Y29udGVudDoiXGY0MmEifS5mYS1zdHVkaW92aW5hcmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y4In0uZmEtc3R1bWJsZXVwb246YmVmb3Jle2NvbnRlbnQ6IlxmMWE0In0uZmEtc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMyJ9LmZhLXN1YnNjcmlwdDpiZWZvcmV7Y29udGVudDoiXGYxMmMifS5mYS1zdWJ3YXk6YmVmb3Jle2NvbnRlbnQ6IlxmMjM5In0uZmEtc3VpdGNhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGYyIn0uZmEtc3VuOmJlZm9yZSwuZmEtc3VuLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTg1In0uZmEtc3VwZXJwb3dlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMmRkIn0uZmEtc3VwZXJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJiIn0uZmEtc3VwcGxlOmJlZm9yZXtjb250ZW50OiJcZjNmOSJ9LmZhLXN5bmM6YmVmb3Jle2NvbnRlbnQ6IlxmMDIxIn0uZmEtc3luYy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmYxIn0uZmEtdGFibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGNlIn0uZmEtdGFibGUtdGVubmlzOmJlZm9yZXtjb250ZW50OiJcZjQ1ZCJ9LmZhLXRhYmxldDpiZWZvcmV7Y29udGVudDoiXGYxMGEifS5mYS10YWJsZXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmYSJ9LmZhLXRhY2hvbWV0ZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNmZCJ9LmZhLXRhZzpiZWZvcmV7Y29udGVudDoiXGYwMmIifS5mYS10YWdzOmJlZm9yZXtjb250ZW50OiJcZjAyYyJ9LmZhLXRhc2tzOmJlZm9yZXtjb250ZW50OiJcZjBhZSJ9LmZhLXRheGk6YmVmb3Jle2NvbnRlbnQ6IlxmMWJhIn0uZmEtdGVsZWdyYW06YmVmb3Jle2NvbnRlbnQ6IlxmMmM2In0uZmEtdGVsZWdyYW0tcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZlIn0uZmEtdGVuY2VudC13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxZDUifS5mYS10ZXJtaW5hbDpiZWZvcmV7Y29udGVudDoiXGYxMjAifS5mYS10ZXh0LWhlaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzQifS5mYS10ZXh0LXdpZHRoOmJlZm9yZXtjb250ZW50OiJcZjAzNSJ9LmZhLXRoOmJlZm9yZXtjb250ZW50OiJcZjAwYSJ9LmZhLXRoLWxhcmdlOmJlZm9yZXtjb250ZW50OiJcZjAwOSJ9LmZhLXRoLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDBiIn0uZmEtdGhlbWVpc2xlOmJlZm9yZXtjb250ZW50OiJcZjJiMiJ9LmZhLXRoZXJtb21ldGVyLWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjJjYiJ9LmZhLXRoZXJtb21ldGVyLWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMmM3In0uZmEtdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyYzkifS5mYS10aGVybW9tZXRlci1xdWFydGVyOmJlZm9yZXtjb250ZW50OiJcZjJjYSJ9LmZhLXRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzOmJlZm9yZXtjb250ZW50OiJcZjJjOCJ9LmZhLXRodW1icy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9LmZhLXRodW1icy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjQifS5mYS10aHVtYnRhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDhkIn0uZmEtdGlja2V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmYifS5mYS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYwMGQifS5mYS10aW1lcy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU3In0uZmEtdGludDpiZWZvcmV7Y29udGVudDoiXGYwNDMifS5mYS10b2dnbGUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9LmZhLXRvZ2dsZS1vbjpiZWZvcmV7Y29udGVudDoiXGYyMDUifS5mYS10cmFkZW1hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMjVjIn0uZmEtdHJhaW46YmVmb3Jle2NvbnRlbnQ6IlxmMjM4In0uZmEtdHJhbnNnZW5kZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjI0In0uZmEtdHJhbnNnZW5kZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjIyNSJ9LmZhLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmOCJ9LmZhLXRyYXNoLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWQifS5mYS10cmVlOmJlZm9yZXtjb250ZW50OiJcZjFiYiJ9LmZhLXRyZWxsbzpiZWZvcmV7Y29udGVudDoiXGYxODEifS5mYS10cmlwYWR2aXNvcjpiZWZvcmV7Y29udGVudDoiXGYyNjIifS5mYS10cm9waHk6YmVmb3Jle2NvbnRlbnQ6IlxmMDkxIn0uZmEtdHJ1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGQxIn0uZmEtdHR5OmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9LmZhLXR1bWJscjpiZWZvcmV7Y29udGVudDoiXGYxNzMifS5mYS10dW1ibHItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE3NCJ9LmZhLXR2OmJlZm9yZXtjb250ZW50OiJcZjI2YyJ9LmZhLXR3aXRjaDpiZWZvcmV7Y29udGVudDoiXGYxZTgifS5mYS10d2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjA5OSJ9LmZhLXR3aXR0ZXItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA4MSJ9LmZhLXR5cG8zOmJlZm9yZXtjb250ZW50OiJcZjQyYiJ9LmZhLXViZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDAyIn0uZmEtdWlraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDAzIn0uZmEtdW1icmVsbGE6YmVmb3Jle2NvbnRlbnQ6IlxmMGU5In0uZmEtdW5kZXJsaW5lOmJlZm9yZXtjb250ZW50OiJcZjBjZCJ9LmZhLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmMGUyIn0uZmEtdW5kby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVhIn0uZmEtdW5pcmVnaXN0cnk6YmVmb3Jle2NvbnRlbnQ6IlxmNDA0In0uZmEtdW5pdmVyc2FsLWFjY2VzczpiZWZvcmV7Y29udGVudDoiXGYyOWEifS5mYS11bml2ZXJzaXR5OmJlZm9yZXtjb250ZW50OiJcZjE5YyJ9LmZhLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYxMjcifS5mYS11bmxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDljIn0uZmEtdW5sb2NrLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxM2UifS5mYS11bnRhcHBkOmJlZm9yZXtjb250ZW50OiJcZjQwNSJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwOTMifS5mYS11c2I6YmVmb3Jle2NvbnRlbnQ6IlxmMjg3In0uZmEtdXNlcjpiZWZvcmV7Y29udGVudDoiXGYwMDcifS5mYS11c2VyLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyYmQifS5mYS11c2VyLW1kOmJlZm9yZXtjb250ZW50OiJcZjBmMCJ9LmZhLXVzZXItcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMzQifS5mYS11c2VyLXNlY3JldDpiZWZvcmV7Y29udGVudDoiXGYyMWIifS5mYS11c2VyLXRpbWVzOmJlZm9yZXtjb250ZW50OiJcZjIzNSJ9LmZhLXVzZXJzOmJlZm9yZXtjb250ZW50OiJcZjBjMCJ9LmZhLXVzc3VubmFoOmJlZm9yZXtjb250ZW50OiJcZjQwNyJ9LmZhLXV0ZW5zaWwtc3Bvb246YmVmb3Jle2NvbnRlbnQ6IlxmMmU1In0uZmEtdXRlbnNpbHM6YmVmb3Jle2NvbnRlbnQ6IlxmMmU3In0uZmEtdmFhZGluOmJlZm9yZXtjb250ZW50OiJcZjQwOCJ9LmZhLXZlbnVzOmJlZm9yZXtjb250ZW50OiJcZjIyMSJ9LmZhLXZlbnVzLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGYyMjYifS5mYS12ZW51cy1tYXJzOmJlZm9yZXtjb250ZW50OiJcZjIyOCJ9LmZhLXZpYWNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMjM3In0uZmEtdmlhZGVvOmJlZm9yZXtjb250ZW50OiJcZjJhOSJ9LmZhLXZpYWRlby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmFhIn0uZmEtdmliZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDA5In0uZmEtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmMDNkIn0uZmEtdmltZW86YmVmb3Jle2NvbnRlbnQ6IlxmNDBhIn0uZmEtdmltZW8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5NCJ9LmZhLXZpbWVvLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMjdkIn0uZmEtdmluZTpiZWZvcmV7Y29udGVudDoiXGYxY2EifS5mYS12azpiZWZvcmV7Y29udGVudDoiXGYxODkifS5mYS12bnY6YmVmb3Jle2NvbnRlbnQ6IlxmNDBiIn0uZmEtdm9sbGV5YmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1ZiJ9LmZhLXZvbHVtZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjAyNyJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDI2In0uZmEtdm9sdW1lLXVwOmJlZm9yZXtjb250ZW50OiJcZjAyOCJ9LmZhLXZ1ZWpzOmJlZm9yZXtjb250ZW50OiJcZjQxZiJ9LmZhLXdlaWJvOmJlZm9yZXtjb250ZW50OiJcZjE4YSJ9LmZhLXdlaXhpbjpiZWZvcmV7Y29udGVudDoiXGYxZDcifS5mYS13aGF0c2FwcDpiZWZvcmV7Y29udGVudDoiXGYyMzIifS5mYS13aGF0c2FwcC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDBjIn0uZmEtd2hlZWxjaGFpcjpiZWZvcmV7Y29udGVudDoiXGYxOTMifS5mYS13aG1jczpiZWZvcmV7Y29udGVudDoiXGY0MGQifS5mYS13aWZpOmJlZm9yZXtjb250ZW50OiJcZjFlYiJ9LmZhLXdpa2lwZWRpYS13OmJlZm9yZXtjb250ZW50OiJcZjI2NiJ9LmZhLXdpbmRvdy1jbG9zZTpiZWZvcmV7Y29udGVudDoiXGY0MTAifS5mYS13aW5kb3ctbWF4aW1pemU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQwIn0uZmEtd2luZG93LW1pbmltaXplOmJlZm9yZXtjb250ZW50OiJcZjJkMSJ9LmZhLXdpbmRvdy1yZXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjJkMiJ9LmZhLXdpbmRvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTdhIn0uZmEtd29uLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU5In0uZmEtd29yZHByZXNzOmJlZm9yZXtjb250ZW50OiJcZjE5YSJ9LmZhLXdvcmRwcmVzcy1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDExIn0uZmEtd3BiZWdpbm5lcjpiZWZvcmV7Y29udGVudDoiXGYyOTcifS5mYS13cGV4cGxvcmVyOmJlZm9yZXtjb250ZW50OiJcZjJkZSJ9LmZhLXdwZm9ybXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjk4In0uZmEtd3JlbmNoOmJlZm9yZXtjb250ZW50OiJcZjBhZCJ9LmZhLXhib3g6YmVmb3Jle2NvbnRlbnQ6IlxmNDEyIn0uZmEteGluZzpiZWZvcmV7Y29udGVudDoiXGYxNjgifS5mYS14aW5nLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNjkifS5mYS15LWNvbWJpbmF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjNiIn0uZmEteWFob286YmVmb3Jle2NvbnRlbnQ6IlxmMTllIn0uZmEteWFuZGV4OmJlZm9yZXtjb250ZW50OiJcZjQxMyJ9LmZhLXlhbmRleC1pbnRlcm5hdGlvbmFsOmJlZm9yZXtjb250ZW50OiJcZjQxNCJ9LmZhLXllbHA6YmVmb3Jle2NvbnRlbnQ6IlxmMWU5In0uZmEteWVuLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU3In0uZmEteW9hc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmIxIn0uZmEteW91dHViZTpiZWZvcmV7Y29udGVudDoiXGYxNjcifS5mYS15b3V0dWJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MzEifQovKiogL2Nzcy92Mi9hbmltYXRlLmNzcyAqKi8KLmFuaW0tYmVhdCB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0OyBhbmltYXRpb24tbmFtZTphbmltLWJlYXQ7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KSB9IC5hbmltLWJvdW5jZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1ib3VuY2U7IGFuaW1hdGlvbi1uYW1lOmFuaW0tYm91bmNlOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguMjgsLjg0LC40MiwxKSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC4yOCwuODQsLjQyLDEpKSB9IC5hbmltLWZhZGUgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tZmFkZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1mYWRlOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSkgfSAuYW5pbS1iZWF0LWZhZGUsLmFuaW0tZmFkZSB7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcykgfSAuYW5pbS1iZWF0LWZhZGUgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdC1mYWRlOyBhbmltYXRpb24tbmFtZTphbmltLWJlYXQtZmFkZTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpIH0gLmFuaW0tZmxpcCB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1mbGlwOyBhbmltYXRpb24tbmFtZTphbmltLWZsaXA7IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyBhbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sM3MpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwzcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsZWFzZS1pbi1vdXQpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KSB9IC5hbmltLXNoYWtlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLXNoYWtlOyBhbmltYXRpb24tbmFtZTphbmltLXNoYWtlOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcik7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKSB9IC5hbmltLXNoYWtlLC5hbmltLXNwaW4geyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpIH0gLmFuaW0tc3BpbiB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyBhbmltYXRpb24tbmFtZTphbmltLXNwaW47IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMnMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwycyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpIH0gLmFuaW0tc3Bpbi1yZXZlcnNlIHsgLS1hbmltLWRpcmVjdGlvbjpyZXZlcnNlIH0gLmFuaW0tcHVsc2UsLmFuaW0tc3Bpbi1wdWxzZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyBhbmltYXRpb24tbmFtZTphbmltLXNwaW47IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyBhbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyBhbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsc3RlcHMoOCkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLHN0ZXBzKDgpKSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWJlYXQgeyAwJSw5MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNDUlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSkgfSB9IEBrZXlmcmFtZXMgYW5pbS1iZWF0IHsgMCUsOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDQ1JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1ib3VuY2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gMTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApIH0gMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSkgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCkgfSA1NyUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKSB9IDY0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IH0gQGtleWZyYW1lcyBhbmltLWJvdW5jZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSAxMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCkgfSAzMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKSB9IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKSB9IDU3JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpIH0gNjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1mYWRlIHsgNTAlIHsgb3BhY2l0eTp2YXIoLS1hbmltLWZhZGUtb3BhY2l0eSwuNCkgfSB9IEBrZXlmcmFtZXMgYW5pbS1mYWRlIHsgNTAlIHsgb3BhY2l0eTp2YXIoLS1hbmltLWZhZGUtb3BhY2l0eSwuNCkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLWJlYXQtZmFkZSB7IDAlLHRvIHsgb3BhY2l0eTp2YXIoLS1hbmltLWJlYXQtZmFkZS1vcGFjaXR5LC40KTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDUwJSB7IG9wYWNpdHk6MTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSkgfSB9IEBrZXlmcmFtZXMgYW5pbS1iZWF0LWZhZGUgeyAwJSx0byB7IG9wYWNpdHk6dmFyKC0tYW5pbS1iZWF0LWZhZGUtb3BhY2l0eSwuNCk7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA1MCUgeyBvcGFjaXR5OjE7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1mbGlwIHsgNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKTsgdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSkgfSB9IEBrZXlmcmFtZXMgYW5pbS1mbGlwIHsgNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tYW5pbS1mbGlwLXgsMCksdmFyKC0tYW5pbS1mbGlwLXksMSksdmFyKC0tYW5pbS1mbGlwLXosMCksdmFyKC0tYW5pbS1mbGlwLWFuZ2xlLC0xODBkZWcpKTsgdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSkgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBhbmltLXNoYWtlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpIH0gNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE1ZGVnKSB9IDglLDI0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xOGRlZykgfSAxMiUsMjglIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZykgfSAxNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpIH0gMjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDIyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZykgfSAzMiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpIH0gMzYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEyZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZykgfSA0MCUsdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB9IEBrZXlmcmFtZXMgYW5pbS1zaGFrZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKSB9IDQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZykgfSA4JSwyNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpIH0gMTIlLDI4JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMThkZWcpIH0gMTYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKSB9IDIwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpIH0gMzIlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKSB9IDM2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpIH0gNDAlLHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1zcGluIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgfSB0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7IHRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pIH0gfSBAa2V5ZnJhbWVzIGFuaW0tc3BpbiB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pOyB0cmFuc2Zvcm06cm90YXRlKDF0dXJuKSB9IH0gQHN1cHBvcnRzICgtd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZSkgeyBib2R5ICNwcm9tb1RvcEJ0biAuYW5pbS1mbGlweyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp1bnNldDsgYW5pbWF0aW9uLWRlbGF5OnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dW5zZXQ7IGFuaW1hdGlvbi1kaXJlY3Rpb246dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnVuc2V0OyBhbmltYXRpb24tZHVyYXRpb246dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp1bnNldDsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnVuc2V0OyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnVuc2V0OyB9IH0gLnB1bHNhdGluZy1jaXJjbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MzBweDsgaGVpZ2h0OjMwcHg7IGZsZXg6MCAwIGF1dG87ICY6YmVmb3JlIHsgY29udGVudDonJzsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjMwMCU7IGhlaWdodDozMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi1sZWZ0Oi0xMDAlOyBtYXJnaW4tdG9wOi0xMDAlOyBib3JkZXItcmFkaXVzOjQ1cHg7IGJhY2tncm91bmQtY29sb3I6IzAxYTRlOTsgYW5pbWF0aW9uOnB1bHNlLXJpbmcgMS4yNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSkgaW5maW5pdGU7IH0gJjphZnRlciB7IGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHRvcDowOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czoxNXB4OyBib3gtc2hhZG93OjAgMCA4cHggcmdiYSgwLDAsMCwuMyk7IGFuaW1hdGlvbjpwdWxzZS1kb3QgMS4yNXMgY3ViaWMtYmV6aWVyKDAuNDU1LCAwLjAzLCAwLjUxNSwgMC45NTUpIC0uNHMgaW5maW5pdGU7IH0gfSBAa2V5ZnJhbWVzIHB1bHNlLXJpbmcgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSguMzMpOyB9IDgwJSwgMTAwJSB7IG9wYWNpdHk6MDsgfSB9IEBrZXlmcmFtZXMgcHVsc2UtZG90IHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjgpOyB9IDUwJSB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgfSAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKC44KTsgfSB9Ci8qKiAvY3NzL2Rpdl9sYXllcnMuY3NzICoqLwpkaXYuTWFpbkJveExheWVyeyB3aWR0aDptaW4oMTAwJSw5NjBweCk7IG1hcmdpbjowIGF1dG87IH0gZGl2Lk1haW5Cb3hMYXllciBIMXsgd2lkdGg6OTQwcHg7IH0gZGl2Lk1haW5Cb3hMYXllciAucmVzcG9uc2l2ZS1lZGl0b3IgaDEgeyB3aWR0aDppbml0aWFsOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LmNyZWRzaWlEaXYgSDF7IHdpZHRoOmF1dG87IH0gLmNyZWRzaWlEaXZ7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5MZWZ0Qm94TGF5ZXIgeyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LlJpZ2h0Qm94TGF5ZXIgeyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIgeyBwYWRkaW5nOjEwcHg7IGZsb2F0OmxlZnQ7IHdpZHRoOjk0MHB4OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIgeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbjowcHg7IHdpZHRoOjEwMCU7IGNsZWFyOmJvdGg7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllci50b3BCb3JkZXJlZHsgYm9yZGVyLXRvcDoxcHggc29saWQgI2NjYzsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyLmJvdHRvbUJvcmRlcmVkeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC5lYXN0eyBmbG9hdDpyaWdodDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC53ZXN0eyBmbG9hdDpsZWZ0OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2V7IHdpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZSA+IGltZ3sgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyI2hpc3RvcnlEaXYgZGl2LklubmVyQm94TGF5ZXIgI2JyZWFkY3J1bWJzIHsgbWFyZ2luOjA7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgeyB3aWR0aDoxMjAwcHg7IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyIHsgd2lkdGg6MTE4MHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllci54dGltZUZyYW1lIHsgd2lkdGg6MTIwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBIMXsgd2lkdGg6MTE4MHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAucmVzcG9uc2l2ZS1lZGl0b3IgaDEgeyB3aWR0aDppbml0aWFsOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBkaXYuY3JlZHNpaURpdiBIMXsgd2lkdGg6YXV0bzsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlIHsgd2lkdGg6MTE4MHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UuVEVBTSB7IHdpZHRoOjk2MHB4OyB9IH0gZGl2Lk1haW5Cb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuTGVmdEJveExheWVyLnVjcENvbnRlbnRGdWxsV2lkdGggeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyLnVjcENvbnRlbnRGdWxsV2lkdGggeyB3aWR0aDoxMDAlIWltcG9ydGFudDsgfQovKiogL2Nzcy9kaXZfc3BhbnMuY3NzICoqLwouZGl2U3BhbntmbG9hdDpsZWZ0O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZGl2U3Bhbi5kaXZTcGFuTGVmdHtmbG9hdDpsZWZ0fS5kaXZTcGFuLmRpdlNwYW5SaWdodHtmbG9hdDpyaWdodH0uZGl2U3Bhbi5kaXZTcGFuMXt3aWR0aDo4LjMzMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjJ7d2lkdGg6MTYuNjY2NjY2NjY2NjY2NjclfS5kaXZTcGFuLmRpdlNwYW4ze3dpZHRoOjI1JX0uZGl2U3Bhbi5kaXZTcGFuNHt3aWR0aDozMy4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjV7d2lkdGg6NDEuNjY2NjY2NjY2NjY2NjclfS5kaXZTcGFuLmRpdlNwYW42e3dpZHRoOjUwJX0uZGl2U3Bhbi5kaXZTcGFuN3t3aWR0aDo1OC4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3Bhbjh7d2lkdGg6NjYuNjY2NjY2NjY2NjY2NjYlfS5kaXZTcGFuLmRpdlNwYW45e3dpZHRoOjc1JX0uZGl2U3Bhbi5kaXZTcGFuMTB7d2lkdGg6ODMuMzMzMzMzMzMzMzMzMzMlfS5kaXZTcGFuLmRpdlNwYW4xMXt3aWR0aDo5MS42NjY2NjY2NjY2NjY2NiV9LmRpdlNwYW4uZGl2U3BhbjEye3dpZHRoOjEwMCV9Ci8qKiAvY3NzL21lbnUtYmFzZS5jc3MgKiovCmJvZHkgLnVwX21lbnUsIGJvZHkgLnVwX21lbnUgKiB7IGJveC1zaXppbmc6Y29udGVudC1ib3ggIWltcG9ydGFudDsgfSBib2R5IC51cF9tZW51IHVsLm5hdiA+IGxpID4gdWwuc3ViLCBib2R5IC51cF9tZW51IHVsLm5hdiA+IGxpID4gdWwuc3ViICosIGJvZHkgLnVwX21lbnUgaW5wdXQsIGJvZHkgLnVwX21lbnUgc2VsZWN0LCBib2R5IC51cF9tZW51IHRleHRhcmVhLCBib2R5IC51cF9tZW51IGJ1dHRvbiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveCAhaW1wb3J0YW50OyB9IGJvZHkgLnVwX21lbnUsIGJvZHkgLnVwX21lbnUgPiAuUzEwMFBlcmNlbnRXaWR0aCB7IGJvcmRlci13aWR0aDppbml0aWFsOyBib3JkZXItc3R5bGU6aW5pdGlhbDsgYm9yZGVyLWNvbG9yOmluaXRpYWw7IH0gLnByaWNlIHsgZGlzcGxheTpub25lOyB9IC5tZW51LXNwZWMtcHJpY2UgPiAucHJpY2UgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46aW5pdGlhbDsgbWFyZ2luLXRvcDo0cHg7IHdpZHRoOmluaXRpYWw7IGZsb2F0OmluaXRpYWw7IH0gLm1lbnUtc3BlYy1wcmljZSA+IC5wcmljZSA+IHNwYW4geyBkaXNwbGF5Omxpc3QtaXRlbTsgbGluZS1oZWlnaHQ6MTVweDsgfSBpbWcuaG9tZS1pY29uIHsgcGFkZGluZy10b3A6MCAhaW1wb3J0YW50OyB9IGJvZHkgPiAudXBfbWVudSA+IC5uYXYgPiAuaXNCb2xkeyBmb250LXdlaWdodDpib2xkOyB9IC5uYXYgPiBsaSNNYWluTWVudV9IT01FID4gYS5pc0ltYWdlID4gc3BhbnsgaGVpZ2h0OjMzcHg7IHdpZHRoOjMxcHg7IHBhZGRpbmc6MDsgdGV4dC1pbmRlbnQ6LTIwMDBlbTsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvaWNvbl9ob21lX3RhYkNvbG9yLnBuZycpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciAwOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBkaXNwbGF5OmJsb2NrOyB9IC5uYXYgPiBsaSNNYWluTWVudV9IT01FOmhvdmVyID4gYS5pc0ltYWdlID4gc3BhbnsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvaWNvbl9ob21lX2hvdmVyLnBuZycpOyB9IHVsLnNsaW0tc3VibWVudSA+IGxpID4gYSB7IHBhZGRpbmc6NnB4IDE1cHggIWltcG9ydGFudDsgdGV4dC13cmFwOmF1dG87IH0gdWwuc2xpbS1zdWJtZW51LTIgPiBsaSA+IGEgeyBwYWRkaW5nOjlweCAxNXB4ICFpbXBvcnRhbnQ7IHRleHQtd3JhcDphdXRvOyB9IHVsLnNsaW0tc3VibWVudS0zID4gbGkgPiBhIHsgcGFkZGluZzoxMnB4IDE1cHggIWltcG9ydGFudDsgfSB1bC5zbGltLXN1Ym1lbnUtMyA+IGxpID4gYTpub3QoLnRvcF9saW5rKSB7IHRleHQtd3JhcDphdXRvOyBtaW4td2lkdGg6MjAwcHg7IH0gdWwuc3ViID4gbGkgPiBhIHsgdGV4dC13cmFwOmF1dG87IG1pbi13aWR0aDoyMDBweDsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGEgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgcGFkZGluZy1ib3R0b206MTVweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgbGV0dGVyLXNwYWNpbmc6MXB4OyBmb250LXdlaWdodDpib2xkOyB9IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID5saS5oYXNTdWI6aG92ZXIgPiBhLCAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X1RBQl9DT01NRVJDSUFMPnVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPmxpLmhhc1N1Yjpob3ZlciA+IGF7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSBkaXYubWFpbm1lbnUtc3VibWVudSB7IGxlZnQ6MTQwJTsgdG9wOjA7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyB6LWluZGV4OjE7IH0gLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaTpob3ZlciA+IC5tYWlubWVudS1zdWJtZW51LCAudXBfbWVudSB1bC5uYXYgbGkjTWFpbk1lbnVfVVNFRCB1bC5zdWIgPiBsaTpob3ZlciA+IC5tYWlubWVudS1zdWJtZW51LCBsaVtkYXRhLWlkPSJTVUJfVEFCX0NPTU1FUkNJQUxfQ09NTUVSIl06aG92ZXIgPiAubWFpbm1lbnUtc3VibWVudSB7IGRpc3BsYXk6YmxvY2s7IHZpc2liaWxpdHk6dmlzaWJsZTsgbGVmdDoxMDAlOyB0cmFuc2l0aW9uOmFsbCAwLjJzLCBvcGFjaXR5IDAuNXM7IG9wYWNpdHk6MTsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViLCBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgeyBwb3NpdGlvbjpzdGF0aWM7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiwgZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOyB9IC5tZW51LXRlY2gtc3BlY3MgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDo5NCU7IHRvcDowOyAtd2Via2l0LWJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgZGlzcGxheTpub25lOyBwYWRkaW5nOjE0cHg7IGJhY2tncm91bmQ6d2hpdGU7IHRleHQtYWxpZ246bGVmdDsgei1pbmRleDoxMDsgY29sb3I6dmFyKC0tYmxhY2spOyBtaW4td2lkdGg6MjUwcHg7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgfSAubWVudS10ZWNoLXNwZWNzIGxpLmRpdmlkZXIgeyBoZWlnaHQ6MXB4OyBtYXJnaW46OXB4IDA7IG92ZXJmbG93OmhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjojZTVlNWU1OyB9IC5tZW51LXRlY2gtc3BlY3MgPiAubWVudS1zcGVjcy10aXRsZSB7IG1hcmdpbi1ib3R0b206MWVtOyBmb250LXNpemU6aW5pdGlhbDsgY29sb3I6YmxhY2s7IH0gdWwubWVudS1zcGVjcy1saXN0IGxpIHsgZm9udC1zaXplOjAuNzVyZW0gOyB9IHVsLm1lbnUtc3BlY3MtbGlzdCA+IGxpOm50aC1jaGlsZChuKzMpIHsgbWFyZ2luLWJvdHRvbToxZW07IH0gLm1lbnUtdGVjaC1zcGVjcyA+IHVsLm1lbnUtc3BlY3MtbGlzdCA+IGxpID4gYSB7IHBhZGRpbmc6M3B4IDRweCAhaW1wb3J0YW50OyBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7IH0gLm1lbnUtc3BlY3MtbGlzdCA+IGxpIHsgYm9yZGVyLWJvdHRvbTpub25lOyB9IC5tZW51LXNwZWNzLWxpc3QgbGkgc3Ryb25nLCAubWVudS1zcGVjcy1saXN0IGxpIHNwYW4geyBjb2xvcjp2YXIoLS1ibGFjayk7IH0gdWwubWVudS1zcGVjcy1saXN0ID4gbGkgPiBzdHJvbmcgeyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDs7IH0gdWwubWVudS1zcGVjcy1saXN0ID4gbGkgPiBzcGFuIHsgbGluZS1oZWlnaHQ6MjsgfSAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiAubWVudS10ZWNoLXNwZWNzIHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB0cmFuc2l0aW9uOjAuNXM7IG9wYWNpdHk6MTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gLm1lbnUtdGVjaC1zcGVjcywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gLm1lbnUtdGVjaC1zcGVjc3sgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB0cmFuc2l0aW9uOjAuNXM7IG9wYWNpdHk6MTsgfSBib2R5Om5vdCguaXNGdWxsV2lkdGhQYWdlKSAudXBfbWVudSB7IHBvc2l0aW9uOmluaGVyaXQ7IH0gYm9keTpub3QoLmlzRnVsbFdpZHRoUGFnZSkgI21haW5EaXY6OmFmdGVyIHsgaGVpZ2h0OjA7IH0gI21haW5EaXYud3JhcHBlciB7IHBhZGRpbmc6MDsgfSBib2R5IC51cF9tZW51eyBoZWlnaHQ6YXV0bzsgd2lkdGg6OTYwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjEwMDA7IHdoaXRlLXNwYWNlOm5vd3JhcDsgY29sb3I6dmFyKC0tYmxhY2spOyB9IGJvZHkgLnVwX21lbnUuaGlkZGVuaGVhZGVyeyBtYXJnaW4tdG9wOjEwNnB4OyBwYWRkaW5nLXRvcDozcHg7IH0gYm9keSAudXBfbWVudS5oaWRkZW5oZWFkZXIuZml4ZWQsIGJvZHkgLnVwX21lbnUuZml4ZWQgeyB0b3A6MDsgcG9zaXRpb246Zml4ZWQ7IG1hcmdpbi10b3A6MDsgb3BhY2l0eTowLjc1OyB9IGJvZHkgLnVwX21lbnUud2l0aC1ib3JkZXIuZml4ZWQgeyB0b3A6MXB4OyB9IGJvZHkgLnVwX21lbnUuZml4ZWQ6aG92ZXJ7IG9wYWNpdHk6MTsgfSBib2R5IC51cF9tZW51ID4gLlMxMDBQZXJjZW50V2lkdGggeyBiYWNrZ3JvdW5kOnZhcigtLW1lbnUtYmctY29sb3IpOyBoZWlnaHQ6YXV0bzsgfSBib2R5IC51cF9tZW51IC5uYXYgPiBsaS5ub2Z4ID4gYXsgdHJhbnNpdGlvbjpub25lOyB9IGJvZHkgLnVwX21lbnUgLm5hdiA+IGxpeyBmbGV4LWdyb3c6MTsgfSBib2R5IC51cF9tZW51IC5uYXYgPiBsaSBheyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5zdWIgeyBoZWlnaHQ6YXV0bzsgfSB1bC5zdWIgeyBwYWRkaW5nOjA7IH0gLnVwX21lbnUgeyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgfSAudXBfbWVudSB1bCB7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowOyBtYXJnaW46MDsgei1pbmRleDoxOyB9IC51cF9tZW51IHVsLnN1YiB7IC13ZWJraXQtYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSk7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyB9IC51cF9tZW51IHVsLm5hdiB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWFpbi1tZW51LWJnLWNvbG9yKTsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9ORVcgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudXBfbWVudSB1bC5uYXYgbGkgPiBhIHsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tYmxhY2spOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MTVweCA1JTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOmF1dG87IH0gLnVwX21lbnUgdWwubmF2IGxpIHVsLnN1YiB7IGRpc3BsYXk6bm9uZTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaSA+IGEgeyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IHRleHQtYWxpZ246Y2VudGVyOyB9IC51cF9tZW51IHVsLm5hdiBsaTpob3ZlciA+IGEsIC51cF9tZW51IHVsLm5hdiBsaS5pc09wZW4gPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAudXBfbWVudSB1bC5uYXYgPiBsaTpob3ZlciA+IHVsLnN1YiwgLnVwX21lbnUgdWwubmF2ID4gbGkuaXNPcGVuID4gdWwuc3ViIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfTkVXOmhvdmVyID4gdWwuc3ViLCAudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTDpob3ZlciA+IHVsLnN1YnsgbWluLXdpZHRoOjEwMCU7IH0gLnVwX21lbnUgdWwubmF2IGxpOmhvdmVyID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgeyBsZWZ0OjE0MCU7IHRvcDowOyBwb3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgfSAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViIHsgbWF4LWhlaWdodDo2NDBweDsgb3ZlcmZsb3cteTphdXRvOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpID4gdWwuc3ViID4gbGk6bm90KC5sYXN0SXRlbSk6bm90KC5sYXN0TWVudSk6bm90KC5oYXNJdGVtcykgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9IC51cF9tZW51IHVsLm5hdiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOm5vdCgubGFzdEl0ZW0pIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTVlNTsgfSBsaSB1bC5zdWIgYSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaTpob3ZlciB1bC5zdWIsIC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9VU0VEIHVsLnN1YiA+IGxpOmhvdmVyIHVsLnN1YiwgLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpOmhvdmVyIHVsLnN1YiwgLnVwX21lbnUgdWwubmF2IGxpI01haW5NZW51X1VTRUQgdWwuc3ViID4gbGk6aG92ZXIgdWwuc3ViIHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyBsZWZ0OjEwMCU7IHRyYW5zaXRpb246YWxsIDAuMnMsIG9wYWNpdHkgMC41czsgb3BhY2l0eToxOyB9IC51cF9tZW51IHVsLm5hdiBsaSNNYWluTWVudV9VU0VEOmhvdmVyIHVsLnN1YiBsaSB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IGxlZnQ6MDsgcG9zaXRpb246cmVsYXRpdmU7IG9wYWNpdHk6MTsgYm94LXNoYWRvdzpub25lOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaS5ob3ZlciA+IGEsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpLmhvdmVyID4gYSB7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpLmhvdmVyIGxpID4gdWwuc3ViLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaS5ob3ZlciBsaSA+IHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpOmhvdmVyID4gdWwuc3ViID4gbGkgPiB1bC5zdWI6Zmlyc3QtY2hpbGQsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpOmhvdmVyID4gdWwuc3ViID4gbGkgPiB1bC5zdWI6Zmlyc3QtY2hpbGQgeyBkaXNwbGF5OmJsb2NrOyB9ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IC5zdWIgeyBtaW4td2lkdGg6MTAwJTsgfSAjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgLml0ZW0td3JhcC5pbWdMaW5rIHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgeyBiYWNrZ3JvdW5kOndoaXRlOyB3aWR0aDo0MjBweDsgcG9zaXRpb246YWJzb2x1dGU7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIHsgZGlzcGxheTpibG9jazsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOm5vdCgubGFzdEl0ZW0pLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6bm90KC5sYXN0SXRlbSkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9IC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfTkVXPnVsLnN1YiBsaT51bC5zdWI+bGkuaGFzU3ViOmhvdmVyPmEsIC51cF9tZW51IHVsLm5hdiAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUw+dWwuc3ViIGxpPnVsLnN1Yj5saS5oYXNTdWI6aG92ZXI+YSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGNvbG9yOnZhcigtLWJsYWNrKTsgfSAudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgbGkgYS5lbXB0eSwgLnVwX21lbnUgdWwubmF2ICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTD51bC5zdWIgbGkgYS5lbXB0eSB7IHBhZGRpbmc6MDsgYm9yZGVyLWJvdHRvbTpub25lOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViIHsgbGVmdDowOyB0b3A6aW5oZXJpdDsgcG9zaXRpb246c3RhdGljOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgYm94LXNoYWRvdzpub25lOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyID4gdWwuc3ViICwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaTpob3ZlciA+IHVsLnN1YiB7IGRpc3BsYXk6YmxvY2s7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpOmhvdmVyLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiBhLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGk6aG92ZXIgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpub3QoLml0ZW0td3JhcCksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bm90KC5pdGVtLXdyYXApIHsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo2MHB4OyBoZWlnaHQ6NjBweDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZCwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctcmlnaHQ6MTVweDsgd2lkdGg6MjUlOyBtaW4td2lkdGg6Zml0LWNvbnRlbnQ7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMiksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMikgeyBwYWRkaW5nLWxlZnQ6MTVweDsgd2lkdGg6NzUlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmssIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayB7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmsgPiBpbWcsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayA+IGltZyB7IGhlaWdodDo2MHB4OyB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaS5oYXNTdWIgPiBhLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGEgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgcGFkZGluZy1ib3R0b206MTVweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgbGV0dGVyLXNwYWNpbmc6MXB4OyBmb250LXdlaWdodDpib2xkOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLmhhc1N1YiA+IGE6YWZ0ZXIsIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkuaGFzU3ViID4gYTphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgfSBsaS5hbGlnbi1sZXZlbCB7IHBvc2l0aW9uOnN0YXRpYzsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpLml0ZW0td3JhcCwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm50aC1vZi10eXBlKDIpLml0ZW0td3JhcHsgcGFkZGluZy10b3A6MTFweDsgcGFkZGluZy1ib3R0b206MTBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IHVsLnN1YiBsaSBhLml0ZW0td3JhcCB7IGxpbmUtaGVpZ2h0OjIwcHg7IH0gLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gLm1haW5tZW51LXN1Ym1lbnUgKiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfTkVXIHVsLnN1YiA+IGxpID4gdWwuc3ViICosIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gLm1haW5tZW51LXN1Ym1lbnUgKiwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm5vdCguaXRlbS13cmFwKSwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOm5vdCguaXRlbS13cmFwKSB7IHBhZGRpbmc6MDsgbGluZS1oZWlnaHQ6NjBweDsgaGVpZ2h0OjYwcHg7IHRleHQtYWxpZ246bGVmdDsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXJpZ2h0OjE1cHg7IHdpZHRoOjMwJTsgbWluLXdpZHRoOmZpdC1jb250ZW50OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6bnRoLW9mLXR5cGUoMiksIC51cF9tZW51IGxpI01haW5NZW51X1RBQl9DT01NRVJDSUFMIHVsLnN1YiA+IGxpID4gZGl2Lm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpudGgtb2YtdHlwZSgyKXsgcGFkZGluZy1sZWZ0OjE1cHg7IHdpZHRoOjcwJTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhOmZpcnN0LWNoaWxkOmFmdGVyLCAudXBfbWVudSBsaSNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6Zmlyc3QtY2hpbGQ6YWZ0ZXJ7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MnB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdG9wOi0yN3B4OyByaWdodDotN3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudXBfbWVudSBsaSNNYWluTWVudV9ORVcgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZDphZnRlciwgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gYTpmaXJzdC1jaGlsZDphZnRlcnsgY29udGVudDoiICI7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0b3A6LTI3cHg7IHJpZ2h0Oi03cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluaywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmt7IHJpZ2h0OjA7IGZsb2F0OnJpZ2h0OyB9IC51cF9tZW51IGxpI01haW5NZW51X05FVyB1bC5zdWIgPiBsaSA+IGRpdi5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGEuaW1nTGluayA+IGltZywgLnVwX21lbnUgbGkjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgdWwuc3ViID4gbGkgPiBkaXYubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiBhLmltZ0xpbmsgPiBpbWd7IGhlaWdodDo2MXB4OyB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTsgfSBsaS5sYXN0TWVudSB1bC5zdWIgeyByaWdodDowOyB9IC51cF9tZW51IHVsLm5hdiBsaSB1bC5zdWIgbGkgYTpudGgtb2YtdHlwZSgxKS5pdGVtLXdyYXAgeyBwYWRkaW5nOjA7IH0gbGkuaGFzSXRlbXMgPiBhOmFmdGVyIHsgY29udGVudDoiICI7IHdpZHRoOjA7IGhlaWdodDowOyBib3JkZXItcmFkaXVzOjJweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZDsgbWFyZ2luLWxlZnQ6N3B4OyB9IGxpLmhhc1N1YiA+IGE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IGxlZnQ6MTAwJTsgbWFyZ2luLWxlZnQ6N3B4OyBwb3NpdGlvbjpzdGlja3k7IH0gLnVwX21lbnUgI01haW5NZW51X1VTRUQgbGkuaGFzSXRlbXMgPiBhOmFmdGVyIHsgY29udGVudDoiIjsgZGlzcGxheTpub25lOyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VEID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IGE6YmVmb3JlLCAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSBhOmJlZm9yZSB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjdweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMXB4OyB9IGkudHJpYW5nbGUgeyB3aWR0aDowOyBoZWlnaHQ6MDsgYm9yZGVyLXJhZGl1czoycHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gaS50cmlhbmdsZS50cmlhbmdsZS11cCB7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTo1cHggc29saWQ7IH0gaS50cmlhbmdsZS50cmlhbmdsZS1kb3duIHsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZDsgfSBpLnRyaWFuZ2xlLnRyaWFuZ2xlLXJpZ2h0IHsgYm9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItbGVmdDo1cHggc29saWQ7IH0gaS50cmlhbmdsZS50cmlhbmdsZS1sZWZ0IHsgYm9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkOyB9IGxpI01haW5NZW51X1VTRURfU0VBUkNIRVMgdWwgbGkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCB3aGl0ZTsgfSAubWVudS1hZGRyZXNzLWRlc2MgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBmb250LXNpemU6MC44NzVyZW0gOyBwYWRkaW5nLWJvdHRvbToyMHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBsaW5lLWhlaWdodDoxOXB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gLnVwX21lbnUgI01haW5NZW51X0NPTlRBQ1QgdWwuc3ViID4gLmNvbnRhY3QtY29udGFpbmVyICNtZW51LW1hcC1saW5rIHsgcGFkZGluZzowOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X0NPTlRBQ1QgPiB1bC5zdWIgPiBsaS5jb250YWN0LWNvbnRhaW5lciB7IGJvcmRlci1ib3R0b206bm9uZTsgZGlzcGxheTpncmlkOyBncmlkLWF1dG8tZmxvdzpjb2x1bW47IGdyaWQtY29sdW1uLWdhcDoyMHB4OyB9IC51cF9tZW51ICNNYWluTWVudV9DT05UQUNUIHVsLnN1Yi5jb250YWN0dXMtZm9ybSB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MTVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBsZWZ0OjA7IH0gLnVwX21lbnUgI01haW5NZW51X0NPTlRBQ1QgdWwuc3ViLmNvbnRhY3R1cy1mb3JtLmNvbnRhY3Qtc2hvcnQgeyB3aWR0aDo2MTlweDsgbGVmdDphdXRvOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyByaWdodDowOyB9IC51cF9tZW51ICNNYWluTWVudV9DT05UQUNUIHVsLnN1Yi5jb250YWN0LXNob3J0ID4gLmNvbnRhY3QtY29udGFpbmVyID4gLmFkZHJlc3MgeyBwYWRkaW5nLXJpZ2h0OjE1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9IC5tZW51LXBob25lcyB7IGJvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IG1hcmdpbi10b3A6OHB4OyB9IC5waG9uZS13cmFwcGVyIHNwYW4uZmlyc3QgLmZhLXBob25lIHsgbWFyZ2luLXJpZ2h0OjhweDsgfSAucGhvbmUtd3JhcHBlciB7IHBhZGRpbmctYm90dG9tOjVweDsgfSAubWVudS1waG9uZXMgLnBob25lLXdyYXBwZXIgeyBtYXJnaW4tdG9wOjhweDsgfSAubWVudS1hZGRyZXNzLWRlc2MgLm1lbnUtYWRkcmVzcy13cmFwcGVyIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1heC13aWR0aDoyNjZweDsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC5tZW51LWFkZHJlc3MtZGVzYyA+IC5mYS1tYXAtbWFya2VyIHsgdmVydGljYWwtYWxpZ246dG9wOyBtYXJnaW4tcmlnaHQ6OHB4OyB9IC5tZW51LW11bHRpbG9jYXRpb24geyBib3JkZXItdG9wOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyBtYXJnaW4tdG9wOjhweDsgcGFkZGluZy10b3A6OHB4OyB9IC5tZW51LW11bHRpbG9jIHsgbWFyZ2luLXRvcDo2cHg7IH0gLm1lbnUtbXVsdGlsb2Mgc3VtbWFyeSB7IGN1cnNvcjpwb2ludGVyOyBmb250LXdlaWdodDpib2xkOyBsaXN0LXN0eWxlOm5vbmU7IH0gLm1lbnUtbXVsdGlsb2Mgc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7IGRpc3BsYXk6bm9uZTsgfSAubWVudS1tdWx0aWxvYyBzdW1tYXJ5OjpiZWZvcmUgeyBjb250ZW50OiJcMjVCNiI7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6NnB4OyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZTsgdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7IH0gLm1lbnUtbXVsdGlsb2Nbb3Blbl0gc3VtbWFyeTo6YmVmb3JlIHsgdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7IH0gLm1lbnUtbXVsdGlsb2MtYm9keSB7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjEycHg7IH0gLmNvbnRhY3QtY29udGFpbmVyIC50aXRsZSB7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLXRhYi1jb2xvci1zcGVjaWFsY2FzZSk7IHRleHQtdHJhbnNmb3JtOnZhcigtLXRleHQtdXBwZXIpOyBjb2xvcjp2YXIoLS1ibGFjayk7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NnB4IDE1cHggNnB4IDA7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5jb250YWN0LWNvbnRhaW5lciAuUmVjaGVyY2hlMjIgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10ZXh0LXVwcGVyKTsgY29sb3I6dmFyKC0tYmxhY2spOyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjZweCAxNXB4IDZweCAwOyBmb250LXNpemU6MTMuMjhweDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OmluaGVyaXQ7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5jb250YWN0LWNvbnRhaW5lciAjcXVpY2tFbWFpbEZvcm0geyBtYXJnaW46MCBhdXRvOyB9IC5jb250YWN0LWNvbnRhaW5lciAuYWRkcmVzcyA+IHVsID4gbGkgPiBhOmJlZm9yZSB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjdweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMXB4OyB9IC5jb250YWN0LWNvbnRhaW5lciAuYnV0dG9uX2JveFMyIHsgZmxvYXQ6bm9uZTsgd2lkdGg6MjU1cHg7IHBhZGRpbmctcmlnaHQ6MDsgdGV4dC1hbGlnbjpyaWdodDsgfSAudXBfbWVudSAjTWFpbk1lbnVfU0VSVklDRSB1bC5zdWIuc2VydmljZS1mb3JtIHsgd2lkdGg6NjAlOyBsZWZ0OmF1dG87IHJpZ2h0OjA7IHBhZGRpbmctbGVmdDoxNXB4OyBwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyLCAubWVudS1zZXJ2aWNlLXdyYXBwZXIgKiB7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciwgLm1lbnUtc2VydmljZS13cmFwcGVyIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciwgLm1lbnUtc2VydmljZS13cmFwcGVyLCAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLmpxVHJhbnNmb3JtU2VsZWN0V3JhcHBlcnsgLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94OyAtbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLm1lbnUtc2VydmljZS13cmFwcGVyIHsgbWFyZ2luLWxlZnQ6LTE1cHg7IG1hcmdpbi1yaWdodDotMTVweDsgfSAubWVudS1zZXJ2aWNlLXdyYXBwZXI6OmJlZm9yZSwgLm1lbnUtc2VydmljZS13cmFwcGVyOjphZnRlciB7IGRpc3BsYXk6dGFibGU7IGNvbnRlbnQ6IiAiOyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlcjo6YWZ0ZXIgeyBjbGVhcjpib3RoOyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1sZWZ0LCAubWVudS1zZXJ2aWNlLXdyYXBwZXIgLnNlcnZpY2UtcmlnaHQgeyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1kaXZpZGVyIHsgZmxvYXQ6bGVmdDsgd2lkdGg6MC4xJTsgaGVpZ2h0OjQwMnB4OyBib3JkZXItbGVmdDoxcHggc29saWQgI2U1ZTVlNTsgbWFyZ2luLXRvcDoxNXB4OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1yaWdodCB7IHdpZHRoOjM5LjglOyB9IC51cF9tZW51IHVsLm5hdiA+IGxpI01haW5NZW51X1NFUlZJQ0UgPiB1bCA+IGxpID4gLm1lbnUtc2VydmljZS13cmFwcGVyID4gLnNlcnZpY2UtcmlnaHQgdWwgbGkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyB9IC5tZW51LXNlcnZpY2Utd3JhcHBlciAuc2VydmljZS1sZWZ0IHsgd2lkdGg6NjAlOyB9IC5zaG9ydC1zZXJ2aWNlLWZvcm0gaW5wdXQgeyBkaXNwbGF5OmJsb2NrOyB9IC5zZXJ2aWNlLWZvcm0tdGl0bGUgeyBib3JkZXItYm90dG9tOjJweCBzb2xpZCB2YXIoLS10YWItY29sb3Itc3BlY2lhbGNhc2UpOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjZweCAxNXB4IDZweCAwOyBtYXJnaW4tYm90dG9tOjhweDsgfSAuc3NmLXN1Ym1pdCB7IG1hcmdpbi10b3A6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnNzZi1zdWJtaXQgLmpxVHJhbnNmb3JtQnV0dG9uIHNwYW4gc3BhbiB7IC13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94OyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC51cF9tZW51IHVsLm5hdiBsaS5tZW51LWFjdGl2ZSB1bC5zdWIgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAudXBfbWVudSB1bC5uYXYgbGkubWVudS1hY3RpdmUgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSBmb3JtLnNob3J0LXNlcnZpY2UtZm9ybS5qcXRyYW5zZm9ybWRvbmUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyLCBmb3JtLnNob3J0LXNlcnZpY2UtZm9ybS5qcXRyYW5zZm9ybWRvbmUgLmpxVHJhbnNmb3JtU2VsZWN0V3JhcHBlciB7IG1hcmdpbi1ib3R0b206MTBweDsgfSAuc3NmLWRhdGUtY2FsZW5kYXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB0b3A6MC41cmVtOyByaWdodDoxLjNyZW07IGNvbG9yOiNhYWE7IHdpZHRoOjA7IH0gLml0ZW0td3JhcCB7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSAudXBfbWVudSB1bC5zdWIgbGkgLml0ZW0td3JhcCB7IG1pbi1oZWlnaHQ6NjFweDsgfSBib2R5LmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQuaXNGdWxsV2lkdGhQYWdlIC5NYWluQm94TGF5ZXIgLnVwX21lbnUsIGJvZHkuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZC5pc0Z1bGxXaWR0aFBhZ2UgLndyYXBwZXIuTWFpbkJveExheWVyIC51cF9tZW51IHsgd2lkdGg6aW5oZXJpdDsgfSAjZnVsbFdpZHRoTWVudUJhciB7IHdpZHRoOmNhbGModmFyKC0tdndzLCAxdncpICogMTAwKTsgYm90dG9tOjA7IGhlaWdodDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDo1MCU7IHJpZ2h0OjUwJTsgbWFyZ2luLWxlZnQ6LTUwdnc7IG1hcmdpbi1yaWdodDotNTB2dzsgYm94LXNpemluZzpib3JkZXItYm94OyBiYWNrZ3JvdW5kOmluaGVyaXQ7IHotaW5kZXg6LTE7IH0gLnVwX21lbnUud2l0aC1ib3JkZXIgI2Z1bGxXaWR0aE1lbnVCYXIgeyBib3JkZXItdG9wOjJweCBzb2xpZCB2YXIoLS1tZW51LWNvbG9yLWJvcmRlcik7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLW1lbnUtY29sb3ItYm9yZGVyKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMnB4KTsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRCA+IHVsLnN1YiA+IGxpLmludmVudG9yeSA+IHVsLnN1YiB7IG92ZXJmbG93OmhpZGRlbjsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaG9ydCA+IHVsLnN1YiB7IGxlZnQ6aW5oZXJpdDsgd2lkdGg6YXV0bzsgfSAudXBfbWVudSAjTWFpbk1lbnVfVVNFRC5zaG9ydCA+IHVsLnN1YiA+IGxpW2RhdGEtaWRePSJVU0VEXyJdIHsgd2lkdGg6YXV0bzsgbWluLXdpZHRoOjI2MHB4OyB9IC51cF9tZW51ICNNYWluTWVudV9VU0VELnNob3J0ID4gdWwuc3ViID4gbGkuaW52ZW50b3J5ID4gdWwgPiBsaVtkYXRhLWlkXj0iVVNFRF9DQVJTX0ciXSB7IHdpZHRoOmF1dG87IH0gLnNrZWxldG9uLmhlYWRlci1tZW51LmZpeGVkIHsgcG9zaXRpb246aW5oZXJpdDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTMwMHB4KSB7IC51cF9tZW51ICNNYWluTWVudV9VU0VELnNob3J0LnNob3J0LTIgPiB1bC5zdWIgeyBsZWZ0OjA7IH0gfQovKiogL2Nzcy9tZW51Ni5jc3MgKiovCi5jb250YWN0LWNvbnRhaW5lciAjcXVpY2tFbWFpbEZvcm0geyB3aWR0aDoxMDAlOyB9IC5jb250YWN0LWNvbnRhaW5lciAuYnV0dG9uX2JveFMyIHsgbWFyZ2luOmF1dG87IH0gLnVwX21lbnUgdWwubmF2ID4gbGkubGFzdE1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsID4gbGkgPiBkaXYgeyByaWdodDoxMDAlOyBsZWZ0OmluaXRpYWw7IH0gLnVwX21lbnUgdWwubmF2IGxpLmludmVyc2UtY29sb3IgPiBhIHsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgfSAuZGVhbGVyTWFwTGluayBzdmcgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246bWlkZGxlOyB3aWR0aDoxNHB4OyBoZWlnaHQ6MTRweDsgbWFyZ2luLXJpZ2h0OjVweDsgfSAuYWRyIHsgbGluZS1oZWlnaHQ6MS40OyB9Ci8qKiAvY3NzL2pxdWVyeS5tdWx0aXNlbGVjdC5jc3MgKiovCi51aS1tdWx0aXNlbGVjdHtwYWRkaW5nOjJweCAwIDJweCA0cHg7dGV4dC1hbGlnbjpsZWZ0fS51aS1tdWx0aXNlbGVjdCBzcGFuLnVpLWljb257ZmxvYXQ6cmlnaHR9LnVpLW11bHRpc2VsZWN0LXNpbmdsZSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBpbnB1dHtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O3RvcDphdXRvICFpbXBvcnRhbnQ7bGVmdDotOTk5OXB4fS51aS1tdWx0aXNlbGVjdC1zaW5nbGUgLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGFiZWx7cGFkZGluZzo1cHggIWltcG9ydGFudH0udWktbXVsdGlzZWxlY3QtaGVhZGVye21hcmdpbi1ib3R0b206M3B4O3BhZGRpbmc6M3B4IDAgM3B4IDRweH0udWktbXVsdGlzZWxlY3QtaGVhZGVyIHVse2ZvbnQtc2l6ZTouOWVtfS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgdWwgbGl7ZmxvYXQ6bGVmdDtwYWRkaW5nOjAgMTBweCAwIDB9LnVpLW11bHRpc2VsZWN0LWhlYWRlciBhe3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgYTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS51aS1tdWx0aXNlbGVjdC1oZWFkZXIgc3Bhbi51aS1pY29ue2Zsb2F0OmxlZnR9LnVpLW11bHRpc2VsZWN0LWhlYWRlciBsaS51aS1tdWx0aXNlbGVjdC1jbG9zZXtmbG9hdDpyaWdodDt0ZXh0LWFsaWduOnJpZ2h0O3BhZGRpbmctcmlnaHQ6MH0udWktbXVsdGlzZWxlY3QtbWVudXtkaXNwbGF5Om5vbmU7cGFkZGluZzozcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMDt0ZXh0LWFsaWduOmxlZnR9LnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXN7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteTphdXRvfS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxhYmVse2N1cnNvcjpkZWZhdWx0O2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtwYWRkaW5nOjNweCAxcHh9LnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGFiZWwgaW5wdXR7cG9zaXRpb246cmVsYXRpdmU7dG9wOjFweH0udWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaXtjbGVhcjpib3RoO2ZvbnQtc2l6ZTouOWVtO3BhZGRpbmctcmlnaHQ6M3B4fS51aS1tdWx0aXNlbGVjdC1jaGVja2JveGVzIGxpLnVpLW11bHRpc2VsZWN0LW9wdGdyb3VwLWxhYmVse3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWR9LnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGkudWktbXVsdGlzZWxlY3Qtb3B0Z3JvdXAtbGFiZWwgYXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6M3B4O21hcmdpbjoxcHggMDt0ZXh0LWRlY29yYXRpb246bm9uZX0qIGh0bWwgLnVpLW11bHRpc2VsZWN0LWNoZWNrYm94ZXMgbGFiZWx7Ym9yZGVyOjB9LnVpLW11bHRpc2VsZWN0LWhhc2ZpbHRlciB1bHtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4fS51aS1tdWx0aXNlbGVjdC1maWx0ZXJ7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MTBweDtmb250LXNpemU6MTFweH0udWktbXVsdGlzZWxlY3QtZmlsdGVyIGlucHV0e3dpZHRoOjEwMHB4O2ZvbnQtc2l6ZTowLjYyNXJlbSA7bWFyZ2luLWxlZnQ6NXB4O2hlaWdodDoxNXB4O3BhZGRpbmc6MnB4O2JvcmRlcjoxcHggc29saWQgIzI5MjkyOTstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveH0KLyoqIC9jc3MvdHJhZGVpbnBvcHVwLmNzcyAqKi8KLnRyYWRlSW5CYXJTdGVwMiAudHJhZGVJbkJhclN0ZXAyUXVlc3Rpb257IG1hcmdpbjoyMHB4IDA7IH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGxhYmVseyB3aWR0aDo1MHB4OyBwYWRkaW5nOjA7IG1hcmdpbjo1cHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrIH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGlucHV0eyB3aWR0aDphdXRvICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46NXB4ICFpbXBvcnRhbnQ7IGJvcmRlcjpub25lICFpbXBvcnRhbnQ7IH0gLnRyYWRlSW5CYXJTdGVwMiwgLnRyYWRlSW5CYXJTdGVwMywgLnRyYWRlSW5CYXJTdGVwNCwgLnRyYWRlSW5CYXJTdGVwNXsgbWFyZ2luOjYwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnRyYWRlSW5CYXJTdGVwNnsgbWFyZ2luOjAgMCAzMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyB9IC50cmFkZUluQmFyU3RlcDMgLnRyYWRlSW5CYXJTdGVwM1F1ZXN0aW9uLCAudHJhZGVJbkJhclN0ZXA0IC50cmFkZUluQmFyU3RlcDRRdWVzdGlvbiwgLnRyYWRlSW5CYXJTdGVwNSAudHJhZGVJbkJhclN0ZXA1UXVlc3Rpb24sIC50cmFkZUluQmFyU3RlcDYgLnRyYWRlSW5CYXJTdGVwNlF1ZXN0aW9ueyBtYXJnaW46MjBweCAwOyB9ICN0cmFkZUluQmFyUG9wdXBTdWJtaXQsIC50cmFkZUluQmFyU3RlcDMgI3RyYWRlSW5TdGVwM1llcywgLnRyYWRlSW5CYXJTdGVwNCAjdHJhZGVJblN0ZXA0WWVzLCAudHJhZGVJbkJhclN0ZXA1ICN0cmFkZUluU3RlcDVZZXMsIC50cmFkZUluQmFyU3RlcDYgI3RyYWRlSW5TdGVwNlllc3sgYmFja2dyb3VuZDojMDAyYzVmOyBjb2xvcjojZmZmZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4OyBmb250LXdlaWdodDo1MDA7IGJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IHRyYW5zaXRpb246YWxsIDAuM3M7IG1heC13aWR0aDozNTBweDsgfSAudHJhZGVJbkJhclN0ZXAzICN0cmFkZUluU3RlcDNOb3sgYmFja2dyb3VuZDojZTBlMGUwOyBjb2xvcjojMzMzOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHg7IGZvbnQtd2VpZ2h0OjUwMDsgYm9yZGVyLXJhZGl1czo2cHg7IGJvcmRlcjpub25lOyBjdXJzb3I6cG9pbnRlcjsgdHJhbnNpdGlvbjphbGwgMC4zczsgbWF4LXdpZHRoOjM1MHB4OyBtYXJnaW4tdG9wOjEwcHg7IH0gI3RyYWRlSW5CYXJQb3B1cFN1Ym1pdDpob3ZlciwgLnRyYWRlSW5CYXJTdGVwMyAjdHJhZGVJblN0ZXAzWWVzOmhvdmVyLCAudHJhZGVJbkJhclN0ZXA0ICN0cmFkZUluU3RlcDRZZXM6aG92ZXIsIC50cmFkZUluQmFyU3RlcDUgI3RyYWRlSW5TdGVwNVllczpob3ZlciwgLnRyYWRlSW5CYXJTdGVwNiAjdHJhZGVJblN0ZXA2WWVzOmhvdmVyeyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiMwMDJjNWY7IG9wYWNpdHk6MC45OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNCAjdHJhZGVJbktleVNlbGVjdHsgd2lkdGg6MzUwcHg7IG1heC13aWR0aDozNTBweDsgcGFkZGluZzoxMHB4OyBtYXJnaW4tYm90dG9tOjIwcHg7IGJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG91dGxpbmU6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC50cmFkZUluQmFyU3RlcDUgI3N0ZXA1VmlueyB3aWR0aDozNTBweDsgbWF4LXdpZHRoOjM1MHB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnRyYWRlSW5CYXJTdGVwNiAudHJhZGVJbkJhclN0ZXA2VGl0bGV7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBfbGluZTF7IGJvcmRlci1yYWRpdXM6NnB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZGVyLWNvbnRhaW5lciB7IG1heC13aWR0aDo2MDBweDsgd2lkdGg6MTAwJTsgbWFyZ2luOjAgYXV0bzsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwYWRkaW5nOjIwcHg7IGJvcmRlci1yYWRpdXM6OHB4OyBib3gtc2hhZG93OjAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAudXBsb2FkZXItY29udGFpbmVyIGgyIHsgZm9udC1zaXplOjEuMnJlbTsgbWFyZ2luLWJvdHRvbToxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC51cGxvYWRlci1jb250YWluZXIgcCB7IGNvbG9yOiM2NjY7IG1hcmdpbi1ib3R0b206MjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjlyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuaW1hZ2UtZ3JpZCB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LCAxZnIpOyBnYXA6MTVweDsgb3ZlcmZsb3cteTpzY3JvbGw7IGhlaWdodDoyODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhIHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMCU7IGFzcGVjdC1yYXRpbzoxIC8gMTsgYm9yZGVyOjJweCBkYXNoZWQgI2NjYzsgYm9yZGVyLXJhZGl1czoxMHB4OyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLXNpemU6OTAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAudXBsb2FkLWFyZWEgaW5wdXRbdHlwZT0iZmlsZSJdIHsgZGlzcGxheTpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnBsYWNlaG9sZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvYmplY3QtZml0OmNvbnRhaW47IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5wbGFjZWhvbGRlci10aXRsZSB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NXB4OyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiM2NjY7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOyBwYWRkaW5nOjFweCA2cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBwb2ludGVyLWV2ZW50czpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuYWRkLWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjVweDsgcmlnaHQ6NXB4OyBmb250LXNpemU6MS4xcmVtOyBjb2xvcjojMDA3QkZGOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXItcmFkaXVzOjUwJTsgd2lkdGg6MjhweDsgaGVpZ2h0OjI4cHg7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBib3gtc2hhZG93OjAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAjdHJhZGVJbkJhclBvcHVwRm9ybSAuZGVsZXRlLWJ0biB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NXB4OyByaWdodDo1cHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC43KTsgY29sb3I6d2hpdGU7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjUwJTsgZm9udC1zaXplOjAuNzVyZW0gOyBsaW5lLWhlaWdodDoyMHB4OyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZC1hcmVhOmhvdmVyIC5kZWxldGUtYnRuIHsgZGlzcGxheTpmbGV4OyB9IC50cmFkZUluQm90dG9tTG9nb3sgdGV4dC1hbGlnbjpjZW50ZXI7IGNvbG9yOiNhOWE5YTk7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC50cmFkZUluQm90dG9tTG9nby50cmFkZUluQm90dG9tTG9nb1ZXeyBtYXJnaW46MCBhdXRvOyB3aWR0aDo4NSU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnR7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC1vdmVyZmxvdzpjbGlwOyBtYXgtd2lkdGg6MTAwJTsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSAhaW1wb3J0YW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OjE2cHg7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnQ6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyB0b3A6MDsgd2lkdGg6MjBweDsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQ6d2hpdGU7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnQ6OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDo1cHg7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgYmFja2dyb3VuZDp3aGl0ZSB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5EaXNjbGFpbWVyIC50cmFkZUluRGlzY2xhaW1lclNob3J0IHNwYW57IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyBmb250LXNpemU6MC44MTNyZW0gIWltcG9ydGFudDsgY29sb3I6IzAwMCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkRpc2NsYWltZXIgLnRyYWRlSW5EaXNjbGFpbWVyU2hvcnQgc3BhbiBheyBmb250LXdlaWdodDpib2xkOyB9IC50cmFkZUluRGlzY2xhaW1lckRyYXdlcnsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MDsgYm90dG9tOi0zMDBweDsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQ6I2ZmZjsgYm94LXNoYWRvdzowIC0ycHggMTBweCByZ2JhKDAsMCwwLDAuMyk7IHRyYW5zaXRpb246Ym90dG9tIDAuM3MgZWFzZTsgZGlzcGxheTpub25lOyBvdmVyZmxvdzphdXRvOyB6LWluZGV4OjEwOyB9IC50cmFkZUluRGlzY2xhaW1lckRyYXdlci5vcGVueyBib3R0b206MDsgfSAudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIub3BlbiAudHJhZGVJbkRpc2NsYWltZXJDb250ZW50eyBwYWRkaW5nOjIwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIub3BlbiAudHJhZGVJbkRpc2NsYWltZXJDbG9zZXsgcGFkZGluZzo3cHg7IGN1cnNvcjpwb2ludGVyOyBwb3NpdGlvbjpmaXhlZDsgcmlnaHQ6MDsgfSAudHJhZGVJbkRpc2NsYWltZXJEcmF3ZXIub3BlbiBheyBmb250LXdlaWdodDpib2xkOyB9IEBtZWRpYSAobWF4LXdpZHRoOjYwMHB4KSB7ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnVwbG9hZGVyLWNvbnRhaW5lciB7IHBhZGRpbmc6MTVweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5pbWFnZS1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLCAxZnIpOyBnYXA6MTBweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5wbGFjZWhvbGRlci10aXRsZSB7IGZvbnQtc2l6ZTowLjdyZW07IH0gfSBAbWVkaWEgKG1heC13aWR0aDo0MDBweCkgeyAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5pbWFnZS1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLCAxZnIpOyBnYXA6OHB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgI3RyYWRlSW5CYXJQb3B1cEZvcm0gLnBsYWNlaG9sZGVyLXRpdGxlIHsgZm9udC1zaXplOjAuNnJlbTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5hZGQtaWNvbiB7IHdpZHRoOjI0cHg7IGhlaWdodDoyNHB4OyBmb250LXNpemU6MXJlbTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XICN0cmFkZUluQmFyUG9wdXBGb3JtIC5kZWxldGUtYnRuIHsgd2lkdGg6MTZweDsgaGVpZ2h0OjE2cHg7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IH0gfQovKiogL2Nzcy9hZHZhbmNlZC1zbGlkZXItYmFzZS5jc3MgKiovCi5hZHZhbmNlZC1zbGlkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6dmlzaWJsZTsgb3V0bGluZTpub25lOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgfSAuYWR2YW5jZWQtc2xpZGVyICogeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlci1tYWluIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6dmlzaWJsZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciB1bC5zbGlkZXMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyBtYXJnaW46MDsgcGFkZGluZzowOyBsaXN0LXN0eWxlOm5vbmU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmZsZXg7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB2aXNpYmlsaXR5OmhpZGRlbjsgbGlzdC1zdHlsZTpub25lOyBmaWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApOyBvcGFjaXR5OjE7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuaW1hZ2UsIC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLnRodW1ibmFpbCwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuY2FwdGlvbiwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAuaHRtbCB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgaW1nLCAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgaW1nIHsgbWF4LXdpZHRoOm5vbmU7IG1heC1oZWlnaHQ6bm9uZTsgYm9yZGVyOjAgbm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5odG1sIHsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLnZpZGVvIHsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlLmFjdGl2ZSAudmlkZW8geyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWNlLWNvbnRhaW5lciB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuc2xpZGVzIHsgLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyAtbW96LXVzZXItc2VsZWN0Om5vbmU7IC1vLXVzZXItc2VsZWN0Om5vbmU7IHVzZXItc2VsZWN0Om5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuc2xpZGVzIC5zZWxlY3RhYmxlIHsgLXdlYmtpdC11c2VyLXNlbGVjdDphdXRvOyAtbW96LXVzZXItc2VsZWN0OmF1dG87IC1vLXVzZXItc2VsZWN0OmF1dG87IHVzZXItc2VsZWN0OmF1dG87IGN1cnNvcjphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgLmdyYWIgeyBjdXJzb3I6Z3JhYjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5ncmFiYmluZyB7IGN1cnNvcjpncmFiYmluZzsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGljZSB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnByZWxvYWRlciB7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByZWxvYWRlcjIuZ2lmKSBuby1yZXBlYXQ7IHdpZHRoOjYycHg7IGhlaWdodDoxNHB4OyB6LWluZGV4OjE1OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWFycm93cyB7IHBvc2l0aW9uOnN0YXRpYzsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1hcnJvd3MgYSB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjMwOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5saWdodGJveC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjgwcHg7IGhlaWdodDo4MHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotNDBweDsgbWFyZ2luLWxlZnQ6LTQwcHg7IGN1cnNvcjpwb2ludGVyOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24ucGxheSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfcGxheS5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24ubWFnbmlmeWluZyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGlnaHRib3hfbWFnbmlmeWluZ19zbWFsbC5wbmcpIG5vLXJlcGVhdDsgZmxvYXQ6bGVmdDsgbGVmdDowOyB0b3A6MDsgbWFyZ2luLWxlZnQ6MTBweDsgbWFyZ2luLXRvcDoxMHB4OyBkaXNwbGF5Om5vbmU7IH0gfSAuYWR2YW5jZWQtc2xpZGVyIC5saWdodGJveC1pY29uLmh5cGVybGluayB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfaHlwZXJsaW5rLnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGVzaG93LWNvbnRyb2xzIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NDA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyB7IHBvc2l0aW9uOmFic29sdXRlOyBoZWlnaHQ6OTRweDsgbWFyZ2luLXRvcDotNTBweDsgei1pbmRleDo1OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LWxlZnQsIC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LXJpZ2h0LCAuYWR2YW5jZWQtc2xpZGVyIC5zaGFkb3cgLnNoYWRvdy1taWRkbGUgeyBmbG9hdDpsZWZ0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLmZ1bGwtc2NyZWVuLWNvbnRyb2xzIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mdWxsc2NyZWVuLnBuZykgbm8tcmVwZWF0OyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzFweDsgaGVpZ2h0OjI3cHg7IHRvcDoyMHB4OyBsZWZ0OjIwcHg7IHotaW5kZXg6NjA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjUwOyB9IC5hZHZhbmNlZC1zbGlkZXIgY2FudmFzIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjIwcHg7IGhlaWdodDoyMHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotMTBweDsgbWFyZ2luLWxlZnQ6LTEwcHg7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3BsYXlwYXVzZV9zbWFsbC5wbmcpIG5vLXJlcGVhdDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24ucGxheSAudGltZXItYW5pbWF0aW9uLWNvbnRyb2xzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbi5wYXVzZSAudGltZXItYW5pbWF0aW9uLWNvbnRyb2xzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgeyBvdmVyZmxvdzpoaWRkZW47IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmNhcHRpb24tY29udGFpbmVyIC53cmFwcGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgLmJhY2tncm91bmQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXdyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3ByZWxvYWRlci5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBwb3NpdGlvbjphYnNvbHV0ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5sZWZ0LCAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5yaWdodCwgLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYnV0dG9ucyAubWlkZGxlIHsgZmxvYXQ6bGVmdDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIGEgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgY3Vyc29yOnBvaW50ZXI7IGZsb2F0OmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLnZpc2libGUtY29udGFpbmVyIHsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmNvbnRhaW5lciB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzp2aXNpYmxlOyB0b3A6MDsgbGVmdDowOyBsaXN0LXN0eWxlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC50aHVtYm5haWwtd3JhcHBlciB7IGN1cnNvcjpwb2ludGVyOyBsaXN0LXN0eWxlOm5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjMwcHg7IGhlaWdodDozMHB4OyB0b3A6NTAlOyBsZWZ0OjUwJTsgbWFyZ2luLXRvcDotMTVweDsgbWFyZ2luLWxlZnQ6LTE1cHg7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAubGlnaHRib3gtaWNvbi5wbGF5IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9wbGF5X3NtYWxsLnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uLm1hZ25pZnlpbmcgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X21hZ25pZnlpbmdfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24uaHlwZXJsaW5rIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9oeXBlcmxpbmtfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24gLmJhY2tncm91bmQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsIC5jYXB0aW9uIC5jb250ZW50IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IHotaW5kZXg6MjA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5hcnJvd3MgYSB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmJ1dHRvbnMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6YXV0bzsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmJ1dHRvbnMgYSB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmFkdmFuY2VkLXNsaWRlci10b29sdGlwIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6OTk5OTsgfSAub2VtLWltZy1zbGlkZXIgLnNsaWRlIGEgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgfSAub2VtLWltZy1zbGlkZXIgLnNsaWRlOm50aC1jaGlsZCgtbis0KSBhIGltZ3sgd2lkdGg6MTE1JSAhaW1wb3J0YW50OyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGUgYSBpbWd7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IG1hcmdpbjowICFpbXBvcnRhbnQ7IG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6bm9uZSAhaW1wb3J0YW50OyBwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50OyBsZWZ0OmluaXRpYWwgIWltcG9ydGFudDsgdG9wOmluaXRpYWwgIWltcG9ydGFudDsgbWF4LXdpZHRoOnVuc2V0ICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6dW5zZXQgIWltcG9ydGFudDsgfSAub2VtLWltZy1zbGlkZXIgI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlciB7IGJhY2tncm91bmQtc2l6ZToxMTUlOyB9Ci8qKiAvY3NzL3BhZ2ViYW5uZXIuY3NzICoqLwojdG9wQmFubmVySW1hZ2UgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciB7IHotaW5kZXg6MTEwOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgZm9udC1zaXplOnZhcigtLWZzKTsgcGFkZGluZzo1cHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciAuZmEtdGltZXMgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlIC50b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sIHsgdGV4dC1hbGlnbjpjZW50ZXI7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LXdyYXA6bm93cmFwOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udHJvbCA+IGJ1dHRvbiB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IGNvbG9yOnZhcigtLXdoaXRlKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjayk7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MC43NXJlbTsgfSAjdG9wQmFubmVySW1hZ2U6bm90KDpoYXMoKikpIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0ibmV3aW52Il06aGFzKC51c2VkSW52QmFubmVyOm9ubHktY2hpbGQpIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0idXNlZCJdOmhhcygubmV3SW52QmFubmVyOm9ubHktY2hpbGQpIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZVtkYXRhLWludmNhdD0ibmV3aW52Il0gLnVzZWRJbnZCYW5uZXIgeyBkaXNwbGF5Om5vbmU7IH0gI3RvcEJhbm5lckltYWdlW2RhdGEtaW52Y2F0PSJ1c2VkIl0gLm5ld0ludkJhbm5lciB7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2VbZGF0YS1pbnZjYXQ9Im5ld2ludiJdOmhhcygubmV3SW52QmFubmVyKSAjZGVmYXVsdFRvcEJhbm5lciB7IGRpc3BsYXk6bm9uZTsgfSAjdG9wQmFubmVySW1hZ2VbZGF0YS1pbnZjYXQ9InVzZWQiXTpoYXMoLnVzZWRJbnZCYW5uZXIpICNkZWZhdWx0VG9wQmFubmVyIHsgZGlzcGxheTpub25lOyB9ICN0b3BCYW5uZXJJbWFnZSA+IGltZ3sgd2lkdGg6MTAwJTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NzYwcHgpIHsgI3RvcEJhbm5lckltYWdlIC50b3BCYW5uZXJJbWFnZS0tZGlzY2xhaW1lci1jb250cm9sIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAyOyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IGJvdHRvbTowLjc1cmVtOyB9ICN0b3BCYW5uZXJJbWFnZSAudG9wQmFubmVySW1hZ2UtLWRpc2NsYWltZXItY29udHJvbCA+IGJ1dHRvbiB7IHdpZHRoOmF1dG87IGJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC44KTsgYm9yZGVyOm5vbmU7IGNvbG9yOnZhcigtLXdoaXRlKTsgZm9udC1zaXplOnZhcigtLWZzLTIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjhweCAxM3B4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgd2lkdGg6Y2FsYygxMDAlIC0gMjBweCk7IGhlaWdodDpjYWxjKDEwMCUgLSAxMHB4KTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuOCk7IGNvbG9yOnZhcigtLWxpZ2h0KTsgZm9udC1zaXplOnZhcigtLWZzKTsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciAuZmEtdGltZXMgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IHRvcCA6MTBweDsgcmlnaHQ6MTAlOyBjdXJzb3I6cG9pbnRlcjsgfSAjdG9wQmFubmVySW1hZ2UgLnRvcEJhbm5lckltYWdlLS1kaXNjbGFpbWVyLWNvbnRhaW5lciA+IGRpdiB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDo3NSU7IHRvcDo1MCU7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyBoZWlnaHQ6OTAlOyBvdmVyZmxvdy14OmhpZGRlbjsgb3ZlcmZsb3cteTphdXRvOyB9IH0KLyoqIC9jc3MvdmVoaWNsZUZlYXR1cmVTdW1tYXJ5LnByZWxvYWQuY3NzICoqLwoudmRwRmVhdHVyZVN1bW1hcnl7IC0tc3dpdGNoLWJwOjUwcmVtOyBib3JkZXItY29sb3I6I2NjY2NjYzsgY2xlYXI6Ym90aDsgfSAudnNmaUl0ZW1TdW1tYXJ5IHsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MS4ycmVtOyB9IC52ZHBGZWF0dXJlQ29uc3VtcHRpb257IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IH0gLnZkcEZlYXR1cmVDb25zdW1wdGlvbiA+ICp7IGZsZXg6MSAxIDMxJTsgbWluLXdpZHRoOjlyZW07IH0KLyoqIC9jc3Mvc3F1YXJlX2J1dHRvbnMuY3NzICoqLwpidXR0b246bm90KC5idG4tcm91bmQpLCBpbnB1dFt0eXBlPXN1Ym1pdF0sIGlucHV0W3R5cGU9YnV0dG9uXSwgYVtvbmNsaWNrXSwgZGl2W29uY2xpY2tdLCAjZGktcmVhY3RpdmUtY29udGFpbmVyLXJpZ2h0LCAjZGktcHJvYWN0aXZlLWhlYWRlci1taW5pbWl6ZWQsICNkaS1wcm9hY3RpdmUtd2ViY2hhdC1idXR0b24sICNkaS1wcm9hY3RpdmUtc21zLWJ1dHRvbiwgLlVzZWRTcnAyIC5mbHRUb1Jlc3VsdCAuZGl2QWN0aW9uLCAuZGl2U2VvTGlua0lubmVyIGxpLCAuc3AtY2xlYXIuYWN0aXZlLCAuc3BlY3MtdG9nZ2xlLCAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLnJlYmF0ZVRhZywgLmJ1aWxkVHJpbUNhdGVnb3J5TGlzdExpLCAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiwgLmJ0bi1zbSwgLnRvcGJhcjNidG5XcmFwLCAjZGVmYXVsdFRvcEJhbm5lckJ0biwgLmJ0bi1kZWZhdWx0IHsgYm9yZGVyLXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmNhcm91c3NlbCBhLmFycm93IHNwYW46aXMoLmZhLCAuZmFzKSB7IG1hcmdpbi1yaWdodDowOyB9Ci8qKiAvY3NzL21haWxFeHByZXNzUmVxdWVzdFdpZGdldC5jc3MgKiovCi5tYWlsLWV4cHJlc3Mtd2lkZ2V0LCAubWFpbC1leHByZXNzLXdpZGdldC0tZnVsbHdpZHRoIHsgZmxvYXQ6bGVmdDsgd2lkdGg6Mjg1cHg7IG1hcmdpbjo1cHggNXB4IDVweCAxNXB4OyBwYWRkaW5nOjVweDsgfSAubWFpbC1leHByZXNzLXdpZGdldDphZnRlciB7IGNvbnRlbnQ6IiAiOyBjbGVhcjpib3RoOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19jb250YWluZXIsIC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19jb250YWluZXItLWZ1bGx3aWR0aCB7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgYm94LXNoYWRvdzoxcHggMnB4IDZweCAwIHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yNSk7IGNsZWFyOmJvdGg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo1cHg7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2VtYWlsLWRlZmluaXRpb24geyBkaXNwbGF5Om5vbmU7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2hlYWRlciB7IHBhZGRpbmc6MTBweCAxNXB4IDVweCAxNXB4OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19oZWFkZXIgLm1haWwtZXhwcmVzcy13aWRnZXRfX2hlYWRlci0tdGl0bGUgeyBmb250LXNpemU6dmFyKC0tZnM0KTsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2JvZHkgeyBwYWRkaW5nOjE1cHg7IH0gLm1haWwtZXhwcmVzcy13aWRnZXRfX2Zvb3RlciB7IHBhZGRpbmc6NXB4IDE1cHggMTVweCAxNXB4OyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXIgLmVycm9yTXNnIHsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXJfX3N1Ym1pdCBidXR0b24geyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMTlweDsgbWFyZ2luOjA7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MjhweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB9IC5tYWlsLWV4cHJlc3Mtd2lkZ2V0X19mb290ZXJfX3N1Ym1pdCBidXR0b246aG92ZXIgeyBib3JkZXItY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyB9Ci8qKiAvY3NzL2pxdWVyeS5kYXRldGltZXBpY2tlci5jc3MgKiovCi54ZHNvZnRfZGF0ZXRpbWVwaWNrZXJ7Ym94LXNoYWRvdzowIDVweCAxNXB4IC01cHggcmdiYSgwLDAsMCwwLjUwNik7YmFja2dyb3VuZDojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNiYmI7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO2JvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7Y29sb3I6IzMzMztmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO3BhZGRpbmc6OHB4O3BhZGRpbmctbGVmdDowO3BhZGRpbmctdG9wOjJweDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDAwMjE7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6bm9uZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6NzVweDtoZWlnaHQ6MjEwcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIGJ1dHRvbntib3JkZXI6bm9uZSAhaW1wb3J0YW50fS54ZHNvZnRfbm9zZWxlY3R7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Lnhkc29mdF9ub3NlbGVjdDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnhkc29mdF9ub3NlbGVjdDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9pbmxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246c3RhdGljO2JveC1zaGFkb3c6bm9uZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyICp7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MDttYXJnaW46MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfZGF0ZXBpY2tlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlcntkaXNwbGF5Om5vbmV9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2RhdGVwaWNrZXIuYWN0aXZlLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyLmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9kYXRlcGlja2Vye3dpZHRoOjIyNHB4O2Zsb2F0OmxlZnQ7bWFyZ2luLWxlZnQ6OHB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X3Nob3d3ZWVrcyAueGRzb2Z0X2RhdGVwaWNrZXJ7d2lkdGg6MjU2cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXJ7d2lkdGg6NThweDtmbG9hdDpsZWZ0O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjhweDttYXJnaW4tdG9wOjB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2RhdGVwaWNrZXIuYWN0aXZlKy54ZHNvZnRfdGltZXBpY2tlcnttYXJnaW4tdG9wOjhweDttYXJnaW4tYm90dG9tOjNweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbW91bnRocGlja2Vye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbCBpLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFBQUFlQ0FZQUFBRGFXN3Z6QUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5SnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU15MWpNREV4SURZMkxqRTBOVFkyTVN3Z01qQXhNaTh3TWk4d05pMHhORG8xTmpveU55QWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROaUFvVjJsdVpHOTNjeWtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2UTBOQlJqSTFOak0wTTBVd01URkZORGs0TmtGR016SkZRa1F6UWpFd1JVSWlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZRME5CUmpJMU5qUTBNMFV3TVRGRk5EazROa0ZHTXpKRlFrUXpRakV3UlVJaVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JTWldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEcERRMEZHTWpVMk1UUXpSVEF4TVVVME9UZzJRVVl6TWtWQ1JETkNNVEJGUWlJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRwRFEwRkdNalUyTWpRelJUQXhNVVUwT1RnMlFVWXpNa1ZDUkROQ01UQkZRaUl2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUG9ORVA1NEFBQUlPU1VSQlZIamE3SnE5VHNNd0VNY3hyWkQ0V3BCWWVLVUNlK2tUTUNBQ0haaDRCRmZITy9BQUlIWkdGaFlrQkJzU0VxeHNMQ0FnWEtoYlhZT1R4aDlwZkpWUCtxdXRuWjVzLzVMejJZNUkwM1FoV2ppMkdJY2dBb2tXZ2ZDeE52Y09DQ0dLcWlTcWhVcDBsYUhPbmUwNXZkRXlHTWZrZHhKRFZqZ3dEbEVRZ1lRQmd4K1VMSmFXU1hYUzZyL0VSNUZCVlI4VmZHZnRUS2NJVE5zK2ExWHBjRm9FeFJFSURGMTRBVklGeGdRVVMraDUyMGNkdWQ2d05rQzBVQnc2QkNPL0hvQ1l3QmhEOFFDa1EveDFtd0R5RDRwbGg0RDZERFYwVEFHeW80SGNhd0xJQkJTTERrSGVIME1nMnlWUDNsNFRRTVpRRERzRU9sL01nSFFxaE1OdUUwRCtvQmgwQ0lyOE1BS3lhekJIOVd5QnVLeERXZ2JYZmpOZjMyVFoxS1dtL0FwMW9Tay9SNTNVdFE1eFRoM0xVbE1tVDhndDZnNTFROXArU29ieGdKUS9xbXNmWmhXeXdHRlNsMHlCakNMSkNNZ1hhaWwzYjcrcnVtZFZKMllSc3M0Y04rcjZxQUhEa1BXalBqZEpDRjRuOVJtQUQvVjlBL1dwNE5RYXNzRGp3bEI2WEJpQ3hjSlFXbVpaYjhUSEZpbGZ5L2xmclR2TGdocTJUcVRIclJNVEtOSjBzSWhkbzE1UlQrUnB5V3dGZFk5NlVaL0xkUUtCR2pjWHBjYzFBbFNGRWZMbW91RCsxa251eEJEVVZydk9CbW9PQy9yRWNON09ReEtWZUpUQ2lBZFV6VUpoQTJPZXo5UVRrcDcyT1RWY3hEY1hZOGlLTmt4R0FKWG1KQ09Rd09hNmRoeVhzT2E2WHdFR0FLZGViNUVUM3JRZEFBQUFBRWxGVGtTdVFtQ0MpfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbCBpe29wYWNpdHk6LjU7YmFja2dyb3VuZC1wb3NpdGlvbjotOTJweCAtMTlweDtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo5cHg7aGVpZ2h0OjIwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2e2Zsb2F0OmxlZnQ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi03MHB4IDA7bWFyZ2luLWxlZnQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0e2Zsb2F0OnJpZ2h0O2JhY2tncm91bmQtcG9zaXRpb246MCAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Ym9yZGVyOjAgbm9uZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2hlaWdodDozMHB4O29wYWNpdHk6LjU7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT01MCkiO291dGxpbmU6bWVkaXVtIG5vbmU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoyMHB4O21pbi13aWR0aDowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfcHJldiwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X25leHR7ZmxvYXQ6bm9uZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IC0xNXB4O2hlaWdodDoxNXB4O3dpZHRoOjMwcHg7ZGlzcGxheTpibG9jazttYXJnaW4tbGVmdDoxNHB4O21hcmdpbi10b3A6N3B4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfcHJldntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IDA7bWFyZ2luLWJvdHRvbTo3cHg7bWFyZ2luLXRvcDowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3h7aGVpZ2h0OjE1MXB4O292ZXJmbG93OmhpZGRlbjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdntiYWNrZ3JvdW5kOiNmNWY1ZjU7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RkZDtjb2xvcjojNjY2O2ZvbnQtc2l6ZTowLjc1cmVtIDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLWJvdHRvbS13aWR0aDowO2hlaWdodDoyNXB4O2xpbmUtaGVpZ2h0OjI1cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveD5kaXY+ZGl2OmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdG9kYXlfYnV0dG9uOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0OmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2OmhvdmVye29wYWNpdHk6MTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTEwMCkifS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbHtkaXNwbGF5OmlubGluZTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7bWFyZ2luOjA7cGFkZGluZzo1cHggM3B4O2ZvbnQtc2l6ZTowLjg3NXJlbSA7bGluZS1oZWlnaHQ6MjBweDtmb250LXdlaWdodDpib2xkO2JhY2tncm91bmQtY29sb3I6I2ZmZjtmbG9hdDpsZWZ0O3dpZHRoOjE4MnB4O3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbDpob3Zlcj5zcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsOmhvdmVyIGl7b3BhY2l0eToxLjB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0e2JvcmRlcjoxcHggc29saWQgI2NjYztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDozMHB4O3otaW5kZXg6MTAxO2Rpc3BsYXk6bm9uZTtiYWNrZ3JvdW5kOiNmZmY7bWF4LWhlaWdodDoxNjBweDtvdmVyZmxvdy15OmhpZGRlbn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3QueGRzb2Z0X21vbnRoc2VsZWN0e3JpZ2h0Oi03cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0Lnhkc29mdF95ZWFyc2VsZWN0e3JpZ2h0OjJweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3Q+ZGl2Pi54ZHNvZnRfb3B0aW9uOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMzMzfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdD5kaXY+Lnhkc29mdF9vcHRpb257cGFkZGluZzoycHggMTBweCAycHggNXB4O3RleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0PmRpdj4ueGRzb2Z0X29wdGlvbi54ZHNvZnRfY3VycmVudHtiYWNrZ3JvdW5kOiMzYWY7Ym94LXNoYWRvdzojMTc4ZmU1IDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9tb250aHt3aWR0aDoxMDBweDt0ZXh0LWFsaWduOnJpZ2h0fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhcntjbGVhcjpib3RofS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF95ZWFye3dpZHRoOjQ4cHg7bWFyZ2luLWxlZnQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQ+ZGl2e3BhZGRpbmctcmlnaHQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0aHtoZWlnaHQ6MjVweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRoe3dpZHRoOjE0LjI4NTcxNDIlO2JhY2tncm91bmQ6I2Y1ZjVmNTtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Y29sb3I6IzY2Njtmb250LXNpemU6MC43NXJlbSA7dGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZzowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjVweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9zaG93d2Vla3MgLnhkc29mdF9jYWxlbmRhciB0ZCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9zaG93d2Vla3MgLnhkc29mdF9jYWxlbmRhciB0aHt3aWR0aDoxMi41JX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGh7YmFja2dyb3VuZDojZjFmMWYxfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfdG9kYXl7Y29sb3I6IzNhZn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2hpZ2hsaWdodGVkX2RlZmF1bHR7YmFja2dyb3VuZDojZmZlOWQyO2JveC1zaGFkb3c6I2ZmYjg3MSAwIDFweCA0cHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfaGlnaGxpZ2h0ZWRfbWludHtiYWNrZ3JvdW5kOiNjMWZmYzk7Ym94LXNoYWRvdzojMDBkZDFjIDAgMXB4IDRweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kZWZhdWx0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfY3VycmVudCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnR7YmFja2dyb3VuZDpncmV5O2JveC1zaGFkb3c6cmdiYSgyOSwzMCwzMSwwLjcpIDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfb3RoZXJfbW9udGgsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kaXNhYmxlZCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfZGlzYWJsZWR7b3BhY2l0eTouNTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTUwKSI7Y3Vyc29yOmRlZmF1bHR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9vdGhlcl9tb250aC54ZHNvZnRfZGlzYWJsZWR7b3BhY2l0eTouMjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTIwKSJ9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdjpob3Zlcntjb2xvcjojZmZmICFpbXBvcnRhbnQ7YmFja2dyb3VuZDojMzMzICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9jdXJyZW50Lnhkc29mdF9kaXNhYmxlZDpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnQueGRzb2Z0X2Rpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6IzNhZiAhaW1wb3J0YW50O2JveC1zaGFkb3c6IzE3OGZlNSAwIDFweCAzcHggMCBpbnNldCAhaW1wb3J0YW50O2NvbG9yOiNmZmYgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2Rpc2FibGVkOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfZGlzYWJsZWQ6aG92ZXJ7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50O2JhY2tncm91bmQ6aW5oZXJpdCAhaW1wb3J0YW50O2JveC1zaGFkb3c6aW5oZXJpdCAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0aHtmb250LXdlaWdodDo3MDA7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY29weXJpZ2h0e2NvbG9yOiNjY2MgIWltcG9ydGFudDtmb250LXNpemU6MC42MjVyZW0gO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTttYXJnaW4tbGVmdDo4cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NvcHlyaWdodCBhe2NvbG9yOiNlZWUgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY29weXJpZ2h0IGE6aG92ZXJ7Y29sb3I6I2FhYSAhaW1wb3J0YW50fS54ZHNvZnRfdGltZV9ib3h7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjfS54ZHNvZnRfc2Nyb2xsYmFyPi54ZHNvZnRfc2Nyb2xsZXJ7YmFja2dyb3VuZDojY2NjICFpbXBvcnRhbnQ7aGVpZ2h0OjIwcHg7Ym9yZGVyLXJhZGl1czozcHh9Lnhkc29mdF9zY3JvbGxiYXJ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6N3B4O3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7Y3Vyc29yOnBvaW50ZXJ9Lnhkc29mdF9zY3JvbGxlcl9ib3h7cG9zaXRpb246cmVsYXRpdmV9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFya3tib3gtc2hhZG93OjAgNXB4IDE1cHggLTVweCByZ2JhKDI1NSwyNTUsMjU1LDAuNTA2KTtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzQ0NDtib3JkZXItbGVmdDoxcHggc29saWQgIzMzMztib3JkZXItcmlnaHQ6MXB4IHNvbGlkICMzMzM7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztjb2xvcjojY2NjfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3h7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzIyMn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXZ7YmFja2dyb3VuZDojMGEwYTBhO2JvcmRlci10b3A6MXB4IHNvbGlkICMyMjI7Y29sb3I6Izk5OX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdHtib3JkZXI6MXB4IHNvbGlkICMzMzM7YmFja2dyb3VuZDojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdD5kaXY+Lnhkc29mdF9vcHRpb246aG92ZXJ7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiMwMDdmZmZ9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0PmRpdj4ueGRzb2Z0X29wdGlvbi54ZHNvZnRfY3VycmVudHtiYWNrZ3JvdW5kOiNjNTA7Ym94LXNoYWRvdzojYjAzZTAwIDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2xhYmVsIGksLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X3ByZXYsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X25leHQsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X3RvZGF5X2J1dHRvbntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQWVDQVlBQUFEYVc3dnpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9WMmx1Wkc5M2N5a2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRVUV4UVVVek9UQTBNMFV5TVRGRk5EbEJNMEZGUVRKRU5URXhSRFZCT0RZaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlFVRXhRVVV6T1RFME0wVXlNVEZGTkRsQk0wRkZRVEpFTlRFeFJEVkJPRFlpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwQlFURkJSVE00UlRRelJUSXhNVVUwT1VFelFVVkJNa1ExTVRGRU5VRTROaUlnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBCUVRGQlJUTTRSalF6UlRJeE1VVTBPVUV6UVVWQk1rUTFNVEZFTlVFNE5pSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcDBWeEdFQUFBSUFTVVJCVkhqYTdKck5TZ014RU1lYnRnaCszTVNMcjFUMVhuMkNIb1NLQjA4K1FtUjhCeDlBOGU3Uml4ZEI5Q0tDb05kZXhJdWd4RmxKYTdyTlpuZVRiTElwTS9Dbk5Mc2RNdk5qTThsMG1SQ2lROVllNjFJS0NBZ1pBVW5IK21VM01NWmFIWUNoQm5KVUR6V09GWmRWZmM1K1pGTGJyV0RlWFB3YnhJcXJMTGZhZVMwaEVCVkdJUlFDRWlab0hRd3RsR1NCeUNDZFlCbDhnOGVnVFRBV29LUU1SQlJCY1p4WWxoemhLZWdxTU9hZ2VFcnNDSFZrazNoWElGb29EZ0hCMUtrSElIVmd6S0I0QURKUS9BMWpBRm1BWWhrUXFBNVRPQnRvY3JLcmdYd1FBOGdjRkl1QUlPOHNRU0E3aGlkdlB3YVFHWlNhQVlIT1VXSkFCaFdXdzJFTUlIOVFhZ1FFUlU0U0FySlhvMFpaTDE4dXZheGVqWHQvRW04eGpWQlhtdkZyMUtWbS9BSjEwdFJlMlhucmFOcWFKdktFM0tIdVViZksxRStWSEIwcTQwL3kzc2RRU3hZNEZIV2VLSkN1blA4VXlEZHFKWmVuVDNudFZWNWpJWUNBaDIwdlQ3aW9QOHRwZjZFMmxmRU13RVJlK3doVjFNSGp3WkI3UEJpQ3hjR1FXd0taS0Q2MmxmR05uUC8xcG9GQUE2MFQ3ckYxVWdjS2QyaWQzS0RlVVMrb0xXVjhEZldBZXBPZnEwMENnUWFiaTl6amNnSlZZVkQ3UFZ6UVVBVUdBUWtiTkpUQklDRGhnd1lUakRZRDZYZVcwOFpLaCtBNHBZa3plbk94WFVidlpjV3o3RTh5a1JNbklIR1gxWFBsKzFtMnZQWXBMKzJxZGI4Q0RBQVJsS0ZFei9aVmtBQUFBQUJKUlU1RXJrSmdnZz09KX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGQsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRoe2JhY2tncm91bmQ6IzBhMGEwYTtib3JkZXI6MXB4IHNvbGlkICMyMjI7Y29sb3I6Izk5OX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGh7YmFja2dyb3VuZDojMGUwZTBlfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfdG9kYXl7Y29sb3I6I2M1MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2hpZ2hsaWdodGVkX2RlZmF1bHR7YmFja2dyb3VuZDojZmZlOWQyO2JveC1zaGFkb3c6I2ZmYjg3MSAwIDFweCA0cHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfaGlnaGxpZ2h0ZWRfbWludHtiYWNrZ3JvdW5kOiNjMWZmYzk7Ym94LXNoYWRvdzojMDBkZDFjIDAgMXB4IDRweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kZWZhdWx0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfY3VycmVudCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnR7YmFja2dyb3VuZDojYzUwO2JveC1zaGFkb3c6I2IwM2UwMCAwIDFweCAzcHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZDpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXY6aG92ZXJ7Y29sb3I6IzAwMCAhaW1wb3J0YW50O2JhY2tncm91bmQ6IzAwN2ZmZiAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0aHtjb2xvcjojNjY2fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jb3B5cmlnaHR7Y29sb3I6IzMzMyAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jb3B5cmlnaHQgYXtjb2xvcjojMTExICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NvcHlyaWdodCBhOmhvdmVye2NvbG9yOiM1NTUgIWltcG9ydGFudH0ueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lX2JveHtib3JkZXI6MXB4IHNvbGlkICMzMzN9Lnhkc29mdF9kYXJrIC54ZHNvZnRfc2Nyb2xsYmFyPi54ZHNvZnRfc2Nyb2xsZXJ7YmFja2dyb3VuZDojMzMzICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3NhdmVfc2VsZWN0ZWR7ZGlzcGxheTpibG9jaztib3JkZXI6MXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDttYXJnaW4tdG9wOjVweDt3aWR0aDoxMDAlO2NvbG9yOiM0NTQ1NTE7Zm9udC1zaXplOjEzcHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAuYmx1ZS1ncmFkaWVudC1idXR0b257Zm9udC1mYW1pbHk6Im11c2VvLXNhbnMiLCJCb29rIEFudGlxdWEiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuNzVyZW0gO2ZvbnQtd2VpZ2h0OjMwMDtjb2xvcjojODI4NzhjO2hlaWdodDoyOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6NHB4IDE3cHggNHB4IDMzcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDdkOGRhO2JhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAsI2ZmZiksY29sb3Itc3RvcCg3MyUsI2Y0ZjhmYSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjZmZmIDAsI2Y0ZjhmYSA3MyUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmIDAsI2Y0ZjhmYSA3MyUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZicsZW5kQ29sb3JzdHI9JyNmNGY4ZmEnLEdyYWRpZW50VHlwZT0wKX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpmb2N1cywueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpob3ZlciBzcGFuLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLmJsdWUtZ3JhZGllbnQtYnV0dG9uOmZvY3VzIHNwYW57Y29sb3I6IzQ1NDU1MTtiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCgwLCNmNGY4ZmEpLGNvbG9yLXN0b3AoNzMlLCNGRkYpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y0ZjhmYSAwLCNGRkYgNzMlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2Y0ZjhmYSAwLCNGRkYgNzMlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmNGY4ZmEnLGVuZENvbG9yc3RyPScjRkZGJyxHcmFkaWVudFR5cGU9MCl9Lnhkc29mdF9kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJlZDtjb2xvcjp3aGl0ZTtvcGFjaXR5OjF9Lnhkc29mdF9kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlODQ2NDYgIWltcG9ydGFudDtjb2xvcjp3aGl0ZSAhaW1wb3J0YW50fQovKiogL2Nzcy92aXNpdENvbnRhY3RGb3JtLmNzcyAqKi8KLnZpc2l0Q29udGFjdEhlYWRlcnsgcGFkZGluZzoxMHB4IDVweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnZpc2l0Q29udGFjdEhlYWRlciAudmlzaXRDb250YWN0Q1RBQ29udGFpbmVyeyB3aWR0aDoxMDAlOyB9IC52aXNpdENvbnRhY3RIZWFkZXIgLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXJ7IGRpc3BsYXk6bm9uZTsgei1pbmRleDoxMDA5OTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoyNTBweDsgcGFkZGluZzoxNXB4OyB0b3A6NTBweDsgbGVmdDotMjBweDsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE3NSk7IH0gLnZpc2l0Q29udGFjdEhlYWRlcjpob3ZlciAudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lcnsgZGlzcGxheTpibG9jazsgfSAudmlzaXRDb250YWN0SGVhZGVyIC52aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyLmlzT3BlbnsgZGlzcGxheTpibG9jazsgfSAudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lciAudmlzaXRDb250YWN0Rm9ybSB0ZXh0YXJlYS52aXNpdENvbnRhY3RDb21tZW50eyBkaXNwbGF5Om5vbmU7IGhlaWdodDo0MHB4OyByZXNpemU6dmVydGljYWw7IH0gLnZpc2l0Q29udGFjdEZvcm1Db250YWluZXIgLnZpc2l0Q29udGFjdEZvcm0gdGV4dGFyZWEudmlzaXRDb250YWN0Q29tbWVudC5zaG93Q29tbWVudHsgZGlzcGxheTpibG9jazsgfSAudmlzaXRDb250YWN0SGVhZGVyIC52aXNpdENvbnRhY3RDVEFDb250YWluZXIgLnZpc2l0Q29udGFjdEJ1dHRvbnsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTFweCA1cHggOXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IH0gLnZpc2l0Q29udGFjdEhlYWRlciAudmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lciAudmlzaXRDb250YWN0Rm9ybSAudmlzaXRDb250YWN0Rm9ybVN1Ym1pdHsgaGVpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MDsgd2lkdGg6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyBjb2xvcjojZmZmZmZmOyB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLnByZWxvYWQuY3NzICoqLwouZDJjZm9ybSB7IC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sOiIqIjsgLS1sYWJlbC1yZXF1aXJlZC1jb2xvcjojRkYwMDAwOyAtLWlucHV0LXBhZGRpbmc6dmFyKC0tcy0xKSB2YXIoLS1zMSk7IC0taW5wdXQtYmctY29sb3I6dmFyKC0td2hpdGUpOyAtLWlucHV0LWJvcmRlci1jb2xvcjp2YXIoLS1taWQtZ3JheSk7IC0taW5wdXQtcmFkaXVzOnZhcigtLXMtNik7IC0taW5wdXQtZm9udC1zaXplOnZhcigtLWZzMCk7IC0taW5wdXQtbGluZS1oZWlnaHQ6dmFyKC0tZnMyKTsgfSAuZDJjZm9ybSAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kMmNmb3JtIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy00KTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLXRoaW4gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTkpOyB9IC5kMmNmb3JtLS1yb3cgc3RhY2stbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtd3JhcDp3cmFwOyB9IC5kMmNmb3JtLS1yb3cgYm94LWxjIHsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDoxMTVweDsgd2lkdGg6MzAlOyBwYWRkaW5nLXJpZ2h0OnZhcigtLXMpOyBtYXJnaW4tdG9wOnZhcigtLXMxKTsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIGxhYmVsOmhhcyhbcmVxdWlyZWRdKSBzcGFuOmFmdGVyeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWw6bm90KC5maW5hbmNlQ2FsYyksIC5kMmNmb3JtIC5sYWJlbDpub3QoLmZpbmFuY2VDYWxjKSB7IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctcmlnaHQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gOndoZXJlKGlucHV0Om5vdChbdHlwZT1zdWJtaXRdLC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50KTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSkpLCAuZDJjZm9ybSBzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QpLCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCB7IGhlaWdodDozNXB4OyB9IC5kMmNmb3JtIC5pbnZhbGlkID4gOmlzKGlucHV0LHNlbGVjdCx0ZXh0YXJlYSl7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAuZDJjZm9ybSBpbnB1dDpkaXNhYmxlZCwgLmQyY2Zvcm0gaW5wdXQuZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKTsgY29sb3I6cmdiKDg0LCA4NCwgODQpOyBib3JkZXItY29sb3I6cmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpOyBjdXJzb3I6bm90LWFsbG93ZWQ7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyIHsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXI6OnBsYWNlaG9sZGVyIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQsIC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB0b3A6dmFyKC0tczEpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBjb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IC5pbnB1dC1pY29uIHsgcmlnaHQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgLmlucHV0LWljb24geyBsZWZ0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IGlucHV0IHsgcGFkZGluZy1sZWZ0OnZhcigtLXM5KTsgfSAuZDJjZm9ybSAuc2VwYXJhdG9yIHsgd2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2Q0ZDRkNDsgbWFyZ2luLXRvcDp2YXIoLS1zNyk7IG1hcmdpbi1ib3R0b206dmFyKC0tczcpOyB9IC5kMmNmb3JtIC5yYWRpby1pbmxpbmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0ID4gKiB7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0ID4gKjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBtYXJnaW4tcmlnaHQ6dmFyKC0tczEpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCB7IGRpc3BsYXk6ZmxleDsgd2lkdGggOjEwMCU7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC10ZXh0IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQ6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsgYm9yZGVyLWxlZnQ6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmxhc3QtY2hpbGQpIHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6OTgwcHgpIHsgLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjg1cHg7IH0gfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5jc3MgKiovCi5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pOmZvY3VzLCAuZDJjZm9ybSBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIHRleHRhcmVhOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiM4NmI3ZmU7IG91dGxpbmU6MDsgYm94LXNoYWRvdzowIDAgMCAwLjJyZW0gcmdiKDEzIDExMCAyNTMgLyAyNSUpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pOmZvY3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgeyB6LWluZGV4OjM7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSBzZWxlY3QudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSB0ZXh0YXJlYS52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBib3JkZXItY29sb3I6I2RjMzU0NSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXM6OnBsYWNlaG9sZGVyLCAuZDJjZm9ybSB0ZXh0YXJlYS52YWxpZGl0eS1lcnJvbmVvdXM6OnBsYWNlaG9sZGVyLCAuZDJjZm9ybSBzZWxlY3QudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgY29sb3I6I2RjMzU0NTsgfQovKiogL2Nzcy9nZW5lcmljX2NlcnRpZmllZC5jc3MgKiovCi5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuZmFiIHsgZm9udC1zaXplOjEuNjg4cmVtIDsgfSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmZhLWZhY2Vib29rIHsgY29sb3I6IzNhNTk5ODsgfSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmZhLXR3aXR0ZXIgeyBjb2xvcjojMDBhY2VkOyB9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuZmEtaW5zdGFncmFtIHsgY29sb3I6I2YyMzk5NTsgfSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmZhLXlvdXR1YmUgeyBjb2xvcjojZmYwMDAwOyB9Ci8qKiAvY3NzL2h5dW5kYWlfY2VydGlmaWVkLmNzcyAqKi8KYm9keSAqOm5vdCguZmEsIC5mYWIsIC5mYWQsIC5mYWwsIC5mYXIsIC5mYXMpIHsgZm9udC1mYW1pbHk6aW5oZXJpdCAhaW1wb3J0YW50OyB9IDppcyhidXR0b24sIFtyb2xlPSJidXR0b24iXSwgYSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOmZvY3VzIHsgb3V0bGluZToycHggc29saWQgIzAwN0ZBNSAhaW1wb3J0YW50OyB9IC5Vc2VkU3JwMiAuZmx0V3JhcHBlciAuZmx0Qm94IC5mbHRUaXRsZSwgLmRpdlNwYW4gLmRpdlNwYW4xMiAuZmx0SGVhZCB7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjbGVhcjpib3RoOyB9ICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyLnNlcGFyYXRvciB7IGJvcmRlci10b3A6MXB4IHNvbGlkICNjY2NjY2M7IH0gI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgLmNvbnRhaW5lciB7IGRpc3BsYXkgOmZsZXg7IGZsZXgtZGlyZWN0aW9uIDpyb3c7IGp1c3RpZnktY29udGVudCA6Y2VudGVyOyBhbGlnbi1pdGVtcyA6Y2VudGVyOyB3aWR0aCA6OTYwcHg7IGhlaWdodCA6NzVweDsgbWFyZ2luIDowIGF1dG87IHBvc2l0aW9uIDpyZWxhdGl2ZTsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuc29jaWFsLW1lZGlhX19jb250YWluZXIgeyBkaXNwbGF5IDpmbGV4OyBmbGV4LWRpcmVjdGlvbiA6cm93OyBqdXN0aWZ5LWNvbnRlbnQgOmNlbnRlcjsgYWxpZ24taXRlbXMgOmNlbnRlcjsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuc29jaWFsLW1lZGlhX19jb250YWluZXIgYSB7IGhlaWdodCA6MjhweDsgd2lkdGggOjI4cHg7IG1hcmdpbiA6MCAxMHB4OyBib3JkZXItcmFkaXVzIDozcHg7IGJhY2tncm91bmQtY29sb3IgOnRyYW5zcGFyZW50OyBjb2xvciA6IzAwMDAwMDsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuc29jaWFsLW1lZGlhX19jb250YWluZXIgaW1nIHsgaGVpZ2h0IDoyOHB4OyB3aWR0aCA6MjhweDsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuZGlzY2xhaW1lcl9fY29udGFpbmVyIHsgd2lkdGggOjUwJTsgbWFyZ2luIDowIDJyZW07IH0gI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgLmRpc2NsYWltZXJfX2NvbnRhaW5lciBwIHsgZm9udC1zaXplIDowLjhyZW07IHRleHQtYWxpZ24gOmNlbnRlcjsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuY2VydGlmaWVkLWxvZ28geyB3aWR0aCA6MjAwcHg7IGhlaWdodCA6YXV0bzsgfSBidXR0b24gLi1ib2xkIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5uZXdWZHBBY3Rpb25zIC5wcm9tb0JUTiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTiB7IGhlaWdodDozLjVyZW07IGxpbmUtaGVpZ2h0OjEuMTI1cmVtICFpbXBvcnRhbnQ7IH0gLnVzZWRWZHBBY3Rpb25zIC5idXR0b25fdW5kZXIgYS5wcm9tb0JUTiB7IGhlaWdodDoyLjRyZW07IGxpbmUtaGVpZ2h0OjIuNHJlbSFpbXBvcnRhbnQ7IH0gLmJlc3RwcmljZXMtLWNvbnRhaW5lciAucHJpY2UtLWNhbGN1bGF0b3IgLmJ0biwgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYS5idG4tZGVmYXVsdCwgI3N1Ym1pdGV4cHJlc3NyZXF1ZXN0IHsgYmFja2dyb3VuZCA6IzAwMkM1RiAhaW1wb3J0YW50OyBjb2xvciA6I0ZGRkZGRiAhaW1wb3J0YW50OyBib3JkZXIgOjJweCBzb2xpZCAjMDAyQzVGICFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0Om5vdCgucHJvbW9CVE4pLCAuYnRuLXNtLCAuYnRuLWxnLCAuc3VibWl0LCAjc2xpZGVpdCBpbnB1dC5zZW5kLCAuY3VzdG9tZm9ybV9zdWJtaXQsIC5idG4tZGVmYXVsdC5idG4tYmctc2FtZSwgLm5ld1ZkcEFjdGlvbnMgLmJ1dHRvbl8zIGEsIC51c2VkVmRwQWN0aW9ucyAuYWN0aW9uLWJveCBhLmJ0bi1kZWZhdWx0LCAudXNlZFZkcEFjdGlvbnMgLmJ1dHRvbl8zIGEsICNmaW5hbmNlQWx0RGlzcGxheS5jdXN0b20gLmZvcm1ob2xkZXIgZm9ybSAuYmlnX0J1dHRvbiwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNsb2FuQ2FsY3VsYXRvckFjdGlvbiwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNhcHBseUxvYW5DYWxjdWxhdG9yLCAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEsIC5wcm9tby1idG4sIC5wdWxsb3V0cyAucHVsbG91dC1ib2R5LWJ1dHRvbiwgYnV0dG9uI2Zvcm1zdWJtaXQgeyBiYWNrZ3JvdW5kIDojRkZGRkZGICFpbXBvcnRhbnQ7IGNvbG9yIDojMDAyQzVGICFpbXBvcnRhbnQ7IGJvcmRlciA6MnB4IHNvbGlkICMwMDJDNUYgIWltcG9ydGFudDsgZm9udC1zaXplIDoxcmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuYnRuLWRlZmF1bHQ6bm90KC5wcm9tb0JUTik6YWZ0ZXIsIC5idG4tZGVmYXVsdDpub3QoLnByb21vQlROKTpiZWZvcmUsIC5idG4tZGVmYXVsdDpub3QoLnByb21vQlROKSAuZmEsIC5idG4tc206YWZ0ZXIsIC5idG4tc206YmVmb3JlLCAuYnRuLXNtLmZhLCAuYnRuLWxnOmFmdGVyLCAuYnRuLWxnOmJlZm9yZSwgLmJ0bi1sZy5mYSwgLnN1Ym1pdDphZnRlciwgLnN1Ym1pdDpiZWZvcmUsIC5zdWJtaXQuZmEsIC5jdXN0b21mb3JtX3N1Ym1pdDphZnRlciwgLmN1c3RvbWZvcm1fc3VibWl0OmJlZm9yZSwgLmN1c3RvbWZvcm1fc3VibWl0LmZhLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2xvYW5DYWxjdWxhdG9yQWN0aW9uIC5mYSwgLmdyYXlib3ggLmJ0bi1kZWZhdWx0Om5vdCgucHJvbW9CVE4pIHNwYW4geyBjb2xvciA6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5idG4tbGcsICNmaW5hbmNlQWx0RGlzcGxheS5jdXN0b20gLmZvcm1ob2xkZXIgZm9ybSAuYmlnX0J1dHRvbiwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNsb2FuQ2FsY3VsYXRvckFjdGlvbiwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNhcHBseUxvYW5DYWxjdWxhdG9yIHsgbWluLWhlaWdodCA6My4yNXJlbSAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDozLjI1cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmctdG9wOjAgIWltcG9ydGFudDsgcGFkZGluZy1ib3R0b206MCAhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudDsgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAuYnRuLXNtLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2xvYW5DYWxjdWxhdG9yQWN0aW9uLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2FwcGx5TG9hbkNhbGN1bGF0b3IsIC5wdWxsb3V0cyAucHVsbG91dC1ib2R5LWJ1dHRvbiB7IHBhZGRpbmctbGVmdDoxLjI1cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmctcmlnaHQ6MS4yNXJlbSAhaW1wb3J0YW50OyB9IC5uZXdWZHBBY3Rpb25zIC5idXR0b25fMyBhLCAudXNlZFZkcEFjdGlvbnMgLmFjdGlvbi1ib3ggYS5idG4tZGVmYXVsdCwgLnVzZWRWZHBBY3Rpb25zIC5idXR0b25fMyBhIHsgaGVpZ2h0IDozLjI1cmVtOyBsaW5lLWhlaWdodDozLjI1cmVtICFpbXBvcnRhbnQ7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCAuY3JlZGl0U2NvcmVfYnRuIHsgaGVpZ2h0IDozLjVyZW0gIWltcG9ydGFudDsgbGluZS1oZWlnaHQgOjMuNXJlbSAhaW1wb3J0YW50OyBwYWRkaW5nIDowIDIwcHg7IGZvbnQtc2l6ZSA6MXJlbSAhaW1wb3J0YW50OyB9IC50cmFkZUluQmFyX2J0bjpob3ZlciwgLm5ld1ZkcEFjdGlvbnMgLmJ1dHRvbl8zIGE6aG92ZXIsIC51c2VkVmRwQWN0aW9ucyAuYWN0aW9uLWJveCBhLmJ0bi1kZWZhdWx0OmhvdmVyLCAudXNlZFZkcEFjdGlvbnMgLmJ1dHRvbl8zIGE6aG92ZXIsIC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgLmNyZWRpdFNjb3JlX2J0bjpob3ZlciwgLmJ0bi1kZWZhdWx0OmhvdmVyLCAuY3VzdG9tZm9ybV9zdWJtaXQ6aG92ZXIsIC5idG4tc206aG92ZXIsIC5idG4tbGc6aG92ZXIsIC5zdWJtaXQ6aG92ZXIsICNzbGlkZWl0IGlucHV0LnNlbmQ6aG92ZXIsIC5idG4tZGVmYXVsdC5idG4tYmctc2FtZTpob3ZlciwgI2ZpbmFuY2VBbHREaXNwbGF5LmN1c3RvbSAuZm9ybWhvbGRlciBmb3JtIC5iaWdfQnV0dG9uOmhvdmVyLCAucHJvbW8tY2FyZC1vZW0gYS5idG46aG92ZXIsICNsb2FuY2FsY3VsYXRvciBidXR0b24jbG9hbkNhbGN1bGF0b3JBY3Rpb246bm90KDpkaXNhYmxlZCk6aG92ZXIgLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2FwcGx5TG9hbkNhbGN1bGF0b3I6bm90KDpkaXNhYmxlZCk6aG92ZXIsIC5idXR0b25fMSBhOmhvdmVyLCAuYnV0dG9uXzIgYTpob3ZlciwgLnByb21vLWJ0bjpob3ZlciwgLmJlc3RwcmljZXMtLWNvbnRhaW5lciAucHJpY2UtLWNhbGN1bGF0b3IgLmJ0bjpob3ZlciwgLnB1bGxvdXRzIC5wdWxsb3V0LWJvZHktYnV0dG9uOmhvdmVyLCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLmJ0bi1kZWZhdWx0OmhvdmVyLCAjdHJhZGVJbkJhclBvcHVwU3VibWl0OmhvdmVyLCBidXR0b24jZm9ybXN1Ym1pdDpob3ZlciwgI3N1Ym1pdGV4cHJlc3NyZXF1ZXN0OmhvdmVyIHsgYmFja2dyb3VuZCA6IzAwN0ZBNSAhaW1wb3J0YW50OyBjb2xvciA6I0ZGRkZGRiAhaW1wb3J0YW50OyBib3JkZXItY29sb3IgOiMwMDdGQTUgIWltcG9ydGFudDsgfSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHNwYW4uZmF7IGNvbG9yOmluaGVyaXQ7IH0gLmlkTmF2MSwgLmlkTmF2MSBsaS50b3AgeyBoZWlnaHQ6YXV0bzsgfSAjbWFpbkRpdi53cmFwcGVyIC50b3BfYmcgeyBtaW4taGVpZ2h0OjkwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAuaGVhZGVyLWltYWdlLXdyYXBwZXIgeyBtaW4taGVpZ2h0OjYwcHggIWltcG9ydGFudDsgfSAuaGVhZGVyLXNlY3Rpb24gLmFkciB7IG1hcmdpbjowOyB9ICNNYWluTWVudV9TRUFSQ0hfQkFSIC5zZWFyY2gtaWNvbiB7IGJhY2tncm91bmQtY29sb3I6IzAwMmM1ZiAhaW1wb3J0YW50OyB9IC5tb2JpbGVIeXVuZGFpQ2VydGlmaWVkRm9vdGVyeyBoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6MTBweDsgfSAubW9iaWxlSHl1bmRhaUNlcnRpZmllZEZvb3RlciA+IC5jb250YWluZXJ7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbiAhaW1wb3J0YW50OyBoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyBwYWRkaW5nLXRvcDoxMHB4OyB9IC5tb2JpbGVIeXVuZGFpQ2VydGlmaWVkRm9vdGVyIC5kaXNjbGFpbWVyX19jb250YWluZXJ7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9Ci8qKiAvY3NzL3RvYXN0ci5jc3MgKiovCi50b2FzdC10aXRsZXtmb250LXdlaWdodDpib2xkfS50b2FzdC1tZXNzYWdley1tcy13b3JkLXdyYXA6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0udG9hc3QtbWVzc2FnZSBhLC50b2FzdC1tZXNzYWdlIGxhYmVse2NvbG9yOiNmZmZ9LnRvYXN0LW1lc3NhZ2UgYTpob3Zlcntjb2xvcjojY2NjO3RleHQtZGVjb3JhdGlvbjpub25lfS50b2FzdC1jbG9zZS1idXR0b257cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6LTAuM2VtO3RvcDotMC4zZW07ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjEuMjVyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6aW5oZXJpdDstd2Via2l0LXRleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjt0ZXh0LXNoYWRvdzowIDFweCAwICNmZmY7b3BhY2l0eTouODstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKX0udG9hc3QtY2xvc2UtYnV0dG9uOmhvdmVyLC50b2FzdC1jbG9zZS1idXR0b246Zm9jdXN7Y29sb3I6IzAwMDAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5Oi40Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfWJ1dHRvbi50b2FzdC1jbG9zZS1idXR0b257cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnRvYXN0LXRvcC1jZW50ZXJ7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC1ib3R0b20tY2VudGVye2JvdHRvbTowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtdG9wLWZ1bGwtd2lkdGh7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC1ib3R0b20tZnVsbC13aWR0aHtib3R0b206MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LXRvcC1sZWZ0e3RvcDoxMnB4O2xlZnQ6MTJweH0udG9hc3QtdG9wLXJpZ2h0e3RvcDoxMnB4O3JpZ2h0OjEycHh9LnRvYXN0LWJvdHRvbS1yaWdodHtyaWdodDoxMnB4O2JvdHRvbToxMnB4fS50b2FzdC1ib3R0b20tbGVmdHtib3R0b206MTJweDtsZWZ0OjEycHh9I3RvYXN0LWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTk5OTtjb2xvcjojRkZGfSN0b2FzdC1jb250YWluZXIgKnstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9I3RvYXN0LWNvbnRhaW5lcj5kaXZ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowIDAgNnB4O3BhZGRpbmc6MTVweCAxNXB4IDE1cHggNTBweDt3aWR0aDozMDBweDstbW96LWJvcmRlci1yYWRpdXM6M3B4IDNweCAzcHggM3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7Ym9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7YmFja2dyb3VuZC1wb3NpdGlvbjoxNXB4IGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LW1vei1ib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7Ym94LXNoYWRvdzowIDAgMTJweCAjOTk5O2NvbG9yOmluaGVyaXQ7b3BhY2l0eTouODstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKX0jdG9hc3QtY29udGFpbmVyPjpob3ZlcnstbW96LWJveC1zaGFkb3c6MCAwIDEycHggIzAwMDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEycHggIzAwMDtib3gtc2hhZG93OjAgMCAxMnB4ICMwMDA7b3BhY2l0eToxOy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7Y3Vyc29yOnBvaW50ZXJ9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3QtaW5mb3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUd3U1VSQlZFaEx0WmE5U2dOQkVNYzlzVXh4UmNvVUtTelNXSWhYcEZNaGhZV0ZoYUJnNHlQWWlXQ1haeEJMRVJzTFJTM0VRa0Vmd0NLZGpXSkF3U0tDZ29LQ2N1ZHY0TzVZTHJ0N0V6Z1hoaVUzLzQrYjJja213VmpKU3BLa1E2d0FpNGd3aFQrejN3UkJjRXoweWpTc2VVVHJjUnlmc0hzWG1EMEFtYkhPQzlJaThWSW1udVhCUGdsSHBRNXd3U1ZNN3NOblRHN1phNEp3RGRDanh5QWlIM255QTJtdGFUSnVmaURaNWRDYXFsSXRJTGgxTkhhdGZONXNrdmp4OVozOG02OUNnenVYbVpnVnJQSUdFNzYzSng5cUtzUm96V1l3NnhPSGRFUitubjJLa08rQmIrVVY1Q0JONldDNlF0QmdiUlZvenJhaEFibW02SHRVc2d0UEMxOXRGZHhYWllCT2ZrYm1GSjFWYUhBMVZBSGpkMHBwNzBvVFp6dlIrRVZyeDJZZ2Zkc3E2ZXU1NUJIWVI4aGxja2krbitrRVJVRkc4QnJBMEJ3amVBdjJNOFdMUUJ0Y3krU0Q2Zk5zbW5CM0FsQkxyZ1R0VlcxYzJRTjRiVldMQVRhSVM2MEoyRHU1eTFUaUpnalNCdkZWWmdUbXdDVStkQVpGb1B4R0VFczhueUhDOUJ3ZTJHdkVKdjJXWFpiMHZqZHlGVDRDeGszZS9rSXFsT0dvVkx3d1BldnBZSFQrMDBUK2hXd1hEZjRBSkFPVXFXY0RoYndBQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3QtZXJyb3J7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFIT1NVUkJWRWhMclphL1NnTkJFTVp6aDBXS0NDbFNDS2FJWU9FRCtBQUtlUVFMRzhIV3p0TENJbUJyWWFkZ0lkWStnSUtOWWtCRlN3dTdDQW9xQ2dra29HQkkvRTI4UGRiTFptZURMZ3paemN4ODMveloyU1NYQzFqOWZyK0kxSHE5M2cyeXhINGl3TTF2a29CV0FkeENtcHpUeGZrTjJSY3laTmFIRklrU28xMCs4a2d4a1hJVVJWNUhHeFRtRnVjNzVCMlJmUWtweEhHOGFBZ2FBRmEwdEFIcVlGZlE3SXdlMnloT0RrOCtKNEM3eUFvUlRXSTN3LzRrbEdSZ1I0bE83UnBuOStndk15V3ArdXhGaDgrSCtBUmxnTjFuSnVKdVFBWXZOa0Vud0dGY2sxOEVyNHEzZWdFYy9vTyttaExkS2dSeWhkTkZpYWNDMHJsT0NiaE5WejRIOUZuQVlnREJ2VTNRSWlvWmxKRkxKdHNvSFlSRGZpWm9VeUl4cUN0UnBWbEFOcTBFVTRkQXBqcnRnZXpQRmFkNVMxOVdnamtjMGhOVm51RjRIalZBNkM3UXJTSWJ5bEIrb1plM2FIZ0JzcWxOcUtZSDQ4alh5SktNdUFiaXlWSjhLemFCM2VSYzBwZzlWd1E0bmlGcnlJNjhxaU9pM0Fiandkc2ZuQXRrMGJDalRMSktyNm1yRDlnOGlxL1MvQjgxaGd1T01sUVRuVnlHNDB3QWNqbm1nc0NORVNEcmptZTd3ZmZ0UDRQN1NQNE4zQ0paZHZ6b055R3EyYy9IV09YSkdzdlZnK1JBL2syTUMvd042STJZQTJQdDhHa0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1zdWNjZXNze2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBRHNTVVJCVkVoTFkyQVlCZlFNZ2YvLy8zUDgrL2V2QUlndkEvRnNJRitCYXZZRERXTUJHcm9hU01NQmlFOFZDN0FaRHJJRmFNRm5paTNBWlRqVWdzVVVXVURBOE9kQUg2aVFiUUVodzRIeUdzUEVjS0JYQklDNEFSaGV4NEc0QnNqbXdlVTFzb0lGYUdnL1d0b0ZaUklaZEV2SU1oeGtDQ2pYSVZzQVRWNmdGR0FDczRSc3cwRUdnSUlIM1FKWUpnSFNBUlFaRHJXQUIramF3emdzK1EyVU80OUQ3am5SU1JHb0VGUklMY2RtRU1XR0kwY20wSkoyUXBZQTFSRHZjbXpKRVdoQUJoRC9wcXJMMFMwQ1d1QUJLZ25Sa2k5bExzZVM3ZzJBbHF3SFdRU0tING9LTHJJTHBSR2hFUUN3MkxpUlVJYTRsd0FBQUFCSlJVNUVya0pnZ2c9PSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3Qtd2FybmluZ3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUdZU1VSQlZFaEw1WlN2VHNOUUZNYlhaR0lDTVlHWW1KaEFRSUpBSUNZUVBBQUNpU0RCOEFpSUNRUUpUNENxUUV3Z0p2WUFTQVFDaVppWW1KaEFJQkFUQ0FSSnkrOXJUc2xkZDhzS3UxTTArZExiMDU3djYvbGJxLzJySzBtUy9UUk5qOWNXTkFLUFlJSklJN2dJeENjUTUxY3ZxSUQrR0lFWDhBU0c0QjFiSzVnSVpGZVFmb0pkRVhPZmdYNFFBUWc3a0gyQTY1eVE4N2x5eGIyN3NnZ2tBekF1RmhiYmcxSzJrZ0NrQjFiVnd5SVI5bTJMN1BSUEloRFVJWGdHdHlLdzU3NXl6M2xUTnM2WDRKWG5qVitMS00vbTNNeWRuVGJ0T0tJanR6NlZoQ0JxNHZTbTNuY2RyRDJsazBWZ1VYU1ZLalZESlhKemlqVzFSUWRzVTdGNzdIZTh1Njhrb05aVHo4T3o1eUdhNkozSDNsWjB4WWdYQksyUXltbFdXQStSV25ZaHNrTEJ2MnZtRStoQk1DdGJBN0tYNWRyV3lSVC8ySnNxWjJJdmZCOVk0YldETk1GYkpSRm1DOUU3NFNvUzBDcXVsd2prQzArNWJwY1YxQ1o4Tk1lajRwankwVStkb0RRc0d5bzFoelZKdHRJamhRN0duQnRSRk4xVWFyVWxIOEYzeGljdCtIWTA3ckV6b1VHUGxXY2pSRlJyNC9nQ2haZ2MzWkwyZDhvQUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXIudG9hc3QtdG9wLWNlbnRlcj5kaXYsI3RvYXN0LWNvbnRhaW5lci50b2FzdC1ib3R0b20tY2VudGVyPmRpdnt3aWR0aDozMDBweDttYXJnaW46YXV0b30jdG9hc3QtY29udGFpbmVyLnRvYXN0LXRvcC1mdWxsLXdpZHRoPmRpdiwjdG9hc3QtY29udGFpbmVyLnRvYXN0LWJvdHRvbS1mdWxsLXdpZHRoPmRpdnt3aWR0aDo5NiU7bWFyZ2luOmF1dG99LnRvYXN0e2JhY2tncm91bmQtY29sb3I6IzAzMDMwM30udG9hc3Qtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM1MWEzNTF9LnRvYXN0LWVycm9ye2JhY2tncm91bmQtY29sb3I6I2JkMzYyZn0udG9hc3QtaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiMyZjk2YjR9LnRvYXN0LXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZjg5NDA2fS50b2FzdC1wcm9ncmVzc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjRweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTouNDstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjI0MHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjhweCA4cHggOHB4IDUwcHg7d2lkdGg6MTFlbX0jdG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b257cmlnaHQ6LTAuMmVtO3RvcDotMC4yZW19fUBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MjQxcHgpIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjhweCA4cHggOHB4IDUwcHg7d2lkdGg6MThlbX0jdG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b257cmlnaHQ6LTAuMmVtO3RvcDotMC4yZW19fUBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6NDgxcHgpIGFuZCAobWF4LXdpZHRoOjc2OHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjE1cHggMTVweCAxNXB4IDUwcHg7d2lkdGg6MjVlbX19Ci8qKiAvY3NzL3NsaWRlUmlnaHQuY3NzICoqLwojc2xpZGVpdCBsYWJlbCB7IGN1cnNvcjpwb2ludGVyOyB9ICNzbGlkZWl0IHsgei1pbmRleDoxMTAxOyBwb3NpdGlvbjpmaXhlZDsgd2lkdGg6YXV0bzsgaGVpZ2h0OjEwMCU7IHRvcDowOyByaWdodDowOyB9ICNzbGlkZWl0IC5maWVsZCBpbnB1dCwgI3NsaWRlaXQgLmZpZWxkIHNlbGVjdCwgI3NsaWRlaXQgLmZpZWxkIHRleHRhcmVheyB3aWR0aDoxMDAlOyB9ICNzbGlkZWl0IGxhYmVsLnRleHQtdXMtYnRueyBwb3NpdGlvbjpmaXhlZDsgYm90dG9tOjEuNXJlbTsgcmlnaHQ6MS41cmVtOyB6LWluZGV4OjEwOyBwYWRkaW5nOjFyZW07IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXItd2lkdGg6MXB4OyBoZWlnaHQ6MS41cmVtOyAtLWZzOnZhcigtLWZzNSk7IC0tdHh0LWNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6IzAwN2ZhNTsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyLWNvbG9yOiNmZmZmZmY7IH0gI3NsaWRlaXQgc2VjdGlvbiB7IG1hcmdpbjowOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjMyMHB4OyBoZWlnaHQ6YXV0bzsgcmlnaHQ6MDsgYm90dG9tOjA7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwOyBiYWNrZ3JvdW5kOiNmZmY7IGJvcmRlcjoxcHggc29saWQgIzMzMzsgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgLW1zLXRyYW5zaXRpb246YWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC42LCAwLjMsIDEpOyAtby10cmFuc2l0aW9uOmFsbCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgdHJhbnNpdGlvbjphbGwgMC40cyBjdWJpYy1iZXppZXIoMC4yLCAwLjYsIDAuMywgMSk7IH0gI3NsaWRlaXQgc2VjdGlvbiwgI3NsaWRlaXQgaW5wdXQjY2xvc2UtaXRlbTpjaGVja2VkIH4gc2VjdGlvbiB7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpOyB9ICNzbGlkZWl0IGlucHV0I29wZW4taXRlbTpjaGVja2VkIH4gc2VjdGlvbiB7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7IC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOyB9ICNzbGlkZWl0IHNlY3Rpb24gLndyYXAgeyBwYWRkaW5nOjE1cHggMjBweDsgcG9zaXRpb246cmVsYXRpdmU7IGJvcmRlci1ib3R0b206NnB4IHNvbGlkICMwMDAwMDA7IH0gI3NsaWRlaXQgc3Bhbi50aXRsZSB7IGZvbnQtc2l6ZToxLjVyZW0gOyBwYWRkaW5nOjE1cHg7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6I2U0ZGNkMzsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgfSAjc2xpZGVpdCBwLmluZm8geyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxOHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gI3NsaWRlaXQgbGFiZWwub3BlbiwgI3NsaWRlaXQgbGFiZWwuY2xvc2UgeyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246YWJzb2x1dGU7IH0gI3NsaWRlaXQgbGFiZWwub3BlbiB7IGJvdHRvbSA6YXV0bzsgcmlnaHQgOi0xMDFweDsgbGVmdCA6YXV0bzsgd2lkdGggOjI5cHg7IG1hcmdpbiA6MCBhdXRvOyBwYWRkaW5nIDoxMHB4IDEycHg7IGJvcmRlciA6MXB4IHNvbGlkICMzMzMzMzM7IGJvcmRlci1yaWdodCA6bm9uZTsgdGV4dC10cmFuc2Zvcm0gOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQgOmJvbGQ7IHotaW5kZXggOjE7IHdoaXRlLXNwYWNlIDpub3dyYXA7IHRvcDo2MSU7IGNvbG9yOiNlNGRjZDM7IGJhY2tncm91bmQ6IzAwMDAwMDsgfSAjc2xpZGVpdCBsYWJlbC5vcGVuOmhvdmVyIHsgd2lkdGggOjE0MHB4OyB9ICNzbGlkZWl0IGxhYmVsLm9wZW46YmVmb3JlIHsgY29udGVudCA6IlxmN2NkIjsgZm9udC1mYW1pbHkgOiJGb250IEF3ZXNvbWUgNSBQcm8iOyBmb250LXdlaWdodCA6OTAwOyBmb250LXNpemUgOjIwcHg7IHBvc2l0aW9uIDphYnNvbHV0ZTsgbGVmdCA6MThweDsgdG9wIDo3cHg7IH0gI3NsaWRlaXQgbGFiZWwub3Blbjpob3ZlcjpiZWZvcmUgeyBsZWZ0OjEwcHg7IH0gI3NsaWRlaXQgbGFiZWwub3BlbiBzcGFuIHsgZGlzcGxheSA6aW5saW5lLWJsb2NrOyB3aWR0aCA6MDsgb3ZlcmZsb3cgOmhpZGRlbjsgfSAjc2xpZGVpdCBsYWJlbC5vcGVuOmhvdmVyIHNwYW4geyB3aWR0aCA6Y2FsYygxMDAlIC0gMjJweCk7IGhlaWdodCA6YXV0bzsgcGFkZGluZy1sZWZ0IDoyMnB4OyB9ICNzbGlkZWl0IGlucHV0I2Nsb3NlLWl0ZW06Y2hlY2tlZCB+IGxhYmVsLm9wZW4geyAtd2Via2l0LXRyYW5zaXRpb246cmlnaHQgMC4zcyBlYXNlIDAuNHMsIGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIHdpZHRoIDAuM3MgbGluZWFyOyAtbW96LXRyYW5zaXRpb246cmlnaHQgMC4zcyBlYXNlIDAuNHMsIGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIHdpZHRoIDAuM3MgbGluZWFyOyAtbXMtdHJhbnNpdGlvbjpyaWdodCAwLjNzIGVhc2UgMC40cywgYmFja2dyb3VuZCAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgd2lkdGggMC4zcyBsaW5lYXI7IC1vLXRyYW5zaXRpb246cmlnaHQgMC4zcyBlYXNlIDAuNHMsIGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIHdpZHRoIDAuM3MgbGluZWFyOyB0cmFuc2l0aW9uOnJpZ2h0IDAuM3MgZWFzZSAwLjRzLCBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlLCB3aWR0aCAwLjNzIGxpbmVhcjsgcmlnaHQ6MDsgfSAjc2xpZGVpdCBsYWJlbC5jbG9zZSB7IHBhZGRpbmc6MTAuN3B4IDIwcHg7IGxlZnQ6YXV0bzsgdG9wOjA7IGJvdHRvbTphdXRvOyBmb250LXNpemU6MS44NzVyZW0gOyBiYWNrZ3JvdW5kOiM0NDQ0NDQ7IGNvbG9yOiNmZmY7IHdpZHRoOjIycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHJpZ2h0OjA7IH0gI3NsaWRlaXQgbGFiZWwuY2xvc2U6aG92ZXIsICNzbGlkZWl0IGxhYmVsLmNsb3NlOmZvY3VzIHsgYmFja2dyb3VuZDojMDAwOyB9IEBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkgeyAjc2VsZWN0LWFycm93LXN2ZyB7IGRpc3BsYXk6bm9uZTsgfSB9IHg6LW8tcHJlZm9jdXMsICNzZWxlY3QtYXJyb3cgeyBkaXNwbGF5Om5vbmU7IH0gI3NsaWRlaXQgaW5wdXQ6cmVxdWlyZWQsICNzbGlkZWl0IHRleHRhcmVhOnJlcXVpcmVkIHsgYmFja2dyb3VuZDp1cmwoImltZy9yZXF1aXJlZC5wbmciKSBuby1yZXBlYXQgMTAwJSA2cHg7IGJveC1zaGFkb3c6bm9uZTsgb3V0bGluZTpub25lOyB9ICNzbGlkZWl0IGlucHV0OmhvdmVyOmludmFsaWQsICNzbGlkZWl0IHRleHRhcmVhOmhvdmVyOmludmFsaWQgeyBiYWNrZ3JvdW5kOnVybCgiaW1nL2ZvY3VzZWQucG5nIikgbm8tcmVwZWF0IDEwMCUgNnB4OyBib3gtc2hhZG93Om5vbmU7IG91dGxpbmU6bm9uZTsgfSAjc2xpZGVpdCBpbnB1dDpyZXF1aXJlZDp2YWxpZCwgI3NsaWRlaXQgdGV4dGFyZWE6cmVxdWlyZWQ6dmFsaWQgeyBiYWNrZ3JvdW5kOnVybCgiaW1nL3ZhbGlkLnBuZyIpIG5vLXJlcGVhdCAxMDAlIDZweDsgYm94LXNoYWRvdzpub25lOyBvdXRsaW5lOm5vbmU7IH0gI3NsaWRlaXQgaW5wdXQ6Zm9jdXM6aW52YWxpZCwgI3NsaWRlaXQgdGV4dGFyZWE6Zm9jdXM6aW52YWxpZCB7IGJhY2tncm91bmQ6dXJsKCJpbWcvaW52YWxpZC5wbmciKSBuby1yZXBlYXQgMTAwJSA2cHg7IHotaW5kZXg6MTA7IGJveC1zaGFkb3c6bm9uZTsgb3V0bGluZTpub25lOyB9ICNzbGlkZWl0IC50aXAgeyBiYWNrZ3JvdW5kOiMyMjI7IGNvbG9yOiNmZmY7IGZvbnQtc2l6ZTowLjc1cmVtIDsgcGFkZGluZzoxMHB4IDEycHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi02OHB4OyBsZWZ0Oi0yMHB4OyBvcGFjaXR5OjA7IHZpc2liaWxpdHk6aGlkZGVuOyB3aWR0aDphdXRvOyBjdXJzb3I6ZGVmYXVsdDsgfSAjc2xpZGVpdCAudGlwOmFmdGVyIHsgYm9yZGVyLXRvcDo2cHggc29saWQgcmdiYSgwLCAwLCAwLCAxKTsgYm9yZGVyLWxlZnQ6OHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7IGJvcmRlci1yaWdodDo4cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTotNnB4OyBsZWZ0OjI4cHg7IH0gI3NsaWRlaXQgaW5wdXQ6Zm9jdXMgfiAudGlwLCAjc2xpZGVpdCBzZWxlY3Q6Zm9jdXMgfiAudGlwLCAjc2xpZGVpdCB0ZXh0YXJlYTpmb2N1cyB+IC50aXAgeyB0b3A6LTQ4cHg7IG9wYWNpdHk6MTsgdmlzaWJpbGl0eTp2aXNpYmxlOyB6LWluZGV4Ojk5OyB9ICNzbGlkZWl0IGlucHV0OnJlcXVpcmVkOnZhbGlkIH4gLnRpcCwgI3NsaWRlaXQgdGV4dGFyZWE6cmVxdWlyZWQ6dmFsaWQgfiAudGlwIHsgb3BhY2l0eTowOyB2aXNpYmlsaXR5OmhpZGRlbjsgfSAjc2xpZGVpdCBsYWJlbCwgI3NsaWRlaXQgc2VsZWN0LCAjc2xpZGVpdCBpbnB1dCB7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4xcyBlYXNlLWluLW91dDsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjFzIGVhc2UtaW4tb3V0OyAtbXMtdHJhbnNpdGlvbjphbGwgMC4xcyBlYXNlLWluLW91dDsgLW8tdHJhbnNpdGlvbjphbGwgMC4xcyBlYXNlLWluLW91dDsgdHJhbnNpdGlvbjphbGwgMC4xcyBlYXNlLWluLW91dDsgfSAjc2xpZGVpdCAudGlwIHsgLXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC40cyBlYXNlOyAtbW96LXRyYW5zaXRpb246b3BhY2l0eSAwLjRzIGVhc2U7IC1tcy10cmFuc2l0aW9uOm9wYWNpdHkgMC40cyBlYXNlOyAtby10cmFuc2l0aW9uOm9wYWNpdHkgMC40cyBlYXNlOyB0cmFuc2l0aW9uOm9wYWNpdHkgMC40cyBlYXNlOyB9ICNzbGlkZWl0IHRleHRhcmVhIHsgLXdlYmtpdC10cmFuc2l0aW9uOmhlaWdodCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgLW1vei10cmFuc2l0aW9uOmhlaWdodCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgLW1zLXRyYW5zaXRpb246aGVpZ2h0IDAuNHMgY3ViaWMtYmV6aWVyKDAuMiwgMC42LCAwLjMsIDEpOyAtby10cmFuc2l0aW9uOmhlaWdodCAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4zLCAxKTsgdHJhbnNpdGlvbjpoZWlnaHQgMC40cyBjdWJpYy1iZXppZXIoMC4yLCAwLjYsIDAuMywgMSk7IH0KLyoqIC9jc3MvY29udGFjdFBvcHVwLmNzcyAqKi8KI2NvbnRhY3Rwb3B1cCB7IHdpZHRoOjU5OHB4OyBtaW4td2lkdGg6MjMwcHg7IH0gI2NvbnRhY3Rwb3B1cC5tb2JpbGUgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEsIC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGV4dGFyZWEuanF0cmFuc2Zvcm1kb25lIHsgd2lkdGg6MTAwJTsgfSAuY29udGFjdHBvcHVwLm1vYmlsZSB0YWJsZS5qcVRyYW5zZm9ybVRleHRhcmVhIHRkLmpxVHJhbnNmb3JtVGV4dGFyZWEtbWwsIC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGQuanFUcmFuc2Zvcm1UZXh0YXJlYS1tciB7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHBvcHVwICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NvbnRhY3Rwb3B1cC5yZXZlYWwtbW9kYWwgeyBwYWRkaW5nOjA7IH0gI2NvbnRhY3Rwb3B1cC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHBvcHVwIC5jb250YWN0cG9wdXAtYm9keSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHBhZGRpbmc6MzBweCAxMHB4IDEwcHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IGlucHV0IHsgd2lkdGg6MTAwJTsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93Om5vdCg6bGFzdC1jaGlsZCkgLmRpdlNwYW4geyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjY6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjY6bGFzdC1jaGlsZCB7IHBhZGRpbmctbGVmdDoxNXB4OyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3cgLmRpdlNwYW42IC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciB7IG1heC13aWR0aDoyNzRweCAhaW1wb3J0YW50OyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIHsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgcGFkZGluZzoxNXB4IDE1cHggMzBweCAxNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsgYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyBmb250LXNpemU6MS42MjVyZW0gOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXI6OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTotMTVweDsgbGVmdDo1MCU7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgYm9yZGVyLWxlZnQ6MzBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjMwcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6MTVweCBzb2xpZCAjZTRkY2QzOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5mYS10aW1lcyB7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowLjVyZW07IHRvcDowLjVyZW07IGZvbnQtc2l6ZTppbml0aWFsOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5mYS10aW1lczpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5oZWFkZXItcmVwbGFjZSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IGJ1dHRvbi5jb250YWN0LXN1Ym1pdCB7IHBhZGRpbmc6MTBweCAxNXB4OyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBib3JkZXItY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojZTRkY2QzOyB0cmFuc2l0aW9uOmFsbCAwLjI1czsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW46MDsgYm9yZGVyOjFweCBzb2xpZDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLmNvbnRhY3Qtc3VibWl0OmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYTU7IGNvbG9yOiNmZmZmZmY7IH0gLmNvbnRhY3Rwb3B1cC1mb290ZXIgeyB9IC5jb250YWN0cG9wdXAtZm9vdGVyIC5idG4td3JhcHBlciB7IHBhZGRpbmc6MTBweDsgfSAjY29udGFjdHBvcHVwIC5qcVRyYW5zZm9ybUlucHV0SW5uZXIgZGl2IHsgaGVpZ2h0OjMwcHg7IH0gI2NvbnRhY3Rwb3B1cCAuanFUcmFuc2Zvcm1JbnB1dElubmVyIGRpdi52YWxpZGl0eS1lcnJvbmVvdXMgeyB3aWR0aDppbmhlcml0OyB9Ci8qKiAvY3NzL2Rpdl90YWJsZXMuY3NzICoqLwpkaXYuZGl2VGFibGVWaWV3eyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxlV3JhcGVyeyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRpdGxleyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IHBhZGRpbmc6MzBweCAwcHggMTBweCAxMHB4OyBjb2xvcjojMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgaGVpZ2h0OmF1dG87IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2VGFibGVPdXRlcnsgYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjA7IGJvcmRlci1yYWRpdXM6OHB4OyBtYXJnaW46MDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOyBvdmVyZmxvdzpoaWRkZW47IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2VGFibGV7IGRpc3BsYXk6dGFibGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZ3sgZGlzcGxheTp0YWJsZS1yb3c7IGZvbnQtd2VpZ2h0OmluaXRpYWw7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDVweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3d7IGRpc3BsYXk6dGFibGUtcm93OyB3aWR0aDoxMDAlOyBoZWlnaHQ6NjVweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZDZWxseyBkaXNwbGF5OnRhYmxlLWNlbGw7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjE1cHggMTVweCAyNXB4IDE1cHg7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjAuODc1cmVtIDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZDZWxsOmxhc3QtY2hpbGR7IGJvcmRlci1yaWdodDoxcHggc29saWQgdHJhbnNwYXJlbnQ7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbHsgcGFkZGluZzoxMHB4IDE1cHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAxLjApOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6bnRoLWNoaWxkKGV2ZW4peyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbDpsYXN0LWNoaWxkeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbDpmaXJzdC1jaGlsZHsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93Omxhc3QtY2hpbGQgZGl2LmRpdkNlbGx7IGJvcmRlci1ib3R0b206MHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdyBkaXYuZGl2Q2VsbHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93IGRpdi5kaXZDZWxsOm50aC1jaGlsZChldmVuKXsgYmFja2dyb3VuZC1jb2xvcjojZjZmN2Y4OyB9Ci8qKiAvY3NzL2NyZWRpdFNjb3JlUG9wdXAuY3NzICoqLwojY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcnsgYmFja2dyb3VuZDp3aGl0ZTsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFueyBtYXJnaW46MDsgcGFkZGluZzowOyBmb250LXNpemU6MS4zMTNyZW0gOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVHcmVlbkNvbG9yeyBjb2xvcjojMDAwMDAwOyBmb250LXdlaWdodDpib2xkOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVCb2xkeyBmb250LXdlaWdodDpib2xkOyB9IC5jcmVkaXRTY29yZV9idG57IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQ6IzAwMmM1ZjsgZGlzcGxheTpibG9jazsgcGFkZGluZzoxMnB4IDMwcHg7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjVweDsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzoxcHg7IHRyYW5zaXRpb246b3BhY2l0eSAwLjJzOyB9IC5jcmVkaXRTY29yZV9idG46aG92ZXJ7IG9wYWNpdHk6MC44NTsgfSAuY3JlZGl0U2NvcmVJbWFnZXsgaGVpZ2h0OjIzMHB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5zY29yZUNyZWRpdFRpdGxleyBmb250LXNpemU6MS41cmVtIDsgbWFyZ2luLXRvcDo1NXB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5zY29yZUNyZWRpdEltYWdleyB0ZXh0LWFsaWduOnJpZ2h0OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVUaXRsZUZyZWV7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IHRleHQtc2hhZG93OjJweCAwOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW4uY3JlZGl0U2NvcmVUaXRsZVNjb3JleyBmb250LXNpemU6MS44MTNyZW0gOyB0ZXh0LXNoYWRvdzoxLjRweCAwOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGlucHV0eyBoZWlnaHQ6MzJweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6MTYycHg7IHBhZGRpbmc6MCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2VlZWVlZTsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVBZGRyZXNzeyB3aWR0aDozOTNweDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVfYnRueyB3aWR0aDoxODBweDsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MTJweCAzMHB4OyBib3JkZXI6bm9uZTsgYm94LXNpemluZzpib3JkZXItYm94OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVFeHRyYVRleHR7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZUNvbnNlbnRNZXNzYWdleyBjb2xvcjojYjNiM2IzOyBmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjJweDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciAuY3JlZGl0U2NvcmVJbWFnZXsgYmFja2dyb3VuZC1jb2xvcjojMDA3ZmE1OyB9IC5wYWMtY29udGFpbmVyIHsgei1pbmRleDoxMDAwMDIxOyB9Ci8qKiAvY3NzL25lYkNhbC9uZWJDYWwuY3NzICoqLwoubmViQ2FsICogeyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3IgOndoaXRlOyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0LCAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyBjdXJzb3I6cG9pbnRlcjt9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0IHsgZmxvYXQ6bGVmdDsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdDpiZWZvcmUgeyBjb250ZW50Oic8JzsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzUyM2EyOTsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyBmbG9hdDpyaWdodDsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQ6YmVmb3JlIHsgY29udGVudDonPic7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiM1MjNhMjk7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OnZpc2libGU7IHdpZHRoOjE0NnB4OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlIHsgY3Vyc29yOnBvaW50ZXI7IH0gLm5lYkNhbCAuY2FsLWJvZHkgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdiB7IGZsb2F0OmxlZnQ7IH0gLm5lYkNhbCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGguY2FsLXBpY2thYmxlIC5jYWwtcm93IGRpdiwgLm5lYkNhbCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2IHsgY3Vyc29yOnBvaW50ZXI7fSAubmViQ2FsIHsgY3Vyc29yOmRlZmF1bHQ7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDAwMjA7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoyOTBweDsgaGVpZ2h0OjIxNXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojNTIzYTI5OyB9IC5uZWJDYWwuaW5saW5lIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtd3JhcHBlciB7IHBhZGRpbmc6MCA0cHg7IGJvcmRlcjpzb2xpZCAxcHggI2RkZGVkOTsgLW1vei1ib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4Oy13ZWJraXQtYm94LXNoYWRvdzowcHggMHB4IDRweCAycHggI2Q4ZDhkODtib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIHsgaGVpZ2h0OjI1cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdCwgLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyB3aWR0aDoxMnB4OyBoZWlnaHQ6MTNweDsgbWFyZ2luOjZweCA3cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdCB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctbGVmdDpob3ZlciB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQgeyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWFycm93LXJpZ2h0OmhvdmVyIHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbCB7IGxpbmUtaGVpZ2h0OjI1cHg7IGNvbG9yOiM1MjNhMjk7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtbGFiZWwuY2FsLWNsaWNrYWJsZSB7IGNvbG9yOiMwOGE1M2M7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtbGFiZWwuY2FsLWNsaWNrYWJsZTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSB7IGhlaWdodDoxODBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgeyB3aWR0aDoyOTBweDsgaGVpZ2h0OjE4MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyB7IHdpZHRoOjI5MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cuY2FsLW9kZCBkaXYgeyBtYXJnaW46NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNkZWRlZGU7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdy5jYWwtZXZlbiBkaXYgeyBtYXJnaW46NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjA7Ym9yZGVyOjFweCBzb2xpZCAjZWNlY2VjO30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtdG9kYXkgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLXNlbGVjdGVkIHsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tcmlnaHQ6NXB4OyBoZWlnaHQ6MjBweDtmb250LXNpemU6MXJlbSA7Zm9udC13ZWlnaHQ6NjAwOyBjb2xvcjojZmZmICFpbXBvcnRhbnQ7dGV4dC1zaGFkb3c6MXB4IDFweCAwcHggIzM5YTY2MzsgYmFja2dyb3VuZC1jb2xvcjojNTRiYjAwOy13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7LW1vei1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweDt9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLW5vbi1zZWxlY3RhYmxlLCAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC1ub24tc2VsZWN0YWJsZTpob3ZlciB7IGNvbG9yOiNiZGJkYmQgIWltcG9ydGFudDsgY3Vyc29yOmRlZmF1bHQgIWltcG9ydGFudDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93LmEgZGl2IHsgY3Vyc29yOmRlZmF1bHQgIWltcG9ydGFudDsgY29sb3I6IzM3OWI1NyAhaW1wb3J0YW50O3RleHQtdHJhbnNmb3JtOm5vbmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyB7IGhlaWdodDoyNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2IHsgbWFyZ2luLXRvcDozcHg7IHdpZHRoOjQwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLXNlbGVjdGVkIHsgbWFyZ2luLXRvcDozcHg7IHdpZHRoOjMwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLWZpcnN0IHsgcGFkZGluZy1sZWZ0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLWxhc3QgeyBwYWRkaW5nLXJpZ2h0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLW91dHNpZGUgeyBjb2xvcjojZGVkZWRlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuY2FsLWV2ZW4gZGl2LmNhbC1vdXRzaWRlIHsgY29sb3I6I2NlY2VjZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93LmEgZGl2IHsgY29sb3I6IzljOWM5YzsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IHsgaGVpZ2h0OjQycHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYgeyB3aWR0aDo4MHB4O2xpbmUtaGVpZ2h0OjI3cHg7IGhlaWdodDoyN3B4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2LmNhbC1maXJzdCB7IG1hcmdpbi1sZWZ0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYuY2FsLWxhc3QgeyBtYXJnaW4tcmlnaHQ6MTZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiM1NGJiMDA7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoLmNhbC1waWNrYWJsZSAuY2FsLXJvdyBkaXY6aG92ZXIsIC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2OmhvdmVyIHsgY29sb3I6I2IyY2ZlMTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1mb290ZXIgeyBoZWlnaHQ6NHB4OyB9Ci8qKiAvY3NzL2ZpbmFuY2VfbXVsdGlzdGVwLmNzcyAqKi8KI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm17IHRleHQtYWxpZ246Y2VudGVyOyBoZWlnaHQ6MTAwJTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3J7IHRleHQtYWxpZ246bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBoMnsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGgzeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4geyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IHdpZHRoOjEwMCU7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IGJvdHRvbTowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbnsgcGFkZGluZzoxN3B4IDY1cHggMTVweCA2NXB4OyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OjQwMDsgd2lkdGg6MjgwcHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGNvbG9yOiNDMEMwQzA7IGJvcmRlcjpub25lOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyOjFweCBzb2xpZCAjQzBDMEMwOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbi5pc1ZhbGlkeyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdeyBvcGFjaXR5OjA7IHdpZHRoOjA7IGhlaWdodDowOyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBsYWJlbC5yYWRpb19sYWJlbCB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzoyMHB4IDEwcHg7IGN1cnNvcjpwb2ludGVyOyBvcGFjaXR5OjE7IHRyYW5zaXRpb246YWxsIDFzIGVhc2UtaW4tb3V0OyBtYXJnaW4tYm90dG9tOjE1cHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I2ZmZmZmZjsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkIH4gbGFiZWwucmFkaW9fbGFiZWwgeyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGxhYmVsLnJhZGlvX2xhYmVsMiB7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjE1KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBjdXJzb3I6cG9pbnRlcjsgb3BhY2l0eToxOyB0cmFuc2l0aW9uOmFsbCAxcyBlYXNlLWluLW91dDsgbWFyZ2luLWJvdHRvbTo1cHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I2ZmZmZmZjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQgfiBsYWJlbC5yYWRpb19sYWJlbDIgeyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXZ7IHdpZHRoOjQ1JTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2LnZ3UmVudE9yT3dueyB3aWR0aDozMiUhaW1wb3J0YW50OyBtYXJnaW4tcmlnaHQ6NXB4OyBmbG9hdDpsZWZ0IWltcG9ydGFudDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmVudE9yT3duUXVlc3Rpb257IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjIwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJlbnRPck93blF1ZXN0aW9uLnZ3UmVudE9yT3dueyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDo1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjJ7IHdpZHRoOjMyJSFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDo1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjI6bnRoLW9mLXR5cGUob2RkKXsgZmxvYXQ6bGVmdCFpbXBvcnRhbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjI6bnRoLW9mLXR5cGUoZXZlbil7IGZsb2F0OmxlZnQhaW1wb3J0YW50OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXY6bnRoLW9mLXR5cGUob2RkKXsgZmxvYXQ6bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2Om50aC1vZi10eXBlKGV2ZW4peyBmbG9hdDpyaWdodDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJ0ZXh0Il17IHdpZHRoOjQ1MHB4OyBoZWlnaHQ6NDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXTpub3QoLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9Im51bWJlciJdKTpub3QoaW5wdXRbdHlwZT0ibnVtYmVyIl0uZW1wbG95bWVudFN0YXR1c1RpbWUpeyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7IHdpZHRoOjE0MHB4OyBib3JkZXItcmlnaHQ6bm9uZTsgbWFyZ2luOjAgMCAxMHB4OyBsaW5lLWhlaWdodDozMHB4OyBoZWlnaHQ6NzVweDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbbmFtZT0ibW9udGhseUluY29tZSJdOmJlZm9yZXsgY29udGVudDoiJCI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm51bWJlci10eXBlLWxhYmVseyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7IHdpZHRoOjIzMHB4OyBjb2xvcjojMjUyNTI1OyBoZWlnaHQ6NzVweDsgbGluZS1oZWlnaHQ6NzVweDsgZm9udC1zaXplOjEuNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm51bWJlci10eXBlLWRpdnsgZmxvYXQ6bGVmdDsgbGVmdDoxMyU7IG1hcmdpbi10b3A6MjBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJ7IG1hcmdpbi10b3A6MTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcl9kaXZ7IHdpZHRoOjEwMCU7IG1hcmdpbjowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyIHNlbGVjdHsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjMDAwMDAwOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDoxNTBweDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfc2VsZWN0eyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTUlOyBtYXJnaW46YXV0bzsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcl9zZWxlY3Q6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNlbGVjdC5zdGVwMjRzZWxlY3R7IG1hcmdpbi10b3A6MTBweDsgd2lkdGg6NTAlOyB9IC5wYWMtY29udGFpbmVyIHsgei1pbmRleDoxMDAwMDIxOyB9IGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyBtYXJnaW46MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyBzZWxlY3QgeyBtYXgtd2lkdGg6MzM1cHg7IG1hcmdpbjowIGF1dG87IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3MgbGFiZWwgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGRpc3BsYXk6YmxvY2s7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3MgI211dGxpQWRkcmVzc1N1Ym1pdCB7IGRpc3BsYXk6bm9uZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0c3sgZGlzcGxheTppbmxpbmUtZmxleDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdnsgbWFyZ2luOjIwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgbGFiZWx7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgaW5wdXRbdHlwZT0ibnVtYmVyIl17IHdpZHRoOjgwcHg7IGhlaWdodDo1MHB4OyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBtYXJnaW4tdG9wOjEwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgaW5wdXRbdHlwZT0ibnVtYmVyIl0uYmlydGh5ZWFyeyB3aWR0aDoxMDBweDsgfSAucmV2ZWFsLW1vZGFsLmZpbmFuY2VfYmFja2dyb3VuZF9pbWFnZXsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcG9wdXBzL2ZpbmFuY2Vwb3B1cC1iZy1kZXNrdG9wLmpwZycpOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdnsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoxMjBweDsgbWFyZ2luLWJvdHRvbToyMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdiAuZmluYW5jZUNhbGN7IGZvbnQtc2l6ZToxMDBweDsgbGVmdDo0MCU7IHBvc2l0aW9uOmFic29sdXRlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdiAuZmluYW5jZUNhcnsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEwMHB4OyBsZWZ0OjM5JTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50VGV4dExhYmVseyB3aWR0aDoyMCU7IGFsaWduLXNlbGY6Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50VGV4dHsgd2lkdGg6MzclIWltcG9ydGFudDsgZm9udC1zaXplOjEuMTI1cmVtICFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgbWFyZ2luLWJvdHRvbToxMHB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXS5lbXBsb3ltZW50U3RhdHVzVGltZXsgd2lkdGg6NTBweDsgaGVpZ2h0OjUwcHg7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IGFsaWduLXNlbGY6Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50QWRkZWRJbmZveyB3aWR0aDoxMDAlIWltcG9ydGFudDsgcmVzaXplOm5vbmU7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC5mYWRlLWVudGVyLCAuZmFkZS1sZWF2ZSB7IG9wYWNpdHk6MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudEFkZGVkSW5mb0RpdnsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDo5NyUgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHRMYWJlbERpdnsgZGlzcGxheTpmbGV4OyB3aWR0aDo5NyUgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yeyBtYXJnaW46MCAyMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JteyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gbGFiZWx7IG1hcmdpbi1ib3R0b206NXB4OyBwYWRkaW5nOjA7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgcG9zaXRpb246cmVsYXRpdmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBzcGFueyBmb250LXNpemU6MC45MzhyZW0gOyB3aWR0aDo1MCU7IHRleHQtYWxpZ246bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIGlucHV0eyB0ZXh0LWFsaWduOmxlZnQ7IGhlaWdodDoyNXB4OyBmb250LXNpemU6MWVtOyBjb2xvcjpibGFjazsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIHNlbGVjdHsgaGVpZ2h0OjI4cHg7IGNvbG9yOmJsYWNrOyBmb250LXNpemU6MWVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmVzdGltYXRlZFRleHR7IG1hcmdpbjowOyBmb250LXdlaWdodDo3MDA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAub3V0cHV0cHJpY2UtdHh0eyB3aWR0aDoyOCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAudGF4ZVRleHR7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDotNTVweDsgd2lkdGg6Zml0LWNvbnRlbnQ7IG1hcmdpbjowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmlucHV0IHsgYm9yZGVyOjFweCBzb2xpZCAjOTk5OyBiYWNrZ3JvdW5kOiNlZWU7IHBhZGRpbmc6MC4yNXJlbTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB3aWR0aDptaW4oNTAlLDZyZW0pOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBkaXYuZG9sbGFyU3BhbnsgZGlzcGxheTpjb250ZW50czsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIGRpdi5kb2xsYXJTcGFuIC5pbnB1dHsgcGFkZGluZy1sZWZ0OjEycHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGRpdi5kb2xsYXJTcGFuOjpiZWZvcmV7IGNvbnRlbnQ6IiQiOyBmb250LXNpemU6MWVtOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6ODVweDsgdG9wOjQ5JTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2NvbnNlbnRfdGV4dF9kaXZ7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6Mjg1cHg7IHdpZHRoOjEwMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcFBheW1lbnRWZWhpY2xleyBmb250LXNpemU6aW5oZXJpdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gLmxvYW5hbW91bnQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSAuaW50ZXJlc3RyYXRleyBib3JkZXI6MDsgYmFja2dyb3VuZC1jb2xvcjp1bnNldDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gaW5wdXQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3R7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czowLjNyZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcEluaXRpYWxUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuMDYzcmVtIDsgbWFyZ2luLXRvcDowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNwYW4uaDItYWx0eyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbToyNXB4OyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgbWFyZ2luLWxlZnQ6MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzcGFuLmgzLWFsdHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWJvdHRvbToyNXB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuaGlkZGVuSW5wdXR7IGRpc3BsYXk6bm9uZTsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrRGl2eyBwb3NpdGlvbjphYnNvbHV0ZTsgbWFyZ2luLXRvcDoxMHB4OyByaWdodDoxMDBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkluaXRpYWx7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDoxMjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6NHB4IDJweCA1cHg7IGN1cnNvcjpwb2ludGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWx7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDoxMjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4IDJweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbHsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjk2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjVweCAycHg7IGN1cnNvcjpwb2ludGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFseyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6OTZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4IDJweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZvcm1hdC1wcmljZXsgbWFyZ2luLWJvdHRvbTp1bnNldDsgbWFyZ2luLWxlZnQ6MC43cmVtOyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSBsYWJlbCAuZm9ybWF0LXByaWNleyBtYXJnaW4tcmlnaHQ6MC4zcmVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC52d0NvbnNlbnRUZXh0eyBoZWlnaHQ6OTVweDsgb3ZlcmZsb3cteTpzY3JvbGw7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgcGFkZGluZzoxMHB4IDEwcHg7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGgxeyBmb250LXNpemU6MS4yNXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDsgbWFyZ2luOjAgMCAxNnB4IDAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBoMnsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IG1hcmdpbjoyNHB4IDAgMTBweCAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgcHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgbWFyZ2luOjAgMCAxMnB4IDAgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgdWx7IG1hcmdpbjo4cHggMCAxNnB4IDI0cHggIWltcG9ydGFudDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgbGl7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTJweCAwICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHN0cm9uZ3sgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgYXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSAhaW1wb3J0YW50OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC52d0NvbnNlbnREaXZzeyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5kclZpZXdEaXNjbGFpbWVyTGluayB7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuNzVyZW0gOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5kckRpc2NsYWltZXJEcmF3ZXIgeyBwb3NpdGlvbjpmaXhlZDsgbGVmdDowOyBib3R0b206LTMwMHB4OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZDojZmZmOyBib3gtc2hhZG93OjAgLTJweCAxMHB4IHJnYmEoMCwwLDAsMC4zKTsgdHJhbnNpdGlvbjpib3R0b20gMC4zcyBlYXNlOyBkaXNwbGF5Om5vbmU7IG92ZXJmbG93OmF1dG87IH0gLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIHsgYm90dG9tOjA7IH0gLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIC5kckRpc2NsYWltZXJDb250ZW50IHsgcGFkZGluZzoyMHB4OyBvdmVyZmxvdy15OmF1dG87IH0gLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciwgLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIC5jbG9zZURSQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIgeyBwYWRkaW5nOjEwcHg7IGN1cnNvcjpwb2ludGVyOyB9Ci8qKiAvY3NzL3BheW1lbnRDYWxjdWxhdG9yLmNzcyAqKi8KOmlzKCNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciwjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IpLmNhbGMtbW9iaWxlIHsgLS13cmFwLXBheW1lbnRzOndyYXA7IC0tbW9iaWxlLWRpc3BsYXk6bm9uZTsgLS1tb2ItZnVsbC13aWR0aDoxMDAlOyAtLXBheW1lbnQtbWluLXdpZHRoOjYuM3JlbTsgLS1oZWFkZXItZm9udC1zaXplOnZhcigtLWZzMik7IC0taGVhZGVyLWljb24tc2l6ZTp2YXIoLS1mczUpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lcnsgbWluLWhlaWdodDo0NTBweDsgY29sb3I6YmxhY2s7IH0gI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXJ7IGJvcmRlcjo0cHggc29saWQgI2U0ZGNkMzsgfSAjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcjpoYXMoLmNhbGMtbW9iaWxlKXsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IuY2FsYy1tb2JpbGUgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcnsgb3ZlcmZsb3cteDp2aXNpYmxlOyBvdmVyZmxvdy15OnNjcm9sbDsgaGVpZ2h0OjM3MHB4OyBmbGV4LXdyYXA6d3JhcDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHsgb3ZlcmZsb3cteDpzY3JvbGw7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHsgd2lkdGg6MTAwJTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNHsgd2lkdGg6NjQlOyB9IC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNCwgLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMuYm94ZXM0eyB3aWR0aDo4MCU7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIHNwYW4sIC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyBzcGFueyBwYWRkaW5nOjAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50OyBjb2xvcjppbmhlcml0OyBmb250LXNpemU6aW5oZXJpdDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zKTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIuY2FsYy1tb2JpbGUgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJ7IG1hcmdpbi1ib3R0b206MDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyLmJveGVzNCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcy5ib3hlczQgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJ7IHdpZHRoOjI0JTsgfSAucGF5bWVudENhbGN1bGF0b3JMaW5leyBib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmV5OyBtYXJnaW46MTBweCAwOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMXsgZm9udC1zaXplOjAuNjg4cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMSBzcGFueyBmb250LXNpemU6MS43NXJlbSA7IGNvbG9yOiMwMDJjNWY7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUyeyBmb250LXNpemU6MC43NXJlbSA7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTIgc3BhbnsgZm9udC1zaXplOjEuMzc1cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTN7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMyBzcGFueyBmb250LXNpemU6MS4yNXJlbSA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmU0eyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOmdyZXk7IHdoaXRlLXNwYWNlOm5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2VEaXZ7IG1heC13aWR0aDozMyU7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyB0b3A6LTUwJTsgZGlzcGxheTp2YXIoLS1tb2JpbGUtZGlzcGxheSwgaW5pdGlhbCk7IH0gLnBheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyeyB3aWR0aDptYXgodmFyKC0tbW9iLWZ1bGwtd2lkdGgsIDY2JSksIDIwcmVtKTsgfSAuY2FsYy1wYXltZW50c3sgbWF4LXdpZHRoOnZhcigtLW1vYi1mdWxsLXdpZHRoLCA2NiUpOyB9IC5jYWxjLXBheW1lbnRzIDppcygucHJpY2UtZnIsIC5wcmljZS1lbil7IHRleHQtYWxpZ246cmV2ZXJ0OyBtaW4td2lkdGg6dW5zZXQ7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVDb250YWluZXJ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2NjY2M7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlQ29udGFpbmVyeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGV7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowIDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpeyBwYWRkaW5nOjEwcHg7IGZsb2F0OmxlZnQ7IG1pbi13aWR0aDo1cmVtOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYm9yZGVyLWJvdHRvbTowcHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNkOWQ5ZDk7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkuYWN0aXZlUGF5bWVudFR5cGV7IGJhY2tncm91bmQtY29sb3I6Izk4OTg5ODsgY29sb3I6d2hpdGU7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXJ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciA+ICogeyBwYWRkaW5nLWJvdHRvbTowLjVyZW07IH0gLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIgbGFiZWx7IGNvbG9yOmdyZXk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbi1sZWZ0OjNweDsgbWFyZ2luLWJvdHRvbTowOyB9IC5wYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3R7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgbWluLXdpZHRoOjEwcmVtOyBtYXgtd2lkdGg6MjByZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLCAuZDJjZm9ybSAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCB7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgbWluLXdpZHRoOjdyZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNleyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjExMHB4OyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFoMGxFUVZRNFQ5M1RNUXJDVUF6RzhWOXg4UXppaVlTdVhkekZDN2g0QWNFTE9QUUFkWFlvdlpDSEVBVGxnUVY1R0ZUZTFvekpsei9rUzFJcGpLcXczd1FCVnl5KytKSTB5MUdUZTdEQ0JiTUFja2VOSVFLay9CYW5BTEJCKzE2THRuREVMb01jc00vQkVTRGx6MmhlRFIzV2VQd0tTTG81ZW94ejN6Nk5OY0ZEK3Z1M2lqMTRBcXovRHhHYktCN0NBQUFBQUVsRlRrU3VRbUNDJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgY2VudGVyOyBib3JkZXItY29sb3I6I2E5YTlhOTsgY29sb3I6aW5oZXJpdDsgYm94LXNoYWRvdzpub25lOyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZTsgfSAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjVyZW07IHBhZGRpbmctbGVmdDoyMHB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjYwJTsgYmFja2dyb3VuZC1wb3NpdGlvbi15OjQwJTsgLW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDsgfSAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyBtYXJnaW46MDsgfSAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXJ7IG1pbi13aWR0aDoxOHJlbTsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6Izg2ODY4NjsgcGFkZGluZzowOyBtYXJnaW46MDsgZGlzcGxheTp2YXIoLS1tb2JpbGUtZGlzcGxheSwgaW5pdGlhbCk7IH0gLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyLmJveGVzNHsgd2lkdGg6MzAlOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIHAsIC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIHNwYW57IGNvbG9yOmluaGVyaXQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOjFyZW07IH0gLnBheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdleyB3aWR0aDo1MCU7IG1hcmdpbi10b3A6MzBweDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mb3sgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmljb257IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IGNvbG9yOiNmZmZmZmY7IG1hcmdpbjowOyBwYWRkaW5nOjAuNHJlbTsgLS10eHQtY29sb3I6I2ZmZmZmZjsgLS1mczp2YXIoLS1oZWFkZXItaWNvbi1zaXplLCB2YXIoLS1mczcpKTsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgyIHNwYW46Zmlyc3QtY2hpbGR7IGZvbnQtc2l6ZTp2YXIoLS1mczEpOyBmb250LXdlaWdodDpub3JtYWw7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDIgc3BhbnsgZm9udC1zaXplOnZhcigtLWhlYWRlci1mb250LXNpemUsIHZhcigtLWZzMykpOyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBmb250LXdlaWdodDo3MDA7IHBhZGRpbmc6MDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoM3sgZm9udC1zaXplOjEuMTg4cmVtIDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBzcGFuLmgyLWFsdHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgbWFyZ2luLWxlZnQ6dmFyKC0tcyk7IGZvbnQtc2l6ZTppbmhlcml0OyBmb250LXdlaWdodDp2YXIoLS1mb250LWgyLXdlaWdodCk7IGxpbmUtaGVpZ2h0OjEuMmVtOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDItYWx0IHNwYW46Zmlyc3QtY2hpbGR7IGZvbnQtc2l6ZTp2YXIoLS1mczEpOyBmb250LXdlaWdodDpub3JtYWw7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgyLWFsdCBzcGFueyBmb250LXNpemU6dmFyKC0taGVhZGVyLWZvbnQtc2l6ZSwgdmFyKC0tZnMzKSk7IG1hcmdpbjowOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzowOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMy1hbHR7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gLnBheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIuYm94ZXM0eyB3aWR0aDo2NCU7IH0gLnBheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGF7IHdpZHRoOm1pbig2NCUsMThyZW0pOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3R7IH0gLmZhLmZhLWNhbGN1bGF0b3J7IGNvbG9yOiMwMDAwMDA7IH0gLi1iZy1ibGFjayAuZmEuZmEtY2FsY3VsYXRvcnsgY29sb3I6I0ZGRkZGRjsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgc2VsZWN0OjotbXMtZXhwYW5kIHsgZGlzcGxheTpub25lOyB9IC5jYWxjLXBheW1lbnQtY2FzaCB7IHdpZHRoOm1pbigxN3JlbSw5MCUpOyBwYWRkaW5nOjAgMS41cmVtOyB9IC5jYWxjLXBheW1lbnQtY2FzaCBzcGFueyBtYXJnaW4tYm90dG9tOjA7IGZvbnQtc2l6ZTpyZXZlcnQ7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZUZpbmFsIHsgcGFkZGluZy10b3A6dmFyKC0tcyk7IGJvcmRlci10b3A6MXB4IHNvbGlkICNiYmI7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZVJvdyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbGluZS1oZWlnaHQ6bm9ybWFsOyB9IC5jYWxjLXBheW1lbnQtY2FzaCAucHJpY2VOYW1leyBwYWRkaW5nOjA7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOnZhcigtLWZzMCk7IH0gI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b257IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjEwNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgcGFkZGluZzoycHg7IGN1cnNvcjpwb2ludGVyOyB9ICNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWV7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyB3aWR0aDoxMDBweDsgcGFkZGluZy1sZWZ0OjE1cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5maW5hbmNpbmctb3B0aW9uIHsgYm9yZGVyOjEuNXB4IHNvbGlkICNhYWE7IGJvcmRlci1yYWRpdXM6NnB4OyBwYWRkaW5nOjhweDsgd2lkdGg6MTkwcHg7IGJhY2tncm91bmQ6d2hpdGU7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpjZW50ZXI7IHRleHQtYWxpZ246Y2VudGVyOyBmbGV4LXNocmluazowOyBtaW4td2lkdGg6MTg3cHg7IGJveC1zaXppbmc6Y29udGVudC1ib3ghaW1wb3J0YW50OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbi5zZWxlY3RlZCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5maW5hbmNpbmctb3B0aW9uLnNlbGVjdGVkIHsgYm9yZGVyLWNvbG9yOiMwMDdCRkY7IGJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLCAxMjMsIDI1NSwgMC41KTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnRlcm0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAudGVybSB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMzMzM7IG1hcmdpbi1ib3R0b206MnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZG93bi1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmRvd24tcGF5bWVudCB7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGNvbG9yOiM5OTk7IG1hcmdpbi1ib3R0b206NXB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc2VwYXJhdG9yUGF5LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNlcGFyYXRvclBheSB7IHdpZHRoOjkwJTsgaGVpZ2h0OjFweDsgYmFja2dyb3VuZC1jb2xvcjojY2NjOyBtYXJnaW4tYm90dG9tOjZweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmNvbnRlbnQtY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB3aWR0aDoxMDAlOyBwYWRkaW5nLWJvdHRvbTo4cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sZWZ0LXNlY3Rpb24sICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAucmlnaHQtc2VjdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sZWZ0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucmlnaHQtc2VjdGlvbiB7IHdpZHRoOjUwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NnB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmxlZnQtc2VjdGlvbiwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sZWZ0LXNlY3Rpb24geyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcGF5bWVudCwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcGF5bWVudCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcmF0ZSB7IGZvbnQtc2l6ZToxLjI1cmVtIDsgY29sb3I6I2QzMmYyZjsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5pbmZvLWljb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuaW5mby1pY29uIHsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojNjY2OyBjdXJzb3I6cG9pbnRlcjsgbWFyZ2luLWxlZnQ6NHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjJweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1yYXRlLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmFjdHVhbC1wYXltZW50LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1yYXRlLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmFjdHVhbC1wYXltZW50IHsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcmF0ZSB7IGNvbG9yOiMzMzM7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcGF5bWVudCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcGF5bWVudCB7IGNvbG9yOiMwMDMzNjY7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5kZXRhaWxzVGF4LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmRldGFpbHNUYXggeyBmb250LXNpemU6MC42ODhyZW0gOyBjb2xvcjojMzMzOyBtYXJnaW4tdG9wOjJweDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnJhZGlvLWNvbnRhaW5lciwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5yYWRpby1jb250YWluZXIgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjBweDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0geyBtYXJnaW4tcmlnaHQ6NHB4OyBvcGFjaXR5OnVuc2V0OyB3aWR0aDp1bnNldDsgaGVpZ2h0OnVuc2V0OyBwb3NpdGlvbjp1bnNldDsgfSAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnNpbmdsZS1jb2x1bW4sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc2luZ2xlLWNvbHVtbiB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHdpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc21hbGwtYm94LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNtYWxsLWJveCB7IHdpZHRoOjEwMHB4OyBwYWRkaW5nOjhweDsgbWluLXdpZHRoOjEwMHB4OyBtYXgtd2lkdGg6MTAwcHg7IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMucHJlbG9hZC5jc3MgKiovCi5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5kMmNmb3JtICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmQyY2Zvcm0gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTQpOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0tdGhpbiBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtOSk7IH0gLmQyY2Zvcm0tLXJvdyBzdGFjay1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC13cmFwOndyYXA7IH0gLmQyY2Zvcm0tLXJvdyBib3gtbGMgeyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjExNXB4OyB3aWR0aDozMCU7IHBhZGRpbmctcmlnaHQ6dmFyKC0tcyk7IG1hcmdpbi10b3A6dmFyKC0tczEpOyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gbGFiZWw6aGFzKFtyZXF1aXJlZF0pIHNwYW46YWZ0ZXJ7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbDpub3QoLmZpbmFuY2VDYWxjKSwgLmQyY2Zvcm0gLmxhYmVsOm5vdCguZmluYW5jZUNhbGMpIHsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1yaWdodCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSA6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSksIC5kMmNmb3JtIHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCksIC5kMmNmb3JtIHRleHRhcmVhIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0IHsgaGVpZ2h0OjM1cHg7IH0gLmQyY2Zvcm0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC5kMmNmb3JtIGlucHV0OmRpc2FibGVkLCAuZDJjZm9ybSBpbnB1dC5kaXNhYmxlZCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpOyBjb2xvcjpyZ2IoODQsIDg0LCA4NCk7IGJvcmRlci1jb2xvcjpyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXIgeyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlcjo6cGxhY2Vob2xkZXIgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCwgLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDp2YXIoLS1zMSk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgLmlucHV0LWljb24geyByaWdodDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCAuaW5wdXQtaWNvbiB7IGxlZnQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgaW5wdXQgeyBwYWRkaW5nLWxlZnQ6dmFyKC0tczkpOyB9IC5kMmNmb3JtIC5zZXBhcmF0b3IgeyB3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjZDRkNGQ0OyBtYXJnaW4tdG9wOnZhcigtLXM3KTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zNyk7IH0gLmQyY2Zvcm0gLnJhZGlvLWlubGluZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgPiAqIHsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgPiAqOm5vdCg6bGFzdC1vZi10eXBlKSB7IG1hcmdpbi1yaWdodDp2YXIoLS1zMSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHsgZGlzcGxheTpmbGV4OyB3aWR0aCA6MTAwJTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLXRleHQgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZDp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBib3JkZXItbGVmdDowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSBAbWVkaWEgKG1heC13aWR0aDo5ODBweCkgeyAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6ODVweDsgfSB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLmNzcyAqKi8KLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0LCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gdGV4dGFyZWE6Zm9jdXMgeyBib3JkZXItY29sb3I6Izg2YjdmZTsgb3V0bGluZTowOyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2IoMTMgMTEwIDI1MyAvIDI1JSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7IHotaW5kZXg6MzsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGJvcmRlci1jb2xvcjojZGMzNTQ1ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBjb2xvcjojZGMzNTQ1OyB9Ci8qKiAvY3NzL3YyL21vZGFsLmNzcyAqKi8KLm1vZGFsLXdyYXBwZXIgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjE1MCU7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOyB6LWluZGV4OjE2MDAxOyB0cmFuc2l0aW9uOnRvcCAxNTBtcyBlYXNlLWluOyB9IC5tb2RhbC13cmFwcGVyLmlzLWFjdGl2ZXsgdG9wOjUwJTsgfSAubW9kYWwtd3JhcHBlciAubW9kYWwtYm9keXsgbWluLXdpZHRoOjIwcmVtOyBtYXgtd2lkdGg6MTAwJTsgbWF4LWhlaWdodDo4NXZoOyBvdmVyZmxvdy15OmF1dG87IH0gLm1vZGFsLW92ZXJsYXl7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjEwMHZoOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC41KTsgei1pbmRleDoxMDAwMDsgfSAubG9hZGluZy1vdmVybGF5eyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBsZWZ0OjA7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgfSAubW9kYWwtd3JhcHBlciA6aXMoaW5wdXRbdHlwZT0idGV4dCJdLGlucHV0W3R5cGU9ImVtYWlsIl0saW5wdXRbdHlwZT0idGVsIl0peyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1taWQtZ3JheSk7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9IC5tb2RhbC1ib2R5IC5pZnJhbWUtd3JhcHBlcnsgd2lkdGg6bWF4KDkwdncsIDIwLjVyZW0pOyBoZWlnaHQ6bWF4KDg0dmgsIDMwcmVtKTsgd2lkdGg6Y2xhbXAoMjAuNXJlbSwgbWF4KDkwdncsIDIwLjVyZW0pLCA2MHJlbSk7IGhlaWdodDpjbGFtcCgzMHJlbSwgbWF4KDg0dmgsIDMwcmVtKSwgNjByZW0pOyB9IC5tb2RhbC1ib2R5IC5pZnJhbWUtd3JhcHBlciBpZnJhbWV7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9Ci8qKiAvY3NzL3YyL2ZsYXRwaWNrci5taW4uY3NzICoqLwouZmxhdHBpY2tyLWNhbGVuZGFye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3BhY2l0eTowO2Rpc3BsYXk6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcjt2aXNpYmlsaXR5OmhpZGRlbjtwYWRkaW5nOjA7LXdlYmtpdC1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZTtkaXJlY3Rpb246bHRyO2JvcmRlcjowO2ZvbnQtc2l6ZTowLjg3NXJlbSA7bGluZS1oZWlnaHQ6MjRweDtib3JkZXItcmFkaXVzOjVweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMDcuODc1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94Oy1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247YmFja2dyb3VuZDojZmZmOy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTYsLTFweCAwIDAgI2U2ZTZlNiwwIDFweCAwICNlNmU2ZTYsMCAtMXB4IDAgI2U2ZTZlNiwwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCk7Ym94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTYsLTFweCAwIDAgI2U2ZTZlNiwwIDFweCAwICNlNmU2ZTYsMCAtMXB4IDAgI2U2ZTZlNiwwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCl9LmZsYXRwaWNrci1jYWxlbmRhci5vcGVuLC5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5le29wYWNpdHk6MTttYXgtaGVpZ2h0OjY0MHB4O3Zpc2liaWxpdHk6dmlzaWJsZX0uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW57ZGlzcGxheTppbmxpbmUtYmxvY2s7ei1pbmRleDo5OTk5OX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFuaW1hdGUub3Blbnstd2Via2l0LWFuaW1hdGlvbjpmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKC4yMywxLC4zMiwxKTthbmltYXRpb246ZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllciguMjMsMSwuMzIsMSl9LmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmV7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4fS5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGlje3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyAycHgpfS5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGljLm9wZW57ei1pbmRleDo5OTk7ZGlzcGxheTpibG9ja30uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMSkgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rNyl7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH0uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMikgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rMSl7LXdlYmtpdC1ib3gtc2hhZG93Oi0ycHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTJweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lciwuZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNUaW1lIC5kYXlDb250YWluZXJ7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXJ7Ym9yZGVyLWxlZnQ6MH0uZmxhdHBpY2tyLWNhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1le2hlaWdodDo0MHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5ub0NhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1le2hlaWdodDphdXRvfS5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lO2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDtjb250ZW50OicnO2hlaWdodDowO3dpZHRoOjA7bGVmdDoyMnB4fS5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93UmlnaHQ6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmFmdGVyLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dSaWdodDphZnRlcntsZWZ0OmF1dG87cmlnaHQ6MjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Q2VudGVyOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Q2VudGVyOmFmdGVye2xlZnQ6NTAlO3JpZ2h0OjUwJX0uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZXtib3JkZXItd2lkdGg6NXB4O21hcmdpbjowIC01cHh9LmZsYXRwaWNrci1jYWxlbmRhcjphZnRlcntib3JkZXItd2lkdGg6NHB4O21hcmdpbjowIC00cHh9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlcntib3R0b206MTAwJX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOiNmZmZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlcnt0b3A6MTAwJX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmJlZm9yZXtib3JkZXItdG9wLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlcntib3JkZXItdG9wLWNvbG9yOiNmZmZ9LmZsYXRwaWNrci1jYWxlbmRhcjpmb2N1c3tvdXRsaW5lOjB9LmZsYXRwaWNrci13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGF0cGlja3ItbW9udGhze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1tb250aHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMCwwLDAsMC45KTtmaWxsOnJnYmEoMCwwLDAsMC45KTtoZWlnaHQ6MzRweDtsaW5lLWhlaWdodDoxO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGh7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7aGVpZ2h0OjM0cHg7cGFkZGluZzoxMHB4O3otaW5kZXg6Mztjb2xvcjpyZ2JhKDAsMCwwLDAuOSk7ZmlsbDpyZ2JhKDAsMCwwLDAuOSl9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLWRpc2FibGVke2Rpc3BsYXk6bm9uZX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggaSwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggaXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoe2xlZnQ6MH0gLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1uZXh0LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aHtyaWdodDowfSAuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGg6aG92ZXIsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVye2NvbG9yOiM5NTllYTl9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyIHN2ZywuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGg6aG92ZXIgc3Zne2ZpbGw6I2Y2NDc0N30uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmd7d2lkdGg6MTRweDtoZWlnaHQ6MTRweH0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnIHBhdGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyBwYXRoey13ZWJraXQtdHJhbnNpdGlvbjpmaWxsIC4xczt0cmFuc2l0aW9uOmZpbGwgLjFzO2ZpbGw6aW5oZXJpdH0ubnVtSW5wdXRXcmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDphdXRvfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQsLm51bUlucHV0V3JhcHBlciBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5udW1JbnB1dFdyYXBwZXIgaW5wdXR7d2lkdGg6MTAwJX0ubnVtSW5wdXRXcmFwcGVyIGlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sLm51bUlucHV0V3JhcHBlciBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnttYXJnaW46MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0ubnVtSW5wdXRXcmFwcGVyIHNwYW57cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt3aWR0aDoxNHB4O3BhZGRpbmc6MCA0cHggMCAycHg7aGVpZ2h0OjUwJTtsaW5lLWhlaWdodDo1MCU7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxcHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjE1KTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm51bUlucHV0V3JhcHBlciBzcGFuOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpfS5udW1JbnB1dFdyYXBwZXIgc3BhbjphY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMil9Lm51bUlucHV0V3JhcHBlciBzcGFuOmFmdGVye2Rpc3BsYXk6YmxvY2s7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcHt0b3A6MDtib3JkZXItYm90dG9tOjB9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO3RvcDoyNiV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bnt0b3A6NTAlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO3RvcDo0MCV9Lm51bUlucHV0V3JhcHBlciBzcGFuIHN2Z3t3aWR0aDppbmhlcml0O2hlaWdodDphdXRvfS5udW1JbnB1dFdyYXBwZXIgc3BhbiBzdmcgcGF0aHtmaWxsOnJnYmEoMCwwLDAsMC41KX0ubnVtSW5wdXRXcmFwcGVyOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIHNwYW57b3BhY2l0eToxfS5mbGF0cGlja3ItY3VycmVudC1tb250aHtmb250LXNpemU6MTM1JTtsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtjb2xvcjppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjc1JTtsZWZ0OjEyLjUlO3BhZGRpbmc6Ny40OHB4IDAgMCAwO2xpbmUtaGVpZ2h0OjE7aGVpZ2h0OjM0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOmluaGVyaXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6LjVjaDtwYWRkaW5nOjB9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlcnt3aWR0aDo2Y2g7d2lkdGg6N2NoXDA7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjp0ZXh0O3BhZGRpbmc6MCAwIDAgLjVjaDttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDppbmhlcml0O2hlaWdodDphdXRvO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDt2ZXJ0aWNhbC1hbGlnbjppbml0aWFsOy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDthcHBlYXJhbmNlOnRleHRmaWVsZH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXI6Zm9jdXN7b3V0bGluZTowfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF0sLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyW2Rpc2FibGVkXTpob3Zlcntmb250LXNpemU6MTAwJTtjb2xvcjpyZ2JhKDAsMCwwLDAuNSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhze2FwcGVhcmFuY2U6bWVudWxpc3Q7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDozMDA7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46LTFweCAwIDAgMDtvdXRsaW5lOm5vbmU7cGFkZGluZzowIDAgMCAuNWNoO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmluaXRpYWw7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1hcHBlYXJhbmNlOm1lbnVsaXN0Oy1tb3otYXBwZWFyYW5jZTptZW51bGlzdDt3aWR0aDphdXRvfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmZvY3VzLC5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmFjdGl2ZXtvdXRsaW5lOm5vbmV9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O291dGxpbmU6bm9uZTtwYWRkaW5nOjB9LmZsYXRwaWNrci13ZWVrZGF5c3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RleHQtYWxpZ246Y2VudGVyO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjI4cHh9LmZsYXRwaWNrci13ZWVrZGF5cyAuZmxhdHBpY2tyLXdlZWtkYXljb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjF9c3Bhbi5mbGF0cGlja3Itd2Vla2RheXtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6OTAlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgwLDAsMCwwLjU0KTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO2ZvbnQtd2VpZ2h0OmJvbGRlcn0uZGF5Q29udGFpbmVyLC5mbGF0cGlja3Itd2Vla3N7cGFkZGluZzoxcHggMCAwIDB9LmZsYXRwaWNrci1kYXlze3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3dpZHRoOjMwNy44NzVweH0uZmxhdHBpY2tyLWRheXM6Zm9jdXN7b3V0bGluZTowfS5kYXlDb250YWluZXJ7cGFkZGluZzowO291dGxpbmU6MDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MzA3Ljg3NXB4O21pbi13aWR0aDozMDcuODc1cHg7bWF4LXdpZHRoOjMwNy44NzVweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7b3BhY2l0eToxfS5kYXlDb250YWluZXIgKyAuZGF5Q29udGFpbmVyey13ZWJraXQtYm94LXNoYWRvdzotMXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTFweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWRheXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjE1MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojMzkzOTM5O2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjQwMDt3aWR0aDoxNC4yODU3MTQzJTstd2Via2l0LWZsZXgtYmFzaXM6MTQuMjg1NzE0MyU7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MTQuMjg1NzE0MyU7ZmxleC1iYXNpczoxNC4yODU3MTQzJTttYXgtd2lkdGg6MzlweDtoZWlnaHQ6MzlweDtsaW5lLWhlaWdodDozOXB4O21hcmdpbjowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS5mbGF0cGlja3ItZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheTpob3ZlciwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5OmZvY3VzLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpmb2N1cywuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6Zm9jdXN7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowO2JhY2tncm91bmQ6I2U2ZTZlNjtib3JkZXItY29sb3I6I2U2ZTZlNn0uZmxhdHBpY2tyLWRheS50b2RheXtib3JkZXItY29sb3I6Izk1OWVhOX0uZmxhdHBpY2tyLWRheS50b2RheTpob3ZlciwuZmxhdHBpY2tyLWRheS50b2RheTpmb2N1c3tib3JkZXItY29sb3I6Izk1OWVhOTtiYWNrZ3JvdW5kOiM5NTllYTk7Y29sb3I6I2ZmZn0uZmxhdHBpY2tyLWRheS5zZWxlY3RlZCwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6Zm9jdXMsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpmb2N1cywuZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpmb2N1cywuZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpob3ZlciwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmhvdmVyLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmhvdmVyLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLm5leHRNb250aERheXtiYWNrZ3JvdW5kOiM1NjlmZjc7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiM1NjlmZjd9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZXtib3JkZXItcmFkaXVzOjUwcHggMCAwIDUwcHh9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5lbmRSYW5nZXtib3JkZXItcmFkaXVzOjAgNTBweCA1MHB4IDB9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKXstd2Via2l0LWJveC1zaGFkb3c6LTEwcHggMCAwICM1NjlmZjc7Ym94LXNoYWRvdzotMTBweCAwIDAgIzU2OWZmN30uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdle2JvcmRlci1yYWRpdXM6NTBweH0uZmxhdHBpY2tyLWRheS5pblJhbmdle2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6LTVweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzotNXB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVyLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXksLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZCwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLm5leHRNb250aERheXtjb2xvcjpyZ2JhKDU3LDU3LDU3LDAuMyk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOmRlZmF1bHR9LmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWQ7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjEpfS5mbGF0cGlja3ItZGF5LndlZWsuc2VsZWN0ZWR7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm94LXNoYWRvdzotNXB4IDAgMCAjNTY5ZmY3LDVweCAwIDAgIzU2OWZmNztib3gtc2hhZG93Oi01cHggMCAwICM1NjlmZjcsNXB4IDAgMCAjNTY5ZmY3fS5mbGF0cGlja3ItZGF5LmhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbn0ucmFuZ2VNb2RlIC5mbGF0cGlja3ItZGF5e21hcmdpbi10b3A6MXB4fS5mbGF0cGlja3Itd2Vla3dyYXBwZXJ7ZmxvYXQ6bGVmdH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla3N7cGFkZGluZzowIDEycHg7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla2RheXtmbG9hdDpub25lO3dpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MjhweH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheSwuZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheTpob3ZlcntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWF4LXdpZHRoOm5vbmU7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOmRlZmF1bHQ7Ym9yZGVyOm5vbmV9LmZsYXRwaWNrci1pbm5lckNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbn0uZmxhdHBpY2tyLXJDb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzowOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZmxhdHBpY2tyLXRpbWV7dGV4dC1hbGlnbjpjZW50ZXI7b3V0bGluZTowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7bGluZS1oZWlnaHQ6NDBweDttYXgtaGVpZ2h0OjQwcHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5mbGF0cGlja3ItdGltZTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6dGFibGU7Y2xlYXI6Ym90aH0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlcnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7d2lkdGg6NDAlO2hlaWdodDo0MHB4O2Zsb2F0OmxlZnR9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6IzM5MzkzOX0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItdG9wLWNvbG9yOiMzOTM5Mzl9LmZsYXRwaWNrci10aW1lLmhhc1NlY29uZHMgLm51bUlucHV0V3JhcHBlcnt3aWR0aDoyNiV9LmZsYXRwaWNrci10aW1lLnRpbWUyNGhyIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6NDklfS5mbGF0cGlja3ItdGltZSBpbnB1dHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7cGFkZGluZzowO2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6IzM5MzkzOTtmb250LXNpemU6MC44NzVyZW0gO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1ob3Vye2ZvbnQtd2VpZ2h0OmJvbGR9LmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1taW51dGUsLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1zZWNvbmR7Zm9udC13ZWlnaHQ6NDAwfS5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1c3tvdXRsaW5lOjA7Ym9yZGVyOjB9LmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItdGltZS1zZXBhcmF0b3IsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG17aGVpZ2h0OmluaGVyaXQ7ZmxvYXQ6bGVmdDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOiMzOTM5Mzk7Zm9udC13ZWlnaHQ6Ym9sZDt3aWR0aDoyJTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjstbXMtZmxleC1pdGVtLWFsaWduOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcn0uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbXtvdXRsaW5lOjA7d2lkdGg6MTglO2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjQwMH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6aG92ZXIsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG06aG92ZXIsLmZsYXRwaWNrci10aW1lIGlucHV0OmZvY3VzLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmZvY3Vze2JhY2tncm91bmQ6I2VlZX0uZmxhdHBpY2tyLWlucHV0W3JlYWRvbmx5XXtjdXJzb3I6cG9pbnRlcn1ALXdlYmtpdC1rZXlmcmFtZXMgZnBGYWRlSW5Eb3due2Zyb217b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX1Aa2V5ZnJhbWVzIGZwRmFkZUluRG93bntmcm9te29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19Ci8qKiAvY3NzL2lubGluZS5mci5uZXdjYXJzLmNzcyAqKi8KLmN1c3RvbS1wYWdlIC5jb2wtc20tMiwgLmN1c3RvbS1wYWdlIC5jb2wtc20tMywgLmN1c3RvbS1wYWdlIC5jb2wtc20tNiwgLmN1c3RvbS1wYWdlIC5jb2wtc20tOSwgLmN1c3RvbS1wYWdlIC5jb2wtc20tMTIgeyBwYWRkaW5nLWxlZnQ6MCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OjAgIWltcG9ydGFudDsgfSAucm93LS1mdWxsLXdpZHRoIHsgd2lkdGg6OTkuNnZ3ICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0Oi01MHZ3ICFpbXBvcnRhbnQ7IGxlZnQ6NTAlICFpbXBvcnRhbnQ7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jdXN0b20tcGFnZSAucm93IHsgbWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7IH0gYnV0dG9uI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6IzAwMmM1ZiAhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6cHggIWltcG9ydGFudDsgfSBidXR0b24jb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czpweCAhaW1wb3J0YW50OyB9IGJ1dHRvbiNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBjb2xvcjojNjk2OTY5ICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojOTA5MDkwICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6cHggIWltcG9ydGFudDsgfSBidXR0b24uc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czpweCAhaW1wb3J0YW50OyB9IGJ1dHRvbi5vdC1wYy1yZWZ1c2UtYWxsLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgY29sb3I6IzAwMmM1ZiAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6IzAwMmM1ZiAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOnB4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlcnsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgZm9udC1zaXplOnNtYWxsICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6cHggIWltcG9ydGFudDsgfSAub3QtcGMtbG9nbyBpbWd7IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ28vaHl1bmRhaS1sb2dvLWhvcml6b250YWwtYmx1ZS1yZ2ItZnIuc3ZnIikgIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dveyB3aWR0aDozMCUgIWltcG9ydGFudDsganVzdGlmeS1jb250ZW50OmxlZnQgIWltcG9ydGFudDsgfSAub3QtYm5yLWxvZ297IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ28vaHl1bmRhaS1sb2dvLWhvcml6b250YWwtYmx1ZS1yZ2ItZnIuc3ZnIikgIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvIC5vdC1ibnItbG9nb3sgd2lkdGg6ODVweCAhaW1wb3J0YW50OyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDoyNXB4ICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHsgbWFyZ2luLWxlZnQ6MTEwcHggIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjI1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQyNXB4KXsgI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ297IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MTVweCAwIDEwcHggMCAhaW1wb3J0YW50OyB0cmFuc2Zvcm06aW5oZXJpdDsgem9vbTo0MCU7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbi10b3A6NXB4OyB9ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcG9saWN5LXRpdGxleyBmb250LXNpemU6MWVtICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciwgI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciwgI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyeyBwYWRkaW5nOjEwcHggMTBweDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24sICNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLCAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgYnV0dG9ueyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgfSAjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiB7IHdpZHRoOmF1dG87IH0gI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb250YWluZXIsICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb250YWluZXIsICNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvbnRhaW5lcnsgcGFkZGluZzo1cHggMjBweDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5eyBtYXJnaW46MDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXJ7IGZvbnQtc2l6ZTp2YXIoLS1mczApOyB9IH08L3N0eWxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoKCgkJCQkuY250U2VwYXJhdG9yIHsKCQkJCQlwYWRkaW5nLXRvcDoyMnB4OwoJCQkJfQoJCQkJPC9zdHlsZT4KCQoJCTwhLS0gT086OjYwMDU3MTBkMjkzOTU4OWYwZGM3MGEzZjA2M2YzYTQ4IC0tPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLDoCB2ZW5kcmUiIGlkPSJ0ZXh0Rm9yU2FsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkTDqXRhaWxzIiBpZD0idGV4dERldGFpbHMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJUb3VzIiBpZD0idGV4dEFsbCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlByaXggUsOpZHVpdCIgaWQ9InRleHRSZWR1Y2VkIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iU8OpbGVjdGlvbm5leiB1bmUgbWFycXVlIiBpZD0idGV4dE1hbnVUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlZvaXIgbm9zIG1vZMOobGVzIEh5dW5kYWkiIGlkPSJ0ZXh0QnJhbmRUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik1vZMOobGVzIEh5dW5kYWkgbmV1ZnMgMjAyNSAmYW1wOyAyMDI2IiBpZD0idGV4dE1haW5UaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkF1dG9zIG5ldXZlcyBIeXVuZGFpIDIwMjUgJmFtcDsgMjAyNiDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dENhclRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVlVTIG5ldWZzIEh5dW5kYWkgMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0U1VWVGl0bGUiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJDYW1pb25zIG5ldWZzIEh5dW5kYWkgMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0VHJ1Y2tUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ikh5YnJpZGVzIG5ldXZlcyBIeXVuZGFpIDIwMjUgJmFtcDsgMjAyNiDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dEh5YnJpZFRpdGxlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iw4lsZWN0cmlxdWUgbmV1dmVzIEh5dW5kYWkgMjAyNSAmYW1wOyAyMDI2IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0RWxlY3RyaWNUaXRsZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Im5vdXZlYXUiIGlkPSJ0ZXh0TmV3Ij4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iSHl1bmRhaSB7JENMQVNTTkFNRX0gMjAyNSAmYW1wOyAyMDI2IiBpZD0idGV4dENsYXNzVmlldyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkFjY3VlaWwiIGlkPSJ0ZXh0SG9tZSI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii8iIGlkPSJ1cmlIb21lIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL25ldWZzL25vdXZlYXUuaHRtbCIgaWQ9InVyaU5ld0NhcnMiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvbmV1ZnMvIiBpZD0idGV4dE5ld0NhckZvbGRlciI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5vcyBtYXJxdWVzIiBpZD0idGV4dE1hbnVTZWxlY3QiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJFbiBTdG9jayAvIERpc3BvbmlibGVzIiBpZD0iaW5TdG9ja0xhYmVsIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL2ltYWdlcy8iIGlkPSJ0ZXh0QmFzZUltYWdlUGF0aCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9wcm94eV9hdWIvIiBpZD0iYnJhbmRJbWFnZVBhdGgiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIwYjdmZTgzYjIwM2I2OTEwZjAyMDFhNzI1MTdjMmVmMHwzMjU1NjY5ODg2IiBpZD0iZW1haWxVc2VkQ2FycyI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kRW1haWxPdmVycmlkZSIgaWQ9ImJyYW5kRW1haWxPdmVycmlkZSIgdmFsdWU9IiI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmRFbWFpbEFkZk92ZXJyaWRlIiBpZD0iYnJhbmRFbWFpbEFkZk92ZXJyaWRlIiB2YWx1ZT0iIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JjZVRvRmlsbFBvcHVwX25ldyIgdmFsdWU9Im5vbmUiPgoJCTwhLS0gU1RBUlQgU09SVCBPUkRFUiAtLT4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibW9kZWwiIGlkPSJzb3J0QnkiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBc2MiIGlkPSJzb3J0RGlyIj4KCQk8IS0tIEVORCBTT1JUIE9SREVSIC0tPgoJCQkJCQk8c2NyaXB0PgoKCQkvL2dsb2JhbCBzdG9yZQoJCXZhciBzdG9yZSA9IG51bGw7CgoJCWNvbnN0IGluaXRTdG9yZSA9ICgpID0+IHsKCgkJCWlmKHR5cGVvZiBjcmVhdGVEYXRhU3RvcmUgIT09ICdmdW5jdGlvbicpewoJCQkJc2V0VGltZW91dChpbml0U3RvcmUsIDUwKTsKCQkJCXJldHVybjsKCQkJfQoKCQkJc3RvcmUgPSBjcmVhdGVEYXRhU3RvcmUoeyJjb250ZXh0Ijp7ImxhbmciOiJGUkVOQ0giLCJzaG9ydExhbmciOiJmciIsImlzTW9iaWxlIjpmYWxzZSwiY2F0ZWdvcnkiOiJhbGwiLCJzZWN0aW9uIjoiTkVXIiwibG9jYWxlIjoiZnJfQ0EiLCJkYXRlZm9ybWF0IjoiJWUgJUIifSwiZGVhbGVySW5mbyI6eyJhZGRyZXNzIjoiODQ1LCBydWUgTm90cmUtRGFtZSIsImNpdHkiOiJSZXBlbnRpZ255IiwicHJvdmluY2UiOiJRdVx1MDBlOWJlYyIsInJlZ2lvbiI6IkxhbmF1ZGlcdTAwZThyZSIsInBvc3RhbCI6Iko1WSAxQzQiLCJuYW1lIjoiSHl1bmRhaSBSZXBlbnRpZ255IiwiZW1haWwiOiJqcGVsbGV0aWVyQGh5dW5kYWlyZXBlbnRpZ255LmNvbTtraGFvbGFAZDJjbWVkaWEuY2EiLCJkZWFsZXJJRCI6IjE4MDgiLCJkZWFsZXJHcm91cCI6eyJncm91cGVOYW1lIjoiR3JvdXBlIEdFTlgiLCJncm91cGVJRCI6IjQxNTQiLCJkZWFsZXJzIjpbeyJkZWFsZXJJRCI6IjE3ODkiLCJuYW1lIjoiQXV0byBQcm8gQ3JcdTAwZTlkaXQiLCJzaXRlSUQiOiIyMjciLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiNzIxIiwibmFtZSI6IkZvcnRpZXIgQXV0byBDclx1MDBlOWRpdCIsInNpdGVJRCI6IjEzMTAiLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiMzk3NiIsIm5hbWUiOiJHRU5YIEdyb3VwZSBBdXRvbW9iaWxlIiwic2l0ZUlEIjoiMTQxNyIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIxODA4IiwibmFtZSI6Ikh5dW5kYWkgUmVwZW50aWdueSIsInNpdGVJRCI6IjI1MSIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiI5MzgiLCJuYW1lIjoiSHl1bmRhaSBTdC1KXHUwMGU5clx1MDBmNG1lIiwic2l0ZUlEIjoiMTEzIiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjExMDIiLCJuYW1lIjoiS2lhIFJlcGVudGlnbnkiLCJzaXRlSUQiOiI0MzQiLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiMTgxMCIsIm5hbWUiOiJNYXpkYSBQb2ludGUtQXV4LVRyZW1ibGVzIiwic2l0ZUlEIjoiMjUzIiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6IjE4MDkiLCJuYW1lIjoiTWF6ZGEgUmVwZW50aWdueSIsInNpdGVJRCI6IjI1MiIsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOiIyMDEwIiwibmFtZSI6Ik1lcmNlZGVzLUJlbnogTW9udHJcdTAwZTlhbC1Fc3QiLCJzaXRlSUQiOiI0MzAiLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoiODY3IiwibmFtZSI6IlJlcGVudGlnbnkgTWl0c3ViaXNoaSIsInNpdGVJRCI6IjQ5NyIsImlzTGl2ZSI6IllFUyJ9XX0sImZheCI6IiIsInBob25lIjoiNDUwLTU4Mi0zMTgyIiwibGF0aXR1ZGUiOiI0NS43NjMxMTAwMDAwIiwibG9uZ2l0dWRlIjoiLTczLjQyMjQ4MDAwMDAiLCJwcm92aW5jZV9jb2RlIjoiUUMiLCJkZXRhaWxfcHJpeCI6IiIsImRldGFpbF9wcml4X2FuIjoiIiwiZGV0YWlsX3ByaXhfdXNlZCI6IiIsImRldGFpbF9wcml4X3VzZWRfYW4iOiIiLCJvZW1EZWFsZXJDb2RlIjoiMzEwMjYiLCJwcmljZV9kaXNjbGFpbWVyX3ByZWZlcmVuY2UiOiIwIiwicHJpY2VfZGlzY2xhaW1lcl9wcmVmZXJlbmNlX3VzZWQiOiIwIiwiZ21CQUMiOiIiLCJwbGFjZUlkIjoiQ2hJSksyVlA5SXJseUV3UjhLY0txSXgxN2ljIn0sImlzVk0iOmZhbHNlLCJmaWVsZHMiOnsiU0hPV1JPT01fSU1BR0VfU09VUkNFX1RZUEUiOiJjaHJvbWUiLCJORVdfSU5WX0lNQUdFX1NPVVJDRV9UWVBFIjoiY2hyb21lIn0sImkxOG4iOnsiV0VCX1NJVEVfR0VORVJBVE9SX1BBR0VfTkVXSU5WIjoiXC9uZXVmc1wvaW52ZW50YWlyZVwvcmVjaGVyY2hlLmh0bWwiLCJQQVlNRU5UUyI6IlBhaWVtZW50cyIsIkRFRkFVTFRfUEFZTUVOVF9DQVNIIjoiQ29tcHRhbnQiLCJMQUJFTF9CRUZPUkVfVEFYRVMiOiJBdmFudCB0YXhlcyIsIkxBQkVMX1NBVkVfQlVJTERfVElUTEUiOiJFbnJlZ2lzdHJlciB2b3RyZSBjb25maWd1cmF0aW9uISIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9UT09MVElQIjoiUmVzdGF1cmV6IHVuZSBjb25maWd1cmF0aW9uIHByXHUwMGU5Y1x1MDBlOWRlbW1lbnQgZW5yZWdpc3RyXHUwMGU5ZSBlbiBzYWlzaXNzYW50IHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0VNQUlMX1BIT05FIjoiU2Fpc2lzc2V6IHZvdHJlIGFkcmVzc2UgZS1tYWlsIGV0XC9vdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lIHBvdXIgY2hhcmdlciB1bmUgY29uZmlndXJhdGlvbiBlbnJlZ2lzdHJcdTAwZTllLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9FTUFJTF9QSE9ORV9FUlJPUiI6IlZldWlsbGV6IHNhaXNpciB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9FUlJPUiI6IkxlcyBkb25uXHUwMGU5ZXMgZGUgY29uZmlndXJhdGlvbiBuZSBzb250IHBhcyBkaXNwb25pYmxlcyBwb3VyIGNldCBlbnJlZ2lzdHJlbWVudC4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfUkVESVJFQ1RJTkciOiJDb21waWxhdGlvbiBjaGFyZ1x1MDBlOWUhIFJlZGlyZWN0aW9uIGVuIGNvdXJzLi4uIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0xJU1RfRVJST1IiOiJBdWN1bmUgY29uZmlndXJhdGlvbiBuJiMzOTthIFx1MDBlOXRcdTAwZTkgdHJvdXZcdTAwZTllIHBvdXIgY2V0dGUgYWRyZXNzZSBlLW1haWxcL251bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0lOVkFMSURfVE9LRU4iOiJMZSBqZXRvbiBlc3QgaW52YWxpZGUgb3UgYSBleHBpclx1MDBlOS4gVmV1aWxsZXogclx1MDBlOWVzc2F5ZXIuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0xJU1QiOiJDaGFyZ2VtZW50IGRlcyBjb25maWd1cmF0aW9ucyBzYXV2ZWdhcmRcdTAwZTlzLi4uIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0xJU1RfU0VMRUNUIjoiU1x1MDBlOWxlY3Rpb25uZXogdW5lIGNvbmZpZ3VyYXRpb24gXHUwMGUwIGNoYXJnZXI6IiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0xJU1RfRkFJTEVEIjoiSW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGxlcyBjb25maWd1cmF0aW9ucy4iLCJXRUJTSVRFX09FTURSX01GQV9TRU5EX0NPREUiOiJFbnZvaSBkdSBjb2RlIGRlIHZcdTAwZTlyaWZpY2F0aW9uLi4uIiwiV0VCU0lURV9PRU1EUl9NRkFfU1RBUlRfRVJST1IiOiJJbXBvc3NpYmxlIGRlIGRcdTAwZTltYXJyZXIgbGEgdlx1MDBlOXJpZmljYXRpb24uIiwiV0VCU0lURV9PRU1EUl9NRkFfRU5URVJfQ09ERSI6IlNhaXNpc3NleiBsZSBjb2RlIFx1MDBlMCA2IGNoaWZmcmVzIGVudm95XHUwMGU5IFx1MDBlMCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSBcdTAwZTAgdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX01GQV9FTlRFUl9DT0RFX0VSUk9SIjoiVmV1aWxsZXogc2Fpc2lyIGxlIGNvZGUgZGUgdlx1MDBlOXJpZmljYXRpb24uIiwiV0VCU0lURV9PRU1EUl9NRkFfVkVSSUZZX0NPREUiOiJWXHUwMGU5cmlmaWNhdGlvbiBkdSBjb2RlLi4uIiwiV0VCU0lURV9PRU1EUl9NRkFfRVhQSVJFRF9DT0RFIjoiQ29kZSBpbnZhbGlkZSBvdSBleHBpclx1MDBlOS4gVmV1aWxsZXogclx1MDBlOWVzc2F5ZXIuIiwiV0VCU0lURV9PRU1EUl9NRkFfVkVSSUZZX0ZBSUxFRCI6IkxhIHZcdTAwZTlyaWZpY2F0aW9uIGEgXHUwMGU5Y2hvdVx1MDBlOS4gVmV1aWxsZXogclx1MDBlOWVzc2F5ZXIuIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1VQREFUSU5HIjoiTWlzZSBcdTAwZTAgam91ciBkZSBsYSBjb25maWd1YXRpb24uLi4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfVVBEQVRFX1NVQ0NFU1MiOiJMYSBjb25maWd1YXRpb24gYSBcdTAwZTl0XHUwMGU5IG1pc2UgXHUwMGUwIGpvdXIgYXZlYyBzdWNjXHUwMGU4cy4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfVVBEQVRFX0VSUk9SIjoiSW1wb3NzaWJsZSBkZSBtZXR0cmUgXHUwMGUwIGpvdXIgbGEgY29uZmlndWF0aW9uLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9TQVZJTkciOiJTYXV2ZWdhcmRlIGRlIGxhIGNvbmZpZ3VhdGlvbi4uLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9TQVZFX1NVQ0NFU1MiOiJDb25maWd1YXRpb24gZW5yZWdpc3RyXHUwMGU5ICEgVm91cyBwb3VycmV6IGxlIGNoYXJnZXIgdWx0XHUwMGU5cmlldXJlbWVudCBlbiB1dGlsaXNhbnQgdm90cmUgYWRyZXNzZSBlLW1haWwgb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfU0FWRV9FUlJPUiI6IkltcG9zc2libGUgZCYjMzk7ZW5yZWdpc3RyZXIgbGEgY29uZmlndXJhdGlvbi4iLCJXRUJTSVRFX09FTURSX0JUTl9MT0FEIjoiQ2hhcmdlciIsIldFQlNJVEVfT0VNRFJfQlROX1ZFUklGWSI6IlZcdTAwZTlyaWZpZXIiLCJXRUJTSVRFX09FTURSX0JUTl9SRVNFTkRfQ09ERSI6IlJlbnZveWVyIGxlIGNvZGUiLCJXRUJTSVRFX09FTURSX01GQV9WRVJJRklDQVRJT05fQ09ERSI6IkxlIGNvZGUgZGUgdlx1MDBlOXJpZmljYXRpb24iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfTU9EQUxfVElUTEUiOiJDaGFyZ2VyIHVuZSBjb25maWd1cmF0aW9uIGVucmVnaXN0clx1MDBlOWUifSwic2hvd09lbUltYWdlcyI6ZmFsc2V9KTsKCQl9OwoKCQlpbml0U3RvcmUoKTsKCgk8L3NjcmlwdD4KCQkJCQkJPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDA7IGhlaWdodDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CgkJCQkKCQkJPC9zdmc+CgkJCQoJCQk8aGVhZGVyIGNsYXNzPSJtYWluRGl2LXdyYXBwZXIiPgoJCQkJCgkJCQk8ZGl2IGNsYXNzPSJ3cmFwcGVyIE1haW5Cb3hMYXllciIgaWQ9Im1haW5EaXYiIGhpZGRlbj0iMSI+CgkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjEiIGlkPSJtdWx0aS1sYW5ndWFnZSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0ibmV3X3RyYW5zbGF0ZWRfdGl0bGVzIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkZSRU5DSCIgaWQ9ImFjdGl2ZXNpdGVsYW5ndWFnZSI+CQkJCTxkaXYgY2xhc3M9Imxhbmd1YWdlQmFyIGZsZXgtYm94IGZsZXgtZW5kIGFsaWduLWNlbnRlciAiIGlkPSJsYW5ndWFnZUNoYW5nZXJEaXYiPgoJCQkJCQkKCQoJCgk8ZGl2Pjx1bCBjbGFzcz0iaWROYXYxIj48bGkgY2xhc3M9InRvcCIgc3R5bGU9InotaW5kZXg6IDk5OyI+ICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGVza3RvcF9sYW5nX2J1dHRvbiBhY3RpdmUiIHRpdGxlPSJGcmFuw6dhaXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0Ij5GUjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP3BhdGg9L2VuZy8iIGNsYXNzPSJkZXNrdG9wX2xhbmdfYnV0dG9uIiB0aXRsZT0iQW5nbGFpcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiPkVOPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvYT48L2xpPjwvdWw+PC9kaXY+CgkKCQoJCQkJPC9kaXY+CgkJCTwhLS0gSE9NRVBBR0VfRU5HID0+IC9lbmcvIHx8IEhPTUVQQUdFIEZSRSA9PiAvIC0tPgoJCQkKCQkJPGRpdiBjbGFzcz0idi1jYXJkIHRvcF9iZyBoZWFkZXItaW5mbyIgc3R5bGU9ImJhY2tncm91bmQ6bm9uZTsiPgoJCQkJCQkJPGRpdiBjbGFzcz0iaGVhZGVyLXNlY3Rpb24iPgoJPGRpdiBjbGFzcz0iaGVhZGVyLWltYWdlLXdyYXBwZXIiPgoJCTxhIGhyZWY9Ij9wYXRoPS8iIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IiBhcmlhLWxhYmVsPSJIeXVuZGFpIFJlcGVudGlnbnkgTG9nbyIgdGl0bGU9Ikh5dW5kYWkgUmVwZW50aWdueSI+CgkJCTxpbWcgYWx0PSJIeXVuZGFpIFJlcGVudGlnbnkiIGNsYXNzPSJvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIGxpdmVsb2FkIHBob3RvIGltYWdlLXBhZGRpbmcgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1zY29kZXJlZj0iNjQ4MTUzLVAiIGlkPSJkZWFsZXJfbG9nbyIgc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL0xvZ28vaHl1bmRhaS1sb2dvLWhvcml6b250YWwtYmx1ZS1yZ2ItZnIuc3ZnIiBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJPC9hPgoJPC9kaXY+CjwvZGl2PgoJCQkKCQkJPGRpdiBjbGFzcz0iaGVhZGVyLXNlY3Rpb24gbG9nby1taWRkbGUiIHN0eWxlPSIiPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJoZWFkZXItc2VjdGlvbiBhZGRyZXNzLW1pZGRsZSI+Cgk8ZGl2PgoJCQoJCTxkaXYgY2xhc3M9InBob25lIHBob25lX3JpZ2h0ICIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+Cgk8ZGl2IGNsYXNzPSJmbiBvcmciIHN0eWxlPSJmb250LXNpemU6IDIycHg7Y29sb3I6ICMwMDJjNWY7IiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIzIj5IeXVuZGFpIFJlcGVudGlnbnk8L2Rpdj4KCQkJCQk8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE1cHg7IiBjbGFzcz0iYWRyIj4KCQkJCQk8IS0tIE9POjo5MWM0OWY4NGY2OWZjZmJiODNmNmUyNzk1MGQ2YWQ4OCAtLT48YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY2EvbWFwcy9kaXIvP2FwaT0xJmFtcDtkZXN0aW5hdGlvbj1IeXVuZGFpJTJCUmVwZW50aWdueSUyQzg0NSsrcnVlK05vdHJlLURhbWUlMkNSZXBlbnRpZ255JTJDUUMlMkNKNVkrMUM0JmFtcDtkZXN0aW5hdGlvbl9wbGFjZV9pZD1DaElKSzJWUDlJcmx5RXdSOEtjS3FJeDE3aWMmYW1wO2hsPWZyJmFtcDt0PW0mYW1wO3o9MTYmYW1wO2llPVVURjgiIHRhcmdldD0iX2JsYW5rIiBhcmlhLWxhYmVsPSI4NDUsIHJ1ZSBOb3RyZS1EYW1lLCBSZXBlbnRpZ255LCBRQywgSjVZIDFDNC4gR29vZ2xlIE1hcCBzJ291dnJlIGRhbnMgdW4gbm91dmVsIG9uZ2xldCIgdGl0bGU9IkxvY2F0aW9uIDogODQ1LCBydWUgTm90cmUtRGFtZSwgUmVwZW50aWdueSwgUUMsIEo1WSAxQzQiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojMDAyYzVmOyAtLXR4dC1jb2xvcjojMDAyYzVmOyI+CgkJCQkJPHNwYW4gY2xhc3M9ImRlYWxlck1hcExpbmsiIGl0ZW1wcm9wPSJhZGRyZXNzIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHBzOi8vc2NoZW1hLm9yZy9Qb3N0YWxBZGRyZXNzIj4KCQkJCQkJPHN2ZyBjbGFzcz0iIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdib3g9IjAgMCA1MTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLT48cGF0aCBkPSJNNDQ0LjUyIDMuNTJMMjguNzQgMTk1LjQyYy00Ny45NyAyMi4zOS0zMS45OCA5Mi43NSAxOS4xOSA5Mi43NWgxNzUuOTF2MTc1LjkxYzAgNTEuMTcgNzAuMzYgNjcuMTcgOTIuNzUgMTkuMTlsMTkxLjktNDE1Ljc4YzE1Ljk5LTM4LjM5LTI1LjU5LTc5Ljk3LTYzLjk3LTYzLjk3eiI+PC9wYXRoPjwvc3ZnPgoJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InN0cmVldC1hZGRyZXNzIiBpdGVtcHJvcD0ic3RyZWV0QWRkcmVzcyI+ODQ1LCBydWUgTm90cmUtRGFtZTwvc3Bhbj4sIAogICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibG9jYWxpdHkiIHN0eWxlPSJtYXJnaW4tbGVmdDo1cHgiIGl0ZW1wcm9wPSJhZGRyZXNzTG9jYWxpdHkiPlJlcGVudGlnbnk8L3NwYW4+LCAKICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlZ2lvbiIgc3R5bGU9Im1hcmdpbi1sZWZ0OjVweCIgaXRlbXByb3A9ImFkZHJlc3NSZWdpb24iPlFDPC9zcGFuPiwKICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBvc3RhbC1jb2RlIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NXB4IiBpdGVtcHJvcD0icG9zdGFsQ29kZSI+SjVZIDFDNDwvc3Bhbj4KCQkJCQk8L3NwYW4+CgkJCQkJPC9hPgoJCQkJPC9kaXY+Cgk8ZGl2IGhpZGRlbj4KCQk8bWV0YSBpdGVtcHJvcD0ibGF0aXR1ZGUiIGNvbnRlbnQ9IjQ1Ljc2MzExMDAwMDAiPgoJCTxtZXRhIGl0ZW1wcm9wPSJsb25naXR1ZGUiIGNvbnRlbnQ9Ii03My40MjI0ODAwMDAwIj4KICAgICA8L2Rpdj4KCQoJIDxkaXYgY2xhc3M9InBob25lX3RleHQgaWNvbi10ZXh0IiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Zm9udC1zaXplOiAxNXB4OyI+CgkJCQkJCgkJCTxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrIiBjbGFzcz0iZmxleC1ib3giPgoJCQk8c3BhbiBzdHlsZT0iIiBjbGFzcz0iZmEgZmEtcGhvbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+ICA8c3BhbiBpZD0iaGVhZGVyLXBob25lLXRyaWdnZXIiIGl0ZW1wcm9wPSJ0ZWxlcGhvbmUiIGNsYXNzPSJleHRlbmRlZFBob25lVHJpZ2dlciAiIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7Ij48YSBocmVmPSI\/cGF0aD10ZWw6NDUwJTIwNTgyLTMxODIiIGNsYXNzPSJwaG9uZS1saW5rIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIj40NTAgNTgyLTMxODI8L2E+IDxzcGFuIHN0eWxlPSJwb2ludGVyLWV2ZW50czpub25lOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4OyIgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4KCQkJPGRpdiBjbGFzcz0iZXh0ZW5kZWRQaG9uZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KCTxkaXY+PGxhYmVsPkfDqW7DqXJhbDogPHNwYW4gY2xhc3M9InRlbCAtbWwxMCI+PGEgaHJlZj0iP3BhdGg9dGVsOjElMjA4NTUlMjA1MDAtODY0OCIgY2xhc3M9InBob25lLWxpbmsiIGRhdGEtZGVwYXJ0bWVudD0iZmluYW5jZSI+MSA4NTUgNTAwLTg2NDg8L2E+IMKgKjwvc3Bhbj48L2xhYmVsPjwvZGl2PgoJPGRpdiBjbGFzcz0icGhvbmVOb3RlIj48L2Rpdj4KCTwhLS0gT086OmQ3NWI3NjgyODY4NDgwMWUyNjZkYmNiYjNjODEyMDU1IC0tPgo8L2Rpdj4KCQkJPC9kaXY+CgkJCgkJCgkJCgk8L2Rpdj4KCQogIAo8L2Rpdj4KCQkKCTwvZGl2Pgo8L2Rpdj4KCQkJCgkJCQoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iY2xyIj48L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic2tlbGV0b24gc2tlbGV0b24tZGVza3RvcCBza2VsZXRvbi1jb25kLTIgaGVhZGVyLW1lbnUiIHN0eWxlPSJ3aWR0aDpjYWxjKDEwMHZ3IC0gKDEwMHZ3IC0gMTAwJSkpO21pbi1oZWlnaHQ6NDhweDsiPgoJCQkJPGRpdiBjbGFzcz0idXBfbWVudSAgRlJFTkNIIGltZ19tZW51IG1lbnU2IGZ1bGxfd2lkdGgiIGRhdGEtc2NvZGVyZWY9Ijg5ODk0MTUtQSI+CgkJCQkJPGRpdiBjbGFzcz0iUzEwMFBlcmNlbnRXaWR0aCI+CgkJCQkJCTxkaXYgaWQ9ImZ1bGxXaWR0aE1lbnVCYXIiPjwvZGl2PgoJCQkJCQk8dWwgY2xhc3M9Im5hdiAgbm9TZXBlcmF0b3IiPgoJCQkJCQkJPGRpdiBpZD0ibWVudS1zcGVjcy10ZW1wbGF0ZSIgY2xhc3M9Im1lbnUtdGVjaC1zcGVjcyI+IDxkaXYgY2xhc3M9Im1lbnUtc3BlY3MtdGl0bGUiPjxzcGFuIGNsYXNzPSJhcnJvdyBhcnJvdy1sYXJnZSBhcnJvdy1yaWdodCBtci0xNSI+PC9zcGFuPjwvZGl2PiA8dWwgY2xhc3M9Im1lbnUtc3BlY3MtbGlzdCI+IDxsaT4gPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9Im1lbnUtc3BlYy1saW5rIj4gPHNwYW4gY2xhc3M9ImFycm93IGFycm93LXJpZ2h0IG1yLTE1Ij48L3NwYW4+U3DDqWMuIHRlY2huaXF1ZXMgPC9hPiA8L2xpPiA8bGk+IDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSJtZW51LXNwZWMtYm5wIj4gPHNwYW4gY2xhc3M9ImFycm93IGFycm93LXJpZ2h0IG1yLTE1Ij48L3NwYW4+Q29uZmlndXJleiB2b3RyZSAkTU9ERUwgPC9hPiA8L2xpPiA8bGkgY2xhc3M9ImRpdmlkZXIiPiA8bGk+IDxzdHJvbmcgY2xhc3M9Im1lbnUtcHJpY2UtdGV4dCI+IyNNRU5VTU9ERUwjIyAjI01FTlVUUklNIyMgIyNNRU5VWUVBUiMjIMOgIHBhcnRpciBkZTwvc3Ryb25nPiA8YnI+PHNwYW4gY2xhc3M9Im1lbnUtc3BlYy1wcmljZSI+JDk5LDk5OTwvc3Bhbj4gPC9saT4gPGxpPiA8c3Ryb25nPlB1aXNzYW5jZTwvc3Ryb25nPiA8YnI+PHNwYW4gY2xhc3M9Im1lbnUtc3BlYy1ocCI+OTk5IGhwIEAgOTk5OSBycG08L3NwYW4+IDwvbGk+IDxsaT4gPHN0cm9uZz5DeWxpbmRyw6llPC9zdHJvbmc+IDxicj48c3BhbiBjbGFzcz0ibWVudS1zcGVjLXBvd2VyIj45LjkgTC85OTwvc3Bhbj4gPC9saT4gPGxpPiA8c3Ryb25nPkNvbnNvbW1hdGlvbiBkJ2Vzc2VuY2U8L3N0cm9uZz4gPGJyPlZpbGxlOiA8c3BhbiBjbGFzcz0ibWVudS1zcGVjLWZ1ZWwtY2l0eSI+OTkgbXBnPC9zcGFuPiA8YnI+QXV0b3JvdXRlOiA8c3BhbiBjbGFzcz0ibWVudS1zcGVjLWZ1ZWwtaGlnaHdheSI+OTkgbXBnPC9zcGFuPiA8L2xpPiA8bGk+IDxzdHJvbmc+TW90cmljaXTDqTwvc3Ryb25nPiA8YnI+PHNwYW4gY2xhc3M9Im1lbnUtc3BlYy1kcml2ZXRyYWluIj45OTkga3BoPC9zcGFuPiA8L2xpPiA8L3VsPgo8L2Rpdj48bGkgZGF0YS1pZD0iVEVBTSIgaWQ9Ik1haW5NZW51X1RFQU0iIGNsYXNzPSJ0b3AgbGFzdE1lbnUgaGFzSXRlbXMiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L2NvbnRhY3Rlem5vdXMuaHRtbCI+UXVpIHNvbW1lcy1ub3VzPzwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJDT05UQUNUIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzQyMyIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L2NvbnRhY3Rlem5vdXMuaHRtbCI+Q29udGFjdGV6LW5vdXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV1MiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzNDI4Ij48YSBocmVmPSI\/cGF0aD0vbm91dmVsbGVzLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9Ik5FV1MiPk5vdXZlbGxlcyBldCDDqXbDqW5lbWVudHM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjFhY2YzYTM5LTc0YzYtNmE0Yi0yZmNjLTEiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzNDJkIj48YSBocmVmPSI\/cGF0aD0vYmxvZ3VlLmh0bWwiPkJsb2d1ZTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTJjOTY0OWItNmJiMC1mZmY3LTU2NjktOSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTM0MzEiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuaHl1bmRhaXJlcGVudGlnbnkuY29tL2ZhcS1mci5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RkFRPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJGSU5BTkNFIiBpZD0iTWFpbk1lbnVfRklOQU5DRSIgY2xhc3M9InRvcCBoYXNJdGVtcyI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvZmluYW5jZW1lbnQuaHRtbCI+RmluYW5jZW1lbnQgLyBMb2NhdGlvbjwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJDUkVESVQiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzNDEyIiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvZmluYW5jZW1lbnQuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iQ1JFRElUIj5EZW1hbmRlIGRlIGNyw6lkaXQ8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlBBWV9FU1QiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzNDE3IiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9pbnZlbnRhaXJlL2NhbGN1bGF0cmljZS1wcmV0LWF1dG8uaHRtbCI+Q2FsY3VsYXRldXIgZGUgcGFpZW1lbnRzPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJTRVJWSUNFIiBpZD0iTWFpbk1lbnVfU0VSVklDRSIgY2xhc3M9InRvcCBoYXNJdGVtcyI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vc2VydmljZXMtaHl1bmRhaS5odG1sIj5TZXJ2aWNlPC9hPjx1bCBjbGFzcz0ic3ViIj4KPGxpIGRhdGEtaWQ9IkFQUE9JTlRNRU5UIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzNlOSIgY2xhc3M9ImZpcnN0SXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly9zZXJ2aWNlLmNvbm5lY3RjZGsuY29tP2NpZD0yNTAyMTcyIiB0YXJnZXQ9Il9ibGFuayI+UHJlbmRyZSByZW5kZXotdm91czwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfZDgyNjc5OTg2M2VlZTYzNiIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzZWMiPjxhIGhyZWY9Ij9wYXRoPS9sb2NhbGlzYXRldXItZGUtcG5ldXMuaHRtbCI+TG9jYWxpc2F0ZXVyIGRlIHBuZXVzPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF9kNGIxNjRiYjJiYmQyNmViIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzNmMCI+PGEgaHJlZj0iP3BhdGg9L2VudHJldGllbnMtcmVjb21tYW5kZXMuaHRtbCI+Q2FsZW5kcmllcnMgZCdlbnRyZXRpZW48L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjVhYTNjZjFjLTRiM2EtNTg4Ni1iMTE1LTYiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2YzIj48YSBocmVmPSJodHRwczovL3BpZWNlcy5oeXVuZGFpcmVwZW50aWdueS5jb20iIHRhcmdldD0iX2JsYW5rIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSI1YWEzY2YxYy00YjNhLTU4ODYtYjExNS02Ij5NYWdhc2luZXogdm9zIHBpw6hjZXMgJmFtcDsgYWNjZXNzb2lyZXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9ImNiYzQ3YzNkLWJiN2MtNWQ4MS1iMTAyLTgiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2Y2Ij48YSBocmVmPSI\/cGF0aD0vcHJvZ3JhbW1lLWVudHJldGllbi5odG1sIj5Qcm9ncmFtbWUgZW50cmV0aWVuPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJHUF9iYzJmNDc1ZGFlMTYzOGYiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2Y5Ij48YSBocmVmPSI\/cGF0aD0vYXNzaXN0YW5jZS1yb3V0aWVyZS1oeXVuZGFpLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IkdQX2JjMmY0NzVkYWUxNjM4ZiI+QXNzaXN0YW5jZSBSb3V0acOocmU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IkdQXzFjZmQ0MzBiMTk5NzVlNzEiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2ZjIj48YSBocmVmPSI\/cGF0aD0vZ2FyYW50aWUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iR1BfMWNmZDQzMGIxOTk3NWU3MSI+R2FyYW50aWUgZXQgcHJvdGVjdGlvbnMgcHJvbG9uZ8OpZXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlNWX1BST01PIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzQwMCI+PGEgaHJlZj0iP3BhdGg9L3Byb21vdGlvbnMuaHRtbCNzZXJ2aWNlIj5Qcm9tb3Rpb25zIGRlIHNlcnZpY2U8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IkdQX2IzYWU1YTVjYmQ0N2UyY2YiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzNDA0IiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmh5dW5kYWljYW5hZGEuY29tL2ZyL293bmVycy1zZWN0aW9uL3JlY2FsbHMiIHRhcmdldD0iX2JsYW5rIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJHUF9iM2FlNWE1Y2JkNDdlMmNmIj5Ww6lyaWZpY2F0aW9uIGRlIHJhcHBlbCBIeXVuZGFpPC9hPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJPRkZFUlMiIGlkPSJNYWluTWVudV9PRkZFUlMiIGNsYXNzPSJ0b3AgaGFzSXRlbXMiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L3Byb21vdGlvbnMuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iT0ZGRVJTIj5PZmZyZXMgc3DDqWNpYWxlczwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJQUk9NT19NQU5VRkFDVFVSRVIiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2NmIiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI21hbnVmYWN0dXJlciI+SW5jaXRhdGlmcyBIeXVuZGFpPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJQUk9NT19ORVciIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2QzIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI25ldyIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iUFJPTU9fTkVXIj5PZmZyZXMgdsOpaGljdWxlcyBuZXVmczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iUFJPTU9fVVNFRCIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzZDYiPjxhIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwjdXNlZCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iUFJPTU9fVVNFRCI+T2ZmcmVzIHbDqWhpY3VsZXMgZCdvY2Nhc2lvbjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iUFJPTU9fU0VSVklDRSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzZDkiPjxhIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwjc2VydmljZSI+UHJvbW90aW9ucyBkZSBzZXJ2aWNlPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJQUk9NT19ERUFMRVIiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2RjIj48YSBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI290aGVyIj5Qcm9tb3Rpb25zIGNvbmNlc3Npb25uYWlyZTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iYTMzYTllOTUtYzFkMS1kYzU2LWQ4NmItZSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzZTAiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuaHl1bmRhaXJlcGVudGlnbnkuY29tL3Byb2dyYW1tZS1ub3V2ZWF1eC1hcnJpdmFudHMuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlByb2dyYW1tZSBub3V2ZWF1eCBhcnJpdmFudHM8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9IlRPT0xTIiBpZD0iTWFpbk1lbnVfVE9PTFMiIGNsYXNzPSJ0b3AgaGFzSXRlbXMiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L2NvbmZpZ3VyYXRpb24tZXQtcHJpeC9jb25maWd1cmF0aW9uLmh0bWwiPk91dGlscyBkJ2FjaGF0PC9hPjx1bCBjbGFzcz0ic3ViIj4KPGxpIGRhdGEtaWQ9IkNMSUNLVE9CVVkiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2E0IiBjbGFzcz0iZmlyc3RJdGVtIj48YSBocmVmPSJodHRwczovL3JlcGVudGlnbnkuc2hvcC5oeXVuZGFpY2FuYWRhLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5NYWdhc2luYWdlIGVuIGxpZ25lPC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJCTlAiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2E5Ij48YSBocmVmPSI\/cGF0aD0vY29uZmlndXJhdGlvbi1ldC1wcml4L2NvbmZpZ3VyYXRpb24uaHRtbCI+Q29uZmlndXJhdGlvbiBldCBwcml4PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJURVNURFJWIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzNhZCI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2Vzc2Fpcy1yb3V0aWVyLW5ldWYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVEVTVERSViI+UsOpc2VydmVyIHVuIGVzc2FpIHJvdXRpZXI8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlFVT1RFIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzNiMCI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL3ByaXgtbmV1Zi5odG1sIj5EZW1hbmRlciB1biBkZXZpczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iVFJBREVJTiIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzYjMiPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCglMjQoJyNUcmFkZUluQmFyUG9wdXBDb250YWluZXInKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoJ2NsaWNrJykub3BlbigpKTsiIGRhdGEtbWVudS10cmFuc2xhdGU9IlRSQURFSU4iPkRlbWFuZGUgZGUgdmFsZXVyIGQnw6ljaGFuZ2U8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IkJST0NIVVJFIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzNiOCI+PGEgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2Jyb2NodXJlcy5odG1sIj5Ccm9jaHVyZXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjM0ZDA2M2E4LTQ1N2MtNWYzOC03MTg3LWEiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzM2JiIiBjbGFzcz0ibGFzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9kZW1hbmRlLWNyZWRpdC5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSIzNGQwNjNhOC00NTdjLTVmMzgtNzE4Ny1hIj5EZW1hbmRlIGRlIENyw6lkaXQ8L2E+PC9saT4KPC91bD4KPC9saT4KPGxpIGRhdGEtaWQ9Ik5FVyIgaWQ9Ik1haW5NZW51X05FVyIgY2xhc3M9InRvcCBoYXNJdGVtcyI+PGEgY2xhc3M9InRvcF9saW5rIiBocmVmPSI\/cGF0aD0vbmV1ZnMvbm91dmVhdS5odG1sIj5TYWxsZSBkJ2V4cG9zaXRpb248L2E+PHVsIGNsYXNzPSJzdWIiPgo8bGkgZGF0YS1pZD0iTkVXX0xJTkVVUCIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMxOTkiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLmh0bWwiPlZvaXIgbGEgZ2FtbWU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19QSEVWIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzFjNyIgY2xhc3M9Imhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL1BIRVYuaHRtbCI+SHlicmlkZXMgcmVjaGFyZ2VhYmxlczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19QSEVWX0h5dW5kYWkiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMWM0IiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iMjE4NDg5MTMzNyIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMxYTciIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYwMDA5Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iVHVjc29uIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvVHVjc29uIFBsdWdfSW4gSHlicmlkLzIwMjUvVC80NjE5NDAvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iVHVjc29uIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjU1IDg0OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NTEgNDE0ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiPlR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMDU2MDI5NDI1IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzFiOSIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzQwMCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uX1BsdWdfSW5fSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1R1Y3NvbiBQbHVnX0luIEh5YnJpZC8yMDI2L1QvNDgwNTY0L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NiAyNDggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjUxIDU2NCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIj5UdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNjwvYT48L2xpPgo8L3VsPjwvbGk+CjwvdWw+PC9saT4KPGxpIGRhdGEtaWQ9Ik5FV19TVVYiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMjllIiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvVlVTLmh0bWwiPk11bHRpc2VnbWVudHMgLyBWVVM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU1VWX0h5dW5kYWkiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMjk5IiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc1N1YiBoYXNJbWciPjx1bCBjbGFzcz0ic3ViIj48bGkgZGF0YS1pZD0iNDA5NzM4MjA4MiIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMxZDQiIGNsYXNzPSJmaXJzdEl0ZW0gaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjY1ODAwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV81LTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IklPTklRIDUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9JT05JUSA1LzIwMjUvVC80NjkxNzMvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iSU9OSVEgNSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NSA5NDggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjU0IDIwOSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV81LTIwMjUuaHRtbCI+SU9OSVEgNSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMDg0NzUwMjQ4IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzFkZSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzI5OCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJJT05JUSA1IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvSU9OSVEgNS8yMDI2L1QvNDgwNDYyL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IklPTklRIDUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTggNDQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj41NiA3MDkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI2Lmh0bWwiPklPTklRIDUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjk5MTkzNzE4NSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMxZTgiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNTU3ODYiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzVfTi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJJT05JUSA1IE4gMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9JT05JUSA1IE4vMjAyNS9ULzQ1NjQ3Mi9PcmFuZ2UvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJJT05JUSA1IE4gMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+ODEgMTQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj43NiAxNDggJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNV9OLTIwMjUuaHRtbCI+SU9OSVEgNSBOIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE1MjcyNzY1IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzFmMiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MTYwNCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfOS0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJJT05JUSA5IDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvSU9OSVEgOS8yMDI2L1QvNDc2MDY5L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IklPTklRIDkgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjMgMTk4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj42MSA0NTkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfOS0yMDI2Lmh0bWwiPklPTklRIDkgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTM3NDQ5ODM0IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzFmZCIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1OTk5MyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktS29uYS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJLb25hIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvS29uYS8yMDI1L1QvNDYxODg4L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IktvbmEgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MjkgMzk4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUtvbmEtMjAyNS5odG1sIj5Lb25hIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE4MTcxMjQ3NSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyMDYiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzI2MDEiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUtvbmEtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iS29uYSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL0tvbmEvMjAyNi9ULzQ3OTI3NS9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJLb25hIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjI5IDY5OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hLTIwMjYuaHRtbCI+S29uYSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMDY1MTk3MzgwIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzIwZSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDAwNyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMwNjUxOTczODAiPjxpbWcgYWx0PSJLb25hIMOpbGVjdHJpcXVlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvS29uYSBFbGVjdHJpYy8yMDI1L1QvNDYxOTMyL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IktvbmEgw6lsZWN0cmlxdWUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDkgNDQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj40MyAzNjEgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMwNjUxOTczODAiPktvbmEgw6lsZWN0cmlxdWUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzcyNDI3MDc2IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzIxNyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3Mzg0MSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9Ijc3MjQyNzA3NiI+PGltZyBhbHQ9IktvbmEgw6lsZWN0cmlxdWUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9Lb25hIEVsZWN0cmljLzIwMjYvVC80ODE0NDYvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iS29uYSDDqWxlY3RyaXF1ZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NiA5NDggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjM4IDM2MSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hX0VsZWN0cmljLTIwMjYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNzcyNDI3MDc2Ij5Lb25hIMOpbGVjdHJpcXVlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ijg5ODY0NzY2MSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyMjAiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjE5OTgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLU5FWE8tMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTkVYTyAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL05FWE8vMjAyNS9ULzQ2NDM3My9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJORVhPIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjc1IDQ0OSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1ORVhPLTIwMjUuaHRtbCI+TkVYTyAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMTQ2NDEwNTA2IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzIyOSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI1NTM5NyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGUtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iUGFsaXNhZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9QYWxpc2FkZS8yMDI1L1QvNDYwNTc2L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlBhbGlzYWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjUzIDQ5OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NTIgOTk4ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlLTIwMjUuaHRtbCI+UGFsaXNhZGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTA1NzkxMTgxMSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyMzEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzMxMDQiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlBhbGlzYWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvUGFsaXNhZGUvMjAyNi9ULzQ4MDE4Ni9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJQYWxpc2FkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NiA2OTggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGUtMjAyNi5odG1sIj5QYWxpc2FkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMjg4NTkwODM1IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzIzOSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzExNiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGVfSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlBhbGlzYWRlIGh5YnJpZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9QYWxpc2FkZSBIeWJyaWQvMjAyNi9ULzQ4MDI5Ny9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJQYWxpc2FkZSBoeWJyaWRlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjYzIDQ5OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1QYWxpc2FkZV9IeWJyaWQtMjAyNi5odG1sIj5QYWxpc2FkZSBoeWJyaWRlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI4ODc2MzkxMDciIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMjQyIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYxMDAzIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1TYW50YV9GZS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTYW50YSBGZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1NhbnRhIEZlLzIwMjUvVC80NjMyODUvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iU2FudGEgRmUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTAgOTk4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj41MCA0OTggJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfRmUtMjAyNS5odG1sIj5TYW50YSBGZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI1NTQxMzkzNjIiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMjRiIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYxMDA2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1TYW50YV9GZV9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU2FudGEgRmUgaHlicmlkZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1NhbnRhIEZlIEh5YnJpZC8yMDI1L1QvNDYzMjg5L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlNhbnRhIEZlIGh5YnJpZGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDUgNDk4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj40NCA5OTggJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfRmVfSHlicmlkLTIwMjUuaHRtbCI+U2FudGEgRmUgaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxNTAyMTkyNzAiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMjUzIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczMTA1Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1TYW50YV9GZV9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU2FudGEgRmUgaHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1NhbnRhIEZlIEh5YnJpZC8yMDI2L1QvNDgwMTg5L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlNhbnRhIEZlIGh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDYgNzk4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0ZlX0h5YnJpZC0yMDI2Lmh0bWwiPlNhbnRhIEZlIGh5YnJpZGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjIxMTkwNTM3NCIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyNWMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAwMDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJUdWNzb24gMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9UdWNzb24vMjAyNS9ULzQ2MTkxMy9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJUdWNzb24gMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzcgNjQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbi0yMDI1Lmh0bWwiPlR1Y3NvbiAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxMTE1NTE3NDM5IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzI2MyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzM5OCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlR1Y3NvbiAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1R1Y3Nvbi8yMDI2L1QvNDgwNTc4L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlR1Y3NvbiAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zOCAwNDggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uLTIwMjYuaHRtbCI+VHVjc29uIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIxNTgzOTU5MTUiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMjZiIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYwMDEwIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlR1Y3NvbiBoeWJyaWRlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvVHVjc29uIEh5YnJpZC8yMDI1L1QvNDYxOTQxL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlR1Y3NvbiBoeWJyaWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ2IDM0OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fSHlicmlkLTIwMjUuaHRtbCI+VHVjc29uIGh5YnJpZGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTUwNzYwNTU1MiIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyNzMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzMzOTkiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iVHVjc29uIGh5YnJpZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9UdWNzb24gSHlicmlkLzIwMjYvVC80ODU2NzUvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iVHVjc29uIGh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDYgNzQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9IeWJyaWQtMjAyNi5odG1sIj5UdWNzb24gaHlicmlkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyMTg0ODkxMzM3IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzI3YiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDAwOSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1R1Y3NvbiBQbHVnX0luIEh5YnJpZC8yMDI1L1QvNDYxOTQwL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij41NSA4NDggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjUxIDQxNCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIj5UdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjA1NjAyOTQyNSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyODMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzM0MDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJUdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9UdWNzb24gUGx1Z19JbiBIeWJyaWQvMjAyNi9ULzQ4MDU2NC9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJUdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTYgMjQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj41MSA1NjQgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uX1BsdWdfSW5fSHlicmlkLTIwMjYuaHRtbCI+VHVjc29uIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjQyNTE0ODM2MDAiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMjhjIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYxMDExIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1WZW51ZS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJWZW51ZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1ZlbnVlLzIwMjUvVC80NjMzNTIvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iVmVudWUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MjQgMjQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVZlbnVlLTIwMjUuaHRtbCI+VmVudWUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjI0NjAxNDM1OSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyOTQiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzMxMTciPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVZlbnVlLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlZlbnVlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvVmVudWUvMjAyNi9ULzQ4MDMwMC9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJWZW51ZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4yNCA5NDggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjI0IDQ0OCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1WZW51ZS0yMDI2Lmh0bWwiPlZlbnVlIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfU0VEQU4iIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMmU2IiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvYXV0b3MuaHRtbCI+Q29tcGFjdGVzIC8gQmVybGluZXM8L2E+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSJORVdfU0VEQU5fSHl1bmRhaSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyZTQiIGNsYXNzPSJmaXJzdEl0ZW0gbGFzdEl0ZW0gaGFzU3ViIGhhc0ltZyI+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSIzOTQxNjU3MzM4IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzJhOSIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAzMDIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iRWxhbnRyYSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL0VsYW50cmEvMjAyNS9ULzQ2MjU4NC9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJFbGFudHJhIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjI1IDM5OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+MjQgMzk4ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNS5odG1sIj5FbGFudHJhIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjE2NTMyOTI5NDQiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMmFmIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczODE0Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVsYW50cmEgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9FbGFudHJhLzIwMjYvVC80ODEyNTEvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iRWxhbnRyYSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4yNSA3OTggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjI0IDc5OCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhLTIwMjYuaHRtbCI+RWxhbnRyYSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzNjg0NTMwOTE1IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzJiNSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDM5NSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktRWxhbnRyYV9OLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVsYW50cmEgTiAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL0VsYW50cmEgTi8yMDI1L1QvNDYyNzAwL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IkVsYW50cmEgTiAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40MiA5OTggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjQxIDk5OCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX04tMjAyNS5odG1sIj5FbGFudHJhIE4gMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjM0MzQ4MDI1OSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyYmEiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzMxMTUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfTi0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFbGFudHJhIE4gMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9FbGFudHJhIE4vMjAyNi9ULzQ4MDI5My9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJFbGFudHJhIE4gMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDMgNzQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj40MiA3NDggJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktRWxhbnRyYV9OLTIwMjYuaHRtbCI+RWxhbnRyYSBOIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIyMTI4NjUwNzQiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMmMwIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjYwNDA2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFbGFudHJhIGh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9FbGFudHJhIEh5YnJpZC8yMDI1L1QvNDYyNzA2L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IkVsYW50cmEgaHlicmlkZSAyMDI1IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zMyA4OTggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjMyIDg5OCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI1Lmh0bWwiPkVsYW50cmEgaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSI0NTkwNzAwMDIiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMmM2IiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczODE1Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJFbGFudHJhIGh5YnJpZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9FbGFudHJhIEh5YnJpZC8yMDI2L1QvNDgxMjYwL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IkVsYW50cmEgaHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij4zNCAyOTggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjMzIDI5OCAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI2Lmh0bWwiPkVsYW50cmEgaHlicmlkZSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNjQ3NjMxMjIzIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzJjYyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDUwMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJJT05JUSA2IDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvSU9OSVEgNi8yMDI1L1QvNDYyODI4L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IklPTklRIDYgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTcgOTQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj40NSAyMDkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNi0yMDI1Lmh0bWwiPklPTklRIDYgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjM2NjE1MzYzOCIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyZDMiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjE4MDAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVNvbmF0YS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTb25hdGEgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9Tb25hdGEvMjAyNS9ULzQ2NDA4NC9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJTb25hdGEgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzUgOTczICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj4zNSA0NzMgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktU29uYXRhLTIwMjUuaHRtbCI+U29uYXRhIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjEyODU3NjIzMTEiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMmRhIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczMDE3Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Tb25hdGEtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU29uYXRhIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvU29uYXRhLzIwMjYvVC80ODAxMzQvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iU29uYXRhIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM4IDk3MyAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Tb25hdGEtMjAyNi5odG1sIj5Tb25hdGEgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjA0NDQ0NDMwNCIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyZGYiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzMwMTgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVNvbmF0YV9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iU29uYXRhIGh5YnJpZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9Tb25hdGEgSHlicmlkLzIwMjYvVC80ODAxMzYvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iU29uYXRhIGh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+MzkgMDczICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVNvbmF0YV9IeWJyaWQtMjAyNi5odG1sIj5Tb25hdGEgaHlicmlkZSAyMDI2PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iTkVXX0hZQlJJRCIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzMzYiIGNsYXNzPSJoYXNTdWIiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeWJyaWRlcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVdfSFlCUklEIj5IeWJyaWRlczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19IWUJSSURfSHl1bmRhaSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzMzMiIGNsYXNzPSJmaXJzdEl0ZW0gbGFzdEl0ZW0gaGFzU3ViIGhhc0ltZyI+PHVsIGNsYXNzPSJzdWIiPjxsaSBkYXRhLWlkPSIyMjEyODY1MDc0IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzJlZiIgY2xhc3M9ImZpcnN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjA0MDYiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVsYW50cmEgaHlicmlkZSAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL0VsYW50cmEgSHlicmlkLzIwMjUvVC80NjI3MDYvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iRWxhbnRyYSBoeWJyaWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjMzIDg5OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+MzIgODk4ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfSHlicmlkLTIwMjUuaHRtbCI+RWxhbnRyYSBoeWJyaWRlIDIwMjU8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjQ1OTA3MDAwMiIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMyZjciIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzM4MTUiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IkVsYW50cmEgaHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL0VsYW50cmEgSHlicmlkLzIwMjYvVC80ODEyNjAvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iRWxhbnRyYSBoeWJyaWRlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM0IDI5OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+MzMgMjk4ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfSHlicmlkLTIwMjYuaHRtbCI+RWxhbnRyYSBoeWJyaWRlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIyODg1OTA4MzUiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMzAwIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczMTE2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1QYWxpc2FkZV9IeWJyaWQtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iUGFsaXNhZGUgaHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1BhbGlzYWRlIEh5YnJpZC8yMDI2L1QvNDgwMjk3L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlBhbGlzYWRlIGh5YnJpZGUgMjAyNiIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NjMgNDk4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlX0h5YnJpZC0yMDI2Lmh0bWwiPlBhbGlzYWRlIGh5YnJpZGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNTU0MTM5MzYyIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzMwYSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MTAwNiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfRmVfSHlicmlkLTIwMjUuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlNhbnRhIEZlIGh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9TYW50YSBGZSBIeWJyaWQvMjAyNS9ULzQ2MzI4OS9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJTYW50YSBGZSBoeWJyaWRlIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ1IDQ5OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NDQgOTk4ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0ZlX0h5YnJpZC0yMDI1Lmh0bWwiPlNhbnRhIEZlIGh5YnJpZGUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTUwMjE5MjcwIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzMxMyIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzEwNSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfRmVfSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlNhbnRhIEZlIGh5YnJpZGUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9TYW50YSBGZSBIeWJyaWQvMjAyNi9ULzQ4MDE4OS9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJTYW50YSBGZSBoeWJyaWRlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjQ2IDc5OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1TYW50YV9GZV9IeWJyaWQtMjAyNi5odG1sIj5TYW50YSBGZSBoeWJyaWRlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjIwNDQ0NDQzMDQiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMzFiIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjczMDE4Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Tb25hdGFfSHlicmlkLTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IlNvbmF0YSBoeWJyaWRlIDIwMjYiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvU29uYXRhIEh5YnJpZC8yMDI2L1QvNDgwMTM2L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlNvbmF0YSBoeWJyaWRlIDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjM5IDA3MyAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Tb25hdGFfSHlicmlkLTIwMjYuaHRtbCI+U29uYXRhIGh5YnJpZGUgMjAyNjwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjE1ODM5NTkxNSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzMjQiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjAwMTAiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9IeWJyaWQtMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iVHVjc29uIGh5YnJpZGUgMjAyNSIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9UdWNzb24gSHlicmlkLzIwMjUvVC80NjE5NDEvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iVHVjc29uIGh5YnJpZGUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDYgMzQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9IeWJyaWQtMjAyNS5odG1sIj5UdWNzb24gaHlicmlkZSAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIxNTA3NjA1NTUyIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzMyYyIgY2xhc3M9Imxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3MzM5OSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uX0h5YnJpZC0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJUdWNzb24gaHlicmlkZSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL1R1Y3NvbiBIeWJyaWQvMjAyNi9ULzQ4NTY3NS9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJUdWNzb24gaHlicmlkZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NiA3NDggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uX0h5YnJpZC0yMDI2Lmh0bWwiPlR1Y3NvbiBoeWJyaWRlIDIwMjY8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjxsaSBkYXRhLWlkPSJORVdfRUxFQ1RSSUMiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMzg4IiBjbGFzcz0iaGFzU3ViIj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvZWxlY3RyaXF1ZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJORVdfRUxFQ1RSSUMiPsOJbGVjdHJpcXVlczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19FTEVDVFJJQ19IeXVuZGFpIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzM4NSIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjQwOTczODIwODIiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMzQwIiBjbGFzcz0iZmlyc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2NTgwMCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJJT05JUSA1IDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvSU9OSVEgNS8yMDI1L1QvNDY5MTczL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IklPTklRIDUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTUgOTQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj41NCAyMDkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI1Lmh0bWwiPklPTklRIDUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMjA4NDc1MDI0OCIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzNDkiIGNsYXNzPSJoYXNJbWciIGRhdGEtbW9kZWxpZD0iNzMyOTgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzUtMjAyNi5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iSU9OSVEgNSAyMDI2IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL0lPTklRIDUvMjAyNi9ULzQ4MDQ2Mi9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJJT05JUSA1IDIwMjYiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjU4IDQ0OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NTYgNzA5ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzUtMjAyNi5odG1sIj5JT05JUSA1IDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IjI5OTE5MzcxODUiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMzUxIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjU1Nzg2Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV81X04tMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iSU9OSVEgNSBOIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvSU9OSVEgNSBOLzIwMjUvVC80NTY0NzIvT3JhbmdlL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iSU9OSVEgNSBOIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjgxIDE0OCAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjxzcGFuIGNsYXNzPSJwcmljZV9wcm9tbyI+NzYgMTQ4ICQ8L3NwYW4+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzVfTi0yMDI1Lmh0bWwiPklPTklRIDUgTiAyMDI1PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIyNjQ3NjMxMjIzIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzM1YSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDUwMiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNi0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJJT05JUSA2IDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvSU9OSVEgNi8yMDI1L1QvNDYyODI4L1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IklPTklRIDYgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NTcgOTQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj40NSAyMDkgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNi0yMDI1Lmh0bWwiPklPTklRIDYgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iMTUyNzI3NjUiIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMzYzIiBjbGFzcz0iaGFzSW1nIiBkYXRhLW1vZGVsaWQ9IjcxNjA0Ij48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV85LTIwMjYuaHRtbCIgY2xhc3M9ImltZ0xpbmsgaXNCb2xkICI+PGltZyBhbHQ9IklPTklRIDkgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9JT05JUSA5LzIwMjYvVC80NzYwNjkvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iSU9OSVEgOSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij42MyAxOTggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjYxIDQ1OSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV85LTIwMjYuaHRtbCI+SU9OSVEgOSAyMDI2PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSIzMDY1MTk3MzgwIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzM2YiIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MDAwNyI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMwNjUxOTczODAiPjxpbWcgYWx0PSJLb25hIMOpbGVjdHJpcXVlIDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvS29uYSBFbGVjdHJpYy8yMDI1L1QvNDYxOTMyL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IktvbmEgw6lsZWN0cmlxdWUgMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDkgNDQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PHNwYW4gY2xhc3M9InByaWNlX3Byb21vIj40MyAzNjEgJDwvc3Bhbj48L3NwYW4+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI1Lmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IjMwNjUxOTczODAiPktvbmEgw6lsZWN0cmlxdWUgMjAyNTwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzcyNDI3MDc2IiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzM3NSIgY2xhc3M9Imhhc0ltZyIgZGF0YS1tb2RlbGlkPSI3Mzg0MSI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI2Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiIGRhdGEtbWVudS10cmFuc2xhdGU9Ijc3MjQyNzA3NiI+PGltZyBhbHQ9IktvbmEgw6lsZWN0cmlxdWUgMjAyNiIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvSHl1bmRhaS9Lb25hIEVsZWN0cmljLzIwMjYvVC80ODE0NDYvUmVkL3Byb2ZpbGUucG5nP2NiPTY5ZTk0YzZjNGM5ZDciIGVycm9yaW1nPSIvL2ltZy5kMmNtZWRpYS5jYS9jYXJtYWtlcy9oeXVuZGFpX2MucG5nIiB0aXRsZT0iS29uYSDDqWxlY3RyaXF1ZSAyMDI2IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9hPjxzcGFuIGNsYXNzPSJwcmljZSI+PHNwYW4gY2xhc3M9InByaWNlX3RleHQiPsOgIHBhcnRpciBkZTwvc3Bhbj48c3BhbiBjbGFzcz0icHJpY2VfYW10Ij40NiA5NDggJDwvc3Bhbj48aW1nIGNsYXNzPSJwcmljZS1zY3JhdGNoIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL3JlZC1saW5lLXRpbnkucG5nIiBhbHQ9InJlZCBsaW5lIHRpbnkiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iPjM4IDM2MSAkPC9zcGFuPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hX0VsZWN0cmljLTIwMjYuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iNzcyNDI3MDc2Ij5Lb25hIMOpbGVjdHJpcXVlIDIwMjY8L2E+PC9saT4KPGxpIGRhdGEtaWQ9Ijg5ODY0NzY2MSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMzN2QiIGNsYXNzPSJsYXN0SXRlbSBoYXNJbWciIGRhdGEtbW9kZWxpZD0iNjE5OTgiPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLU5FWE8tMjAyNS5odG1sIiBjbGFzcz0iaW1nTGluayBpc0JvbGQgIj48aW1nIGFsdD0iTkVYTyAyMDI1IiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9IeXVuZGFpL05FWE8vMjAyNS9ULzQ2NDM3My9SZWQvcHJvZmlsZS5wbmc\/Y2I9NjllOTRjNmM0YzlkNyIgZXJyb3JpbWc9Ii8vaW1nLmQyY21lZGlhLmNhL2Nhcm1ha2VzL2h5dW5kYWlfYy5wbmciIHRpdGxlPSJORVhPIDIwMjUiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2E+PHNwYW4gY2xhc3M9InByaWNlIj48c3BhbiBjbGFzcz0icHJpY2VfdGV4dCI+w6AgcGFydGlyIGRlPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmljZV9hbXQiPjc1IDQ0OSAkPC9zcGFuPjxpbWcgY2xhc3M9InByaWNlLXNjcmF0Y2ggbGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvcmVkLWxpbmUtdGlueS5wbmciIGFsdD0icmVkIGxpbmUgdGlueSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvc3Bhbj48YSBocmVmPSI\/cGF0aD0\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1ORVhPLTIwMjUuaHRtbCI+TkVYTyAyMDI1PC9hPjwvbGk+CjwvdWw+PC9saT4KPC91bD48L2xpPgo8bGkgZGF0YS1pZD0iTkVXX1RSVUNLIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzM5OCIgY2xhc3M9Imxhc3RJdGVtIGhhc1N1YiI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL2NhbWlvbnMuaHRtbCI+Q2FtaW9uczwvYT48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9Ik5FV19UUlVDS19IeXVuZGFpIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzM5NiIgY2xhc3M9ImZpcnN0SXRlbSBsYXN0SXRlbSBoYXNTdWIgaGFzSW1nIj48dWwgY2xhc3M9InN1YiI+PGxpIGRhdGEtaWQ9IjI5MTA1ODQ1NDciIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMzkxIiBjbGFzcz0iZmlyc3RJdGVtIGxhc3RJdGVtIGhhc0ltZyIgZGF0YS1tb2RlbGlkPSI2MTYwMCI+PGEgaHJlZj0iP3BhdGg9P3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfQ3J1ei0yMDI1Lmh0bWwiIGNsYXNzPSJpbWdMaW5rIGlzQm9sZCAiPjxpbWcgYWx0PSJTYW50YSBDcnV6IDIwMjUiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL0h5dW5kYWkvU2FudGEgQ3J1ei8yMDI1L1QvNDYzODczL1JlZC9wcm9maWxlLnBuZz9jYj02OWU5NGM2YzRjOWQ3IiBlcnJvcmltZz0iLy9pbWcuZDJjbWVkaWEuY2EvY2FybWFrZXMvaHl1bmRhaV9jLnBuZyIgdGl0bGU9IlNhbnRhIENydXogMjAyNSIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPjwvYT48c3BhbiBjbGFzcz0icHJpY2UiPjxzcGFuIGNsYXNzPSJwcmljZV90ZXh0Ij7DoCBwYXJ0aXIgZGU8L3NwYW4+PHNwYW4gY2xhc3M9InByaWNlX2FtdCI+NDQgOTQ4ICQ8L3NwYW4+PGltZyBjbGFzcz0icHJpY2Utc2NyYXRjaCBsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9oeXVuZGFpcmVwZW50aWdueS5jb20vL2ltYWdlcy9yZWQtbGluZS10aW55LnBuZyIgYWx0PSJyZWQgbGluZSB0aW55IiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9zcGFuPjxhIGhyZWY9Ij9wYXRoPT9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0NydXotMjAyNS5odG1sIj5TYW50YSBDcnV6IDIwMjU8L2E+PC9saT4KPC91bD48L2xpPgo8L3VsPjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEIiBpZD0iTWFpbk1lbnVfVVNFRCIgY2xhc3M9InRvcCBmaXJzdE1lbnUgaGFzSXRlbXMiPjxhIGNsYXNzPSJ0b3BfbGluayIgaHJlZj0iP3BhdGg9L2ludmVudGFpcmUuaHRtbCI+SW52ZW50YWlyZTwvYT48dWwgY2xhc3M9InN1YiI+CjxsaSBkYXRhLWlkPSJVU0VEX05FV0lOViIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMxNTQiIGNsYXNzPSJmaXJzdEl0ZW0iPjxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9pbnZlbnRhaXJlL3JlY2hlcmNoZS5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEX05FV0lOViI+VsOpaGljdWxlcyBuZXVmczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iR1BfMTQ4NzkxNmE3OGJhMDgwIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzE2OSI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uLWNlcnRpZmllLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IkdQXzE0ODc5MTZhNzhiYTA4MCI+UXUnZXN0LWNlIHF1ZSBsJ29jY2FzaW9uIGNlcnRpZmnDqWU\/PC9hPjwvbGk+CjxsaSBkYXRhLWlkPSJVU0VEX0RFTU8iIGlkPSJNYWluTWVudV82OWU5NGM3MzkzMTcyIj48YSBocmVmPSI\/cGF0aD0vZGVtb25zdHJhdGV1cnMvcmVjaGVyY2hlLmh0bWwiIGRhdGEtbWVudS10cmFuc2xhdGU9IlVTRURfREVNTyI+VsOpaGljdWxlcyBkw6ltb25zdHJhdGV1cnM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0VSVF9DQVJTIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzE3OCI+PGEgaHJlZj0iP3BhdGg9L29jY2FzaW9uL2NlcnRpZmllcy5odG1sIiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEX0NFUlRfQ0FSUyI+VsOpaGljdWxlcyBkJ29jY2FzaW9uIGNlcnRpZmnDqXM8L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQ0FSUyIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMxN2UiPjxhIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9yZWNoZXJjaGUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVVNFRF9DQVJTIj5Ww6loaWN1bGVzIGQnb2NjYXNpb248L2E+PC9saT4KPGxpIGRhdGEtaWQ9IlVTRURfQUxMSU5WIiBpZD0iTWFpbk1lbnVfNjllOTRjNzM5MzE4MyI+PGEgaHJlZj0iP3BhdGg9L2ludmVudGFpcmUuaHRtbCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iVVNFRF9BTExJTlYiPlZvaXIgdG91cyBsZXMgdsOpaGljdWxlczwvYT48L2xpPgo8bGkgZGF0YS1pZD0iNzAxMmY2MGEtMzcyMC0xMTQ3LTcwYWItZSIgaWQ9Ik1haW5NZW51XzY5ZTk0YzczOTMxODkiIGNsYXNzPSJsYXN0SXRlbSI+PGEgaHJlZj0iP3BhdGg9L2VsYW50cmEtbi10Y3ItMjAyNi5odG1sIj5FbGFudHJhIE4gVENSIDIwMjY8L2E+PC9saT4KPC91bD4KPC9saT4KCgkJCQkJCTwvdWw+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImNsciI+PC9kaXY+CgkJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wcmVmZXJlciIgbmFtZT0idG9wcmVmZXJlciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wc2l0ZWlkIiBuYW1lPSJ0b3BzaXRlaWQiIHZhbHVlPSIyNTEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGNhcmlkIiBuYW1lPSJ0b3BjYXJpZCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wY2FyaWRNdWx0aXN0ZXBGb3JtIiBuYW1lPSJ0b3BjYXJpZE11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImVNb2RlbCIgbmFtZT0iZU1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzdHlsZWlkIiBuYW1lPSIiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1ha2UiIG5hbWU9InBvcHVwbWFrZSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtb2RlbCIgbmFtZT0icG9wdXBtb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHllYXIiIG5hbWU9InBvcHVweWVhciIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB0cmltIiBuYW1lPSJwb3B1cHRyaW0iIHZhbHVlPSJ7JFBPUFVQVFJJTX0iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwc3RvY2tudW1iZXIiIG5hbWU9InBvcHVwc3RvY2tudW1iZXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZG1ha2UiIG5hbWU9Imxhc3R2aWV3ZWRtYWtlIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkbW9kZWwiIG5hbWU9Imxhc3R2aWV3ZWRtb2RlbCIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHllYXIiIG5hbWU9Imxhc3R2aWV3ZWR5ZWFyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkdHJpbSIgbmFtZT0ibGFzdHZpZXdlZHRyaW0iIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRzdG9ja251bWJlciIgbmFtZT0ibGFzdHZpZXdlZHN0b2NrbnVtYmVyIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BkZXBsb3ltZW50dHlwZSIgbmFtZT0idG9wZGVwbG95bWVudHR5cGUiIHZhbHVlPSJsaXZlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZXJ2aWNlRW1haWwiIG5hbWU9InNlcnZpY2VFbWFpbCIgdmFsdWU9ImExM2EwNTU4MzlkYTY2NWJkMGFjYzliOWI4NzNiZDVjfDMyNTU2Njk4ODYiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VBZGZFbWFpbCIgbmFtZT0ic2VydmljZUFkZkVtYWlsIiB2YWx1ZT0iMGYwMTZkOWFjYmUwNmYzOGQzYjZiOGE5YWY4ZDY3NzN8MzI1NTY2OTg4NiI+PHRleHRhcmVhIGlkPSJkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIgdGl0bGU9IkxpbmsgUnVsZXMiIGNsYXNzPSJoaWRkZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4jI0xJTktSVUxFUyMjPC90ZXh0YXJlYT48aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgaWQ9InRyYWRlSW5CYXJTdGlja3lCb3R0b20iPgo8IS0tU1RBUlRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+CgogICAgICAgICAgICA8L2Rpdj4gPCEtLSB3dWxsIHdpZHRoIC0gIGNsb3NlIG1haW5EaXYgaGVyZSAtLT4KICAgICAgICAgICAgPGRpdiBpZD0idHJhZGVJbkJhciIgY2xhc3M9ImJveC1sYyIgc3R5bGU9ImRpc3BsYXk6YmxvY2siPgogICAgICAgICAgICA8ZGl2IGlkPSJ0cmFkZUluQmFyVyIgY2xhc3M9ImZsZXgtYm94IGZsZXgtZXF1YWwgYWxpZ24tY2VudGVyIj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RXICI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdEEiPgoKCQkJCTxzZWxlY3QgY2xhc3M9InRyYWRpblNlbGVjdCIgbmFtZT0idHJhZGluTWFrZSIgaWQ9InRyYWRpbk1ha2UiIHRpdGxlPSJNYXJxdWUiIGFyaWEtbGFiZWw9Ik1hcnF1ZSI+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5Nb24gdsOpaGljdWxlPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQWN1cmEiPkFjdXJhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iQWxmYSBSb21lbyI+QWxmYSBSb21lbzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkF1ZGkiPkF1ZGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCTVciPkJNVzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkJyaWdodERyb3AiPkJyaWdodERyb3A8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJCdWljayI+QnVpY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDYWRpbGxhYyI+Q2FkaWxsYWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDaGV2cm9sZXQiPkNoZXZyb2xldDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkNocnlzbGVyIj5DaHJ5c2xlcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRvZGdlIj5Eb2RnZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZJQVQiPkZJQVQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJGb3JkIj5Gb3JkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iR2VuZXNpcyI+R2VuZXNpczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkdNQyI+R01DPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSG9uZGEiPkhvbmRhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSFVNTUVSIj5IVU1NRVI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJIeXVuZGFpIj5IeXVuZGFpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSU5FT1MiPklORU9TPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSU5GSU5JVEkiPklORklOSVRJPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSXN1enUiPklzdXp1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iSmFndWFyIj5KYWd1YXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJKZWVwIj5KZWVwPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iS2lhIj5LaWE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJMYW5kIFJvdmVyIj5MYW5kIFJvdmVyPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTGV4dXMiPkxleHVzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTGluY29sbiI+TGluY29sbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ikx1Y2lkIj5MdWNpZDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1hc2VyYXRpIj5NYXNlcmF0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1hemRhIj5NYXpkYTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1lcmNlZGVzLUJlbnoiPk1lcmNlZGVzLUJlbno8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJNZXJjdXJ5Ij5NZXJjdXJ5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iTUlOSSI+TUlOSTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik1pdHN1YmlzaGkiPk1pdHN1YmlzaGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJOaXNzYW4iPk5pc3Nhbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ik9sZHNtb2JpbGUiPk9sZHNtb2JpbGU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQbHltb3V0aCI+UGx5bW91dGg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQb2xlc3RhciI+UG9sZXN0YXI8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJQb250aWFjIj5Qb250aWFjPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUG9yc2NoZSI+UG9yc2NoZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlJhbSI+UmFtPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iUml2aWFuIj5SaXZpYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTYWFiIj5TYWFiPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iU2F0dXJuIj5TYXR1cm48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTY2lvbiI+U2Npb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzbWFydCI+c21hcnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJTdWJhcnUiPlN1YmFydTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlN1enVraSI+U3V6dWtpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVGVzbGEiPlRlc2xhPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVG95b3RhIj5Ub3lvdGE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJWaW5GYXN0Ij5WaW5GYXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iVm9sa3N3YWdlbiI+Vm9sa3N3YWdlbjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IlZvbHZvIj5Wb2x2bzwvb3B0aW9uPgogICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0VyAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RBIj4KICAgICAgICAgICAgCTxzZWxlY3QgY2xhc3M9InRyYWRpblNlbGVjdCIgbmFtZT0idHJhZGluWWVhciIgaWQ9InRyYWRpblllYXIiIHRpdGxlPSJBbm7DqWUiIGFyaWEtbGFiZWw9IkFubsOpZSI+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj48L29wdGlvbj4KICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICA8L2Rpdj48L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0VyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWRpblNlbGVjdEEiPgoKCQkJCTxzZWxlY3QgY2xhc3M9InRyYWRpblNlbGVjdCIgbmFtZT0idHJhZGluTW9kZWwiIGlkPSJ0cmFkaW5Nb2RlbCIgdGl0bGU9Ik1vZMOobGUiIGFyaWEtbGFiZWw9Ik1vZMOobGUiPgogICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFkaW5TZWxlY3RXIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhZGluU2VsZWN0QSI+CiAgICAgICAgICAgIAk8c2VsZWN0IGNsYXNzPSJ0cmFkaW5TZWxlY3QiIG5hbWU9InRyYWRpblRyaW0iIGlkPSJ0cmFkaW5UcmltIiB0aXRsZT0iVmVyc2lvbiIgYXJpYS1sYWJlbD0iVmVyc2lvbiI+CiAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+PC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRyYWRlSW5CYXJfYnRuIGZsZXgtYm94IGFsaWduLWNlbnRlciIgb25jbGljaz0iZ2FUcmFjaygnYy5fdHJhY2tFdmVudCcsICdDbGlxdWVzIEJhcnJlIHNvdXMgbGUgbWVudScsICfDiXZhbHVleiBtb24gw6ljaGFuZ2UhJywgJ05ldWYnLCAxKTsiPgoKCQkJCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmEgZmEtc2VhcmNoIC1ibG9jayAtbGVmdCAtbWwxMCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ii1ibG9jayAtbGVmdCAtdzE0MCI+ICDDiXZhbHVleiBtb24gw6ljaGFuZ2UhPC9kaXY+CiAgICAgICAgICAgIDwvYnV0dG9uPjwvZGl2PjwvZGl2PgkJCgkJPGRpdiBpZD0iVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjYwMHB4O2hlaWdodDo2NTVweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc190cmFkZWluYmFycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6NDcwNTU5NTE3ZDk5MWUxY2JiYjJlMzY5MmNkNjAzMGYgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+SHl1bmRhaSBSZXBlbnRpZ255IHZvdXMgcmVtZXJjaWUgZCdhdm9pciBjb21tdW5pcXXDqSB2b3RyZSBkZW1hbmRlLiBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgc291cyBwZXUuPC9wPgogICAgICA8cCBjbGFzcz0ic2VydmljZVN1Y2Nlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YnI+TWVyY2kgcG91ciB2b3RyZSBkZW1hbmRlLiBVbiBtZW1icmUgZGUgbm90cmUgw6lxdWlwZSBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI5NDgxNjg5NTUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJDc3ZkQ0xlQmxGNFEtOUdQeEFNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMjA2ODI4NDEzMDk2NzgwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9Imh5dW5kYWlyZXBlbnRpZ255LmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9UcmFkZUluQmFyUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1LjwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjplMjVkNmNmYWIzOTI3ZDc4ZDllMmY1YTJlMzQ3NjAxNiAtLT4KCQkKDTwhLS0gVFJBREUgSU4gQkFSIE5FV0NBUlMgLS0+Cg0KPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCgkJCQkKCQkJPC9oZWFkZXI+CgkJPCEtLSBPUEVOIE1BSU5CT1hMQVlFUiAtLT4KCQk8ZGl2IGNsYXNzPSJNYWluQm94TGF5ZXIiPgoJCQkJCQk8IS0tIE9QRU4gTEVGVEJPWExBWUVSIC0tPgoJCQk8ZGl2IGlkPSJuZXdjYXJDb250YWluZXIiIGNsYXNzPSJsZWZ0X2JveCBMZWZ0Qm94TGF5ZXIiPgoJCQkJPCEtLSBPUEVOIEhJU1RPUlkgLS0+CgkJCQk8ZGl2IGlkPSJoaXN0b3J5RGl2IiBjbGFzcz0iT3V0ZXJCb3hMYXllciI+CgkJCQkJPGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciI+CgkJCQkJCQk8IS0tIE9QRU4gQlJFQURDUlVNQiAtLT4KCgk8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgoJewoJCSJAY29udGV4dCI6ICJodHRwczovL3NjaGVtYS5vcmciLAoJCSJAdHlwZSI6ICJCcmVhZGNydW1iTGlzdCIsCgkJIml0ZW1MaXN0RWxlbWVudCI6IFt7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MSwiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvaHl1bmRhaXJlcGVudGlnbnkuY29tXC8iLCJuYW1lIjoiQWNjdWVpbCJ9fSx7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MiwiaXRlbSI6eyJAaWQiOiJodHRwczpcL1wvaHl1bmRhaXJlcGVudGlnbnkuY29tXC9uZXVmc1wvbm91dmVhdS5odG1sIiwibmFtZSI6IlZcdTAwZTloaWN1bGVzIG5ldWZzIn19LHsiQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjozLCJpdGVtIjp7IkBpZCI6Imh0dHBzOlwvXC9IeXVuZGFpIiwibmFtZSI6Ikh5dW5kYWkifX1dCgl9Cgk8L3NjcmlwdD4KCgk8ZGl2IGlkPSJicmVhZGNydW1icyIgY2xhc3M9IkJSRENSTUJfMTU4NyI+CgkJCTxzcGFuPgoJCTxhIGhyZWY9Ij9wYXRoPS8iPkFjY3VlaWw8L2E+Cgk8L3NwYW4+PHNwYW4gY2xhc3M9Ii1waCI+wrs8L3NwYW4+CTxzcGFuPgoJCTxhIGhyZWY9Ij9wYXRoPS9uZXVmcy9ub3V2ZWF1Lmh0bWwiPlbDqWhpY3VsZXMgbmV1ZnM8L2E+Cgk8L3NwYW4+PHNwYW4gY2xhc3M9Ii1waCI+wrs8L3NwYW4+CTxzcGFuPgoJCTxzcGFuPkh5dW5kYWk8L3NwYW4+Cgk8L3NwYW4+Cgk8L2Rpdj4KCgk8IS0tIENMT1NFIEJSRUFEQ1JVTUIgLS0+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJCTwhLS0gQ0xPU0UgSElTVE9SWSAtLT4KCQkJCTwhLS0gT1BFTiBIRUFERVIgSU1BR0UgLS0+CgkJCQkJPGRpdiBpZD0idG9wQmFubmVySW1hZ2UiIGNsYXNzPSJORVdDQVJTLWNsZWFyIGZsZXgtY29sdW1uIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciIgc3R5bGU9ImFzcGVjdC1yYXRpbzoxMDAvMjA7bWFyZ2luLWJvdHRvbToxMHB4ICFpbXBvcnRhbnQ7IiBkYXRhLWludmNhdD0iYWxsIj4KCQkJPGltZyBjbGFzcz0ibGl2ZWxvYWQgIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIiBkYXRhLW90LWlnbm9yZT0iIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBzcmM9Imh0dHBzOi8vaHl1bmRhaXJlcGVudGlnbnkuY29tLy9pbWFnZXMvTmV3Q2FyUGFnZUltYWdlRHluL0hZVU5EQUklMjBfVkVOVUVfRlJfMTI1MC5qcGciIGFsdD0iIGggeSB1IG4gZCBhIGkgICB2IGUgbiB1IGUgIGYgciAxMjUwIj4KCTwvZGl2PgoJCgoJCQkJPCEtLSBDTE9TRSBIRUFERVIgSU1BR0UgLS0+CgkJCQk8ZGl2IGlkPSJ1bmRlckJhbm5lciI+PC9kaXY+CgkJCQk8IS0tIE9QRU4gT1VURVJCT1hMQVlFUiAtLT4KCQkJCTxkaXYgY2xhc3M9Ik91dGVyQm94TGF5ZXIiPgoJCQkJCTxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPjxoMSBjbGFzcz0iZGVmYXVsdCBIMV8xNjk0ICI+PGRpdj48ZGl2Pkh5dW5kYWkgbmV1dmVzIDIwMjUgJmFtcDsgMjAyNiDDoCB2ZW5kcmXCoDwvZGl2PjxkaXY+w6AgUmVwZW50aWdueSAoZW50cmUgTWFzY291Y2hlIGV0IE1vbnRyw6lhbCnCoDwvZGl2PjwvZGl2PjwvaDE+PC9kaXY+PGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciI+CSAgICAgICAgICAgIDwvZGl2Pgk8IS0tIE9QRU4gRklMVEVSTUFJTkJPWCAoJy5fX0xJTkVfXy4nKS0tPgoJPGRpdiBpZD0iZmlsdGVyTWFpbkJveCIgY2xhc3M9IklubmVyQm94TGF5ZXIgYmxhY2stdGV4dCI+CgkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZGaWx0ZXJPdXRlckJveCI+CgkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyQm94VGl0bGUiPgoJCQkJCQlSYWZmaW5leiB2b3RyZSByZWNoZXJjaGUgOgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj4KCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMyI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlR5cGUgZGUgY2Fycm9zc2VyaWU8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfY2FyIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9ImNhciIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX2NhciI+QXV0bzwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGNsYXNzPSJmaWx0ZXJDaGVjayBjYXRlZ29yeSIgaWQ9InNob3dDbGFzc190cnVjayIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJ0cnVjayIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX3RydWNrIj5DYW1pb248L2xhYmVsPjwvbGk+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+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjkgcmFuZ2Utc2xpZGVyIiBhdHRyLXByaWNlLW1pbj0iMjM0NDkiIGF0dHItcHJpY2UtbWF4PSI4MDk0OCI+PC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEgcmFuZ2Utc2xpZGVyLXJpZ2h0Ij5NYXg8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+Cgk8IS0tIENMT1NFIEZJTFRFUk1BSU5CT1ggKCcuX19MSU5FX18uJyktLT48IS0tIE9QRU4gQ0FURUdPUklFU0JPWFdSQVBQRVIgKDE5ODgpLS0+PGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciBkaXZDYXRlZ29yaWVzQm94V3JhcHBlciI+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA1MikgLS0+PGRpdiBpZD0iY2xhc3NjYXJfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5BdXRvcyBuZXV2ZXMgSHl1bmRhaSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBSZXBlbnRpZ255IChlbnRyZSBNYXNjb3VjaGUgZXQgTW9udHLDqWFsKTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfY2FyIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8xIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FbGFudHJhIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yNSA3OTg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MjIgOTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MjUgNzk4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI0IDc5ODwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxMjUxLDQ4MTI1Miw0ODEyNTMsNDgxMjU0LDQ4MTI1NSw0ODEyNTYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBFbGFudHJhIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9FbGFudHJhLzIwMjYvNDgxMjUxL1JlZC9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYS8yMDI2LzQ4MTI1MS9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4MTI1MSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIEVsYW50cmEgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktRWxhbnRyYS0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8yIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FbGFudHJhIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yNCA1OTk8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIyIDU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjQgNTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjIzIDU5OTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYyNTg0LDQ2MjU4NSw0NjI1ODYsNDYyNTg3LDQ2MjU4OCw0NjI1ODkiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBFbGFudHJhIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9FbGFudHJhLzIwMjUvNDYyNTg0L1JlZC9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYS8yMDI1LzQ2MjU4NC9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2MjU4NCZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIEVsYW50cmEgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktRWxhbnRyYS0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8zIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIE4gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktRWxhbnRyYV9OLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJFbGFudHJhIE4gMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FbGFudHJhIE4gMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQzIDc0ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0MCA5NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0MyA3NDgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDIgNzQ4PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBOIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDI5Myw0ODAyOTQsNDgwMjk1LDQ4MDI5NiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEVsYW50cmEgTiAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX04tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBFbGFudHJhIE4gMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0VsYW50cmFfTi8yMDI2LzQ4MDI5My9SZWQvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0VsYW50cmFfTi8yMDI2LzQ4MDI5My9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4MDI5MyZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIEVsYW50cmEgTiAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1FbGFudHJhX04tMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfNCI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xIDAwMDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgRWxhbnRyYSBOIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfTi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBOIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RWxhbnRyYSBOIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MiAxOTk8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQwIDE5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDIgMTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQxIDE5OTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEgTiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjI3MDAsNDYyNzAxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgRWxhbnRyYSBOIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfTi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIEVsYW50cmEgTiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYV9OLzIwMjUvNDYyNzAwL1JlZC9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYV9OLzIwMjUvNDYyNzAwL1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYyNzAwJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgRWxhbnRyYSBOIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUVsYW50cmFfTi0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl81Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTb25hdGEgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU29uYXRhLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJTb25hdGEgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Tb25hdGEgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM4IDk3Mzwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszNiAwOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgOTc1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszOCA5NzMmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU29uYXRhIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDEzNSw0ODAxMzQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTb25hdGEgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU29uYXRhLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgU29uYXRhIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9Tb25hdGEvMjAyNi80ODAxMzUvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODAxMzUmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBTb25hdGEgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktU29uYXRhLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY2FyXzYiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTb25hdGEgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU29uYXRhLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJTb25hdGEgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Tb25hdGEgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM1IDE3NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzMgMDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MSA5NzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNSAxNzQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzQgNjc0PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU29uYXRhIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NDA4NCw0NjQwODYsNDY0MDg1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgU29uYXRhIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNvbmF0YS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFNvbmF0YSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvU29uYXRhLzIwMjUvNDY0MDg0L1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDY0MDg0JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgU29uYXRhIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVNvbmF0YS0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc3N1dl9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPlZVUyBuZXVmcyBIeXVuZGFpIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIFJlcGVudGlnbnkgKGVudHJlIE1hc2NvdWNoZSBldCBNb250csOpYWwpPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19zdXYiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEtvbmEgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktS29uYS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iS29uYSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPktvbmEgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI5IDY5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyNiA3NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyOSA2OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iS29uYSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0NzkyNzUsNDc5Mjc3LDQ3OTI3Niw0NzkyNzgsNDc5Mjc5LDQ3OTI4MCw0NzkyODEsNDc5MjgyLDQ3OTI4MyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEtvbmEgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktS29uYS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIEtvbmEgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0tvbmEvMjAyNi80NzkyNzUvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NzkyNzUmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBLb25hIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUtvbmEtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgS29uYSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+S29uYSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjggNTk5PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyNiA0NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzI4IDU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTg4OCw0NjE4OTAsNDYxODg5LDQ2MTg5MSw0NjE4OTIsNDYxODk3LDQ2MTg5Myw0NjE4OTQsNDYxODk1LDQ2MTg5NiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEtvbmEgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktS29uYS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIEtvbmEgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0tvbmEvMjAyNS80NjE4ODgvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjE4ODgmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBLb25hIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUtvbmEtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgUGFsaXNhZGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGUtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlBhbGlzYWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+UGFsaXNhZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU2IDY5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1MyA2OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1NiA2OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iUGFsaXNhZGUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgwMTg2LDQ4MDE4OCw0ODAxODciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1QYWxpc2FkZS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFBhbGlzYWRlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9QYWxpc2FkZS8yMDI2LzQ4MDE4Ni9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ4MDE4NiZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFBhbGlzYWRlIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVBhbGlzYWRlLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzQiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1QYWxpc2FkZS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iUGFsaXNhZGUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5QYWxpc2FkZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTIgNjk5PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MCA0OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDY5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MiAxOTk8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJQYWxpc2FkZSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjA1NzYsNDU2MDE2LDQ1NjAxNyw0NTYwMTgsNDU2MDE5LDQ1NjAyMCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFBhbGlzYWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgUGFsaXNhZGUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1BhbGlzYWRlLzIwMjUvNDYwNTc2L1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYwNTc2JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgUGFsaXNhZGUgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktUGFsaXNhZGUtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNSI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNhbnRhIEZlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0ZlLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJTYW50YSBGZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNhbnRhIEZlIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MCAxOTk8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ3IDk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTAgMTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ5IDY5OTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlNhbnRhIEZlIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MzI4NSw0NjMyODYsNDYzMjg3LDQ2MzI4OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNhbnRhIEZlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0ZlLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgU2FudGEgRmUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1NhbnRhX0ZlLzIwMjUvNDYzMjg1L1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYzMjg1JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgU2FudGEgRmUgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktU2FudGFfRmUtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVHVjc29uIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHVjc29uIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOCAwNDg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzUgMDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzggMDQ4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlR1Y3NvbiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODA1NzgsNDgwNTgwLDQ4MDU3OSw0ODA1ODEiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBUdWNzb24gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgVHVjc29uIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9UdWNzb24vMjAyNi80ODA1NzgvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODA1NzgmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBUdWNzb24gMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktVHVjc29uLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzciPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFR1Y3NvbiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb24tMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlR1Y3NvbiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlR1Y3NvbiAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzYgODQ5PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNCA2OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM2IDg0OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxOTEzLDQ3ODIzNCw0NjE5MTQsNDc4MjM1LDQ2MTkxNSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFR1Y3NvbiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb24tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBUdWNzb24gMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1R1Y3Nvbi8yMDI1LzQ2MTkxMy9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2MTkxMyZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFR1Y3NvbiAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1UdWNzb24tMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfOCI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFZlbnVlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVZlbnVlLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJWZW51ZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlZlbnVlIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yNCA5NDg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MjEgOTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MjQgOTQ4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI0IDQ0ODwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlZlbnVlIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDMwMCw0ODAzMDEsNDgwMzAyLDQ4MDMwMyw0ODAzMDQsNDgwMzA1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVmVudWUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktVmVudWUtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBWZW51ZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvVmVudWUvMjAyNi80ODAzMDAvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODAzMDAmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBWZW51ZSAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1WZW51ZS0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl85Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBWZW51ZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1WZW51ZS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVmVudWUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5WZW51ZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjMgNDQ5PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyMSAyOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIzIDQ0OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJWZW51ZSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjMzNTIsNDYzMzUzLDQ2MzM1NCw0NjMzNTUsNDYzMzU2LDQ2MzM1NyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFZlbnVlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVZlbnVlLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgVmVudWUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1ZlbnVlLzIwMjUvNDYzMzUyL1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYzMzUyJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgVmVudWUgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktVmVudWUtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNjApLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA1MikgLS0+PGRpdiBpZD0iY2xhc3N0cnVja19jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkNhbWlvbnMgbmV1ZnMgSHl1bmRhaSAyMDI1PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgUmVwZW50aWdueSAoZW50cmUgTWFzY291Y2hlIGV0IE1vbnRyw6lhbCk8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3RydWNrIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNhbnRhIENydXogMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfQ3J1ei0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU2FudGEgQ3J1eiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNhbnRhIENydXogMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ0IDE0OTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgOTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAwNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NCAxNDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU2FudGEgQ3J1eiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjM4NzMsNDYzODc2LDQ2Mzg3NCw0NjM4NzUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTYW50YSBDcnV6IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0NydXotMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBTYW50YSBDcnV6IDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9TYW50YV9DcnV6LzIwMjUvNDYzODczL1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYzODczJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgU2FudGEgQ3J1eiAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1TYW50YV9DcnV6LTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzaHlicmlkX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+SHlicmlkZXMgKFNtYXJ0c3RyZWFtKSBuZXV2ZXMgSHl1bmRhaSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBSZXBlbnRpZ255IChlbnRyZSBNYXNjb3VjaGUgZXQgTW9udHLDqWFsKTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfaHlicmlkIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF8xIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBoeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RWxhbnRyYSBIeWJyaWQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM0IDI5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszMSA0OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszNCAyOTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzMgMjk4PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxMjYwLDQ4MTI2MSIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEVsYW50cmEgSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgRWxhbnRyYSBIeWJyaWQgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0VsYW50cmFfSHlicmlkLzIwMjYvNDgxMjYwL1JlZC9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYV9IeWJyaWQvMjAyNi80ODEyNjAvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODEyNjAmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBFbGFudHJhIEh5YnJpZCAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF8yIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgMDAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBoeWJyaWRlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RWxhbnRyYSBIeWJyaWQgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMzIDg5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszMSAwOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszMyA4OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzIgODk4PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYyNzA2LDQ2MjcwNyIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEVsYW50cmEgSHlicmlkIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfSHlicmlkLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgRWxhbnRyYSBIeWJyaWQgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0VsYW50cmFfSHlicmlkLzIwMjUvNDYyNzA2L1JlZC9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYV9IeWJyaWQvMjAyNS80NjI3MDYvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjI3MDYmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBFbGFudHJhIEh5YnJpZCAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGVfSHlicmlkLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJQYWxpc2FkZSBoeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+UGFsaXNhZGUgSHlicmlkIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MyA0OTg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NjAgNDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NjMgNDk4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlBhbGlzYWRlIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODAyOTcsNDgwMjk4LDQ4MDI5OSw0ODE1MjMiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGVfSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgUGFsaXNhZGUgSHlicmlkIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9QYWxpc2FkZV9IeWJyaWQvMjAyNi80ODAyOTcvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODAyOTcmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBQYWxpc2FkZSBIeWJyaWQgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktUGFsaXNhZGVfSHlicmlkLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzQiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNhbnRhIEZlIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1TYW50YV9GZV9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlNhbnRhIEZlIGh5YnJpZGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TYW50YSBGZSBIeWJyaWQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDc5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0MyA3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0NiA3OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU2FudGEgRmUgSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDE4OSw0ODAxOTAsNDgwMTkxLDQ4MDE5Miw0ODAxOTMiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTYW50YSBGZSBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfRmVfSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgU2FudGEgRmUgSHlicmlkIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9TYW50YV9GZV9IeWJyaWQvMjAyNi80ODAxODkvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODAxODkmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBTYW50YSBGZSBIeWJyaWQgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktU2FudGFfRmVfSHlicmlkLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzUiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTAwPC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTYW50YSBGZSBIeWJyaWQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfRmVfSHlicmlkLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJTYW50YSBGZSBoeWJyaWRlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U2FudGEgRmUgSHlicmlkIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NSA0OTg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDIgNDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDUgNDk4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ0IDk5ODwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlNhbnRhIEZlIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjMyODksNDYzMjkwIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgU2FudGEgRmUgSHlicmlkIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0ZlX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFNhbnRhIEZlIEh5YnJpZCAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvU2FudGFfRmVfSHlicmlkLzIwMjUvNDYzMjg5L1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYzMjg5JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgU2FudGEgRmUgSHlicmlkIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVNhbnRhX0ZlX0h5YnJpZC0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF82Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTb25hdGEgSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNvbmF0YV9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlNvbmF0YSBoeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U29uYXRhIEh5YnJpZCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzkgMDczPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM2IDE5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MSA5NzUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM5IDA3MyZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJTb25hdGEgSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDEzNiIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNvbmF0YSBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU29uYXRhX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFNvbmF0YSBIeWJyaWQgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1NvbmF0YV9IeWJyaWQvMjAyNi80ODAxMzYvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODAxMzYmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBTb25hdGEgSHlicmlkIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVNvbmF0YV9IeWJyaWQtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fSHlicmlkLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24gaHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlR1Y3NvbiBIeWJyaWQgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ1IDc0ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0MiA3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0NSA3NDgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVHVjc29uIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODU2NzUsNDgwNTYyLDQ4MDU2MyIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFR1Y3NvbiBIeWJyaWQgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFR1Y3NvbiBIeWJyaWQgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1R1Y3Nvbl9IeWJyaWQvMjAyNi80ODU2NzUvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODU2NzUmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBUdWNzb24gSHlicmlkIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVR1Y3Nvbl9IeWJyaWQtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfOCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fSHlicmlkLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24gaHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlR1Y3NvbiBIeWJyaWQgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDM0ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0MyAzOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0NiAzNDgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVHVjc29uIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjE5NDEsNDYxOTQyIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIEh5YnJpZCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fSHlicmlkLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgVHVjc29uIEh5YnJpZCAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvVHVjc29uX0h5YnJpZC8yMDI1LzQ2MTk0MS9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2MTk0MSZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFR1Y3NvbiBIeWJyaWQgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktVHVjc29uX0h5YnJpZC0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMDUyKSAtLT48ZGl2IGlkPSJjbGFzc3BoZXZfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5IeWJyaWRlcyByZWNoYXJnZWFibGUgbmV1ZnMgSHl1bmRhaSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBSZXBlbnRpZ255IChlbnRyZSBNYXNjb3VjaGUgZXQgTW9udHLDqWFsKTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfcGhldiI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9waGV2XzEiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NCA2ODQ8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFR1Y3NvbiBQbHVnLUluIEh5YnJpZCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlR1Y3NvbiBQbHVnLUluIEh5YnJpZCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTYgMjQ4PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzUzIDI5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAwNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU2IDA0OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MSA1NjQ8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24gUGx1Zy1JbiBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgwNTY0IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIFBsdWctSW4gSHlicmlkIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFR1Y3NvbiBQbHVnLUluIEh5YnJpZCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvVHVjc29uX1BsdWdfSW5fSHlicmlkLzIwMjYvNDgwNTY0L1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDgwNTY0JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgVHVjc29uIFBsdWctSW4gSHlicmlkIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVR1Y3Nvbl9QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3BoZXZfMiI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40IDQzNDwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIFBsdWctSW4gSHlicmlkIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVHVjc29uIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHVjc29uIFBsdWctSW4gSHlicmlkIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NSA4NDg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTIgODk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTUgNjQ4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUxIDQxNDwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlR1Y3NvbiBQbHVnLUluIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjE5NDAiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBUdWNzb24gUGx1Zy1JbiBIeWJyaWQgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgVHVjc29uIFBsdWctSW4gSHlicmlkIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9UdWNzb25fUGx1Z19Jbl9IeWJyaWQvMjAyNS80NjE5NDAvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0NjE5NDAmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBUdWNzb24gUGx1Zy1JbiBIeWJyaWQgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktVHVjc29uX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMDYwKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIwNTIpIC0tPjxkaXYgaWQ9ImNsYXNzZWxlY3RyaWNfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj7DiWxlY3RyaXF1ZXMgbmV1dmVzIEh5dW5kYWkgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgUmVwZW50aWdueSAoZW50cmUgTWFzY291Y2hlIGV0IE1vbnRyw6lhbCk8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2VsZWN0cmljIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzEiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MSA3Mzk8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPklPTklRIDUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU4IDI0ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1NSA0OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1OCAyNDgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc0KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTYgNTA5PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4MSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODA0NjIsNDgwNDYzLDQ4MDQ2NCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIElPTklRIDUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0lPTklRXzUvMjAyNi80ODA0NjIvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODA0NjImcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBJT05JUSA1IDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUlPTklRXzUtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY18yIj4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgNzM5PC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBJT05JUSA1IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzUtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IklPTklRIDUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5JT05JUSA1IDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NSA3NDg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTIgOTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTUgNzQ4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU0IDAwOTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IklPTklRIDUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY5MTczLDQ2OTE3MCw0NjkxNzEsNDY5MTcyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgSU9OSVEgNSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV81LTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgSU9OSVEgNSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvSU9OSVFfNS8yMDI1LzQ2OTE3My9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2OTE3MyZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIElPTklRIDUgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktSU9OSVFfNS0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzMiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NSAwMDA8L3NwYW4+PC9zcGFuPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgTiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV81X04tMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IklPTklRIDUgTiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPklPTklRIDUgTiAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+ODAgOTQ4PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc4IDE5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAwNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzgwIDk0OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NSA5NDg8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJJT05JUSA1IE4iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU2NDcyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgSU9OSVEgNSBOIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzVfTi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIElPTklRIDUgTiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvSU9OSVFfNV9OLzIwMjUvNDU2NDcyL09yYW5nZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDU2NDcyJnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgSU9OSVEgNSBOIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUlPTklRXzVfTi0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzQiPgoJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+PHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj48c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MTcgNzM5PC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBJT05JUSA2IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzYtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IklPTklRIDYgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5JT05JUSA2IDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NyA3NDg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTQgOTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTcgNzQ4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ1IDAwOTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IklPTklRIDYiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYyODI4LDQ2MjgyOSw0NjI4MzAiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBJT05JUSA2IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzYtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBJT05JUSA2IDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9JT05JUV82LzIwMjUvNDYyODI4L1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDYyODI4JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgSU9OSVEgNiAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1JT05JUV82LTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfNSI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xIDczOTwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgSU9OSVEgOSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV85LTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJJT05JUSA5IDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+SU9OSVEgOSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjIgOTk4PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU5IDk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAwNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtPcHRpb25zIGluY2x1czombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzYyIDk5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MSAyNTk8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJJT05JUSA5IiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3NjA2OSw0NzYwNzAsNDc3NTYzLDQ3NjA3MSw0NzYwNzIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBJT05JUSA5IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzktMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBJT05JUSA5IDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9JT05JUV85LzIwMjYvNDc2MDY5L1JlZC9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6JnF1b3Q7NDc2MDY5JnF1b3Q7LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgSU9OSVEgOSAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1JT05JUV85LTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlISZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfNiI+CgkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj48c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPjxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj45IDA4Nzwvc3Bhbj48L3NwYW4+PC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgS29uYSBFbGVjdHJpYyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hX0VsZWN0cmljLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIMOpbGVjdHJpcXVlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+S29uYSBFbGVjdHJpYyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDYgNzQ4PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQzIDk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAwNTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQ2IDc0OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzQpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOCAxNjE8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjgxKS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIEVsZWN0cmljIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTQ0Niw0ODE0NDcsNDgxNDQ4LDQ4MTQ0OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEtvbmEgRWxlY3RyaWMgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIEtvbmEgRWxlY3RyaWMgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0tvbmFfRWxlY3RyaWMvMjAyNi80ODE0NDYvUmVkL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90OzomcXVvdDs0ODE0NDYmcXVvdDssJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBLb25hIEVsZWN0cmljIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUtvbmFfRWxlY3RyaWMtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUhJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY183Ij4KCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPjxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+PHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYgMDg3PC9zcGFuPjwvc3Bhbj48L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBLb25hIEVsZWN0cmljIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUtvbmFfRWxlY3RyaWMtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IktvbmEgw6lsZWN0cmlxdWUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Lb25hIEVsZWN0cmljIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40OSAyNDg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDYgNDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDA1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDkgMjQ4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NCktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQzIDE2MTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODEpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IktvbmEgRWxlY3RyaWMiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxOTMyLDQ2MTkzNiw0NjE5MzMsNDYxOTM1LDQ2MjYwNCw0NjI2MDYsNDYxOTM0LDQ2MjYwNSw0NjE5MzcsNDYyNjA3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgS29uYSBFbGVjdHJpYyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hX0VsZWN0cmljLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgS29uYSBFbGVjdHJpYyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvS29uYV9FbGVjdHJpYy8yMDI1LzQ2MTkzMi9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2MTkzMiZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIEtvbmEgRWxlY3RyaWMgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzgiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIE5FWE8gMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktTkVYTy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iTkVYTyAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk5FWE8gMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjc1IDI0OTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3MiA1MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3NSAyNDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iTkVYTyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjQzNzMsNDY0Mzc0IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgTkVYTyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1ORVhPLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgTkVYTyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvTkVYTy8yMDI1LzQ2NDM3My9SZWQvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OiZxdW90OzQ2NDM3MyZxdW90OywmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIE5FWE8gMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktTkVYTy0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSEmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjA2MCktLT48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JJRVNCT1hXUkFQUEVSICgyMDY2KS0tPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJIeXVuZGFpIiBpZD0iaXNCcmFuZFBhZ2UiPgoJCQkJPC9kaXY+CgkJCQk8IS0tIENMT1NFIE9VVEVSQk9YTEFZRVIgLS0+CgkJCQkgICAgPGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciBkaXZEaXNjbGFpbWVyQmxvY2siPgogICAgICAgIDxkaXYgY2xhc3M9ImRpdkJsb2NrVmlldyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdkJsb2NrQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZCbG9ja1RpdGxlIGJsb2NrVGl0bGVTdHlsZTIiPgogICAgICAgICAgICAgICAgICAgIENsYXVzZSBkZSBub24tcmVzcG9uc2FiaWxpdMOpCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdkJsb2NrQ29sdW1uIGJsYWNrLXRleHQiPgogICAgICAgICAgICAgICAgICAgIExlIG1vbnRhbnQgaW5kaXF1w6kgcmVwcsOpc2VudGUgdW5lIGVzdGltYXRpb24gZHUgbW9udGFudCBxdWUgdm91cyBwb3V2ZXogdm91cyBhdHRlbmRyZSDDoCBwYXllciBlbiBkb2xsYXJzIGNhbmFkaWVucy4gTGVzIHRheGVzIHNvbnQgZXhjbHVlcyAoc2F1ZiBpbmRpY2F0aW9uIGNvbnRyYWlyZSkuIExlcyBwaG90b3MgcmVwcsOpc2VudGVudCBsZSBtb2TDqGxlIG9mZmVydCBtYWlzIHBldXZlbnQgdmFyaWVyIGzDqWfDqHJlbWVudCBlbiBjb3VsZXVyLCBvcHRpb25zLCBvdSBjYXJhY3TDqXJpc3RpcXVlcy4gQmllbiBxdWUgbm91cyBub3VzIGVmZm9yY2lvbnMgZGUgZ2FyYW50aXIgbCdleGFjdGl0dWRlIGRlcyBpbmZvcm1hdGlvbnMgc3VyIGNlIHNpdGUgV2ViLCBub3VzIHZvdXMgcmVjb21tYW5kb25zIGRlIG5vdXMgY29udGFjdGVyIGRpcmVjdGVtZW50IHBvdXIgdsOpcmlmaWVyIGxlcyBkw6l0YWlscyBldCBvYnRlbmlyIGRlcyBpbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGUgdsOpaGljdWxlLCB5IGNvbXByaXMgbGEgY29uZmlybWF0aW9uIGRlcyBwcml4LCBkZXMgY291bGV1cnMsIGRlcyBmaW5pdGlvbnMsIGRlcyBvcHRpb25zIGV0IGF1dHJlcyBzcMOpY2lmaWNhdGlvbnMuCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCQkJPC9kaXY+CgkJCTwhLS0gQ0xPU0UgTEVGVEJPWExBWUVSIC0tPgoJCTwvZGl2PgoJCTwhLS0gQ0xPU0UgTUFJTkJPWExBWUVSIC0tPgoJCTwhLS0gT1BFTiBGT09URVJXSURHRVQgLS0+CgkJCQkJPGRpdiBpZD0iZDJjX3ZhcnMiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJuZXdjYXJzLmh0bWwiIGlkPSIxNmQ3dnd0NjZwbW93bzBrIiBkYXRhLWZvcnZhcj0iQ1VSUkVOVFBBR0UiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iM3BtNnR2Z3FxZWd3NHciIGRhdGEtZm9ydmFyPSJVU0VEX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgaWQ9InNvN3l1cWFqNGR3Y2M4cyIgZGF0YS1mb3J2YXI9IlNJVEVfQ0FSX1NFQ1RJT05fVFlQRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSIxM2RxdHNuY2Q4MXdrODQ0IiBkYXRhLWZvcnZhcj0iRklOQU5DRV9FTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJiYTYyMGMzZjJlZTU3NTRjZmFiM2NmYWQxNDE3NTczY3wzMjU1NjY5ODg2IiBpZD0iNWNjeWdrOTI1bWd3ZzAiIGRhdGEtZm9ydmFyPSJGSU5BTkNFX0FERl9FTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJsaXZlIiBpZD0iMmVqaGJjMHl5b2cwd3d3IiBkYXRhLWZvcnZhcj0iREVQTE9ZTUVOVFRZUEUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iSHl1bmRhaSBSZXBlbnRpZ255IiBpZD0iMTdnYTh2aG5jaHZrOGNnayIgZGF0YS1mb3J2YXI9IkRFQUxFUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJyZXNldCIgaWQ9IjZqeXA0NjY0dmd3czgwdyIgZGF0YS1mb3J2YXI9IlBPUFVQV0lER0VUVE9BQ1RJVkUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iMWVyaXY5MDBwZGE4OHd3OCIgZGF0YS1mb3J2YXI9Ik1BS0VGT1JFTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSIxMHBhN3YzcWVsZGNvc2siIGRhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9InI4Mnpma3hhMmR3c3MwMCIgZGF0YS1mb3J2YXI9IllFQVIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iaTNnc2F4Z3M1ams4d2NrIiBkYXRhLWZvcnZhcj0iUkVGRVJFUiI+CjwvZGl2PjwhLS0gIyNFTkRPRlBBR0UjIyAtLT4KCQoJCiAgICA8ZGl2IGNsYXNzPSJ1aS1sb2FkZXItYmFja2dyb3VuZCI+PGltZyBjbGFzcz0idWktbG9hZGVyLWJhY2tncm91bmQtZ2lmIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL2FqYXgtbG9hZGVyMi5naWYiIGFsdD0iYWpheCBsb2FkZXIyIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9kaXY+CiAgICA8ZGl2IGlkPSJpb3NfZml4ZWRfYmciPjwvZGl2PgoKCQk8ZGl2IGlkPSJoeXVuZGFpQ2VydGlmaWVkRm9vdGVyIiBjbGFzcz0iY2VydGlmaWVkLWZvb3RlciAgIj4KCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CgkJPGRpdiBjbGFzcz0ic29jaWFsLW1lZGlhX19jb250YWluZXIiPgoJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vSHl1bmRhaVJlcGVudGlnbnkvIiBhcmlhLWxhYmVsPSJmYWNlYm9vayBsaW5rIiB0aXRsZT0iZmFjZWJvb2sgbGluayIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtbWVkaWFfX2ljb24gIiBpZD0iSHl1bmRhaS1mYWNlYm9vay1saW5rIiBkYXRhLXRvZ2dsZT0iRmFjZWJvb2siPgoJCQkJPHNwYW4gY2xhc3M9ImZhYiBmYS1mYWNlYm9vayBjLW9nY29sb3ItZmFjZWJvb2siPjwvc3Bhbj4KCQkJPC9hPgoJCQkJCQk8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tL2h5dW5kYWljYW5hZGEiIGFyaWEtbGFiZWw9InR3aXR0ZXIgbGluayIgdGl0bGU9InR3aXR0ZXIgbGluayIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtbWVkaWFfX2ljb24gIiBpZD0iSHl1bmRhaS10d2l0dGVyLWxpbmsiIGRhdGEtdG9nZ2xlPSJUd2l0dGVyIj4KCQkJCTxzcGFuIGNsYXNzPSJmYWIgZmEteC10d2l0dGVyIGMtb2djb2xvci14LXR3aXR0ZXIiPjwvc3Bhbj4KCQkJPC9hPgoJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2h5dW5kYWlyZXBlbnRpZ255LyIgYXJpYS1sYWJlbD0iaW5zdGFncmFtIGxpbmsiIHRpdGxlPSJpbnN0YWdyYW0gbGluayIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJzb2NpYWwtbWVkaWFfX2ljb24gIiBpZD0iSHl1bmRhaS1pbnN0YWdyYW0tbGluayIgZGF0YS10b2dnbGU9Ikluc3RhZ3JhbSI+CgkJCQk8c3BhbiBjbGFzcz0iZmFiIGZhLWluc3RhZ3JhbSBjLW9nY29sb3ItaW5zdGFncmFtIj48L3NwYW4+CgkJCTwvYT4KCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vQGh5dW5kYWlyZXBlbnRpZ255Nzk4NiIgYXJpYS1sYWJlbD0ieW91dHViZSBsaW5rIiB0aXRsZT0ieW91dHViZSBsaW5rIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InNvY2lhbC1tZWRpYV9faWNvbiAiIGlkPSJIeXVuZGFpLXlvdXR1YmUtbGluayIgZGF0YS10b2dnbGU9IllvdXR1YmUiPgoJCQkJPHNwYW4gY2xhc3M9ImZhYiBmYS15b3V0dWJlIGMtb2djb2xvci15b3V0dWJlIj48L3NwYW4+CgkJCTwvYT4KCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZGlzY2xhaW1lcl9fY29udGFpbmVyIj4KCQkJPHA+TGUgbm9tLCBsZSBsb2dvLCBsZSBub20gZGVzIHByb2R1aXRzLCBsZSBub20gZGVzIGNhcmFjdMOpcmlzdGlxdWVzLCBsZXMgaW1hZ2VzIGV0IGxlcyBzbG9nYW5zIEh5dW5kYWkgc29udCB0b3VzIGRlcyBtYXJxdWVzIGRlIGNvbW1lcmNlIGfDqXLDqWVzIHBhciA8YSBocmVmPSJodHRwczovL3d3dy5oeXVuZGFpY2FuYWRhLmNvbS9mciIgdGFyZ2V0PSJfYmxhbmsiPkh5dW5kYWnCoENhbmFkYTwvYT48L3A+CgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImNlcnRpZmllZC1sb2dvX19jb250YWluZXIiPgoJCQk8YSBocmVmPSJodHRwczovL3d3dy5oeXVuZGFpY2FuYWRhLmNvbS9mciIgdGl0bGU9Ikh5dW5kYWkgUmVwZW50aWdueSIgdGFyZ2V0PSJfYmxhbmsiPgoJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgUmVwZW50aWdueSIgY2xhc3M9ImNlcnRpZmllZC1sb2dvIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2h5dW5kYWlyZXBlbnRpZ255LmNvbS8vaW1hZ2VzL0xvZ28vaHl1bmRhaS1sb2dvLWhvcml6b250YWwtYmx1ZS1yZ2ItZnIuc3ZnIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJICAgIDwvYT4KCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4KCgkJPCEtLSBQcm9tb3Rpb25TaWRlQnRuIERJU0FCTEVEIEZPUiBTRUNUSU9OOiBORVcgLS0+CiAgICAKCQkKCiAgICAKCiAgICAKCiAgICAKCgkJPGRpdiBpZD0iSElEREVOX0lOUFVUUyI+CgkJCTwhLS0gYnVuZGxpbmcgaGlkZGVuIGlucHV0cyB0byBwbGVhc2UgR29vZ2xlIC0tPgoJCQk8ZGl2IGNsYXNzPSJoaV9fX18xIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50SXRlbVR5cGUiIHZhbHVlPSJjYXIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRJdGVtVHlwZVVSTFNhZmVFTiIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudFN0YXR1cyIgdmFsdWU9Im5ldyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idHh0VXNlckFnZW50IiB2YWx1ZT0iICAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRDYXJQcmljZSIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dEJ1aWxkQW5kUHJpY2VFbWFpbExpbmsiIHZhbHVlPSJEZXJuaWVyIHbDqWhpY3VsZSBjb25maWd1csOpIChtb2R1bGUgQ29uZmlndXJhdGlvbiAmYW1wOyBQcml4KSBsZSB7JEJBTlBMSU5LfSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiIHZhbHVlPSIvY29uZmlndXJhdGlvbi1ldC1wcml4LyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgxIiB2YWx1ZT0iSmFudmllciI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVFhUTU9OVEgyIiB2YWx1ZT0iRsOpdnJpZXIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMyIgdmFsdWU9Ik1hcnMiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRINCIgdmFsdWU9IkF2cmlsIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDUiIHZhbHVlPSJNYWkiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRINiIgdmFsdWU9Ikp1aW4iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRINyIgdmFsdWU9Ikp1aWxsZXQiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIOCIgdmFsdWU9IkFvw7t0Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDkiIHZhbHVlPSJTZXB0ZW1icmUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMTAiIHZhbHVlPSJPY3RvYnJlIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJUWFRNT05USDExIiB2YWx1ZT0iTm92ZW1icmUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlRYVE1PTlRIMTIiIHZhbHVlPSJEw6ljZW1icmUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImZmZEwxIiB2YWx1ZT0iNzRiY2FjZGFlMWFmZjkzMDQ5MGI5NjUwNWE5MDE0OWRkMjA2OWQxNSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaXNBVkdNYXJrZXRQcmljZUFjdGl2ZSIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImlzQVZHTWFya2V0UHJpY2VBY3RpdmVDbGVhcmFuY2UiIHZhbHVlPSIwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaG93T25seVJlZHVjZWRQcmljZUNsZWFyYW5jZSIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imhhc011bHRpcGxlRGVhbGVycyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlbmRFbWFpbFRvQWxsRGVhbGVycyIgdmFsdWU9IjAiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlYXJjaGVkVmVoaWNsZSIgdmFsdWU9IiAgIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5bWFrZSIgbmFtZT0ic2VhcmNoZWRxdWVyeW1ha2UiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlYXJjaGVkcXVlcnltb2RlbCIgbmFtZT0ic2VhcmNoZWRxdWVyeW1vZGVsIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5eWVhciIgbmFtZT0ic2VhcmNoZWRxdWVyeXllYXIiIHZhbHVlPSIiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImltZ3N2cnBvb2xhY3RpdmUiIG5hbWU9ImltZ3N2cnBvb2xhY3RpdmUiIHZhbHVlPSJUUlVFIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlY29tcGlsZWlkIiBuYW1lPSJzaXRlY29tcGlsZWlkIiB2YWx1ZT0iNjllOTRjNmM0YzlkNyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZW1haWxMaXN0U3VmZml4IiBuYW1lPSJlbWFpbExpc3RTdWZmaXgiIHZhbHVlPSIzMjU1NjY5ODg2Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkaXNhYmxlUG9wdXBzIiBuYW1lPSJkaXNhYmxlUG9wdXBzIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZUVuYWJsZWQiIG5hbWU9InNlcnZpY2VFbmFibGVkIiB2YWx1ZT0iMSI+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJoaV9fX18yIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIgbmFtZT0iQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJuZXdTZWN0aW9ubmFibGVkIiBuYW1lPSJuZXdTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idXNlZFNlY3Rpb25uYWJsZWQiIG5hbWU9InVzZWRTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZmluYW5jZVNlY3Rpb25uYWJsZWQiIG5hbWU9ImZpbmFuY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZVNlY3Rpb25uYWJsZWQiIG5hbWU9InNlcnZpY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHJvbW9TZWN0aW9ubmFibGVkIiBuYW1lPSJwcm9tb1NlY3Rpb25uYWJsZWQiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0YXJnZXRQYWdlIiBuYW1lPSJ0YXJnZXRQYWdlIiB2YWx1ZT0iTkVXQ0FSUyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icGFnZVNlY3Rpb24iIG5hbWU9InBhZ2VTZWN0aW9uIiB2YWx1ZT0iTkVXIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwT3RoZXJQYWdlcyIgbmFtZT0iRGlzY291bnRQb3B1cE90aGVyUGFnZXMiIHZhbHVlPSJIT01FUEFHRTtQUk9NTztTRVJWSUNFUztGSU5BTkNFO1RFQU07Q09OVEFDVCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvd090aGVyIiBuYW1lPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93T3RoZXIiIHZhbHVlPSIxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93IiBuYW1lPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93IiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93TmV3IiBuYW1lPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93TmV3IiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE8iIG5hbWU9IlNIT1dfUE9QVVBfQVVUTyIgdmFsdWU9ImRlbGF5Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE9fVVNFRCIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX1VTRUQiIHZhbHVlPSJkZWxheSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPX05FVyIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX05FVyIgdmFsdWU9InNjcm9sbHVwIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVAiIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUCIgdmFsdWU9Ijc1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVBfVVNFRCIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX1VTRUQiIHZhbHVlPSI3NSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgdmFsdWU9Ijc1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHRU5FUkFMX1VTRURfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfVVNFRF9QQUdFX1BPUFVQX1NFTEVDVCIgdmFsdWU9IkVYQ0xVRElORyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR0VORVJBTF9ORVdfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfTkVXX1BBR0VfUE9QVVBfU0VMRUNUIiB2YWx1ZT0iRVhDTFVESU5HIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJVU0VEX0xPR09fT05fQ0hFQ0siIG5hbWU9IlVTRURfTE9HT19PTl9DSEVDSyIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNFTV9CT09TVEVSX0FDVElWRSIgbmFtZT0iU0VNX0JPT1NURVJfQUNUSVZFIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iUEFHRUlEIiBuYW1lPSJQQUdFSUQiIHZhbHVlPSJuZXdjYXJzLmh0bWwiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkNSTV9XU1NfQUNUSVZFIiBuYW1lPSJDUk1fV1NTX0FDVElWRSIgdmFsdWU9InllcyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iUkVRVUVTVF9TRU5UIiBuYW1lPSJSRVFVRVNUX1NFTlQiIHZhbHVlPSJWb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUkJSQU5EIiBuYW1lPSJERUFMRVJCUkFORCIgdmFsdWU9Ikh5dW5kYWkiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUkJSQU5EX1BSSU1BUlkiIG5hbWU9IkRFQUxFUkJSQU5EX1BSSU1BUlkiIHZhbHVlPSJIeXVuZGFpIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJERUFMRVJQQUNPREUiIG5hbWU9IkRFQUxFUlBBQ09ERSIgdmFsdWU9IjMxMDI2Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJGSU5BTkNFRk9STVRZUEUiIG5hbWU9IkZJTkFOQ0VGT1JNVFlQRSIgdmFsdWU9Im11bHRpc3RlcCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSVElSRVJFRElSRUNUQ0hFQ0siIG5hbWU9IkRFQUxFUlRJUkVSRURJUkVDVENIRUNLIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSVElSRVJFRElSRUNUVFlQRSIgbmFtZT0iREVBTEVSVElSRVJFRElSRUNUVFlQRSIgdmFsdWU9ImN1c3RvbSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSUEFSVFJFRElSRUNUVFlQRSIgbmFtZT0iREVBTEVSUEFSVFJFRElSRUNUVFlQRSIgdmFsdWU9ImN1c3RvbSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iSVNWTSIgbmFtZT0iSVNWTSIgdmFsdWU9IiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR1JXTCIgbmFtZT0iR1JXTCIgdmFsdWU9ImIyZTM1MGI3MWMxNjQ2YjdlZWVjOWUxYWY2Yzg1NGIxM2NiMWRiNTE7YmE2Yjg2MTFjYmExMTc4MDMxYjE3ZmE3ZTM1MGFjZjJjZTEzNWFhNTswOWMzNTgwN2JhNDdhODI1OTJlZjg4ZTVkNjMwNGVhNjk5YjhjYmUyIj4KCQkJCTwhLS0gPGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9Ii9kZW1hbmRlcy9wcml4LW9jY2FzaW9uLyIgaWQ9J3ByaWNlUmVxdWVzdEZvbGRlcicvPgoJCQkJPGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9Ii9kZW1hbmRlcy9lc3NhaXMtcm91dGllci1vY2Nhc2lvbi8iIGlkPSdTY2hlZHVsZVRlc3REcml2ZUZvbGRlcicvPgoJCQkJPGlucHV0IHR5cGU9J2hpZGRlbicgdmFsdWU9Ii9kZW1hbmRlcy9maW5hbmNlbWVudC8iIGlkPSdGaW5hbmNlRm9sZGVyJy8+IC0tPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9kZW1hbmRlcy9vZmZyZS1vY2Nhc2lvbi8iIGlkPSJ0ZXh0TWFrZU9mZmVyRm9sZGVyIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0iaGFzVkJEQ0VuYWJsZWQiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjEiIGlkPSJtZW51TG9jayI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ib2VtQ2VydGlmaWNhdGlvbiIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBOZXdSZWJhdGVTaG93VGV4dFVzIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cFVzZWRSZWJhdGVTaG93VGV4dFVzIiB2YWx1ZT0iMCI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY29va2llTG9nVG9rZW4iIHZhbHVlPSJORFEyTURBeE9UY3dOemd5Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjb29raWVUb0NoZWNrIiB2YWx1ZT0iMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGlzYWJsZUludGVybmFsU2Vzc2lvbiIgdmFsdWU9IjEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRlYWxlclByb3ZpbmNlQ29kZSIgdmFsdWU9IlFDIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlSUQiIHZhbHVlPSIyNTEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkFETUlOX05FV19ET05UX1NIT1dfUFJJQ0VfTU9ERUxTIiB2YWx1ZT0iIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJORVdfUFJJQ0VfVEVYVCIgdmFsdWU9IkFwcGVsZXogcG91ciB1biBwcml4Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJGaW5hbmNlX0Zvcm1UeXBlIiB2YWx1ZT0ibXVsdGlzdGVwIj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPGRpdiBpZD0iY29uZmlybV9mb3JtcyI+PC9kaXY+CgoJCQoKCQk8IS0tIE9POjo5NGFmMDA5OTJhZTU1OThkNWMwYzY3OTE5MzExZmZmYSAtLT4JCQk8ZGl2IGlkPSJhc1BvcFVwIiBjbGFzcz0icmV2ZWFsLW1vZGFsIG1lZGl1bSI+CgkJCQk8Zm9ybT4KCQkJCQk8ZGl2IGNsYXNzPSJhc1RpdGxlIHRleHQtdXBwZXJjYXNlIj4KCQkJCQkJU1ZQIGNvbmZpcm1lcgoJCQkJCTwvZGl2PgoKCQkJCQk8ZmllbGRzZXQgc3R5bGU9ImJvcmRlcjogbm9uZTsiIGNsYXNzPSJkMmNmb3JtIGQyY2Zvcm0tLXJvdyI+Cgk8bGVnZW5kIGNsYXNzPSJ2aVRleHQiPgoJCTxkaXYgY2xhc3M9InBvcHVwLXBvbGljeSI+QWZpbiBkZSByZXNwZWN0ZXIgbGEgTG9pIENhbmFkaWVubmUgQW50aS1Qb3VycmllbCBldCBsYSBMb2kgMjUgZHUgUXXDqWJlYywgbm91cyB2b3VzIHByaW9ucyBkZSBiaWVuIHZvdWxvaXIgY29uZmlybWVyIHNpIHZvdXMgc291aGFpdGV6IHJlY2V2b2lyIG5vcyBjb21tdW5pY2F0aW9ucyBmdXR1cmVzIGNvbmNlcm5hbnQgbGVzIHJhYmFpcywgbGVzIHByb21vdGlvbnMsIGxlcyBvZmZyZXMgZXQgbGVzIHZlbnRlcyBwcml2w6llcy4gVmV1aWxsZXogbm90ZXIgcXVlIHZvdXMgcG91dmV6IG1vZGlmaWVyIG91IHJldGlyZXIgY2UgY29uc2VudGVtZW50IMOgIHRvdXQgbW9tZW50LiBFbiBjbGlxdWFudCBzdXIgT3VpLCB2b3VzIGNvbmZpcm1leiBhdm9pciBsdSBldCBhY2NlcHTDqSBub3RyZSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iP3BhdGg9L3BvbGl0aXF1ZS1kZS1jb25maWRlbnRpYWxpdGUuaHRtbCI+cG9saXRpcXVlIGRlIGNvbmZpZGVudGlhbGl0w6k8L2E+LjwvZGl2PgoJPC9sZWdlbmQ+Cgk8Ym94LWxjPgoJCTxkaXYgY2xhc3M9InJhZGlvLWlubGluZSBmbGV4LWJldHdlZW4gYWxpZ24tY2VudGVyIGRlYWxlckNvbnNlbnQiPgoJCQk8ZGl2IGNsYXNzPSItdzUwcCI+SHl1bmRhaSBSZXBlbnRpZ255PC9kaXY+CgkJCTxsYWJlbCBjbGFzcz0iLXcyMHAiIHN0eWxlPSJtYXJnaW46IDA7Ij4KCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9IjEiIG5hbWU9ImNvbnNlbnQiIGlkPSJjb25zZW50WWVzIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJT3VpCgkJCTwvbGFiZWw+CgkJCTxsYWJlbCBjbGFzcz0iLXcyMHAiIHN0eWxlPSJtYXJnaW46IDA7Ij4KCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9Ii0xIiBuYW1lPSJjb25zZW50IiBpZD0iY29uc2VudE5vIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJTm9uCgkJCTwvbGFiZWw+CgkJCTxkaXYgY2xhc3M9ImNvbnNlbnQgZGlzY2xhaW1lciIgc3R5bGU9IndpZHRoOiAxMjBweDttYXJnaW4tbGVmdDogMTBweDsiIGRhdGEtdG9vbHRpcD0nRW4gZm91cm5pc3NhbnQgbWVzIGluZm9ybWF0aW9ucyBwZXJzb25uZWxsZXMsIGplIGNvbnNlbnMgw6AgbGV1ciB1dGlsaXNhdGlvbiBldCBsZXVyIGRpdnVsZ2F0aW9uIGNvbmZvcm3DqW1lbnQgw6AgbGEgUG9saXRpcXVlIGRlIGNvbmZpZGVudGlhbGl0w6kgZGUgSHl1bmRhaSBSZXBlbnRpZ255LiBKZSBjb25maXJtZSBhdm9pciBsdSBsYSAmbHQ7YSBocmVmPSIvcG9saXRpcXVlLWRlLWNvbmZpZGVudGlhbGl0ZS5odG1sIiZndDtQb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXTDqSZsdDsvYSZndDsuIEplIGNvbXByZW5kcyBxdWUgSHl1bmRhaSBSZXBlbnRpZ255IHBldXQgcGFydGFnZXIgbWVzIGluZm9ybWF0aW9ucyBwZXJzb25uZWxsZXMgYXZlYyBkZXMgdGllcnMgZGFucyBsZSBidXQgZGUgZ8OpcmVyIG1hIHJlbGF0aW9uIGF2ZWMgZXV4LCB0ZWxzIHF1ZSBub3RyZSBmb3Vybmlzc2V1ciBkZSBnZXN0aW9uIGRlIGxhIHJlbGF0aW9uIGNsaWVudCAoQ1JNKS4gSmUgY29tcHJlbmRzIHF1ZSBjZXJ0YWlucyBkZSBjZXMgZm91cm5pc3NldXJzIHBldXZlbnQgc3RvY2tlciBtZXMgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcyBzdXIgZGVzIHNlcnZldXJzIGV0IGRlcyBiYXNlcyBkZSBkb25uw6llcyBzaXR1w6lzIGVuIGRlaG9ycyBkZSBtYSBwcm92aW5jZS4gSmUgY29tcHJlbmRzIMOpZ2FsZW1lbnQgcXVlIGplIHBldXggcmV0aXJlciBtb24gY29uc2VudGVtZW50IGV0IG1lIGTDqXNhYm9ubmVyIGRlIGxhIHLDqWNlcHRpb24gZGUgY29tbXVuaWNhdGlvbnMgZnV0dXJlcyBkZSBIeXVuZGFpIFJlcGVudGlnbnkgw6AgdG91dCBtb21lbnQuIExlIGNvbnNlbnRlbWVudCDDoCBsYSByw6ljZXB0aW9uIGRlIGNvbW11bmljYXRpb25zIMOpbGVjdHJvbmlxdWVzIGVzdCBzb2xsaWNpdMOpIHBhciBIeXVuZGFpIFJlcGVudGlnbnkuJz5DbGF1c2UgZGUgbm9uLXJlc3BvbnNhYmlsaXTDqTwvZGl2PgoJCTwvZGl2PgoKCQkKCgkJPGRpdiBjbGFzcz0iLXB0MTUiIHN0eWxlPSJmb250LXNpemU6IDEwcHg7dGV4dC1hbGlnbjogY2VudGVyO2NvbG9yOiB2YXIoLS1kYXJrLWdyYXkpOyI+SU1QT1JUQU5UOiBWb3VzIHBvdXZleiBmYWNpbGVtZW50IHJldGlyZXIgdm90cmUgY29uc2VudGVtZW50IGVuIHRvdXQgdGVtcHMhPC9kaXY+Cgk8L2JveC1sYz4KPC9maWVsZHNldD4KCgkJCQkJPGRpdiBjbGFzcz0iZmxleC1ib3ggZmxleC1ldmVubHkiIHN0eWxlPSJtYXJnaW4tdG9wOiAzNXB4OyI+CgkJCQkJCTxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJjb25zZW50U3VibWl0IiBjbGFzcz0iIGJ0bi1kZWZhdWx0ICIgdmFsdWU9IlNvdW1ldHRyZSI+CgkJCQkJPC9kaXY+CgkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3RDb25zZW50UG9wIiB2YWx1ZT0iIj4KCQkJCTwvZm9ybT4KCQkJPC9kaXY+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlSUQiIHZhbHVlPSIyNTEiPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwdXJjaGFzZV9pbnRlbnRfYW5zd2VyIiB2YWx1ZT0iUEdKeUlDOCtUR1VnWTJ4cFpXNTBJR0VnYkNkcGJuUmxiblJwYjI0Z1pDZGhZMmhsZEdWeUlITnZiaUJ3Y205amFHRnBiaUIyNldocFkzVnNaU0E4WWo0bGRHbHRaV1p5WVcxbEpUd3ZZajQ4WW5JZ0x6ND0iPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwdXJjaGFzZV9pbnRlbnRfbm9fYW5zd2VyIiB2YWx1ZT0iYzJGdWN5QmtZWFJsSUhCeTZXTnBjMlU9Ij4KCQk8ZGl2IGNsYXNzPSJyZXZlYWwtbW9kYWwiIGlkPSJhc1B1cmNoYXNlSW50ZW50Ij4KCQkJPGZvcm0gbWV0aG9kPSJwb3N0Ij4KCQkJCTxzdHJvbmcgY2xhc3M9ImFzUElUaXRsZSI+CgkJCQkJUXVlbHF1ZXMgcHLDqWNpc2lvbnMKCQkJCTwvc3Ryb25nPgoJCQkJPG9sIGNsYXNzPSJzdGVwcyI+CgoJCQkJCTxsaSBpZD0iQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GTyIgY2xhc3M9ImhpZGRlbiI+CgkJCQkJCTxmaWVsZHNldCBzdHlsZT0iYm9yZGVyOiBub25lOyIgY2xhc3M9ImQyY2Zvcm0gZDJjZm9ybS0tcm93Ij4KCQkJCQkJCTxsZWdlbmQgY2xhc3M9InZpVGV4dCI+CgkJCQkJCQkJPHN0cm9uZz5Ob3VzIHBlcm1ldHRlei12b3VzIGRlIHBhcnRhZ2VyIHZvcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzIGF2ZWMgbGVzIGluc3RpdHV0aW9ucyBmaW5hbmNpw6hyZXMgcG91ciB2b3RyZSBidXJlYXUgZGUgY3LDqWRpdD88L3N0cm9uZz4KCQkJCQkJCTwvbGVnZW5kPgoJCQkJCQkJPGJveC1sYz4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJyYWRpby1pbmxpbmUiPgoJCQkJCQkJCQk8bGFiZWwgY2xhc3M9Ii13MjVwIj4KCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9InllcyIgbmFtZT0ic2hhcmVfcGVyc29uYWwiIGlkPSJzaGFyZVBlcnNvbmFsWWVzIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQkJT3VpCgkJCQkJCQkJCTwvbGFiZWw+CgkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iLXcyNXAiPgoJCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0ibm8iIG5hbWU9InNoYXJlX3BlcnNvbmFsIiBpZD0ic2hhcmVQZXJzb25hbE5vIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQkJTm9uCgkJCQkJCQkJCTwvbGFiZWw+CgkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPGRpdiBzdHlsZT0iZGlzcGxheTpub25lO2NvbG9yOiNiNTAwMDA7cGFkZGluZy10b3A6NHB4O2NsZWFyOiBib3RoOyIgaWQ9IkFMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk9fVEVYVF9FUlJPUiI+Vm90cmUgY29uc2VudGVtZW50IGVzdCByZXF1aXMgcG91ciBjb21wbMOpdGVyIHZvdHJlIGRlbWFuZGUgZGUgY3LDqWRpdCE8L2Rpdj4KCQkJCQkJCTwvYm94LWxjPgoJCQkJCQk8L2ZpZWxkc2V0PgoJCQkJCTwvbGk+CgoJCQkJCTxsaSBjbGFzcz0ic3RlcEludGVudCBoaWRkZW4iPgoJCQkJCQk8ZmllbGRzZXQgc3R5bGU9ImJvcmRlcjogbm9uZTsiPgoJCQkJCQkJPGxlZ2VuZCBjbGFzcz0idmlUZXh0Ij4KCQkJCQkJCQk8c3Ryb25nPlF1YW5kIHByw6l2b3llei12b3VzIGFjaGV0ZXIgdW4gdsOpaGljdWxlPzwvc3Ryb25nPgoJCQkJCQkJPC9sZWdlbmQ+CgkJCQkJCQk8dWwgY2xhc3M9InZpT3B0aW9ucyI+CgkJCQkJCQkJPGxpPgoJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJEJ2ljaSAzMCBqb3VycyIgbmFtZT0icHVyY2hhc2VfaW50ZW50IiBpZD0icHVyY2hhc2VJbnRlbnQxIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQk8bGFiZWwgZm9yPSJwdXJjaGFzZUludGVudDEiPiBEJ2ljaSAzMCBqb3VyczwvbGFiZWw+CgkJCQkJCQkJPC9saT4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9IkQnaWNpIDMgbW9pcyIgbmFtZT0icHVyY2hhc2VfaW50ZW50IiBpZD0icHVyY2hhc2VJbnRlbnQyIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQk8bGFiZWwgZm9yPSJwdXJjaGFzZUludGVudDIiPiBEJ2ljaSAzIG1vaXM8L2xhYmVsPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQkJPGxpPgoJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJEJ2ljaSA2IG1vaXMiIG5hbWU9InB1cmNoYXNlX2ludGVudCIgaWQ9InB1cmNoYXNlSW50ZW50MyIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJPGxhYmVsIGZvcj0icHVyY2hhc2VJbnRlbnQzIj4gRCdpY2kgNiBtb2lzPC9sYWJlbD4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iRCdpY2kgcGx1cyBkZSA2IG1vaXMiIG5hbWU9InB1cmNoYXNlX2ludGVudCIgaWQ9InB1cmNoYXNlSW50ZW50NCIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJPGxhYmVsIGZvcj0icHVyY2hhc2VJbnRlbnQ0Ij4gRCdpY2kgcGx1cyBkZSA2IG1vaXM8L2xhYmVsPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQk8L3VsPgoJCQkJCQk8L2ZpZWxkc2V0PgoJCQkJCTwvbGk+CgoJCQkJCTxsaSBjbGFzcz0ic3RlcENvbnRhY3QgaGlkZGVuIiBkYXRhLWRlcGFydG1lbnRzPSIiPgoJCQkJCQk8ZmllbGRzZXQgc3R5bGU9ImJvcmRlcjogbm9uZTsiIGNsYXNzPSJkMmNmb3JtIGQyY2Zvcm0tLXJvdyI+CgkJCQkJCQk8bGVnZW5kIGNsYXNzPSJ2aVRleHQiPgoJCQkJCQkJCTxzdHJvbmc+UXVlbGxlIGVzdCB2b3RyZSBtw6l0aG9kZSBkZSBjb250YWN0IHByw6lmw6lyw6llID88L3N0cm9uZz4KCQkJCQkJCTwvbGVnZW5kPgoJCQkJCQkJPGJveC1sYz4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJyYWRpby1pbmxpbmUiPgoJCQkJCQkJCQk8bGFiZWwgY2xhc3M9Ii13MzBwIj4KCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icHJlZmVycmVkX2NvbnRhY3QiIHZhbHVlPSJUw6lsw6lwaG9uZSIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQkJCVTDqWzDqXBob25lCgkJCQkJCQkJCTwvbGFiZWw+CgkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iLXcyNXAiPgoJCQkJCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJwcmVmZXJyZWRfY29udGFjdCIgdmFsdWU9IkNvdXJyaWVsIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQkJQ291cnJpZWwKCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSItdzI1cCI+CgkJCQkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InByZWZlcnJlZF9jb250YWN0IiB2YWx1ZT0iU01TIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCQkJU01TCgkJCQkJCQkJCTwvbGFiZWw+CgkJCQkJCQkJPC9kaXY+CgkJCQkJCQk8L2JveC1sYz4KCQkJCQkJPC9maWVsZHNldD4KCQkJCQk8L2xpPgoKCQkJCQk8bGkgY2xhc3M9InN0ZXBDb25zZW50Ij4KCQkJCQkJPGZpZWxkc2V0IHN0eWxlPSJib3JkZXI6IG5vbmU7IiBjbGFzcz0iZDJjZm9ybSBkMmNmb3JtLS1yb3ciPgoJPGxlZ2VuZCBjbGFzcz0idmlUZXh0Ij4KCQk8ZGl2IGNsYXNzPSJwb3B1cC1wb2xpY3kiPkFmaW4gZGUgcmVzcGVjdGVyIGxhIExvaSBDYW5hZGllbm5lIEFudGktUG91cnJpZWwgZXQgbGEgTG9pIDI1IGR1IFF1w6liZWMsIG5vdXMgdm91cyBwcmlvbnMgZGUgYmllbiB2b3Vsb2lyIGNvbmZpcm1lciBzaSB2b3VzIHNvdWhhaXRleiByZWNldm9pciBub3MgY29tbXVuaWNhdGlvbnMgZnV0dXJlcyBjb25jZXJuYW50IGxlcyByYWJhaXMsIGxlcyBwcm9tb3Rpb25zLCBsZXMgb2ZmcmVzIGV0IGxlcyB2ZW50ZXMgcHJpdsOpZXMuIFZldWlsbGV6IG5vdGVyIHF1ZSB2b3VzIHBvdXZleiBtb2RpZmllciBvdSByZXRpcmVyIGNlIGNvbnNlbnRlbWVudCDDoCB0b3V0IG1vbWVudC4gRW4gY2xpcXVhbnQgc3VyIE91aSwgdm91cyBjb25maXJtZXogYXZvaXIgbHUgZXQgYWNjZXB0w6kgbm90cmUgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ij9wYXRoPS9wb2xpdGlxdWUtZGUtY29uZmlkZW50aWFsaXRlLmh0bWwiPnBvbGl0aXF1ZSBkZSBjb25maWRlbnRpYWxpdMOpPC9hPi48L2Rpdj4KCTwvbGVnZW5kPgoJPGJveC1sYz4KCQk8ZGl2IGNsYXNzPSJyYWRpby1pbmxpbmUgZmxleC1iZXR3ZWVuIGFsaWduLWNlbnRlciBkZWFsZXJDb25zZW50Ij4KCQkJPGRpdiBjbGFzcz0iLXc1MHAiPkh5dW5kYWkgUmVwZW50aWdueTwvZGl2PgoJCQk8bGFiZWwgY2xhc3M9Ii13MjBwIiBzdHlsZT0ibWFyZ2luOiAwOyI+CgkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSIxIiBuYW1lPSJjb25zZW50IiBpZD0iY29uc2VudFllcyIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCU91aQoJCQk8L2xhYmVsPgoJCQk8bGFiZWwgY2xhc3M9Ii13MjBwIiBzdHlsZT0ibWFyZ2luOiAwOyI+CgkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSItMSIgbmFtZT0iY29uc2VudCIgaWQ9ImNvbnNlbnRObyIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCU5vbgoJCQk8L2xhYmVsPgoJCQk8ZGl2IGNsYXNzPSJjb25zZW50IGRpc2NsYWltZXIiIHN0eWxlPSJ3aWR0aDogMTIwcHg7bWFyZ2luLWxlZnQ6IDEwcHg7IiBkYXRhLXRvb2x0aXA9J0VuIGZvdXJuaXNzYW50IG1lcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzLCBqZSBjb25zZW5zIMOgIGxldXIgdXRpbGlzYXRpb24gZXQgbGV1ciBkaXZ1bGdhdGlvbiBjb25mb3Jtw6ltZW50IMOgIGxhIFBvbGl0aXF1ZSBkZSBjb25maWRlbnRpYWxpdMOpIGRlIEh5dW5kYWkgUmVwZW50aWdueS4gSmUgY29uZmlybWUgYXZvaXIgbHUgbGEgJmx0O2EgaHJlZj0iL3BvbGl0aXF1ZS1kZS1jb25maWRlbnRpYWxpdGUuaHRtbCImZ3Q7UG9saXRpcXVlIGRlIGNvbmZpZGVudGlhbGl0w6kmbHQ7L2EmZ3Q7LiBKZSBjb21wcmVuZHMgcXVlIEh5dW5kYWkgUmVwZW50aWdueSBwZXV0IHBhcnRhZ2VyIG1lcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzIGF2ZWMgZGVzIHRpZXJzIGRhbnMgbGUgYnV0IGRlIGfDqXJlciBtYSByZWxhdGlvbiBhdmVjIGV1eCwgdGVscyBxdWUgbm90cmUgZm91cm5pc3NldXIgZGUgZ2VzdGlvbiBkZSBsYSByZWxhdGlvbiBjbGllbnQgKENSTSkuIEplIGNvbXByZW5kcyBxdWUgY2VydGFpbnMgZGUgY2VzIGZvdXJuaXNzZXVycyBwZXV2ZW50IHN0b2NrZXIgbWVzIGluZm9ybWF0aW9ucyBwZXJzb25uZWxsZXMgc3VyIGRlcyBzZXJ2ZXVycyBldCBkZXMgYmFzZXMgZGUgZG9ubsOpZXMgc2l0dcOpcyBlbiBkZWhvcnMgZGUgbWEgcHJvdmluY2UuIEplIGNvbXByZW5kcyDDqWdhbGVtZW50IHF1ZSBqZSBwZXV4IHJldGlyZXIgbW9uIGNvbnNlbnRlbWVudCBldCBtZSBkw6lzYWJvbm5lciBkZSBsYSByw6ljZXB0aW9uIGRlIGNvbW11bmljYXRpb25zIGZ1dHVyZXMgZGUgSHl1bmRhaSBSZXBlbnRpZ255IMOgIHRvdXQgbW9tZW50LiBMZSBjb25zZW50ZW1lbnQgw6AgbGEgcsOpY2VwdGlvbiBkZSBjb21tdW5pY2F0aW9ucyDDqWxlY3Ryb25pcXVlcyBlc3Qgc29sbGljaXTDqSBwYXIgSHl1bmRhaSBSZXBlbnRpZ255Lic+Q2xhdXNlIGRlIG5vbi1yZXNwb25zYWJpbGl0w6k8L2Rpdj4KCQk8L2Rpdj4KCgkJCgoJCTxkaXYgY2xhc3M9Ii1wdDE1IiBzdHlsZT0iZm9udC1zaXplOiAxMHB4O3RleHQtYWxpZ246IGNlbnRlcjtjb2xvcjogdmFyKC0tZGFyay1ncmF5KTsiPklNUE9SVEFOVDogVm91cyBwb3V2ZXogZmFjaWxlbWVudCByZXRpcmVyIHZvdHJlIGNvbnNlbnRlbWVudCBlbiB0b3V0IHRlbXBzITwvZGl2PgoJPC9ib3gtbGM+CjwvZmllbGRzZXQ+CgkJCQkJPC9saT4KCQkJCTwvb2w+CgkJCTwvZm9ybT4KCQkJPGRpdiBjbGFzcz0iLXRleHQtY2VudGVyIj4KCQkJCTxidXR0b24gaWQ9ImVtYWlsQ29uc2VudFN1Ym1pdCIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICI+U09VTUVUVFJFPC9idXR0b24+CgkJCTwvZGl2PgoJCTwvZGl2PgkJCQoKCQkJCgkJPHN0eWxlPgoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjID4gKnsKCQkJCXdpZHRoOiBjbGFtcCgyMC41cmVtLCBtYXgoOTB2dywgMjAuNXJlbSksIDYwcmVtKTsKCQkJCWRpcmVjdGlvbjogcnRsOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqID4gKnsKCQkJCWRpcmVjdGlvbjogaW5pdGlhbDsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjID4gKiA+Omxhc3QtY2hpbGR7CgkJCQl3aWR0aDogMjByZW07CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sY3sKCQkJCS0tc2lkZWJhci1icDogNDAlOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHN3aXRjaGVyLWxjewoJCQkJLS1zd2l0Y2gtYnA6IDM1cmVtOwoJCQl9CgoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBsYWJlbHsKCQkJCW1heC13aWR0aDoxOXJlbTsKCQkJCWRpc3BsYXk6IGZsZXg7CgkJCQlmbGV4LXdyYXA6IHdyYXA7CgkJCQlqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CgkJCX0KCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgbGFiZWwgc3BhbnsKCQkJCXdpZHRoOjRyZW07CgkJCX0KCgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IFt0eXBlPSJzdWJtaXQiXXsKCQkJCW1heC13aWR0aDoxOXJlbTsKCQkJfQoKCQkJLmNvbnRhY3RNYXBDb250YWluZXJ7CgkJCQloZWlnaHQ6MTAwJTsKCQkJCW1pbi1oZWlnaHQ6bWluKDc1dmgsIDM4cmVtKTsKCQkJfQoKCQkJLmNvbnRhY3RGb3JtewoJCQkJYm9yZGVyLWNvbG9yOiNiYmI7CgkJCQlib3gtc2l6aW5nOiBib3JkZXItYm94OwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5jb250YWN0Rm9ybSBpbnB1dHsKCQkJCW1heC13aWR0aDogMTByZW07CgkJCX0KCgoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCAuZmxhdHBpY2tyLWRheS5zZWxlY3RlZHsKCQkJCWJhY2tncm91bmQtY29sb3I6IzAwMDsKCQkJCWJvcmRlci1jb2xvcjojMDAwOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5mbGF0cGlja3ItdGltZSA6aXMoaW5wdXQ6aG92ZXIsaW5wdXQ6Zm9jdXMpewoJCQkJYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CgkJCX0KCgkJCS5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aCwgLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoc3sKCQkJCXRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKTsKCQkJfQoKCQkJLyogLmRwLWxhcmdlIC5mbGF0cGlja3ItY2FsZW5kYXJ7CgkJCQl3aWR0aDozMHJlbTsKCQkJCWZvbnQtc2l6ZToxLjFyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSAuZmxhdHBpY2tyLXdlZWtkYXlzewoJCQkJaGVpZ2h0OjIuNXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIC5mbGF0cGlja3ItZGF5ewoJCQkJbWF4LXdpZHRoOiA0cmVtOwoJCQkJaGVpZ2h0OiAyLjVyZW07CgkJCQlsaW5lLWhlaWdodDogMi41cmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgOmlzKC5mbGF0cGlja3ItZGF5cywuZGF5Q29udGFpbmVyKSB7CgkJCQl3aWR0aDoxMDAlOwoJCQkJbWF4LXdpZHRoOiAzMHJlbTsKCQkJfSAqLwoJCTwvc3R5bGU+CgoJCQk8ZGl2IGlkPSJsZWFkRGVhbGVyQXBwb2ludG1lbnQiIGhpZGRlbj4KCQkJCTxkaXYgY2xhc3M9ImZsZXgtY2VudGVyIGFsaWduLWNlbnRlciI+CgkJCQk8c2lkZWJhci1sYz4KCQkJCQk8ZGl2PiA8IS0tIGludGVybWVkaWFyeSB3cmFwcGVyIC0tPgoKCQkJCQkJPGJveC1sYz4KCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iYWxpZ24tY2VudGVyIj4KCQkJCQkJCQk8dWwgY2xhc3M9ImNoZWNrbGlzdCAtZnMtMSAtLXMiPgoJCQkJCQkJCQk8bGk+VW5lIGV4cMOpcmllbmNlIHBlcnNvbm5hbGlzw6llIGTDqHMgdm90cmUgYXJyaXbDqWU8L2xpPgoJCQkJCQkJCQk8bGk+QXVjdW5lIGF0dGVudGUgY2hleiBsZSBjb25jZXNzaW9ubmFpcmU8L2xpPgoJCQkJCQkJCQk8bGk+QXVjdW5lIHBhcGVyYXNzZSBpbnV0aWxlOiBjb25jZW50cmV6LXZvdXMgc3VyIGxlIHbDqWhpY3VsZTwvbGk+CgkJCQkJCQkJPC91bD4KCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWNlbnRlciI+CgkJCQkJCQkJCTxpbnB1dCBjbGFzcz0iZGF0ZXBpY2tlciBmbGF0cGlja3ItaW5wdXQiIGhpZGRlbiB0eXBlPSJ0ZXh0IiB0aXRsZT0iU2VsZWN0IERhdGUuLi4iIHBsYWNlaG9sZGVyPSJTZWxlY3QgRGF0ZS4uLiIgZGF0YS1pZD0iaW5saW5lIiByZWFkb25seT4KCQkJCQkJCQk8L2JveC1sYz4KCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJjb250YWN0Rm9ybSAtYiAtdy0xMDAgZmxleC1jZW50ZXIgLS1zMiI+CgkJCQkJCQkJCTxmb3JtIGlkPSJmb3JtRGVhbGVyQXBwb2ludG1lbnQiIGNsYXNzPSItdy0xMDAiIG5vdmFsaWRhdGU+CgkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczIgYWxpZ24tY2VudGVyIj4KCgkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIHR4dC1jZW50ZXIgdHh0LXVwcGVyIHNlbGVjdGVkVGltZSI+PC9zcGFuPgoJCQkJCQkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhdGUiPgoKCQkJCQkJCQkJCQk8c3dpdGNoZXItbGM+CgkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImZsZXgtY2VudGVyIj4gPCEtLSBpbnRlcm1lZGlhcnkgd3JhcHBlciAtLT4KCQkJCQkJCQkJCQkJCTxsYWJlbCBjbGFzcz0iZm9ybS1sYWJlbCBhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCQkJCQkJCTxzcGFuPk5vbSAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCByZXF1aXJlZCBjbGFzcz0iLXBoIiBuYW1lPSJuYW1lIiB0eXBlPSJ0ZXh0Ij4KCQkJCQkJCQkJCQkJCTwvbGFiZWw+CgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+Q291cnJpZWwgKjwvc3Bhbj4KCQkJCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0iZW1haWwiIHR5cGU9ImVtYWlsIiByZXF1aXJlZD4KCQkJCQkJCQkJCQkJCTwvbGFiZWw+CgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+VMOpbMOpcGhvbmUgKjwvc3Bhbj4KCQkJCQkJCQkJCQkJCQk8aW5wdXQgZGF0YS1wcmlzdGluZS1waG9uZSBuYW1lPSJwaG9uZW51bSIgdHlwZT0idGVsIiByZXF1aXJlZD4KCQkJCQkJCQkJCQkJCTwvbGFiZWw+CgkJCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJCTwvc3dpdGNoZXItbGM+CgoJCQkJCQkJCQkJCTxidXR0b24gb25zdWJtaXQ9ImphdmFzY3JpcHQ6dm9pZCgpIiBjbGFzcz0iYnRuIGJ0bi1wcm9tbyAtZnMtbHIgLXctMTAwIHR4dC11cHBlciAtYm9sZCIgdHlwZT0ic3VibWl0Ij4KCQkJCQkJCQkJCQkJUHJlbmRyZSByZW5kZXotdm91cwoJCQkJCQkJCQkJCTwvYnV0dG9uPgoKCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0iZGF0YSIgdHlwZT0iaGlkZGVuIiBkYXRhLW1ha2U9IiIgZGF0YS1tb2RlbD0iIiBkYXRhLXllYXI9IiIgZGF0YS10cmltPSIiIGRhdGEtY29uZGl0aW9uPSIiIGRhdGEta209IiIgZGF0YS12aW49IiIgZGF0YS1zdG9jay1udW1iZXI9IiI+CgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJzZW5kVG8iIHZhbHVlPSIiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9InNlbmRUb0FERkZvcm1hdCIgdmFsdWU9ImJhNjIwYzNmMmVlNTc1NGNmYWIzY2ZhZDE0MTc1NzNjfDMyNTU2Njk4ODYiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9Im1haWxJRCIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50IiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJwb3B1cE9mZmVyVHlwZSIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50QWxsIiB0eXBlPSJoaWRkZW4iPgoKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJsZWFkRW1haWwiIGhpZGRlbj4KCQkJCQkJCQkJCQkJPHNwYW4gZGF0YS1zdWJqZWN0PkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzPC9zcGFuPgoJCQkJCQkJCQkJCQk8c3BhbiBkYXRhLWJvZHk+Qm9uam91ciw8YnI+PGJyPlVuIGNsaWVudCBwb3RlbnRpZWwgYXlhbnQgdmlzaXTDqSB2b3RyZSBzaXRlIHdlYiwgYWltZXJhaXQgcHJlbmRyZSB1biByZW5kZXotdm91czo8YnI+PGJyPjx1PlJlbnNlaWduZW1lbnRzIHN1ciBsZSB2w6loaWN1bGU8L3U+Ojxicj5Nb2TDqGxlOiA8c3Ryb25nPiAgPC9zdHJvbmc+PGJyPk5JVjogPHN0cm9uZz57JFZJTn08L3N0cm9uZz48YnI+TnVtw6lybyBkZSBzdG9jazogPHN0cm9uZz57JFNUT0NLTlVNQkVSfTwvc3Ryb25nPjxicj5LaWxvbcOodHJlczogPHN0cm9uZz57JEtNfTwvc3Ryb25nPjxicj48YnI+PHU+RGF0ZSBkdSByZW5kZXotdm91cyBzb3VoYWl0w6k8L3U+IDogPHN0cm9uZz57JERBVEV9PC9zdHJvbmc+PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+Ojxicj5Ob206IDxzdHJvbmc+eyROQU1FfTwvc3Ryb25nPjxicj5Db3VycmllbDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD1tYWlsdG86JTdCJTI0RU1BSUwlN0QiPnskRU1BSUx9PC9hPjwvc3Ryb25nPjxicj5Uw6lsw6lwaG9uZTogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD10ZWw6JTdCJTI0UEhPTkVOVU0lN0QiPnskUEhPTkVOVU19PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPjxicj48dT5Db25jZXNzaW9uPC91Pjo8YnI+Tm9tIDogPHN0cm9uZz57JERFQUxFUk5BTUV9PC9zdHJvbmc+PGJyPjxicj48ZGl2IHN0eWxlPSIjI1NFT0JMT0NLRElTUExBWSMjIj5Tb3VyY2UgTcOpZGlhOiA8c3Ryb25nPnskVVRNREVUQUlMU308L3N0cm9uZz48YnI+TmF2aWdhdGV1cjogPHN0cm9uZz57JFVTRVJBR0VOVH0gLSA8L3N0cm9uZz48YnI+SGlzdG9yaXF1ZSBkZSBuYXZpZ2F0aW9uOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPSU3QiUyNFVVTElOSyU3RCIgcmVsPSJub2ZvbGxvdyB1Z2Mgc3BvbnNvcmVkIG5vaW5kZXgiIHN0eWxlPSJjb2xvcjpibGFjazsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+Q2xpcXVleiBpY2k8L2E+PC9zdHJvbmc+PGJyPjwvZGl2PkNvbnNlbnRlbWVudDogPHN0cm9uZz57JENPTlNFTlRfREVUQUlMU308L3N0cm9uZz57JFBVUkNIQVNFX0lOVEVOVH08L3NwYW4+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJPC9mb3JtPgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQk8ZGl2PgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJjb250YWN0TWFwQ29udGFpbmVyIC0tcy04IC1iZy1saWdodCIgaWQ9ImZvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyIj4KCgkJCQkJCQkJCgkJCTxpZnJhbWUgdGl0bGU9Ikdvb2dsZSBNYXAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZyYW1lYm9yZGVyPSIwIiBjbGFzcz0iIGxhenlsb2FkZWQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlP3E9cGxhY2VfaWQlM0FDaElKSzJWUDlJcmx5RXdSOEtjS3FJeDE3aWMmYW1wO2tleT1BSXphU3lDcktENlpQck9MZ21HV3JXX1lSMDlfZW15aVZxbDdfX2cmYW1wO3pvb209MTQmYW1wO3JlZ2lvbj1DQSZhbXA7bGFuZ3VhZ2U9ZnIiIGFsbG93ZnVsbHNjcmVlbj0iIj48L2lmcmFtZT4KCgkJCQkJCQkJPGJveC1sYyBjbGFzcz0iY29udGFjdEJsb2NrIC0tczIgLW0wIj4KCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMzIj4KCQkJCQkJCQkJCTxkaXY+CgkJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMtOCI+CgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItLWZzMCI+SHl1bmRhaSBSZXBlbnRpZ255PC9zcGFuPgoJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY2EvbWFwcy9kaXIvP2FwaT0xJmFtcDtkZXN0aW5hdGlvbj1IeXVuZGFpJTJCUmVwZW50aWdueSUyQzg0NSsrcnVlK05vdHJlLURhbWUlMkNSZXBlbnRpZ255JTJDUUMlMkNKNVkrMUM0JmFtcDtobD1mciZhbXA7dD1tJmFtcDt6PTE2JmFtcDtpZT1VVEY4JmFtcDtkZXN0aW5hdGlvbl9wbGFjZV9pZD1DaElKSzJWUDlJcmx5RXdSOEtjS3FJeDE3aWMiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iLS1mcy0xIj4KCQkJCQkJCQkJCQkJCTxzcGFuPjg0NSwgcnVlIE5vdHJlLURhbWU8L3NwYW4+CgkJCQkJCQkJCQkJCQk8c3Bhbj5SZXBlbnRpZ255LCBRQzwvc3Bhbj4KCQkJCQkJCQkJCQkJCTxzcGFuPko1WSAxQzQ8L3NwYW4+CgkJCQkJCQkJCQkJCTwvYT4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5Uw6lsw6lwaG9uZTwvc3Bhbj4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii0tZnMtMSI+CgkJCQkJCQkJCQkJCQk8YSBocmVmPSI\/cGF0aD10ZWw6NDUwJTIwNTgyLTMxODIiIGRhdGEtZGVwYXJ0bWVudD0iU2FsZXMiIHRpdGxlPSJDb250YWN0IFBob25lIj40NTAgNTgyLTMxODI8L2E+CgkJCQkJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPGRpdj4KCQkJCQkJCQkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tcy04Ij4KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1ib2xkIj5IZXVyZXM8L3NwYW4+CgkJCQkJCQkJCQkJCQkJCTxkaXYgaWQ9Iml0ZW1fbmV3Ij4KCQkJCTxzdGFjay1sYyBjbGFzcz0iaG91cnNMaXN0Ij4KCQkJCQkJCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwOTowMCIgZGF0YS1tYXhob3VyPSIyMDowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkx1bmRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDk6MDAgLSAyMDowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA5OjAwIiBkYXRhLW1heGhvdXI9IjIwOjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+TWFyZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wOTowMCAtIDIwOjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMjA6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5NZXJjcmVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMjA6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwOTowMCIgZGF0YS1tYXhob3VyPSIyMDowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkpldWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDk6MDAgLSAyMDowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA5OjAwIiBkYXRhLW1heGhvdXI9IjE4OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+VmVuZHJlZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wOTowMCAtIDE4OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMTA6MDAiIGRhdGEtbWF4aG91cj0iMTY6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5TYW1lZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4xMDowMCAtIDE2OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMCIgZGF0YS1tYXhob3VyPSIwIiBkYXRhLWNsb3NlZD0iMSI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+RGltYW5jaGU8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj5GZXJtw6k8L3NwYW4+CgkJCQk8L2JveC1sYz4KCQkJCTwvc3RhY2stbGM+CgkJCTwvZGl2PgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9kaXY+CgoJCQkJCTwvZGl2PgoJCQkJPC9zaWRlYmFyLWxjPgoJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGlkZGVuU2l0ZUlEIiB2YWx1ZT0iMjUxIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5Ta2lwT25sb2FkUHJpbnRzY3JlZW4iIHZhbHVlPSIjI0RPTlRfU0tJUF9PTkxPQUQjIyI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGlkZGVuUHJpbnRzY3JlZW5LZXkiIHZhbHVlPSIjI1BSSU5UU0NSRUVOX0tFWSMjIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5EZWFsZXJOYW1lIiB2YWx1ZT0iSHl1bmRhaSBSZXBlbnRpZ255Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNCQkNoZWNrVXNlciIgdmFsdWU9Ik1UZ3VPVGN1TVRRdU9EZz0iPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9lbWFpbHMiIHZhbHVlPSIiPjwhLS0gT086OjNhMjQ2YTc5OGQyNWRjYzMzMTU3NmViNWZkODBkNDdlIC0tPgkJCTxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O292ZXJmbG93OmhpZGRlbjsiPgoJCQkgIAoKCQkJICAJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb29rX2lzX2FjdGl2ZSIgdmFsdWU9IjEiIGNsYXNzPSJvcHRhbm9uLWNhdGVnb3J5LUMwMDAyLUMwMDAzLUMwMDA0LUMwMDA1Ij4KCQkJCTwhLS0gRmFjZWJvb2sgUGl4ZWwgQ29kZSBWaWV3Q29udGVudCAgLS0+CgkJCQk8IS0tIE9POjoxMWJhNzUzYzUwN2EzOWM5YmJlNmVkMjc1YThlZTIyMSAtLT4KCQkJCTxub3NjcmlwdD4KCQkJCQk8aW1nIGFyaWEtaGlkZGVuPSJ0cnVlIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90cj9pZD0yMDY4Mjg0MTMwOTY3ODAmYW1wO2V2PVBhZ2VWaWV3JmFtcDtub3NjcmlwdD0xIiBhbHQ9InRyIGlkIDIwNjgyODQxMzA5Njc4MCBldiAgcGFnZSB2aWV3IG5vc2NyaXB0IDEiIGhlaWdodD0iMSIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgd2lkdGg9IjEiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvbm9zY3JpcHQ+CgkJCTwhLS0gRW5kIEZhY2Vib29rIFBpeGVsIENvZGUgVmlld0NvbnRlbnQgLS0+CgoJCSAgPC9kaXY+CgoJCSAgPGRpdiBpZD0iY29udmVyc2lvblRhZ3NXcmFwcGVyIj48L2Rpdj4KCgkJCTwhLS0gRFdQLTI0MzkgLS0+CgoJCQk8IS0tIE9POjo4M2MyNTI4YTc1MzgwYzA3ODcyZTkyYWQyYzk5YWUyZSAtLT4KCjwhLS0gQ1VTVE9NIEJPRFkgRlJFRUZJRUxEIC0tPgogCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDItLT4KPCEtLSBPTzo6MTRkMjY1MzE4YTExZGRlNzVlMzUyY2UzMWNkNDNkZWIgLS0+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAyLS0+Cgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKPCEtLVNUQVJUX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKPCEtLVNUQVJUX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLSBTVEFSVCAtLSBBdXRvQWxlcnQgLS0gUkVRVUVTVEVSIDogQ3VzdG9tZXIgLS0+CjwhLS0gT086OjU5ZjMxMGRmYmU5YWQxODJhNTgzNmFkZDNhNDlhNDAxIC0tPgo8bm9zY3JpcHQ+PGltZyBhbHQ9ImF1dG9hbGVydCB0cmFja2luZyIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2Z6bG5rLmNvbS9IYW5kbGVTaWduYWwuYXNoeD9zX3R5cGU9dHJhY2tQYWdldmlldyZhbXA7c193c0lkPTRjMWNhNmQ2LTIyZjYtNDViMC1iZjA4LTcwMGQzZWU3MjA0ZCZhbXA7c21jPTRjMWNhNmQ2LTIyZjYtNDViMC1iZjA4LTcwMGQzZWU3MjA0ZC4wLjAmYW1wO2NhY2hlYnVzdGVyPTE0MDc4MjY2NjQiIGhlaWdodD0iMSIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgd2lkdGg9IjEiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L25vc2NyaXB0Pgo8IS0tIEVORCAtLSBBdXRvQWxlcnQgLS0gUkVRVUVTVEVSIDogQ3VzdG9tZXIgLS0+Cgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBHb29nbGUgVGFnIE1hbmFnZXIgKG5vc2NyaXB0KSAtLSBSRVFVRVNURVI6IEN1c3RvbWVyIC0tPgo8bm9zY3JpcHQ+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL25zLmh0bWw\/aWQ9R1RNLVdWR1JSSlEzIiBoZWlnaHQ9IjAiIHdpZHRoPSIwIiBzdHlsZT0iZGlzcGxheTpub25lO3Zpc2liaWxpdHk6aGlkZGVuIj48L2lmcmFtZT48L25vc2NyaXB0Pgo8IS0tIEVuZCBHb29nbGUgVGFnIE1hbmFnZXIgKG5vc2NyaXB0KSAtLSBSRVFVRVNURVI6IEN1c3RvbWVyIC0tPgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMS0tPgoKIDwhLS0gRU5EIENVU1RPTSBCT0RZIEZSRUVGSUVMRCAtLT48c2NyaXB0IHNyYz0iaHR0cHM6Ly9haWFwcHMuZDJjbWVkaWEuY2EvY2hhdGJvdC9kMmNib3Qtd2lkZ2V0LmpzIiBkYXRhLWNoYXQtd2lkZ2V0PSIiPjwvc2NyaXB0PjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9haWFwcHMuZDJjbWVkaWEuY2EvY2hhdGJvdC9kMmNib3Qtd2lkZ2V0LmNzcyI+CgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZSIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPlZvdHJlIGRlbWFuZGUgYSDDqXTDqSBlbnZvecOpZSBhdmVjIHN1Y2PDqHMuIFVuIHJlcHLDqXNlbnRhbnQgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpIHBvdXIgdm90cmUgZGVtYW5kZS4gVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybSIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI5NDgxNjg5NTUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJDc3ZkQ0xlQmxGNFEtOUdQeEFNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMjA2ODI4NDEzMDk2NzgwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9Imh5dW5kYWlyZXBlbnRpZ255LmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2UiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1LjwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCgkJPGRpdiBpZD0iZDJjRm9vdGVyQ29va2llRGVsZXRlIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjU4MHB4O2hlaWdodDozNTBweDtwYWRkaW5nOjsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19kMmNmb290ZXJjb29raWVkZWxldGUiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6YzViZjk4NWQxYTUzZGIxYmVlNWZkMDliNmYyYjhhZDIgLS0+CgoJCQoJCQoJCTwhLS0gQ0xPU0UgRk9PVEVSV0lER0VUIC0tPgoJCTwhLS0gT1BFTiBQT1BVUFdJREdFVCAtLT4KCQk8IS0tIE1BSU4gUE9QVVAgbmV3IENvbnRhY3RQb3B1cCAtLT4KCQkKCQk8ZGl2IGlkPSJjb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY29udGFjdHBvcHVwIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OmY5ZjNlNTI5OWI4MjdkZmFkODEzNjQ3MjViNTdmZTExIC0tPgoKCQkKCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIG1lc3NhZ2UgYSBiaWVuIMOpdMOpIGVudm95w6khPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+TWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSDDqXF1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX2NvbnRhY3Rwb3B1cCIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI5NDgxNjg5NTUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJDc3ZkQ0xlQmxGNFEtOUdQeEFNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMjA2ODI4NDEzMDk2NzgwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9Imh5dW5kYWlyZXBlbnRpZ255LmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2VfY29udGFjdHBvcHVwIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fZmFpbENvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoJCQkJPCEtLSBPTzo6M2Q3ODU0Mjc0MTI1ZWE2OWIwMjQ1NzU2NDZhNjk4ZGMgLS0+CgkJCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gQ1JFRElUIFNDT1JFIFBPUFVQIC0tPgoJCQoJCTxkaXYgaWQ9ImNyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBzdHlsZT0id2lkdGg6NzYwcHg7aGVpZ2h0OjM4MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX2NyZWRpdHNjb3JlcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6MDI1MDhiN2IwNWI2NzI2ODNkNmNkNTY5NzQ4YWVjNjkgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9zdWNjZXNzQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiIGNsYXNzPSJjb25maXJtX2h0bWwiIHRhcmdldD0iaWZyYW1lIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFiZWwiIGNsYXNzPSJsYWJlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbiIgY2xhc3M9ImxhYmVsc2VjdGlvbiIgdmFsdWU9Ik9jY2FzaW9uIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgY2xhc3M9InllYXJlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWRkMmNtZWRpYSIgdmFsdWU9IiI+CgkJCQkJCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2NvbmlkIiB2YWx1ZT0iOTQ4MTY4OTU1Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNsYWJlbGlkIiB2YWx1ZT0iQ3N2ZENMZUJsRjRRLTlHUHhBTSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjIwNjgyODQxMzA5Njc4MCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJoeXVuZGFpcmVwZW50aWdueS5jb20iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1LjwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjpkNjZmNWQ5NDg1OTc0MmM2YTUxZjhiYWQ5YzBkZmFlMCAtLT4KCQkKPCEtLSBFTkQgQ1JFRElUIFNDT1JFIFBPUFVQIC0tPgoKPCEtLSBDUkVESVQgU0NPUkUgQ09ORklSTSBQT1BVUCAtLT4KCjwhLS0gRU5EIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoKCgoKPCEtLSBGSU5BTkNFIE1VTFRJU1RFUCBQT1BVUCBuZXcgLS0+CgkJCgkJPGRpdiBpZD0iZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjU4MHB4O2hlaWdodDo0NDVweDtwYWRkaW5nOjsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19maW5hbmNlbXVsdGlzdGVwcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6OTA3YzYyZjBmZDMzOTg2NzkwMjljMzMxMTc3MzM5MWIgLS0+CgoJCQoJCQo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIEZJTkFOQ0UgTVVMVElTVEVQIElOU1RBTlQgLS0+Cgo8IS0tIEVORCBGSU5BTkNFIE1VTFRJU1RFUCBJTlNUQU5UIC0tPgoKPCEtLSBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIEVORCBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIFNFQ09ORCBDSEFOQ0UgUE9QVVAgbmV3IC0tPgoJCQoJCTxkaXYgaWQ9IlNlY29uZFBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjQ3NXB4O2hlaWdodDo1MDhweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19zZWNvbmRwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjoxY2I0NzgwZGU0MGVjMGRiY2Y5MmQ5MDY3NTA1OTNkYyAtLT4KCgkJCgkJCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gUkVUVVJOIFBPUFVQIG5ldyAtLT4KCQkKCQk8ZGl2IGlkPSJyZXR1cm5Qb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo3OTBweDtoZWlnaHQ6NTQwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfcmV0dXJucG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6YWQzMTc3ZDhhNGMxODk3YWEyNGUzOWNmNWZjODM2OGIgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfcmV0dXJuUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9ImNvbmZpcm1fc3VjY2Vzc0NvbnRpbnVlICBidG4tZGVmYXVsdCAiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9yZXR1cm5Qb3B1cENvbnRhaW5lciIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSJSZXR1cm4gcG9wdXAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI5NDgxNjg5NTUiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJDc3ZkQ0xlQmxGNFEtOUdQeEFNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iMjA2ODI4NDEzMDk2NzgwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9Imh5dW5kYWlyZXBlbnRpZ255LmNvbSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIj48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2VfcmV0dXJuUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1LjwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iY29uZmlybV9mYWlsQ29udGludWUgIGJ0bi1kZWZhdWx0ICI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjo5NzJjZjk0MTQxMTQ2NzQ0Nzg4ZTIyMTJhNjIxYjk3MCAtLT4KCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBFWElUIFBPUFVQIG5ldyAtLT4KCQkKCQk8ZGl2IGlkPSJleGl0UG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgcG9wdXAtZG9tLWxpZ2h0Ym94LXdyYXBwZXIiIHN0eWxlPSJ3aWR0aDo4MjBweDtoZWlnaHQ6NTQwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfZXhpdHBvcHVwY29udGFpbmVyIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OmVjNTI0YTdlODczNmU5YTU1NzlkY2RlMDU5ZjRiYTZjIC0tPgoKCQkKCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBCRVNUIFBSQUNUSUNFIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCQk8IS0tIENMT1NFIFBPUFVQV0lER0VUIC0tPgoJCQkJCgkJPGRpdiBpZD0ibW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBzdHlsZT0id2lkdGg6ODUlO2hlaWdodDo4NXZoOyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX21vdG9pbnNpZ2h0c2hvcHBvcHVwY29udGFpbmVyIj4KCQkJCgkJPC9kaXY+CgoJCTwhLS0gT086OmM3NjVlZmRmMTQyZDUyMGUxZmMxZTE5NDhlMWFjNTJjIC0tPgoKCQkKCQkKCQk8IS0tIFBBWU1FTlQgQ0FMQ1VMQVRPUiBQT1BVUCAgLS0+CgkJCgkJPGRpdiBpZD0icGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo5MDBweDttaW4taGVpZ2h0OjQ5NXB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX3BheW1lbnRjYWxjdWxhdG9ycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6N2U5ZTQ1YTk3OTY0NzUxZjYwNTZlZGQwYTdjMThmYzYgLS0+CgoJCQoJCTwhLS0gRU5EIFBBWU1FTlQgQ0FMQ1VMQVRPUiAgLS0+CgoKCQk8ZGl2IGlkPSJzcGVjaWFsU2NoZWR1bGVDb250ZW50Ij48L2Rpdj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIGlkPSJkZWZhdWx0RGVwYXJ0bWVudCI+CgoJPC9kaXY+","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/hyundairepentigny.com\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVTtrtowDH2hAbts2gOMO7RJTEJj034ik7qtIY2zxOXjPv3cy5q0wNV-INrjuLbPOc5sH2f7Py2Gy3Qf383ym2E-EPbgERxZC_p0xaPGXUQnjw440cCKocDwdv642g4ifvp4AxYQDsJshfxN5AiWCpLUcwPk-mcLL5dIL1qiyeA1b9LSpAQjHC6zp-nTh-k8B4anc7dRzyYSUMvYr-AKmwfb1xBrgZ1NpxyeDIQ0oGffpvYbFiYXqaplU7NfD2O5KDUQD4_7KTk0PVqhw0DmuzY1KqazZ94H3J02JoCYeg1FD8VTOZowad86KfiUGihA8JeQTVMVc7OFaLYVJNF8ICc_a0pnxpouKeCJw2guCeqRb-4zhBFCbkTav6YCHhHsDegDilzWtfI6vwnpp5RpIXb3RpgKt6benMjjMOihwh04l_mrmCuruvs0VcksGH5TUWEyP3t0Nbch3hlYUKhBT-aQv9m5aGNqLFo1zXz6foh_OetEMf5A_UCUcZUu_owludeh1uqxgc6koy5089Tdy5FHeMUGXlnoKWaIkhKjLhKO69TS2LkBd4Sh3GIOs9YHLkm71iZUigFz5lp6ZGiHuwXY7u9ZeVi6e3yR9Ty22P1Grr9CE6lx8roRvQJa3BncNq3eDFEwFTRgTWtBDb1snelmvhUEzySrLmcgsYdLo_fVIiXfb13DxaDTBFvMm5RROBPHx9urKxKFHL6x21q9c0r4X7jM6h3Qoqi2Hf-B7eBiSqEdloMN19z-giJnu1728S8&jsrpl=&wswidth=0&device=desktop&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}